gcc/libgomp/testsuite
Tobias Burnus 948d461954 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.
2021-10-30 23:45:32 +02:00
..
config Update copyright years. 2021-01-04 10:26:59 +01:00
lib Allow matching Intel MIC in OpenMP 'declare variant' 2021-08-23 17:45:40 +02:00
libgomp.c OpenMP: Add strictly nested API call check [PR102972] 2021-10-30 23:45:32 +02:00
libgomp.c++ vectorizer: Fix up -fsimd-cost-model= handling 2021-10-12 09:28:10 +02:00
libgomp.c-c++-common OpenMP: Add strictly nested API call check [PR102972] 2021-10-30 23:45:32 +02:00
libgomp.fortran OpenMP: Add strictly nested API call check [PR102972] 2021-10-30 23:45:32 +02:00
libgomp.graphite Remove VRP threader passes in exchange for better threading pre-VRP. 2021-10-29 17:57:27 +02:00
libgomp.oacc-c [testsuite] Unset 'offload_target' after use 2020-07-24 14:00:43 +02:00
libgomp.oacc-c++ Don't require 'openacc_nvidia_accel_selected' in additional 'libgomp.oacc-*/declare-*' 2021-06-08 11:21:47 +02:00
libgomp.oacc-c-c++-common libgomp.oacc-c-c++-common/loop-gwv-2.c: Use __builtin_alloca 2021-10-25 20:48:38 +02:00
libgomp.oacc-fortran Further test case adjustment re "Fortran: Fix assumed-size to assumed-rank passing" 2021-09-28 14:18:21 +02:00
Makefile.am libgomp/test: Remove a build sysroot fix regression 2020-04-06 23:32:45 +01:00
Makefile.in libgomp: Regenerate configure files with automake 1.15.1 2020-10-02 12:08:47 +02:00
libgomp-site-extra.exp.in libgomp/test: Remove a build sysroot fix regression 2020-04-06 23:32:45 +01:00
libgomp-test-support.exp.in libgomp/test: Remove a build sysroot fix regression 2020-04-06 23:32:45 +01:00