diff options
author | Jakub Jelinek <jakub@redhat.com> | 2024-03-08 12:49:43 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@redhat.com> | 2024-03-08 12:49:43 +0100 |
commit | d6bcc2e257026b383ac3e6ccdee13f7763b38621 (patch) | |
tree | 4471ad878787243507b74a57cddb35d734d85f27 /gcc | |
parent | a307a26e8b392ba65edfdae15489556b7701db81 (diff) | |
download | gcc-d6bcc2e257026b383ac3e6ccdee13f7763b38621.zip gcc-d6bcc2e257026b383ac3e6ccdee13f7763b38621.tar.gz gcc-d6bcc2e257026b383ac3e6ccdee13f7763b38621.tar.bz2 |
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 <jakub@redhat.com>
* bb-reorder.cc (fix_up_fall_thru_edges): Fix up checking assert,
asm_noperands < 0 means it is not asm goto too.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/bb-reorder.cc | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/bb-reorder.cc b/gcc/bb-reorder.cc index 7998c0a..ba11a23 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; |