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

    <tr>
        <th>Summary</th>
        <td>
            [Flang] Incorrect diagnostic on multiple type-bound procedure `binding-name`s point to the same specific `procedure-name`
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            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:
```
module m

   type base
      integer :: i = -999
      contains
         procedure, pass(b) :: base1 => base_base_base
         procedure, pass(b) :: base2 => base_base_base
 generic :: operator(+) => base1, base2
   end type

   contains

 type(base) function base_base_base ( a, b )
      class(base), intent(in) :: a
      class(base), intent(in) :: b
   end function

end module
```

Flang currently issues an error as:
```
error: Semantic errors in t.f
./t.f:8:21: error: Generic 'OPERATOR(+)' may not have specific procedures 'base%base1' and 'base%base2' as their interfaces are not distinguishable
           generic :: operator(+) => base1, base2
 ^^^^^^^^^^^
./t.f:13:24: Procedure 'base1' of type 'base' is bound to 'base_base_base'
     type(base) function base_base_base ( a, b )
 ^^^^^^^^^^^^^^
./t.f:13:24: Procedure 'base2' of type 'base' is bound to 'base_base_base'
     type(base) function base_base_base ( a, b )
                         ^^^^^^^^^^^^^^
```

The code seems conforming to me as I can't find any wording in the standard prohibit this usage.

Note: This could be a duplicate to issue #124766 
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzEVU2PozgQ_TXOpdQRmBDgwIHp7qzmsjOa7fvK2AV4ZWxkmx7l36_KJOlsr0aj3j1MhJJQrg-_51dlEYIeLWLLyk-sfNqJNU7Ot0_CajSPjxPaXe_UuX10NmiFHuKEMDhj3HdtR5BOISs6lnXsmF2erJudWg3CTOasA4B4XhB6EXB7BQBtI47ogYKLDjSw4gkemqa5eUhno9A23AwAsHgnUa0eGX-ERYTAeN0z3lzTUImcUrHiOb38efv6aBr-4zQjWvRaXr3dgl5E5xmvGf-0pblF5lQi5ds2gFYlNm7U3MEkQ1rjdSrFGxhWK6N29t0ugPEaREoNjN9xZi5gtnByIKJtZLzW9g6h-HhI_wbguqttz2TZTvydDFjWnYwglazeo43mDDqEFQMIC-i98yDCv9WTVqjiHzgLG7XcfANoC3E_sKzbM36if0VXs6LjOTnfon67ng6vvnx9_ta9fPl2OxnGK5jFGayLMIlXhLCg1IOWb5IIFLiRUV4OsAJh1TszT-ZA7aB9YswPQhI0jym90iFqO646TKI3_5Af_A8FsfL5J889PXlB_ByoxtcrwCuQBMwNW2_ewFWgA_RuJZm6q_lO_ry6IvnPSv05hA9j4b8Ky48-H8L4rmdeJkxzFQLiHGhADM7PNG2jgxlJdZ9BCst4FWHQVoGwZ_juvCIfapIJIURhlfCKhD3pXkeIkw6wBjHifqvzu4s0u-GFFqRbjYIeQYBaF6OliEj1UsMC40XOD9XxCDvVFqopGrHDNq-KOquasip3U1tVA5dKHI5lfcib4piXg2jKMpeHrK76XO50yzNeZjmv87LkZbnvFdaNrOqs7nuFamCHDGehzd6Y13nv_LhLxVuqXPGdET2akO4pzgeaK6zoBu9oWCnGOd1evqXYh34dAztkRocY3rJFHU2659JQYuUTfLbSeY-SulWM1gUaNs7CvJqoF4NJFw-bgpY3zR2zXlsi-8GKGdkxC7A4bSPxlbgX891kYcfsFnsN2K3etFOMSxp__MT4adRxWvu9dDPjJ9rz5edh8e4vlJHx0zY8GT9dGHlt-d8BAAD__0f1TFE">