================ @@ -1798,11 +1798,24 @@ def ArmMveStrictPolymorphism : TypeAttr, TargetSpecificAttr<TargetARM> { let Documentation = [ArmMveStrictPolymorphismDocs]; } -def NoUniqueAddress : InheritableAttr, TargetSpecificAttr<TargetItaniumCXXABI> { - let Spellings = [CXX11<"", "no_unique_address", 201803>]; +def NoUniqueAddress : InheritableAttr { + let Subjects = SubjectList<[NonBitField], ErrorDiag>; + // No spellings because instances of this attribute are created by + // MSNoUniqueAddress and ItaniumNoUniqueAddress + let Spellings = []; + let Documentation = [InternalOnly]; +} + +def MSNoUniqueAddress : InheritableAttr, TargetSpecificAttr<TargetMicrosoftCXXABI> { let Subjects = SubjectList<[NonBitField], ErrorDiag>; + let Spellings = [CXX11<"msvc", "no_unique_address", 201803>]; + let Documentation = [MSNoUniqueAddressDocs]; +} + +def ItaniumNoUniqueAddress : InheritableAttr, TargetSpecificAttr<TargetItaniumCXXABI> { ---------------- zygoloid wrote:
I don't think this attribute name makes sense: this is the standard attribute (which just happens to have no effect on the MS ABI), not something specific to the Itanium ABI. https://github.com/llvm/llvm-project/pull/67199 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits