diff options
Diffstat (limited to 'clang')
| -rw-r--r-- | clang/include/clang/Basic/Attr.td | 5 | ||||
| -rw-r--r-- | clang/test/SemaCXX/attr-print.cpp | 9 |
2 files changed, 12 insertions, 2 deletions
diff --git a/clang/include/clang/Basic/Attr.td b/clang/include/clang/Basic/Attr.td index afd1e019754..d72544f6556 100644 --- a/clang/include/clang/Basic/Attr.td +++ b/clang/include/clang/Basic/Attr.td @@ -184,7 +184,8 @@ class VersionArgument<string name, bit opt = 0> : Argument<name, opt>; class AlignedArgument<string name, bit opt = 0> : Argument<name, opt>; // A bool argument with a default value -class DefaultBoolArgument<string name, bit default> : BoolArgument<name, 1> { +class DefaultBoolArgument<string name, bit default, bit fake = 0> + : BoolArgument<name, 1, fake> { bit Default = default; } @@ -2624,7 +2625,7 @@ def UPtr : TypeAttr { 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">, diff --git a/clang/test/SemaCXX/attr-print.cpp b/clang/test/SemaCXX/attr-print.cpp index f40d803e94c..960050bc710 100644 --- a/clang/test/SemaCXX/attr-print.cpp +++ b/clang/test/SemaCXX/attr-print.cpp @@ -34,3 +34,12 @@ class __attribute__((consumable(unknown))) AttrTester1 { // 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; |

