diff options
author | Jason Merrill <jason@gcc.gnu.org> | 1998-11-13 15:08:16 -0500 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 1998-11-13 15:08:16 -0500 |
commit | 46d18cc681ef683ff15b2e0060a8e3ce2f6c6f2c (patch) | |
tree | 06f04508a5dbdc6a3738eb8cd7f6992b3d508e9d | |
parent | f99f88e0d00af73f31599ab56b2e83468100b0d0 (diff) | |
download | gcc-46d18cc681ef683ff15b2e0060a8e3ce2f6c6f2c.zip gcc-46d18cc681ef683ff15b2e0060a8e3ce2f6c6f2c.tar.gz gcc-46d18cc681ef683ff15b2e0060a8e3ce2f6c6f2c.tar.bz2 |
fix
From-SVN: r23646
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.bugs/900322_01.C | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900322_01.C b/gcc/testsuite/g++.old-deja/g++.bugs/900322_01.C index 5f3aa05..48ae600 100644 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900322_01.C +++ b/gcc/testsuite/g++.old-deja/g++.bugs/900322_01.C @@ -1,5 +1,7 @@ // g++ 1.37.1 bug 900322_01 +// ** Old, obsolete commentary: +// ************************************************************************** // The ANSI C standard, in section 3.1.2.5 (first paragraph) differentiates // types into three disjoint sets, i.e object types, function types, and // incomplete types. @@ -19,6 +21,14 @@ // g++ fails to flag all of the indicated statements with errors (even when // the -pedantic option is used). +// ************************************************************************** + +// The above commentary is wrong. (jason 1998/11/13) +// In fact, the lines marked OK are well-formed; the prohibition is only +// against forming array types with multiple unknown bounds. This prohibition +// is found in 8.3.4 [dcl.array]. + +// It is also ill-formed to create an object of incomplete type. // keywords: incomplete types, arrays, element types @@ -36,16 +46,16 @@ typedef int_one_d_type int_two_d_type[];// ERROR - invalid declaration struct s; -extern struct s extern_s_array [10]; // ERROR - , XFAIL *-*-* -struct s tenative_s_array [10]; // ERROR - caught by g++ -static struct s static_s_array [10]; // ERROR - caught by g++ +extern struct s extern_s_array [10]; // OK +struct s tenative_s_array [10]; // ERROR - object with incomplete type +static struct s static_s_array [10]; // ERROR - object with incomplete type -struct s (*pointer_to_s_array) []; // ERROR - , XFAIL *-*-* +struct s (*pointer_to_s_array) []; // OK -void function_1 (struct s arg []) { // ERROR - , XFAIL *-*-* +void function_1 (struct s arg []) { // OK } typedef struct s s_type; -typedef s_type s_one_d_type [10]; // ERROR - , XFAIL *-*-* +typedef s_type s_one_d_type [10]; // OK int main () { return 0; } |