aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.old-deja/g++.bugs/900520_02.C
blob: 05c880d2e3c034b220b230c2ec02857bb1468a6d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// g++ 1.37.1 bug 900520_02

// g++ fails to allow a reference to an unbounded array type to be passed
// into a formal parameter whose type is pointer-to-bounded-array type.

// Cases other than parameter passing in which similar initializations
// take place are allowed however.

// cfront 2.0 passes this test.

// 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) { }

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;	// OK

void test_passing ()
{
  take_b_array_ref (u_array_ref_gbl_obj0);	// gets bogus error
}

b_array u_array_gbl_obj;

int main () { return 0; }