[Bug rtl-optimization/108596] [10/11/12/13 Regression] error: EDGE_CROSSING missing across section boundary

jakub at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Mon Jan 30 12:24:41 GMT 2023


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108596

--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Likely latent before that though.
Slightly cleaned up testcase, just -O2 is needed:

__attribute__((__cold__)) void foo (void);
void qux (void);

int
bar (void)
{
  asm goto ("" : : : : l1, l0);
l1:
  return 1;
l0:
  return 0;
}

void
baz ()
{
  _Bool x = bar ();
  if (!x)
    qux ();
  foo ();
}

Or even simpler (again -O2):
__attribute__((__cold__)) void foo (void);
void bar (void);

void
baz ()
{
  asm goto ("" : : : : l1, l0);
  goto l0;
l1:
  bar ();
l0:
  foo ();
}


More information about the Gcc-bugs mailing list