diff options
Diffstat (limited to 'src/shared/cplusplus/CheckSpecifier.cpp')
-rw-r--r-- | src/shared/cplusplus/CheckSpecifier.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/shared/cplusplus/CheckSpecifier.cpp b/src/shared/cplusplus/CheckSpecifier.cpp index a0c4f36995..f2c60c57de 100644 --- a/src/shared/cplusplus/CheckSpecifier.cpp +++ b/src/shared/cplusplus/CheckSpecifier.cpp @@ -337,8 +337,13 @@ bool CheckSpecifier::visit(ClassSpecifierAST *ast) klass->setClassKey(Class::UnionKey); klass->setVisibility(semantic()->currentVisibility()); _scope->enterSymbol(klass); + + ClassSpecifierAST *previousClassSpecifier = semantic()->switchDeclaringClass(ast); + _fullySpecifiedType.setType(klass); + accept(ast->attribute_list); + if (_fullySpecifiedType.isDeprecated()) klass->setDeprecated(true); @@ -377,6 +382,8 @@ bool CheckSpecifier::visit(ClassSpecifierAST *ast) (void) semantic()->switchMethodKey(previousMethodKey); (void) semantic()->switchVisibility(previousVisibility); + (void) semantic()->switchDeclaringClass(previousClassSpecifier); + return false; } |