1! { dg-do run } 2! { dg-options "-ff2c" } 3! PR 34868 4 5function f(a) result(res) 6 implicit none 7 real(8), intent(in) :: a(:) 8 complex(8) :: res 9 10 res = cmplx(sum(a),product(a),8) 11end function f 12 13function g(a) 14 implicit none 15 real(8), intent(in) :: a(:) 16 complex(8) :: g 17 18 g = cmplx(sum(a),product(a),8) 19end function g 20 21program test 22 real(8) :: a(1,5) 23 complex(8) :: c 24 integer :: i 25 26 interface 27 complex(8) function f(a) 28 real(8), intent(in) :: a(:) 29 end function f 30 function g(a) result(res) 31 real(8), intent(in) :: a(:) 32 complex(8) :: res 33 end function g 34 end interface 35 36 do i = 1, 5 37 a(1,i) = sqrt(real(i,kind(a))) 38 end do 39 40 c = f(a(1,:)) 41 call check (real(c), sum(a)) 42 call check (imag(c), product(a)) 43 44 c = g(a(1,:)) 45 call check (real(c), sum(a)) 46 call check (imag(c), product(a)) 47contains 48 subroutine check (a, b) 49 real(8), intent(in) :: a, b 50 if (abs(a - b) > 1.e-10_8) call abort 51 end subroutine check 52end program test 53