mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-22 11:00:01 +08:00
gas: microblaze: fix shift overflow
This code tries to shift an integer 31 bits which triggers a werror: gas/config/tc-microblaze.c:742:21: error: integer overflow in expression [-Werror=overflow] e->X_add_number |= -(1 << 31); Cast the 1 to offsetT to match X_add_number to fix things.
This commit is contained in:
@ -1,3 +1,7 @@
|
|||||||
|
2015-11-16 Mike Frysinger <vapier@gentoo.org>
|
||||||
|
|
||||||
|
* config/tc-microblaze.c (parse_imm): Add an offsetT cast.
|
||||||
|
|
||||||
2015-11-13 Tristan Gingold <gingold@adacore.com>
|
2015-11-13 Tristan Gingold <gingold@adacore.com>
|
||||||
|
|
||||||
* configure: Regenerate.
|
* configure: Regenerate.
|
||||||
|
@ -739,7 +739,7 @@ parse_imm (char * s, expressionS * e, offsetT min, offsetT max)
|
|||||||
{
|
{
|
||||||
/* Special case: sign extend negative 32-bit values to 64-bits. */
|
/* Special case: sign extend negative 32-bit values to 64-bits. */
|
||||||
if ((e->X_add_number >> 31) == 1)
|
if ((e->X_add_number >> 31) == 1)
|
||||||
e->X_add_number |= -(1 << 31);
|
e->X_add_number |= -((offsetT) 1 << 31);
|
||||||
|
|
||||||
if (e->X_add_number < min || e->X_add_number > max)
|
if (e->X_add_number < min || e->X_add_number > max)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user