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

    <tr>
        <th>Summary</th>
        <td>
            [flang] Incorrect element byte length when checking the FIELD argument of UNPACK intrinsic.
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            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:
```
    program main

        type A
 integer x
        end type

        type, extends(A) :: B
 integer :: y
        end type

        logical*4 :: mask(2,1,3)

 type(A), pointer :: fV(:,:,:)
        class(A), target, allocatable :: bT(:)

        allocate(bT(12), source=(/ (B(i, i+1), i=1,12) /) )

 fv(2:3, (0):0, 3:5) => bT(::2)
        mask = reshape ( (/ .false., .false., .true., .true., &
                    .false., .false. /), (/ 2,1,3 /))

        print*, sizeof(fv(1,1,1))
        fv = unpack((/ A(101), A(-101) /), mask, fv)
    end program
```

Flang failed at the execution as:
```
> a.out
 4

fatal Fortran runtime error(t.f:23): UNPACK: VECTOR= has element byte length 4 but FIELD= has length 8
IOT/Abort trap(coredump)
```

However, as it is printed, the `sizeof` an element of FIELD `fv` is 4.

All ifort, gfortran and XLF executed the code successfully.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyEVN1urDYQfhrvzSgIbJafCy4IG9SoRz1VlR711sAAbrw2ss0m6dNXNmzOJqlUtFqMZ-abmW9-uLViUogVOd6T4-nAVzdrU524EiibZkZ16PTwVjVaWTGgATcjjFpK_SLUBL0ekLCaxDXJ4v0X1wAAi9GT4Wc4c6G8eLv1j3tbEMKFUA4nNPB6I0U1BI2vNoQ2gK8O1WAJLWpCS_CuWQ33t2D73dv_Yko9iZ5LQuv0anTm9pnQghLaJIQ2jNByt9kCCF59HIv27t6djT8ILfyZNjf_5Y2zXnJrbwAcNxM6f-JS6p473km8wnVPV7jyY8i7ro8k6CR0h7N6NT0SdvKGtAVCi3tCC-FlgtD7ZNcThJ18ZsEQCG2319XNeAnZs5p5ZUKL2MtYHftPRlh93Fg_EfbwM0pW04_Jehq9Fhi0M1_QI8EeWTRyaTHygLdHZ9bPJ0KzG8zb5yvGnsoetffzXsN30ScuFyOUI7QO9Il_UI-EFoGAZDdN3s2uNuMlpLWqhffPwVHwVXuj-Mqx_7rbPm_C2lqrCRRfIX1f7nPyaYJIXLeSqwlGLiQOwF0YPHzFfnVCK-D269j5ovBIr87DpxvKyB2X0GrjDFdgVuXEGQGN0YbQwkWjrx7bqgx__vZ73fzqTz8emqfvf_hcZ24BJZ5ROejeHIJENbkZUuhWB-3jw7fTVW2XFCSuH78_EdrWnTYOnOELoUWvDQ7redkL8THZX_QLXtCEebAgHAi7FQiHMC0zAsnivUxZDFy9B6XHLQqvMF68UFhIow23lhLEqE2YtGncaeBqgL--tTudOAR8v8rArn2P1o6rlG_RYajYULKSH7BK8iPNs5Jl5WGuijLP0zzvCszKYxrnPGUxYzwvc8ziLOMHUdGYHuM8yZOM0rSMWJJhnmVJzJJjPgwFSWM8cyEjKS_nSJvpIKxdsUrSkh3ZQfIOpQ07mdLRNwJh9Wi08tuPUOo3tam87V23TpaksRTW2Z9oTjgZdvpmfDzBo-q1Mdi7_6zmy4wK-hn7Z7_VPR0bp9xM65XlrTv8njVCWdFHh9XIanZuCb3oO72dhJvXLur1mdDWR7O_7haj_8beEdqGRC2h7Z7rpaL_BgAA___OcNCB">