<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/83292>83292</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[Flang] Incorrect diagnose when proc-iface in a procedure declaration statement is a function that returns a polymorphic procedure pointer
</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 test case
```
MODULE M
TYPE :: DT
real :: r
END TYPE
INTERFACE
FUNCTION FunI()
IMPORT
CLASS(DT), POINTER :: FunI
END FUNCTION
END INTERFACE
INTERFACE
FUNCTION FunRetPtr1()
IMPORT
PROCEDURE(FunI), POINTER :: FunRetPtr1
END FUNCTION
END INTERFACE
END MODULE
PROGRAM PrtAssignTarExpr
USE M
IMPLICIT NONE
PROCEDURE(FunRetPtr1), POINTER :: Ptr1
END
```
Flang currently issues an error:
```
./t.f:27:37: error: CLASS entity 'ptr1' must be a dummy argument, allocatable, or object pointer
PROCEDURE(FunRetPtr1), POINTER :: Ptr1
^^^^
```
The code seems conforming to me and the error message doesn't quite make sense to me.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJycVN2OszYQfRpzM9oITEjCBReUnyrSbhJl2YteGhjArbFT2_Rr3r4yIbvpdvv3RQjkY8_JmZkzZsbwXiImJPqBRLnHJjsoneRMchRZNqD0atVek0xJw1vUYAeETgmhvnHZg0VjoWEGiZ8TPyUbf3nmJcDLMX97LuBl2V5QgOqnUwEkTEmYQl4tuEYm7qD-OFsc8vn8Z479oSrOZZoVHxBA-XbIqv3xAOUk94TuCI2X7f3L6XiuHs8CZM_p6yuhu7xy52gGp-PMelcxkzxEOCn3f1hwB31S8j8kntGerA7-VejpfMyK_O1cELq7ZfY3cu-E_yx6Qf8iz4G3lj1mct89nY8_ntMXOGmbzrapmC5-v7y36u31vdPgsnjeZ_sKDsfDn-vyKZf3EnyV0WMuxSH_0mW3dymY7KGZtEZpxRW4MRMaYBJQa6Ud31fBK0JLu-pImNItCdPQvd4jbv4AlJbbKxC6vcxCtzBOxkKNwKCdxvEKTPfTiNK6DJgQqmGW1QLdUmlQ9c_YWLgoLi0-GPt7C_FffiQqPp5b3OfhXD7VgNCoFsEgjgYaJTulx3m4FYwITLbz0M9FgRGNYT1Cq9BIQrcWfp24RRjZL45BGryFrbw2Cds4jJmHSbD14yCM1_HGGxIWBHEUbKOg6TYB26zZrunaJl5HrNlttkHt8YT6dO1Tugs20S6IVnUQ11s_6KIuXncUfbL2cWRcrIT4bVwp3Xtzs5NdSGPqCVajMPN9Rmk99YRSQjNCaeccQsK000palK3biHJPJ47mqZ56Q9a-4MaaD2LLrZjvxtleJMphLxultetny1kvlUH4NqCEi1bNE-9Yg8AlsHmN7aQRWmwE08xyJcFYZtE5BbgBBt0kmxm3A7Og0U5aOvyixHVU-jLw5oFoMZA3aZEM1l6M8wYtCS17boepXjVqJLR04pfP00Ur5z1Cy9s8EFrOVfojAAD__1IIr2E">