http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57895
Mikael Morin <mikael at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |mikael at gcc dot gnu.org --- Comment #2 from Mikael Morin <mikael at gcc dot gnu.org> --- gfc_restore_last_undo_checkpoint seems to take care of the cleanup, so we don't need to do it in gfc_match_common. The following fixes the segfault. --- a/match.c +++ b/match.c @@ -4520,10 +4520,6 @@ syntax: gfc_syntax_error (ST_COMMON); cleanup: - if (old_blank_common) - old_blank_common->common_next = NULL; - else - gfc_current_ns->blank_common.head = NULL; gfc_free_array_spec (as); return MATCH_ERROR; }