aboutsummaryrefslogtreecommitdiff
path: root/test/SemaTemplate/instantiate-expr-3.cpp
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2011-06-13 06:37:03 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2011-06-13 06:37:03 +0000
commitdb11b0187bafe77263036eafc3977fa5da3bcf1a (patch)
treebc30cd91b675c1852e9ef6ef54d5570f873259ab /test/SemaTemplate/instantiate-expr-3.cpp
parent0e1e69ca1b30df7692f302a5388377f507bc4567 (diff)
Give a diagnostic when using non-POD types in a va_arg
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132905 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/SemaTemplate/instantiate-expr-3.cpp')
-rw-r--r--test/SemaTemplate/instantiate-expr-3.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/test/SemaTemplate/instantiate-expr-3.cpp b/test/SemaTemplate/instantiate-expr-3.cpp
index ca88b00300..1febd282cc 100644
--- a/test/SemaTemplate/instantiate-expr-3.cpp
+++ b/test/SemaTemplate/instantiate-expr-3.cpp
@@ -117,3 +117,12 @@ struct VaArg1 {
template struct VaArg1<__builtin_va_list, int>;
template struct VaArg1<int, int>; // expected-note{{instantiation}}
+
+struct VaArg2 {
+ virtual void f(int n, ...) {
+ __builtin_va_list va;
+ __builtin_va_start(va, n);
+ (void)__builtin_va_arg(va, VaArg2); // expected-error {{second argument to 'va_arg' is of non-POD type 'VaArg2'}}
+ __builtin_va_end(va);
+ }
+};