mirror of git://gcc.gnu.org/git/gcc.git
re PR middle-end/77377 (c-c++-common/pr59037.c ICEs with -fpic -msse on i686)
PR middle-end/77377 * simplify-rtx.c (avoid_constant_pool_reference): For out of bounds constant pool reference return x instead of c. * gcc.target/i386/pr77377.c: New test. From-SVN: r239854
This commit is contained in:
parent
ab8348325f
commit
26122e2d8a
|
|
@ -1,3 +1,9 @@
|
||||||
|
2016-08-30 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
PR middle-end/77377
|
||||||
|
* simplify-rtx.c (avoid_constant_pool_reference): For out of bounds
|
||||||
|
constant pool reference return x instead of c.
|
||||||
|
|
||||||
2016-08-29 Segher Boessenkool <segher@kernel.crashing.org>
|
2016-08-29 Segher Boessenkool <segher@kernel.crashing.org>
|
||||||
|
|
||||||
* config/rs6000/rs6000.h (CALL_REALLY_USED_REGISTERS): Do not
|
* config/rs6000/rs6000.h (CALL_REALLY_USED_REGISTERS): Do not
|
||||||
|
|
|
||||||
|
|
@ -251,15 +251,14 @@ avoid_constant_pool_reference (rtx x)
|
||||||
/* If we're accessing the constant in a different mode than it was
|
/* If we're accessing the constant in a different mode than it was
|
||||||
originally stored, attempt to fix that up via subreg simplifications.
|
originally stored, attempt to fix that up via subreg simplifications.
|
||||||
If that fails we have no choice but to return the original memory. */
|
If that fails we have no choice but to return the original memory. */
|
||||||
if ((offset != 0 || cmode != GET_MODE (x))
|
if (offset == 0 && cmode == GET_MODE (x))
|
||||||
&& offset >= 0 && offset < GET_MODE_SIZE (cmode))
|
return c;
|
||||||
|
else if (offset >= 0 && offset < GET_MODE_SIZE (cmode))
|
||||||
{
|
{
|
||||||
rtx tem = simplify_subreg (GET_MODE (x), c, cmode, offset);
|
rtx tem = simplify_subreg (GET_MODE (x), c, cmode, offset);
|
||||||
if (tem && CONSTANT_P (tem))
|
if (tem && CONSTANT_P (tem))
|
||||||
return tem;
|
return tem;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
return c;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return x;
|
return x;
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,8 @@
|
||||||
2016-08-30 Jakub Jelinek <jakub@redhat.com>
|
2016-08-30 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
PR middle-end/77377
|
||||||
|
* gcc.target/i386/pr77377.c: New test.
|
||||||
|
|
||||||
PR debug/77389
|
PR debug/77389
|
||||||
* g++.dg/debug/dwarf2/template-params-12f.C: Pass -gno-strict-dwarf
|
* g++.dg/debug/dwarf2/template-params-12f.C: Pass -gno-strict-dwarf
|
||||||
in dg-options.
|
in dg-options.
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
/* PR middle-end/77377 */
|
||||||
|
/* { dg-do compile } */
|
||||||
|
/* { dg-options "-O3 -msse" } */
|
||||||
|
/* { dg-additional-options "-fpic" { target fpic } } */
|
||||||
|
|
||||||
|
#include "../../c-c++-common/pr59037.c"
|
||||||
Loading…
Reference in New Issue