1! { dg-do compile } 2! { dg-options "-Wall" } 3 4! PR 57022: [4.7/4.8/4.9 Regression] Inappropriate warning for use of TRANSFER with arrays 5! Contributed by William Clodius <wclodius@los-alamos.net> 6 7subroutine transfers (test) 8 9 use, intrinsic :: iso_fortran_env 10 11 integer, intent(in) :: test 12 13 integer(int8) :: test8(8) = 0 14 integer(int16) :: test16(4) = 0 15 integer(int32) :: test32(2) = 0 16 integer(int64) :: test64 = 0 17 18 select case(test) 19 case(0) 20 test64 = transfer(test8, test64) 21 case(1) 22 test64 = transfer(test16, test64) 23 case(2) 24 test64 = transfer(test32, test64) 25 case(3) 26 test8 = transfer(test64, test8, 8) 27 case(4) 28 test16 = transfer(test64, test16, 4) 29 case(5) 30 test32 = transfer(test64, test32, 2) 31 end select 32 33end subroutine 34 35 36! PR 53685: surprising warns about transfer with explicit character range 37! Contributed by Jos de Kloe <kloedej@knmi.nl> 38 39subroutine mytest(byte_array,val) 40 integer, parameter :: r8_ = Selected_Real_Kind(15,307) ! = real*8 41 character(len=1), dimension(16), intent(in) :: byte_array 42 real(r8_),intent(out) :: val 43 val = transfer(byte_array(1:8),val) 44end subroutine 45