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

    <tr>
        <th>Summary</th>
        <td>
            [Flang] Missing diagnostic on duplicate defined I/O
        </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 id

 contains

        generic :: write (formatted) => write
 procedure, private :: write => writeb
    end type

    abstract interface
        subroutine absWrite (dtv, unit, iotype, v_list, iostat, iomsg)
        import
            class(base), intent(in) :: dtv
 integer, intent(in) :: unit
            character(*), intent(in) :: iotype
            integer, intent(in)  :: v_list(:)
            integer, intent(out) :: iostat
            character(*), intent(inout) :: iomsg
 end subroutine
    end interface

    procedure(absWrite) writeb, writebaseext

    interface write(formatted)
        procedure writebaseext
    end interface
end module

end

```

Both `writeb` and `writebaseext` have identical interface for the same defined I/O for type `base`. This should be diagnosed as duplicate.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyUVMGO4ygQ_Rp8KXVEcOw4Bx_cyUbaw2ovK-1xhKFsM8IQAU5P__0IQjpOa3qkQZZsMK_ee0UV3Hs1GsSWVK-kOhV8CZN17Ykbhfp4nNAUvZXv7dEaryQ6CBPCYLW2b8qMIKxEUnaEdqSm-aHdbOWiEWZCOwCA8H5B6LnHPI9DmYAjOlAyYmkHwprAlfF5mseIBp0SEDnKDt6cCgiENYN1Mw8BJWEHIOWJlH_dfkbsxVmBcnFI2BEuTl15BD1FWCH6TIdGJqUPAbz3wXERklg3cLE24Jfe2SUog3Hf_3dhMlwj62JUiG9lU0h2hOs3rXxe84Hnr9mPhB3WeZkv1oXVQhxCc-8Ja1IO2SFBTUATCGuUuaUguYvstLsn9-t9Sd4njolHrxHVENb9lia7eg7wNekddk9BE-dPrr_C2yU80abE_aHuzzFiymmXjvtxhqsaWB92Xl4VVHM_7Bgz1w875i_uEX-EB-4jVK7N57pdGfkg-BzoV6Li_NZhNyY0uYfWLUho92rDBKSmWWVNgRv5WMgcNYWJXxGURBOU4HqlerC3fvd8RpA4KIMS_ibs_O_tV-xrUtNUljXdwH-T8uAnu2gJPYJUfDTWowTuQS4XrQQPuClkW8pDeeAFttv9jlZ0X1Z1MbXVoRI1ciYEH-ROlpL1B9xJtqt7NpRiW6iWUVZRxqpts62qelNtecNFT4f9bj9sm57sKM5c6Y3W13lj3Vgo7xdst6zZV6zQvEft01XH2KC5GUnZDc7GYpGEsXgBujZiX_pl9GRHY8H6R7Sggk5X5TmBqxP8o7yPF2H2GpQAax5mn7NWLE63UwgXnzrgTNh5VGFa-o2wM2HnyJNfLxdnv6MIhJ2TBU_YObu4tuxnAAAA___j4b9L">