https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103390
--- Comment #4 from sandra at gcc dot gnu.org ---
I thought I had a fix for this that involved making gfc_is_simply_contiguous
smarter about intrinsics and other function calls, but after writing more test
cases I found that this one still ICEs.
program p
integer, pointer :: z(:)
integer :: a(3) = [1, 2, 3];
integer :: b(3) = [4, 5, 6];
call s(a + b);
contains
subroutine s(x) bind(c)
integer, contiguous :: x(:)
end
end
Tobias's other suggestion to me was gating the copy-out code with
gfc_expr_is_variable() so I'll try that next.