https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83196
--- Comment #1 from G. Steinmetz <gs...@t-online.de> --- With reversed order, i.e. definition of "f" first : $ cat z2.f90 program p call s contains character(3) function f() f = 'abc' end subroutine s if ( f /= 'abc' ) call abort end end $ gfortran-8-20171126 -c z2.f90 z2.f90:8:13: if ( f /= 'abc' ) call abort 1 Error: Function 'f' requires an argument list at (1)