------- Comment #10 from ebotcazou at gcc dot gnu dot org 2008-11-24 20:33 ------- > This should probably be > > m = gfc_match ("function% %n", name); > > > if (m == MATCH_YES && strcmp (name, gfc_current_block ()->name) == 0) > > Otherwise, the 'm == MATCH_YES' is using an old value.
But in this case the first assignment to 'm' would be dead. What about if (m == MATCH_YES && gfc_match ("function% %n", name) == MATCH_YES && strcmp (name, gfc_current_block ()->name) == 0) { gfc_current_block ()->declared_at = gfc_current_locus; gfc_commit_symbols (); } else gfc_error_check (); instead? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37319