<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/82005>82005</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[Flang] Incorrect diagnose on procedure pointer dummy with corresponding actual being a function that returns a procedure pointer
</td>
</tr>
<tr>
<th>Labels</th>
<td>
flang:frontend,
flang,
flang:semantics
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
DanielCChen
</td>
</tr>
</table>
<pre>
Consider the following code.
```
PROGRAM main
INTERFACE
integer FUNCTION IntF(Arg)
integer, INTENT(IN) :: Arg
END FUNCTION
END INTERFACE
PROCEDURE(IntF) :: ExtFun
CALL IntSub(IntFun1(ExtFun))
CONTAINS
FUNCTION IntFun1(Proc)
PROCEDURE(IntF) :: Proc
PROCEDURE(IntF), POINTER :: IntFun1
IntFun1 => Proc
END FUNCTION
SUBROUTINE IntSub(ProcPtr0)
PROCEDURE(IntF), POINTER :: ProcPtr0
END SUBROUTINE
END
```
Flang currently issues an error as:
```
error: Actual argument associated with procedure pointer dummy argument 'procptr0=' must be a pointer unless INTENT(IN)
CALL IntSub( IntFun1(ExtFun))
^^^^^^^^^^^^^^^
```
It seems the diagnose here is incorrect. The code is conforming and should be compiled successfully.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyUVO2O4jgQfBrnT2tRcCYQfuRHloQT0l4YMcwDGKchPjk28sftzdufbAIZ2NuRDlmA213d1aWymbXirBBLkn8neZ0w73ptypopgXK97lElR919lGutrOjQgOsRTlpK_VOoM3Dd4YykNUkrskjHFbcAr_vdH_vqTxiYULcYwLY9NPtNtW7GkFAOz2hg896uD9tdC1vlNoQWlTkTuppw4TPmErqOZdoDocW2JXQFJKtIVkEAfUI0bX2vO8VD9JlFILtu6vd9E0pGBveizT9u48cJbunr6sePwPTNH0eAV3NCizGXru7c74hde6i27dtj9GHqa4lXo_k0-Re8YuLv6QeVXndx0Bvi1uQKGndAsppkzUO5X4W7nby9f9_v3g_btpnGD8hXZ9IvWf8HnTvuU9ep_mPfpq3Hv7_47K6lZMGR3hhUTn6AsNajBaYAjdEGmA19b6DnKtekaCLuPJPAzNkPqBwwazUXzGEHP4Xr4WI0x84bhIsOjjTQ-WH4mACELkPOJYyW1YQuYfDWwRGB3SFeSbT2ycaTRx_9BV8ZDEje_I_1SdUnDa7fWwcWcbDxoneCnZW2CD0aBGFBKK6NQe5mcOgxXv8Q5lqdtBnCi8BUB7bXXnZhYK6Hi5DYgfWco7UnL-XHLOnKrFtlK5ZgOV-mRbpa5cU86csU-Wlx4vSlYywrXpYrhqeCssWcMT4vWJGIkqb0JaXzxXyRLub5bMEWK5rmuMyPC4ZpQV5SHJiQMyn_HmbanJNog7KgaZonkh1R2vjWUXoKfiFZdTJaOVQdoZTQ9f3gcZdVFgemnOA2nOR1YsrQ4tvRny15SaWwzk5NnXAyvqnRlCSvYXtTbhJVq996KRotAuxFqy4Ke7XlEeMGTl5xJ7QC1zMHBp03ygaDPVdMvJFl79wl2p9uCN2chev9ccb1QOgmcB5_vl2M_gu5I3RzvTyEbqJw_wYAAP__Y6zM8Q">