http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59015
--- Comment #2 from Francois-Xavier Coudert <fxcoudert at gcc dot gnu.org> --- We don't trigger the check in resolve.c:resolve_transfer() because we bail out early: if (exp == NULL || (exp->expr_type != EXPR_VARIABLE && exp->expr_type != EXPR_FUNCTION)) return; I'm testing a patch to allow EXPR_STRUCTURE to go through the checks.