https://gcc.gnu.org/bugzilla/show_bug.cgi?id=31592
--- Comment #2 from Dominique d'Humieres <dominiq at lps dot ens.fr> --- In the F2018 draft I see 10.1.11 Specification expression ... 5 A function is a specification function if it is a pure function, is not a standard intrinsic function, is not an internal function, is not a statement function, and does not have a dummy procedure argument. It seems that the "is not defined with the RECURSIVE keyword." has been dropped.