aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.8/gcc/testsuite/g++.old-deja/g++.bugs/900520_02.C
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.8/gcc/testsuite/g++.old-deja/g++.bugs/900520_02.C')
-rw-r--r--gcc-4.8/gcc/testsuite/g++.old-deja/g++.bugs/900520_02.C27
1 files changed, 27 insertions, 0 deletions
diff --git a/gcc-4.8/gcc/testsuite/g++.old-deja/g++.bugs/900520_02.C b/gcc-4.8/gcc/testsuite/g++.old-deja/g++.bugs/900520_02.C
new file mode 100644
index 000000000..0c8d8a2ba
--- /dev/null
+++ b/gcc-4.8/gcc/testsuite/g++.old-deja/g++.bugs/900520_02.C
@@ -0,0 +1,27 @@
+// { dg-do assemble }
+// g++ 1.37.1 bug 900520_02
+
+// keywords: reference types, initialization, parameter passing
+
+typedef int b_array[3];
+typedef int u_array[];
+
+typedef b_array &b_array_ref;
+typedef u_array &u_array_ref;
+
+void take_b_array_ref (b_array_ref arg) { } // { dg-error "" } passed to here
+
+extern u_array u_array_gbl_obj;
+
+u_array_ref u_array_ref_gbl_obj0 = u_array_gbl_obj;
+
+b_array_ref b_array_ref_gbl_obj0 = u_array_ref_gbl_obj0; // { dg-error "" } invalid declaration
+
+void test_passing ()
+{
+ take_b_array_ref (u_array_ref_gbl_obj0); // { dg-error "" } invalid call
+}
+
+b_array u_array_gbl_obj;
+
+int main () { return 0; }