Minor clean up of objc's decl context stuff.

No change in functionality.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138742 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Fariborz Jahanian 2011-08-29 17:33:12 +00:00
Родитель ece3894a9f
Коммит 10af87932f
5 изменённых файлов: 6 добавлений и 8 удалений

Просмотреть файл

@ -513,7 +513,7 @@ private:
explicit ObjCDeclContextSwitch(Parser &p) : P(p),
DC(p.getObjCDeclContext()) {
if (DC)
P.Actions.ActOnObjCContainerFinishDefinition(DC);
P.Actions.ActOnObjCContainerFinishDefinition();
}
~ObjCDeclContextSwitch() {
if (DC)

Просмотреть файл

@ -1202,7 +1202,7 @@ public:
void ActOnTagFinishDefinition(Scope *S, Decl *TagDecl,
SourceLocation RBraceLoc);
void ActOnObjCContainerFinishDefinition(Decl *IDecl);
void ActOnObjCContainerFinishDefinition();
/// ActOnTagDefinitionError - Invoked when there was an unrecoverable
/// error parsing the definition of a tag.

Просмотреть файл

@ -471,7 +471,6 @@ void Parser::ParseObjCInterfaceDeclList(tok::ObjCKeywordKind contextKey,
allMethods.data(), allMethods.size(),
allProperties.data(), allProperties.size(),
allTUVariables.data(), allTUVariables.size());
Actions.ActOnObjCContainerFinishDefinition(CDecl);
}
/// Parse property attribute declarations.
@ -1184,7 +1183,7 @@ void Parser::ParseObjCClassInstanceVariables(Decl *interfaceDecl,
= P.Actions.ActOnIvar(P.getCurScope(),
FD.D.getDeclSpec().getSourceRange().getBegin(),
FD.D, FD.BitfieldSize, visibility);
P.Actions.ActOnObjCContainerFinishDefinition(IDecl);
P.Actions.ActOnObjCContainerFinishDefinition();
if (Field)
AllIvarDecls.push_back(Field);
return Field;
@ -1206,7 +1205,7 @@ void Parser::ParseObjCClassInstanceVariables(Decl *interfaceDecl,
SourceLocation RBraceLoc = MatchRHSPunctuation(tok::r_brace, LBraceLoc);
Actions.ActOnObjCContainerStartDefinition(interfaceDecl);
Actions.ActOnLastBitfield(RBraceLoc, AllIvarDecls);
Actions.ActOnObjCContainerFinishDefinition(interfaceDecl);
Actions.ActOnObjCContainerFinishDefinition();
// Call ActOnFields() even if we don't have any decls. This is useful
// for code rewriting tools that need to be aware of the empty list.
Actions.ActOnFields(getCurScope(), atLoc, interfaceDecl,
@ -1403,7 +1402,6 @@ Decl *Parser::ParseObjCAtEndDeclaration(SourceRange atEnd) {
ConsumeToken(); // the "end" identifier
if (ObjCImpDecl) {
Actions.ActOnAtEnd(getCurScope(), atEnd);
Actions.ActOnObjCContainerFinishDefinition(ObjCImpDecl);
ObjCImpDecl = 0;
PendingObjCImpDecl.pop_back();
}
@ -1420,7 +1418,6 @@ Parser::DeclGroupPtrTy Parser::FinishPendingObjCActions() {
return Actions.ConvertDeclToDeclGroup(0);
Decl *ImpDecl = PendingObjCImpDecl.pop_back_val();
Actions.ActOnAtEnd(getCurScope(), SourceRange());
Actions.ActOnObjCContainerFinishDefinition(ImpDecl);
return Actions.ConvertDeclToDeclGroup(ImpDecl);
}

Просмотреть файл

@ -7780,7 +7780,7 @@ void Sema::ActOnTagFinishDefinition(Scope *S, Decl *TagD,
Consumer.HandleTagDeclDefinition(Tag);
}
void Sema::ActOnObjCContainerFinishDefinition(Decl *IDecl) {
void Sema::ActOnObjCContainerFinishDefinition() {
// Exit this scope of this interface definition.
PopDeclContext();
}

Просмотреть файл

@ -2242,6 +2242,7 @@ void Sema::ActOnAtEnd(Scope *S, SourceRange AtEnd,
}
}
}
ActOnObjCContainerFinishDefinition();
}