summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/Sema.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Add semantic analysis for "blocks". Steve Naroff2008-09-031-1/+1
| | | | | | | | | | | | | | | Highlights... - 4 new AST nodes, BlockExpr, BlockStmtExpr, BlockExprExpr, BlockDeclRefExpr. - Sema::ActOnBlockStart(), ActOnBlockError(), ActOnBlockStmtExpr(), ActOnBlockExprExpr(), ActOnBlockReturnStmt(). Next steps... - hack Sema::ActOnIdentifierExpr() to deal with block decl refs. - add attribute handler for byref decls. - add test cases. llvm-svn: 55710
* Pass SourceRanges by reference to the various Diag methods.Argyrios Kyrtzidis2008-08-241-7/+8
| | | | llvm-svn: 55284
* Make sure to create CXX record decls for the implicit Obj-C type ↵Anders Carlsson2008-08-231-14/+16
| | | | | | declarations. This lets us compile Cocoa.h as Objective-C++ llvm-svn: 55261
* make sure that ParseAST invokes the action for end of translation unit.Chris Lattner2008-08-231-0/+8
| | | | llvm-svn: 55222
* minor cleanup, remove finalize method.Chris Lattner2008-08-231-2/+0
| | | | llvm-svn: 55216
* Change Parser & Sema to use interned "super" for comparions.Daniel Dunbar2008-08-141-0/+2
| | | | | | | | | | | | | | - Added as private members for each because it is not clear where to put the common definition. Perhaps the IdentifierInfos all of these "pseudo-keywords" should be collected into one place (this would KnownFunctionIDs and Objective-C property IDs, for example). Remove Token::isNamedIdentifier. - There isn't a good reason to use strcmp when we have interned strings, and there isn't a good reason to encourage clients to do so. llvm-svn: 54794
* More #include cleaningDaniel Dunbar2008-08-111-1/+0
| | | | | | | | | | | - Kill unnecessary #includes in .cpp files. This is an automatic sweep so some things removed are actually used, but happen to be included by a previous header. I tried to get rid of the obvious examples and this was the easiest way to trim the #includes in one fell swoop. - We now return to regularly scheduled development. llvm-svn: 54632
* More #include cleaningDaniel Dunbar2008-08-111-0/+5
| | | | | | | | - Drop {Decl.h,DeclObjC.h,IdentifierTable.h} from Expr.h - Moved Sema::getCurMethodDecl() out of line (dependent on ObjCMethodDecl via dyn_cast). llvm-svn: 54629
* More #include cleaningDaniel Dunbar2008-08-111-0/+1
| | | | | | | | - Drop Expr.h,RecordLayout.h from ASTContext.h (for DeclBase.h and SourceLocation.h) - Move ASTContext constructor into implementation llvm-svn: 54627
* change more instances of QualType::getCanonicalType to callChris Lattner2008-07-261-1/+2
| | | | | | ASTContext::getCanonicalType instead (PR2189) llvm-svn: 54105
* Move isObjCObjectPointerType() from Sema to ASTContext.Ted Kremenek2008-07-241-21/+0
| | | | llvm-svn: 53998
* Switch initialization of the protocol list for an interface decl to useChris Lattner2008-07-211-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | the standard "set these as the list of protocols" interface instead of a strange "set this as the size and then set each one to the value" interface. The problem with the later is that it a) is completely different from everything else, b) is awkward, and c) doesn't handle the case when a referenced protocol is invalid: it set it to null. This meant that all clients downstream would have to handle null protocols in the protocol list, and empirically they didn't. Fix this by not setting invalid protocols in the referenced protocol list, fixing the crash on test/Sema/objc-interface-1.m While I'm at it, clean up some locations so that we produce: t.m:1:25: error: cannot find interface declaration for 'NSObject', superclass of 'NSWhatever' @interface NSWhatever : NSObject <NSCopying> ~~~~~~~~~~~~~~~~~~~~~ ^ instead of: t.m:1:1: error: cannot find interface declaration for 'NSObject', superclass of 'NSWhatever' @interface NSWhatever : NSObject <NSCopying> ^ llvm-svn: 53846
* improve comments yet again, now I know what this does :)Chris Lattner2008-07-211-1/+3
| | | | llvm-svn: 53821
* minor rename, also, reject pointer to qualified id.Chris Lattner2008-07-211-8/+7
| | | | | | id<NSCopyable>* is not an "objc pointer type", id<NSCopyable> is. llvm-svn: 53820
* Fix a crash that can happen when you have typedefs for pointers toChris Lattner2008-07-211-4/+5
| | | | | | | | interfaces. Just because they x->isPointerType() doesn't mean it is valid to just cast to a pointertype. We have to handle typedefs etc as well. llvm-svn: 53819
* simplify this predicate, only checking isObjCQualifiedIdType once.Chris Lattner2008-07-211-4/+9
| | | | llvm-svn: 53817
* Add Sema support for C++ classes.Argyrios Kyrtzidis2008-07-011-0/+2
| | | | llvm-svn: 52956
* Replace CurFunctionDecl and CurMethodDecl with methods getCurFunctionDecl() ↵Argyrios Kyrtzidis2008-06-281-2/+1
| | | | | | and getCurMethodDecl() that return the appropriate Decl through CurContext. llvm-svn: 52852
* add a fixme backChris Lattner2008-06-211-0/+1
| | | | llvm-svn: 52607
* "This moves built-in Objective-C types up the scope chains to where they can ↵Chris Lattner2008-06-211-51/+34
| | | | | | | | | | be replaced by versions included from the runtime library's headers." This makes it ok to use @"foo" without a declaration for NSConstantString. Patch by David Chisnall! llvm-svn: 52593
* Introduce preliminary support for NSString format-string checking.Ted Kremenek2008-06-161-0/+1
| | | | | | Patch by Nikita Zhuk! llvm-svn: 52336
* -Changes to TagDecl:Argyrios Kyrtzidis2008-06-091-3/+3
| | | | | | | | | Added TagKind enum. Added getTagKind() method. Added convenience methods: isEnum(), isStruct(), isUnion(), isClass(). -RecordDecl/CXXRecordDecl::Create() accept a TagKind enum instead of a DeclKind one. llvm-svn: 52160
* Give the "isa" slot a name!Steve Naroff2008-06-041-1/+2
| | | | llvm-svn: 51924
* Add FIXME.Eli Friedman2008-05-271-0/+1
| | | | llvm-svn: 51585
* Addition of TranslationUnitDecl to the AST:Argyrios Kyrtzidis2008-04-171-4/+7
| | | | | | | | -Added TranslationUnitDecl class to serve as top declaration context -ASTContext gets a TUDecl member and a getTranslationUnitDecl() function -All ScopedDecls get the TUDecl as DeclContext when declared at global scope llvm-svn: 49855
* Added PushOnScopeChains method to Sema, that adds a decl to both the ↵Argyrios Kyrtzidis2008-04-121-10/+5
| | | | | | IdResolver and the Scope. llvm-svn: 49567
* Add class and super class location info to ObjCInterfaceDecl...Steve Naroff2008-04-111-1/+2
| | | | llvm-svn: 49553
* Switch sema to maintaining its own scope chain information for variableChris Lattner2008-04-111-5/+5
| | | | | | | shadowing, instead of threading it through the AST. This patch contributed by Argiris Kirtzidis! llvm-svn: 49520
* This patch contains these changes:Chris Lattner2008-04-061-2/+1
| | | | | | | | | | -Renamed ContextDecl -> DeclContext -Removed DeclContext pointer from FieldDecl -EnumDecl inherits from DeclContext, instead of TagDecl Patch by Argiris Kirtzidis! llvm-svn: 49261
* Introduce ContextDecl, patch by Argiris Kirtzidis!Chris Lattner2008-04-041-8/+13
| | | | | | | | | | | -Added ContextDecl (no TranslationUnitDecl) -ScopedDecl class has a ContextDecl member -FieldDecl class has a ContextDecl member, so that a Field or a ObjCIvar can be traced back to their RecordDecl/ObjCInterfaceDecl easily -FunctionDecl, ObjCMethodDecl, TagDecl, ObjCInterfaceDecl inherit from ContextDecl. With TagDecl as ContextDecl, enum constants have a EnumDecl as their context. -Moved Decl class to a "DeclBase.h" along with ContextDecl class -CurContext is handled by Sema llvm-svn: 49208
* Add create methods for ObjCIvarDecl and ObjCInterfaceDeclChris Lattner2008-03-161-2/+3
| | | | llvm-svn: 48408
* switch the rest of the C decl classes to do their Chris Lattner2008-03-161-2/+2
| | | | | | allocation through ASTContext. llvm-svn: 48403
* Make a major restructuring of the clang tree: introduce a top-levelChris Lattner2008-03-151-0/+222
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