diff --git a/gcc/wide-int.h b/gcc/wide-int.h index 64b8bf2040c1b59102d06684a8bb13a96cc35254..777f017f5ae04c45d2554eab374ff086b6dcea73 100644 --- a/gcc/wide-int.h +++ b/gcc/wide-int.h @@ -1196,7 +1196,7 @@ inline wide_int_storage::wide_int_storage (const T &x) inline wide_int_storage::wide_int_storage (const wide_int_storage &x) { memcpy (this, &x, sizeof (wide_int_storage)); - if (UNLIKELY (precision > WIDE_INT_MAX_INL_PRECISION)) + if (UNLIKELY (x.precision > WIDE_INT_MAX_INL_PRECISION)) { u.valp = XNEWVEC (HOST_WIDE_INT, CEIL (precision, HOST_BITS_PER_WIDE_INT)); memcpy (u.valp, x.u.valp, len * sizeof (HOST_WIDE_INT)); @@ -1219,9 +1219,9 @@ wide_int_storage::operator = (const wide_int_storage &x) XDELETEVEC (u.valp); } memcpy (this, &x, sizeof (wide_int_storage)); - if (UNLIKELY (precision > WIDE_INT_MAX_INL_PRECISION)) + if (UNLIKELY (x.precision > WIDE_INT_MAX_INL_PRECISION)) { - u.valp = XNEWVEC (HOST_WIDE_INT, CEIL (precision, HOST_BITS_PER_WIDE_INT)); + u.valp = XNEWVEC (HOST_WIDE_INT, CEIL (x.precision, HOST_BITS_PER_WIDE_INT)); memcpy (u.valp, x.u.valp, len * sizeof (HOST_WIDE_INT)); } return *this;