https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84028
Bug ID: 84028 Summary: [nvptx] nested-function-1.f90 hangs at -O1 Product: gcc Version: 8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: vries at gcc dot gnu.org Target Milestone: --- These openacc fails are left on trunk: ... WARNING: program timed out. FAIL: libgomp.oacc-fortran/nested-function-1.f90 -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -O1 execution test WARNING: program timed out. FAIL: libgomp.oacc-fortran/nested-function-1.f90 -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -O2 execution test FAIL: libgomp.oacc-fortran/nested-function-1.f90 -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions execution test FAIL: libgomp.oacc-fortran/nested-function-1.f90 -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -O3 -g execution test ... This minimal test-case hangs at GOMP_NVPTX_JIT=-O1 and higher: ... program foo integer :: a(3,3,3), k, kk, kkk, l, ll, lll a = 1 !$acc parallel num_gangs(1) num_workers(2) if (any(a(1:3,1:3,1:3).ne.1)) call abort do ll=1,1 !$acc loop vector do lll=1,1 a(1,1,1) = 2 enddo enddo if (a(1,1,1).ne.2) call abort !$acc end parallel end program foo ... We generate for the abort: ... $L4: @ %r56 bra.uni $L27; @ %r57 bra $L28; { call _gfortran_abort; trap; exit; } $L28: exit; $L27: ... This is similar to PR81352, but for workers. The neutered workers start executing random code after $L27.