summaryrefslogtreecommitdiffstats
path: root/clang/test/CXX/expr/expr.post/expr.call
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2011-05-21 16:27:21 +0000
committerDouglas Gregor <dgregor@apple.com>2011-05-21 16:27:21 +0000
commit253cadfe681611bebb1addc47911b2f3f2bc2088 (patch)
treec28b46c9f58b55118d9aa6690a96528c10895332 /clang/test/CXX/expr/expr.post/expr.call
parent8e8f59bdfbbcde8c6bcee4774ae337bcdd9647a1 (diff)
downloadbcm5719-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.cpp17
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}}
+}
OpenPOWER on IntegriCloud