diff options
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.jason/report.C')
-rwxr-xr-x | gcc/testsuite/g++.old-deja/g++.jason/report.C | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.jason/report.C b/gcc/testsuite/g++.old-deja/g++.jason/report.C new file mode 100755 index 0000000..d3d3392 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.jason/report.C @@ -0,0 +1,68 @@ +// Build don't link: +// GROUPS passed error-reporting +template <char C> +class badoo +{ +}; + +template <int (*F) (int)> +class doowop +{ +}; + +struct A +{ + int a; + ~A () { a = 0; } + operator int () { return a; } +}; + +extern "C" int atoi (char *); + +int (*fee)(char *) = atoi; +int (**bar)(char *) = &fee; + +char *s = "4"; +char **sp = &s; +char ***spp = &sp; + +int foo (int a = (**bar) (s)) +{ + return doowop<foo>::bar; // ERROR - not a member +} // ERROR - non-void + +int foo2 (int (*a)(int) = &foo) +{ + undef4 (1); // ERROR - implicit declaration + return 1; +} + +class X{ + class Y{}; +}; + +typedef int const * bart (); +typedef bart const * const * bar2; + +bar2 baz (X::Y y) +{ + X::Y f; + bar2 wa [5]; + wa[0] = baz(f); + undef2 (1); // ERROR - implicit declaration +} // ERROR - non-void + +int ninny () +{ + struct A + { + static int ninny2 () { return badoo<'\001'>::foo; } // ERROR - not a member + }; + + return A::ninny2(); +} + +int darg (char X::*p) +{ + undef3 (1); // ERROR - implicit declaration +} // ERROR - non-void |