aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2012-08-24On OS X, use xcrun (if present) to find the clang to use for static analysis ifTed Kremenek
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
2012-08-24[analyzer] Fix realloc related bug in the malloc checker.Anna Zaks
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
2012-08-24[analyzer] Remove unnecessary code.Anna Zaks
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
2012-08-24[analyzer] Move DynamicTypeInfo out of the ProgramState.hAnna Zaks
(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
2012-08-24New -fcatch-undefined-behavior features:Richard Smith
* 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
2012-08-24Updated LibTooling.html, minor improvements in CommonOptionsParserAlexander Kornienko
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162521 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-24DeclPrinter tests: mark test case we get wrong currently with WRONG.Dmitri Gribenko
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162512 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-24DeclPrinter tests: add two more tests.Dmitri Gribenko
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162511 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-24[ms-inline asm] Add the basic APIs for Exprs to the MSAsmStmt AST. Next we needChad Rosier
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
2012-08-24[analyzer] Make analyzer less aggressive when dealing with [self init].Anna Zaks
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
2012-08-24Comment semantic analysis: treat function typedefs as functions so that one canDmitri Gribenko
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
2012-08-24Fix a few -Wdocumentation warnings.Dmitri Gribenko
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162506 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-23Now that ASTMultiPtr is nothing more than a array reference, make it a ↵Benjamin Kramer
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
2012-08-23[scan-build] Accept -fno-objc-arc as well as -fobjc-arc.Jordan Rose
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
2012-08-23[analyzer] For now, treat pointers-to-members as non-null void * symbols.Jordan Rose
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
2012-08-23[analyzer] Handle UserDefinedConversion casts in C++.Jordan Rose
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
2012-08-23Remove ASTOwningVector, it doesn't own anything and provides no value over ↵Benjamin Kramer
SmallVector. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162492 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-23Attaching comments to decls: since it was decided that Decl::isImplicit shouldDmitri Gribenko
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
2012-08-23[ms-inline asm] Add a few helper function to the MSAsmStmt class that are neededChad Rosier
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
2012-08-23Rip out remnants of move semantic emulation and smart pointers in Sema.Benjamin Kramer
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
2012-08-23Added a method to DeclContext that marks theSean Callanan
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
2012-08-23Change a bunch of cases where we do "getAs<...>->doSomething()" toTed Kremenek
"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
2012-08-23When disambiguating an expression-statement from a declaraton-statement, if theRichard Smith
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
2012-08-23[ms-inline asm] Remove an unused argument. This logic can now be reused by theChad Rosier
ms-style inline asms. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162463 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-23[analyzer] Support C++ default arguments if they are literal values.Jordan Rose
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
2012-08-23Fix a bunch of -Wdocumentation warnings.Dmitri Gribenko
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162452 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-23[ms-inline asm] Rename a few induction variables to avoid confusion and silenceChad Rosier
a gcc warning. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162444 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-23Mark these const.Roman Divacky
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162443 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-23Fix transposed optional / required in Objective-C metadata (GNUstep runtime)David Chisnall
Patch by Niels Grewe! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162441 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-23Attempt to fix clang bootstrap (broken by r162425).Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162440 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-23Fix undefined behavior: member function calls where 'this' is a null pointer.Richard Smith
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162430 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-23array_pod_sort on the addresses of declaration pointers leads toDouglas Gregor
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
2012-08-23Fix undefined behavior: don't call ObjCInterfaceDecl::isArcWeakrefUnavailableRichard Smith
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
2012-08-23Use the alignment from lvalue emission to more accurately compute the alignmentEli Friedman
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
2012-08-23Don't recycle loop variables (to keep GCC happy).Matt Beaumont-Gay
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162424 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-23Fix 80-column violation.Chad Rosier
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162416 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-22Fix an assortment of doxygen comment issues found by -Wdocumentation.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162412 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-22[ms-inline asm] Compute the inputs and outputs. No test case (yet) as thisChad Rosier
requires codegen support. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162410 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-22[libclang] c-index-test: Make the printing of the overrides list of a cursor inArgyrios Kyrtzidis
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
2012-08-22Comment parsing: parse "<blah" as an HTML tag only if "blah" is a known tagDmitri Gribenko
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
2012-08-22[analyzer] Fixup to r162399. Initialize the member variable.Anna Zaks
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162405 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-22[ms-inline asm] Refactor code so that we can begin computing the Inputs/Outputs.Chad Rosier
No functional change intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162403 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-22[analyzer] Add more comments to CallEvent and RuntimeDefinition.Anna Zaks
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162399 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-22[analyzer] Add osx.cocoa.NonNilReturnValue checker.Anna Zaks
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
2012-08-22[ms-inline asm] Add comments.Chad Rosier
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162396 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-22[ms-inline asm] Add comments.Chad Rosier
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162394 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-22[ms-inline asm] Add helper function. No functional change intended.Chad Rosier
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162393 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-22[ms-inline asm] Simplify logic. No functional change intended.Chad Rosier
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162392 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-22Reverted clang-check to fully supported CommandLine Library use-case: globalAlexander Kornienko
static variables. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162391 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-22[ms-inline asm] Compute the token range for each instruction within the asm.Chad Rosier
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