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

    <tr>
        <th>Summary</th>
        <td>
            move_alloc does not support polymorphic or unlimited polymorphic descriptors
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            flang:ir
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          clementval
      </td>
    </tr>
</table>

<pre>
    The `RUNTIME_CHECK` is too restrictive for polymorphic and unlimited polymorphic descriptor.

```fortran
module move_alloc_issue
  type p1
 end type
  type, extends(p1) :: p2
    integer, allocatable :: i
 end type
contains

  subroutine sub1
    class(*), allocatable :: up
    Call inner1

  contains
    subroutine inner1
 type(p2), allocatable :: tp2
      allocate(tp2)
 allocate(tp2%i)
      call move_alloc(tp2, up)
    end subroutine
 end subroutine
end module
program test
  use move_alloc_issue
 call sub1()
end program
```

```
fatal Fortran runtime error(./dummy.f90:18): Internal error: RUNTIME_CHECK(to.type() == from.type()) failed at llvm-project/flang/runtime/allocatable.cpp(48)
./run_and_check.sh: line 14: 36287 Aborted                 ./a.out
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyEVFGvqzYM_jXhxRoKoVB44IH1XLSraXuY7p6rAKbNFhKUmKOdfz8FqKDVObqoKsT-4s_-7ER6r24GsWLZryx7i-RMd-uqTuOIht6ljlrbf1Q_7ggs53_9_eeP7398u15--3b5neUclAeyFhx6cqoj9Y4wWAeT1R-jddNddSBND7PRalSE_ZOnR985NZF1MeNvjNfbf87X32AdOWlW62j7WSOM9h2vUmvbXZX3M65OAPqYEKZkW6LpF8vRy8QF8D9C03smiilhogSW1iytYRIPIIAyhDd0Ab3QSJKtxgdSfUrQWUNSGX-sAsDPrbMzKYPhM9kpOi19yIGJmonyC6Z52jdcpNagjEGXPFM8EwfogfS4YVOgmMTXjHSUAR6IsIvWbavz1Z6p3bc8Xch279MDdwklHZFBwz3dg7CvxmBb27-uJ2dvTo5A6OkRbvZfzsaSz9KBIHm5x9zivEzdp6O4LgdJUkOzjiW42ZAaEdA565goYiaafh7Hj3goOUvrZGFLa_huCJ2RekOmNTyfI1GQjbcGrVP5xtI3GJwdD-bgGaTS2IMk0Pp9_GVy9h_siIlm0NLcmGi2nJhoDg2Ou2liojjt1ccr9CpNf-3u2P0b-3vIS4e5SU7hM81FcYa6tS4c29cnBJCxnelFp6iv0r5MSxlhleTnU5YlmSiie1Vg0bZZkWUpT_PyPHB-TvJzkg_DUGZDJiJVCS5SnogTLxPBz3GZt6dcJmnXlq0ckjM7cRyl0nEoPbbuFi1NrnIuMh5p2aL2yy0mxKpGWivHhAi3mqsWvdr55tmJa-XJ72FIkcZqHx7oLXowlsDP02QdPV1a1v30NvPR7HR1J5p8OFqiYaK5KbrPbdzZkYkmUG-vQw-XcjwTzVLR_wEAAP__7mS0ng">