diff options
-rw-r--r-- | gas/ChangeLog | 5 | ||||
-rw-r--r-- | gas/config/tc-sh.c | 4 |
2 files changed, 8 insertions, 1 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index fa48ad6..76413b6 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2002-02-06 Alexandre Oliva <aoliva@redhat.com> + + * config/tc-sh.c (md_apply_fix3) <BFD_RELOC_32_PLT_PCREL>: Don't + assume fixP->fx_subsy is non-NULL. + 2002-02-04 Alexandre Oliva <aoliva@redhat.com> * config/tc-sh.c (parse_at): Set arg type of @(expr,pc) to diff --git a/gas/config/tc-sh.c b/gas/config/tc-sh.c index ce780a1..b266b80 100644 --- a/gas/config/tc-sh.c +++ b/gas/config/tc-sh.c @@ -2975,7 +2975,9 @@ md_apply_fix3 (fixP, valP, seg) /* Make the jump instruction point to the address of the operand. At runtime we merely add the offset to the actual PLT entry. */ * valP = 0xfffffffc; - val = fixP->fx_addnumber - S_GET_VALUE (fixP->fx_subsy); + val = fixP->fx_addnumber; + if (fixP->fx_subsy) + val -= S_GET_VALUE (fixP->fx_subsy); md_number_to_chars (buf, val, 4); break; |