NDS32/gas: Fix md_parse_name hook.
authorKuan-Lin Chen <kuanlinchentw@gmail.com>
Tue, 27 Jan 2015 03:08:07 +0000 (11:08 +0800)
committerKuan-Lin Chen <kuanlinchentw@gmail.com>
Tue, 27 Jan 2015 03:08:07 +0000 (11:08 +0800)
gas/ChangeLog
gas/config/tc-nds32.c

index 6da11bb6f4a1cf5e803f45da0abc7aaf3b554560..6dbdb7927ed4c850246cf2cdfa3ba3cb800bc688 100644 (file)
@@ -1,3 +1,8 @@
+2015-01-27  Kuan-Lin Chen  <kuanlinchentw@gmail.com>
+
+       * config/tc-nds32.c (nds32_parse_name): Ignore when the input is
+       section name.
+
 2015-01-19  Alan Modra  <amodra@gmail.com>
 
        * read.c (s_reloc): Match BFD_RELOC_NONE, BFD_RELOC{8,16,32,64}.
index 7a237213be606c660fff14466434764c319fc8af..28e90aea409d8658a068219bf00b238645c60857 100644 (file)
@@ -6541,6 +6541,8 @@ nds32_parse_name (char const *name, expressionS *exprP,
                  enum expr_mode mode ATTRIBUTE_UNUSED,
                  char *nextcharP ATTRIBUTE_UNUSED)
 {
+  segT segment;
+
   exprP->X_op_symbol = NULL;
   exprP->X_md = BFD_RELOC_UNUSED;
 
@@ -6548,6 +6550,11 @@ nds32_parse_name (char const *name, expressionS *exprP,
   exprP->X_op = O_symbol;
   exprP->X_add_number = 0;
 
+  /* Check the specail name if a symbol.  */
+  segment = S_GET_SEGMENT (exprP->X_add_symbol);
+  if (segment != undefined_section)
+    return 0;
+
   if (strcmp (name, GOT_NAME) == 0 && *nextcharP != '@')
     {
       /* Set for _GOT_OFFSET_TABLE_.  */