Fixes a bug in the microblaze assembler where it would not complain about constants...
authorNick Clifton <nickc@redhat.com>
Thu, 2 Apr 2015 15:10:06 +0000 (16:10 +0100)
committerNick Clifton <nickc@redhat.com>
Thu, 2 Apr 2015 15:10:06 +0000 (16:10 +0100)
PR gas/18189
* config/tc-microblaze.c (parse_imm): Use offsetT as the type for
min and max parameters.

gas/ChangeLog
gas/config/tc-microblaze.c

index d8335abe6c98b8a487accf72ad3a491fc2ba83ed..e08b0f72cbf32d94933f7d89e33b92e4b0d0180c 100644 (file)
@@ -1,3 +1,9 @@
+2015-04-02  Nick Clifton  <nickc@redhat.com>
+
+       PR gas/18189
+       * config/tc-microblaze.c (parse_imm): Use offsetT as the type for
+       min and max parameters.
+
 2015-04-02  Renlin Li  <renlin.li@arm.com>
 
        * config/tc-aarch64.c (mapping_state): Emit MAP_DATA within text section in order.
index bdf25c2c02e3ea3731f445ac909ba23e5e1a7e1c..6f0e795781a075a2ef26a115fa36a55793e3c5b0 100644 (file)
@@ -685,7 +685,7 @@ static symbolS * GOT_symbol;
 #define GOT_SYMBOL_NAME "_GLOBAL_OFFSET_TABLE_"
 
 static char *
-parse_imm (char * s, expressionS * e, int min, int max)
+parse_imm (char * s, expressionS * e, offsetT min, offsetT max)
 {
   char *new_pointer;
   char *atp;
@@ -736,11 +736,11 @@ parse_imm (char * s, expressionS * e, int min, int max)
     ; /* An error message has already been emitted.  */
   else if ((e->X_op != O_constant && e->X_op != O_symbol) )
     as_fatal (_("operand must be a constant or a label"));
-  else if ((e->X_op == O_constant) && ((int) e->X_add_number < min
-                                      || (int) e->X_add_number > max))
+  else if ((e->X_op == O_constant) && (e->X_add_number < min
+                                      || e->X_add_number > max))
     {
-      as_fatal (_("operand must be absolute in range %d..%d, not %d"),
-                min, max, (int) e->X_add_number);
+      as_fatal (_("operand must be absolute in range %lx..%lx, not %lx"),
+                (long) min, (long) max, (long) e->X_add_number);
     }
 
   if (atp)