https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119836
--- Comment #6 from Jerry DeLisle <jvdelisle at gcc dot gnu.org> ---
I get one test failure:
FAIL: gfortran.dg/do_concurrent_all_clauses.f90 -O (test for errors, line
21)
from:
! { dg-do compile }
program do_concurrent_all_clauses
implicit none
integer :: i, arr(10), sum, max_val, temp, squared
sum = 0
max_val = 0
do concurrent (i = 1:10, i <= 8) &
default(none) &
local(temp) &
shared(arr, squared, sum, max_val) &
reduce(+:sum) & ! { dg-error "Variable 'sum' at \\(1\\) has already been
specified in a locality-spec" }
reduce(max:max_val) ! { dg-error "Variable 'max_val' at \\(1\\) has
already been specified in a locality-spec" }
block
integer :: temp2
temp = i * 2
temp2 = temp * 2
squared = i * i
arr(i) = temp2 + squared
sum = sum + arr(i)
max_val = max(max_val, arr(i)) ! { dg-error "Reference to impure
function" }
end block
end do
print *, arr, sum, max_val
end program do_concurrent_all_clauses
With the patch we accept the max function. The MAX function is used as an
example of an elemental function which is PURE. All elemental functions are
PURE unless specifically declared as IMPURE.
I will also adjust this test case accordingly. Any other thoughts?