aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2019-12-20 12:44:33 +1030
committerAlan Modra <amodra@gmail.com>2019-12-20 13:36:06 +1030
commite76832f125f6f005ddf3c75b7be675272568b01e (patch)
tree64aa304a0b8460b0783eaf1eb582fe15250e1eb3
parent15d2859fddcb769e59b906f9443c85afdd5d7380 (diff)
downloadfsf-binutils-gdb-e76832f125f6f005ddf3c75b7be675272568b01e.zip
fsf-binutils-gdb-e76832f125f6f005ddf3c75b7be675272568b01e.tar.gz
fsf-binutils-gdb-e76832f125f6f005ddf3c75b7be675272568b01e.tar.bz2
ubsan: xtensa: left shift cannot be represented in type 'int'
* xtensa-isa.c (xtensa_insnbuf_from_chars): Avoid signed overflow.
-rw-r--r--bfd/ChangeLog4
-rw-r--r--bfd/xtensa-isa.c2
2 files changed, 5 insertions, 1 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 14aebd9..40f4b66 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,5 +1,9 @@
2019-12-20 Alan Modra <amodra@gmail.com>
+ * xtensa-isa.c (xtensa_insnbuf_from_chars): Avoid signed overflow.
+
+2019-12-20 Alan Modra <amodra@gmail.com>
+
* libhppa.h (hppa_field_adjust, bfd_hppa_insn2fmt): Delete forward
declaration. Move ATTRIBUTE_UNUSED to definition.
(sign_extend, low_sign_extend, sign_unext, low_sign_unext),
diff --git a/bfd/xtensa-isa.c b/bfd/xtensa-isa.c
index 172de6f..9ddc6cd 100644
--- a/bfd/xtensa-isa.c
+++ b/bfd/xtensa-isa.c
@@ -223,7 +223,7 @@ xtensa_insnbuf_from_chars (xtensa_isa isa,
int word_inx = byte_to_word_index (i);
int bit_inx = byte_to_bit_index (i);
- insn[word_inx] |= (*cp & 0xff) << bit_inx;
+ insn[word_inx] |= (unsigned) (*cp & 0xff) << bit_inx;
}
}