diff options
author | Fariborz Jahanian <fjahanian@apple.com> | 2011-08-22 17:59:19 +0000 |
---|---|---|
committer | Fariborz Jahanian <fjahanian@apple.com> | 2011-08-22 17:59:19 +0000 |
commit | 4bf8262a4355d3b3fcfac53f3cb0f3730beb3eba (patch) | |
tree | 44101add1f9462a6898858b3e1a1cf690cd3e5db /clang/lib/Parse/Parser.cpp | |
parent | 1dc9a20c161ee4bc54b0436e411c0be62da4b7bf (diff) | |
download | bcm5719-llvm-4bf8262a4355d3b3fcfac53f3cb0f3730beb3eba.tar.gz bcm5719-llvm-4bf8262a4355d3b3fcfac53f3cb0f3730beb3eba.zip |
objc - Simplify switing objc decl context by using
a context switching object.
llvm-svn: 138248
Diffstat (limited to 'clang/lib/Parse/Parser.cpp')
-rw-r--r-- | clang/lib/Parse/Parser.cpp | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/clang/lib/Parse/Parser.cpp b/clang/lib/Parse/Parser.cpp index d7e7d4b0812..0da2b4302c4 100644 --- a/clang/lib/Parse/Parser.cpp +++ b/clang/lib/Parse/Parser.cpp @@ -811,16 +811,12 @@ Parser::ParseDeclarationOrFunctionDefinition(ParsedAttributes &attrs, AccessSpecifier AS) { ParsingDeclSpec DS(*this); DS.takeAttributesFrom(attrs); - Decl *DC = getObjCDeclContext(); - if (DC) - // Must temporarily exit the objective-c container scope for - // parsing c constructs and re-enter objc container scope - // afterwards. - Actions.ActOnObjCContainerFinishDefinition(DC); - DeclGroupPtrTy resPtrTy = ParseDeclarationOrFunctionDefinition(DS, AS); - if (DC) - Actions.ActOnObjCContainerStartDefinition(DC); - return resPtrTy; + // Must temporarily exit the objective-c container scope for + // parsing c constructs and re-enter objc container scope + // afterwards. + ObjCDeclContextSwitch ObjCDC(*this); + + return ParseDeclarationOrFunctionDefinition(DS, AS); } /// ParseFunctionDefinition - We parsed and verified that the specified |