projects
/
deliverable
/
binutils-gdb.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ubsan: score: left shift of 2 by 31 places cannot be represented in type 'int'
[deliverable/binutils-gdb.git]
/
opcodes
/
ia64-opc.c
diff --git
a/opcodes/ia64-opc.c
b/opcodes/ia64-opc.c
index 5aa1198ec533f877f12fb9253ed8b99f4ebe3dda..ba60f8a78295d2bf9ff7b839586bad59f376bcd4 100644
(file)
--- a/
opcodes/ia64-opc.c
+++ b/
opcodes/ia64-opc.c
@@
-372,13
+372,16
@@
locate_opcode_ent (ia64_insn opcode, enum ia64_insn_type type)
bitpos[currstatenum] = currbitnum;
bitpos[currstatenum] = currbitnum;
- /* Skip opval[0] bits in the instruction. */
+ /* Skip opval[0] bits in the instruction.
*/
if (op & 0x40)
{
currbitnum -= opval[0];
}
if (op & 0x40)
{
currbitnum -= opval[0];
}
- /* The value of the current bit being tested. */
+ if (currbitnum < 0)
+ currbitnum = 0;
+
+ /* The value of the current bit being tested. */
currbit = opcode & (((ia64_insn) 1) << currbitnum) ? 1 : 0;
next_op = -1;
currbit = opcode & (((ia64_insn) 1) << currbitnum) ? 1 : 0;
next_op = -1;
@@
-463,7
+466,7
@@
locate_opcode_ent (ia64_insn opcode, enum ia64_insn_type type)
if (next_op > 65535)
{
if (next_op > 65535)
{
-
abort ()
;
+
return -1
;
}
/* Run through the list of opcodes to check, trying to find
}
/* Run through the list of opcodes to check, trying to find
This page took
0.026675 seconds
and
4
git commands to generate.