summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaObjCProperty.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* OwningExprResult -> ExprResult. This patch brought to you byJohn McCall2010-08-241-3/+3
| | | | | | | M-x query-replace-regexp \(Sema::\|Action::\|Parser::\|\)Owning\(Expr\|Stmt\)Result -> \2Result llvm-svn: 111903
* DeclPtrTy -> Decl *John McCall2010-08-211-50/+48
| | | | llvm-svn: 111733
* StringRef'ication of lots stuff, patch by Peter Davies!Daniel Dunbar2010-08-171-1/+1
| | | | llvm-svn: 111314
* Move Sema's headers into include/clang/Sema, renaming a few along the way.Douglas Gregor2010-08-121-2/+2
| | | | llvm-svn: 110945
* atch for implementation of objective-c's -WselectorFariborz Jahanian2010-07-221-1/+3
| | | | | | | warning flag in clang. Little more to do for a PCH issue. Radar 6507158. llvm-svn: 109129
* Patch to synthesize property ivars on demand asFariborz Jahanian2010-07-171-1/+19
| | | | | | | part of the new property synthesis by default. wip. llvm-svn: 108599
* Don't error when doing default property synthesis Fariborz Jahanian2010-07-141-0/+4
| | | | | | and some are already synthesized by user declaration. llvm-svn: 108341
* Check on property attributes which are declaredFariborz Jahanian2010-07-131-11/+15
| | | | | | in class extensions (radar 8171968). llvm-svn: 108283
* This patch fixes a bug whereby, clang skipped Fariborz Jahanian2010-06-291-38/+18
| | | | | | | | | unimplemented property warning for properties coming from class's conformin protocol. It also simplifies the algorithm in the process. Fixes radar 8035776. llvm-svn: 107174
* Patch to provide separate ASTs for multiple ObjC class extension Fariborz Jahanian2010-06-221-1/+7
| | | | | | declarations (implements radar 7928731). llvm-svn: 106597
* Alter the interface of GetTypeForDeclarator to return a TypeSourceInfo*.John McCall2010-06-041-2/+2
| | | | | | This is never null, but the associated type might be. llvm-svn: 105503
* Remember type source information for Objective C property declarations.John McCall2010-06-041-7/+8
| | | | llvm-svn: 105484
* Misc. fixes to bring Objetive-C++'s handling ofFariborz Jahanian2010-05-181-1/+10
| | | | | | | gc attributes to be inline with Objective-C (for radar 7925141). llvm-svn: 104084
* Teach CursorVisitor about duplicate ObjCPropertyDecls that can arise because ↵Ted Kremenek2010-05-181-3/+16
| | | | | | | | | | of a current design limitation in how we handle Objective-C class extensions. This was causing the CursorVisitor to essentially visit an @property twice (once in the @interface, the other in the class extension). Fixes <rdar://problem/7410145>. llvm-svn: 104055
* Substantially alter the design of the Objective C type AST by introducingJohn McCall2010-05-151-12/+9
| | | | | | | | | | | | | | | | | | | | | ObjCObjectType, which is basically just a pair of one of {primitive-id, primitive-Class, user-defined @class} with a list of protocols. An ObjCObjectPointerType is therefore just a pointer which always points to one of these types (possibly sugared). ObjCInterfaceType is now just a kind of ObjCObjectType which happens to not carry any protocols. Alter a rather large number of use sites to use ObjCObjectType instead of ObjCInterfaceType. Store an ObjCInterfaceType as a pointer on the decl rather than hashing them in a FoldingSet. Remove some number of methods that are no longer used, at least after this patch. By simplifying ObjCObjectPointerType, we are now able to easily remove and apply pointers to Objective-C types, which is crucial for a certain kind of ObjC++ metaprogramming common in WebKit. llvm-svn: 103870
* Recognize when the named return value optimization applies in aDouglas Gregor2010-05-151-2/+3
| | | | | | | | | | "return" statement and mark the corresponding CXXConstructExpr as elidable. Teach CodeGen that eliding a temporary is different from eliding an object construction. This is just a baby step toward NRVO. llvm-svn: 103849
* Implement new default property synthesis rules. Essentially, no longerFariborz Jahanian2010-05-141-8/+69
| | | | | | | | | user directive is needed to force a property implementation. It is decided based on those propeties which are declared in the class (or in its protocols) but not those which must be default implemented by one of its super classes. Implements radar 7923851. llvm-svn: 103787
* This patch deals with Sema Part of Setter/Getter synthesisFariborz Jahanian2010-05-051-3/+54
| | | | | | | of properties which are of C++ objects. Code Gen to follow (Radar 7468090). llvm-svn: 103123
* Do not issue warning on unimplemented property in the class, if itFariborz Jahanian2010-05-031-1/+31
| | | | | | | | conforms to a protocol as one of its super classes does. This is because conforming super class will implement the property. This implements new warning rules for unimplemented properties (radar 7884086). llvm-svn: 102919
* Properties cannot be synthesized by-dafult inFariborz Jahanian2010-04-291-1/+1
| | | | | | | categories. Issue usual warnings instead of confusing error message. Radar 7920807 llvm-svn: 102645
* Improve on source location of diagnostic when defaultFariborz Jahanian2010-04-211-1/+1
| | | | | | property synthesis is using a super class ivar. llvm-svn: 102011
* Keep track of the actual storage specifier written on a variable orDouglas Gregor2010-04-191-0/+1
| | | | | | | | function declaration, since it may end up being changed (e.g., "extern" can become "static" if a prior declaration was static). Patch by Enea Zaffanella and Paolo Bolzoni. llvm-svn: 101826
* Feed proper source-location information into Sema::LookupSingleResult,Douglas Gregor2010-04-151-1/+1
| | | | | | | | in case it ends up doing something that might trigger diagnostics (template instantiation, ambiguity reporting, access reporting). Noticed while working on PR6831. llvm-svn: 101412
* Fixes a regression caused by implementing cstyle methods Fariborz Jahanian2010-04-091-1/+1
| | | | | | for objc. llvm-svn: 100865
* Minor clean up.Fariborz Jahanian2010-04-061-18/+0
| | | | llvm-svn: 100583
* default access for synthesize ivar is @protect.Fariborz Jahanian2010-04-061-1/+1
| | | | | | Fixes radar 7823675. llvm-svn: 100582
* Use cast<> + OpaquePtr.getAs<Decl> to add extra checking of our assumptions.Ted Kremenek2010-04-051-2/+3
| | | | llvm-svn: 100496
* Fix possible null dereference by bailing out of ↵Ted Kremenek2010-04-051-1/+4
| | | | | | CheckObjCPropertyAttributes() early if the Decl* is null. llvm-svn: 100483
* Sema/Obj-C: Narrow type, and simplify.Daniel Dunbar2010-04-021-14/+6
| | | | llvm-svn: 100210
* Recognize __attribute__((NSObject)) directly appliedFariborz Jahanian2010-03-301-6/+10
| | | | | | on retain properties. (radar 7809468). llvm-svn: 99951
* Improve diagnostic for @property/ivar type mismatch by including the types ↵Ted Kremenek2010-03-231-2/+6
| | | | | | | | of the ivar and @property respectively. llvm-svn: 99312
* Set the relevent attributes declared in class extensionFariborz Jahanian2010-03-221-0/+5
| | | | | | | and fix a missing diagnostics on assigning to a read-only property. Fixes radar 7766184. llvm-svn: 99230
* Simplify code (and remove 'dyn_cast') by using ↵Ted Kremenek2010-03-181-11/+3
| | | | | | ObjCProperyDecl::findPropertyDecl(). llvm-svn: 98794
* Make 'findPropertyDecl()' a static method of ObjCPropertyDecl.Ted Kremenek2010-03-151-14/+4
| | | | llvm-svn: 98570
* Correctly determine if the @property has been previously declared. IfTed Kremenek2010-03-151-7/+17
| | | | | | | a property has the same name as the ivar it wraps then the old logic wouldn't find the previous property declaration. llvm-svn: 98559
* Split Sema::ActOnProperty() into two recursive functions to clearly separateTed Kremenek2010-03-121-104/+154
| | | | | | the handling of class extensions from other cases. llvm-svn: 98326
* Fix 80 col violations.Ted Kremenek2010-03-121-15/+16
| | | | llvm-svn: 98320
* Move 'ActOn' methods to the beginning of the fileTed Kremenek2010-03-121-395/+404
| | | | | | so we can clearly see the parser entry points. llvm-svn: 98319
* Split Sema logic for ObjC @property and @synthesize intoTed Kremenek2010-03-121-0/+1025
a separate file. llvm-svn: 98317
OpenPOWER on IntegriCloud