<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/124731>124731</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [flang] issue with submodules usage
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            flang
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          shivaramaarao
      </td>
    </tr>
</table>

<pre>
    consider the following program 
reference: 
https://www.ibm.com/docs/en/openxl-fortran-aix/17.1.1?topic=procedures-submodules-fortran-2008

MODULE m1
  TYPE Base
    INTEGER :: i
  END TYPE

  INTERFACE
    MODULE SUBROUTINE sub1(i, b)   ! Module procedure interface body for sub1
 INTEGER, INTENT(IN) :: i
      TYPE(Base), INTENT(IN) :: b
    END SUBROUTINE
  END INTERFACE
END MODULE

MODULE m4
  USE m1 ! Use association of module m1
  TYPE, EXTENDS(Base) :: NewType
 REAL :: j
  END TYPE
END MODULE


SUBMODULE (m1) m1sub
  USE m4 ! Use association of module m4

  CONTAINS
    MODULE SUBROUTINE sub1(i, b)   ! Implementation of sub1 declared in m1
 INTEGER, INTENT(IN) :: i
      TYPE(Base), INTENT(IN) :: b
      PRINT *, "sub1", i, b
    END SUBROUTINE
END SUBMODULE


flang issues the following error when compiling this testcase.

$flang rep4.f90
error: Semantic errors in rep4.f90
./rep4.f90:23:7: error: Cannot use-associate 'sub1'; it is already declared in this scope
    USE m4 ! Use association of module m4
        ^^
./rep4.f90:26:23: Previous declaration of 'sub1'
      MODULE SUBROUTINE sub1(i, b)   ! Implementation of sub1 declared in m1

</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJy0lV1vozgUhn-NuTkKAhsScsEFbWAVaYZW-ZB2Lw0cgkeAkW2a6b9fGUjSdjXaXWkXVWpsnffNcz7I4VqLS48Yk_CJhDuHj6aRKtaNeOOKd5wrLp1CVu9xKXstKlRgGoRatq28iv4Cg5IXxTsgXqKwRoV9iYQl9twYM2jCEkIzQrPr9eqKonNL2RGaVbLUhGbYE5rJAfuf7aqWyijer7j4SWjmb1zf9QnLjBxESdhuULLEalSoV3osOlmNLeq7iHpeRLyEeMn3l935WwqdT7wE4PTHawpPXON0Atjnp_S39AAWiyUgpus0302Bs8EcdMiS53QRLZbH89Ph5Xza5ynosfAJjQShz1AQugUAQn34PlHBHRVEb1DVvESwNYRaqlnqJTcS62A_5idCo31uvT6x2Wdio9GUBt3-WlEsCpvPA_ae4se07HlO63PVgin6fLQFnFI6awSutSwFN0L2IGuYa_-xwhYp_f2U5rvjg_NGleP19D5MDTikybfb9Y-vpf-KRLzkeH5awAiNOt-adr4eiwdk8HeQwa2pzy_5Kdnnx3_b0303tNhhb-7WNhAqLFuusALRL5X4HxsK8HrY5ycgNLHBhNIZltrTAvyL1i8XXwpbt7y_gNB6RP3lhUalpIJrgz2UshtEay9NIzQY1KbkGt3FhgazjcIhcOutR7xkElvyI3a8N6Kc7bSt0ocwl9DsfmQJZYQlGyu7659530sDo8bVrbEIhG7mvDeEPYEwIDTwViGv3j_1Y6LVpRxub_0_HxVYHhKm9u-vqOsbL7wqfBNy1MtX3-0-UN78_vNhc6qYVVu25Q7G_oZF3jrwGHOaeL2p-Xa72YasDCLK1-uI8YgztlmHRV1FgSNi6tHQ82nk-4yFzC0CHjIvxKiI1nxNOQk87Lho3bZ961ypLs40JrFPgw3znZYX2OppXVA69d-OYbhzVGwFq2K8aBJ4rdBGPyyMMO20Y2ZFuJtnD67CNPD4OYdR8ws6o2rjz8vjIkwzFsvusK7Lv9Wg5A8sDaHZPMx2c8ygbzH9MwAA___x9gKt">