aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Pinski <pinskia@physics.uc.edu>2003-09-08 03:05:52 +0000
committerAndrew Pinski <pinskia@gcc.gnu.org>2003-09-07 20:05:52 -0700
commitdc4cb34e154562600dd586d5fc916738a476c0f1 (patch)
tree25d32800eb33a9252ad3b4a829f9052c0027a57c
parentc5ed395d448d30745f38ff60575ca8bcddaba32c (diff)
downloadgcc-dc4cb34e154562600dd586d5fc916738a476c0f1.zip
gcc-dc4cb34e154562600dd586d5fc916738a476c0f1.tar.gz
gcc-dc4cb34e154562600dd586d5fc916738a476c0f1.tar.bz2
re PR middle-end/11665 (ICE in struct initializer when taking address)
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. From-SVN: r71193
-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)) ),
+ },
+};
+}
+