Hi Janne, I think you need a few more test cases, like (compile with -fcheck=all and -std=f2018):
module foo contains subroutine f(n) call g(n-1) end subroutine f subroutine g(n) if (n<0) return call f(n-1) end subroutine g end module foo program main use foo call f(10) end program main Also, there should be a run-time check that the above fails with -std=f2018, -fcheck=all and the NON_RECURSIVE attribute. However, I am not sure we should make f2018 the default standard as yet, especially since some things have not yet been ironed out, but I am open to discussion on that. Any more thoughts on this one? Regards Thomas