diff options
author | Richard Biener <rguenther@suse.de> | 2016-02-01 12:39:04 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2016-02-01 12:39:04 +0000 |
commit | ef318184241a9f9fd3af394590a468b9850378a0 (patch) | |
tree | c9c3c57827a978f3f5e7edf3ccfadd8da7eecd59 /gcc/tree-ssa-loop-ivcanon.c | |
parent | 571512d5f54f0fdf9c06f9a348e46ddbab8a5088 (diff) | |
download | gcc-ef318184241a9f9fd3af394590a468b9850378a0.zip gcc-ef318184241a9f9fd3af394590a468b9850378a0.tar.gz gcc-ef318184241a9f9fd3af394590a468b9850378a0.tar.bz2 |
re PR tree-optimization/69579 (gcc ICE at -O3 and __sigsetjmp with “tree check: expected ssa_name, have integer_cst in compute_optimized_partition_bases”)
2016-02-01 Richard Biener <rguenther@suse.de>
PR tree-optimization/69579
* tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
Do not propagate through abnormal PHI results.
* gcc.dg/setjmp-6.c: New testcase.
From-SVN: r233036
Diffstat (limited to 'gcc/tree-ssa-loop-ivcanon.c')
-rw-r--r-- | gcc/tree-ssa-loop-ivcanon.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/tree-ssa-loop-ivcanon.c b/gcc/tree-ssa-loop-ivcanon.c index 628d5b1..ab1f7e6 100644 --- a/gcc/tree-ssa-loop-ivcanon.c +++ b/gcc/tree-ssa-loop-ivcanon.c @@ -1208,7 +1208,9 @@ propagate_constants_for_unrolling (basic_block bb) tree result = gimple_phi_result (phi); tree arg = gimple_phi_arg_def (phi, 0); - if (gimple_phi_num_args (phi) == 1 && TREE_CODE (arg) == INTEGER_CST) + if (! SSA_NAME_OCCURS_IN_ABNORMAL_PHI (result) + && gimple_phi_num_args (phi) == 1 + && TREE_CODE (arg) == INTEGER_CST) { propagate_into_all_uses (result, arg); gsi_remove (&gsi, true); |