fix pr/45972
[official-gcc.git] / gcc / testsuite / gfortran.dg / mvbits_8.f90
blobf69d1e84f9a0d572b8754c65da667e622cf51a2a
1 ! { dg-do run }
3 ! PR fortran/38883
4 ! This ICE'd because the temporary-creation in the MVBITS call was wrong.
6 PROGRAM main
7 IMPLICIT NONE
9 TYPE inner
10 INTEGER :: i
11 INTEGER :: j
12 END TYPE inner
14 TYPE outer
15 TYPE(inner) :: comp(2)
16 END TYPE outer
18 TYPE(outer) :: var
20 var%comp%i = (/ 1, 2 /)
21 var%comp%j = (/ 3, 4 /)
23 CALL foobar (var, 1, 2)
25 IF (ANY (var%comp%i /= (/ 1, 2 /))) CALL abort ()
26 IF (ANY (var%comp%j /= (/ 3, 4 /))) CALL abort ()
28 CONTAINS
30 SUBROUTINE foobar (x, lower, upper)
31 TYPE(outer), INTENT(INOUT) :: x
32 INTEGER, INTENT(IN) :: lower, upper
33 CALL MVBITS (x%comp%i, 1, 2, x%comp(lower:upper)%i, 1)
34 END SUBROUTINE foobar
36 END PROGRAM main