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

    <tr>
        <th>Summary</th>
        <td>
            [Flang] Incorrect diagnose on SELECT TYPE type guard statement when the selector is of a PDT type.
        </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 code:
```
  MODULE M

    TYPE :: Base(K1,N1)    ! (4,20)
      INTEGER, KIND :: K1
      INTEGER, LEN  :: N1
    END TYPE

    TYPE, EXTENDS(Base)  :: DT    ! (4,20)
 PROCEDURE(ModFun2), PASS, POINTER :: ProcPtr2
    END TYPE

 CONTAINS

    FUNCTION ModFun2(Arg)
    CLASS(DT(4,*)) :: Arg
 CLASS(DT(4,:)), ALLOCATABLE :: ModFun2
    END FUNCTION

  END MODULE


  PROGRAM Final2
  USE M
  TYPE(DT(4,:)), ALLOCATABLE :: V

  ALLOCATE(v, SOURCE=DT(4,20)(ModFun2))

  SELECT TYPE ( As =>  v%ProcPtr2() )
  type IS (DT(4,*))
  END SELECT

 END
```

Flang currently issues an error:
```
:29:12: error: Type specification 'dt(k1=4_4,n1=*)' must be an extension of TYPE 'dt(k1=4_4,n1=:)'
    type IS (DT(4,*))
 ^^^^
```

The code seems conforming to me.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyMlN-PqkYUx_-aw8vJNXAQgQceWMAbsy4axaZ9ahAGpcWZzcywt_vfN4Oga7vb3oSIcH59ON8zp1SqPXHGIvCewEutstdnIaO05C3rkuTMuHUU9XuUCK7amknUZ4aN6Drxo-UnrETNwI3BTsGOYWGP1_CI-LJJD-sMX0bz-Bax-G2boQlzY3wqFQMKnh2gJHeAQuMA5CBQMAdKyAYK76GIq7zIvmc7oASfV3k65Xl2vnBaZzlOTvkHpyxPB5DP4Exc9muR5ekeKLgihrcsafEfjNvdJsnSwy4DCl5Evew5GSMluI33--G-MXS7KdtWimqrJf0PWbLJi3iV7_-JuzzkSbHa5HgrFsTy9NCzZD1UDtJi5AWKB6ZwYjARY5l_-bqjr0GP1-tNEhfx0_qm31T2gX6CeoQ1lutIfHw_Wbe7zfdd_ILLlpfdLd9hf5ufSZqfZ_vlscLoYVK8mYj95rBLMnDTW8KrkI_ChY9J9tk6S4pxhCnAWCG4KbgZ4huQd1OTgqG_dx30-yvD1R4_FeJji64VHqpmefrpEbv-LrvSHMVeSsZ1946tUj1TWHJkUgr51fkEN6YQ3Ngh06vJFQvDqV5Z1TZtVepWcATyaw0U_OmAm85_N-Tc_J3wfbz0SuORDTX_0owrEyaaqU1fhI_y-ffh-ZkmgZfdr6-7UpzZsJ5QMXZRWAneCHkxS0sLvLCZVUduHbphabHI8e3QJfIXtnWOmorNbd-b-5XNyqAKq8bx3eDoB02zKBdOY7UR2TS3XdtxQo_m9sz3mT0PPHfhNWxBfg1zm13Ktpt13dtlJuTJGiSJAnfhkNWVR9apYeESHfsTEA1fSY3REdy4kYJrxmtj8FJLRibNt2N_UjC3u1ZpdU-sW90Ny3sYAvBSXPFKSMkqjXVbnrhQDAV_GNuhyae-lDUqXWp2YVzjjzPjw3JXrGOVFhJbZRQscZsWQ8jM6mUXnbV-VYNyS6DlqdXn_jirxAVoaaDG27dXKf5glQZaXqcRaDl8_d8BAAD__0GFsDo">