================ @@ -144,3 +144,54 @@ static_assert(__builtin_is_cpp_trivially_relocatable(U2)); // expected-note@#tr-U2 {{'U2' defined here}} } + +namespace trivially_copyable { +struct B { + virtual ~B(); +}; +struct S : virtual B { // #tc-S + S(); + int & a; + const int ci; + B & b; + B c; + ~S(); +}; +static_assert(__is_trivially_copyable(S)); +// expected-error@-1 {{static assertion failed due to requirement '__is_trivially_copyable(trivially_copyable::S)'}} \ +// expected-note@-1 {{'S' is not trivially copyable}} \ +// expected-note@-1 {{because it has a virtual base 'B'}} \ +// expected-note@-1 {{because it has a non-trivially-copyable base 'B'}} \ ---------------- egorshamshura wrote:
Added some tests for this case https://github.com/llvm/llvm-project/pull/142341 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits