blob: ef93e80d9d4c2db2ba9a0c112f6a51fbe67ec184 [file] [log] [blame]
! 'error_stop-2.f' nvptx offloading variant
! { dg-do run { target openacc_nvidia_accel_selected } }
!
! The PTX JIT doesn't understand the 'ERROR STOP' call graph, and therefore:
! warning : Stack size for entry function 'main$_omp_fn$0' cannot be statically determined
! Running with default 1024-bytes GPU thread stack size overflows the stack,
! so raise it to an arbitrarily higher value:
! { dg-set-target-env-var GOMP_NVPTX_NATIVE_GPU_THREAD_STACK_SIZE 3333 }
PROGRAM MAIN
IMPLICIT NONE
! Initialize before the checkpoint, in case this produces any output.
!$ACC PARALLEL
!$ACC END PARALLEL
PRINT *, "CheCKpOInT"
!$ACC PARALLEL
ERROR STOP 35
!$ACC END PARALLEL
PRINT *, "WrONg WAy"
END PROGRAM MAIN
! { dg-output "CheCKpOInT(\n|\r\n|\r)+" }
! { dg-output "ERROR STOP 35(\n|\r\n|\r)+" }
!
! In gfortran's main program, libfortran's set_options is called - which sets
! compiler_options.backtrace = 1 by default. For an offload libgfortran, this
! is never called and, hence, "Error termination." is never printed. Thus:
! { dg-output "Error termination.*" { target { ! { openacc_nvidia_accel_selected || openacc_radeon_accel_selected } } } }
! PR85463. The 'exit' implementation used with nvptx
! offloading is a little bit different.
! { dg-output "libgomp: cuStreamSynchronize error.*" { target openacc_nvidia_accel_selected } }
! { dg-shouldfail "" }