FSF GCC merge 02/23/03
[official-gcc.git] / gcc / testsuite / g++.old-deja / g++.jason / report.C
blob73adee87c9c44519fd7621ca22aa25ef153eb4ed
1 // Build don't link: 
2 // GROUPS passed error-reporting
3 // Special g++ Options: -Wreturn-type
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; // ERROR - not a member
38 int foo2 (int (*a)(int) = &foo)
40    undef4 (1); // ERROR - implicit declaration
41   return 1;
44 class X{
45   class Y{};                    // ERROR - private
48 typedef int const * bart ();
49 //The following is DR295 dependant
50 typedef bart const * const * bar2; // ERROR - constifying qualifiers
51 typedef bart volatile * const * bar2v; // ERROR - qualifiers
53 bar2 baz (X::Y y)
54 {                               // ERROR - in this context
55   X::Y f;                       // ERROR - in this context
56   bar2 wa [5];
57   wa[0] = baz(f);
58   undef2 (1); // ERROR - implicit declaration
61 int ninny ()
63   struct A
64     {
65           static int ninny2 () { return badoo<'\001'>::foo; } // ERROR - not a member
66     };
68   return A::ninny2();
71 int darg (char X::*p)
73    undef3 (1); // ERROR - implicit declaration