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

    <tr>
        <th>Summary</th>
        <td>
            [Flang] Unlimited polymorphic `ARRAY=` argument is not supported by intrinsic `EOSHIFT`
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            bug,
            flang:frontend,
            flang:codegen
      </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
    end type

    type, extends(Base) :: Child
        integer j
    end type
end module

program transfer003
use m
 class(Base), pointer :: c1(:,:,:)
    class(*), pointer :: b1(:)

 allocate(c1(2,2,2), SOURCE=reshape((/(Child(i,i-1),i=101,108)/), &
 (/2,2,2/)))
    allocate(b1(12), SOURCE=(/(Base(i),i=1,12)/))

 select type(name1=>eoshift(transfer(c1, b1), -4, Base(-8)))
        type is (Base)
            print *, name1
        class default
 error stop 1
    end select
end
```

Flang issues an error as 
```
t1.f:20:32: error: Actual argument for 'array=' has bad type 'CLASS(*)'
      select type(name1=>eoshift(transfer(c1, b1), -4, Base(-8)))
 ^^^^^^^^^^^^^^^^
```

The standard doesn't seem disallow unlimited polymorphic in this case.

XLF compiles and runs successfully.
gfortran issues a `TODO` message
```
Error: TODO: unlimited polymorphic MOLD in TRANSFER intrinsic at (1)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy0VcGOozgQ_RrnUuoIG5KQAweGBO1Ks9tSd4-0ezRQgEfGRraZ2fz9yoYkRJM-7GERIWCXX716VWVza0WnEDOy-0J2pw2fXK9NduJKoCyKHtWm0s0lK7SyokEDrkdotZT6p1Ad1LpBEuckOpEoJ_toucPnoJtJIgzzFwCAu4wIX7jF-5C_hHLYoQFxH0bVBOsF-AGBsALwH4eqsYSlAY4dwbOIcyh6IZvn8N8_g_dfM9m1u9HozvABnOHKtmiiKJ4nJnsPqpbcrlh4aqP2Ds2VUE0JS_07K1bP453LFYKw_DlCdUM4PsjBpdQ1d0hYGpwwworlF2DeX7-9FWcSnwzannvd0nCXhKWzTCwVhBXihc4rBIlPNKKEFTRKw1C5QBG2X5zOCCtXs8nxIaQVs0Ce_kLpRmQWzvO4MfD-2cr9Y9QWJdZuKYRU8QGpx4vPqG0vWkdYes3YIkwRFAz-XxL_XHy-pE-o38pUWFjl9WHeX6MRykHIWQEziwebkFVosOWTdMsUGqMNWKdHoI-1OAd1q8an7TQ_S8lVB8LaCS1wtWByC0_XOLptSZyziMR5zHwxBXv_ktdu4hK46aYBlYNWGyDswI3hl5CgA_TcQsXnTvFzxdf8_X1VqYd1yP9nXsju_N_uz_X76BGs46rhpoFGo1WEHRxYxAEaYX3l_oRJSTEIhw2MWl4GbcZe1CAUuF5YqLnF7Rrzr68l1HoYhQw5acBMyoKd6hqtbScpL4t512rjRbjlD8g--ng9vZJ9BANayzt8yv18zVowjvNPGP7x-vXkaX685X--l-c3v_UZoayogftiTem9m64ONk0WN8f4yDeY0UNMk_jAdsmmz1LWsqauD026q2rEPeecJU0dU2QRbSK-ERmLWEIpZTRNDnGypU1aU4yxShLaphUjSYQDF3Ir5Y9hq023CXFnlO6OLN5IXqG04eBhrJo6wvyWQhhrfY2TOG-NVn6b_2XCnzodKj--O21M5vFfqqmzJImksM7ePTrhZDjcQuOQ3Qm-PZWO7KP87S3_29fsPrq3hbCgtAM7jaM2flF1WalK9tH59f2338sPr-RkZNY7N9qwWZeElZ1w_VRtaz0QVnpOy9_LaPR33_GsnEuBsHJR5UfG_g0AAP__DcAf2w">