]> granicus.if.org Git - clang/log
clang
12 years ago[analyzer] Ted fixed the plist-html issue, so the assert can go away.
Anna Zaks [Fri, 24 Aug 2012 21:07:49 +0000 (21:07 +0000)]
[analyzer] Ted fixed the plist-html issue, so the assert can go away.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162598 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[analyzer] More fixups/rewording based on Jordan's feedback.
Anna Zaks [Fri, 24 Aug 2012 21:07:45 +0000 (21:07 +0000)]
[analyzer] More fixups/rewording based on Jordan's feedback.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162597 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoRemove unnecessary calls to c_str.
Benjamin Kramer [Fri, 24 Aug 2012 20:43:21 +0000 (20:43 +0000)]
Remove unnecessary calls to c_str.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162590 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoFix analyzer tests.
Ted Kremenek [Fri, 24 Aug 2012 20:39:55 +0000 (20:39 +0000)]
Fix analyzer tests.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162588 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoRevert "Go ahead and show experimental checkers in the scan-build "-h" output."
Ted Kremenek [Fri, 24 Aug 2012 20:39:38 +0000 (20:39 +0000)]
Revert "Go ahead and show experimental checkers in the scan-build "-h" output."

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162587 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoInstantiate class template specializations during ADL.
John McCall [Fri, 24 Aug 2012 20:38:34 +0000 (20:38 +0000)]
Instantiate class template specializations during ADL.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162586 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoobjective-C: When checking for valid overriden property
Fariborz Jahanian [Fri, 24 Aug 2012 20:10:53 +0000 (20:10 +0000)]
objective-C: When checking for valid overriden property
in class extension, assume default is rewdwrite and don't
issue any diagnostics, privided other ownership models
are ok.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162583 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoRename the "experimental" checker package to "alpha". We will then refine
Ted Kremenek [Fri, 24 Aug 2012 19:46:03 +0000 (19:46 +0000)]
Rename the "experimental" checker package to "alpha".  We will then refine
this group into "alpha" and "beta" to distinguish between checkers in
different levels of premature state.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162582 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoRework how PathDiagnosticConsumers pass knowledge of what files they
Ted Kremenek [Fri, 24 Aug 2012 19:35:19 +0000 (19:35 +0000)]
Rework how PathDiagnosticConsumers pass knowledge of what files they
generated for a given diagnostic to another.  Because PathDiagnostics
are specific to a give PathDiagnosticConsumer, store in
a FoldingSet a unique hash for a PathDiagnostic (that will be the same
for the same bug for different PathDiagnosticConsumers) that
stores a list of files generated.  This can then be read by the
other PathDiagnosticConsumers.

This fixes breakage in the PLIST-HTML output.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162580 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[analyzer] Address Jordan's review comments.
Anna Zaks [Fri, 24 Aug 2012 18:43:09 +0000 (18:43 +0000)]
[analyzer] Address Jordan's review comments.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162579 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoFix 80-column violation.
Chad Rosier [Fri, 24 Aug 2012 18:31:16 +0000 (18:31 +0000)]
Fix 80-column violation.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162575 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoComment diagnostics: for unresolved parameters, do not suggest parameter fixit
Dmitri Gribenko [Fri, 24 Aug 2012 17:45:39 +0000 (17:45 +0000)]
Comment diagnostics: for unresolved parameters, do not suggest parameter fixit
with parameter that is documented.

Fixes PR13670, <rdar://problem/12155840>.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162570 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[ms-inline asm] Refactor code. No functional change intended.
Chad Rosier [Fri, 24 Aug 2012 17:05:45 +0000 (17:05 +0000)]
[ms-inline asm] Refactor code.  No functional change intended.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162568 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[ms-inline asm] Generate the Input/Output expressions using
Chad Rosier [Fri, 24 Aug 2012 16:38:58 +0000 (16:38 +0000)]
[ms-inline asm] Generate the Input/Output expressions using
Sema::ActOnIdExpression().

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162564 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[analyzer] If we dereference a NULL that came from a function, show the return.
Jordan Rose [Fri, 24 Aug 2012 16:34:31 +0000 (16:34 +0000)]
[analyzer] If we dereference a NULL that came from a function, show the return.

More generally, any time we try to track where a null value came from, we
should show if it came from a function. This usually isn't necessary if
the value is symbolic, but if the value is just a constant we previously
just ignored its origin entirely. Now, we'll step into the function and
recursively add a visitor to the returned expression.

<rdar://problem/12114609>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162563 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoFix 80-column violation.
Chad Rosier [Fri, 24 Aug 2012 15:51:10 +0000 (15:51 +0000)]
Fix 80-column violation.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162560 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoPush ArrayRef through the Expr hierarchy.
Benjamin Kramer [Fri, 24 Aug 2012 11:54:20 +0000 (11:54 +0000)]
Push ArrayRef through the Expr hierarchy.

No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162552 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoFix the definition of JSONAnchorSource. MSVC mangles variable symbols, and "volatile...
NAKAMURA Takumi [Fri, 24 Aug 2012 10:39:28 +0000 (10:39 +0000)]
Fix the definition of JSONAnchorSource. MSVC mangles variable symbols, and "volatile" affects.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162550 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoTeach CFG that 'if (x & 0)' and 'if (x * 0)' is an unfeasible branch.
Ted Kremenek [Fri, 24 Aug 2012 07:42:09 +0000 (07:42 +0000)]
Teach CFG that 'if (x & 0)' and 'if (x * 0)' is an unfeasible branch.

Fixes <rdar://problem/11005770>.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162545 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoAllow RecursiveASTVisitor to visit CXXCtorInitializer objects for which
James Dennett [Fri, 24 Aug 2012 06:59:51 +0000 (06:59 +0000)]
Allow RecursiveASTVisitor to visit CXXCtorInitializer objects for which
isWritten() returns false, if shouldVisitImplicitCode() returns true.
Previously those CXXCtorInitializers were always skipped.

In order to make this change easier to test, this patch also extends the
test class template ExpectedLocationVisitor to support arbitrary numbers
of expected matches and disallowed matches.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162544 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoGo ahead and show experimental checkers in the scan-build "-h" output.
Ted Kremenek [Fri, 24 Aug 2012 06:49:34 +0000 (06:49 +0000)]
Go ahead and show experimental checkers in the scan-build "-h" output.
They are labeled as not being enabled-by-default, and how else
are users going to test them.

Fixes <rdar://problem/11654923>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162543 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoUse LLVM's plugin registry to enable registering new compilation
Daniel Jasper [Fri, 24 Aug 2012 05:50:27 +0000 (05:50 +0000)]
Use LLVM's plugin registry to enable registering new compilation
databases. Move JSONCompilationDatabase.h to its own files and
register it as plugin.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162541 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoRename the ASTMatchers to better match AST nodes. Now, all
Daniel Jasper [Fri, 24 Aug 2012 05:12:34 +0000 (05:12 +0000)]
Rename the ASTMatchers to better match AST nodes. Now, all
ASTMatchers have the same name as the corresponding AST nodes
but are lower case. The only exceptions are the "CXX" prefixes
which are not copied over to the matcher names as the goal is to
actually remove these prefixes from the AST node names.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162536 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoOn OS X, use xcrun (if present) to find the clang to use for static analysis if
Ted Kremenek [Fri, 24 Aug 2012 04:53:06 +0000 (04:53 +0000)]
On OS X, use xcrun (if present) to find the clang to use for static analysis if
no clang can be found relative to the location of scan-build.

Fixes <rdar://problem/11691794>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162535 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[analyzer] Fix realloc related bug in the malloc checker.
Anna Zaks [Fri, 24 Aug 2012 02:28:20 +0000 (02:28 +0000)]
[analyzer] Fix realloc related bug in the malloc checker.

When reallocation of a non-allocated (not owned) symbol fails do not
expect it to be freed.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162533 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[analyzer] Remove unnecessary code.
Anna Zaks [Fri, 24 Aug 2012 01:39:13 +0000 (01:39 +0000)]
[analyzer] Remove unnecessary code.

This code has been added a while ago and removing it does not trigger
any test failures. The false positives it was trying to suppress are
probably handled by other logic (ex: special handling of delegates).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162529 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[analyzer] Move DynamicTypeInfo out of the ProgramState.h
Anna Zaks [Fri, 24 Aug 2012 01:39:10 +0000 (01:39 +0000)]
[analyzer] Move DynamicTypeInfo out of the ProgramState.h

(I am not sure if we should move the setters and getters as well and
make them into static methods..)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162528 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoNew -fcatch-undefined-behavior features:
Richard Smith [Fri, 24 Aug 2012 00:54:33 +0000 (00:54 +0000)]
New -fcatch-undefined-behavior features:
 * when checking that a pointer or reference refers to appropriate storage for a type, also check the alignment and perform a null check
 * check that references are bound to appropriate storage
 * check that 'this' has appropriate storage in member accesses and member function calls

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162523 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoUpdated LibTooling.html, minor improvements in CommonOptionsParser
Alexander Kornienko [Fri, 24 Aug 2012 00:39:14 +0000 (00:39 +0000)]
Updated LibTooling.html, minor improvements in CommonOptionsParser

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162521 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoDeclPrinter tests: mark test case we get wrong currently with WRONG.
Dmitri Gribenko [Fri, 24 Aug 2012 00:27:50 +0000 (00:27 +0000)]
DeclPrinter tests: mark test case we get wrong currently with WRONG.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162512 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoDeclPrinter tests: add two more tests.
Dmitri Gribenko [Fri, 24 Aug 2012 00:26:25 +0000 (00:26 +0000)]
DeclPrinter tests: add two more tests.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162511 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[ms-inline asm] Add the basic APIs for Exprs to the MSAsmStmt AST. Next we need
Chad Rosier [Fri, 24 Aug 2012 00:07:09 +0000 (00:07 +0000)]
[ms-inline asm] Add the basic APIs for Exprs to the MSAsmStmt AST.  Next we need
generate the Input/Output expressions using Sema::ActOnIdExpression().

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162509 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[analyzer] Make analyzer less aggressive when dealing with [self init].
Anna Zaks [Fri, 24 Aug 2012 00:06:12 +0000 (00:06 +0000)]
[analyzer] Make analyzer less aggressive when dealing with [self init].

With inlining, retain count checker starts tracking 'self' through the
init methods. The analyser results were too noisy if the developer
did not follow 'self = [super init]' pattern (which is common
especially in older code bases) - we reported self init anti-pattern AND
possible use-after-free. This patch teaches the retain count
checker to assume that [super init] does not fail when it's not consumed
by another expression. This silences the retain count warning that warns
about possibility of use-after-free when init fails, while preserving
all the other checking on 'self'.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162508 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoComment semantic analysis: treat function typedefs as functions so that one can
Dmitri Gribenko [Fri, 24 Aug 2012 00:05:30 +0000 (00:05 +0000)]
Comment semantic analysis: treat function typedefs as functions so that one can
use \param and \returns in documentation.

Fixes PR13533.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162507 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoFix a few -Wdocumentation warnings.
Dmitri Gribenko [Fri, 24 Aug 2012 00:01:24 +0000 (00:01 +0000)]
Fix a few -Wdocumentation warnings.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162506 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoNow that ASTMultiPtr is nothing more than a array reference, make it a MutableArrayRef.
Benjamin Kramer [Thu, 23 Aug 2012 23:38:35 +0000 (23:38 +0000)]
Now that ASTMultiPtr is nothing more than a array reference, make it a MutableArrayRef.

This required changing all get() calls to data() and using the simpler constructors.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162501 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[scan-build] Accept -fno-objc-arc as well as -fobjc-arc.
Jordan Rose [Thu, 23 Aug 2012 23:16:34 +0000 (23:16 +0000)]
[scan-build] Accept -fno-objc-arc as well as -fobjc-arc.

This is how Xcode lets individual files be marked as non-ARC when the rest
of the project is ARC-enabled, so this is necessary for scan-build xcodebuild.

Patch by Paul Eipper!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162497 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[analyzer] For now, treat pointers-to-members as non-null void * symbols.
Jordan Rose [Thu, 23 Aug 2012 23:01:43 +0000 (23:01 +0000)]
[analyzer] For now, treat pointers-to-members as non-null void * symbols.

Until we have full support for pointers-to-members, we can at least
approximate some of their use by tracking null and non-null values.
We thus treat &A::m_ptr as a non-null void * symbol, and MemberPointer(0)
as a pointer-sized null constant.

This enables support for what is sometimes called the "safe bool" idiom,
demonstrated in the test case.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162495 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[analyzer] Handle UserDefinedConversion casts in C++.
Jordan Rose [Thu, 23 Aug 2012 23:01:39 +0000 (23:01 +0000)]
[analyzer] Handle UserDefinedConversion casts in C++.

This is trivial; the UserDefinedConversion always wraps a CXXMemberCallExpr
for the appropriate conversion function, so it's just a matter of
propagating that value to the CastExpr itself.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162494 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoRemove ASTOwningVector, it doesn't own anything and provides no value over SmallVector.
Benjamin Kramer [Thu, 23 Aug 2012 22:51:59 +0000 (22:51 +0000)]
Remove ASTOwningVector, it doesn't own anything and provides no value over SmallVector.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162492 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoAttaching comments to decls: since it was decided that Decl::isImplicit should
Dmitri Gribenko [Thu, 23 Aug 2012 22:40:40 +0000 (22:40 +0000)]
Attaching comments to decls: since it was decided that Decl::isImplicit should
not be set for implicit instantiations, remove the FIXME.  This should be the
last bit for PR13634.  The actual fix happened in r162238.

Motivation: it might be misleading to mark implicit instantiations as
Decl::isImplicit = true.  Because then, in order to be consistent, we should
mark all instantiated members as implicit.  But the user did actually type the
declaration for the member, but the compiler played with it a little bit.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162488 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[ms-inline asm] Add a few helper function to the MSAsmStmt class that are needed
Chad Rosier [Thu, 23 Aug 2012 21:55:11 +0000 (21:55 +0000)]
[ms-inline asm] Add a few helper function to the MSAsmStmt class that are needed
by CodeGen.

In the long-term, much of the codegen logic will be shared between the GNU-style
and MS-style inline assembly, but for now I'm replicating this logic to avoid
regressions with the GNU-style.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162478 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoRip out remnants of move semantic emulation and smart pointers in Sema.
Benjamin Kramer [Thu, 23 Aug 2012 21:35:17 +0000 (21:35 +0000)]
Rip out remnants of move semantic emulation and smart pointers in Sema.

These were nops for quite a while and only lead to confusion. ASTMultiPtr
now behaves like a proper dumb array reference.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162475 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoAdded a method to DeclContext that marks the
Sean Callanan [Thu, 23 Aug 2012 21:16:40 +0000 (21:16 +0000)]
Added a method to DeclContext that marks the
lookup table as needing to be built.

This is required for LLDB, which provides the
contents of many DeclContexts through a custom
ExternalASTSource.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162471 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoChange a bunch of cases where we do "getAs<...>->doSomething()" to
Ted Kremenek [Thu, 23 Aug 2012 20:46:57 +0000 (20:46 +0000)]
Change a bunch of cases where we do "getAs<...>->doSomething()" to
"castAs<...>->doSomething()".  The analyzer was flagging these
as potential null dereferences, which is technically true.  The
invariants appear to be that these casts should never fail, so
let's use castAs<> instead and avoid a runtime check.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162468 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoWhen disambiguating an expression-statement from a declaraton-statement, if the
Richard Smith [Thu, 23 Aug 2012 20:19:14 +0000 (20:19 +0000)]
When disambiguating an expression-statement from a declaraton-statement, if the
statement starts with an identifier for which name lookup will fail either way,
look at later tokens to disambiguate in order to improve error recovery.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162464 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[ms-inline asm] Remove an unused argument. This logic can now be reused by the
Chad Rosier [Thu, 23 Aug 2012 20:00:18 +0000 (20:00 +0000)]
[ms-inline asm] Remove an unused argument.  This logic can now be reused by the
ms-style inline asms.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162463 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[analyzer] Support C++ default arguments if they are literal values.
Jordan Rose [Thu, 23 Aug 2012 18:10:53 +0000 (18:10 +0000)]
[analyzer] Support C++ default arguments if they are literal values.

A CXXDefaultArgExpr wraps an Expr owned by a ParmVarDecl belonging to the
called function. In general, ExprEngine and Environment ought to treat this
like a ParenExpr or other transparent wrapper expression, with the inside
expression evaluated first.

However, if we call the same function twice, we'd produce a CFG that contains
the same wrapped expression twice, and we're not set up to handle that. I've
added a FIXME to the CFG builder to come back to that, but meanwhile we can
at least handle expressions that don't need to be explicitly evaluated:
literals. This probably handles many common uses of default parameters:
true/false, null, etc.

Part of PR13385 / <rdar://problem/12156507>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162453 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoFix a bunch of -Wdocumentation warnings.
Dmitri Gribenko [Thu, 23 Aug 2012 17:58:28 +0000 (17:58 +0000)]
Fix a bunch of -Wdocumentation warnings.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162452 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[ms-inline asm] Rename a few induction variables to avoid confusion and silence
Chad Rosier [Thu, 23 Aug 2012 15:44:35 +0000 (15:44 +0000)]
[ms-inline asm] Rename a few induction variables to avoid confusion and silence
a gcc warning.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162444 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoMark these const.
Roman Divacky [Thu, 23 Aug 2012 13:57:21 +0000 (13:57 +0000)]
Mark these const.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162443 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoFix transposed optional / required in Objective-C metadata (GNUstep runtime)
David Chisnall [Thu, 23 Aug 2012 12:17:21 +0000 (12:17 +0000)]
Fix transposed optional / required in Objective-C metadata (GNUstep runtime)

Patch by Niels Grewe!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162441 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoAttempt to fix clang bootstrap (broken by r162425).
Eli Friedman [Thu, 23 Aug 2012 11:27:56 +0000 (11:27 +0000)]
Attempt to fix clang bootstrap (broken by r162425).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162440 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoFix undefined behavior: member function calls where 'this' is a null pointer.
Richard Smith [Thu, 23 Aug 2012 06:16:52 +0000 (06:16 +0000)]
Fix undefined behavior: member function calls where 'this' is a null pointer.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162430 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoarray_pod_sort on the addresses of declaration pointers leads to
Douglas Gregor [Thu, 23 Aug 2012 05:05:18 +0000 (05:05 +0000)]
array_pod_sort on the addresses of declaration pointers leads to
inconsistent ordering of results; instead, use use SmallPtrSet to
eliminate duplicates.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162429 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoFix undefined behavior: don't call ObjCInterfaceDecl::isArcWeakrefUnavailable
Richard Smith [Thu, 23 Aug 2012 04:53:18 +0000 (04:53 +0000)]
Fix undefined behavior: don't call ObjCInterfaceDecl::isArcWeakrefUnavailable
on a null pointer. (This function happens to work for a null 'this' pointer, so
no test.)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162427 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoUse the alignment from lvalue emission to more accurately compute the alignment
Eli Friedman [Thu, 23 Aug 2012 03:10:17 +0000 (03:10 +0000)]
Use the alignment from lvalue emission to more accurately compute the alignment
of a pointer for builtin emission, instead of just depending on the type of the
pointee.  <rdar://problem/11314941>.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162425 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoDon't recycle loop variables (to keep GCC happy).
Matt Beaumont-Gay [Thu, 23 Aug 2012 01:51:18 +0000 (01:51 +0000)]
Don't recycle loop variables (to keep GCC happy).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162424 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoFix 80-column violation.
Chad Rosier [Thu, 23 Aug 2012 00:12:51 +0000 (00:12 +0000)]
Fix 80-column violation.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162416 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoFix an assortment of doxygen comment issues found by -Wdocumentation.
Ted Kremenek [Wed, 22 Aug 2012 23:50:41 +0000 (23:50 +0000)]
Fix an assortment of doxygen comment issues found by -Wdocumentation.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162412 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[ms-inline asm] Compute the inputs and outputs. No test case (yet) as this
Chad Rosier [Wed, 22 Aug 2012 23:42:09 +0000 (23:42 +0000)]
[ms-inline asm] Compute the inputs and outputs.  No test case (yet) as this
requires codegen support.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162410 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[libclang] c-index-test: Make the printing of the overrides list of a cursor in
Argyrios Kyrtzidis [Wed, 22 Aug 2012 23:15:52 +0000 (23:15 +0000)]
[libclang] c-index-test: Make the printing of the overrides list of a cursor in
a deterministic order, to avoid random test failures.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162408 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoComment parsing: parse "<blah" as an HTML tag only if "blah" is a known tag
Dmitri Gribenko [Wed, 22 Aug 2012 22:56:08 +0000 (22:56 +0000)]
Comment parsing: parse "<blah" as an HTML tag only if "blah" is a known tag
name.  This should reduce the amount of warning false positives about bad HTML
in comments when the comment author intended to put a reference to a template.
This change will also enable us parse the comment as intended in these cases.

Fixes part 1 of PR13374.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162407 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[analyzer] Fixup to r162399. Initialize the member variable.
Anna Zaks [Wed, 22 Aug 2012 22:47:58 +0000 (22:47 +0000)]
[analyzer] Fixup to r162399. Initialize the member variable.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162405 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[ms-inline asm] Refactor code so that we can begin computing the Inputs/Outputs.
Chad Rosier [Wed, 22 Aug 2012 22:10:51 +0000 (22:10 +0000)]
[ms-inline asm] Refactor code so that we can begin computing the Inputs/Outputs.
No functional change intended.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162403 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[analyzer] Add more comments to CallEvent and RuntimeDefinition.
Anna Zaks [Wed, 22 Aug 2012 21:19:59 +0000 (21:19 +0000)]
[analyzer] Add more comments to CallEvent and RuntimeDefinition.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162399 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[analyzer] Add osx.cocoa.NonNilReturnValue checker.
Anna Zaks [Wed, 22 Aug 2012 21:19:56 +0000 (21:19 +0000)]
[analyzer] Add osx.cocoa.NonNilReturnValue checker.

The checker adds assumptions that the return values from the known APIs
are non-nil. Teach the checker about NSArray/NSMutableArray/NSOrderedSet
objectAtIndex, objectAtIndexedSubscript.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162398 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[ms-inline asm] Add comments.
Chad Rosier [Wed, 22 Aug 2012 21:12:19 +0000 (21:12 +0000)]
[ms-inline asm] Add comments.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162396 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[ms-inline asm] Add comments.
Chad Rosier [Wed, 22 Aug 2012 21:08:06 +0000 (21:08 +0000)]
[ms-inline asm] Add comments.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162394 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[ms-inline asm] Add helper function. No functional change intended.
Chad Rosier [Wed, 22 Aug 2012 21:04:07 +0000 (21:04 +0000)]
[ms-inline asm] Add helper function.  No functional change intended.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162393 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[ms-inline asm] Simplify logic. No functional change intended.
Chad Rosier [Wed, 22 Aug 2012 20:57:07 +0000 (20:57 +0000)]
[ms-inline asm] Simplify logic.  No functional change intended.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162392 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoReverted clang-check to fully supported CommandLine Library use-case: global
Alexander Kornienko [Wed, 22 Aug 2012 20:52:52 +0000 (20:52 +0000)]
Reverted clang-check to fully supported CommandLine Library use-case: global
static variables.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162391 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[ms-inline asm] Compute the token range for each instruction within the asm.
Chad Rosier [Wed, 22 Aug 2012 20:30:58 +0000 (20:30 +0000)]
[ms-inline asm] Compute the token range for each instruction within the asm.
Eventually, we'll need a way of mapping tokens (and their IdentifierInfo*) to
the operands computed by buildMSAsmPieces().

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162388 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoDespite me asking Jordan to do r162313, revert it. We can provide
Ted Kremenek [Wed, 22 Aug 2012 19:58:20 +0000 (19:58 +0000)]
Despite me asking Jordan to do r162313, revert it.  We can provide
another way to whitelist these special cases.  This is an intermediate patch.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162386 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[ms-inline asm] Simplify logic. No functional change intended.
Chad Rosier [Wed, 22 Aug 2012 19:50:28 +0000 (19:50 +0000)]
[ms-inline asm] Simplify logic.  No functional change intended.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162385 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoRemove BasicConstraintManager. It hasn't been in active service for a while.
Ted Kremenek [Wed, 22 Aug 2012 19:47:13 +0000 (19:47 +0000)]
Remove BasicConstraintManager.  It hasn't been in active service for a while.

As part of this change, I discovered that a few of our tests were not testing
the RangeConstraintManager.  Luckily all of those passed when I moved them
over to use that constraint manager.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162384 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[ms-inline asm] Start sending non-simple inline asms to the AsmParser.
Chad Rosier [Wed, 22 Aug 2012 19:18:30 +0000 (19:18 +0000)]
[ms-inline asm] Start sending non-simple inline asms to the AsmParser.

The parser still can't handle all cases, so fall back to emitting a simple
MSAsmStmt if we get into trouble.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162382 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoMake ceil/floor/nearbyint/rint/round const even with -fmath-errno.
Benjamin Kramer [Wed, 22 Aug 2012 18:50:01 +0000 (18:50 +0000)]
Make ceil/floor/nearbyint/rint/round const even with -fmath-errno.

The conditions described by POSIX can never happen with IEEE-754 floats.
When the function is const we can emit a single sse4.1 instruction for
it, without losing anything :)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162379 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoMath builtin definition tweaks.
Benjamin Kramer [Wed, 22 Aug 2012 18:16:02 +0000 (18:16 +0000)]
Math builtin definition tweaks.

There were missed optimizations when the system headers didn't have attributes
in place, specifically:

- Add copysign, exp2, log2, nearbyint, rint and trunc to the list.
  These are functions that get inlined by LLVM's optimizer, but only when they
  have the right attributes.
- Mark copysign, fabs, fmax, fmin and trunc const unconditionally.
  Previously these were only const with -fno-math-errno, but they never set
  errno per POSIX.

For ceil/floor/nearbyint/round I'm not aware of any implementation that sets
errno, but POSIX says it may signal overflow so I left them alone for now.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162375 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoASTContext::getCommentForDecl: add comment.
Dmitri Gribenko [Wed, 22 Aug 2012 18:12:19 +0000 (18:12 +0000)]
ASTContext::getCommentForDecl: add comment.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162374 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoAttaching comments to declarations: when documentation is requested for an
Dmitri Gribenko [Wed, 22 Aug 2012 17:44:32 +0000 (17:44 +0000)]
Attaching comments to declarations: when documentation is requested for an
implicit instantiation, look for documentation attached to the template.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162371 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[analyzer] Restructure discussion of DynamicTypeInfo and RuntimeDefinition.
Jordan Rose [Wed, 22 Aug 2012 17:13:27 +0000 (17:13 +0000)]
[analyzer] Restructure discussion of DynamicTypeInfo and RuntimeDefinition.

Since DynamicTypeInfo is not inherently related to inlining or to dynamic
calls, it makes more sense (to me) to discuss it first.

Also fix some typos, massage some grammar, and (hopefully) improve precision
and clarity.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162365 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[analyzer] Per feedback, re-structure the docs for ExprInspection checks.
Jordan Rose [Wed, 22 Aug 2012 17:13:22 +0000 (17:13 +0000)]
[analyzer] Per feedback, re-structure the docs for ExprInspection checks.

Also, remove the FIXME about merging -analyzer-stats and the debug.Stats
checker. This would be a bad idea because simply running debug.Stats can
affect the output of -analyzer-stats.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162364 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoReduce duplicated hash map lookups.
Benjamin Kramer [Wed, 22 Aug 2012 15:37:55 +0000 (15:37 +0000)]
Reduce duplicated hash map lookups.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162361 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoMerge existing attributes before processing pragmas in friend template
Rafael Espindola [Wed, 22 Aug 2012 14:52:14 +0000 (14:52 +0000)]
Merge existing attributes before processing pragmas in friend template
declarations.
Fixes pr13662.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162360 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoFix typo in debug method.
Benjamin Kramer [Wed, 22 Aug 2012 08:38:23 +0000 (08:38 +0000)]
Fix typo in debug method.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162352 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoRename 'unbindLoc()' (in ProgramState) and 'Remove()' to
Ted Kremenek [Wed, 22 Aug 2012 06:37:46 +0000 (06:37 +0000)]
Rename 'unbindLoc()' (in ProgramState) and 'Remove()' to
'killBinding()'.  The name is more specific, and one just forwarded
to the other.

Add some doxygen comments along the way.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162350 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoRename 'currentX' to 'currX' throughout analyzer and libAnalysis.
Ted Kremenek [Wed, 22 Aug 2012 06:26:15 +0000 (06:26 +0000)]
Rename 'currentX' to 'currX' throughout analyzer and libAnalysis.
Also rename 'getCurrentBlockCounter()' to 'blockCount()'.

This ripples a bunch of code simplifications; mostly aesthetic,
but makes the code a bit tighter.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162349 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoRename 'getConjuredSymbol*' to 'conjureSymbol*'.
Ted Kremenek [Wed, 22 Aug 2012 06:26:06 +0000 (06:26 +0000)]
Rename 'getConjuredSymbol*' to 'conjureSymbol*'.

No need to have the "get", the word "conjure" is a verb too!
Getting a conjured symbol is the same as conjuring one up.

This shortening is largely cosmetic, but just this simple changed
cleaned up a handful of lines, making them less verbose.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162348 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoRemove Store::bindDecl() and Store::bindDeclWithNoInit(), and
Ted Kremenek [Wed, 22 Aug 2012 06:00:18 +0000 (06:00 +0000)]
Remove Store::bindDecl() and Store::bindDeclWithNoInit(), and
all forwarding methods.

This functionality is already covered by bindLoc().

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162346 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoRename 'BindCompoundLiteral' to 'bindCompoundLiteral' and
Ted Kremenek [Wed, 22 Aug 2012 06:00:12 +0000 (06:00 +0000)]
Rename 'BindCompoundLiteral' to 'bindCompoundLiteral' and
add doxygen comments.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162345 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[analyzer] IPA document: address Ted's review comments (path
Anna Zaks [Wed, 22 Aug 2012 05:38:38 +0000 (05:38 +0000)]
[analyzer] IPA document: address Ted's review comments (path
bifurcation)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162343 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoRemove stale header file.
Ted Kremenek [Wed, 22 Aug 2012 04:42:05 +0000 (04:42 +0000)]
Remove stale header file.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162341 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoReview, comment, and reformat IPA.txt, including feedback comments.
Ted Kremenek [Wed, 22 Aug 2012 01:20:05 +0000 (01:20 +0000)]
Review, comment, and reformat IPA.txt, including feedback comments.

Formatting includes:

- removing line wraps (Emacs Cmd-Q), to make text easier to read
- provide useful indentation
- call out caveats and notes more explictly

Stylistically, I prefer the document talk in 3rd person instead of "we".  The
term "we" is unambiguous, and sometimes refers to different things.  I've passed
over the existing paragraphs and made them speak more about specific entities
that compose the analyzer and what they do (e.g., ExprEngine) instead of "we"
referring to the analyzer.

Further, I have substituted some vague concepts such as "state" or "program
state" and replaced them with their precise implementation counterparts (e.g.,
ProgramState).  This makes the document more technically precise throughout the
entire narrative, which would sometimes use vague terms and other times precise
terms.

I've placed several comments within the document, which can be seen with
***TMK/COMMENT***, which indicate places that need to be enhanced or clarified,
or called out as questions about intended bheavior.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162338 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[analyzer] Document our debug checkers and ExprInspection's "builtins".
Jordan Rose [Wed, 22 Aug 2012 01:03:39 +0000 (01:03 +0000)]
[analyzer] Document our debug checkers and ExprInspection's "builtins".

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162336 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoConsilidate SmallPtrSet count() followed by insert() into a single insert().
Ted Kremenek [Wed, 22 Aug 2012 00:02:08 +0000 (00:02 +0000)]
Consilidate SmallPtrSet count() followed by insert() into a single insert().

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162330 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[ms-inline asm] Remove the patchMSAsmStrings function. After some discussion
Chad Rosier [Tue, 21 Aug 2012 23:09:21 +0000 (23:09 +0000)]
[ms-inline asm] Remove the patchMSAsmStrings function.  After some discussion
between Bob, Jim, Eric and I, we've decided to take a slightly different
approach.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162327 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoAdd an llvm_unreachable to pacify GCC's -Wreturn-type.
Matt Beaumont-Gay [Tue, 21 Aug 2012 22:27:18 +0000 (22:27 +0000)]
Add an llvm_unreachable to pacify GCC's -Wreturn-type.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162325 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agomake test pass on linux platforms.
Fariborz Jahanian [Tue, 21 Aug 2012 22:21:43 +0000 (22:21 +0000)]
make test pass on linux platforms.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162324 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[ms-inline asm] Have buildMSAsmString build a vector of unmodified AsmStrings.
Chad Rosier [Tue, 21 Aug 2012 21:56:39 +0000 (21:56 +0000)]
[ms-inline asm] Have buildMSAsmString build a vector of unmodified AsmStrings.
Add a new static function, buildMSAsmPieces, that will break these strings down
into mnemonic and operands.  Upon a match failure, the idea is to use the
ErrorInfo from MatchInstructionImpl to inspect the mnemonic/operand and
decide a course of action.  Unfortunately, there's no easy way to test this at
the moment.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162321 91177308-0d34-0410-b5e6-96231b3b80d8