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

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
So the simple reason is we strip them during free-lang-data.  Fix:

Index: gcc/tree.c
===================================================================
--- gcc/tree.c  (revision 276396)
+++ gcc/tree.c  (working copy)
@@ -5936,8 +5936,9 @@ find_decls_types_r (tree *tp, int *ws, v
     {
       for (tree *tem = &BLOCK_VARS (t); *tem; )
        {
-         if (TREE_CODE (*tem) != VAR_DECL
-             || !auto_var_in_fn_p (*tem, DECL_CONTEXT (*tem)))
+         if (TREE_CODE (*tem) != LABEL_DECL
+             && (TREE_CODE (*tem) != VAR_DECL
+                 || !auto_var_in_fn_p (*tem, DECL_CONTEXT (*tem))))
            {
              gcc_assert (TREE_CODE (*tem) != RESULT_DECL
                          && TREE_CODE (*tem) != PARM_DECL);

Reply via email to