forked from OSchip/llvm-project
Test that we correctly deal with multiple copy constructors when detecting
non-trivial special members for varargs calls. llvm-svn: 168476
This commit is contained in:
parent
3ad394931d
commit
56cb16dd92
|
@ -9,11 +9,22 @@ struct X2 {
|
|||
~X2();
|
||||
};
|
||||
|
||||
struct X3 {
|
||||
X3(const X3&) = default;
|
||||
};
|
||||
|
||||
struct X4 {
|
||||
X4(const X4&) = default;
|
||||
X4(X4&);
|
||||
};
|
||||
|
||||
void vararg(...);
|
||||
|
||||
void f(X1 x1, X2 x2) {
|
||||
vararg(x1); // okay
|
||||
void f(X1 x1, X2 x2, X3 x3, X4 x4) {
|
||||
vararg(x1); // OK
|
||||
vararg(x2); // expected-error{{cannot pass object of non-trivial type 'X2' through variadic function; call will abort at runtime}}
|
||||
vararg(x3); // OK
|
||||
vararg(x4); // expected-error{{cannot pass object of non-trivial type 'X4' through variadic function; call will abort at runtime}}
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue