Index: lib/Parse/ParseDecl.cpp |
diff --git a/lib/Parse/ParseDecl.cpp b/lib/Parse/ParseDecl.cpp |
index 31a898cf5a0f0fb1b3de9e249819c222c1c34590..712defaa8d9b6aea5cded140ca546ee85c1d71c1 100644 |
--- a/lib/Parse/ParseDecl.cpp |
+++ b/lib/Parse/ParseDecl.cpp |
@@ -736,9 +736,18 @@ void Parser::ParseLexedAttributes(ParsingClass &Class) { |
ParseScope ClassScope(this, ScopeFlags, !AlreadyHasClassScope); |
ParseScopeFlags ClassScopeFlags(this, ScopeFlags, AlreadyHasClassScope); |
+ // Enter the scope of nested classes |
+ if (!AlreadyHasClassScope) |
+ Actions.ActOnStartDelayedMemberDeclarations(getCurScope(), |
+ Class.TagOrTemplate); |
+ |
for (unsigned i = 0, ni = Class.LateParsedDeclarations.size(); i < ni; ++i) { |
Class.LateParsedDeclarations[i]->ParseLexedAttributes(); |
} |
+ |
+ if (!AlreadyHasClassScope) |
+ Actions.ActOnFinishDelayedMemberDeclarations(getCurScope(), |
+ Class.TagOrTemplate); |
} |