aboutsummaryrefslogtreecommitdiff
path: root/test/SemaObjC
AgeCommit message (Collapse)Author
2010-04-12fix rdar://7852959 - Use of super within a block is actually ok.Chris Lattner
(aka, Fariborz was right ;-) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101046 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-12fix a bug I noticed by inspection, correcting two reject-valid bugs.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101026 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-12fix a rejects-valid bug that I introduced, pointed out Chris Lattner
by David Chisnall git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101024 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-12fix a rejects-valid testcase involving super that I dreamt up.Chris Lattner
This also fixes cases where super is used in a block in a method which isn't valid. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101021 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-12Have the parser decide whether a message to super is a variable orChris Lattner
type, instead of having sema do it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101016 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-11avoid double negativesChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100976 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-11fix PR6811 by not parsing 'super' as a magic expression inChris Lattner
LookupInObjCMethod. Doing so allows all sorts of invalid code to slip through to codegen. This patch does not change the AST representation of super, though that would now be a natural thing to do since it can only be in the receiver position and in the base of a ObjCPropertyRefExpr. There are still several ugly areas handling super in the parser, but this is definitely a step in the right direction. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100959 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-11fix a problem causing us to lose the ''s around objc interface namesChris Lattner
in a diagnostic. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100956 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-09Improve diagnostics like "initializing <type> from an expression ofDouglas Gregor
type..." with "initializing <type> with an expression of type...", which reads better. Thanks to John for the improved wording. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100873 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-09Improve diagnostics when we fail to convert from a source type to aDouglas Gregor
destination type for initialization, assignment, parameter-passing, etc. The main issue fixed here is that we used rather confusing wording for diagnostics such as t.c:2:9: warning: initializing 'char const [2]' discards qualifiers, expected 'char *' [-pedantic] char *name = __func__; ^ ~~~~~~~~ We're not initializing a 'char const [2]', we're initializing a 'char *' with an expression of type 'char const [2]'. Similar problems existed for other diagnostics in this area, so I've normalized them all with more precise descriptive text to say what we're initializing/converting/assigning/etc. from and to. The warning for the code above is now: t.c:2:9: warning: initializing 'char *' from an expression of type 'char const [2]' discards qualifiers [-pedantic] char *name = __func__; ^ ~~~~~~~~ Fixes <rdar://problem/7447179>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100832 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-08Downgrade the "declaration does not declare anything" error to aDouglas Gregor
warning. It's not harmful to have such pointless declarations, and GCC does not diagnose this issue consistently. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100814 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-08Match GCC's behavior and do not include '-Wunused-parameter' in '-Wunused'.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100810 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-08Patch to implement gcc's cstyle arguments in objcFariborz Jahanian
methods. wip. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100734 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-07Improve on diagnostics when an objc class is used asFariborz Jahanian
a stand-alone type declaration. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100588 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-06default access for synthesize ivar is @protect.Fariborz Jahanian
Fixes radar 7823675. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100582 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-06Patch to not build ivar ASTs when they are ilegallyFariborz Jahanian
declared in categories. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100577 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-06Put type restriction on convesion to nonconforming 'id' back in Fariborz Jahanian
block pointer type comparison. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100533 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-02diagnose declaring class extension after its implementationFariborz Jahanian
(radar 7822210). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100226 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-02Diagnose invalid code with -fobjc-nonfragile-abi2 whenFariborz Jahanian
property is being accessed without the dot-syntax notation. (radar 7822344). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100212 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-01Relax the typesafty rules of block pointers types whichFariborz Jahanian
take'id' or return 'id' in their type. Fixes radar 7814131. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100129 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-31Patch implements gcc's -Wno-protocol option to suppress warningFariborz Jahanian
on unimplemented methods in protocols adopted by a class. (radar 7056600). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100028 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-30Recognize __attribute__((NSObject)) directly appliedFariborz Jahanian
on retain properties. (radar 7809468). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99951 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-30Add Support for 'warn_unused_result" attribute onFariborz Jahanian
objective-c methods. (radar 7418262). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99903 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-27Further improvement to point to categoryFariborz Jahanian
whose protocolls methods needs implementation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99730 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-27Improve diagnostics on incomplete implementationFariborz Jahanian
of objc classes; including which methods need be implemented and where they come from. WIP. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99724 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-24Allow conversion of qualified Class type to unqualifiedFariborz Jahanian
Class type to match gcc's. Fixes radar 7789113. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99425 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-24Improve diagnostics when ivar added to classFariborz Jahanian
extension (radar 6812436). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99408 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-23Improve diagnostic for @property/ivar type mismatch by including the types ↵Ted Kremenek
of the ivar and @property respectively. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99312 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-22Set the relevent attributes declared in class extensionFariborz Jahanian
and fix a missing diagnostics on assigning to a read-only property. Fixes radar 7766184. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99230 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-22Diagnose miuse of property dot-syntax instead of crashing.Fariborz Jahanian
(radar 7634653). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99210 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-22Fixes access rues for ivars declared in classFariborz Jahanian
implementations (radar 7547942). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99198 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-21Fix PR6618.Rafael Espindola
If a struct has an invalid field, mark it as invalid. Also avoid producing errors about incomplete types that are invalid. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99150 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-19More coherent diagnostics when ivar is placed n categories.Fariborz Jahanian
(related to radar 7538989). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98993 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-19Diagnose conversion of 'Class' to/from objective-c Fariborz Jahanian
object pointer types. Fixes radar 7634850. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98970 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18Make PredefinedExpr::ComputeName() more robust to incorrectTed Kremenek
code when we are printing the name of an Objective-C method whose class has not been declared. Fixes <rdar://problem/7495713>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98874 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18Some cleanup, change diagnostic when assigning toFariborz Jahanian
a property which is not lvalue. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98848 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-17objective-c patch to provide type safty when blocks are passing orFariborz Jahanian
returning objc objects. There will be a corresponding objective-c++ patch soon. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98696 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-15Add 'expected-note'Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98560 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-15Correctly determine if the @property has been previously declared. IfTed Kremenek
a property has the same name as the ivar it wraps then the old logic wouldn't find the previous property declaration. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98559 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-15Add support for -Wwrite-strings. Patch by Mike M! Fixes PR 4804.John McCall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98541 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10Statement expressions can be used in global- or namespace-scoped blocksDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98135 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-09Don't error when a block pointer is passed to a Fariborz Jahanian
vararg functions/methods. Fixes radar 7725203. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98070 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-05Augment __has_feature to report that Clang supports adding attribute 'unused'Ted Kremenek
to an Objective-C instance variable. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97850 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-05Patch to build qualifier on objective-cFariborz Jahanian
pointer types. Fixes radar 7626768. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97847 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-27Fix crasher caused by setting a bit in a possibly empty bitvector whileTed Kremenek
doing printf format string checking. This is a recent regression. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97318 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-25Forgot to include nested protocols in collection, resulting inFariborz Jahanian
bogus warning. Fixes radar 7682116. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97157 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-25Allow __attribute__((unused)) to be applied to ObjC ivars.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97103 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-23More Sema check for ivars in class continuation.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97002 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-23Fix another crash on invalid code. In this case, handle ObjC categories ↵Ted Kremenek
(with no names) that refer to an undefined class. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96976 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-23A test case for property synthesis using ivar in class extensions.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96968 91177308-0d34-0410-b5e6-96231b3b80d8