http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59023

--- Comment #8 from janus at gcc dot gnu.org ---
I had a closer look at what actually changes with the patch in comment 7, and
found out that the crucial part is that the patch does not set the 'ns' member
of the gsymbol. This observation leads to a much simpler patch to fix the ICE:


Index: gcc/fortran/resolve.c
===================================================================
--- gcc/fortran/resolve.c    (revision 206249)
+++ gcc/fortran/resolve.c    (working copy)
@@ -10164,7 +10164,6 @@ gfc_verify_binding_labels (gfc_symbol *sym)
       gsym->sym_name = sym->name;
       gsym->binding_label = sym->binding_label;
       gsym->binding_label = sym->binding_label;
-      gsym->ns = sym->ns;
       gsym->mod_name = module;
       if (sym->attr.function)
         gsym->type = GSYM_FUNCTION;


Unfortunately I still don't really understand *why* this fixes the ICE.
Moreover, it still fails on some binding_label_tests_*.

(Btw, also one of the duplicate lines, which set the binding_label, should be
removed.)

Reply via email to