Fort2 TERMINATED by signal 11

Hi, I fully understand that mixing runtimes is very delicate, but I came across this reproducible issue where the compiler ended up crashing unexpectedly.

$ cat repro-mp.F90

MODULE repro_module
   IMPLICIT NONE
   REAL, DIMENSION(10)    :: bar_1d
   
CONTAINS
   SUBROUTINE baz_routine(n, array_1d)
      !$acc routine seq
      INTEGER,                  INTENT(in) :: n
      REAL, DIMENSION(10),   INTENT(inout) :: array_1d
      INTEGER :: i
    
      DO i = 1, n
         array_1d(i) = i 
      END DO
   END SUBROUTINE baz_routine

   SUBROUTINE foo(n)
      INTEGER, INTENT(in) :: n
    
      !$acc kernels
      CALL baz_routine(n, bar_1d)
      !$acc end kernels
   END SUBROUTINE foo 

END MODULE repro_module

PROGRAM dummy
END PROGRAM

$ nvfortran repro-mp.F90 -O1 -o repro-mp -Minfo=accel -acc=gpu -mp=gpu
baz_routine:
      7, Generating acc routine seq
         Generating NVIDIA GPU code
nvfortran-Fatal-/path/to/compilers/bin/tools/fort2 TERMINATED by signal 11

$ nvfortran --version
nvfortran 25.3-0 64-bit target on x86-64 Linux -tp sapphirerapids

For some reason, introducing the device routine creates such a conflict, since I have not seen another case where mixing runtimes causes such crashes.

Thanks Rommel!

I was able to reproduce the error here and filed TPR #37834.

I haven’t tried mixing OpenACC with OpenMP offload (mixing with OpenMP host is fine) so not sure what to expect, but the back-end compiler shouldn’t seg fault. Engineering will investigate.

-Mat