diff options
| author | pinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-09-08 03:05:52 +0000 |
|---|---|---|
| committer | pinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-09-08 03:05:52 +0000 |
| commit | 84529bf2e30b42fbfe480fafdc29d615405d5274 (patch) | |
| tree | 25d32800eb33a9252ad3b4a829f9052c0027a57c | |
| parent | 49c438a6ff6e9da099ea8b95ca647339d35748d5 (diff) | |
| download | ppe42-gcc-84529bf2e30b42fbfe480fafdc29d615405d5274.tar.gz ppe42-gcc-84529bf2e30b42fbfe480fafdc29d615405d5274.zip | |
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@71193 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
| -rw-r--r-- | gcc/testsuite/g++.dg/init/array11.C | 25 | ||||
| -rw-r--r-- | gcc/testsuite/gcc.c-torture/compile/20030907-1.c | 25 |
3 files changed, 56 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index a88421b332e..4db007fa031 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 00000000000..e362b910284 --- /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 00000000000..e362b910284 --- /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)) ), + }, +}; +} + |

