https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119540
--- Comment #4 from anlauf at gcc dot gnu.org --- (In reply to anlauf from comment #3) > I might be missing to set some elem_len or span or ... Testcase: module operations implicit none contains pure function c_op (i, j) result (ij) character(8), intent(in) :: i, j character(8) :: ij integer :: n ij = i do n = 1, 8 if (i(n:n) .ne. j(n:n)) ij(n:n) = '!' end do end function c_op end module operations program test_reduce use operations implicit none character(*), parameter :: carray (4) = ['abctefgh', 'atcdefgh', & 'abcdefth', 'abcdtfgh'] print *, reduce (carray, c_op) end The dump-tree has: _gfortran_reduce_scalar_c ((character(kind=1)[1:8] *) &str.3, 8, &parm.2, __reduce_wrapper_c_op_test_reduce, 0B, 0B, 0B, 0B, 8); but the prototype in reduce.c: extern void reduce_scalar_c (void *, index_type, parray *, void (*operation) (void *, void *, void *), GFC_INTEGER_4 *, gfc_array_l4 *, void *, void *, index_type, index_type); The last two arguments are string lengths, but only one is provided...