https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84136
David Malcolm <dmalcolm at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |ice-on-invalid-code Summary|[6/7/8 Regression] ICE when |[6/7/8 Regression] ICE with |woking with labels as |goto to an && label in |values |another function --- Comment #2 from David Malcolm <dmalcolm at gcc dot gnu.org> --- Note that the code in question is not a valid use of this extension; the docs say: You can get the address of a label defined in the current function (or a containing function) with the unary operator '&&'. [...snip...] You may not use this mechanism to jump to code in a different function. If you do that, totally unpredictable things happen. The best way to avoid this is to store the label address only in automatic variables and never pass it as an argument. i.e. storing a label within "foo" in a global and goto-ing to it in main is a no-no. Still, we shouldn't ICE on it.