[gcc/devel/omp/gcc-14] Merge remote-tracking branch 'origin/releases/gcc-14' into devel/omp/gcc-14
Tobias Burnus
burnus@gcc.gnu.org
Tue Apr 8 21:52:26 GMT 2025
https://gcc.gnu.org/g:b25ca248132a79766ea6f1e8c5b9bd691ba399f3
commit b25ca248132a79766ea6f1e8c5b9bd691ba399f3
Merge: e14ab294c02f 059107eb22c4
Author: Tobias Burnus <tburnus@baylibre.com>
Date: Tue Apr 8 23:51:05 2025 +0200
Merge remote-tracking branch 'origin/releases/gcc-14' into devel/omp/gcc-14
Merge up to r14-11542-g059107eb22c480 (8th Apr 2025)
Diff:
gcc/ChangeLog | 361 +++++
gcc/DATESTAMP | 2 +-
gcc/ada/ChangeLog | 12 +
gcc/ada/libgnat/a-ngcoar.adb | 42 +-
gcc/ada/libgnat/a-ngrear.adb | 85 +-
gcc/builtins.cc | 21 +-
gcc/c-family/ChangeLog | 11 +
gcc/c-family/c-pretty-print.cc | 6 +-
gcc/c/ChangeLog | 80 +
gcc/c/c-decl.cc | 123 +-
gcc/c/c-objc-common.h | 2 +
gcc/c/c-parser.cc | 24 +-
gcc/c/c-tree.h | 21 +-
gcc/c/c-typeck.cc | 375 ++++-
gcc/cgraph.cc | 7 +-
gcc/common/config/i386/i386-isas.h | 1 +
gcc/config/aarch64/aarch64.cc | 6 +-
gcc/config/aarch64/aarch64.md | 8 +-
gcc/config/avr/avr-mcus.def | 6 +
gcc/config/i386/i386-c.cc | 5 +-
gcc/config/i386/i386-options.cc | 1 +
gcc/config/i386/i386.md | 4 +-
gcc/config/i386/i386.opt | 5 +
gcc/config/i386/i386.opt.urls | 3 +
gcc/config/loongarch/loongarch.cc | 13 +
gcc/cp/ChangeLog | 128 ++
gcc/cp/call.cc | 14 +-
gcc/cp/constexpr.cc | 38 +-
gcc/cp/cp-tree.h | 1 +
gcc/cp/cvt.cc | 13 +
gcc/cp/lambda.cc | 8 +-
gcc/cp/name-lookup.cc | 11 +-
gcc/cp/parser.cc | 98 +-
gcc/cp/pt.cc | 2 +
gcc/cp/rtti.cc | 3 +-
gcc/cp/semantics.cc | 1 +
gcc/cp/typeck.cc | 10 +-
gcc/d/ChangeLog | 20 +
gcc/d/decl.cc | 6 +
gcc/d/expr.cc | 2 +
gcc/d/types.cc | 5 +-
gcc/df-problems.cc | 8 +-
gcc/doc/avr-mmcu.texi | 4 +-
gcc/doc/extend.texi | 8 +-
gcc/doc/invoke.texi | 4 +-
gcc/doc/sourcebuild.texi | 3 +
gcc/dwarf2out.cc | 6 +-
gcc/fortran/ChangeLog | 23 +
gcc/fortran/resolve.cc | 2 +-
gcc/fortran/trans-array.cc | 8 +-
gcc/gimplify.cc | 8 +-
gcc/ginclude/stddef.h | 8 +-
gcc/ipa-cp.cc | 3 +-
gcc/ipa-devirt.cc | 10 +-
gcc/ipa-free-lang-data.cc | 14 +
gcc/ipa-modref.cc | 3 +-
gcc/lra-constraints.cc | 3 +-
gcc/lto/ChangeLog | 27 +
gcc/lto/lto-common.cc | 9 +-
gcc/lto/lto-symtab.cc | 2 +-
gcc/omp-simd-clone.cc | 2 +-
gcc/testsuite/ChangeLog | 406 +++++
gcc/testsuite/c-c++-common/gomp/pr119000.c | 16 +
.../g++.dg/cpp0x/lambda/lambda-__func__3.C | 6 +
gcc/testsuite/g++.dg/cpp0x/pr119123.C | 10 +
gcc/testsuite/g++.dg/cpp0x/pr98533.C | 25 +
gcc/testsuite/g++.dg/cpp0x/temp-extend3.C | 32 +
gcc/testsuite/g++.dg/cpp1y/constexpr-complex2.C | 18 +
gcc/testsuite/g++.dg/cpp2a/concepts-pr116681.C | 20 +
gcc/testsuite/g++.dg/cpp2a/concepts-requires41.C | 25 +
gcc/testsuite/g++.dg/cpp2a/consteval41.C | 37 +
gcc/testsuite/g++.dg/cpp2a/constexpr-117504.C | 60 +
gcc/testsuite/g++.dg/cpp2a/constexpr-117504a.C | 12 +
gcc/testsuite/g++.dg/cpp2a/constinit20.C | 18 +
gcc/testsuite/g++.dg/cpp2a/lambda-requires2.C | 8 +
gcc/testsuite/g++.dg/cpp2a/lambda-requires3.C | 6 +
gcc/testsuite/g++.dg/cpp2a/lambda-requires4.C | 6 +
gcc/testsuite/g++.dg/cpp2a/lambda-requires5.C | 10 +
gcc/testsuite/g++.dg/debug/pr101533.C | 11 +
gcc/testsuite/g++.dg/ipa/pr116572.C | 37 +
gcc/testsuite/g++.dg/lto/pr119067_0.C | 22 +
gcc/testsuite/g++.dg/lto/pr119067_1.C | 10 +
gcc/testsuite/g++.dg/pr114501_0.C | 20 +
gcc/testsuite/g++.dg/pr66279.C | 23 +
gcc/testsuite/g++.dg/template/friend85.C | 16 +
gcc/testsuite/g++.dg/torture/pr111245.C | 23 +
gcc/testsuite/g++.dg/torture/pr11911.C | 21 +
gcc/testsuite/g++.dg/tree-ssa/initlist-opt1.C | 2 +-
gcc/testsuite/g++.dg/tree-ssa/initlist-opt2.C | 2 +-
gcc/testsuite/gcc.c-torture/execute/pr118915.c | 22 +
gcc/testsuite/gcc.dg/Warray-parameter-4.c | 6 +-
gcc/testsuite/gcc.dg/Wvla-parameter-2.c | 15 +-
gcc/testsuite/gcc.dg/Wvla-parameter-3.c | 11 +-
gcc/testsuite/gcc.dg/c23-stddef-2.c | 17 +
gcc/testsuite/gcc.dg/c23-tag-composite-11.c | 27 +
gcc/testsuite/gcc.dg/gomp/simd-clones-8.c | 10 +
gcc/testsuite/gcc.dg/lto/pr91299_0.c | 16 +
gcc/testsuite/gcc.dg/lto/pr91299_1.c | 6 +
gcc/testsuite/gcc.dg/pr101478.c | 11 +
gcc/testsuite/gcc.dg/pr113688.c | 8 +
gcc/testsuite/gcc.dg/pr114014.c | 14 +
gcc/testsuite/gcc.dg/pr114713.c | 35 +
gcc/testsuite/gcc.dg/pr116284.c | 14 +
gcc/testsuite/gcc.dg/pr117145-1.c | 14 +
gcc/testsuite/gcc.dg/pr117145-2.c | 10 +
gcc/testsuite/gcc.dg/pr117245.c | 17 +
gcc/testsuite/gcc.dg/pr117391.c | 14 +
gcc/testsuite/gcc.dg/pr117724.c | 16 +
gcc/testsuite/gcc.dg/pr117806.c | 13 +
gcc/testsuite/gcc.dg/pr119151.c | 151 ++
gcc/testsuite/gcc.dg/pr119183.c | 12 +
gcc/testsuite/gcc.dg/pr119204.c | 13 +
gcc/testsuite/gcc.dg/pr81192.c | 6 +-
gcc/testsuite/gcc.dg/pr98845.c | 33 +
gcc/testsuite/gcc.dg/torture/pr118953.c | 42 +
gcc/testsuite/gcc.dg/torture/pr119417.c | 24 +
gcc/testsuite/gcc.dg/vect/pr119057.c | 19 +
gcc/testsuite/gcc.dg/vect/pr119096.c | 21 +
gcc/testsuite/gcc.dg/vect/pr119145.c | 35 +
gcc/testsuite/gcc.dg/vect/vect-fncall-mask.c | 8 +-
.../gcc.target/aarch64/torture/pr116564.c | 11 +
gcc/testsuite/gcc.target/i386/pr119450.c | 15 +
gcc/testsuite/gcc.target/i386/pr87984.c | 23 +
gcc/testsuite/gcc.target/loongarch/pr119408.c | 12 +
gcc/testsuite/gdc.dg/pr117621.d | 11 +
gcc/testsuite/gdc.dg/torture/pr117002.d | 28 +
gcc/testsuite/gfortran.dg/bounds_check_27.f90 | 45 +
gcc/testsuite/gfortran.dg/proc_ptr_comp_54.f90 | 30 +
gcc/tree-ssa-alias.cc | 3 +-
gcc/tree-ssa-dom.cc | 4 +-
gcc/tree-ssa-math-opts.cc | 48 +-
gcc/tree-ssa-reassoc.cc | 2 +-
gcc/tree-ssa-sccvn.cc | 2 +
gcc/tree-ssa-tail-merge.cc | 8 +
gcc/tree-vect-loop.cc | 14 +-
gcc/tree-vect-stmts.cc | 2 +-
gcc/tree-vectorizer.cc | 4 +-
gcc/tree.cc | 63 +-
gcc/value-range.cc | 2 +-
libcpp/ChangeLog | 5 +
libcpp/config.in | 3 +
libcpp/configure | 2 +-
libcpp/configure.ac | 4 +-
libgcc/ChangeLog | 14 +
libgcc/unwind-dw2-btree.h | 23 +-
libgfortran/acinclude.m4 | 4 +
libgfortran/configure | 8 +
libquadmath/configure | 8 +
libquadmath/configure.ac | 4 +
libstdc++-v3/ChangeLog | 301 ++++
libstdc++-v3/doc/doxygen/user.cfg.in | 1 +
.../doc/html/manual/policy_data_structures.html | 4 +-
libstdc++-v3/doc/html/manual/test.html | 2 +-
.../xml/manual/policy_data_structures_biblio.xml | 4 +-
libstdc++-v3/doc/xml/manual/test.xml | 2 +-
libstdc++-v3/include/bits/hashtable_policy.h | 80 +-
libstdc++-v3/include/bits/iterator_concepts.h | 43 +-
libstdc++-v3/include/bits/ranges_base.h | 6 +
libstdc++-v3/include/bits/ranges_uninitialized.h | 26 +-
libstdc++-v3/include/bits/stl_map.h | 4 +-
libstdc++-v3/include/bits/stl_multimap.h | 4 +-
libstdc++-v3/include/bits/stl_multiset.h | 4 +-
libstdc++-v3/include/bits/stl_set.h | 4 +-
libstdc++-v3/include/bits/stl_tree.h | 8 +-
libstdc++-v3/include/bits/stl_vector.h | 41 +-
libstdc++-v3/include/bits/unicode.h | 2 +
libstdc++-v3/include/bits/vector.tcc | 15 +-
libstdc++-v3/include/std/chrono | 2 +-
libstdc++-v3/include/std/format | 24 +-
libstdc++-v3/include/std/forward_list | 5 +-
libstdc++-v3/include/std/future | 9 +-
libstdc++-v3/include/std/list | 5 +-
libstdc++-v3/include/std/ranges | 17 +-
libstdc++-v3/include/std/tuple | 14 +-
libstdc++-v3/src/c++20/tzdata.zi | 1696 ++++++++++----------
libstdc++-v3/src/c++20/tzdb.cc | 4 +-
.../uninitialized_copy/constrained.cc | 41 +
.../uninitialized_move/constrained.cc | 42 +-
libstdc++-v3/testsuite/20_util/tuple/116440.C | 29 +
.../23_containers/forward_list/erasure.cc | 22 +
.../testsuite/23_containers/list/erasure.cc | 22 +
.../23_containers/unordered_map/115939.cc | 29 +
.../23_containers/vector/bool/capacity/110498.cc | 18 +
.../23_containers/vector/bool/capacity/114758.cc | 12 +
.../23_containers/vector/capacity/114945.cc | 36 +
.../testsuite/23_containers/vector/cons/108487.cc | 24 +
.../vector/modifiers/insert/117983.cc | 17 +
.../24_iterators/common_iterator/101527.cc | 14 +
.../24_iterators/counted_iterator/101527.cc | 14 +
.../24_iterators/customization_points/iter_move.cc | 106 ++
.../testsuite/27_io/filesystem/operations/copy.cc | 18 +
.../30_threads/packaged_task/cons/dangling_ref.cc | 1 +
.../30_threads/packaged_task/cons/lwg4154_neg.cc | 38 +
.../testsuite/std/format/functions/format.cc | 19 +-
.../testsuite/std/ranges/adaptors/as_const/1.cc | 4 +
libstdc++-v3/testsuite/std/ranges/conv/112803.cc | 20 +
libstdc++-v3/testsuite/std/ranges/conv/lwg4229.cc | 18 +
libstdc++-v3/testsuite/std/ranges/range.cc | 6 +
198 files changed, 5226 insertions(+), 1354 deletions(-)
diff --cc gcc/c/c-typeck.cc
index 75f02fe31f2d,57d5ca586608..70b15e20129c
--- a/gcc/c/c-typeck.cc
+++ b/gcc/c/c-typeck.cc
@@@ -2974,51 -3201,10 +3211,51 @@@ build_omp_array_section (location_t loc
gcc_assert (!error_operand_p (idxtype));
- sectype = build_array_type (eltype, idxtype);
+ sectype = c_build_array_type (eltype, idxtype);
}
- return build3_loc (loc, OMP_ARRAY_SECTION, sectype, array, index, length);
+ return build4_loc (loc, OMP_ARRAY_SECTION, sectype, array, index, length,
+ stride);
+}
+
+/* Build an array type whose dimensions are given by OMP_SHAPE_DIMS and whose
+ elements are of the type pointed to by the "base" node of EXPR with outer
+ OMP_ARRAY_SECTIONs and ARRAY_REFs stripped off, e.g. the type of "*myptr"
+ in "myptr[0:2:3][4][5:6]". */
+
+tree
+create_omp_arrayshape_type (tree expr, vec<tree> *omp_shape_dims)
+{
+ tree strip_sections = expr;
+
+ while (TREE_CODE (strip_sections) == OMP_ARRAY_SECTION
+ || TREE_CODE (strip_sections) == ARRAY_REF)
+ strip_sections = TREE_OPERAND (strip_sections, 0);
+
+ tree type = TREE_TYPE (strip_sections);
+
+ if (TREE_CODE (type) == REFERENCE_TYPE)
+ type = TREE_TYPE (type);
+
+ if (TREE_CODE (type) != POINTER_TYPE)
+ {
+ error ("OpenMP array shaping operator with non-pointer argument");
+ return error_mark_node;
+ }
+
+ type = TREE_TYPE (type);
+
+ int i;
+ tree dim;
+ FOR_EACH_VEC_ELT_REVERSE (*omp_shape_dims, i, dim)
+ {
+ tree maxidx = fold_convert (sizetype, dim);
+ maxidx = size_binop (MINUS_EXPR, maxidx, size_one_node);
+ tree index = build_index_type (maxidx);
+ type = build_array_type (type, index);
+ }
+
+ return type;
}
diff --cc gcc/cp/semantics.cc
index b5c8a5f4588e,3e75b5887506..d24685c7224b
--- a/gcc/cp/semantics.cc
+++ b/gcc/cp/semantics.cc
@@@ -4394,9 -4386,9 +4394,10 @@@ finish_id_expression_1 (tree id_express
body, except inside an unevaluated context (i.e. decltype). */
if (TREE_CODE (decl) == PARM_DECL
&& DECL_CONTEXT (decl) == NULL_TREE
+ && !CONSTRAINT_VAR_P (decl)
&& !cp_unevaluated_operand
- && !processing_contract_condition)
+ && !processing_contract_condition
+ && !processing_omp_trait_property_expr)
{
*error_msg = G_("use of parameter outside function body");
return error_mark_node;
More information about the Libstdc++-cvs
mailing list