2003-12-26 Guilhem Lavaux <guilhem@kaffe.org>
[official-gcc.git] / gcc / testsuite / g++.old-deja / g++.jason / report.C
blobfad87fcd024694ddb337e3f43078c081f22ee6a5
1 // { dg-do assemble  }
2 // { dg-options "-Wreturn-type" }
3 // GROUPS passed error-reporting
5 // DR 295 allows qualification via typedef
7 template <char C>
8 class badoo
12 template <int (*F) (int)>
13 class doowop
17 struct A
19   int a;
20   ~A () { a = 0; }
21   operator int () { return a; }
24 extern "C" int atoi (char *);
26 int (*fee)(char *) = atoi;
27 int (**bar)(char *) = &fee;
29 char *s = "4";
30 char **sp = &s;
31 char ***spp = &sp;
33 int foo (int a = (**bar) (s))
35    return doowop<foo>::bar; // { dg-error "" } not a member
38 int foo2 (int (*a)(int) = &foo)
40    undef4 (1); // { dg-error "" } implicit declaration
41   return 1;
44 class X{
45   class Y{};                    // { dg-error "" } private
48 typedef int const * bart ();
49 //The following is DR295 dependant
50 typedef bart const * const * bar2; // { dg-error "" } constifying qualifiers
51 typedef bart volatile * const * bar2v; // { dg-error "" } qualifiers
53 bar2 baz (X::Y y)
54 {                               // { dg-error "" } in this context
55   X::Y f;                       // { dg-error "" } in this context
56   bar2 wa [5];
57   wa[0] = baz(f);
58   undef2 (1); // { dg-error "" } implicit declaration
61 int ninny ()
63   struct A
64     {
65           static int ninny2 () { return badoo<'\001'>::foo; } // { dg-error "" } not a member
66     };
68   return A::ninny2();
71 int darg (char X::*p)
73    undef3 (1); // { dg-error "" } implicit declaration