ubsan: xtensa: left shift cannot be represented in type 'int'

Alan Modra amodra@gmail.com
Fri Dec 20 09:55:00 GMT 2019


	* xtensa-isa.c (xtensa_insnbuf_from_chars): Avoid signed overflow.

diff --git a/bfd/xtensa-isa.c b/bfd/xtensa-isa.c
index 172de6f41e..9ddc6cd844 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;
     }
 }
 

-- 
Alan Modra
Australia Development Lab, IBM



More information about the Binutils mailing list