fix
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 13 Nov 1998 20:08:16 +0000 (20:08 +0000)
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 13 Nov 1998 20:08:16 +0000 (20:08 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@23646 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/testsuite/g++.old-deja/g++.bugs/900322_01.C

index 5f3aa05..48ae600 100644 (file)
@@ -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.
 
 // 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; }