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