mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-08 19:20:44 +08:00
re PR tree-optimization/70985 (ICE on valid code at -O3 on x86_64-linux-gnu: verify_gimple failed)
2016-05-09 Richard Biener <rguenther@suse.de> PR tree-optimization/70985 * match.pd (BIT_FIELD_REF -> (type)): Disable on GIMPLE when op0 isn't a gimple register. * gcc.dg/torture/pr70985.c: New testcase. From-SVN: r236032
This commit is contained in:
parent
23694dbb2a
commit
171f6f05db
@ -1,3 +1,9 @@
|
||||
2016-05-09 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/70985
|
||||
* match.pd (BIT_FIELD_REF -> (type)): Disable on GIMPLE when
|
||||
op0 isn't a gimple register.
|
||||
|
||||
2016-05-09 Prachi Godbole <prachi.godbole@imgtec.com>
|
||||
|
||||
* config/mips/i6400.md (i6400_fpu_intadd, i6400_fpu_logic)
|
||||
|
@ -3244,6 +3244,8 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
|
||||
(view_convert (imagpart @0)))))
|
||||
(if (INTEGRAL_TYPE_P (TREE_TYPE (@0))
|
||||
&& INTEGRAL_TYPE_P (type)
|
||||
/* On GIMPLE this should only apply to register arguments. */
|
||||
&& (! GIMPLE || is_gimple_reg (@0))
|
||||
/* A bit-field-ref that referenced the full argument can be stripped. */
|
||||
&& ((compare_tree_int (@1, TYPE_PRECISION (TREE_TYPE (@0))) == 0
|
||||
&& integer_zerop (@2))
|
||||
|
@ -1,3 +1,8 @@
|
||||
2016-05-09 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/70985
|
||||
* gcc.dg/torture/pr70985.c: New testcase.
|
||||
|
||||
2016-05-09 Bin Cheng <bin.cheng@arm.com>
|
||||
|
||||
* gcc.dg/tree-ssa/ifc-9.c: New test.
|
||||
|
28
gcc/testsuite/gcc.dg/torture/pr70985.c
Normal file
28
gcc/testsuite/gcc.dg/torture/pr70985.c
Normal file
@ -0,0 +1,28 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-require-effective-target int32plus } */
|
||||
|
||||
struct
|
||||
{
|
||||
int f0:24;
|
||||
} a, c, d;
|
||||
|
||||
int b;
|
||||
|
||||
int
|
||||
fn1 ()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
fn2 ()
|
||||
{
|
||||
int e;
|
||||
if (b)
|
||||
for (; e;)
|
||||
{
|
||||
d = c;
|
||||
if (fn1 (b))
|
||||
b = a.f0;
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user