diff options
Diffstat (limited to 'clang/test/CXX/drs/dr21xx.cpp')
-rw-r--r-- | clang/test/CXX/drs/dr21xx.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/clang/test/CXX/drs/dr21xx.cpp b/clang/test/CXX/drs/dr21xx.cpp index 78fc0bec40b..2522ff7dbde 100644 --- a/clang/test/CXX/drs/dr21xx.cpp +++ b/clang/test/CXX/drs/dr21xx.cpp @@ -3,6 +3,22 @@ // RUN: %clang_cc1 -std=c++14 -triple x86_64-unknown-unknown %s -verify -fexceptions -fcxx-exceptions -pedantic-errors // RUN: %clang_cc1 -std=c++1z -triple x86_64-unknown-unknown %s -verify -fexceptions -fcxx-exceptions -pedantic-errors +#if __cplusplus < 201103L +// expected-error@+1 {{variadic macro}} +#define static_assert(...) __extension__ _Static_assert(__VA_ARGS__) +#endif + +namespace dr2120 { // dr2120: 7 + struct A {}; + struct B : A {}; + struct C { A a; }; + struct D { C c[5]; }; + struct E : B { D d; }; + static_assert(__is_standard_layout(B), ""); + static_assert(__is_standard_layout(D), ""); + static_assert(!__is_standard_layout(E), ""); +} + namespace dr2180 { // dr2180: yes class A { A &operator=(const A &); // expected-note 0-2{{here}} |