From: Alan Modra Date: Sat, 13 May 2023 06:14:09 +0000 (+0930) Subject: PR28955 mips gas segfault X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=249d1bad51b568c74ea37e8b3e76c179eb53a733;p=binutils-gdb.git 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. --- 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)) {