This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug fortran/70031] New: Error in recursive module subroutine declaration if declared as "module recursive"


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70031

            Bug ID: 70031
           Summary: Error in recursive module subroutine declaration if
                    declared as "module recursive"
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: pault at gcc dot gnu.org
  Target Milestone: ---

As reported by  on 

This works:

module test
  Interface
    Recursive Module Subroutine sub1 (x)
      Integer, Intent (InOut) :: x
    End Subroutine sub1
  End Interface
end module test

submodule(test) testson
  integer :: n = 10
contains
  Module Procedure sub1
    If (x < n) Then
        x = x + 1
        Print *, 'x = ', x
        Call sub1 (x)
    End If
  End Procedure sub1
end submodule testson

  use test
  integer :: x = 5
  call sub1(x)
end

but inverting the order in the interface declaration to read
  Module Recursive Subroutine sub1 (x)

causes the error
../submodule.f90:3:4:

     module Recursive Subroutine sub1 (x)
    1
Error: Unclassifiable statement at (1)

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]