From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2153) id D76103858D38; Fri, 8 Mar 2024 11:54:35 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org D76103858D38 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1709898875; bh=GBFATmli34dqzZb0a009eARYgNk6DK+IMO7fXYoIiOk=; h=From:To:Subject:Date:From; b=JF/SvbT5tFMthyl4osvhqNfXUl05tDLTCPhwmHjB8pkxs52wJwWm9mdb5s+i4UrTq QZYV6L2KYhXcCSktMc9DQNoc1GCKTjaIX0ADUnS/Q4ZBohMh2rWtheWxfJqftHe1tK sqHY1JiGlKvI4hHvrBY4gD7FYG89s5B3CXGeF5YE= MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: Jakub Jelinek To: gcc-cvs@gcc.gnu.org Subject: [gcc r14-9388] bb-reorder: Fix assertion X-Act-Checkin: gcc X-Git-Author: Jakub Jelinek X-Git-Refname: refs/heads/master X-Git-Oldrev: a307a26e8b392ba65edfdae15489556b7701db81 X-Git-Newrev: d6bcc2e257026b383ac3e6ccdee13f7763b38621 Message-Id: <20240308115435.D76103858D38@sourceware.org> Date: Fri, 8 Mar 2024 11:54:35 +0000 (GMT) List-Id: https://gcc.gnu.org/g:d6bcc2e257026b383ac3e6ccdee13f7763b38621 commit r14-9388-gd6bcc2e257026b383ac3e6ccdee13f7763b38621 Author: Jakub Jelinek Date: Fri Mar 8 12:49:43 2024 +0100 bb-reorder: Fix assertion When touching bb-reorder yesterday, I've noticed the checking assert doesn't actually check what it meant to. Because asm_noperands returns >= 0 for inline asm patterns (in that case number of input+output+label operands, so asm goto has at least one) and -1 if it isn't inline asm. The following patch fixes the assertion to actually check that it is asm goto. 2024-03-08 Jakub Jelinek * bb-reorder.cc (fix_up_fall_thru_edges): Fix up checking assert, asm_noperands < 0 means it is not asm goto too. Diff: --- gcc/bb-reorder.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gcc/bb-reorder.cc b/gcc/bb-reorder.cc index 7998c0a148e..ba11a2337ab 100644 --- a/gcc/bb-reorder.cc +++ b/gcc/bb-reorder.cc @@ -2024,7 +2024,8 @@ fix_up_fall_thru_edges (void) See PR108596. */ rtx_insn *j = BB_END (cur_bb); gcc_checking_assert (JUMP_P (j) - && asm_noperands (PATTERN (j))); + && (asm_noperands (PATTERN (j)) + > 0)); edge e2 = find_edge (cur_bb, e->dest); if (e2) e2->flags |= EDGE_CROSSING;