aboutsummaryrefslogtreecommitdiff
path: root/test/SemaObjC
AgeCommit message (Collapse)Author
2012-09-17objective-C: peroform property attribute consistencyFariborz Jahanian
checking on property declared in class extension. // rdar://12214070 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164053 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-17objective-C: issue warning when there is no whitespaceFariborz Jahanian
between objc method parameter name and colon. // rdar://12263549 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164047 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-17-Warc-retain-cycles: look through [^{...} copy] and Block_copy(^{...})Jordan Rose
Retain cycles happen in the case where a block is persisted past its life on the stack, and the way that occurs is by copying the block. We should thus look through any explicit copies we see. Note that Block_copy is actually a type-safe wrapper for _Block_copy, which does all the real work. <rdar://problem/12219663> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164039 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-15-Warc-retain-cycles: warn at variable initialization as well as assignment.Jordan Rose
Specifically, this should warn: __block block_t a = ^{ a(); }; Furthermore, this case which previously warned now does not, since the value of 'b' is captured before the assignment occurs: block_t b; // not __block b = ^{ b(); }; (This will of course warn under -Wuninitialized, as before.) <rdar://problem/11015883> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163962 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-13Teach -Wuninitialized to recognize common "noreturn" idioms inTed Kremenek
Objective-C related to NSException. Fixes <rdar://problem/12287498> I debated whether or not this logic should be sunk into the CFG itself. It's not clear if we should, as different analyses may wish to have different policies. We can re-evaluate this in the future. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163760 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-12objective-C arc: don't issue no explicit ownership warning whenFariborz Jahanian
__autoreleasing is explicitely added to param type. // rdar://12280826 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163738 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-12Revert "objective-C: warn under a flag if missing argument"Ted Kremenek
We plan on discussing this more, but we shouldn't have it in the compiler in an incomplete state. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163720 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-12Revert "objective-C: warn if selector has nothing but bare"Ted Kremenek
We plan on discussing this more. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163719 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-12clang/test: [PR8833] Introduce the feature "LP64" to suppress ↵NAKAMURA Takumi
LLP64-incompatible tests. I think some of them could be rewritten to fit also LLP64. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163699 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-11objective-C: warn if selector has nothing but bareFariborz Jahanian
':' in its name. // rdar://8366823 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163650 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-11objective-C: warn under a flag if missing argumentFariborz Jahanian
name results in unintended selector name. // rdar://12263549 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163634 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-10More tweaking and test cases for call to superFariborz Jahanian
annotations. // rdar://6386358 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163525 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-10objective-C: Improving diagnostocs for missing call toFariborz Jahanian
super's annotated methods. // rdar://6386358 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163517 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-07objective-C: introduce __attribute((objc_requires_super)) on methodFariborz Jahanian
in classes. Use it to flag those method implementations which don't contain call to 'super' if they have 'super' class and it has the method with this attribute set. This is wip. // rdar://6386358 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163434 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-06refactoring + objective-C specific test for my last patch.Fariborz Jahanian
// rdar://12233989 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163338 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-31objective-C ARC; detect and warn on retain cycle whenFariborz Jahanian
property-dot syntax is used on an object whose capture causes retain cycle. // rdar://11702054 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163017 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-30objective-C ARC: under -Wexplicit-ownership-type diagnose thoseFariborz Jahanian
method parameter types which are reference to an objective-C pointer to object with no explicit ownership. // rdar://10907090 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162959 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-30Make this test portable.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162880 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-29Fix serious regression introduced in r157780 where __attribute__((NSObject))Ted Kremenek
could not be attached to a CFTypeRef. Fixes <rdar://problem/12197822> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162872 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-29objective-C: make -Widiomatic-parentheses workFariborz Jahanian
when assignment expression in conditional invloves property reference. // rdar://11066598 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162846 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-28objective-C arc: ns_returns_retained is a type attribute in ARC,Fariborz Jahanian
and when used in property type declaration, is handled as type attribute. Do not issue the warning when declaraing the property. // rdar://12173491 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162801 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-24objective-C: Do not warn if align attribute on methodFariborz Jahanian
declaration is not provided. It is only necessary on the method implementation. // rdar://11593375 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162628 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-24objective-C: When checking for valid overriden propertyFariborz Jahanian
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
2012-08-21make test pass on linux platforms.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162324 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-21objective-C: Change rules for overriding properties in Fariborz Jahanian
class extensions a little. clang now allows readonly property with no ownership rule (assign, unsafe_unretained, weak, retain, strong, or copy) with a readwrite property with an ownership rule. // rdar://12103400 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162319 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-16objective-C: make -Wcast-of-sel-type the default.Fariborz Jahanian
// rdar://12107381 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162045 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-16objective-C: deprecate casts of ObjC's SELFariborz Jahanian
expressions except to void, void * and their qualified versions. // rdar://12107381 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162036 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-10objective-C: test for delayed parsing of K&R funcitonsFariborz Jahanian
inside objc class implementation. // rdar://10387088 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161705 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-08Handle deprecation diagnostics correctly for C struct fields and Objective-C ↵Eli Friedman
properties/ivars. <rdar://problem/6642337>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161534 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-08Unify the codepaths for emitting deprecation warnings. The test changes are ↵Eli Friedman
just to account for us emitting notes more consistently. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161528 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-08Implicitly annotate __CFStringMakeConstantString with format_arg(1).Jordan Rose
We handled the builtin version of this function in r157968, but the builtin isn't used when compiling as -fno-constant-cfstrings. This should complete <rdar://problem/6157200>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161525 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-08objc: Include all types when issuing warning underFariborz Jahanian
-Wdirect-ivar-access. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161500 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-07objc-arc: Make -Wdirect-ivar-access accessible to allFariborz Jahanian
memory models, except when arc is accessing a weak ivar (which is an error). // rdar://6505197 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161458 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-07objective-c: Exclude -Wdirect-ivar-access for arc.Fariborz Jahanian
Allow direct ivar access in init and dealloc methods in mrr. // rdar://650197 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161426 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-06objective-c: Implement gcc's -Wdirect-ivar-access option.Fariborz Jahanian
// rdar://6505197 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161362 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-04objective-C string literal has no side-effect,Fariborz Jahanian
resulting in issuance of unused static variable warning now. // rdar://10777111 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161291 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-02objc-arc: Modify test for more prcecise fixit.Fariborz Jahanian
// rdar://11913153 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161194 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-02objective-c arc: Patch to suggest bridge casting of CFFariborz Jahanian
objects used as dictionary subscript objects. // rdar://11913153 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161187 91177308-0d34-0410-b5e6-96231b3b80d8
2012-07-30objective-c arc: ARC IRGen correctly assumes resultFariborz Jahanian
type of generated call to super dealloc is 'void' and asserts if user's dealloc is not of 'void type. This rule must be enforced in clang front-end (with a fixit) if this is not the case, instead of asserting in CodeGen. // rdar://11987838 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160993 91177308-0d34-0410-b5e6-96231b3b80d8
2012-07-27objc-arc: change per Jordy's comments.Fariborz Jahanian
// rdar://11923822 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160902 91177308-0d34-0410-b5e6-96231b3b80d8
2012-07-27objective-c arc: When function calls with known CFCreate naming conventionFariborz Jahanian
are cast to retainable types, only suggest CFBridgingRelease/ CFBridgingRetain and not the __bridge casts. // rdar://11923822 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160900 91177308-0d34-0410-b5e6-96231b3b80d8
2012-07-27revert r160839 for now.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160895 91177308-0d34-0410-b5e6-96231b3b80d8
2012-07-27Consolidate ObjC lookupPrivateMethod methods from Sema and DeclObjC.Anna Zaks
Also, fix a subtle bug, which occurred due to lookupPrivateMethod defined in DeclObjC.h not looking up the method inside parent's categories. Note, the code assumes that Class's parent object has the same methods as what's in the Root class of a the hierarchy, which is a heuristic that might not hold for hierarchies which do not descend from NSObject. Would be great to fix this in the future. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160885 91177308-0d34-0410-b5e6-96231b3b80d8
2012-07-26objc-arc: When objects with known CF semantics are assigned toFariborz Jahanian
retainable types in arc, only suggest CFBridgingRelease/ CFBridgingRetain and not the confusing __bridge casts. // rdar://11923822 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160839 91177308-0d34-0410-b5e6-96231b3b80d8
2012-07-25Turn -Wobjc-root-class on by default. <rdar://problem/11203649>.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160707 91177308-0d34-0410-b5e6-96231b3b80d8
2012-07-23Fix a typo (the the => the)Sylvestre Ledru
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160622 91177308-0d34-0410-b5e6-96231b3b80d8
2012-07-19For varargs, diagnose passing ObjC objects by value like other non-POD types.Jordan Rose
While we still want to consider this a hard error (non-POD variadic args are normally a DefaultError warning), delaying the diagnostic allows us to give better error messages, which also match the usual non-POD errors more closely. In addition, this change improves the diagnostic messages for format string argument type mismatches by passing down the type of the callee, so we can say "variadic method" or "variadic function" appropriately. <rdar://problem/11825593> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160517 91177308-0d34-0410-b5e6-96231b3b80d8
2012-07-19Capitalize "Objective-C" and "C++" in user-facing contexts.Jordan Rose
No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160516 91177308-0d34-0410-b5e6-96231b3b80d8
2012-07-19Don't crash checking a format string if one of the arguments is invalid.Jordan Rose
Previously, we would ask for the SourceLocation of an argument even if it were NULL (i.e. if Sema resulted in an ExprError trying to build it). <rdar://problem/11890818> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160515 91177308-0d34-0410-b5e6-96231b3b80d8
2012-07-17-Wobjc-literal-compare: don't warn when comparing against nil.Jordan Rose
Checks against nil often appear as guards in macros, and comparing Objective-C literals to nil has well-defined behavior (if tautological). On OS X, 'nil' has not been typed as 'id' since 10.6 (possibly earlier), so the warning was already not firing, but other runtimes continue to use ((id)0) or some variant. This change accepts comparisons to any null pointer; to keep it simple, it looks through all casts (not just casts to 'id'). PR13276 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160379 91177308-0d34-0410-b5e6-96231b3b80d8