|  | Commit message (Collapse) | Author | Age | Files | Lines | 
|---|
| ... |  | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | 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 | 
| | 
| 
| 
| | llvm-svn: 55284 | 
| | 
| 
| 
| 
| 
| | declarations. This lets us compile Cocoa.h as Objective-C++
llvm-svn: 55261 | 
| | 
| 
| 
| | llvm-svn: 55222 | 
| | 
| 
| 
| | llvm-svn: 55216 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | - 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 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | - 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 | 
| | 
| 
| 
| 
| 
| 
| 
| | - 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 | 
| | 
| 
| 
| 
| 
| 
| 
| | - Drop Expr.h,RecordLayout.h from ASTContext.h (for DeclBase.h and
   SourceLocation.h)
 - Move ASTContext constructor into implementation
llvm-svn: 54627 | 
| | 
| 
| 
| 
| 
| | ASTContext::getCanonicalType instead (PR2189)
llvm-svn: 54105 | 
| | 
| 
| 
| | llvm-svn: 53998 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | 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 | 
| | 
| 
| 
| | llvm-svn: 53821 | 
| | 
| 
| 
| 
| 
| | id<NSCopyable>*  is not an "objc pointer type", id<NSCopyable> is.
llvm-svn: 53820 | 
| | 
| 
| 
| 
| 
| 
| 
| | 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 | 
| | 
| 
| 
| | llvm-svn: 53817 | 
| | 
| 
| 
| | llvm-svn: 52956 | 
| | 
| 
| 
| 
| 
| | and getCurMethodDecl() that return the appropriate Decl through CurContext.
llvm-svn: 52852 | 
| | 
| 
| 
| | llvm-svn: 52607 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | 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 | 
| | 
| 
| 
| 
| 
| | Patch by Nikita Zhuk!
llvm-svn: 52336 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | 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 | 
| | 
| 
| 
| | llvm-svn: 51924 | 
| | 
| 
| 
| | llvm-svn: 51585 | 
| | 
| 
| 
| 
| 
| 
| 
| | -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 | 
| | 
| 
| 
| 
| 
| | IdResolver and the Scope.
llvm-svn: 49567 | 
| | 
| 
| 
| | llvm-svn: 49553 | 
| | 
| 
| 
| 
| 
| 
| | shadowing, instead of threading it through the AST.  This patch contributed
by Argiris Kirtzidis!
llvm-svn: 49520 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | -Renamed ContextDecl -> DeclContext
-Removed DeclContext pointer from FieldDecl
-EnumDecl inherits from DeclContext, instead of TagDecl
Patch by Argiris Kirtzidis!
llvm-svn: 49261 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | -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 | 
| | 
| 
| 
| | llvm-svn: 48408 | 
| | 
| 
| 
| 
| 
| | allocation through ASTContext.
llvm-svn: 48403 | 
|  | 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 |