<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/119151>119151</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[Flang] Compilation error when a subroutine described in generic procedure interface is referred to by generic name
</td>
</tr>
<tr>
<th>Labels</th>
<td>
flang:frontend
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
ohno-fj
</td>
</tr>
</table>
<pre>
```
Version of flang : 20.0.0(9becc4a3c966d46b95ddfcf856b3c433c030db1e)/AArch64
```
In `generic procedure interface`, `interface block` is defined by `generic name (sub)` and `specific names (sub1 and sub2)` are described in it.
The two subroutines (sub1 and sub2) can be referred to not only by their `specific names (sub1 and sub2)` but also by their `generic names (sub)`.
However, specifying `generic name (sub)` in `call` statement to refer to `specific name (sub2)` results in a compilation error.
The following are the test program, Flang, Gfortran and ifx compilation result.
snfmm001_22.f90:
```fortran
subroutine test02()
interface sub
subroutine sub1(ifun,ians)
integer ians
interface
integer function ifun()
end function ifun
end interface
end subroutine sub1
subroutine sub2(rfun,ians)
integer ians
real rfun
external rfun
end subroutine sub2
end interface sub
integer ians
real rfun
external rfun
call sub(rfun,ians)
end subroutine test02
```
```
$ flang snfmm001_22.f90 -c
error: Semantic errors in snfmm001_22.f90
./snfmm001_22.f90:19:3: error: The actual arguments to the generic procedure 'sub' matched multiple specific procedures, perhaps due to use of NULL() without MOLD= or an actual procedure with an implicit interface
call sub(rfun,ians)
^^^^^^^^^^^^^^^^^^^
$
```
```
$ gfortran snfmm001_22.f90 -c
$
```
```
$ ifx snfmm001_22.f90 -c
snfmm001_22.f90(10): error #5286: Ambiguous generic interface SUB: previously declared specific procedure SUB1 is not distinguishable from this declaration. [SUB2]
subroutine sub2(rfun,ians)
----------------^
compilation aborted for snfmm001_22.f90 (code 1)
$
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJycVk-T46YT_TT40jUuhCxZOvig2fn5l1RtksNmc00haCw2CFyAZna-faplj8f_arKJS1WWoHn96H50I1OyO4-4YdUjq54WcspDiJsw-PBgvi36oF83rObHh3d_YEw2eAgGjJN-B6zsQPAlX3ImmrZHpVayVG1d61Xdt5XWRpmmqvtSrcpS8ZLrvkAmWia2XRfVUK8Y7849MN797IHVfIceo1Wwj0GhniKC9RmjkQrJUnwio9MQ9C6ov1jNwSbQaKxHDf3rOZCXIwITTZp6IlBzkF6TQdqjsuZokY4mxTybpl68GUcEjUlF26MG68HmJQDj3e8DQn4JZBvDlK2_jwFKeugRIhqMETXkAD5kCN69EtM8oI0_TqefMkiXwsXS862mi70eqP4UXvAZIwXv4OXVUg4_ipGdk6Gkc_SVssw4os_Eft4JvVyTPiK8UY2YJpcTQUlQYdxbJzOpCGMMcXlIOkXRBOfCC1GiYGeKK6ZMCthFORLrLYmOXv5vQsxR-jks1ny_wD04PAInb8aR8-JPIZam5azszhV3hCG7U_pmr1ww0dAGeAfvyqMMzCMAZ_mm14KJxprJM_HJSp_eVs4_Wr7DCPPExehBzrw7mZjJq3kPB6zmAgcA0Osrm9MsTV1gvg1eE73Ln7Ybb_jfZx5ROoiXzr9njP5q-Na5mKcumJ5CeuPr0s2NB9LkvPgO8SvPx4TeVJqLT7E61rQrxcCDIkTSKlW7LzhKn606qHdW9bXEeLdkYnsrvKJlZVcSyAmNZC9VnqQDGXcTHa1ER4rEf1sBmVjPG17DKLMaUMM4uWz3DuF0AE_Wic7JHuMg9wn0hAQ7JaTa_evXz58P4oIXm4cwZfjlt89PrHyCEIFO1YHSu2cyowk77p1VNt8o7aNs0Dyr_vcfnzk1_5y73VtFuJu-H4KgOnJ39XUqRVNw2tpbJoGJshJNTQPd2NvdFKZ0yt-71L98fSSTfcRnG6bkXkGjcpK6wW3-yLqgdkZdQtuUrd9NNg2ydwgmhhHyMDc7QpgL3xJY9fjl66Ng1dO_OOUPV79D0M8LquxDzKjBhHgTICYaFTRCcQC7G-iF3pS6LVu5wE2xLsu6bURbLoZN3ZTVeiV5sdZ1Y0Rt1oVe86o1aiXVuhELuxFcrArBGyGqoiyXsjHrgktTqLYWdcnZiuMorVs69zwuQ9wtbEoTboqiLapi4WSPLs3XGyHm483KzsTgM3rNBEVqETe09qGfdomtuLMpp3e0bLObr0eH1lM9wafrDgYvA1JrOwv1xUXhg5sMpff8QtC_wnkrXkzRbYac94naltgysd3ZPEz9UoWRiS2xPP497GP4hiozsZ0DkJjYHmPwvBF_BwAA__99lhJg">