Index: cfe/trunk/include/clang/Basic/Attr.td =================================================================== --- cfe/trunk/include/clang/Basic/Attr.td +++ cfe/trunk/include/clang/Basic/Attr.td @@ -184,7 +184,8 @@ class AlignedArgument : Argument; // A bool argument with a default value -class DefaultBoolArgument : BoolArgument { +class DefaultBoolArgument + : BoolArgument { bit Default = default; } @@ -2624,7 +2625,7 @@ def MSInheritance : InheritableAttr { let LangOpts = [MicrosoftExt]; - let Args = [DefaultBoolArgument<"BestCase", 1>]; + let Args = [DefaultBoolArgument<"BestCase", /*default*/1, /*fake*/1>]; let Spellings = [Keyword<"__single_inheritance">, Keyword<"__multiple_inheritance">, Keyword<"__virtual_inheritance">, Index: cfe/trunk/test/SemaCXX/attr-print.cpp =================================================================== --- cfe/trunk/test/SemaCXX/attr-print.cpp +++ cfe/trunk/test/SemaCXX/attr-print.cpp @@ -34,3 +34,12 @@ // CHECK: void callableWhen() __attribute__((callable_when("unconsumed", "consumed"))); void callableWhen() __attribute__((callable_when("unconsumed", "consumed"))); }; + +// CHECK: class __single_inheritance SingleInheritance; +class __single_inheritance SingleInheritance; + +// CHECK: class __multiple_inheritance MultipleInheritance; +class __multiple_inheritance MultipleInheritance; + +// CHECK: class __virtual_inheritance VirtualInheritance; +class __virtual_inheritance VirtualInheritance;