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).