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

--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
You can make the compiler believe it could use computed goto to that label but
actually not do that, say by
  void *volatile ptr = &&label;
  int volatile cond = 0;
  if (cond)
    goto *ptr;
But even this would just have an edge from that computed goto and because of
volatile it wouldn't know if the condition is never true.

Or gcc supports asm goto, where the inline asm would do that csr_read_write
part (before GCC 11 asm goto couldn't have output operands) and that would make
the compiler take branching from the inline asm to the label as possibility.

Reply via email to