aboutsummaryrefslogtreecommitdiff
path: root/test/SemaObjCXX/vararg-non-pod.mm
diff options
context:
space:
mode:
Diffstat (limited to 'test/SemaObjCXX/vararg-non-pod.mm')
-rw-r--r--test/SemaObjCXX/vararg-non-pod.mm9
1 files changed, 8 insertions, 1 deletions
diff --git a/test/SemaObjCXX/vararg-non-pod.mm b/test/SemaObjCXX/vararg-non-pod.mm
index 5a6281d71cb2..daf9aa92b54e 100644
--- a/test/SemaObjCXX/vararg-non-pod.mm
+++ b/test/SemaObjCXX/vararg-non-pod.mm
@@ -1,4 +1,6 @@
// RUN: %clang_cc1 -fsyntax-only -verify %s -Wno-error=non-pod-varargs
+// RUN: %clang_cc1 -fsyntax-only -verify %s -Wno-error=non-pod-varargs -std=c++98
+// RUN: %clang_cc1 -fsyntax-only -verify %s -Wno-error=non-pod-varargs -std=c++11
extern char version[];
@@ -17,7 +19,12 @@ void t1(D *d)
{
C c(10);
- [d g:10, c]; // expected-warning{{cannot pass object of non-POD type 'C' through variadic method; call will abort at runtime}}
+ [d g:10, c];
+#if __cplusplus <= 199711L // C++03 or earlier modes
+ // expected-warning@-2{{cannot pass object of non-POD type 'C' through variadic method; call will abort at runtime}}
+#else
+ // expected-no-diagnostics@-4
+#endif
[d g:10, version];
}