Hi, in testcase lib-12.f90, all acc_async_test calls are placed in a location where they are not guaranteed to succeed, which explains why there's an xfail for the lower optimization levels.
This patch fixes the problem by moving the acc_async_test calls to the correct locations. Reg-tested on x86_64 with nvptx accelerator. Committed to trunk. Thanks, - Tom [libgomp, openacc, testsuite] Fix async logic in lib-12.f90 2018-07-26 Tom de Vries <tdevr...@suse.de> * testsuite/libgomp.oacc-fortran/lib-12.f90: Move acc_async_test calls to correct locations. Remove xfail. --- libgomp/testsuite/libgomp.oacc-fortran/lib-12.f90 | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/libgomp/testsuite/libgomp.oacc-fortran/lib-12.f90 b/libgomp/testsuite/libgomp.oacc-fortran/lib-12.f90 index e307dfde374..6912f67d444 100644 --- a/libgomp/testsuite/libgomp.oacc-fortran/lib-12.f90 +++ b/libgomp/testsuite/libgomp.oacc-fortran/lib-12.f90 @@ -1,5 +1,4 @@ ! { dg-do run } -! { dg-xfail-run-if "TODO" { openacc_nvidia_accel_selected } { "-O0" "-O1" } { "" } } program main use openacc @@ -18,10 +17,9 @@ program main call acc_wait_async (0, 1) - if (acc_async_test (0) .neqv. .TRUE.) call abort + call acc_wait (1) + if (acc_async_test (0) .neqv. .TRUE.) call abort if (acc_async_test (1) .neqv. .TRUE.) call abort - call acc_wait (1) - end program