22.1 nvfortran ICE on implied-do WRITE statement

The following subroutine results in an ICE for x86 nvfortran 22.1 on the (ugly) WRITE statement:

subroutine foo(dim1, dim2, data)
  implicit none
  integer, intent(in) :: dim1, dim2
  integer, intent(in) :: data(dim1, dim2)
  integer :: f

  write(*, '(5(I6,1x))') ((/ f, data(:,f)/), f=1,dim2)
  !  write(*, '(5(I6,1x))') (/ (f, data(:,f), f=1,dim2) /)                      
end subroutine foo

The error is:

NVFORTRAN-S-0000-Internal compiler error. items were added to sem.p_dealloc but not freed       0  (write.f90: 9)
  0 inform,   0 warnings,   1 severes, 0 fatal for foo

Switching to the equivalent commented out line works as expected.

Thanks for the report pjh40. Looks like this one has been failing for awhile, since our 17.7 release. I was able to recreate the issue in 22.1 and have filed TPR #31243 to track.

-Mat

Thanks!

Hi Paul,

FYI, engineering has fixed this issue in the 22.3 release.

-Mat

1 Like

Wonderful! Thanks Mat!

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.