aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/g++.dg/init/array11.C25
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20030907-1.c25
3 files changed, 56 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index a88421b..4db007f 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2003-09-07 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR middle-end/11665
+ * gcc.c-torture/compile/20030907-1.c: New test.
+ * g++.dg/init/array11.C: New test.
+
2003-09-07 Mark Mitchell <mark@codesourcery.com>
PR c++/11852
diff --git a/gcc/testsuite/g++.dg/init/array11.C b/gcc/testsuite/g++.dg/init/array11.C
new file mode 100644
index 0000000..e362b91
--- /dev/null
+++ b/gcc/testsuite/g++.dg/init/array11.C
@@ -0,0 +1,25 @@
+/* PR 11665
+ Orgin: jwhite@cse.unl.edu
+ The problem was in initializer_constant_valid_p,
+ "for a CONSTRUCTOR, only the last element
+ of the CONSTRUCTOR was being checked"
+ (from the email of the patch which fixed this).
+ This used to ICE because GCC thought gdt_table was a
+ constant value when it is not. */
+
+int x;
+struct gdt
+{
+unsigned a,b,c,d,e,f;
+};
+void f()
+{
+struct gdt gdt_table[2]=
+{
+ {
+ 0,
+ ( (((unsigned)(&x))<<(24))&(-1<<(8)) ),
+ },
+};
+}
+
diff --git a/gcc/testsuite/gcc.c-torture/compile/20030907-1.c b/gcc/testsuite/gcc.c-torture/compile/20030907-1.c
new file mode 100644
index 0000000..e362b91
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/20030907-1.c
@@ -0,0 +1,25 @@
+/* PR 11665
+ Orgin: jwhite@cse.unl.edu
+ The problem was in initializer_constant_valid_p,
+ "for a CONSTRUCTOR, only the last element
+ of the CONSTRUCTOR was being checked"
+ (from the email of the patch which fixed this).
+ This used to ICE because GCC thought gdt_table was a
+ constant value when it is not. */
+
+int x;
+struct gdt
+{
+unsigned a,b,c,d,e,f;
+};
+void f()
+{
+struct gdt gdt_table[2]=
+{
+ {
+ 0,
+ ( (((unsigned)(&x))<<(24))&(-1<<(8)) ),
+ },
+};
+}
+