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  <rguenther@suse.de>

	PR tree-optimization/94163
	* tree-ssa-pre.c (create_expression_by_pieces): Check
	whether alignment would be zero.
This commit is contained in:
Richard Biener 2020-03-13 13:56:26 +01:00
parent 98ff89d1ac
commit 3604480a6f
2 changed files with 8 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2020-03-13 Richard Biener <rguenther@suse.de>
PR tree-optimization/94163
* tree-ssa-pre.c (create_expression_by_pieces): Check
whether alignment would be zero.
2020-03-13 Martin Liska <mliska@suse.cz>
PR lto/94157

View File

@ -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);
}