summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.old-deja/g++.jason/report.C
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.jason/report.C')
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.jason/report.C68
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