<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/110571>110571</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[flang] incorrect diagnosis in separate module procedure
</td>
</tr>
<tr>
<th>Labels</th>
<td>
flang:frontend
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
kkwli
</td>
</tr>
</table>
<pre>
```fortran
module m
interface
module function func1()
procedure(), pointer :: func1
end function
end interface
end module
submodule(m) msub1
contains
module procedure func1
procedure(), pointer :: func1
end
end submodule
```
Compile time error:
```
error: Semantic errors in d2.f90
./d2.f90:12:27: error: EXTERNAL attribute was already specified on 'func1'
procedure(), pointer :: func1
^^^^^
./d2.f90:12:27: error: POINTER attribute was already specified on 'func1'
procedure(), pointer :: func1
^^^^^
```
gfortran, ifx and xlf do not emit any errors.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyclE1vnDAQhn-NuYyCzABlOXCgya5UqUqrNIdeDR5YN8ZGtsnHv6_42F0lzaGJZO3i8bwvj8cehPeqN0QVy7-y_CYSUzhaVz08PGkVNVa-VIzfMF6zL3wdnXXBCbNGBysnTTCsMwBlArlOtHQKAGwp3WTaoKxZHhKGO4blJWl0tiU5OdoW8BpGu5gBS2uW1pvsLCAjz5an6Bx7AzCHVoBtF8uvn5otiLuBYQmDn5rNvLUmCGX8yXTDPwO-Avkg9kxz4bpQvC7wOr22w6g0QVADATln3ez4XuZpEX7RIExQ7ZruQRmQGHfllhczPGzztE6QpTUWs-ys3_--39_d1t9BhOBUMwWCJ-FBaEdCvoAfqVWdIgnWAMNiO8jiU7Vg-f7V-D_Cnz--3d7v7z4H-OFr9i7jm-L3p3bAa1DdMwgj4Vl3IC0YG4AGFUCYl-1I4khWqSzTUkRUJQUWRcpT5NGx4qJLRC7KIi1Fl3cd30mZ8UwWWZmWaZFEqkKOGS9TjgnPkzLOqE0oK0mWxW7XcskyToNQOtb6cYit6yPl_URVkvC8SCItGtJ-6XLETgvTs7TunDWBjGSIc--7atZeNVPvWca18sFf3IIKevlKrOL8BpRprXPUBpBK9MZ6tdw5T6NwItA_rRNNTlfHEEY_FxsPDA-9CsepiVs7MDzMr9r-rkZn_1AbGB6WXXiGh20jjxX-DQAA___CJmjj">