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:
Mike Frysinger 2015-11-15 02:46:03 -05:00
parent 7ffdbc4f3f
commit 58a345fe1f
2 changed files with 5 additions and 1 deletions

View File

@ -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>
* configure: Regenerate.

View File

@ -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. */
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)
{