[Bug fortran/69739] [4.9/5/6 Regression] ICE during array result, allocatable assignment
anlauf at gmx dot de
gcc-bugzilla@gcc.gnu.org
Fri Mar 18 20:55:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69739
Harald Anlauf <anlauf at gmx dot de> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |anlauf at gmx dot de
--- Comment #3 from Harald Anlauf <anlauf at gmx dot de> ---
(In reply to John from comment #2)
> After reporting the bug, I noticed that in the actual code I have (not the
> reduced version I posted before), adding the (:) stride doesn't always make
> the ICE go away.
>
> What solved the problem once and for all (and without using the
> -fno-realloc-lhs flag) was changing the result in the "operate" function to
> be that of an allocatable array:
>
> function operate(A, X)
> type(sometype), intent(IN) :: A(:,:,:)
> real, intent(IN) :: X(:)
> ! real :: operate(1:PRODUCT(UBOUND(A)))
> real, allocatable :: operate(:)
>
> allocate (operate(1:PRODUCT(UBOUND(A))))
> operate(:) = 0
> end function
>
> So maybe the automatic-size result is the actual root of the ICE?
If I use
real :: operate(1:size(A))
instead of
real :: operate(1:PRODUCT(UBOUND(A)))
I do not get an ICE. So it's not automatic-size per se.
More information about the Gcc-bugs
mailing list