// { dg-do assemble }
|
// { dg-do assemble }
|
// g++ 1.37.1 bug 900321_01
|
// g++ 1.37.1 bug 900321_01
|
|
|
// cfront flags ERRORs on each of the lines indicated below. g++ does not
|
// cfront flags ERRORs on each of the lines indicated below. g++ does not
|
// flag either ERRORs or warnings.
|
// flag either ERRORs or warnings.
|
|
|
// Although I cannot find where in the current C++ Reference Manual this
|
// Although I cannot find where in the current C++ Reference Manual this
|
// topic is covered, I am sure that these statements should get ERRORs in
|
// topic is covered, I am sure that these statements should get ERRORs in
|
// a "strongly typed" language.
|
// a "strongly typed" language.
|
|
|
// Cfront 2.0 passes this test.
|
// Cfront 2.0 passes this test.
|
|
|
// keywords: array types, array bound, pointers
|
// keywords: array types, array bound, pointers
|
|
|
int (*ptr_to_array_of_ints)[];
|
int (*ptr_to_array_of_ints)[];
|
int (*ptr_to_array_of_3_ints) [3];
|
int (*ptr_to_array_of_3_ints) [3];
|
int (*ptr_to_array_of_5_ints) [5];
|
int (*ptr_to_array_of_5_ints) [5];
|
|
|
void function_0 ()
|
void function_0 ()
|
{
|
{
|
// we miss the first two because typeck.c (comp_array_types) deems
|
// we miss the first two because typeck.c (comp_array_types) deems
|
// it okay if one of the sizes is null
|
// it okay if one of the sizes is null
|
ptr_to_array_of_ints = ptr_to_array_of_3_ints; // { dg-error "" }
|
ptr_to_array_of_ints = ptr_to_array_of_3_ints; // { dg-error "" }
|
ptr_to_array_of_3_ints = ptr_to_array_of_ints; // { dg-error "" }
|
ptr_to_array_of_3_ints = ptr_to_array_of_ints; // { dg-error "" }
|
|
|
ptr_to_array_of_3_ints = ptr_to_array_of_5_ints; // { dg-error "" }
|
ptr_to_array_of_3_ints = ptr_to_array_of_5_ints; // { dg-error "" }
|
ptr_to_array_of_5_ints = ptr_to_array_of_3_ints; // { dg-error "" }
|
ptr_to_array_of_5_ints = ptr_to_array_of_3_ints; // { dg-error "" }
|
}
|
}
|
|
|
int main () { return 0; }
|
int main () { return 0; }
|
|
|