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

    <tr>
        <th>Summary</th>
        <td>
            [Flang] Compilation error when using the type is statement in select type construct
        </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 : 21.0.0(f75126eeabba13ce2aab53c2e4296fca12b9da0d)/AArch64
```

In the attached program, the `type is` statement is defined in `select type` construct, and the type of variable `x` is treated as `integer` instead of `polyphasic` in subsequent blocks.  
This is mentioned in `Fortran standard 2023: 11.1.11.2 Execution of the SELECT TYPE construct`, so it seems correct that this should not result in a compilation error.  
However, this program results in compilation error in Flang.  

The following are the test program, Flang, Gfortran and ifx compilation/execution result.

sngtatm013_2.f90:
```fortran
subroutine ss2
 class(*),allocatable::x(:)
  allocate(x,source=[1])
  select type(x)
 type is(integer)
     do concurrent(ii=1:10000:1,.true.)
        x(ii)=ii
 end do
  end select
end subroutine ss2
```

```
$ flang -c sngtatm013_2.f90
error: Semantic errors in sngtatm013_2.f90
./sngtatm013_2.f90:7:9: error: Deallocation of a polymorphic entity caused by assignment not allowed in DO CONCURRENT
 x(ii)=ii
          ^^^^^
./sngtatm013_2.f90:2:25: Declaration of 'x'
 class(*),allocatable::x(:)
                          ^

```

```
$ gfortran -c sngtatm013_2.f90

```

```
$ ifx -c sngtatm013_2.f90

```


</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJycVUuP2zYQ_jX0ZbACNbJk--CD4kdboEiKZFugp4KiRhZTmXRJatf774uhtLtONkEfgmxJnAe_mflmqEIwJ0u0FeU7Ue4Xaoy981vXW3fXfV40rn3aikrOt6x_Ix-Ms-A66AZlTyCKGjDPZCYFrrtVmWNFpJpG5YUmVKopC420xE3VaZVjs2mVbAVuBB7r2uu-WgpZ3-4gZP2ThdgTqBiV7qmFi3cnr84Cd2ldVDI-XQhMEJWEEFWkM9kIJkBLnbHUgrGsFWggHYGVWVM7G6IfdWRHyrbJWfLkOnhQ3qhmSN6vrG0CRE8qUgsq8KqxkU7kk8yGSKplO1HJixueLr0KRk8yCGMT6K-RMTWD03-GDEDI-r43gd0yWONeYR6dj15ZjsS2yreAEgvOa55neZbnGcLhSnqMc-IZ9qfDz4fdPdz__svhJq5KcmjBgYkQiM4BtPM-5aBX_GcChN6NQwvWRfAUxiEyCgXanS9mUGkP8t75CfOP7pEeyE-pN-G5FLNpYNs3lrx4ZHJMLlLkBJ0bBvdo7AmUpyn1FOJtbZMNv_zQzRnhIpnueruFwCO9JGNCkU2bBHuKKp5lXvyBWbeRoqhvqTX7ZMWx8W6MxhKEgELWoAcVgsC1wDpRc6eGwWkVmRDspqivLC2SVNYAs5wErq8Cd8GNXpMo9qJ8l4ty_6x2S8CkmZafyYvrZ0rN6gDQOi6nHr0nG1nDiGKfi6LOpZQcUi5wl0U_UnZjBQDXSRk3otgbwwKyLbQuqfDrhEXIOn18nYKvOvCLT1zOvX6n4U2SZZ1qznT9RGdlo9ETCxI3vqGeCTx-o1QrUdQb9vLibk9zlmfaK-BGOzt_6XkPG018Aq3GQC00TzBNsjQImNts-zi12P4D7D683_368ePh_T3n422uXi5RHr64v4sX-VdOOPWg_AtMgaurwNX_otX3rgkJF-KfS3V6bp5vV-vfOeGm-y_2i3ZbtJtioxa0zVdLuVwuq2K96LfrdUulyvO8LYoSN3qJq6oq82Wryg67pliYLUosJWIpZSmLdVasZVOUeYWylCullFhKOiszZMPwcM6cPy1MCCNtc1xXcr0YVENDSMcXYqKpKOrOOxvJtgKRDzW_Zdu7ZjwFsZSDCTG8eosmDun4m8ZPuYfdm4H22JOFMfDwejkzeJS-Hj32ttdfJ_Ji9MO2j_ESUpWPAo8nE_uxybQ7Czwyivlxd_HuM3coHlOAQeBxjvFhi38HAAD__1ioUog">