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

    <tr>
        <th>Summary</th>
        <td>
            [Flang] Missing diagnose when procedure pointer is subroutine but the pointer assignment target is a function
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            bug,
            flang:frontend
      </td>
    </tr>

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

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

<pre>
    Consider the following code:
```
    IMPLICIT NONE ! p is not implicitly typeable
    REAL, EXTERNAL :: func
    PROCEDURE(), POINTER :: p1

    p1 => func  ! illegal
    END PROGRAM
```
`p1` is not explicitly or implicitly typed, so it should represent a subroutine.

Flang currently compiles the above code successfully.

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxskl9vozgUxT-NeblqBAYCeeCBBbKK1KZV1JX21dgX8Mqxkf-0m28_MpM2o9FISAj53sM5Px_mnJw1YkPKv0jZJyz4xdimZ1qi6roFdTIacWs6o50UaMEvCJNRynxKPQM3AknekrQnaUv26f3ZPgEATi9vz6fu9A7n1_MAhGawgnSgjQd5XZXk0qsb-NuKbFT42LsM7TOhHQz_vg-Xc_sM8Sd5C1PQ_DH1dnnthv6fy0BoTeghLry9ns7vw-Vrfs3u1r531gxI3pN82LRg8ySVwpmpx9Bw7qP435f25Y_RyD5dM7JPv7Lg_99ZjP09mYi-nAHpwS0mKAEWV4sOtQcGLozWBC817n61elQs4g3Woo5C3FxXqdBt_NloPnBjDy5wjs5NQanbXSARTS4O-YEl2GRVesjyvKB5sjSiLvjI6R4nFPXIxkywsuJTWWRpnlXFPpENTWmRUlpnZbYv611ZTpWoapwYP1TIS1KkeGVS7ZT6uO6MnRPpXMCmzmmVJ4qNqNzWJErHMBNKCe0IpVMMQ_J2skZ71CIelH1imyjzNIbZkSJV0nn3EPbSq62VGwlS9vAinYudE5LN2jiEzwU1rNZwFMEirEZqjzbeyQMqjMFvzL5Ofxb-GuF7Zmf0cZ5tZfDS6CRY1Szery42iB4JPc7SL2HccXMl9Bj93V9PqzX_IfeEHjcKjtDjBuJHAAAA___regkY">