Commit 12bb0436 by Marc Glisse Committed by Marc Glisse

Fix wi::lshift

2019-07-10  Marc Glisse  <marc.glisse@inria.fr>

	* wide-int.h (wi::lshift): Reject negative values for the fast path.

From-SVN: r273356
parent 95efa227
2019-07-10 Marc Glisse <marc.glisse@inria.fr>
* wide-int.h (wi::lshift): Reject negative values for the fast path.
2019-07-10 Richard Biener <rguenther@suse.de> 2019-07-10 Richard Biener <rguenther@suse.de>
PR tree-optimization/91126 PR tree-optimization/91126
......
...@@ -3034,8 +3034,7 @@ wi::lshift (const T1 &x, const T2 &y) ...@@ -3034,8 +3034,7 @@ wi::lshift (const T1 &x, const T2 &y)
if (STATIC_CONSTANT_P (xi.precision > HOST_BITS_PER_WIDE_INT) if (STATIC_CONSTANT_P (xi.precision > HOST_BITS_PER_WIDE_INT)
? (STATIC_CONSTANT_P (shift < HOST_BITS_PER_WIDE_INT - 1) ? (STATIC_CONSTANT_P (shift < HOST_BITS_PER_WIDE_INT - 1)
&& xi.len == 1 && xi.len == 1
&& xi.val[0] <= (HOST_WIDE_INT) ((unsigned HOST_WIDE_INT) && IN_RANGE (xi.val[0], 0, HOST_WIDE_INT_MAX >> shift))
HOST_WIDE_INT_MAX >> shift))
: precision <= HOST_BITS_PER_WIDE_INT) : precision <= HOST_BITS_PER_WIDE_INT)
{ {
val[0] = xi.ulow () << shift; val[0] = xi.ulow () << shift;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment