1 // RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s 2 3 struct X1 { 4 X1(); 5 }; 6 7 struct X2 { 8 X2(); 9 ~X2(); 10 }; 11 12 struct X3 { 13 X3(const X3&) = default; 14 }; 15 16 struct X4 { 17 X4(const X4&) = default; 18 X4(X4&); 19 }; 20 21 void vararg(...); 22 23 void f(X1 x1, X2 x2, X3 x3, X4 x4) { 24 vararg(x1); // OK 25 vararg(x2); // expected-error{{cannot pass object of non-trivial type 'X2' through variadic function; call will abort at runtime}} 26 vararg(x3); // OK 27 vararg(x4); // expected-error{{cannot pass object of non-trivial type 'X4' through variadic function; call will abort at runtime}} 28 } 29 30 31 namespace PR11131 { 32 struct S; 33 34 S &getS(); 35 36 void f(...); 37 38 void g() { 39 (void)sizeof(f(getS())); 40 } 41 } 42