// 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[]; @protocol P; class C { public: C(int); }; @interface D - (void)g:(int)a, ...; @end void t1(D *d) { C c(10); [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]; } void t2(D *d, id p) { [d g:10, p]; } void t3(D *d, id<P> p) { [d g:10, p]; }