------- Comment #3 from mikael at gcc dot gnu dot org 2010-09-22 15:12 ------- Patch 4/5 in the patchset(http://gcc.gnu.org/ml/fortran/2010-09/msg00369.html) changed this:
secss = ss; /* Look for the SS for this function. */ while (secss != gfc_ss_terminator && (secss->type != GFC_SS_FUNCTION || secss->expr != expr)) secss = secss->next; [...] if (secss == gfc_ss_terminator) { /* Elemental function. */ to: if (ss->expr != expr) { /* Elemental function. */ But to be equivalent to the loop exit condition, it should be: if (ss->expr != expr || ss->type != GFC_SS_FUNCTION) { /* Elemental function. */ -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45745