================
@@ -1175,12 +1175,21 @@ Parser::DeclGroupPtrTy
Parser::ParseDeclOrFunctionDefInternal(
}
};
- // Suggest correct location to fix '[[attrib]] struct' to 'struct
[[attrib]]'
+ // Suggest correct location to fix '[[attrib]] struct' to 'struct
[[attrib]]'...
SourceLocation CorrectLocationForAttributes =
DeclSpec::isDeclRep(DS.getTypeSpecType())
? DS.getTypeSpecTypeLoc().getLocWithOffset(
LengthOfTSTToken(DS.getTypeSpecType()))
: SourceLocation();
+ // ... suggested location should be after 'class/struct' for scoped enums
+ if (DS.getTypeSpecType() == DeclSpec::TST_enum) {
+ const EnumDecl *ED = cast<EnumDecl>(DS.getRepAsDecl());
+ if (ED->isScoped()) {
+ // FIXME: offset is dependent on number of spaces after 'enum'
+ CorrectLocationForAttributes =
+ CorrectLocationForAttributes.getLocWithOffset(6);
----------------
Fznamznon wrote:
Yeah, I don't think that is a robust solution, we probably need to figure a
dynamic way to get the correct location.
https://github.com/llvm/llvm-project/pull/124122
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits