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!