2657 Commits

Author SHA1 Message Date
Thomas Schwinge
b4eb45a15d Add 'libgomp.c++/target-std__[...]-concurrent-usm.C' test cases for C++ 'std::unordered_map', 'std::unordered_multimap', 'std::unordered_multiset', 'std::unordered_set'
libgomp/
	* testsuite/libgomp.c++/target-std__unordered_map-concurrent-usm.C:
	New.
	* testsuite/libgomp.c++/target-std__unordered_multimap-concurrent-usm.C:
	Likewise.
	* testsuite/libgomp.c++/target-std__unordered_multiset-concurrent-usm.C:
	Likewise.
	* testsuite/libgomp.c++/target-std__unordered_set-concurrent-usm.C:
	Likewise.
	* testsuite/libgomp.c++/target-std__unordered_map-concurrent.C:
	Adjust.
	* testsuite/libgomp.c++/target-std__unordered_multimap-concurrent.C:
	Likewise.
	* testsuite/libgomp.c++/target-std__unordered_multiset-concurrent.C:
	Likewise.
	* testsuite/libgomp.c++/target-std__unordered_set-concurrent.C:
	Likewise.
2026-01-14 16:00:56 +01:00
Thomas Schwinge
4b60a4da49 Add 'libgomp.c++/target-std__[...]-concurrent-usm.C' test cases for C++ 'std::flat_map', 'std::flat_multimap', 'std::flat_multiset', 'std::flat_set'
libgomp/
	* testsuite/libgomp.c++/target-std__flat_map-concurrent-usm.C:
	New.
	* testsuite/libgomp.c++/target-std__flat_multimap-concurrent-usm.C:
	Likewise.
	* testsuite/libgomp.c++/target-std__flat_multiset-concurrent-usm.C:
	Likewise.
	* testsuite/libgomp.c++/target-std__flat_set-concurrent-usm.C:
	Likewise.
	* testsuite/libgomp.c++/target-std__flat_map-concurrent.C: Adjust.
	* testsuite/libgomp.c++/target-std__flat_multimap-concurrent.C:
	Likewise.
	* testsuite/libgomp.c++/target-std__flat_multiset-concurrent.C:
	Likewise.
	* testsuite/libgomp.c++/target-std__flat_set-concurrent.C:
	Likewise.
2026-01-14 16:00:56 +01:00
Thomas Schwinge
e9e76f7607 Fix up 'libgomp.c++/target-std__[...]-concurrent-usm.C' dynamic memory allocation
OpenMP/USM implies memory accessible from host as well as device, but doesn't
imply that allocation vs. deallocation may be done in the opposite context.
For most of the test cases, (by construction) we're not allocating memory
during device execution, so have nothing to clean up.  (..., but still document
these semantics.)  But for a few, we have to clean up:
'libgomp.c++/target-std__map-concurrent-usm.C',
'libgomp.c++/target-std__multimap-concurrent-usm.C',
'libgomp.c++/target-std__multiset-concurrent-usm.C',
'libgomp.c++/target-std__set-concurrent-usm.C'.

For 'libgomp.c++/target-std__multimap-concurrent-usm.C' (only), this issue
already got addressed in commit 90f2ab4b6e
"libgomp.c++/target-std__multimap-concurrent.C: Fix USM memory freeing".
However, instead of invoking the 'clear' function (which doesn't generally
guarantee to release dynamically allocated memory; for example, see PR123582
"C++ unordered associative container: dynamic memory management"), we properly
restore the respective object into pristine state.

	libgomp/
	* testsuite/libgomp.c++/target-std__array-concurrent-usm.C:
	'#define OMP_USM'.
	* testsuite/libgomp.c++/target-std__forward_list-concurrent-usm.C:
	Likewise.
	* testsuite/libgomp.c++/target-std__list-concurrent-usm.C:
	Likewise.
	* testsuite/libgomp.c++/target-std__span-concurrent-usm.C:
	Likewise.
	* testsuite/libgomp.c++/target-std__map-concurrent-usm.C:
	Likewise.
	* testsuite/libgomp.c++/target-std__multimap-concurrent-usm.C:
	Likewise.
	* testsuite/libgomp.c++/target-std__multiset-concurrent-usm.C:
	Likewise.
	* testsuite/libgomp.c++/target-std__set-concurrent-usm.C:
	Likewise.
	* testsuite/libgomp.c++/target-std__valarray-concurrent-usm.C:
	Likewise.
	* testsuite/libgomp.c++/target-std__vector-concurrent-usm.C:
	Likewise.
	* testsuite/libgomp.c++/target-std__bitset-concurrent-usm.C:
	Likewise.
	* testsuite/libgomp.c++/target-std__deque-concurrent-usm.C:
	Likewise.
	* testsuite/libgomp.c++/target-std__array-concurrent.C: Comment.
	* testsuite/libgomp.c++/target-std__bitset-concurrent.C: Likewise.
	* testsuite/libgomp.c++/target-std__deque-concurrent.C: Likewise.
	* testsuite/libgomp.c++/target-std__forward_list-concurrent.C:
	Likewise.
	* testsuite/libgomp.c++/target-std__list-concurrent.C: Likewise.
	* testsuite/libgomp.c++/target-std__span-concurrent.C: Likewise.
	* testsuite/libgomp.c++/target-std__valarray-concurrent.C:
	Likewise.
	* testsuite/libgomp.c++/target-std__vector-concurrent.C: Likewise.
	* testsuite/libgomp.c++/target-std__map-concurrent.C [OMP_USM]:
	Fix up dynamic memory allocation.
	* testsuite/libgomp.c++/target-std__multimap-concurrent.C
	[OMP_USM]: Likewise.
	* testsuite/libgomp.c++/target-std__multiset-concurrent.C
	[OMP_USM]: Likewise.
	* testsuite/libgomp.c++/target-std__set-concurrent.C [OMP_USM]:
	Likewise.
2026-01-14 16:00:56 +01:00
Thomas Schwinge
3dc9eedd95 libgomp: Add a few more OpenMP/USM test cases
... where there are clear differences in behavior for OpenMP/USM run-time
configurations.

We shall further clarify all the intended semantics, once the implementation
begins to differentiate OpenMP 'requires unified_shared_memory' vs.
'requires self_maps'.

	libgomp/
	* testsuite/libgomp.c-c++-common/map-arrayofstruct-2-usm.c: New.
	* testsuite/libgomp.c-c++-common/map-arrayofstruct-3-usm.c:
	Likewise.
	* testsuite/libgomp.c-c++-common/struct-elem-5-usm.c: Likewise.
	* testsuite/libgomp.c-c++-common/target-present-1-usm.c: Likewise.
	* testsuite/libgomp.c-c++-common/target-present-2-usm.c: Likewise.
	* testsuite/libgomp.c-c++-common/target-present-3-usm.c: Likewise.
	* testsuite/libgomp.fortran/map-subarray-5-usm.f90: Likewise.
	* testsuite/libgomp.fortran/map-subarray-6-usm.f90: Likewise.
	* testsuite/libgomp.fortran/map-subarray-7-usm.f90: Likewise.
	* testsuite/libgomp.fortran/target-allocatable-1-1-usm.f90:
	Likewise.
	* testsuite/libgomp.fortran/target-allocatable-1-2-usm.f90:
	Likewise.
	* testsuite/libgomp.fortran/target-enter-data-2-usm.F90: Likewise.
	* testsuite/libgomp.fortran/target-present-1-usm.f90: Likewise.
	* testsuite/libgomp.fortran/target-present-2-usm.f90: Likewise.
	* testsuite/libgomp.fortran/target-present-3-usm.f90: Likewise.
	* testsuite/libgomp.fortran/target-allocatable-1-1.f90: Adjust.
	* testsuite/libgomp.fortran/target-allocatable-1-2.f90: Likewise.
	* testsuite/libgomp.fortran/target-present-1.f90: Likewise.
	* testsuite/libgomp.fortran/target-present-2.f90: Likewise.
	* testsuite/libgomp.fortran/target-present-3.f90: Likewise.
2026-01-14 16:00:56 +01:00
GCC Administrator
460edeb8be Daily bump. 2026-01-14 00:16:30 +00:00
Thomas Schwinge
105fddf356 amdgcn: Adjust failure mode for gfx908 USM: 'libgomp.fortran/map-alloc-comp-9-usm.f90'
The change/rationale that commit 1cf9fda493
"amdgcn: Adjust failure mode for gfx908 USM" applied to a number of test cases
likewise applies to 'libgomp.fortran/map-alloc-comp-9-usm.f90'.

	libgomp/
	* testsuite/libgomp.fortran/map-alloc-comp-9-usm.f90: Require
	working Unified Shared Memory to run the test.
2026-01-13 11:10:03 +01:00
Thomas Schwinge
954f804b73 openmp: Bump Version from 4.5 to 5.2 (2/4): Some more '-Wno-deprecated-openmp'
These changes should've been included in
commit 382edf047e
"openmp: Bump Version from 4.5 to 5.2 (2/4)", to avoid some more instances of:

    warning: use of 'omp declare target' as a synonym for 'omp begin declare target' has been deprecated since OpenMP 5.2 [-Wdeprecated-openmp]

    warning: 'to' clause with 'declare target' deprecated since OpenMP 5.2, use 'enter' [-Wdeprecated-openmp]

    Warning: Non-C_PTR type argument at (1) is deprecated, use HAS_DEVICE_ADDR [-Wdeprecated-openmp]

    Warning: 'to' clause with 'declare target' at (1) deprecated since OpenMP 5.2, use 'enter' [-Wdeprecated-openmp]

	libgomp/
	* testsuite/libgomp.c++/examples-4/declare_target-2.C: Add
	'-Wno-deprecated-openmp'.
	* testsuite/libgomp.c/declare-variant-3-sm30.c: Likewise.
	* testsuite/libgomp.c/declare-variant-3-sm35.c: Likewise.
	* testsuite/libgomp.c/declare-variant-3-sm37.c: Likewise.
	* testsuite/libgomp.c/declare-variant-3-sm52.c: Likewise.
	* testsuite/libgomp.c/declare-variant-3-sm53.c: Likewise.
	* testsuite/libgomp.c/declare-variant-3-sm61.c: Likewise.
	* testsuite/libgomp.c/declare-variant-3-sm70.c: Likewise.
	* testsuite/libgomp.c/declare-variant-3-sm75.c: Likewise.
	* testsuite/libgomp.c/declare-variant-3-sm80.c: Likewise.
	* testsuite/libgomp.c/declare-variant-3-sm89.c: Likewise.
	* testsuite/libgomp.c/declare-variant-4-gfx10-3-generic.c:
	Likewise.
	* testsuite/libgomp.c/declare-variant-4-gfx1030.c: Likewise.
	* testsuite/libgomp.c/declare-variant-4-gfx1031.c: Likewise.
	* testsuite/libgomp.c/declare-variant-4-gfx1032.c: Likewise.
	* testsuite/libgomp.c/declare-variant-4-gfx1033.c: Likewise.
	* testsuite/libgomp.c/declare-variant-4-gfx1034.c: Likewise.
	* testsuite/libgomp.c/declare-variant-4-gfx1035.c: Likewise.
	* testsuite/libgomp.c/declare-variant-4-gfx1036.c: Likewise.
	* testsuite/libgomp.c/declare-variant-4-gfx11-generic.c: Likewise.
	* testsuite/libgomp.c/declare-variant-4-gfx1100.c: Likewise.
	* testsuite/libgomp.c/declare-variant-4-gfx1101.c: Likewise.
	* testsuite/libgomp.c/declare-variant-4-gfx1102.c: Likewise.
	* testsuite/libgomp.c/declare-variant-4-gfx1103.c: Likewise.
	* testsuite/libgomp.c/declare-variant-4-gfx1150.c: Likewise.
	* testsuite/libgomp.c/declare-variant-4-gfx1151.c: Likewise.
	* testsuite/libgomp.c/declare-variant-4-gfx1152.c: Likewise.
	* testsuite/libgomp.c/declare-variant-4-gfx1153.c: Likewise.
	* testsuite/libgomp.c/declare-variant-4-gfx9-4-generic.c:
	Likewise.
	* testsuite/libgomp.c/declare-variant-4-gfx9-generic.c: Likewise.
	* testsuite/libgomp.c/declare-variant-4-gfx900.c: Likewise.
	* testsuite/libgomp.c/declare-variant-4-gfx902.c: Likewise.
	* testsuite/libgomp.c/declare-variant-4-gfx904.c: Likewise.
	* testsuite/libgomp.c/declare-variant-4-gfx906.c: Likewise.
	* testsuite/libgomp.c/declare-variant-4-gfx908.c: Likewise.
	* testsuite/libgomp.c/declare-variant-4-gfx909.c: Likewise.
	* testsuite/libgomp.c/declare-variant-4-gfx90a.c: Likewise.
	* testsuite/libgomp.c/declare-variant-4-gfx90c.c: Likewise.
	* testsuite/libgomp.c/declare-variant-4-gfx942.c: Likewise.
	* testsuite/libgomp.c/declare-variant-4-gfx950.c: Likewise.
	* testsuite/libgomp.c/examples-4/async_target-2.c: Likewise.
	* testsuite/libgomp.c/interop-hsa.c: Likewise.
	* testsuite/libgomp.c/target-20.c: Likewise.
	* testsuite/libgomp.c/target-simd-clone-1.c: Likewise.
	* testsuite/libgomp.c/target-simd-clone-2.c: Likewise.
	* testsuite/libgomp.c/target-simd-clone-3.c: Likewise.
	* testsuite/libgomp.fortran/alloc-managed-1.f90: Likewise.
	* testsuite/libgomp.fortran/target9.f90: Likewise.
2026-01-13 11:08:34 +01:00
Thomas Schwinge
ba21851b8d openmp: Bump Version from 4.5 to 5.2 (2/4): 'libgomp.oacc-c-c++-common/vred2d-128.c' [PR123098]
'libgomp.oacc-c-c++-common/vred2d-128.c' had gotten '-Wno-deprecated-openmp'
applied as part of commit 382edf047e
"openmp: Bump Version from 4.5 to 5.2 (2/4)", which conceptually doesn't make
sense, as 'libgomp.oacc-c-c++-common/vred2d-128.c' isn't an OpenMP test case.
In commit 9c119b0fdd
"openmp: Limit - reduction -Wdeprecated-openmp diagnostics to OpenMP, testsuite fixes [PR123098]",
the erroneous diagnostic got disabled, so we don't need
'-Wno-deprecated-openmp' anymore.

	PR testsuite/123098
	libgomp/
	* testsuite/libgomp.oacc-c-c++-common/vred2d-128.c: Remove
	'-Wno-deprecated-openmp'.
2026-01-13 11:07:21 +01:00
GCC Administrator
7c3584be8c Daily bump. 2026-01-13 00:16:32 +00:00
Rainer Orth
c885d2a055 libgomp: Skip libgomp.c++/target-cdtor-2.C on Solaris [PR81337]
The libgomp.c++/target-cdtor-2.C test FAILs on Solaris:

FAIL: libgomp.c++/target-cdtor-2.C output pattern test

Compared to the Linux output

~S, 5, 1
[...]
finiDH1, 1

the Solaris output has a different order:

finiDH1, 1
[...]
~S, 5, 1

This is another instance of the long-standing PR c++/81337.  As detailed
there, the relative order of ~S::S() and __attribute__((destructor()))
functions isn't guaranteed.  Since xfail'ing the dg-output parts isn't
practical, this patch skips the whole test on Solaris.

Tested on i386-pc-solaris2.11 and x86_64-pc-linux-gnu.

2025-12-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	libgomp:
	PR c++/81337
	* testsuite/libgomp.c++/target-cdtor-2.C: Skip on Solaris.
	Fix comments.
2026-01-12 10:36:19 +01:00
GCC Administrator
db56246e39 Daily bump. 2026-01-07 00:16:25 +00:00
supers1ngular
cdb15b3900 openmp: Improve Fortran Diagnostics for Linear Clause
This patch improves diagnostics for the linear clause,
providing a more accurate and intuitive recommendation
for remediation if the deprecated syntax is used.
Additionally updates the relevant test to reflect the
changed verbiage of the warning.

gcc/fortran/ChangeLog:

	* openmp.cc (gfc_match_omp_clauses): New diagnostic logic.

libgomp/ChangeLog:

	* testsuite/libgomp.fortran/pr84418-1.f90: Fix verbiage of
	dg-warning to reflect updated warning.
2026-01-05 17:09:02 -08:00
Jakub Jelinek
97b3d733e3 Update copyright years. 2026-01-02 10:47:06 +01:00
Jakub Jelinek
254a858ae7 Update copyright years. 2026-01-02 09:56:11 +01:00
GCC Administrator
672b580d85 Daily bump. 2026-01-02 00:16:23 +00:00
Jakub Jelinek
c715060dd6 Update Copyright year in ChangeLog files
2025 -> 2026
2026-01-01 18:58:28 +01:00
Jakub Jelinek
2af2da18cb Update copyright dates.
Manual part of copyright year updates.

2026-01-01  Jakub Jelinek  <jakub@redhat.com>

gcc/
	* gcc.cc (process_command): Update copyright notice dates.
	* gcov-dump.cc (print_version): Ditto.
	* gcov.cc (print_version): Ditto.
	* gcov-tool.cc (print_version): Ditto.
	* gengtype.cc (create_file): Ditto.
	* doc/cpp.texi: Bump @copying's copyright year.
	* doc/cppinternals.texi: Ditto.
	* doc/gcc.texi: Ditto.
	* doc/gccint.texi: Ditto.
	* doc/gcov.texi: Ditto.
	* doc/install.texi: Ditto.
	* doc/invoke.texi: Ditto.
gcc/ada/
	* gnat_ugn.texi: Bump @copying's copyright year.
	* gnat_rm.texi: Likewise.
gcc/d/
	* gdc.texi: Bump @copyrights-d year.
gcc/fortran/
	* gfortranspec.cc (lang_specific_driver): Update copyright notice
	dates.
	* gfc-internals.texi: Bump @copying's copyright year.
	* gfortran.texi: Ditto.
	* intrinsic.texi: Ditto.
	* invoke.texi: Ditto.
gcc/go/
	* gccgo.texi: Bump @copyrights-go year.
libgomp/
	* libgomp.texi: Bump @copying's copyright year.
libitm/
	* libitm.texi: Bump @copying's copyright year.
libquadmath/
	* libquadmath.texi: Bump @copying's copyright year.
2026-01-01 18:40:58 +01:00
GCC Administrator
019d7b6672 Daily bump. 2025-12-30 00:16:33 +00:00
Rainer Orth
1bcba38291 build: Cherry-pick libtool.m4 support for GNU ld *_sol2 emulations
GNU ld gained separate Solaris-specific linker emulations (*_sol2) long
ago.  Since their introduction, GCC has preferred them over their
non-*_sol2 counterparts but supported both forms.  This has changed for
GCC 16: since all supported versions of GNU ld do support the *_sol2
emulations, GCC now uses them unconditionally.

libtool has also been updated to handle this since libtool 2.4.2 back in
2011.  However, that change has only partially been backported to the
heavily patched libtool.m4 in the GCC tree: the sparcv9 part is there,
but the amd64 part is missing for some reason.  This causes problems
with some recent binutils changes.

Therefore this patch cherry-picks the libtool patch to bring
Solaris/x86_64 in sync with Solaris/sparcv9 and upstream libtool.

Bootstrapped without regressions on {amd64,i386}-pc-solaris2.11 and
{sparcv9,sparc}-sun-solaris2.11.

2025-09-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* libtool.m4: Cherry-pick libtool commit
	9196966580f6853a31187a7a3c7e7ff36ef08982.

	gcc:
	* configure: Regenerate.

	libatomic:
	* configure: Regenerate.

	libbacktrace:
	* configure: Regenerate.

	libcc1:
	* configure: Regenerate.

	libffi:
	* configure: Regenerate.

	libga68:
	* configure: Regenerate.

	libgcobol:
	* configure: Regenerate.

	libgfortran:
	* configure: Regenerate.

	libgm2:
	* configure: Regenerate.

	libgomp:
	* configure: Regenerate.

	libgrust:
	* configure: Regenerate.

	libitm:
	* configure: Regenerate.

	libobjc:
	* configure: Regenerate.

	libphobos:
	* configure: Regenerate.

	libquadmath:
	* configure: Regenerate.

	libsanitizer:
	* configure: Regenerate.

	libssp:
	* configure: Regenerate.

	libstdc++-v3:
	* configure: Regenerate.

	libvtv:
	* configure: Regenerate.

	lto-plugin:
	* configure: Regenerate.

	zlib:
	* configure: Regenerate.
2025-12-29 12:09:35 +01:00
GCC Administrator
c3824ad07a Daily bump. 2025-12-25 00:16:27 +00:00
Thomas Schwinge
12b329d00b libgomp: Robustify effective-target 'omp_usm' check
This was added in commit 1cf9fda493
"amdgcn: Adjust failure mode for gfx908 USM".

In a GCC configuration with both AMD and NVIDIA GPU code offloading supported,
and the selected AMD GPU code generation not supporting USM, but an USM-capable
NVIDIA GPU available, I see all test cases that require effective-target
'omp_usm' turn UNSUPPORTED, because:

    Executing on host: gcc  usm_available_2778376.c [...]
    [...]
    In function 'main._omp_fn.0':
    lto1: warning: Unified Shared Memory is required, but XNACK is disabled
    lto1: note: Try -foffload-options=-mxnack=any
    gcn mkoffload: warning: conflicting settings; XNACK is forced off but Unified Shared Memory is required
    UNSUPPORTED: [...]

That warning is, however, not relevant in the scenario described above: we're
not going to exercise AMD GPU code offloading at run time.

With the effective-target 'omp_usm' check robustified like this, the affected
test cases are then no longer UNSUPPORTED, but of course, there's then the
corollary issue that compilation of the test case itself now emits the very
same warning, which results in the "test for excess errors" FAILing, despite
the execution test PASSing, for example:

    FAIL: libgomp.c++/target-std__valarray-concurrent-usm.C (test for excess errors)
    PASS: libgomp.c++/target-std__valarray-concurrent-usm.C execution test

That's clearly not ideal either (but is representative of what real-world usage
would run into), but is certainly better than the whole test case turning
UNSUPPORTED.  To be continued, I guess...

	libgomp/
	* testsuite/lib/libgomp.exp (check_effective_target_omp_usm):
	Robustify.
2025-12-24 10:56:22 +01:00
GCC Administrator
3a27acf825 Daily bump. 2025-12-23 00:16:29 +00:00
Tobias Burnus
50e2c80545 libgomp.fortran/uses_allocators_1.f90: Fix dg-error for r16-6273
Missed to commit dg-error changes for the new diagnostic due to commit
r16-6273-g7044071f07d763   OpenMP: uses_allocators with ';'-separated list

libgomp/ChangeLog:

	* testsuite/libgomp.fortran/uses_allocators_1.f90: Update dg-error.
2025-12-22 10:57:11 +01:00
GCC Administrator
5fa0a8f7e1 Daily bump. 2025-12-20 00:16:42 +00:00
Tobias Burnus
7044071f07 OpenMP: uses_allocators with ';'-separated list
OpenMP 6.0 has the following wording for the uses_allocators clause:
"More than one clause-argument-specification may be specified";
this permits ';' lists. While that's pointless for predefined
allocators, for user-defined allocators it saves redundant
') uses_allocators(' by permitting:
  uses_allocators( traits(t1): alloc1 ; traits(t2): alloc2 )

Additionally, the order in the tree dump has been changed to
place the modifiers before the allocator variable, matching
the input syntax.

gcc/c/ChangeLog:

	* c-parser.cc (c_parser_omp_clause_uses_allocators): Accept
	multiple clause-argument-specifications separated by ';'.

gcc/cp/ChangeLog:

	* parser.cc (cp_parser_omp_clause_uses_allocators): Accept
	multiple clause-argument-specifications separated by ';'.

gcc/fortran/ChangeLog:

	* openmp.cc (gfc_match_omp_clause_uses_allocators): Accept
	multiple clause-argument-specifications separated by ';'.

gcc/ChangeLog:

	* tree-pretty-print.cc (dump_omp_clause): For uses_allocators,
	print modifier before allocator variable.

libgomp/ChangeLog:

	* testsuite/libgomp.fortran/uses_allocators-7.f90: Add ';' test.

gcc/testsuite/ChangeLog:

	* c-c++-common/gomp/uses_allocators-8.c: New test.
2025-12-19 12:07:58 +01:00
GCC Administrator
feba5b1dfd Daily bump. 2025-12-19 00:16:33 +00:00
Tobias Burnus
4d6a437261 OpenMP: Add no_openmp_constructs; improve Fortran clause parsing
Add the assumption clause 'no_openmp_constructs' (which as most assumption
clauses is ignored in the front end - for now).
For Fortran, improve free-form parsing of argument-free clauses
by avoiding substring matches.

gcc/c/ChangeLog:

	* c-parser.cc (c_parser_omp_assumption_clauses): Add
	no_openmp_constructs clause.

gcc/cp/ChangeLog:

	* parser.cc (cp_parser_omp_assumption_clauses): Add
	no_openmp_constructs clause.

gcc/fortran/ChangeLog:

	* dump-parse-tree.cc (show_omp_assumes): Handle
	no_openmp_constructs clause.
	* gfortran.h (struct gfc_omp_assumptions): Add
	no_openmp_constructs.
	* openmp.cc (gfc_match_dupl_check): For free-form
	Fortran, avoid substring matching.
	(gfc_match_omp_clauses): Match no_openmp_constructs clause.
	Remove no longer needed 'needs_space', match 'order' followed by
	parenthesis instead of 'order' with parenthesis; reorder 'order'
	and 'ordering' clauses for free-form Fortran.
	(gfc_match_omp_assumes): Handle no_openmp_constructs clause.

libgomp/ChangeLog:

	* libgomp.texi (OpenMP Implemenation Status): Mark
	no_openmp_constructs as implemented.

gcc/testsuite/ChangeLog:

	* gfortran.dg/goacc/update-if_present-2.f90: Update dg-error.
	* gfortran.dg/gomp/order-8.f90: Likewise.
	* gfortran.dg/gomp/order-9.f90: Likewise.
	* c-c++-common/gomp/assume-5.c: New test.
	* gfortran.dg/gomp/assume-6.f90: New test.
2025-12-18 22:55:40 +01:00
GCC Administrator
78eca0d5c8 Daily bump. 2025-12-18 00:16:33 +00:00
Rainer Orth
b95290e856 libgomp: Fix libgomp.c/affinity-1.c on non-Linux
The new libgomp.c/affinity-1.c test FAILs on Solaris and Darwin:

FAIL: libgomp.c/affinity-1.c (test for excess errors)

Excess errors:
libgomp.c/affinity-1.c:194:3: warning: 'omp_proc_bind_master' is deprecated [-Wdeprecated-declarations]
libgomp.c/affinity-1.c:267:3: warning: 'omp_set_nested' is deprecated [-Wdeprecated-declarations]
libgomp.c/affinity-1.c:272:5: warning: 'omp_proc_bind_master' is deprecated [-Wdeprecated-declarations]
libgomp.c/affinity-1.c:285:43: warning: 'master' affinity deprecated since OpenMP 5.1, use 'primary' [-Wdeprecated-openmp]

and several more.  This happens because the required -Wno-* options have
only been added for Linux.  This patch adds them unconditionally
instead.

Tested on i386-pc-solaris2.11, sparc-sun-solaris2.11,
x86_64-apple-darwin25.1.0, and x86_64-pc-linux-gnu.

2025-12-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	libgomp:
	* testsuite/libgomp.c/affinity-1.c: Always add warnings.
2025-12-17 15:39:20 +01:00
GCC Administrator
2f8283f79b Daily bump. 2025-12-16 00:16:36 +00:00
Jakub Jelinek
f4b80b0338 libgomp: Avoid -Waddress warning
The function has assert (htab_find) with a comment that that is to
avoid -Wunused-function warning.  The problem is that it triggers
a different warning,
../../../libgomp/plugin/build-target-indirect-htab.h:68:3: warning: the address of ‘htab_find’ will always evaluate as ‘true’
(or error depending on exact flags).

This uses (void) htab_find instead to avoid any diagnostics.

2025-12-15  Jakub Jelinek  <jakub@redhat.com>

	* plugin/build-target-indirect-htab.h (create_target_indirect_map):
	Use (void) htab_find instead of assert (htab_find) to silence
	-Werror=unused-function because the latter triggers -Werror=address.
2025-12-15 19:08:06 +01:00
GCC Administrator
bcbb536551 Daily bump. 2025-12-13 00:16:34 +00:00
Tobias Burnus
350794cb07 Fix libgomp.fortran/dep-uses-allocators.f90
libgomp/ChangeLog:

	* testsuite/libgomp.fortran/dep-uses-allocators.f90: Properly
	escape '(..)' in dg-warning.
2025-12-12 22:50:39 +01:00
Tobias Burnus
d02eebea7e OpenMP/Fortran: uses_allocators - suggest 5.2 format in the warning
Actually mention how the new 5.2+ syntax looks like when outputting
the deprecation warning for 'uses_allocators'.

gcc/fortran/ChangeLog:

	* openmp.cc (gfc_match_omp_clause_uses_allocators): Mention
	new syntax in deprecation warning.

libgomp/ChangeLog:

	* testsuite/libgomp.fortran/dep-uses-allocators.f90: Update
	dg-warning.
2025-12-12 22:44:15 +01:00
Tobias Burnus
7146cfc333 OpenMP: Small fortran/intrinsic.texi + libgomp.texi update
Some followup to the OpenMP 5.2 version bump - and marking some features
as partially implemented: uses_allocators (only predefined allocators),
'declare mapper' (only C/C++, some but few loose ends), map iterator
(C/C++ only - and several loose ends, most fixed by approved patches
that still have to land after minor modifications).

gcc/fortran/ChangeLog:

	* intrinsic.texi (OpenMP Modules OMP_LIB and OMP_LIB_KINDS): Link
	also to OpenMP 6.0, move 'partially supported' to the end of the
	list of OpenMP versions. Mark 'omp_lock_hint_...' and
	'omp_atv_sequential' constants as deprecated.

libgomp/ChangeLog:

	* libgomp.texi (OpenMP Implementation Status): Add missing '@tab';
	claim initial partial support for 'declare mapper',
	'uses_allocators', and map iterators.
2025-12-12 22:06:42 +01:00
Chung-Lin Tang
0a01b42b22 OpenMP: Add uses_allocators parser support to C/C++
This is the parser part for C/C++, including early middle end bits,
but then stops with a 'sorry, unimplemented'. It also adds support
for omp_null_alloctor (6.0 clarificiation, is to be ignored). As
predefined allocators do not require any special handling in GCC,
those are ignored. Therefore, this patch fully supports
uses_allocators that only use predefined allocators - only printing
a sorry for those that use the (implicit) traits/memspace modifer.

(The parsing support for Fortran was added before; this patch just
adds omp_null_allocator support to Fortran. The sorry message for
Fortran is also still in the FE and not in gimplify.cc, but that
only make a difference for the original dump.)

Except for some minor fixes, this is the same patch as
https://gcc.gnu.org/pipermail/gcc-patches/2025-November/700345.html
with the middle-end + libgomp handling excluded. That patch in turn
is based on previous patches, the latest previous one was
https://gcc.gnu.org/pipermail/gcc-patches/2023-November/637415.html
and, in particular, the C/C++ parser style was updated following the
review comments. Also, more C++ template-handling fixes have been
applied.

gcc/c-family/ChangeLog:

	* c-omp.cc (c_omp_split_clauses): Hande uses_allocators.
	* c-pragma.h (enum pragma_omp_clause): Add
	PRAGMA_OMP_CLAUSE_USES_ALLOCATORS.

gcc/c/ChangeLog:

	* c-parser.cc (c_parser_omp_clause_uses_allocators): New function.
	(c_parser_omp_clause_name, c_parser_omp_all_clauses,
	OMP_TARGET_CLAUSE_MASK): Handle uses_allocators.
	* c-typeck.cc (c_finish_omp_clauses): Likewise.

gcc/cp/ChangeLog:

	* parser.cc (cp_parser_omp_clause_uses_allocators): New function.
	(cp_parser_omp_clause_name, cp_parser_omp_all_clauses,
	OMP_TARGET_CLAUSE_MASK): Handle uses_allocators.
	* semantics.cc (finish_omp_clauses): Likewise.
	* pt.cc (tsubst_omp_clauses): Likewise.

gcc/fortran/ChangeLog:

	* openmp.cc (resolve_omp_clauses): Handle omp_null_allocator.
	* trans-openmp.cc (gfc_trans_omp_clauses): Mention it in a comment.

gcc/ChangeLog:

	* gimplify.cc (gimplify_scan_omp_clauses): Handle uses_allocators
	by printing a 'sorry, unimplemented' and removing it.
	* tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_USES_ALLOCATORS.
	* tree.cc (omp_clause_num_ops, omp_clause_code_name): Likewise.
	* tree-pretty-print.cc (dump_omp_clause): Handle it.
	* tree.h (OMP_CLAUSE_USES_ALLOCATORS_ALLOCATOR,
	OMP_CLAUSE_USES_ALLOCATORS_MEMSPACE,
	OMP_CLAUSE_USES_ALLOCATORS_TRAITS): New.

libgomp/ChangeLog:

	* testsuite/libgomp.fortran/uses_allocators_1.f90: Add check for
	omp_null_allocator.
	* testsuite/libgomp.fortran/uses_allocators-7.f90: New test.

gcc/testsuite/ChangeLog:

	* c-c++-common/gomp/uses_allocators-1.c: New test.
	* c-c++-common/gomp/uses_allocators-2.c: New test.
	* c-c++-common/gomp/uses_allocators-4.c: New test.
	* c-c++-common/gomp/uses_allocators-7.c: New test.
	* g++.dg/gomp/deprecate-2.C: New test.
	* g++.dg/gomp/uses_allocators-1.C: New test.
	* gcc.dg/gomp/deprecate-2.c: New test.

Co-authored-by: Tobias Burnus <tburnus@baylibre.com>
Co-authored-by: Andrew Stubbs <ams@baylibre.com>
2025-12-12 21:20:33 +01:00
GCC Administrator
540b7b359d Daily bump. 2025-12-12 00:16:34 +00:00
Jakub Jelinek
62c126db6b libstdc++: Implement C++26 P3378R2 - constexpr exception types
The following patch attempts to implement the C++26 P3378R2 - constexpr
exception types paper.

This is quite complicated, because most of these classes which should
be constexpr-ized use solely or mostly out of line definitions in
libstdc++, both for historical, code size and dual ABI reasons, so that
one can throw these as exceptions between TUs with old vs. new (or vice
versa) ABIs.
For this reason, logic_error/runtime_error and classes derived from it
have the old ABI std::string object inside of them and the exported
APIs from libstdc++.so.6 ensure the right thing.

Now, because new invoked during constant evaluation needs to be deleted
during the same constant evaluation and can't leak into the constant
expressions, I think we don't have to use COW strings under the hood
(which aren't constexpr I guess because of reference counting/COW) and
we can use something else, the patch uses heap allocated std::string
object (where __cow_constexpr_string class has just a pointer to that).
As I think we still want to hide the ugly details if !consteval in the
library, the patch exports 8 __cow_string class symbols (6 existing which
were previously just not exported and 2 new ones) and if !consteval
calls those through extern "C" _Zmangled_name symbols.  The functions
are always_inline.

And then logic_error etc. have for C++26 (precisely for
__cpp_lib_constexpr_exceptions >= 202502L) constexpr definitions of
cdtors/methods.  This results in slightly larger code (a few insns at most)
at runtime for C++26, e.g. instead of calling say some logic error
cdtor/method with 2 arguments it calls some __cow_string one with 2
arguments but + 8 bytes pointer additions on both.

The patch also removes the __throw_format_error forward declaration
which apparently wasn't needed for anything as all __throw_format_error
users were either in <format> or included <format> before the uses,
reverts the
https://gcc.gnu.org/pipermail/libstdc++/2025-July/062598.html
patch and makes sure __throw_* functions (only those for exception types
which the P3378R2 or P3068R5 papers made constexpr usable and there are
actually constexpr/consteval uses of those) are constexpr for C++26
constexpr exceptions.

The patch does that by splitting the bits/functexcept.h header:
1) bits/functexcept.h stays for the __throw_* functions which are (at
least for now) never constexpr (the <ios>, <system_error>, <future>
and <functional> std::exception derived classes) or are never used
or never used in constexpr/consteval contexts (<exception>, <typeinfo>
std::exception derived classes and std::range_error).
2) bits/new_{throw,except}.h for __throw_bad_alloc/__throw_bad_array_new_length
and std::bad_alloc/std::bad_array_new_length (where <new> includes
<bits/new_except.h> and <bits/new_throw.h> as well for the C++26 constexpr
exceptions case)
3) for the most complicated <stdexcept> stuff, one header
addition to bits/stdexcept.h one header for the __throw_logic_error etc.
forward declarations, one header for the __throw_logic_error etc.
definitions and one header without header guards which will
depending on __glibcxx_exc_in_string include one or the other because
<string> vs. <string_view> vs. <stdexcept> have heavy interdependencies

2025-12-11  Jakub Jelinek  <jakub@redhat.com>

	PR libstdc++/121114
libstdc++-v3/
	* include/bits/version.def: Implement C++26 P3378R2 - constexpr
	exception types.
	(constexpr_exceptions): Change value from 1 to 202502, remove
	no_stdname and TODO comments.
	* include/bits/version.h: Regenerate.
	* src/c++11/cow-stdexcept.cc (__cow_string(const char*)): New
	ctor.
	(__cow_string::c_str()): New method.
	* config/abi/pre/gnu.ver (GLIBCXX_3.4.35): Export 8 __cow_string
	symbols.
	* include/bits/new_except.h: New file.
	* include/bits/new_throw.h: New file.
	* include/bits/stdexcept_throw.h: New file.
	* include/bits/stdexcept_throwdef.h: New file.
	* include/bits/stdexcept_throwfwd.h: New file.
	* include/std/stdexcept: Include bits/stdexcept_except.h and move
	everything after <string> include except for std::range_error into
	include/bits/stdexcept_except.h.
	(std::range_error): If __cpp_lib_constexpr_exceptions >= 202502L
	make all cdtors and methods constexpr.
	* include/bits/stdexcept_except.h: New file.
	* include/std/optional (__glibcxx_want_constexpr_exceptions): Define
	before including bits/version.h.
	(bad_optional_access::what): Make constexpr for
	__cpp_lib_constexpr_exceptions >= 202502L.
	(__throw_bad_optional_access): Likewise.
	* include/std/expected (__glibcxx_want_constexpr_exceptions): Define
	before including bits/version.h.
	(bad_expected_access): Make cdtors and all methods constexpr for
	__cpp_lib_constexpr_exceptions >= 202502L.
	* include/std/format (__glibcxx_want_constexpr_exceptions): Define
	before including bits/version.h.
	(_GLIBCXX_CONSTEXPR_FORMAT_ERROR): Define and undef later.
	(format_error): Use _GLIBCXX_CONSTEXPR_FORMAT_ERROR on ctors.
	* include/std/variant (__glibcxx_want_constexpr_exceptions): Define
	before including bits/version.h.
	(_GLIBCXX_CONSTEXPR_BAD_VARIANT_ACCESS): Define and undef later.
	(bad_variant_access): Use it on ctors and what() method.
	(__throw_bad_variant_access): Use it here too.
	* testsuite/18_support/exception/version.cc: Adjust expected
	__cpp_lib_constexpr_exceptions value.
	* testsuite/19_diagnostics/runtime_error/constexpr.cc: New test.
	* testsuite/19_diagnostics/headers/stdexcept/version.cc: New test.
	* testsuite/19_diagnostics/logic_error/constexpr.cc: New test.
	* testsuite/20_util/expected/observers.cc (test_value_throw): Change
	return type to bool from void, return true at the end, add test
	to dereference what() first character.  Make it constexpr for
	__cpp_lib_constexpr_exceptions >= 202502L and add static_assert.
	* testsuite/20_util/expected/version.cc: Add tests for
	__cpp_lib_constexpr_exceptions value.
	* testsuite/20_util/variant/constexpr.cc: For
	__cpp_lib_constexpr_exceptions >= 202502L include <string>.
	(test_get): New function if __cpp_lib_constexpr_exceptions >= 202502L,
	assert calling it is true.
	* testsuite/20_util/variant/version.cc: Add tests for
	__cpp_lib_constexpr_exceptions value.
	* testsuite/20_util/optional/constexpr/observers/3.cc: Include
	testsuite_hooks.h.
	(eat, test01): New functions.  Assert test01() is true.
	* testsuite/20_util/optional/version.cc: Add tests for
	__cpp_lib_constexpr_exceptions value.
	* include/std/future: Add #include <bits/functexcept.h>.
	* include/std/shared_mutex: Include <bits/new_throw.h>.
	* include/std/flat_map: Include <bits/stdexcept_throw.h> instead of
	<bits/functexcept.h>.
	* include/std/syncstream: Remove <bits/functexcept.h> include.
	* include/std/flat_set: Likewise.
	* include/std/bitset: Include <bits/stdexcept_throw.h> instead of
	<bits/functexcept.h>.
	* include/std/string_view: Don't include <bits/functexcept.h>, include
	<bits/stdexcept_throw.h> early if __glibcxx_exc_in_string is not
	defined and include <bits/stdexcept_throw.h> at the end of
	the header again if __glibcxx_exc_in_string is 2 and C++26 constexpr
	exceptions are enabled.
	(__glibcxx_exc_in_string): Define if __glibcxx_exc_in_string wasn't
	defined before including <bits/stdexcept_throw.h>.
	* include/std/array: Include <bits/stdexcept_throw.h> instead of
	<bits/functexcept.h>.
	* include/std/inplace_vector: Likewise.
	* include/std/string: Include <bits/stdexcept_except.h> and
	<bits/stdexcept_throw.h> after bits/basic_string.tcc include if
	C++26 constexpr exceptions are enabled and include
	<bits/stdexcept_throw.h> instead of <bits/functexcept.h> early.
	(__glibcxx_exc_in_string): Define early to 1, undefine at the end.
	* include/std/deque: Include <bits/stdexcept_throw.h>.
	* include/bits/new_allocator.h: Include <bits/new_throw.h> instead
	of <bits/functexcept.h>.
	* include/bits/stl_algobase.h: Remove <bits/functexcept.h> include.
	* include/bits/stl_vector.h: Include <bits/stdexcept_throw.h> instead
	of <bits/functexcept.h>.
	* include/bits/memory_resource.h: Include <bits/new_throw.h> instead
	of <bits/functexcept.h>.
	* include/bits/functexcept.h: Guard everything after includes with
	#if _GLIBCXX_HOSTED.
	(__throw_bad_alloc, __throw_bad_array_new_length,  __throw_logic_error,
	__throw_domain_error, __throw_invalid_argument, __throw_length_error,
	__throw_out_of_range, __throw_out_of_range_fmt, __throw_runtime_error,
	__throw_overflow_error, __throw_underflow_error): Move declarations to
	other headers - <bits/new_throw.h> and <bits/stdexcept_throwfwd.h>.
	* include/bits/stl_map.h: Include <bits/stdexcept_throw.h> instead
	of <bits/functexcept.h>.
	* include/bits/hashtable_policy.h: Include <bits/stdexcept_throw.h>
	instead of <bits/functexcept.h>.
	* include/bits/formatfwd.h (std::__throw_format_error): Remove
	declaration.
	* include/bits/specfun.h: Include <bits/stdexcept_throw.h> instead of
	<bits/functexcept.h>.
	* include/bits/basic_ios.h: Include <bits/functexcept.h>.
	* include/bits/locale_classes.h: Likewise.
	* include/tr1/cmath: Include <bits/stdexcept_throw.h> instead of
	<bits/functexcept.h>.
	* include/tr1/memory: Remove <bits/functexcept.h> include.
	* include/tr1/array: Include <bits/stdexcept_throw.h>.
	* include/ext/vstring_util.h: Include <bits/stdexcept_throw.h> instead
	of <bits/functexcept.h>.
	* include/ext/bitmap_allocator.h: Include <bits/new_throw.h> instead
	of <bits/functexcept.h>.
	* include/ext/mt_allocator.h: Likewise.
	* include/ext/malloc_allocator.h: Likewise.
	* include/ext/debug_allocator.h: Include <bits/stdexcept_throw.h>
	instead of <bits/functexcept.h>.
	* include/ext/concurrence.h: Include <bits/exception_defines.h>
	instead of <bits/functexcept.h>.
	* include/ext/throw_allocator.h: Include <bits/new_throw.h> and
	<bits/stdexcept_throw.h> instead of <bits/functexcept.h>.
	* include/ext/string_conversions.h: Include <bits/stdexcept_throw.h>
	instead of <bits/functexcept.h>.
	* include/ext/pool_allocator.h: Include <bits/new_throw.h> instead
	of <bits/functexcept.h>.
	* include/ext/ropeimpl.h: Include <bits/stdexcept_throw.h> instead of
	<bits/functexcept.h>.
	* include/tr2/dynamic_bitset: Likewise.
	* include/experimental/optional: Include <bits/exception_defines.h>
	instead of <bits/functexcept.h>.
	* include/Makefile.am (bits_freestanding): Add
	${bits_srcdir}/{new,stdexcept}_{except,throw}.h
	and ${bits_srcdir}/stdexcept_throw{fwd,def}.h.
	* include/Makefile.in: Regenerate.
	* src/c++17/floating_from_chars.cc: Remove <bits/functexcept.h>
	include.
	* src/c++11/regex.cc: Likewise.
	* src/c++11/functexcept.cc: Likewise.
	* src/c++11/snprintf_lite.cc: Include <bits/stdexcept_throw.h> instead
	of <bits/functexcept.h>.
	* src/c++11/thread.cc: Include <bits/functexcept.h>.
	* testsuite/util/testsuite_hooks.h: Include <bits/stdexcept_throw.h>
	instead of <bits/functexcept.h>.
	* testsuite/util/io/verified_cmd_line_input.cc: Include
	<bits/exception_defines.h> instead of <bits/functexcept.h>.
	* testsuite/20_util/allocator/105975.cc: Expect different diagnostics
	for C++26.
	* testsuite/23_containers/inplace_vector/access/capacity.cc: Remove
	#error, guard if consteval { return; } with
	#ifndef __cpp_lib_constexpr_exceptions.
	* testsuite/23_containers/inplace_vector/access/elem.cc: Likewise.
	* testsuite/23_containers/inplace_vector/cons/1.cc: Likewise.
	* testsuite/23_containers/inplace_vector/cons/from_range.cc: Likewise.
	* testsuite/23_containers/inplace_vector/modifiers/single_insert.cc:
	Likewise.
	* testsuite/23_containers/inplace_vector/modifiers/assign.cc:
	Likewise.
	* testsuite/23_containers/inplace_vector/modifiers/multi_insert.cc:
	Likewise.
	* libsupc++/new: Include <bits/new_except.h>.
	(std::bad_alloc, std::bad_array_new_length): Move defintion to
	<bits/new_except.h>.
libgomp/
	* omp.h.in: Include <bits/new_throw.h> instead of
	<bits/functexcept.h>.
gcc/testsuite/
	* g++.dg/tree-ssa/pr110819.C: Guard scan-tree-dump-not delete on
	c++23_down and add comment explaining why C++26 fails that.
	* g++.dg/tree-ssa/pr96945.C: Likewise.
	* g++.dg/tree-ssa/pr109442.C: Likewise.
	* g++.dg/tree-ssa/pr116868.C: Likewise.
	* g++.dg/tree-ssa/pr58483.C: Likewise.
2025-12-11 19:54:44 +01:00
supers1ngular
a9d57db38c openmp: Bump Version from 4.5 to 5.2 (4/4)
Updates the documentation to reflect the version bump.
Additionally updates implementation status and notes
deprecations where relevant.

gcc/ChangeLog:

	* doc/extend.texi: Bump version and clarify implementation
	status.

gcc/fortran/ChangeLog:

	* gfortran.texi: Bump version and clarify implementation status.
	* intrinsic.texi: Bump version and note deprecation of
	'omp_proc_bind_master'.

libgomp/ChangeLog:

	* libgomp.texi: Bump version. Update implementation status.
	Note deprecation of 'MASTER' affinity policy.
2025-12-11 08:25:28 -08:00
supers1ngular
52d7f5b103 openmp: Bump Version from 4.5 to 5.2 (3/4)
Implements the OpenMP 5.2 Fortran deprecations. Uses the warning
established in patch 1/4, -Wdeprecated-openmp, for said deprecations.
Similarly, we do not implement the relaxing of constraints for the
interop construct since it is not a deprecation. However, the
deprecation for 'uses_allocators' is implemented, since support
exists in Fortran mainline. Additionally implements the
Fortran-specific deprecation for executable allocate directives,
and adds new tests.

gcc/fortran/ChangeLog:

	* openmp.cc (gfc_match_omp_clause_reduction): Deprecate '-'
	operator for reductions.
	(gfc_match_omp_clause_uses_allocators): Deprecate
	allocator(traits) pattern for 'uses_allocators'.
	(gfc_match_omp_clauses): Deprecate 'sink' and 'source' for
	'depend' clause. Deprecate list items as arguments with 'linear'
	clause. Deprecate non-comma-separated modifiers for the map
	clause. Deprecate 'to' clause with declare target.
	(gfc_match_omp_declare_target): Whitespace.
	(match_omp_metadirective): Deprecate 'default' clause on
	metadirectives.
	(resolve_omp_clauses): Deprecate executable allocate directives.

libgomp/ChangeLog:

	* testsuite/libgomp.fortran/allocate-8a.f90: Suppress warnings.
	* testsuite/libgomp.fortran/allocators-1.f90: Ditto.
	* testsuite/libgomp.fortran/allocators-2.f90: Ditto.
	* testsuite/libgomp.fortran/allocators-4.f90: Ditto.
	* testsuite/libgomp.fortran/declare-target-1.f90: Ditto.
	* testsuite/libgomp.fortran/declare-target-2.f90: Ditto.
	* testsuite/libgomp.fortran/declare-target-indirect-1.f90: Ditto.
	* testsuite/libgomp.fortran/declare-target-indirect-2.f90: Ditto.
	* testsuite/libgomp.fortran/doacross1.f90: Ditto.
	* testsuite/libgomp.fortran/doacross2.f90: Ditto.
	* testsuite/libgomp.fortran/doacross3.f90: Ditto.
	* testsuite/libgomp.fortran/map-alloc-ptr-2.f90: Ditto.
	* testsuite/libgomp.fortran/pr84418-1.f90: Ditto.
	* testsuite/libgomp.fortran/pr84418-2.f90: Ditto.
	* testsuite/libgomp.fortran/reduction1.f90: Ditto.
	* testsuite/libgomp.fortran/udr11.f90: Ditto.
	* testsuite/libgomp.fortran/uses_allocators_1.f90: Ditto.
	* testsuite/libgomp.fortran/uses_allocators_2.f90: Ditto.
	* testsuite/libgomp.fortran/dep-uses-allocators.f90: New test.

gcc/testsuite/ChangeLog:

	* gfortran.dg/gomp/allocate-14.f90: Suppress warnings.
	* gfortran.dg/gomp/allocate-16.f90: Ditto.
	* gfortran.dg/gomp/allocate-5.f90: Ditto.
	* gfortran.dg/gomp/allocate-6.f90: Ditto.
	* gfortran.dg/gomp/allocate-7.f90: Ditto.
	* gfortran.dg/gomp/allocators-3.f90: Ditto.
	* gfortran.dg/gomp/declare-simd-2.f90: Ditto.
	* gfortran.dg/gomp/declare-simd-6.f90: Ditto.
	* gfortran.dg/gomp/declare-target-1.f90: Ditto.
	* gfortran.dg/gomp/declare-target-2.f90: Ditto.
	* gfortran.dg/gomp/declare-target-4.f90: Ditto.
	* gfortran.dg/gomp/declare-target-5.f90: Ditto.
	* gfortran.dg/gomp/declare-target-indirect-1.f90: Ditto.
	* gfortran.dg/gomp/declare-target-indirect-2.f90: Ditto.
	* gfortran.dg/gomp/declare-variant-10.f90: Ditto.
	* gfortran.dg/gomp/declare-variant-8.f90: Ditto.
	* gfortran.dg/gomp/implicit-save.f90: Ditto.
	* gfortran.dg/gomp/linear-1.f90: Ditto.
	* gfortran.dg/gomp/linear-2.f90: Ditto.
	* gfortran.dg/gomp/linear-3.f90: Ditto.
	* gfortran.dg/gomp/linear-4.f90: Ditto.
	* gfortran.dg/gomp/linear-6.f90: Ditto.
	* gfortran.dg/gomp/map-12.f90: Ditto.
	* gfortran.dg/gomp/map-6.f90: Ditto.
	* gfortran.dg/gomp/map-7.f90: Ditto.
	* gfortran.dg/gomp/map-8.f90: Ditto.
	* gfortran.dg/gomp/order-8.f90: Ditto.
	* gfortran.dg/gomp/pr83977.f90: Ditto.
	* gfortran.dg/gomp/reduction1.f90: Ditto.
	* gfortran.dg/gomp/schedule-modifiers-2.f90: Ditto.
	* gfortran.dg/gomp/workshare-reduction-55.f90: Ditto.
	* gfortran.dg/gomp/workshare-reduction-56.f90: Ditto.
	* gfortran.dg/gomp/workshare-reduction-57.f90: Ditto.
	* gfortran.dg/gomp/workshare-reduction-58.f90: Ditto.
	* gfortran.dg/gomp/52-deps.f90: New test.
2025-12-11 08:12:50 -08:00
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
supers1ngular
a57b0e3ecb [PATCH v2 1/4] openmp: Bump Version from 4.5 to 5.2 (1/4)
Bumps OpenMP from 4.5 (201511) to 5.2 (202111), with deprecation and
test support to 5.1 (202011). Adds new tests and a new warning.
Suppresses deprecation warnings in all relevant tests and removes
suppression pragmas visible outside of the testsuite. Additionally
implements new warning in the relevant frontends. Otherwise, cleans
up some whitespace and fixed a misspelled pragma in a testcase. Also
fixes an indentation error.

gcc/c-family/ChangeLog:

	* c-cppbuiltin.cc (c_cpp_builtins): Bump _OPENMP version.
	* c.opt (Wdeprecated-openmp): Add warning.
	* c.opt.urls: Regenerated.

gcc/c/ChangeLog:

	* c-parser.cc (c_parser_omp_clause_proc_bind): Deprecate master
	affinity.
	(c_parser_omp_master): Deprecate master construct.
	(c_parser_transaction): Whitespace.

gcc/cp/ChangeLog:

	* parser.cc (cp_parser_postfix_expression): Whitespace.
	(cp_parser_builtin_c23_va_start): Ditto.
	(cp_parser_omp_clause_proc_bind): Deprecate master affinity.
	(cp_parser_omp_master): Deprecate master construct.

gcc/ChangeLog:

	* doc/invoke.texi: Update docs for '-Wdeprecated-openmp'.

gcc/fortran/ChangeLog:

	* cpp.cc (cpp_define_builtins): Bump _OPENMP version.
	* invoke.texi: Update docs for '-Wdeprecated-openmp'.
	* lang.opt (Wdeprecated-openmp): Add warning.
	* lang.opt.urls: Regenerated.
	* openmp.cc (gfc_match_omp_clauses): Deprecate master affinity
	policy.
	(gfc_match_omp_parallel_master): Deprecate master construct.
	(gfc_match_omp_parallel_master_taskloop): Ditto.
	(gfc_match_omp_parallel_master_taskloop_simd): Ditto.
	(gfc_match_omp_master): Ditto.
	(gfc_match_omp_master_taskloop): Ditto.
	(gfc_match_omp_master_taskloop_simd): Ditto.
	(resolve_omp_clauses): Warn for deprecated use of
	{use,is}_device_ptr.

libgomp/ChangeLog:

	* env.c (omp_display_env): Bump _OPENMP version.
	* fortran.c (ialias_redirect): Remove suppression pragmas.
	(omp_set_dynamic_8_): Ditto.
	(omp_set_nested_8_): Ditto.
	(omp_get_nested_): Ditto.
	* icv.c (omp_get_dynamic): Ditto.
	(omp_get_nested): Ditto.
	(ialias): Ditto.
	* omp_lib.f90.in: Bump openmp_version.
	* omp_lib.h.in: Ditto.
	* testsuite/libgomp.c++/affinity-1.C: Suppress deprecation
	warnings.
	* testsuite/libgomp.c++/ctor-1.C: Ditto.
	* testsuite/libgomp.c++/ctor-11.C: Ditto.
	* testsuite/libgomp.c++/ctor-13.C: Ditto.
	* testsuite/libgomp.c++/ctor-2.C: Ditto.
	* testsuite/libgomp.c++/ctor-5.C: Ditto.
	* testsuite/libgomp.c++/ctor-7.C: Ditto.
	* testsuite/libgomp.c++/depend-iterator-1.C: Ditto.
	* testsuite/libgomp.c++/loop-13.C: Ditto.
	* testsuite/libgomp.c++/master-1.C: Ditto.
	* testsuite/libgomp.c++/pr26943.C: Ditto.
	* testsuite/libgomp.c++/pr81130.C: Ditto.
	* testsuite/libgomp.c++/pr81314.C: Ditto.
	* testsuite/libgomp.c++/target-in-reduction-1.C: Ditto.
	* testsuite/libgomp.c++/target-in-reduction-2.C: Ditto.
	* testsuite/libgomp.c++/task-1.C: Ditto.
	* testsuite/libgomp.c++/task-2.C: Ditto.
	* testsuite/libgomp.c++/task-6.C: Ditto.
	* testsuite/libgomp.c++/task-reduction-7.C: Ditto.
	* testsuite/libgomp.c++/task-reduction-9.C: Ditto.
	* testsuite/libgomp.c++/taskloop-reduction-1.C: Ditto.
	* testsuite/libgomp.c-c++-common/cancel-taskgroup-4.c: Ditto.
	* testsuite/libgomp.c-c++-common/depend-inoutset-1.c: Ditto.
	* testsuite/libgomp.c-c++-common/depend-iterator-1.c: Ditto.
	* testsuite/libgomp.c-c++-common/master-combined-1.c: Ditto.
	* testsuite/libgomp.c-c++-common/target-in-reduction-1.c: Ditto.
	* testsuite/libgomp.c-c++-common/target-in-reduction-2.c: Ditto.
	* testsuite/libgomp.c-c++-common/task-detach-12.c: Ditto.
	* testsuite/libgomp.c-c++-common/task-reduction-15.c: Ditto.
	* testsuite/libgomp.c-c++-common/task-reduction-5.c: Ditto.
	* testsuite/libgomp.c-c++-common/task-reduction-6.c: Ditto.
	* testsuite/libgomp.c-c++-common/task-reduction-8.c: Ditto.
	* testsuite/libgomp.c-c++-common/taskloop-reduction-1.c: Ditto.
	* testsuite/libgomp.c-c++-common/taskloop-reduction-3.c: Ditto.
	* testsuite/libgomp.c-c++-common/taskloop-reduction-4.c: Ditto.
	* testsuite/libgomp.c/affinity-1.c: Remove extraneous dg
	instruction and add suppression.
	* testsuite/libgomp.c/critical-2.c: Suppress deprecation
	warnings.
	* testsuite/libgomp.c/debug-1.c: Ditto.
	* testsuite/libgomp.c/lib-1.c: Ditto.
	* testsuite/libgomp.c/loop-24.c: Ditto.
	* testsuite/libgomp.c/nestedfn-2.c: Ditto.
	* testsuite/libgomp.c/nestedfn-3.c: Ditto.
	* testsuite/libgomp.c/pr104385.c: Ditto.
	* testsuite/libgomp.c/target-31.c: Ditto.
	* testsuite/libgomp.c/target-34.c: Ditto.
	* testsuite/libgomp.c/target-critical-1.c: Ditto.
	* testsuite/libgomp.c/task-1.c: Ditto.
	* testsuite/libgomp.c/task-3.c: Ditto.
	* testsuite/libgomp.c/task-6.c: Ditto.
	* testsuite/libgomp.c/task-reduction-1.c: Ditto.
	* testsuite/libgomp.c/task-reduction-2.c: Ditto.
	* testsuite/libgomp.c/teams-1.c: Ditto.
	* testsuite/libgomp.c/vla-1.c: Ditto.
	* testsuite/libgomp.fortran/crayptr1.f90: Ditto.
	* testsuite/libgomp.fortran/depend-inoutset-1.f90: Ditto.
	* testsuite/libgomp.fortran/is_device_ptr-1.f90: Ditto.
	* testsuite/libgomp.fortran/is_device_ptr-2.f90: Ditto.
	* testsuite/libgomp.fortran/lib1.f90: Ditto.
	* testsuite/libgomp.fortran/lib2.f: Ditto.
	* testsuite/libgomp.fortran/lib3.f: Ditto.
	* testsuite/libgomp.fortran/omp_parse2.f90: Ditto.
	* testsuite/libgomp.fortran/openmp_version-1.f: Bump OMP version.
	* testsuite/libgomp.fortran/openmp_version-2.f90: Ditto.
	* testsuite/libgomp.fortran/parallel-master.f90: Suppress
	warnings.
	* testsuite/libgomp.fortran/pointer2.f90: Ditto.
	* testsuite/libgomp.fortran/reduction6.f90: Ditto.
	* testsuite/libgomp.fortran/target-firstprivate-1.f90: Ditto.
	* testsuite/libgomp.fortran/use_device_addr-1.f90: Ditto.
	* testsuite/libgomp.fortran/use_device_addr-2.f90: Ditto.
	* testsuite/libgomp.fortran/use_device_addr-3.f90: Ditto.
	* testsuite/libgomp.fortran/use_device_addr-4.f90: Ditto.
	* testsuite/libgomp.fortran/use_device_addr-5.f90: Ditto.
	* testsuite/libgomp.fortran/use_device_ptr-1.f90: Ditto.
	* testsuite/libgomp.fortran/use_device_ptr-3.f90: Ditto.
	* testsuite/libgomp.fortran/use_device_ptr-4.f90: Ditto.
	* testsuite/libgomp.fortran/use_device_ptr-optional-1.f90: Ditto.
	* testsuite/libgomp.fortran/use_device_ptr-optional-2.f90: Ditto.
	* testsuite/libgomp.fortran/use_device_ptr-optional-3.f90: Ditto.
	* testsuite/libgomp.c-c++-common/omp-atv-seq-dep.c: New test.
	* testsuite/libgomp.c-c++-common/omp-lock-hint-contended-dep.c:
	New test.
	* testsuite/libgomp.c-c++-common/omp-lock-hint-none-dep.c: New test.
	* testsuite/libgomp.c-c++-common/omp-lock-hint-speculative-dep.c:
	New test.
	* testsuite/libgomp.c-c++-common/omp-lock-hint-uncontended-dep.c:
	New test.
	* testsuite/libgomp.c/omp-proc-bind-master-dep.c: New test.
	* testsuite/libgomp.fortran/omp-atv-seq-dep.f90: New test.
	* testsuite/libgomp.fortran/omp-lock-hint-contended-dep.f90: New
	test.
	* testsuite/libgomp.fortran/omp-lock-hint-none-dep.f90: New test.
	* testsuite/libgomp.fortran/omp-lock-hint-speculative-dep.f90: New
	test.
	* testsuite/libgomp.fortran/omp-lock-hint-uncontended-dep.f90: New
	test.

gcc/testsuite/ChangeLog:

	* c-c++-common/cpp/openmp-define-3.c: Bump OMP version.
	* c-c++-common/gomp/Wparentheses-1.c: Suppress deprecation
	warnings.
	* c-c++-common/gomp/Wparentheses-3.c: Ditto.
	* c-c++-common/gomp/affinity-3.c: Ditto.
	* c-c++-common/gomp/allocate-18.c: Ditto.
	* c-c++-common/gomp/cancel-1.c: Ditto.
	* c-c++-common/gomp/clause-dups-1.c: Ditto.
	* c-c++-common/gomp/clauses-1.c: Suppress deprecation
	warnings and fix misspelled directive. Add
	'-Wunknown-pragmas'.
	* c-c++-common/gomp/clauses-6.c: Suppress deprecation warnings.
	* c-c++-common/gomp/declare-variant-1.c: Ditto.
	* c-c++-common/gomp/declare-variant-2.c: Ditto.
	* c-c++-common/gomp/depend-iterator-1.c: Ditto.
	* c-c++-common/gomp/lastprivate-conditional-1.c: Ditto.
	* c-c++-common/gomp/loop-1.c: Ditto.
	* c-c++-common/gomp/loop-2.c: Ditto.
	* c-c++-common/gomp/loop-3.c: Ditto.
	* c-c++-common/gomp/loop-4.c: Ditto.
	* c-c++-common/gomp/master-combined-1.c: Ditto.
	* c-c++-common/gomp/master-combined-2.c: Ditto.
	* c-c++-common/gomp/nesting-2.c: Ditto.
	* c-c++-common/gomp/pr100902-1.c: Ditto.
	* c-c++-common/gomp/pr61486-2.c: Ditto.
	* c-c++-common/gomp/pr85696.c: Ditto.
	* c-c++-common/gomp/pr85956.c: Ditto.
	* c-c++-common/gomp/pr98187.c: Ditto.
	* c-c++-common/gomp/pr99928-1.c: Ditto.
	* c-c++-common/gomp/pr99928-10.c: Ditto.
	* c-c++-common/gomp/pr99928-11.c: Ditto.
	* c-c++-common/gomp/pr99928-12.c: Ditto.
	* c-c++-common/gomp/pr99928-13.c: Ditto.
	* c-c++-common/gomp/pr99928-14.c: Ditto.
	* c-c++-common/gomp/pr99928-2.c: Ditto.
	* c-c++-common/gomp/pr99928-3.c: Ditto.
	* c-c++-common/gomp/pr99928-4.c: Ditto.
	* c-c++-common/gomp/pr99928-5.c: Ditto.
	* c-c++-common/gomp/pr99928-6.c: Ditto.
	* c-c++-common/gomp/pr99928-7.c: Ditto.
	* c-c++-common/gomp/pr99928-8.c: Ditto.
	* c-c++-common/gomp/pr99928-9.c: Ditto.
	* c-c++-common/gomp/task-detach-1.c: Ditto.
	* c-c++-common/gomp/teams-2.c: Ditto.
	* g++.dg/gomp/attrs-1.C: Ditto.
	* g++.dg/gomp/attrs-2.C: Ditto.
	* g++.dg/gomp/attrs-4.C: Ditto.
	* g++.dg/gomp/block-0.C: Ditto.
	* g++.dg/gomp/block-10.C: Ditto.
	* g++.dg/gomp/block-5.C: Ditto.
	* g++.dg/gomp/block-9.C: Ditto.
	* g++.dg/gomp/depend-iterator-1.C: Ditto.
	* g++.dg/gomp/master-1.C: Ditto.
	* g++.dg/gomp/master-2.C: Ditto.
	* g++.dg/gomp/master-3.C: Ditto.
	* g++.dg/gomp/method-1.C: Ditto.
	* g++.dg/gomp/pr29965-3.C: Ditto.
	* g++.dg/gomp/pr29965-9.C: Ditto.
	* g++.dg/gomp/pr78363-4.C: Ditto.
	* g++.dg/gomp/pr78363-6.C: Ditto.
	* g++.dg/gomp/pr79664.C: Ditto.
	* g++.dg/gomp/pr94477.C: Ditto.
	* g++.dg/gomp/pr94512.C: Ditto.
	* g++.dg/gomp/tpl-master-1.C: Ditto.
	* gcc.dg/gomp/appendix-a/a.12.1.c: Ditto.
	* gcc.dg/gomp/appendix-a/a.33.2.c: Ditto.
	* gcc.dg/gomp/attrs-1.c: Ditto.
	* gcc.dg/gomp/attrs-2.c: Ditto.
	* gcc.dg/gomp/attrs-4.c: Ditto.
	* gcc.dg/gomp/block-10.c: Ditto.
	* gcc.dg/gomp/block-5.c: Ditto.
	* gcc.dg/gomp/block-9.c: Ditto.
	* gcc.dg/gomp/master-1.c: Ditto.
	* gcc.dg/gomp/master-2.c: Ditto.
	* gcc.dg/gomp/master-3.c: Ditto.
	* gcc.dg/gomp/nesting-1.c: Ditto.
	* gcc.dg/gomp/pr104517.c: Ditto.
	* gcc.dg/gomp/pr29965-3.c: Ditto.
	* gcc.dg/gomp/pr35818.c: Ditto.
	* gcc.dg/gomp/pr91216.c: Ditto.
	* gcc.dg/gomp/sharing-2.c: Ditto.
	* gfortran.dg/gomp/adjust-args-10.f90: Ditto.
	* gfortran.dg/gomp/affinity-1.f90: Ditto.
	* gfortran.dg/gomp/allocate-clause.f90: Ditto.
	* gfortran.dg/gomp/appendix-a/a.12.1.f90: Ditto.
	* gfortran.dg/gomp/appendix-a/a.33.2.f90: Ditto.
	* gfortran.dg/gomp/c_ptr_tests_20.f90: Ditto.
	* gfortran.dg/gomp/c_ptr_tests_21.f90: Ditto.
	* gfortran.dg/gomp/cancel-1.f90: Ditto.
	* gfortran.dg/gomp/clauses-1.f90: Ditto.
	* gfortran.dg/gomp/declare-variant-1.f90: Ditto.
	* gfortran.dg/gomp/depend-iterator-1.f90: Ditto.
	* gfortran.dg/gomp/depend-iterator-2.f90: Ditto.
	* gfortran.dg/gomp/is_device_ptr-1.f90: Ditto.
	* gfortran.dg/gomp/is_device_ptr-2.f90: Ditto.
	* gfortran.dg/gomp/is_device_ptr-3.f90: Ditto.
	* gfortran.dg/gomp/lastprivate-conditional-1.f90: Ditto.
	* gfortran.dg/gomp/loop-4.f90: Ditto.
	* gfortran.dg/gomp/loop-exit.f90: Ditto.
	* gfortran.dg/gomp/map-3.f90: Ditto.
	* gfortran.dg/gomp/nesting-2.f90: Ditto.
	* gfortran.dg/gomp/nesting-3.f90: Ditto.
	* gfortran.dg/gomp/nowait-2.f90: Ditto.
	* gfortran.dg/gomp/nowait-4.f90: Ditto.
	* gfortran.dg/gomp/nowait-5.f90: Ditto.
	* gfortran.dg/gomp/openmp-simd-2.f90: Ditto.
	* gfortran.dg/gomp/openmp-simd-3.f90: Ditto.
	* gfortran.dg/gomp/parallel-master-1.f90: Ditto.
	* gfortran.dg/gomp/parallel-master-2.f90: Ditto.
	* gfortran.dg/gomp/pr107214-8.f90: Ditto.
	* gfortran.dg/gomp/pr48117.f90: Ditto.
	* gfortran.dg/gomp/pr94672.f90: Ditto.
	* gfortran.dg/gomp/pr99928-1.f90: Suppression + fix whitespace.
	* gfortran.dg/gomp/pr99928-11.f90: Suppression.
	* gfortran.dg/gomp/pr99928-2.f90: Suppression + fix whitespace.
	* gfortran.dg/gomp/pr99928-3.f90: Ditto.
	* gfortran.dg/gomp/pr99928-4.f90: Ditto.
	* gfortran.dg/gomp/pr99928-5.f90: Ditto.
	* gfortran.dg/gomp/pr99928-6.f90: Ditto.
	* gfortran.dg/gomp/pr99928-8.f90: Ditto.
	* gfortran.dg/gomp/sharing-3.f90: Suppress deprecation warnings.
	* gfortran.dg/gomp/strictly-structured-block-1.f90: Ditto.
	* gfortran.dg/gomp/strictly-structured-block-2.f90: Ditto.
	* gfortran.dg/gomp/target1.f90: Ditto.
	* gfortran.dg/gomp/taskloop-1.f90: Ditto.
	* gfortran.dg/gomp/taskloop-2.f90: Ditto.
	* gfortran.dg/openmp-define-3.f90: Bump expected version.
	* c-c++-common/gomp/master-construct-dep.c: New test.
	* gfortran.dg/gomp/master-construct-dep.f90: New test.
2025-12-11 06:38:51 -08:00
GCC Administrator
3b3e153da5 Daily bump. 2025-12-10 00:16:32 +00:00
Richard Biener
bf81616040 testsuite/120167 - avoid IPA messing up with test
The following avoids cloning / IPA CP to mess up dump counting.

	PR testsuite/120167
libgomp/
	* testsuite/libgomp.graphite/force-parallel-1.c: Make parloop
	noipa.
2025-12-09 14:56:34 +01:00
Andrew Stubbs
1cf9fda493 amdgcn: Adjust failure mode for gfx908 USM
Unified Shared Memory does not appear to work well on gfx908, which is why we
disabled xnack by default.  For this reason it makes sense to inform the user
as compile time, but this is causing trouble in the testsuite which assumes
that USM only fails at runtime.

This patch changes the gfx908 compile time message to a warning only (in case
some other target does this differently), and prevents the tests from
attempting to run in host-fallback mode (given that that is not what they are
trying to test).  It also changes the existing warning to only fire once.

The patch assumes that effective target "omp_usm" also implies self-maps.

gcc/ChangeLog:

	* config/gcn/gcn.cc (gcn_init_cumulative_args): Only warn once.
	Use "required" instead of "enabled" in the warning.
	* config/gcn/mkoffload.cc (process_asm): Warn, don't error.
	Use "required" instead of "on" in the warning.

libgomp/ChangeLog:

	* testsuite/lib/libgomp.exp (check_effective_target_omp_usm): New.
	* testsuite/libgomp.c++/target-std__array-concurrent-usm.C: Require
	working Unified Shared Memory to run the test.
	* testsuite/libgomp.c++/target-std__bitset-concurrent-usm.C: Likewise.
	* testsuite/libgomp.c++/target-std__deque-concurrent-usm.C: Likewise.
	* testsuite/libgomp.c++/target-std__forward_list-concurrent-usm.C:
	Likewise.
	* testsuite/libgomp.c++/target-std__list-concurrent-usm.C: Likewise.
	* testsuite/libgomp.c++/target-std__map-concurrent-usm.C: Likewise.
	* testsuite/libgomp.c++/target-std__multimap-concurrent-usm.C:
	Likewise.
	* testsuite/libgomp.c++/target-std__multiset-concurrent-usm.C:
	Likewise.
	* testsuite/libgomp.c++/target-std__set-concurrent-usm.C: Likewise.
	* testsuite/libgomp.c++/target-std__span-concurrent-usm.C: Likewise.
	* testsuite/libgomp.c++/target-std__valarray-concurrent-usm.C:
	Likewise.
	* testsuite/libgomp.c++/target-std__vector-concurrent-usm.C: Likewise.
	* testsuite/libgomp.c-c++-common/target-implicit-map-4.c: Likewise.
	* testsuite/libgomp.c-c++-common/target-link-3.c: Likewise.
	* testsuite/libgomp.c-c++-common/target-link-4.c: Likewise.
	* testsuite/libgomp.fortran/self_maps.f90: Likewise.
2025-12-09 11:29:40 +00:00
GCC Administrator
f67846aca2 Daily bump. 2025-12-05 00:16:26 +00:00
Andrew Stubbs
1d1d12da6d amdgcn, libgomp: improve generic device errors
Switching to use "generic" ISA variants has changed the error modes a bit.

This patch changes the runtime so that it doesn't say to use the
device-specific -march option when the real problem is not the ISA (it'll be a
mismatched xnack setting, probably).

Additionally, the testsuite effective target check needs to see if the xnack
mode is accepted by the runtime, as well as the compiler.

libgomp/ChangeLog:

	* plugin/plugin-gcn.c (generic_isa_code): New function.
	(isa_matches_agent): Use generic ISA details to help select an error
	message on ISA mismatch.
	* testsuite/lib/libgomp.exp
	(check_effective_target_offload_target_amdgcn_with_xnack): Use a
	runtime check.
2025-12-04 15:35:05 +00:00
Andrew Stubbs
72a360c780 amdgcn, libgomp: use xfail for gfx908 requires tests
Use a different way to remove the "FAIL" cases for gfx908.  It really isn't
working with fall-back, as intended, so XFAIL is appropriate.

libgomp/ChangeLog:

	* testsuite/libgomp.c-c++-common/requires-4.c: Change dg-excess-errors
	to dg-xfail-if.
	* testsuite/libgomp.c-c++-common/requires-4a.c: Likewise.
	* testsuite/libgomp.c-c++-common/requires-5.c: Likewise.
2025-12-04 12:14:48 +00:00
GCC Administrator
175c5fe0d3 Daily bump. 2025-12-04 00:16:32 +00:00
Andrew Stubbs
1eb2aeed08 libgomp: Fix offload_target with additional sources
The offload_target_* effective target checks called libgomp_target_compile in a
way that altered global state if additional sources were configured.

This patch ignores additional sources if the compile check uses no sources (a
compiler probe, only), thus fixing the problem.

libgomp/ChangeLog:

	* testsuite/lib/libgomp.exp (libgomp_target_compile): Don't use
	additional sources if there are no primary sources.
2025-12-03 16:29:32 +00:00