diff --git a/src/shared/cplusplus/Parser.cpp b/src/shared/cplusplus/Parser.cpp
index 0b7ad74214d09711a93f987a0c20186e6c7d5ea0..325135838efc2471d0cbe2c9e21ce472d867a9ff 100644
--- a/src/shared/cplusplus/Parser.cpp
+++ b/src/shared/cplusplus/Parser.cpp
@@ -3633,10 +3633,14 @@ bool Parser::maybeForwardOrClassDeclaration(SpecifierListAST *decl_specifier_seq
         if (it) {
             SpecifierAST *spec = it->value;
 
-            if (! it->next && (spec->asElaboratedTypeSpecifier() ||
-                               spec->asEnumSpecifier() ||
-                               spec->asClassSpecifier()))
+            if (spec->asElaboratedTypeSpecifier() ||
+                    spec->asEnumSpecifier() ||
+                    spec->asClassSpecifier()) {
+                for (it = it->next; it; it = it->next)
+                    if (it->value->asAttributeSpecifier() == 0)
+                        return false;
                 return true;
+            }
         }
     }