------- Comment #4 from tobi at gcc dot gnu dot org 2006-09-14 10:59 ------- The difference is that 'end' appears in other contexts, see e.g. the difference between these two testcases: [EMAIL PROTECTED]:~/src/pr/28526> cat t.f90 module m public function
interface function module procedure foo4 end interface contains subroutine foo4 end subroutine foo4 ! function foo5 ! foo5 = 0 ! end function foo5 end module [EMAIL PROTECTED]:~/src/pr/28526> ~/src/gcc/build/gcc/f951 t.f90 foo4 Execution times (seconds) TOTAL : 0.00 0.01 0.02 632 kB Extra diagnostic checks enabled; compiler may run slowly. Configure with --disable-checking to disable checks. [EMAIL PROTECTED]:~/src/pr/28526> cat t.f90 module m public function interface function module procedure foo4 end interface contains subroutine foo4 end subroutine foo4 function foo5 foo5 = 0 end function foo5 end module [EMAIL PROTECTED]:~/src/pr/28526> ~/src/gcc/build/gcc/f951 t.f90 In file t.f90:13 function foo5 1 Error: Expected VARIABLE at (1) In file t.f90:14 foo5 = 0 1 Error: Symbol 'foo5' at (1) has already been host associated In file t.f90:15 end function foo5 1 Error: Expecting END MODULE statement at (1) Execution times (seconds) TOTAL : 0.00 0.00 0.03 622 kB Extra diagnostic checks enabled; compiler may run slowly. Configure with --disable-checking to disable checks. [EMAIL PROTECTED]:~/src/pr/28526> The symptoms in the original testcase can also be produced by e.g. replacing 'end' by 'module'. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28526