Compiler segfault with mirror directive

Hello,

My 500,000 line Fortran95 program was crashing the pgfortran 12.4 compiler when I tried to introduce a mirror directive. In trying to boil it down to a reproducible example, I’ve got it down to the following 6 lines:

MODULE test
 IMPLICIT NONE
 REAL(kind=kind(1.d0)) a(1409)
 INTEGER,ALLOCATABLE :: arse(:)
!$acc mirror (arse)
END MODULE test

If I compile that with ‘pgfortran -ta=nvidia test.f90’, I get :

pgfortran-Fatal-/home/user/bin/pgi/linux86-64/12.4/bin/pgf902 TERMINATED by signal 11
Arguments to /home/user/bin/pgi/linux86-64/12.4/bin/pgf902
/home/user/bin/pgi/linux86-64/12.4/bin/pgf902 /tmp/user/pgfortranBMZr3HsbP_R.ilm -fn test.f90 -opt 2 -terse 1 -inform warn -x 51 0x20 -x 119 0xa10000 -x 122 0x40 -x 123 0x1000 -x 127 4 -x 127 17 -x 19 0x400000 -x 28 0x40000 -x 120 0x10000000 -x 70 0x8000 -x 122 1 -x 125 0x20000 -quad -x 59 4 -x 59 4 -tp nehalem -x 120 0x1000 -x 124 0x1400 -y 15 2 -x 57 0x3b0000 -x 58 0x48000000 -x 49 0x100 -x 120 0x200 -astype 0 -x 124 1 -x 163 0x1 -x 186 1 -accel nvidia -x 176 0x140000 -x 177 0x0202007f -cmdline '+pgfortran test.f90 -ta=nvidia' -asm /tmp/user/pgfortranJMZPGoyiKWs.s

where ‘pgfortran --version’ gives me:

pgfortran 12.4-0 64-bit target on x86-64 Linux -tp nehalem 
Copyright 1989-2000, The Portland Group, Inc.  All Rights Reserved.
Copyright 2000-2012, STMicroelectronics, Inc.  All Rights Reserved.

If I reduce the size of the a vector below 1409, then it compiles perfectly well. This has got to be a compiler bug, right?

D.

Hi D,

This has got to be a compiler bug, right?

Yes. A compiler seg fault is a severe error. Though, for me the the file compiles fine. In these cases where it passes on some systems but fails on others, there is typically a UMR or out-of-bounds error, and I do see a UMR. I’ve written a report (TPR#18650) and sent it on to our engineers for further investigation.

Thanks,
Mat

This problem (using mirror clause causes pgf902 segv) was fixed in in the 12.5 release.

Thanks for the report.

regards,
dave