diff options
author | Alan Modra <amodra@gmail.com> | 2023-05-13 15:44:09 +0930 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2023-05-13 20:47:31 +0930 |
commit | 249d1bad51b568c74ea37e8b3e76c179eb53a733 (patch) | |
tree | aa635e60999d2c3096bb0afa09f928deddc4c18f | |
parent | 31f149015865401c760e9d76157734996fbab770 (diff) | |
download | binutils-gdb-249d1bad51b568c74ea37e8b3e76c179eb53a733.tar.gz |
PR28955 mips gas segfault
Testing for NULL in pic_need_relax fixes the other call to this
function in md_estimate_size_before_relax.
PR 28955
* config/tc-mips.c (mips_frob_file): Move NULL sym test to..
(pic_need_relax): ..here.
-rw-r--r-- | gas/config/tc-mips.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c index 8a970ceada2..55a116ffd90 100644 --- a/gas/config/tc-mips.c +++ b/gas/config/tc-mips.c @@ -15449,8 +15449,7 @@ mips_frob_file (void) there isn't supposed to be a matching LO. Ignore %gots against constants; we'll report an error for those later. */ if (got16_reloc_p (l->fixp->fx_r_type) - && !(l->fixp->fx_addsy - && pic_need_relax (l->fixp->fx_addsy))) + && !pic_need_relax (l->fixp->fx_addsy)) continue; /* Check quickly whether the next fixup happens to be a matching %lo. */ @@ -17705,6 +17704,9 @@ pic_need_relax (symbolS *sym) { asection *symsec; + if (!sym) + return false; + /* Handle the case of a symbol equated to another symbol. */ while (symbol_equated_reloc_p (sym)) { |