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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|---                         |INVALID

--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Your testcase is invalid.
https://gcc.gnu.org/onlinedocs/gcc-10.2.0/gcc/Labels-as-Values.html#Labels-as-Values
"You may not use this mechanism to jump to code in a different function. If you
do that, totally unpredictable things happen."
GCC has a different extension, described in the Local labels chapter, non-local
labels, but in that case the goto needs to be direct to the non-local label,
not using a computed goto.
What you see is the result of the compiler not adding any edges in the cfg from
the nested function to the label with address taken, the compiler only does
that for non-local labels, or between computed gotos in the current function
and the labels whose address is taken.

Reply via email to