summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaExprObjC.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* move two more lists of protocols over to use ObjCList<ObjCProtocolDecl>,Chris Lattner2008-07-211-7/+6
| | | | | | simplifying code along the way and fixing a problem and memory leak or two. llvm-svn: 53876
* introduce a new ObjCList templated class and start moving Chris Lattner2008-07-211-6/+8
| | | | | | | various objc lists over to it. First up, the protocol list on ObjCInterfaceDecl. llvm-svn: 53856
* when in the context of an @implementation, look for private methods in theChris Lattner2008-07-211-3/+2
| | | | | | @implementation to resolve nullary selector references. llvm-svn: 53845
* don't pass in null as the Name for GenerateClassStructure,Chris Lattner2008-07-211-2/+1
| | | | | | | it goes and makes std::strings out of them, which is not defined. llvm-svn: 53843
* improve diagnostics about problems with receivers to highlight the receiver.Chris Lattner2008-07-211-3/+3
| | | | llvm-svn: 53842
* continue cleaning up code, and disable sending a message directly to anChris Lattner2008-07-211-18/+14
| | | | | | | | | | | | interface. This fixes a bug where we used to accept: void test2(NSNumber x) { [x METH]; } which doesn't make sense and GCC rejects. llvm-svn: 53841
* simplify control flow a bit, reducing indentation. No functionality change.Chris Lattner2008-07-211-70/+79
| | | | llvm-svn: 53837
* tighten up some checks, don't allow sending a message to NSString****Chris Lattner2008-07-211-5/+6
| | | | llvm-svn: 53836
* merge a bunch of code that is now common between qual interfaces and interfaces.Chris Lattner2008-07-211-24/+22
| | | | llvm-svn: 53833
* rename getProtocols -> getProtocol, as it only returns a singleChris Lattner2008-07-211-1/+1
| | | | | | | protocol. Simplify some code to use unconditional form of the protocol access list. llvm-svn: 53832
* Replace CurFunctionDecl and CurMethodDecl with methods getCurFunctionDecl() ↵Argyrios Kyrtzidis2008-06-281-6/+6
| | | | | | and getCurMethodDecl() that return the appropriate Decl through CurContext. llvm-svn: 52852
* ObjCMessageExpr objects that represent messages to class methods now can ↵Ted Kremenek2008-06-241-2/+10
| | | | | | contain the ObjCInterfaceDecl* of the target class if it was available when the ObjCMessageExpr object was constructed. The original interfaces of the class has been preserved (requiring no functionality changes from clients), but now a "getClasSInfo" method returns both the ObjCInterfaceDecl* and IdentifierInfo* of the target class. llvm-svn: 52676
* "this patch adds code generation hooks for Objective-C constant strings. It ↵Chris Lattner2008-06-211-8/+12
| | | | | | | | also modifies Sema so that Objective-C constant strings are treated as untyped objects if the interface for the constant string class can not be found. This is consistent with Apple GCC. I thought it was consistent with GNU GCC, since this was causing failures when trying to compile GNUstep with (GNU) GCC, but it appears that this is not the case when attempting to produce a simple test case to demonstrate it. Possibly there is a way of making the error go away, but I haven't found out what it is yet." Patch by David Chisnall! llvm-svn: 52599
* Switch 'super' from being a weird cast thing to being a predefined expr node.Chris Lattner2008-06-211-6/+2
| | | | | | Patch by David Chisnall with objc rewriter and stmtdumper updates from me. llvm-svn: 52580
* Fix <rdar://problem/5986833> clang on xcode: incompatible type returning ↵Steve Naroff2008-06-051-2/+24
| | | | | | | | | 'void', expected 'int'. - Changed Sema::ObjCActOnStartOfMethodDef() to more accurately type "self" in factory methods. - Changed Sema::ActOnInstanceMessage() to use the new type to restrict the lookup. llvm-svn: 52005
* Fix crash identified by <rdar://problem/5986085>.Steve Naroff2008-06-041-11/+23
| | | | llvm-svn: 51969
* Added fixmes.Ted Kremenek2008-06-041-0/+2
| | | | llvm-svn: 51964
* Fix a gcc compatibility issue which allows more protocol-qualified id on RHS ↵Fariborz Jahanian2008-06-041-3/+12
| | | | | | | | to be assigned to less protocol qualified object on LHS. llvm-svn: 51956
* Sema::ActOnClassMessage() needs to look through it's local implementation ↵Steve Naroff2008-06-041-0/+6
| | | | | | for private class methods. llvm-svn: 51938
* Tweak Sema::ObjCQualifiedIdTypesAreCompatible() to handle qualified ↵Steve Naroff2008-06-011-5/+24
| | | | | | | | | | interface types on the RHS. This eliminates a bogus warning identified in the test below. This fixes <rdar://problem/5968256> clang on xcode: error: incompatible type initializing 'NSObject<XCSelectionSource> *', expected 'id<NSObject,XCSelectionSource>' llvm-svn: 51832
* Fix <rdar://problem/5965704> clang: bad receiver type 'id const'Steve Naroff2008-05-311-2/+3
| | | | llvm-svn: 51809
* - Move ObjC Expresssion AST's from Expr.h => ExprObjC.hSteve Naroff2008-05-291-1/+1
| | | | | | - #include ExprObjC.h in many places llvm-svn: 51703
* Restructure and simplify Sema::ObjCQualifiedIdTypesAreCompatible,Chris Lattner2008-04-201-65/+64
| | | | | | | | | | deleting dead code, making other code more obvious, and fixing a bug. This fixes these (bogus) warnings in release mode: SemaExprObjC.cpp:383: warning: 'RHSProtoE' may be used uninitialized in this function SemaExprObjC.cpp:383: warning: 'RHSProtoI' may be used uninitialized in this function llvm-svn: 49984
* move ObjCQualifiedIdTypesAreCompatible out of ASTContext into Sema.Chris Lattner2008-04-071-0/+167
| | | | | | | | | | While it is similar to the other compatibility predicates in ASTContext, it is not used by them and is different. In addition, greatly simplify ObjCQualifiedIdTypesAreCompatible and fix some canonical type bugs. Also, simplify my Type::getAsObjC* methods. llvm-svn: 49313
* properly handle array decay in objc message exprs.Chris Lattner2008-04-021-4/+4
| | | | llvm-svn: 49098
* Two changes to Sema::LookupDecl() interface. Steve Naroff2008-04-021-2/+1
| | | | | | | | | | | (1) Remove IdLoc (it's never used). (2) Add a bool to enable/disable lazy builtin creaation (defaults to true). This enables us to use LookupDecl() in Sema::isTypeName(), which is also part of this commit. To make this work, I changed isTypeName() to be a non-const member function. I'm not happy with this, however I fiddled with making LookupDecl() and friends const and it got ugly pretty quickly. We can certainly add it back if/when someone has time to fiddle with it. For now, I thought this simplification was more important than retaining the const-ness. llvm-svn: 49087
* Fairly large "cleaup" related to changing ObjCCompatibleAliasDecl superclass ↵Steve Naroff2008-04-011-2/+2
| | | | | | | | | | | | | (to inherit from NamedDecl, instead of ScopedDecl). - Added a DenseMap to associate an IdentifierInfo with the ObjCCompatibleAliasDecl. - Renamed LookupScopedDecl->LookupDecl and changed it's return type to Decl. Also added lookup for ObjCCompatibleAliasDecl's. - Removed Sema::LookupInterfaceDecl(). Converted clients to used LookupDecl(). - Some minor indentation changes. Will deal with ObjCInterfaceDecl and getObjCInterfaceDecl() in a separate commit... llvm-svn: 49058
* Make sure Sema::ActOnClassMessage() correctly diagnoses "super".Steve Naroff2008-03-281-1/+4
| | | | llvm-svn: 48924
* Make a major restructuring of the clang tree: introduce a top-levelChris Lattner2008-03-151-0/+297
lib dir and move all the libraries into it. This follows the main llvm tree, and allows the libraries to be built in parallel. The top level now enforces that all the libs are built before Driver, but we don't care what order the libs are built in. This speeds up parallel builds, particularly incremental ones. llvm-svn: 48402
OpenPOWER on IntegriCloud