blob: 7e5c4c6c97a0ad49122b5a16ca241ba9046048c0 [file] [log] [blame]
Daniel Dunbara5728872009-12-15 20:14:24 +00001// RUN: %clang_cc1 -fsyntax-only -verify %s -Wnon-pod-varargs
Anders Carlsson906fed02009-01-13 05:48:52 +00002
Anders Carlssondce5e2c2009-01-16 16:48:51 +00003extern char version[];
4
Anders Carlsson672c91d2009-02-09 21:53:01 +00005@protocol P;
6
Anders Carlsson906fed02009-01-13 05:48:52 +00007class C {
8public:
9 C(int);
10};
11
12@interface D
13- (void)g:(int)a, ...;
14@end
15
16void t1(D *d)
17{
18 C c(10);
19
John McCall7c2342d2010-03-10 11:27:22 +000020 [d g:10, c]; // expected-warning{{cannot pass object of non-POD type 'C' through variadic method; call will abort at runtime}}
Anders Carlssondce5e2c2009-01-16 16:48:51 +000021 [d g:10, version];
Anders Carlsson906fed02009-01-13 05:48:52 +000022}
23
Anders Carlsson672c91d2009-02-09 21:53:01 +000024void t2(D *d, id p)
25{
26 [d g:10, p];
27}
28
29void t3(D *d, id<P> p)
30{
31 [d g:10, p];
32}