https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80053
--- Comment #14 from Richard Biener <rguenth at gcc dot gnu.org> --- I think the original asm goto case clearly remains and this is a difficult to handle case since the label address only appears as regular input and the goto target is statically represented in the CFG. The testcase is miscompiled at -O2 already. I think asm goto is prone to such miscompilation in general if combined with label addresses as inputs. I don't think it was supposed to be used in this way so we might want to simply amend documentation to make such uses undefined ... in fact one might read "The @var{GotoLabels} section in an @code{asm goto} statement contains a comma-separated list of all C labels to which the assembler code may jump." that jumps must jump to one of the labels literally (in the way documented later).