Use safe_dyn_cast instead of dyn_cast in find_loop_guard to fix PR92608.
2019-11-22 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> PR tree-optimization/92608 * tree-ssa-loop-unswitch.c (find_loop_guard): Use safe_dyn_cast instead of dyn_cast. testsuite/ * gcc.dg/torture/pr92608.c: New test. From-SVN: r278598
This commit is contained in:
parent
d2993abd39
commit
b30e83f809
@ -1,3 +1,9 @@
|
||||
2019-11-22 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
|
||||
|
||||
PR tree-optimization/92608
|
||||
* tree-ssa-loop-unswitch.c (find_loop_guard): Use safe_dyn_cast instead
|
||||
of dyn_cast.
|
||||
|
||||
2019-11-21 Segher Boessenkool <segher@kernel.crashing.org>
|
||||
|
||||
* config/rs6000/predicates.md (extra_insn_branch_comparison_operator):
|
||||
|
@ -1,3 +1,8 @@
|
||||
2019-11-22 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
|
||||
|
||||
PR tree-optimization/92608
|
||||
* gcc.dg/torture/pr92608.c: New test.
|
||||
|
||||
2019-11-21 Iain Sandoe <iain@sandoe.co.uk>
|
||||
|
||||
PR testsuite/92619
|
||||
|
25
gcc/testsuite/gcc.dg/torture/pr92608.c
Normal file
25
gcc/testsuite/gcc.dg/torture/pr92608.c
Normal file
@ -0,0 +1,25 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-additional-options "-funswitch-loops" } */
|
||||
|
||||
int op, bs;
|
||||
|
||||
void
|
||||
q0 (void)
|
||||
{
|
||||
op += 1 % (op == bs);
|
||||
}
|
||||
|
||||
void __attribute__ ((returns_twice))
|
||||
co (void)
|
||||
{
|
||||
}
|
||||
|
||||
void __attribute__ ((simd))
|
||||
uq (void)
|
||||
{
|
||||
q0 ();
|
||||
co ();
|
||||
|
||||
while (bs < 1)
|
||||
++bs;
|
||||
}
|
@ -586,7 +586,7 @@ find_loop_guard (class loop *loop)
|
||||
next = single_succ (header);
|
||||
else
|
||||
{
|
||||
cond = dyn_cast <gcond *> (last_stmt (header));
|
||||
cond = safe_dyn_cast <gcond *> (last_stmt (header));
|
||||
if (! cond)
|
||||
return NULL;
|
||||
extract_true_false_edges_from_block (header, &te, &fe);
|
||||
|
Loading…
Reference in New Issue
Block a user