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

    <tr>
        <th>Summary</th>
        <td>
            [flang] issue with submodule 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 files

rep1.f90
----------
MODULE m1
  INTERFACE
 MODULE SUBROUTINE sub1(N, ARR) 
      INTEGER, INTENT(IN) :: N
 INTEGER, DIMENSION(N) :: ARR
    END SUBROUTINE
  END INTERFACE
END MODULE

rep2.f90
---------
SUBMODULE (m1) m1sub
  CONTAINS
    MODULE SUBROUTINE sub1(N, ARR) 
      INTEGER, INTENT(IN) :: N
      INTEGER, DIMENSION(N) :: ARR
     PRINT *, "sub1", N, ARR
    END SUBROUTINE
END SUBMODULE

rep3.f90
---------
SUBMODULE (m1:m1sub) mym1sub
END SUBMODULE

$ flang -c rep1.f90
$ flang -c rep2.f90
$ flang -c rep3.f90
error: Semantic errors in rep3.f90
./m1-m1sub.mod:3:13: error: 'n' not found in module 'm1'
  use m1,only:n
 ^
./m1-m1sub.mod:4:1: error: PRIVATE statement may only appear in the specification part of a module
  private::n
  ^^^^^^^^^^

The file m1-m1sub.mod has following content, that is incorrect
submodule(m1) m1sub
use m1,only:n
private::n


</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJy0VMGOozgQ_RpzKSUyBkI4cHAnZBVphx4l6b0bMMErwMg2Peq_X5XDZLLZnt29DIqSuFx-9d5zFcJadR2lzEnyQpJ9IGbXaZPbTr0LIwYhjNBBpZuPfKdHqxppwHUSWt33-psar9CqXlpCOaHcyClctxkllK_uD6H8y-v-7fcChpBQDnAsL8XpwHcFrpat89vL6fXtciwLsHMVErYtCdsBP50Iy8AfwweP_laccAv_lhfCtsfSp0ScRBxKTH3I2h-_FOX5-FreEO95CHwDLcr9Q3UfxNAjSVzfeN5lsmeZhPLz28uihrDtEGK1IbRz5TF3r-WFH8vzUvVXyH5O_W_t8PV0LC9AGMd8wtiNBMPVnchPbFoCT75E_8OXiN9sQX8-vjv0CRxhMbS9GK-wquGhtZ7j7Cfx71ykMdqg8LMcxOhUDT5iQY2PaWvCDkO48oTWg25IxCMS8RC_4I5BWDoSlsKoHbR6HhtEGXQz9xL38NpTb9lsJTY82-mx_yARHzFKkuLzSjFW-luhr6fjH_xSgHXCyUGODgbxAQgGYpqkMFgYJ9FOslatqoVTeoRJGAe6BbGQ8lwmo96Fk7f790Q8k3_5-Au44JyrHnX8IAudsA_TX-vRydFhs7hOOFBoa62NkbUjlNu5Wng8j8Rn_vyDJ6E8aPKoyaJMBDIP02hLE7rdxEGXy22abcJ6s4mzKtwkqWyzeCvTTdbUNZVhFKicUZbQkG1pmsQsXjd1Eqdh3VJaZ7GUFYmpHITq133_Pqy1uQbK2lnmIYvTcBP0opK99e9Fxnxj4Wgk-8DkeGBVzVdLYtor6-wPCKdc71-mtxPJHjwofFOug7sdMFtxlcFs-rxzbrIomR0IO1yV6-ZqXeuBsAOCLj-ryeg_0VN28HiWsMPC8z1nfwUAAP__112jHg">