* config/tc-mn10300.c (tc_gen_reloc): Don't free
authorAlexandre Oliva <aoliva@redhat.com>
Fri, 5 Oct 2001 07:49:24 +0000 (07:49 +0000)
committerAlexandre Oliva <aoliva@redhat.com>
Fri, 5 Oct 2001 07:49:24 +0000 (07:49 +0000)
reloc->sym_ptr_ptr if it's not allocated.

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

index c35a822767d8e4f11e4d2e66f940867bcee3cc5c..e1588d23bfd58440d8b0109f51ff2611689c9ce9 100644 (file)
@@ -1,3 +1,8 @@
+2001-10-05  Alexandre Oliva  <aoliva@redhat.com>
+
+       * config/tc-mn10300.c (tc_gen_reloc): Don't free
+       reloc->sym_ptr_ptr if it's not allocated.
+
 2001-10-04  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
 
        * config/tc-mips.c (prev_insn_reloc_type): Make it an array to hold a
index a2acc7535991988d4541405d1001d0f75b21823c..dbc9ffd0763b40c2c5b3a06c74654beaedd94af9 100644 (file)
@@ -1779,6 +1779,8 @@ tc_gen_reloc (seg, fixp)
 
   if (fixp->fx_addsy && fixp->fx_subsy)
     {
+      reloc->sym_ptr_ptr = NULL;
+
       /* If we got a difference between two symbols, and the
         subtracted symbol is in the current section, use a
         PC-relative relocation.  If both symbols are in the same
@@ -1856,7 +1858,8 @@ tc_gen_reloc (seg, fixp)
            }
        }
 
-      free (reloc->sym_ptr_ptr);
+      if (reloc->sym_ptr_ptr)
+       free (reloc->sym_ptr_ptr);
       free (reloc);
       return NULL;
     }