From: Alan Modra Date: Tue, 25 Apr 2023 03:56:12 +0000 (+0930) Subject: Avoid another -Werror=dangling-pointer X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=5b429b870767e2107bcc7d5d849e04d6901b5912;p=binutils-gdb.git Avoid another -Werror=dangling-pointer write.c:415:7: error: dangling pointer ‘prev_frag’ to ‘dummy’ may be used * write.c (chain_frchains_together_1): Rewrite loop as a do while to avoid false positive -Wdangling-pointer. --- diff --git a/gas/write.c b/gas/write.c index 74a00ea97ae..573a667da22 100644 --- a/gas/write.c +++ b/gas/write.c @@ -380,7 +380,7 @@ chain_frchains_together_1 (segT section, struct frchain *frchp) fragS dummy, *prev_frag = &dummy; fixS fix_dummy, *prev_fix = &fix_dummy; - for (; frchp; frchp = frchp->frch_next) + do { prev_frag->fr_next = frchp->frch_root; prev_frag = frchp->frch_last; @@ -393,7 +393,8 @@ chain_frchains_together_1 (segT section, struct frchain *frchp) seg_info (section)->fix_tail = frchp->fix_tail; prev_fix = frchp->fix_tail; } - } + frchp = frchp->frch_next; + } while (frchp); gas_assert (prev_frag != &dummy && prev_frag->fr_type != 0); prev_frag->fr_next = 0;