aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Merrill <jason@gcc.gnu.org>1998-11-13 15:08:16 -0500
committerJason Merrill <jason@gcc.gnu.org>1998-11-13 15:08:16 -0500
commit46d18cc681ef683ff15b2e0060a8e3ce2f6c6f2c (patch)
tree06f04508a5dbdc6a3738eb8cd7f6992b3d508e9d
parentf99f88e0d00af73f31599ab56b2e83468100b0d0 (diff)
downloadgcc-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.C22
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; }