diff --git a/gas/ChangeLog b/gas/ChangeLog index c35a822767..e1588d23bf 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2001-10-05 Alexandre Oliva + + * config/tc-mn10300.c (tc_gen_reloc): Don't free + reloc->sym_ptr_ptr if it's not allocated. + 2001-10-04 Thiemo Seufer * config/tc-mips.c (prev_insn_reloc_type): Make it an array to hold a diff --git a/gas/config/tc-mn10300.c b/gas/config/tc-mn10300.c index a2acc75359..dbc9ffd076 100644 --- a/gas/config/tc-mn10300.c +++ b/gas/config/tc-mn10300.c @@ -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; }