Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / clang / test / SemaObjCXX / vararg-non-pod.mm
blob58270aa2b9080eab1293680cfefd8b5832c4e5e3
1 // RUN: %clang_cc1 -fsyntax-only -verify %s -Wno-error=non-pod-varargs
2 // RUN: %clang_cc1 -fsyntax-only -verify %s -Wno-error=non-pod-varargs -std=c++98
3 // RUN: %clang_cc1 -fsyntax-only -verify %s -Wno-error=non-pod-varargs -std=c++11
5 #if __cplusplus > 199711L
6 // expected-no-diagnostics
7 #endif
9 extern char version[];
11 @protocol P;
13 class C {
14 public:
15   C(int);
18 @interface D 
19 - (void)g:(int)a, ...;
20 @end
22 void t1(D *d)
24   C c(10);
26   [d g:10, c]; 
27 #if __cplusplus <= 199711L // C++03 or earlier modes
28   // expected-warning@-2{{cannot pass object of non-POD type 'C' through variadic method; call will abort at runtime}}
29 #endif
30   [d g:10, version];
33 void t2(D *d, id p)
35   [d g:10, p];
38 void t3(D *d, id<P> p)
40   [d g:10, p];