Files
gcc-reflection/libgomp/testsuite/libgomp.c/target-link-1.c
supers1ngular 382edf047e openmp: Bump Version from 4.5 to 5.2 (2/4)
Implements the OpenMP 5.2 C and C++ deprecations. Uses the warning
established in patch 1/4, -Wdeprecated-openmp, for said deprecations.
Not implemented is 'uses_allocators', since the base is not yet in
mainline, along with the relaxing of constraints for the interop
construct, since this is not a deprecation. Additionally does not
deprecate 'destroy' with no arguments on depobj construct, since
this was undeprecated in OpenMP 6.0. Adds new tests.

gcc/c/ChangeLog:

	* c-parser.cc (c_parser_omp_clause_reduction): Deprecate '-'
	operator for reductions.
	(c_parser_omp_clause_linear): Deprecate modifiers with parens.
	(c_parser_omp_clause_depend): Deprecate 'sink' and 'source'
	modifiers for 'depend' clause.
	(c_parser_omp_clause_map): Map clause modifiers comma-separated.
	(c_parser_omp_declare_target): Deprecate synonymous omp declare
	target for omp begin declare target. Deprecate 'to' clause.
	(c_parser_omp_metadirective): Deprecate default clause on
	metadirectives.

gcc/cp/ChangeLog:

	* parser.cc (cp_parser_omp_clause_reduction): Deprecate '-'
	operator.
	(cp_parser_omp_clause_linear): Deprecate modifiers with parens.
	(cp_parser_omp_clause_depend): Deprecate sink and source.
	(cp_parser_omp_clause_map): Map clause modifiers
	comma-separated.
	(cp_parser_omp_declare_target): Deprecate synonymous omp declare
	target for omp begin declare target. Deprecate to clause.
	(cp_parser_omp_metadirective): Deprecate default clause on
	metadirectives.

libgomp/ChangeLog:

	* testsuite/libgomp.c++/declare_target-1.C: Suppress warnings.
	* testsuite/libgomp.c++/depobj-1.C: Ditto.
	* testsuite/libgomp.c++/doacross-1.C: Ditto.
	* testsuite/libgomp.c++/for-15.C: Ditto.
	* testsuite/libgomp.c++/for-24.C: Ditto.
	* testsuite/libgomp.c++/pr101544-1-O0.C: Ditto.
	* testsuite/libgomp.c++/pr101544-1.C: Ditto.
	* testsuite/libgomp.c++/pr96835-1-O0.C: Ditto.
	* testsuite/libgomp.c++/pr96835-1.C: Ditto.
	* testsuite/libgomp.c++/static-aggr-constructor-destructor-1.C: Ditto.
	* testsuite/libgomp.c++/static-aggr-constructor-destructor-2.C: Ditto.
	* testsuite/libgomp.c++/static-aggr-constructor-destructor-3.C: Ditto.
	* testsuite/libgomp.c++/target-13.C: Ditto.
	* testsuite/libgomp.c++/target-cdtor-1.C: Ditto.
	* testsuite/libgomp.c++/target-cdtor-2.C: Ditto.
	* testsuite/libgomp.c++/target-std__array-concurrent-usm.C: Ditto.
	* testsuite/libgomp.c++/target-std__array-concurrent.C: Ditto.
	* testsuite/libgomp.c++/target-std__cmath.C: Ditto.
	* testsuite/libgomp.c++/target-std__complex.C: Ditto.
	* testsuite/libgomp.c++/target-std__deque-concurrent-usm.C: Ditto.
	* testsuite/libgomp.c++/target-std__deque-concurrent.C: Ditto.
	* testsuite/libgomp.c++/target-std__forward_list-concurrent-usm.C: Ditto.
	* testsuite/libgomp.c++/target-std__forward_list-concurrent.C: Ditto.
	* testsuite/libgomp.c++/target-std__list-concurrent-usm.C: Ditto.
	* testsuite/libgomp.c++/target-std__list-concurrent.C: Ditto.
	* testsuite/libgomp.c++/target-std__numbers.C: Ditto.
	* testsuite/libgomp.c++/target-std__span-concurrent-usm.C: Ditto.
	* testsuite/libgomp.c++/target-std__span-concurrent.C: Ditto.
	* testsuite/libgomp.c++/target-std__valarray-1.C: Ditto.
	* testsuite/libgomp.c++/target-std__valarray-concurrent-usm.C: Ditto.
	* testsuite/libgomp.c++/target-std__valarray-concurrent.C: Ditto.
	* testsuite/libgomp.c++/target-std__vector-concurrent-usm.C: Ditto.
	* testsuite/libgomp.c++/target-std__vector-concurrent.C: Ditto.
	* testsuite/libgomp.c-c++-common/declare_target-1.c: Ditto.
	* testsuite/libgomp.c-c++-common/depend-2.c: Ditto.
	* testsuite/libgomp.c-c++-common/depobj-1.c: Ditto.
	* testsuite/libgomp.c-c++-common/for-11.c: Ditto.
	* testsuite/libgomp.c-c++-common/for-12.c: Ditto.
	* testsuite/libgomp.c-c++-common/for-16.c: Ditto.
	* testsuite/libgomp.c-c++-common/for-3.c: Ditto.
	* testsuite/libgomp.c-c++-common/for-5.c: Ditto.
	* testsuite/libgomp.c-c++-common/for-6.c: Ditto.
	* testsuite/libgomp.c-c++-common/for-9.c: Ditto.
	* testsuite/libgomp.c-c++-common/function-not-offloaded.c: Ditto.
	* testsuite/libgomp.c-c++-common/metadirective-1.c: Ditto.
	* testsuite/libgomp.c-c++-common/metadirective-2.c: Ditto.
	* testsuite/libgomp.c-c++-common/metadirective-3.c: Ditto.
	* testsuite/libgomp.c-c++-common/metadirective-5.c: Ditto.
	* testsuite/libgomp.c-c++-common/monotonic-1.c: Ditto.
	* testsuite/libgomp.c-c++-common/monotonic-2.c: Ditto.
	* testsuite/libgomp.c-c++-common/pr100059-1.c: Ditto.
	* testsuite/libgomp.c-c++-common/pr66199-2.c: Ditto.
	* testsuite/libgomp.c-c++-common/pr66199-4.c: Ditto.
	* testsuite/libgomp.c-c++-common/pr66199-5.c: Ditto.
	* testsuite/libgomp.c-c++-common/pr66199-6.c: Ditto.
	* testsuite/libgomp.c-c++-common/pr66199-7.c: Ditto.
	* testsuite/libgomp.c-c++-common/pr66199-8.c: Ditto.
	* testsuite/libgomp.c-c++-common/pr66199-9.c: Ditto.
	* testsuite/libgomp.c-c++-common/ptr-attach-1.c: Ditto.
	* testsuite/libgomp.c-c++-common/reverse-offload-1.c: Ditto.
	* testsuite/libgomp.c-c++-common/target-1.c: Ditto.
	* testsuite/libgomp.c-c++-common/target-10.c: Ditto.
	* testsuite/libgomp.c-c++-common/target-40.c: Ditto.
	* testsuite/libgomp.c-c++-common/target-abi-struct-1-O0.c: Ditto.
	* testsuite/libgomp.c-c++-common/target-abi-struct-1.c: Ditto.
	* testsuite/libgomp.c-c++-common/target-cdtor-1.c: Ditto.
	* testsuite/libgomp.c-c++-common/target-same-name-1.c: Ditto.
	* testsuite/libgomp.c-c++-common/task-reduction-14.c: Ditto.
	* testsuite/libgomp.c-c++-common/variable-not-offloaded.c: Ditto.
	* testsuite/libgomp.c/declare-variant-3.c: Ditto.
	* testsuite/libgomp.c/declare-variant-4.c: Ditto.
	* testsuite/libgomp.c/doacross-1.c: Ditto.
	* testsuite/libgomp.c/doacross-2.c: Ditto.
	* testsuite/libgomp.c/doacross-3.c: Ditto.
	* testsuite/libgomp.c/examples-4/async_target-1.c: Ditto.
	* testsuite/libgomp.c/examples-4/declare_target-1.c: Ditto.
	* testsuite/libgomp.c/examples-4/declare_target-3.c: Ditto.
	* testsuite/libgomp.c/examples-4/declare_target-4.c: Ditto.
	* testsuite/libgomp.c/examples-4/declare_target-5.c: Ditto.
	* testsuite/libgomp.c/max_vf-1.c: Ditto.
	* testsuite/libgomp.c/pr81778.c: Ditto.
	* testsuite/libgomp.c/pr86660.c: Ditto.
	* testsuite/libgomp.c/reduction-4.c: Ditto.
	* testsuite/libgomp.c/switch-conversion.c: Ditto.
	* testsuite/libgomp.c/target-26.c: Ditto.
	* testsuite/libgomp.c/target-28.c: Ditto.
	* testsuite/libgomp.c/target-30.c: Ditto.
	* testsuite/libgomp.c/target-32.c: Ditto.
	* testsuite/libgomp.c/target-35.c: Ditto.
	* testsuite/libgomp.c/target-38.c: Ditto.
	* testsuite/libgomp.c/target-39.c: Ditto.
	* testsuite/libgomp.c/target-9.c: Ditto.
	* testsuite/libgomp.c/target-link-1.c: Ditto.
	* testsuite/libgomp.c/target-teams-1.c: Ditto.
	* testsuite/libgomp.c/thread-limit-2.c: Ditto.
	* testsuite/libgomp.oacc-c-c++-common/vred2d-128.c: Ditto.

gcc/testsuite/ChangeLog:

	* c-c++-common/gomp/Wparentheses-2.c: Suppress warnings.
	* c-c++-common/gomp/attrs-metadirective-1.c: Ditto.
	* c-c++-common/gomp/attrs-metadirective-2.c: Ditto.
	* c-c++-common/gomp/attrs-metadirective-3.c: Ditto.
	* c-c++-common/gomp/attrs-metadirective-4.c: Ditto.
	* c-c++-common/gomp/attrs-metadirective-5.c: Ditto.
	* c-c++-common/gomp/attrs-metadirective-8.c: Ditto.
	* c-c++-common/gomp/begin-declare-target-1.c: Ditto.
	* c-c++-common/gomp/begin-declare-target-2.c: Ditto.
	* c-c++-common/gomp/clauses-3.c: Ditto.
	* c-c++-common/gomp/declare-target-1.c: Ditto.
	* c-c++-common/gomp/declare-target-2.c: Ditto.
	* c-c++-common/gomp/declare-target-3.c: Ditto.
	* c-c++-common/gomp/declare-target-4.c: Ditto.
	* c-c++-common/gomp/declare-target-5.c: Ditto.
	* c-c++-common/gomp/declare-target-7.c: Ditto.
	* c-c++-common/gomp/declare-target-indirect-1.c: Ditto.
	* c-c++-common/gomp/declare-target-indirect-2.c: Ditto.
	* c-c++-common/gomp/declare-variant-10.c: Ditto.
	* c-c++-common/gomp/declare-variant-8.c: Ditto.
	* c-c++-common/gomp/defaultmap-2.c: Ditto.
	* c-c++-common/gomp/defaultmap-3.c: Ditto.
	* c-c++-common/gomp/depend-iterator-2.c: Ditto.
	* c-c++-common/gomp/depobj-1.c: Ditto.
	* c-c++-common/gomp/directive-1.c: Ditto.
	* c-c++-common/gomp/distribute-1.c: Ditto.
	* c-c++-common/gomp/doacross-1.c: Ditto.
	* c-c++-common/gomp/doacross-2.c: Ditto.
	* c-c++-common/gomp/doacross-3.c: Ditto.
	* c-c++-common/gomp/doacross-4.c: Ditto.
	* c-c++-common/gomp/doacross-8.c: Ditto.
	* c-c++-common/gomp/linear-1.c: Ditto.
	* c-c++-common/gomp/linear-2.c: Ditto.
	* c-c++-common/gomp/linear-3.c: Ditto.
	* c-c++-common/gomp/loop-6.c: Ditto.
	* c-c++-common/gomp/map-1.c: Ditto.
	* c-c++-common/gomp/map-3.c: Ditto.
	* c-c++-common/gomp/map-6.c: Ditto.
	* c-c++-common/gomp/metadirective-1.c: Ditto.
	* c-c++-common/gomp/metadirective-2.c: Ditto.
	* c-c++-common/gomp/metadirective-3.c: Ditto.
	* c-c++-common/gomp/metadirective-4.c: Ditto.
	* c-c++-common/gomp/metadirective-5.c: Ditto.
	* c-c++-common/gomp/metadirective-8.c: Ditto.
	* c-c++-common/gomp/metadirective-construct.c: Ditto.
	* c-c++-common/gomp/metadirective-device.c: Ditto.
	* c-c++-common/gomp/metadirective-target-device-1.c: Ditto.
	* c-c++-common/gomp/metadirective-target-device-2.c: Ditto.
	* c-c++-common/gomp/order-2.c: Ditto.
	* c-c++-common/gomp/ordered-3.c: Ditto.
	* c-c++-common/gomp/ordered-5.c: Ditto.
	* c-c++-common/gomp/pr102640.c: Ditto.
	* c-c++-common/gomp/pr106836.c: Ditto.
	* c-c++-common/gomp/pr120180-1.c: Ditto.
	* c-c++-common/gomp/pr88203-1.c: Ditto.
	* c-c++-common/gomp/pr88203-2.c: Ditto.
	* c-c++-common/gomp/pr88203-3.c: Ditto.
	* c-c++-common/gomp/pr91401-2.c: Ditto.
	* c-c++-common/gomp/pr91987.c: Ditto.
	* c-c++-common/gomp/reverse-offload-1.c: Ditto.
	* c-c++-common/gomp/schedule-modifiers-1.c: Ditto.
	* c-c++-common/gomp/sink-1.c: Ditto.
	* c-c++-common/gomp/sink-2.c: Ditto.
	* c-c++-common/gomp/sink-3.c: Ditto.
	* c-c++-common/gomp/sink-4.c: Ditto.
	* c-c++-common/gomp/sink-5.c: Ditto.
	* c-c++-common/gomp/target-teams-1.c: Ditto.
	* g++.dg/gomp/attrs-12.C: Ditto.
	* g++.dg/gomp/attrs-5.C: Ditto.
	* g++.dg/gomp/attrs-9.C: Ditto.
	* g++.dg/gomp/clause-3.C: Ditto.
	* g++.dg/gomp/declare-simd-3.C: Ditto.
	* g++.dg/gomp/declare-simd-4.C: Ditto.
	* g++.dg/gomp/declare-simd-6.C: Ditto.
	* g++.dg/gomp/declare-simd-7.C: Ditto.
	* g++.dg/gomp/declare-simd-8.C: Ditto.
	* g++.dg/gomp/declare-target-1.C: Ditto.
	* g++.dg/gomp/declare-target-2.C: Ditto.
	* g++.dg/gomp/declare-target-3.C: Ditto.
	* g++.dg/gomp/declare-target-indirect-1.C: Ditto.
	* g++.dg/gomp/depend-iterator-2.C: Ditto.
	* g++.dg/gomp/depobj-1.C: Ditto.
	* g++.dg/gomp/doacross-2.C: Ditto.
	* g++.dg/gomp/linear-1.C: Ditto.
	* g++.dg/gomp/linear-2.C: Ditto.
	* g++.dg/gomp/linear-3.C: Ditto.
	* g++.dg/gomp/linear-5.C: Ditto.
	* g++.dg/gomp/map-1.C: Ditto.
	* g++.dg/gomp/pr118876.C: Ditto.
	* g++.dg/gomp/pr119370.C: Ditto.
	* g++.dg/gomp/sink-1.C: Ditto.
	* g++.dg/gomp/sink-2.C: Ditto.
	* g++.dg/gomp/sink-3.C: Ditto.
	* g++.dg/gomp/target-simd-clone-1.C: Ditto.
	* g++.dg/gomp/target-simd-clone-2.C: Ditto.
	* g++.dg/gomp/target-teams-1.C: Ditto.
	* g++.dg/gomp/udr-5.C: Ditto.
	* gcc.dg/gomp/attrs-12.c: Ditto.
	* gcc.dg/gomp/attrs-5.c: Ditto.
	* gcc.dg/gomp/attrs-9.c: Ditto.
	* gcc.dg/gomp/clause-1.c: Ditto.
	* gcc.dg/gomp/declare-simd-3.c: Ditto.
	* gcc.dg/gomp/linear-1.c: Ditto.
	* gcc.dg/gomp/metadirective-1.c: Ditto.
	* gcc.dg/gomp/pr104757.c: Ditto.
	* gcc.dg/gomp/sink-fold-1.c: Ditto.
	* gcc.dg/gomp/sink-fold-2.c: Ditto.
	* gcc.dg/gomp/sink-fold-3.c: Ditto.
	* gcc.dg/gomp/target-simd-clone-1.c: Ditto.
	* gcc.dg/gomp/target-simd-clone-2.c: Ditto.
	* gcc.dg/gomp/target-simd-clone-3.c: Ditto.
	* gcc.dg/gomp/target-simd-clone-4.c: Ditto.
	* gcc.dg/gomp/target-simd-clone-5.c: Ditto.
	* gcc.dg/gomp/target-simd-clone-6.c: Ditto.
	* gcc.dg/gomp/target-simd-clone-7.c: Ditto.
	* gcc.dg/gomp/target-simd-clone-8.c: Ditto.
	* gcc.dg/gomp/workshare-reduction-55.c: Ditto.
	* gcc.dg/gomp/workshare-reduction-56.c: Ditto.
	* gcc.dg/gomp/workshare-reduction-57.c: Ditto.
	* gcc.dg/gomp/workshare-reduction-58.c: Ditto.
	* c-c++-common/gomp/52-deps.c: New test.
	* g++.dg/gomp/map-csm-dep.C: New test.
	* gcc.dg/gomp/map-csm-dep.c: New test.
2025-12-11 07:47:44 -08:00

65 lines
1.2 KiB
C

// { dg-additional-options "-Wno-deprecated-openmp" }
struct S { int s, t; };
int a = 1, b = 1;
double c[27];
struct S d = { 8888, 8888 };
#pragma omp declare target link (a) to (b) link (c, d)
int
foo (void)
{
return a++ + b++;
}
int
bar (int n)
{
int *p1 = &a;
int *p2 = &b;
c[n] += 2.0;
d.s -= 2;
d.t -= 2;
return *p1 + *p2 + d.s + d.t;
}
#pragma omp declare target (foo, bar)
int
main ()
{
a = b = 2;
d.s = 17;
d.t = 18;
int res, n = 10;
#pragma omp target map (to: a, b, c, d) map (from: res)
{
res = foo () + foo ();
c[n] = 3.0;
res += bar (n);
}
int shared_mem = 0;
#pragma omp target map (alloc: shared_mem)
shared_mem = 1;
if ((shared_mem && res != (2 + 2) + (3 + 3) + (4 + 4 + 15 + 16))
|| (!shared_mem && res != (2 + 1) + (3 + 2) + (4 + 3 + 15 + 16)))
__builtin_abort ();
#pragma omp target enter data map (to: c)
#pragma omp target update from (c)
res = (int) (c[n] + 0.5);
if ((shared_mem && res != 5) || (!shared_mem && res != 0))
__builtin_abort ();
#pragma omp target map (to: a, b) map (from: res)
res = foo ();
if ((shared_mem && res != 4 + 4) || (!shared_mem && res != 2 + 3))
__builtin_abort ();
return 0;
}