From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1062) id DE5C23858425; Wed, 26 Apr 2023 02:35:37 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org DE5C23858425 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable From: Alan Modra To: bfd-cvs@sourceware.org Subject: [binutils-gdb] Avoid another -Werror=dangling-pointer X-Act-Checkin: binutils-gdb X-Git-Author: Alan Modra X-Git-Refname: refs/heads/master X-Git-Oldrev: 9d4f5cabe223b14d56ef6b7d7b5846e8949e3164 X-Git-Newrev: 5b429b870767e2107bcc7d5d849e04d6901b5912 Message-Id: <20230426023537.DE5C23858425@sourceware.org> Date: Wed, 26 Apr 2023 02:35:37 +0000 (GMT) X-BeenThere: binutils-cvs@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 Apr 2023 02:35:38 -0000 https://sourceware.org/git/gitweb.cgi?p=3Dbinutils-gdb.git;h=3D5b429b870767= e2107bcc7d5d849e04d6901b5912 commit 5b429b870767e2107bcc7d5d849e04d6901b5912 Author: Alan Modra Date: Tue Apr 25 13:26:12 2023 +0930 Avoid another -Werror=3Ddangling-pointer =20 write.c:415:7: error: dangling pointer =E2=80=98prev_frag=E2=80=99 to = =E2=80=98dummy=E2=80=99 may be used =20 * write.c (chain_frchains_together_1): Rewrite loop as a do while to avoid false positive -Wdangling-pointer. Diff: --- gas/write.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) 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 =3D &dummy; fixS fix_dummy, *prev_fix =3D &fix_dummy; =20 - for (; frchp; frchp =3D frchp->frch_next) + do { prev_frag->fr_next =3D frchp->frch_root; prev_frag =3D frchp->frch_last; @@ -393,7 +393,8 @@ chain_frchains_together_1 (segT section, struct frchain= *frchp) seg_info (section)->fix_tail =3D frchp->fix_tail; prev_fix =3D frchp->fix_tail; } - } + frchp =3D frchp->frch_next; + } while (frchp); gas_assert (prev_frag !=3D &dummy && prev_frag->fr_type !=3D 0); prev_frag->fr_next =3D 0;