! { dg-do compile } ! { dg-options "-Wsurprising" } ! ! PR fortran/53691 ! PR fortran/53685 ! ! TRANSFER checks ! (a) PR 53691 ! Failed for -Wsurprising with an ICE as SIZE was assumed to be constant SUBROUTINE CGBRFSX(N, RWORK) INTEGER N REAL RWORK(*) REAL ZERO PARAMETER (ZERO = 0.0E+0) call foo(TRANSFER (RWORK(1:2*N), (/ (ZERO, ZERO) /), N)) end ! (b) PR 53685 ! Failed with a bogus size warning if the source's size is not known at compile ! time (for substrings, the length wasn't set) subroutine test(j) implicit none character(len=4) :: record_type integer :: i, j i = transfer (record_type, i) ! no warning i = transfer (record_type(1:4), i) ! gave a warning i = transfer (record_type(1:j), i) ! gave a warning end