diff mbox

[committed] Fix part of PR78555 - gcc/real.c:2890:25: runtime error: left shift of negative value -125

Message ID 20161130122724.GC25596@x4
State New
Headers show

Commit Message

Markus Trippelsdorf Nov. 30, 2016, 12:27 p.m. UTC
bootstrap-ubsan gcc shows:
 gcc/real.c:2890:25: runtime error: left shift of negative value -125

Fixed by casting to unsigned. 
Tested on ppc64le. Committed as obvious.

       PR ipa/78555
       * real.c (real_hash): Add cast to avoid left
       shifting of negative values.
diff mbox

Patch

diff --git a/gcc/real.c b/gcc/real.c
index 66e88e2ad366..eabe22de8510 100644
--- a/gcc/real.c
+++ b/gcc/real.c
@@ -2887,7 +2887,7 @@  real_hash (const REAL_VALUE_TYPE *r)
       return h;

     case rvc_normal:
-      h |= REAL_EXP (r) << 3;
+      h |= (unsigned int)REAL_EXP (r) << 3;
       break;

     case rvc_nan: