aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2009-05-06Add --analyze-auto.Daniel Dunbar
- Currently just an alias for --analyze, eventually we want to refit --analyze so that it is less automatic (i.e., does not force plist output and does not hard code the list of checks). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71056 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-06Update checker build.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71046 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-06Override some pod2man defaults.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71045 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-05Fixes a bug for objc2's gc in the presense of type-casts.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71041 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-05BugReporter (extensive diagnostics): improve location context generation for theTed Kremenek
start of 'do' and '@synchronized' statements. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71038 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-05source-level CFG: have the body for the @synchronized start with its own basicTed Kremenek
block. This makes it a little easier for diagnostics generation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71037 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-05BugReporter (extensive diagnostics): Fix getEnclosingStmtLocation to reasonTed Kremenek
about Exprs that are not consumed and fix where the loop iteration diagnostic goes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71027 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-05Fix subtle bug in ParentMap::isConsumedExpr(): correctly ignore *parents* thatTed Kremenek
are ParenExpr or CastExprs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71026 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-05Fix rdar://6849429 - -Wunused-value with deeply nested macro expansion ↵Chris Lattner
generates untraceable warnings The "instantiated from" messages coming from the caret diagnostics system are basically walking the macro expansion tree, emitting each level as it goes. However, it was skipping certain leaves in the tree by skipping up the entire instantiation arm every time it went up one spelling arm. This caused it to miss some things. For example, in this testcase: #define M1(x) x #define M2 1; void foo() { M1(M2) } we now print: /Users/sabre/Desktop/clang-unused-value-macro.c:6:2: warning: expression result unused M1(M2) ^~~~~~ /Users/sabre/Desktop/clang-unused-value-macro.c:6:5: note: instantiated from: M1(M2) ^~ /Users/sabre/Desktop/clang-unused-value-macro.c:3:12: note: instantiated from: #define M2 1; ^ Previously we didn't print the last line, so we never emitted the caret pointing to the 1! Incidentally, the spaces between the lines is really noisy, I think we should reconsider this heuristic (which adds them when the printed code starts too close to the start of the line). The regression test can't use -verify, because -verify doesn't catch notes for macro instantiation history. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71025 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-05rename testChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71024 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-05Patch to support Gnu runtime's typed selectors.Fariborz Jahanian
Patch by David Chisnall. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71023 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-05257 -> FSChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70996 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-05Enable tight Objective-C interface layout unconditionally.Daniel Dunbar
- I will remove the flag when I'm comfortable there is no fallout from this. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70993 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-05Implement attribute 'ns_autorelease'.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70990 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-05Issue a warning in odd case of instance method usedFariborz Jahanian
in a 'Class' receiver which is not a root instance method. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70987 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-05remove some incorrect and unimplemented atomic builtins (e.g. Chris Lattner
__sync_umin_and_fetch), add some missing atomic builtins (e.g. __sync_fetch_and_nand) and reorder the list to match the GCC documentation. The builtins still need work and codegen implementation, more patches coming. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70985 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-05Enhance ownership attribute tests with functions that use the attributes!Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70984 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-05When defining a function whose type has no prototype, make an effortChris Lattner
to go back and clean up existing uses of the bitcasted function. This is not just an optimization: it is required for correctness to get always inline functions to work, see testcases in function-attributes.c. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70971 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-05fix some more cases where we'd emit a file with a line of 0 for implicitChris Lattner
types. In this case, it was objc_selector and objc_class. This fixes rdar://6852754 - clang sometimes generates incorrect/unknown file/line info for DW_TAG__structure_type dies git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70969 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-05Do not generate bogus location info for DW_TAG_inheritanceChris Lattner
DIEs. We were generating a loc with line of 0 and a file. These tags do not need locations at all, just remove it. this fixes rdar://6852792 - Clang generates incorrect (and unnecessary) file and line info for DW_TAG_inheritance dies git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70966 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-05Fix generated debug info for decls with no location (which include self/_cmdChris Lattner
in ObjC) to not emit file/line location information. Previously we would output a file with bogus line information. This fixes: rdar://6852814 - Clang generates incorrect file & line info for automatic/understood formal parameters for objc-programs git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70965 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-05Turns out that Sebastian already implemented the logic to compute theDouglas Gregor
composite pointer type, and his is better! Updated relational- and equality-operator checking accordingly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70963 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-05Refactor global decls to hold either a regular Decl or a CXXConstructorDecl ↵Anders Carlsson
+ ctor type or a CXXDestructorDecl + dtor type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70962 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-05Update checker build.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70961 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-05Implement attribute 'cf_returns_owned' (mirrors 'ns_returns_owned').Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70952 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-05Remove an unneeded lookup routine.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70951 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-05Rename ownership attributes:Ted Kremenek
ns_ownership_returns -> ns_returns_owned ns_ownership_retain -> ns_retains ns_ownership_release -> ns_releases cf_ownership_retain -> cf_retains cf_ownership_release -> cf_releases git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70949 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-05Fix unused variable warningTed Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70946 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-05Remove possibly incorrect assertion that doesn't matter.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70943 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-04Rename attribute 'ns_ownership_returns' to 'ns_returns_ownership'.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70941 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-04Remove experimental attribute 'ns_ownership_make_collectable.'Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70940 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-04Provide basic support for generation of objc2's Fariborz Jahanian
objc_assign_global API when assigning to global objective-c object pointer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70939 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-04Fix the field count in interface record layout (it was incorrectlyDaniel Dunbar
compensating for super classes). This was making the reported class sizes for empty classes very, very wrong. - Also, we now report the size info for an empty class like gcc (as the offset of the start, not as 0, 0). - Add a few more test cases we were mishandling before (padding bit field at end of struct, for example). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70938 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-04Adding more test to ivar-layout-64.m.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70918 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-04Compute interface instanceStart and instanceSize using the recordDaniel Dunbar
layout. - This is much simpler / more efficient. - This also properly computes the size in the presence of bit-fields. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70916 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-04Add ASTRecordLayout::getFieldCount accessor, change NextOffset field to 64-bits.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70914 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-04Add ASTRecordLayout::getNextOffset accessor, and some doxygen comments.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70909 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-04Initialize NextOffset correctly, otherwise tight layout fails forDaniel Dunbar
empty classes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70905 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-04ignore weak_import attribute on objc method decls.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70901 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-04Rename attributes 'objc_ownership...' to 'ns_ownership...'.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70897 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-04Increase scan-view max timeout to 1 minute.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70896 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-04"Fix" a problem with debug info in the presence of always_inlineChris Lattner
function calls. For a program like this: #include <stdio.h> static __inline__ __attribute__((always_inline)) int bar(int x) { return 4; } int main() { int X = bar(4); printf("%d\n", X); } clang was not outputing any debug info for the body of main(). This is because the backend is getting confused by the region_start/end that clang is emitting for block scopes. For now, just disable these (matching llvm-gcc), this stuff is in progress of rework anyway. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70889 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-04BugReporter (extensive diagnostics): don't mark location contexts that areTed Kremenek
control-flow expressions as dead. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70887 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-04Fix false positive null dereference by unifying code paths in GRSimpleVals forTed Kremenek
'==' and '!=' (some code in the '!=' was not replicated in the '==' code, causing some constraints to get lost). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70885 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-04Rename attributes:Ted Kremenek
'objc_ownership_cfretain' -> 'cf_ownership_retain' 'objc_ownership_cfrelease' -> 'cf_ownership_release' Motivation: Core Foundation objects can be used in isolation from Objective-C, and this forces users to reason about the separate semantics of CF objects. More Sema support pending. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70884 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-04Update test case.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70883 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-04Remove support for ObjCMethodDecl attributes that appear between theTed Kremenek
return type and the selector. This is inconsistent with C functions (where such attributes would be placed on the return type, not the the FunctionDecl), and is inconsistent with what people are use to seeing. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70878 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-04"The attached diff fixes the //FIXME in message send to super. This should ↵Chris Lattner
now be faster, and works in the presence of class posing. This is now the same approach as used in GCC (the earlier code was a quick hack to get something working)." Patch by David Chisnall! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70877 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-04retain checker: Add checker support for FunctionDecl ownership annotations. ↵Ted Kremenek
Need to add Sema support. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70873 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-04retain checker: Pull out logic for parameter annotations into aTed Kremenek
separate method. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70870 91177308-0d34-0410-b5e6-96231b3b80d8