aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-pre.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2020-11-11 18:15:57 +0100
committerRichard Biener <rguenther@suse.de>2020-11-11 18:17:00 +0100
commit2e8b368c3d33fd8ddafdd37f8e1b2ba45d1a122e (patch)
tree3f77d96116884ad4ba8757bea45ea7369aa2a85e /gcc/tree-ssa-pre.c
parent505ea90904436e6477f24c8d9775762ca4b29e7b (diff)
downloadgcc-2e8b368c3d33fd8ddafdd37f8e1b2ba45d1a122e.zip
gcc-2e8b368c3d33fd8ddafdd37f8e1b2ba45d1a122e.tar.gz
gcc-2e8b368c3d33fd8ddafdd37f8e1b2ba45d1a122e.tar.bz2
Fix PRE NEW_SETS guarding
Accesses to NEW_SETS should be properly guarded. Committed as obvious. 2020-11-11 Richard Biener <rguenther@suse.de> PR tree-optimization/97623 * tree-ssa-pre.c (create_expression_by_pieces): Guard NEW_SETS access. (insert_into_preds_of_block): Likewise.
Diffstat (limited to 'gcc/tree-ssa-pre.c')
-rw-r--r--gcc/tree-ssa-pre.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/gcc/tree-ssa-pre.c b/gcc/tree-ssa-pre.c
index 6dea8c2..10d223b 100644
--- a/gcc/tree-ssa-pre.c
+++ b/gcc/tree-ssa-pre.c
@@ -3064,7 +3064,8 @@ create_expression_by_pieces (basic_block block, pre_expr expr,
vn_info->value_id = get_next_value_id ();
nameexpr = get_or_alloc_expr_for_name (forcedname);
add_to_value (vn_info->value_id, nameexpr);
- bitmap_value_replace_in_set (NEW_SETS (block), nameexpr);
+ if (NEW_SETS (block))
+ bitmap_value_replace_in_set (NEW_SETS (block), nameexpr);
bitmap_value_replace_in_set (AVAIL_OUT (block), nameexpr);
}
@@ -3231,8 +3232,8 @@ insert_into_preds_of_block (basic_block block, unsigned int exprnum,
bitmap_insert_into_set (PHI_GEN (block), newphi);
bitmap_value_replace_in_set (AVAIL_OUT (block),
newphi);
- bitmap_insert_into_set (NEW_SETS (block),
- newphi);
+ if (NEW_SETS (block))
+ bitmap_insert_into_set (NEW_SETS (block), newphi);
/* If we insert a PHI node for a conversion of another PHI node
in the same basic-block try to preserve range information.