! { dg-do compile } ! { dg-options "-Wall" } ! PR 57022: [4.7/4.8/4.9 Regression] Inappropriate warning for use of TRANSFER with arrays ! Contributed by William Clodius subroutine transfers (test) use, intrinsic :: iso_fortran_env integer, intent(in) :: test integer(int8) :: test8(8) = 0 integer(int16) :: test16(4) = 0 integer(int32) :: test32(2) = 0 integer(int64) :: test64 = 0 select case(test) case(0) test64 = transfer(test8, test64) case(1) test64 = transfer(test16, test64) case(2) test64 = transfer(test32, test64) case(3) test8 = transfer(test64, test8, 8) case(4) test16 = transfer(test64, test16, 4) case(5) test32 = transfer(test64, test32, 2) end select end subroutine ! PR 53685: surprising warns about transfer with explicit character range ! Contributed by Jos de Kloe subroutine mytest(byte_array,val) integer, parameter :: r8_ = Selected_Real_Kind(15,307) ! = real*8 character(len=1), dimension(16), intent(in) :: byte_array real(r8_),intent(out) :: val val = transfer(byte_array(1:8),val) end subroutine