RL78 - fix ADDR16 relax
authorDJ Delorie <dj@redhat.com>
Tue, 3 Mar 2015 22:49:44 +0000 (17:49 -0500)
committerDJ Delorie <dj@redhat.com>
Tue, 3 Mar 2015 22:57:39 +0000 (17:57 -0500)
* elf32-rl78.c (rl78_elf_relax_section): Only relax ADDR16's if
there's a symbol.

bfd/ChangeLog
bfd/elf32-rl78.c

index 57bc637..72c9196 100644 (file)
@@ -1,3 +1,8 @@
+2015-03-03  DJ Delorie  <dj@redhat.com>
+
+       * elf32-rl78.c (rl78_elf_relax_section): Only relax ADDR16's if
+       there's a symbol.
+
 2015-02-28  Alan Modra  <amodra@gmail.com>
 
        * elf32-ppc.c (ppc_elf_tls_setup): Set no_tls_get_addr_opt if
index 1bb5edc..acd82b9 100644 (file)
@@ -2338,7 +2338,8 @@ rl78_elf_relax_section
 
        }
 
-      if ((irel->r_addend &  RL78_RELAXA_MASK) == RL78_RELAXA_ADDR16)
+      if ((irel->r_addend &  RL78_RELAXA_MASK) == RL78_RELAXA_ADDR16
+          && nrelocs > 0)
        {
          /*----------------------------------------------------------------------*/
          /* Some insns have both a 16-bit address operand and an 8-bit