https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82009
kargl at gcc dot gnu.org changed:
What |Removed |Added
----------------------------------------------------------------------------
Priority|P3 |P4
--- Comment #4 from kargl at gcc dot gnu.org ---
(In reply to Valery Weber from comment #0)
> hi all
>
> the following code is ICEing with gcc 7.2.0
>
> thanks
>
> v
>
> cat sparse_matrix_csx_benchmark_utils.F90
> MODULE sparse_matrix_csx_benchmark_utils
> IMPLICIT NONE
> CONTAINS
> SUBROUTINE sparse_matrix_csr_benchmark ( )
> WRITE(*,*) 'At*x: t'
> block
> integer, dimension(1), parameter :: idxs=[1]
> integer :: i, idx
> do i = 1, size(idxs)
> idx = idxs(i)
> enddo
> end block
> END SUBROUTINE sparse_matrix_csr_benchmark
> SUBROUTINE sparse_matrix_csc_benchmark ( )
> WRITE(*,*) 'An*x: t'
> block
> integer, dimension(1), parameter :: idxs=[1]
> integer :: i, idx
> do i = 1, size(idxs)
> idx = idxs(i)
> enddo
> end block
> END SUBROUTINE sparse_matrix_csc_benchmark
> END MODULE sparse_matrix_csx_benchmark_utils
This one is weird. If I move the 2nd WRITE in sparse_matrix_csr_benchmark
to after the BLOCK constructor, the code compiles. If I leave the 2nd
WRITE in its current location, and comment out the 1st WRITE statement
in sparse_matrix_csr_benchmark, I still get the ICE. I'm perplexed!