2003-12-26 Guilhem Lavaux <guilhem@kaffe.org>
[official-gcc.git] / gcc / testsuite / g++.old-deja / g++.other / vaarg3.C
blobd86d8c1ea32a8c833ecd34fe8a01c5542549142a
1 // { dg-do assemble  }
3 // Copyright (C) 1999 Free Software Foundation, Inc.
4 // Contributed by Nathan Sidwell 4 Oct 1999 <nathan@acm.org>
6 // Make sure we diagnose bad uses of va_arg
8 #include <stdarg.h>
10 struct X {int m;};
11 struct Y : X {int m;};
12 struct Z;   // { dg-error "" } forward decl
13 void fn1(va_list args)
15   int i = va_arg (args, int);
16   Y x = va_arg (args, Y);         // { dg-warning "" } cannot receive
17   Y y = va_arg (args, struct Y);  // { dg-warning "" } cannot receive
18   int &r = va_arg (args, int &);  // { dg-warning "" } cannot receive
19   
20   Z z1 = va_arg (args, Z);        // { dg-error "" } incomplete
21   const Z &z2 = va_arg (args, Z);       // { dg-error "" } incomplete
23   va_arg (args, char);    // { dg-error "" } promote
24   va_arg (args, int []);  // { dg-error "" } promote
25   va_arg (args, int ());  // { dg-error "" } promote
26   va_arg (args, bool);    // { dg-error "" } promote