diff options
author | Andrew Pinski <pinskia@physics.uc.edu> | 2003-09-08 03:05:52 +0000 |
---|---|---|
committer | Andrew Pinski <pinskia@gcc.gnu.org> | 2003-09-07 20:05:52 -0700 |
commit | dc4cb34e154562600dd586d5fc916738a476c0f1 (patch) | |
tree | 25d32800eb33a9252ad3b4a829f9052c0027a57c /gcc/testsuite/gcc.c-torture | |
parent | c5ed395d448d30745f38ff60575ca8bcddaba32c (diff) | |
download | gcc-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
Diffstat (limited to 'gcc/testsuite/gcc.c-torture')
-rw-r--r-- | gcc/testsuite/gcc.c-torture/compile/20030907-1.c | 25 |
1 files changed, 25 insertions, 0 deletions
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)) ), + }, +}; +} + |