------- Comment #7 from hjl at lucon dot org 2008-01-07 04:57 ------- gfc_undo_symbols has
for (p = changed_syms; p; p = q) { q = p->tlink; if (p->new) { /* Symbol was new. */ delete_symtree (&p->ns->sym_root, p->name); p->refs--; if (p->refs < 0) gfc_internal_error ("gfc_undo_symbols(): Negative refs"); if (p->refs == 0) gfc_free_symbol (p); continue; } "P" is freed. But it still accessible by resolve_common_vars somehow. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33375