]> git.ipfire.org Git - thirdparty/gcc.git/commit
tree-optimization/105517 - avoid offset truncation during VN
authorRichard Biener <rguenther@suse.de>
Mon, 9 May 2022 09:33:44 +0000 (11:33 +0200)
committerRichard Biener <rguenther@suse.de>
Mon, 9 May 2022 11:42:36 +0000 (13:42 +0200)
commitfaabc751d0bb7e7fe86abfe8991b0307d585874a
treecc97e4343aa2d8b777866139a6854a2f0ab9d306
parent93416de0cb72358b95a96fa4341b7b93a6805842
tree-optimization/105517 - avoid offset truncation during VN

When value-numbering an address expression like
&p_74(D)->a1x[4294967295].a1; we are accumulating the byte offset
in an 64bit integer.  When later exploiting the duality between
that and a POINTER_PLUS_EXPR we should avoid truncating that
offset to fit in the target specific sizetype.  While such
overflows are generally undefined behavior, exploiting this
may leads to spurious missing diagnostics.

2022-05-09  Richard Biener  <rguenther@suse.de>

PR tree-optimization/105517
* tree-ssa-sccvn.cc (vn_reference_lookup): Make sure the accumulated
offset can be represented in the POINTER_PLUS_EXPR IL.
(vn_reference_insert): Likewise.
* poly-int.h (sext_hwi): Add poly version of sext_hwi.
gcc/poly-int.h
gcc/tree-ssa-sccvn.cc