https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80304
Harald Anlauf <anlauf at gmx dot de> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |anlauf at gmx dot de --- Comment #14 from Harald Anlauf <anlauf at gmx dot de> --- Further reduction: module test_mod implicit none contains pure real function add(i) integer ,intent(in) :: i add = i end function pure real function add2(i,j) integer ,intent(in) :: i,j add2 = i+j end function end module test_mod program test use test_mod implicit none integer :: i ,j real :: a(0:1,0:1) ,b(0:1,0:1) call sub () call sub () call sub () contains subroutine sub () a = 0. b = 0. DO CONCURRENT( i=0:1 ,j=0:1) a(i,j) = add(i) b(i,j) = add2(i,j) END DO print*,sum(a),sum(b) end subroutine sub end program test On i686-pc-linux-gnu: % gfc-trunk -O1 -finline pr80304b.f90 && ./a.out 2.00000000 4.00000000 2.00000000 4.00000000 2.00000000 4.00000000 % gfc-trunk -O1 -fno-inline pr80304b.f90 && ./a.out -4.86805248E+09 -4.86805248E+09 -4.86805248E+09 -4.86805248E+09 -4.86805248E+09 -4.86805248E+09 % gfc-trunk -O2 -fno-inline pr80304b.f90 && ./a.out -4.86695731E+09 -4.86695731E+09 -3.25031117E+09 -3.25031117E+09 -3.27110272E+09 -3.27110272E+09 % gfc-trunk -O3 -fno-inline pr80304b.f90 && ./a.out 2.00000000 4.00000000 2.00000000 4.00000000 2.00000000 4.00000000