http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56816
--- Comment #6 from Mikael Morin <mikael at gcc dot gnu.org> 2013-04-03 19:36:03 UTC --- gfc_match_select_type creates a new namespace before proceeding with parsing, which it deletes on match failure. However, symbols (from that namespace) that may have been created in between are still reachable through the list of symbols to undo (named gfc_undo_symbols previously, now latest_undo_chgset->syms). As the match fails, that list is used to free (again) the symbols. I suspect r192094 as the culprit, because it's where the gfc_match_select_type namespace cleanup code was introduced.