From 3604480a6fe493c51d6ebd53d9b1abeebbbb828f Mon Sep 17 00:00:00 2001 From: Richard Biener Date: Fri, 13 Mar 2020 13:56:26 +0100 Subject: [PATCH] tree-optimization/94163 constrain alignment set by PRE This avoids HWI -> unsigned truncation to end up with zero alignment which set_ptr_info_alignment ICEs on. 2020-03-13 Richard Biener PR tree-optimization/94163 * tree-ssa-pre.c (create_expression_by_pieces): Check whether alignment would be zero. --- gcc/ChangeLog | 6 ++++++ gcc/tree-ssa-pre.c | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 679296ffcac..18745fb6a15 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2020-03-13 Richard Biener + + PR tree-optimization/94163 + * tree-ssa-pre.c (create_expression_by_pieces): Check + whether alignment would be zero. + 2020-03-13 Martin Liska PR lto/94157 diff --git a/gcc/tree-ssa-pre.c b/gcc/tree-ssa-pre.c index 29987d840fd..0c1654f3580 100644 --- a/gcc/tree-ssa-pre.c +++ b/gcc/tree-ssa-pre.c @@ -2815,7 +2815,8 @@ create_expression_by_pieces (basic_block block, pre_expr expr, unsigned HOST_WIDE_INT hmisalign = args.length () == 3 ? tree_to_uhwi (args[2]) : 0; if ((halign & (halign - 1)) == 0 - && (hmisalign & ~(halign - 1)) == 0) + && (hmisalign & ~(halign - 1)) == 0 + && (unsigned int)halign != 0) set_ptr_info_alignment (get_ptr_info (forcedname), halign, hmisalign); } -- 2.30.2