From 5b429b870767e2107bcc7d5d849e04d6901b5912 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Tue, 25 Apr 2023 13:26:12 +0930 Subject: Avoid another -Werror=dangling-pointer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. --- gas/write.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'gas') diff --git a/gas/write.c b/gas/write.c index 74a00ea..573a667 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; -- cgit v1.1