aboutsummaryrefslogtreecommitdiff
path: root/libgomp/testsuite/libgomp.c/thread-limit-5.c
diff options
context:
space:
mode:
authorTobias Burnus <tobias@codesourcery.com>2021-10-30 23:45:32 +0200
committerTobias Burnus <tobias@codesourcery.com>2021-10-30 23:45:32 +0200
commit948d461954f2642ca187f86c19d297ba7a86320f (patch)
tree6e0bf27085917c296ca7e233a3b551d949ea4232 /libgomp/testsuite/libgomp.c/thread-limit-5.c
parent90ba129c9d787b985f338f70713f7be74aaa5091 (diff)
downloadgcc-948d461954f2642ca187f86c19d297ba7a86320f.zip
gcc-948d461954f2642ca187f86c19d297ba7a86320f.tar.gz
gcc-948d461954f2642ca187f86c19d297ba7a86320f.tar.bz2
OpenMP: Add strictly nested API call check [PR102972]
The teams construct only permits omp_get_num_teams and omp_get_team_num as API call in strictly nested regions - check for it. Additionally, for Fortran, using DECL_NAME does not show the mangled name, hence, DECL_ASSEMBLER_NAME had to be used to. Finally, 'target device(ancestor:1)' wrongly rejected non-API calls as well. PR middle-end/102972 gcc/ChangeLog: * omp-low.c (omp_runtime_api_call): Use DECL_ASSEMBLER_NAME to get internal Fortran name; new permit_num_teams arg to permit omp_get_num_teams and omp_get_team_num. (scan_omp_1_stmt): Update call to it, add missing call for reverse offload, and check for strictly nested API calls in teams. gcc/testsuite/ChangeLog: * c-c++-common/gomp/target-device-ancestor-3.c: Add non-API routine test. * gfortran.dg/gomp/order-6.f90: Add missing bind(C). * c-c++-common/gomp/teams-3.c: New test. * gfortran.dg/gomp/teams-3.f90: New test. * gfortran.dg/gomp/teams-4.f90: New test. libgomp/ChangeLog: * testsuite/libgomp.c-c++-common/icv-3.c: Nest API calls inside parallel construct. * testsuite/libgomp.c-c++-common/icv-4.c: Likewise. * testsuite/libgomp.c/target-3.c: Likewise. * testsuite/libgomp.c/target-5.c: Likewise. * testsuite/libgomp.c/target-6.c: Likewise. * testsuite/libgomp.c/target-teams-1.c: Likewise. * testsuite/libgomp.c/teams-1.c: Likewise. * testsuite/libgomp.c/thread-limit-2.c: Likewise. * testsuite/libgomp.c/thread-limit-3.c: Likewise. * testsuite/libgomp.c/thread-limit-4.c: Likewise. * testsuite/libgomp.c/thread-limit-5.c: Likewise. * testsuite/libgomp.fortran/icv-3.f90: Likewise. * testsuite/libgomp.fortran/icv-4.f90: Likewise. * testsuite/libgomp.fortran/teams1.f90: Likewise.
Diffstat (limited to 'libgomp/testsuite/libgomp.c/thread-limit-5.c')
-rw-r--r--libgomp/testsuite/libgomp.c/thread-limit-5.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/libgomp/testsuite/libgomp.c/thread-limit-5.c b/libgomp/testsuite/libgomp.c/thread-limit-5.c
index d3d22b1..d72988d 100644
--- a/libgomp/testsuite/libgomp.c/thread-limit-5.c
+++ b/libgomp/testsuite/libgomp.c/thread-limit-5.c
@@ -5,6 +5,7 @@ int
main ()
{
#pragma omp teams thread_limit (1)
+ #pragma omp parallel if(0)
if (omp_get_thread_limit () != 1)
abort ();
return 0;