mirror of
https://github.com/bminor/binutils-gdb.git
synced 2025-12-05 15:15:42 +00:00
ubsan: undefined shift in sign_extend
* libhppa.h (sign_extend): Avoid undefined behaviour.
This commit is contained in:
@@ -162,7 +162,7 @@ enum hppa_reloc_expr_type_alt
|
||||
static inline unsigned ATTRIBUTE_UNUSED
|
||||
sign_extend (unsigned x, unsigned len)
|
||||
{
|
||||
unsigned signbit = (1 << (len - 1));
|
||||
unsigned signbit = (1u << (len - 1));
|
||||
unsigned mask = (signbit << 1) - 1;
|
||||
return ((x & mask) ^ signbit) - signbit;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user