https://gcc.gnu.org/g:b25ca248132a79766ea6f1e8c5b9bd691ba399f3

commit b25ca248132a79766ea6f1e8c5b9bd691ba399f3
Merge: e14ab294c02f 059107eb22c4
Author: Tobias Burnus <tbur...@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;

Reply via email to