]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Merge remote-tracking branch 'origin/releases/gcc-14' into devel/omp/gcc-14
authorTobias Burnus <tburnus@baylibre.com>
Tue, 8 Apr 2025 21:51:05 +0000 (23:51 +0200)
committerTobias Burnus <tburnus@baylibre.com>
Tue, 8 Apr 2025 21:51:05 +0000 (23:51 +0200)
Merge up to r14-11542-g059107eb22c480 (8th Apr 2025)

26 files changed:
1  2 
gcc/builtins.cc
gcc/c-family/c-pretty-print.cc
gcc/c/c-decl.cc
gcc/c/c-objc-common.h
gcc/c/c-parser.cc
gcc/c/c-tree.h
gcc/c/c-typeck.cc
gcc/cgraph.cc
gcc/cp/constexpr.cc
gcc/cp/cp-tree.h
gcc/cp/parser.cc
gcc/cp/pt.cc
gcc/cp/rtti.cc
gcc/cp/semantics.cc
gcc/cp/typeck.cc
gcc/doc/invoke.texi
gcc/doc/sourcebuild.texi
gcc/dwarf2out.cc
gcc/fortran/resolve.cc
gcc/fortran/trans-array.cc
gcc/gimplify.cc
gcc/ipa-free-lang-data.cc
gcc/omp-simd-clone.cc
gcc/tree.cc
libgfortran/configure
libstdc++-v3/src/c++20/tzdb.cc

diff --cc gcc/builtins.cc
Simple merge
Simple merge
diff --cc gcc/c/c-decl.cc
Simple merge
Simple merge
Simple merge
diff --cc gcc/c/c-tree.h
Simple merge
index 75f02fe31f2d9b08595c851d17f15515a6eedbef,57d5ca586608929cd17aac9e44a60d7710299360..70b15e20129cec326b16e8fbcb1287ee9530d29c
@@@ -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;
  }
  
  \f
diff --cc gcc/cgraph.cc
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc gcc/cp/pt.cc
Simple merge
diff --cc gcc/cp/rtti.cc
Simple merge
index b5c8a5f4588e011eff7c9333ca344910d84f987d,3e75b5887506d12ac42d903c5ac38cebbb260c2b..d24685c7224bdbbd8d1db987cc1e04675372dfce
@@@ -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;
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc gcc/gimplify.cc
Simple merge
Simple merge
Simple merge
diff --cc gcc/tree.cc
Simple merge
Simple merge
Simple merge