llvm/flang/test/Semantics/separate-mp04.f90

! RUN: %python %S/test_errors.py %s %flang_fc1
! Checks for multiple module procedure definitions

module m1
  interface
    module subroutine x001
    end subroutine
    module subroutine x002
    end subroutine
    module subroutine x003
    end subroutine
  end interface
end

submodule(m1) sm1
  interface
    module subroutine x004
    end subroutine
  end interface
 contains
  module procedure x001 ! fine
  end procedure
  module subroutine x002
  end subroutine
  module subroutine x003
  end subroutine
end

submodule(m1) sm2
 contains
  !ERROR: Module procedure 'x002' in 'm1' has multiple definitions
  module subroutine x002
  end subroutine
end

submodule(m1:sm2) sm3
 contains
  !ERROR: Module procedure 'x002' in 'm1' has multiple definitions
  module subroutine x002
  end subroutine
  !ERROR: Module procedure 'x003' in 'm1' has multiple definitions
  module subroutine x003
  end subroutine
end

submodule(m1:sm1) sm4
 contains
  module subroutine x004
  end subroutine
end

submodule(m1:sm1) sm5
 contains
  !ERROR: Module procedure 'x004' in 'm1:sm1' has multiple definitions
  module subroutine x004
  end subroutine
end