diff options
author | David Majnemer <david.majnemer@gmail.com> | 2011-06-13 06:37:03 +0000 |
---|---|---|
committer | David Majnemer <david.majnemer@gmail.com> | 2011-06-13 06:37:03 +0000 |
commit | db11b0187bafe77263036eafc3977fa5da3bcf1a (patch) | |
tree | bc30cd91b675c1852e9ef6ef54d5570f873259ab /test/SemaTemplate/instantiate-expr-3.cpp | |
parent | 0e1e69ca1b30df7692f302a5388377f507bc4567 (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.cpp | 9 |
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); + } +}; |