summaryrefslogtreecommitdiff
path: root/gcc/real.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/real.c')
-rw-r--r--gcc/real.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/real.c b/gcc/real.c
index 9ed08b0e9de..f8e8d7fdfd9 100644
--- a/gcc/real.c
+++ b/gcc/real.c
@@ -1436,7 +1436,9 @@ real_to_integer (const REAL_VALUE_TYPE *r, bool *fail, int precision)
else
{
val[i] = r->sig[j];
- val[i] <<= HOST_BITS_PER_LONG;
+ unsigned HOST_WIDE_INT v = val[i];
+ v <<= HOST_BITS_PER_LONG;
+ val[i] = v;
val[i] |= r->sig[j - 1];
}
}