diff options
author | Douglas Gregor <dgregor@apple.com> | 2011-05-21 16:27:21 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2011-05-21 16:27:21 +0000 |
commit | 253cadfe681611bebb1addc47911b2f3f2bc2088 (patch) | |
tree | c28b46c9f58b55118d9aa6690a96528c10895332 /clang/test/CXX/expr/expr.post/expr.call | |
parent | 8e8f59bdfbbcde8c6bcee4774ae337bcdd9647a1 (diff) | |
download | bcm5719-llvm-253cadfe681611bebb1addc47911b2f3f2bc2088.tar.gz bcm5719-llvm-253cadfe681611bebb1addc47911b2f3f2bc2088.zip |
Implement C++0x semantics for passing non-POD classes through varargs.
llvm-svn: 131792
Diffstat (limited to 'clang/test/CXX/expr/expr.post/expr.call')
-rw-r--r-- | clang/test/CXX/expr/expr.post/expr.call/p7-0x.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/clang/test/CXX/expr/expr.post/expr.call/p7-0x.cpp b/clang/test/CXX/expr/expr.post/expr.call/p7-0x.cpp new file mode 100644 index 00000000000..bb4726dd330 --- /dev/null +++ b/clang/test/CXX/expr/expr.post/expr.call/p7-0x.cpp @@ -0,0 +1,17 @@ +// RUN: %clang_cc1 -fsyntax-only -verify -std=c++0x %s + +struct X1 { + X1(); +}; + +struct X2 { + X2(); + ~X2(); +}; + +void vararg(...); + +void f(X1 x1, X2 x2) { + vararg(x1); // okay + vararg(x2); // expected-error{{cannot pass object of non-trivial type 'X2' through variadic function; call will abort at runtime}} +} |