diff options
Diffstat (limited to 'gas/config/tc-ip2k.c')
-rw-r--r-- | gas/config/tc-ip2k.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/gas/config/tc-ip2k.c b/gas/config/tc-ip2k.c index b9d63e4..615fce6 100644 --- a/gas/config/tc-ip2k.c +++ b/gas/config/tc-ip2k.c @@ -403,18 +403,20 @@ ip2k_force_relocation (fix) return 1; case BFD_RELOC_16: - if (fix->fx_subsy && S_IS_DEFINED (fix->fx_subsy) + if (fix->fx_subsy && S_IS_DEFINED (fix->fx_subsy) && fix->fx_addsy && S_IS_DEFINED (fix->fx_addsy) && (S_GET_SEGMENT (fix->fx_addsy)->flags & SEC_CODE)) { fix->fx_r_type = BFD_RELOC_IP2K_TEXT; return 0; } - return 0; + break; default: - return 0; + break; } + + return S_FORCE_RELOC (fix->fx_addsy); } void |