diff options
| author | Sebastian Redl <sebastian.redl@getdesigned.at> | 2008-11-11 11:37:55 +0000 |
|---|---|---|
| committer | Sebastian Redl <sebastian.redl@getdesigned.at> | 2008-11-11 11:37:55 +0000 |
| commit | c470476420249d85e6a82275e90d3a8f62312fa1 (patch) | |
| tree | a8f9b143310c392c35c5883bd8358da872b63403 /clang/lib/Sema/Sema.h | |
| parent | 8cb2e28e43b99df65c904d87ada93c99660e4fa4 (diff) | |
| download | bcm5719-llvm-c470476420249d85e6a82275e90d3a8f62312fa1.tar.gz bcm5719-llvm-c470476420249d85e6a82275e90d3a8f62312fa1.zip | |
Implement C++ 'typeid' parsing and sema.
llvm-svn: 59042
Diffstat (limited to 'clang/lib/Sema/Sema.h')
| -rw-r--r-- | clang/lib/Sema/Sema.h | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/clang/lib/Sema/Sema.h b/clang/lib/Sema/Sema.h index 3b187f2099d..7f72928064a 100644 --- a/clang/lib/Sema/Sema.h +++ b/clang/lib/Sema/Sema.h @@ -199,10 +199,18 @@ public: IdentifierInfo *Ident_id, *Ident_Class; // "id", "Class" IdentifierInfo *Ident_SEL, *Ident_Protocol; // "SEL", "Protocol" + /// Identifiers used by the C++ language + IdentifierInfo *Ident_StdNs; // "std" + IdentifierInfo *Ident_TypeInfo; // "type_info" - lazily created + /// Translation Unit Scope - useful to Objective-C actions that need /// to lookup file scope declarations in the "ordinary" C decl namespace. /// For example, user-defined classes, built-in "id" type, etc. Scope *TUScope; + + /// The C++ "std" namespace, where the standard library resides. Cached here + /// by GetStdNamespace + NamespaceDecl *StdNamespace; /// ObjCMethodList - a linked list of methods with different signatures. struct ObjCMethodList { @@ -450,7 +458,7 @@ public: /// More parsing and symbol table subroutines... Decl *LookupDecl(const IdentifierInfo *II, unsigned NSI, Scope *S, - DeclContext *LookupCtx = 0, + const DeclContext *LookupCtx = 0, bool enableLazyBuiltinCreation = true); ObjCInterfaceDecl *getObjCInterfaceDecl(IdentifierInfo *Id); ScopedDecl *LazilyCreateBuiltin(IdentifierInfo *II, unsigned ID, @@ -463,6 +471,8 @@ public: void WarnUndefinedMethod(SourceLocation ImpLoc, ObjCMethodDecl *method, bool &IncompleteImpl); + + NamespaceDecl *GetStdNamespace(); /// CheckProtocolMethodDefs - This routine checks unimpletented /// methods declared in protocol, and those referenced by it. @@ -751,6 +761,11 @@ public: SourceLocation LParenLoc, ExprTy *E, SourceLocation RParenLoc); + /// ActOnCXXTypeidOfType - Parse typeid( type-id ). + virtual ExprResult ActOnCXXTypeid(SourceLocation OpLoc, + SourceLocation LParenLoc, bool isType, + void *TyOrExpr, SourceLocation RParenLoc); + //// ActOnCXXThis - Parse 'this' pointer. virtual ExprResult ActOnCXXThis(SourceLocation ThisLoc); |

