diff options
author | Andreas Krebbel <krebbel1@de.ibm.com> | 2006-11-09 17:56:04 +0000 |
---|---|---|
committer | Andreas Krebbel <krebbel@gcc.gnu.org> | 2006-11-09 17:56:04 +0000 |
commit | d82a02fa4f3cd88f8d8f080ffe4bd9c7536c7e8f (patch) | |
tree | cf0b47a5a352e79744f0913d07ee2799df3c370a /gcc | |
parent | 282530ce3669272f75dc9e511736315377f4b518 (diff) | |
download | gcc-d82a02fa4f3cd88f8d8f080ffe4bd9c7536c7e8f.zip gcc-d82a02fa4f3cd88f8d8f080ffe4bd9c7536c7e8f.tar.gz gcc-d82a02fa4f3cd88f8d8f080ffe4bd9c7536c7e8f.tar.bz2 |
simplify-rtx.c (avoid_constant_pool_reference): Avoid calling simplify_subreg with BLKmode outer mode.
2006-11-09 Andreas Krebbel <krebbel1@de.ibm.com>
* simplify-rtx.c (avoid_constant_pool_reference): Avoid calling
simplify_subreg with BLKmode outer mode.
2006-11-09 Andreas Krebbel <krebbel1@de.ibm.com>
* gcc.dg/20061109-1.c: New testcase.
From-SVN: r118622
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/simplify-rtx.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/20061109-1.c | 17 |
4 files changed, 29 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 79191a1d..ea975cd 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2006-11-09 Andreas Krebbel <krebbel1@de.ibm.com> + + * simplify-rtx.c (avoid_constant_pool_reference): Avoid calling + simplify_subreg with BLKmode outer mode. + 2006-11-08 Brooks Moses <brooks.moses@codesourcery.com> * doc/invoke.texi: Minor formatting fixes in option lists. diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c index fe5463a..6a9464c 100644 --- a/gcc/simplify-rtx.c +++ b/gcc/simplify-rtx.c @@ -158,6 +158,9 @@ avoid_constant_pool_reference (rtx x) return x; } + if (GET_MODE (x) == BLKmode) + return x; + addr = XEXP (x, 0); /* Call target hook to avoid the effects of -fpic etc.... */ diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 93da32f..7980bf9 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2006-11-09 Andreas Krebbel <krebbel1@de.ibm.com> + + * gcc.dg/20061109-1.c: New testcase. + 2006-11-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> * gcc.dg/builtins-20.c: Use fabs, not __builtin_fabs. diff --git a/gcc/testsuite/gcc.dg/20061109-1.c b/gcc/testsuite/gcc.dg/20061109-1.c new file mode 100644 index 0000000..70ee36d --- /dev/null +++ b/gcc/testsuite/gcc.dg/20061109-1.c @@ -0,0 +1,17 @@ +/* { dg-do compile } */ +/* { dg-options "-O1" } */ + +/* This assignment might be implemented with a mem copy from the + literal pool with two BLKmode operands. This produced an ICE on S/390 + since simplify_subreg was called for such a BLKmode operand. */ + +struct a +{ + unsigned int b:24; +}; + +void +foo (struct a *t) +{ + t->b = 32; +} |