diff options
author | Alan Modra <amodra@gmail.com> | 2020-01-03 08:12:00 +1030 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2020-01-04 19:20:33 +1030 |
commit | 5f57d4ecf51c2f420dae56dfb9fc525d1979ec7c (patch) | |
tree | 97bdde3887f9cfe408b2a7765c8adb370699f4ee | |
parent | 2c5c119630be063c97872428084fff51a858dfd3 (diff) | |
download | gdb-5f57d4ecf51c2f420dae56dfb9fc525d1979ec7c.zip gdb-5f57d4ecf51c2f420dae56dfb9fc525d1979ec7c.tar.gz gdb-5f57d4ecf51c2f420dae56dfb9fc525d1979ec7c.tar.bz2 |
ubsan: cr16: left shift cannot be represented in type 'int'
* cr16-dis.c (cr16_match_opcode): Avoid shift left of signed value.
-rw-r--r-- | opcodes/ChangeLog | 4 | ||||
-rw-r--r-- | opcodes/cr16-dis.c | 3 |
2 files changed, 5 insertions, 2 deletions
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index 514466e..d72dcec 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,5 +1,9 @@ 2020-01-04 Alan Modra <amodra@gmail.com> + * cr16-dis.c (cr16_match_opcode): Avoid shift left of signed value. + +2020-01-04 Alan Modra <amodra@gmail.com> + * crx-dis.c (match_opcode): Avoid shift left of signed value. 2020-01-04 Alan Modra <amodra@gmail.com> diff --git a/opcodes/cr16-dis.c b/opcodes/cr16-dis.c index c40a07e..1be67b2 100644 --- a/opcodes/cr16-dis.c +++ b/opcodes/cr16-dis.c @@ -319,8 +319,7 @@ cr16_match_opcode (void) { unsigned long mask; /* The instruction 'constant' opcode doesn't exceed 32 bits. */ - unsigned long doubleWord = (cr16_words[1] - + (cr16_words[0] << 16)) & 0xffffffff; + unsigned long doubleWord = cr16_words[1] + ((unsigned) cr16_words[0] << 16); /* Start searching from end of instruction table. */ instruction = &cr16_instruction[NUMOPCODES - 2]; |