On Fri, 8 Mar 2024, Jakub Jelinek wrote: > Hi! > > 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. > > Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk?
OK. > 2024-03-08 Jakub Jelinek <ja...@redhat.com> > > * bb-reorder.cc (fix_up_fall_thru_edges): Fix up checking assert, > asm_noperands < 0 means it is not asm goto too. > > --- gcc/bb-reorder.cc.jj 2024-03-07 10:06:56.086285875 +0100 > +++ gcc/bb-reorder.cc 2024-03-07 10:11:44.745261926 +0100 > @@ -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; > > Jakub > > -- Richard Biener <rguent...@suse.de> SUSE Software Solutions Germany GmbH, Frankenstrasse 146, 90461 Nuernberg, Germany; GF: Ivo Totev, Andrew McDonald, Werner Knoblich; (HRB 36809, AG Nuernberg)