diff options
author | Steve Naroff <snaroff@apple.com> | 2008-04-11 19:35:35 +0000 |
---|---|---|
committer | Steve Naroff <snaroff@apple.com> | 2008-04-11 19:35:35 +0000 |
commit | 5a4611cdda5d9140412f5935d694858ff0307611 (patch) | |
tree | 3b10b2c4d18fc4721727ea71071a13131e8f6ce5 /clang/lib/Sema | |
parent | 988990f8426958e3e1ea85d5e341a07966c7c405 (diff) | |
download | bcm5719-llvm-5a4611cdda5d9140412f5935d694858ff0307611.tar.gz bcm5719-llvm-5a4611cdda5d9140412f5935d694858ff0307611.zip |
Add class and super class location info to ObjCInterfaceDecl...
llvm-svn: 49553
Diffstat (limited to 'clang/lib/Sema')
-rw-r--r-- | clang/lib/Sema/Sema.cpp | 3 | ||||
-rw-r--r-- | clang/lib/Sema/SemaDeclObjC.cpp | 7 |
2 files changed, 6 insertions, 4 deletions
diff --git a/clang/lib/Sema/Sema.cpp b/clang/lib/Sema/Sema.cpp index a0d4ff79956..92858726b48 100644 --- a/clang/lib/Sema/Sema.cpp +++ b/clang/lib/Sema/Sema.cpp @@ -112,7 +112,8 @@ Sema::Sema(Preprocessor &pp, ASTContext &ctxt, ASTConsumer &consumer) // Synthesize "@class Protocol; ObjCInterfaceDecl *ProtocolDecl = ObjCInterfaceDecl::Create(Context, SourceLocation(), 0, - &Context.Idents.get("Protocol"), true); + &Context.Idents.get("Protocol"), + SourceLocation(), true); Context.setObjCProtoType(Context.getObjCInterfaceType(ProtocolDecl)); // Synthesize "typedef struct objc_object { Class isa; } *id;" diff --git a/clang/lib/Sema/SemaDeclObjC.cpp b/clang/lib/Sema/SemaDeclObjC.cpp index 127645044c3..776a50f6f2a 100644 --- a/clang/lib/Sema/SemaDeclObjC.cpp +++ b/clang/lib/Sema/SemaDeclObjC.cpp @@ -98,7 +98,7 @@ Sema::DeclTy *Sema::ActOnStartClassInterface( } else { IDecl = ObjCInterfaceDecl::Create(Context, AtInterfaceLoc, NumProtocols, - ClassName); + ClassName, ClassLoc); ObjCInterfaceDecls[ClassName] = IDecl; // Remember that this needs to be removed when the scope is popped. @@ -126,6 +126,7 @@ Sema::DeclTy *Sema::ActOnStartClassInterface( } } IDecl->setSuperClass(SuperClassEntry); + IDecl->setSuperClassLoc(SuperLoc); IDecl->setLocEnd(SuperLoc); } else { // we have a root class. IDecl->setLocEnd(ClassLoc); @@ -383,7 +384,7 @@ Sema::DeclTy *Sema::ActOnStartClassImplementation( // Legacy case of @implementation with no corresponding @interface. // Build, chain & install the interface decl into the identifier. IDecl = ObjCInterfaceDecl::Create(Context, AtClassImplLoc, 0, ClassName, - false, true); + ClassLoc, false, true); ObjCInterfaceDecls[ClassName] = IDecl; IDecl->setSuperClass(SDecl); IDecl->setLocEnd(ClassLoc); @@ -591,7 +592,7 @@ Sema::ActOnForwardClassDeclaration(SourceLocation AtClassLoc, ObjCInterfaceDecl *IDecl = dyn_cast_or_null<ObjCInterfaceDecl>(PrevDecl); if (!IDecl) { // Not already seen? Make a forward decl. IDecl = ObjCInterfaceDecl::Create(Context, AtClassLoc, 0, IdentList[i], - true); + SourceLocation(), true); ObjCInterfaceDecls[IdentList[i]] = IDecl; // Remember that this needs to be removed when the scope is popped. |