<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">