@@ -1799,11 +1799,22 @@ def ArmMveStrictPolymorphism : TypeAttr, TargetSpecificAttr<TargetARM> {
17991799}
18001800
18011801def NoUniqueAddress : InheritableAttr {
1802- let Spellings = [CXX11<"", "no_unique_address", 201803>,
1803- CXX11<"msvc", "no_unique_address", 201803>];
1804- let Accessors = [Accessor<"isStandard", [CXX11<"", "no_unique_address", 201803>]>,
1805- Accessor<"isMSVC", [CXX11<"msvc", "no_unique_address", 201803>]>];
18061802 let Subjects = SubjectList<[NonBitField], ErrorDiag>;
1803+ // No spellings because instances of this attribute are created by
1804+ // MSNoUniqueAddress and ItaniumNoUniqueAddress
1805+ let Spellings = [];
1806+ let Documentation = [NoUniqueAddressDocs];
1807+ }
1808+
1809+ def MSNoUniqueAddress : InheritableAttr, TargetSpecificAttr<TargetMicrosoftCXXABI> {
1810+ let Subjects = SubjectList<[NonBitField], ErrorDiag>;
1811+ let Spellings = [CXX11<"msvc", "no_unique_address", 201803>];
1812+ let Documentation = [NoUniqueAddressDocs];
1813+ }
1814+
1815+ def ItaniumNoUniqueAddress : InheritableAttr, TargetSpecificAttr<TargetItaniumCXXABI> {
1816+ let Subjects = SubjectList<[NonBitField], ErrorDiag>;
1817+ let Spellings = [CXX11<"", "no_unique_address", 201803>];
18071818 let Documentation = [NoUniqueAddressDocs];
18081819}
18091820
0 commit comments