gcc/libgomp/testsuite/libgomp.fortran
Tobias Burnus 972da55746 OpenMP/Fortran: Fix (re)mapping of allocatable/pointer arrays [PR96668]
gcc/cp/ChangeLog:

	PR fortran/96668
	* cp-gimplify.c (cxx_omp_finish_clause): Add bool openacc arg.
	* cp-tree.h (cxx_omp_finish_clause): Likewise
	* semantics.c (handle_omp_for_class_iterator): Update call.

gcc/fortran/ChangeLog:

	PR fortran/96668
	* trans.h (gfc_omp_finish_clause): Add bool openacc arg.
	* trans-openmp.c (gfc_omp_finish_clause): Ditto. Use
	GOMP_MAP_ALWAYS_POINTER with PSET for pointers.
	(gfc_trans_omp_clauses): Like the latter and also if the always
	modifier is used.

gcc/ChangeLog:

	PR fortran/96668
	* gimplify.c (gimplify_omp_for): Add 'bool openacc' argument;
	update omp_finish_clause calls.
	(gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses,
	gimplify_expr, gimplify_omp_loop): Update omp_finish_clause
	and/or gimplify_for calls.
	* langhooks-def.h (lhd_omp_finish_clause): Add bool openacc arg.
	* langhooks.c (lhd_omp_finish_clause): Likewise.
	* langhooks.h (lhd_omp_finish_clause): Likewise.
	* omp-low.c (scan_sharing_clauses): Keep GOMP_MAP_TO_PSET cause for
	'declare target' vars.

include/ChangeLog:

	PR fortran/96668
	* gomp-constants.h (GOMP_MAP_ALWAYS_POINTER_P): Define.

libgomp/ChangeLog:

	PR fortran/96668
	* libgomp.h (struct target_var_desc): Add has_null_ptr_assoc member.
	* target.c (gomp_map_vars_existing): Add always_to_flag flag.
	(gomp_map_vars_existing): Update call to it.
	(gomp_map_fields_existing): Likewise
	(gomp_map_vars_internal): Update PSET handling such that if a nullptr is
	now allocated or if GOMP_MAP_POINTER is used PSET is updated and pointer
	remapped.
	(GOMP_target_enter_exit_data): Hanlde GOMP_MAP_ALWAYS_POINTER like
	GOMP_MAP_POINTER.
	* testsuite/libgomp.fortran/map-alloc-ptr-1.f90: New test.
	* testsuite/libgomp.fortran/map-alloc-ptr-2.f90: New test.
2020-09-15 09:24:47 +02:00
..
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00
2019-10-30 12:44:54 +01:00