summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.old-deja/g++.bugs/900520_02.C
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.bugs/900520_02.C')
-rwxr-xr-xgcc/testsuite/g++.old-deja/g++.bugs/900520_02.C26
1 files changed, 26 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900520_02.C b/gcc/testsuite/g++.old-deja/g++.bugs/900520_02.C
new file mode 100755
index 0000000..80543b6
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.bugs/900520_02.C
@@ -0,0 +1,26 @@
+// 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) { } // 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; // ERROR - invalid declaration
+
+void test_passing ()
+{
+ take_b_array_ref (u_array_ref_gbl_obj0); // ERROR - invalid call
+}
+
+b_array u_array_gbl_obj;
+
+int main () { return 0; }