ubsan: vax: left shift cannot be represented in type 'int'
Alan Modra
amodra@gmail.com
Wed Dec 11 01:01:00 GMT 2019
* vax-dis.c (NEXTLONG): Avoid signed overflow.
diff --git a/opcodes/vax-dis.c b/opcodes/vax-dis.c
index 2c02c29d72..3bdfa15192 100644
--- a/opcodes/vax-dis.c
+++ b/opcodes/vax-dis.c
@@ -64,7 +64,7 @@ static char *entry_mask_bit[] =
#define COERCE32(x) ((int) (((x) ^ 0x80000000) - 0x80000000))
#define NEXTLONG(p) \
(p += 4, FETCH_DATA (info, p), \
- (COERCE32 ((((((p[-1] << 8) + p[-2]) << 8) + p[-3]) << 8) + p[-4])))
+ (COERCE32 (((((((unsigned) p[-1] << 8) + p[-2]) << 8) + p[-3]) << 8) + p[-4])))
/* Maximum length of an instruction. */
#define MAXLEN 25
--
Alan Modra
Australia Development Lab, IBM
More information about the Binutils
mailing list