work around get_symbol_name () in sparc and ia64
authorTrevor Saunders <tbsaunde+binutils@tbsaunde.org>
Sun, 28 Feb 2016 22:21:12 +0000 (17:21 -0500)
committerTrevor Saunders <tbsaunde+binutils@tbsaunde.org>
Thu, 31 Mar 2016 11:27:36 +0000 (07:27 -0400)
get_symbol_name () returns a char * in a out arg, which means we need to cast
to assign a literal to the variable passed to get_symbol_name ().  It seems
like better APIs than get_symbol_name () could be provided, but that seems like
a fair amount of work so just casting seems to be the betterthing to do for
now.

gas/ChangeLog:

2016-03-31  Trevor Saunders  <tbsaunde+binutils@tbsaunde.org>

* config/tc-ia64.c (md_assemble): Add temporary variable to pass to
get_symbol_name ().
* config/tc-sparc.c (s_register): Cast a literal to char * in
assignment.

gas/ChangeLog
gas/config/tc-ia64.c
gas/config/tc-sparc.c

index 9b6d066bb257a3acd376511029de6fbed6737d03..4b3127cfd0e01d838196b0b23e13975beeb37abd 100644 (file)
@@ -1,3 +1,10 @@
+2016-03-31  Trevor Saunders  <tbsaunde+binutils@tbsaunde.org>
+
+       * config/tc-ia64.c (md_assemble): Add temporary variable to pass to
+       get_symbol_name ().
+       * config/tc-sparc.c (s_register): Cast a literal to char * in
+       assignment.
+
 2016-03-31  Trevor Saunders  <tbsaunde+binutils@tbsaunde.org>
 
        * config/tc-i960.c (parse_expr): Cast to char * when assigning to
index 85f609586fde8f5d0e5523072129d5d31098aa6f..a50b61e3b7c1c82d070443790f595920fc518845 100644 (file)
@@ -10667,7 +10667,8 @@ check_dv (struct ia64_opcode *idesc)
 void
 md_assemble (char *str)
 {
-  char *saved_input_line_pointer, *mnemonic;
+  char *saved_input_line_pointer, *temp;
+  const char *mnemonic;
   const struct pseudo_opcode *pdesc;
   struct ia64_opcode *idesc;
   unsigned char qp_regno;
@@ -10679,7 +10680,8 @@ md_assemble (char *str)
 
   /* extract the opcode (mnemonic):  */
 
-  ch = get_symbol_name (&mnemonic);
+  ch = get_symbol_name (&temp);
+  mnemonic = temp;
   pdesc = (struct pseudo_opcode *) hash_find (md.pseudo_hash, mnemonic);
   if (pdesc)
     {
index 6f2de4dd1280131eb5be7dac6270faf95c43648a..9f30d3a552f5200b4e6bd730f1fdec6901b76217 100644 (file)
@@ -4413,7 +4413,7 @@ s_register (int ignore ATTRIBUTE_UNUSED)
       if (regname[0] == 'i')
        regname = NULL;
       else
-       regname = "";
+       regname = (char *) "";
     }
   else
     {