commit | fd143104694ff3d92a8639c2eaf42dabad79b64e | [log] [tgz] |
---|---|---|
author | Michael Bradshaw <mjbshaw@google.com> | Wed Nov 21 11:03:13 2018 -0800 |
committer | Cyrill Gorcunov <gorcunov@gmail.com> | Fri Nov 23 23:51:16 2018 +0300 |
tree | 9b0a93e216691ad409188ea0ddac5b5e9c61f32f | |
parent | 7b6371b9d35705ee3800082ca245f8dd289bb216 [diff] [blame] |
Fix undefined behavior when shifting left by 32 bits See https://bugzilla.nasm.us/show_bug.cgi?id=3392368 Signed-off-by: Michael Bradshaw <mjbshaw@google.com> Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
diff --git a/asm/float.c b/asm/float.c index 37f5585..7d313a5 100644 --- a/asm/float.c +++ b/asm/float.c
@@ -556,7 +556,7 @@ mp = &mult[MANT_LIMBS]; /* Guard slot */ ms += LIMB_BITS; } - *mp |= v << ms; + *mp |= v << (ms % (sizeof(fp_limb) * CHAR_BIT)); ms -= bits; if (!seendot)