1! { dg-do compile } 2! { dg-options "-O -fdump-tree-original" } 3program main 4 integer, parameter :: n=100 5 real, parameter :: pi=4*atan(1.) 6 real, parameter :: tmax=20. 7 real, parameter :: dt = tmax/(2*pi)/real(n) 8 real, parameter :: t0 = dt/30. 9 integer :: i 10 interface 11 pure function purefunc(x) 12 real :: purefunc 13 real, intent(in) :: x 14 end function purefunc 15 end interface 16 real :: a(n) 17 do i=1,n 18 a(i) = purefunc(dt*i + t0) * 3. + 2 * purefunc(t0 + i*dt) 19 end do 20 print *,a 21end program main 22! { dg-final { scan-tree-dump-times "purefunc" 1 "original" } } 23