On Mon, Jul 29, 2024 at 5:15 PM Alejandro Colomar <a...@kernel.org> wrote: > > The old name was misleading. > > While at it, also rename some temporary variables that are used with > this function, for consistency. > > Link: > https://inbox.sourceware.org/gcc-patches/9fffd80-dca-2c7e-14b-6c9b509a7...@redhat.com/T/#m2f661c67c8f7b2c405c8c7fc3152dd85dc729120 > Cc: Gabriel Ravier <gabrav...@gmail.com> > Cc: Martin Uecker <uec...@tugraz.at> > Cc: Joseph Myers <josmy...@redhat.com> > Cc: Xavier Del Campo Romero <xavi....@tutanota.com> > > gcc/ChangeLog: > > * tree.cc (array_type_nelts): Rename function ... > (array_type_nelts_minus_one): ... to this name. The old name > was misleading. > * tree.h: Likewise. > * c/c-decl.cc: Likewise. > * c/c-fold.cc: Likewise.
This and the cp/ and fortran/ and rust/ entries below have different ChangeLog files and thus need not be prefixed but need gcc/cp/ChangeLog: etc. The changes look good to me, please leave the frontend maintainers time to chime in. Also Jakub had reservations with the renaming because of branch maintainance. I think if that proves an issue we could backport the renaming as well, or make sure that array_type_nelts is not re-introduced with the same name but different semantics. Richard. > * config/aarch64/aarch64.cc: Likewise. > * config/i386/i386.cc: Likewise. > * cp/decl.cc: Likewise. > * cp/init.cc: Likewise. > * cp/lambda.cc: Likewise. > * cp/tree.cc: Likewise. > * expr.cc: Likewise. > * fortran/trans-array.cc: Likewise. > * fortran/trans-openmp.cc: Likewise. > * rust/backend/rust-tree.cc: Likewise. > > Suggested-by: Richard Biener <richard.guent...@gmail.com> > Signed-off-by: Alejandro Colomar <a...@kernel.org> > --- > Range-diff against v0: > -: ----------- > 1: 82efbc3c540 gcc/: Rename array_type_nelts() => > array_type_nelts_minus_one() > > gcc/c/c-decl.cc | 10 +++++----- > gcc/c/c-fold.cc | 7 ++++--- > gcc/config/aarch64/aarch64.cc | 2 +- > gcc/config/i386/i386.cc | 2 +- > gcc/cp/decl.cc | 2 +- > gcc/cp/init.cc | 8 ++++---- > gcc/cp/lambda.cc | 3 ++- > gcc/cp/tree.cc | 2 +- > gcc/expr.cc | 8 ++++---- > gcc/fortran/trans-array.cc | 2 +- > gcc/fortran/trans-openmp.cc | 4 ++-- > gcc/rust/backend/rust-tree.cc | 2 +- > gcc/tree.cc | 4 ++-- > gcc/tree.h | 2 +- > 14 files changed, 30 insertions(+), 28 deletions(-) > > diff --git a/gcc/c/c-decl.cc b/gcc/c/c-decl.cc > index 97f1d346835..4dced430d1f 100644 > --- a/gcc/c/c-decl.cc > +++ b/gcc/c/c-decl.cc > @@ -5309,7 +5309,7 @@ one_element_array_type_p (const_tree type) > { > if (TREE_CODE (type) != ARRAY_TYPE) > return false; > - return integer_zerop (array_type_nelts (type)); > + return integer_zerop (array_type_nelts_minus_one (type)); > } > > /* Determine whether TYPE is a zero-length array type "[0]". */ > @@ -6257,15 +6257,15 @@ get_parm_array_spec (const struct c_parm *parm, tree > attrs) > for (tree type = parm->specs->type; TREE_CODE (type) == ARRAY_TYPE; > type = TREE_TYPE (type)) > { > - tree nelts = array_type_nelts (type); > - if (error_operand_p (nelts)) > + tree nelts_minus_one = array_type_nelts_minus_one (type); > + if (error_operand_p (nelts_minus_one)) > return attrs; > - if (TREE_CODE (nelts) != INTEGER_CST) > + if (TREE_CODE (nelts_minus_one) != INTEGER_CST) > { > /* Each variable VLA bound is represented by the dollar > sign. */ > spec += "$"; > - tpbnds = tree_cons (NULL_TREE, nelts, tpbnds); > + tpbnds = tree_cons (NULL_TREE, nelts_minus_one, tpbnds); > } > } > tpbnds = nreverse (tpbnds); > diff --git a/gcc/c/c-fold.cc b/gcc/c/c-fold.cc > index 57b67c74bd8..9ea174f79c4 100644 > --- a/gcc/c/c-fold.cc > +++ b/gcc/c/c-fold.cc > @@ -73,11 +73,12 @@ c_fold_array_ref (tree type, tree ary, tree index) > unsigned elem_nchars = (TYPE_PRECISION (elem_type) > / TYPE_PRECISION (char_type_node)); > unsigned len = (unsigned) TREE_STRING_LENGTH (ary) / elem_nchars; > - tree nelts = array_type_nelts (TREE_TYPE (ary)); > + tree nelts_minus_one = array_type_nelts_minus_one (TREE_TYPE (ary)); > bool dummy1 = true, dummy2 = true; > - nelts = c_fully_fold_internal (nelts, true, &dummy1, &dummy2, false, > false); > + nelts_minus_one = c_fully_fold_internal (nelts_minus_one, true, &dummy1, > + &dummy2, false, false); > unsigned HOST_WIDE_INT i = tree_to_uhwi (index); > - if (!tree_int_cst_le (index, nelts) > + if (!tree_int_cst_le (index, nelts_minus_one) > || i >= len > || i + elem_nchars > len) > return NULL_TREE; > diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc > index 0d41a193ec1..eaef2a0e985 100644 > --- a/gcc/config/aarch64/aarch64.cc > +++ b/gcc/config/aarch64/aarch64.cc > @@ -1082,7 +1082,7 @@ pure_scalable_type_info::analyze_array (const_tree type) > > /* An array of unknown, flexible or variable length will be passed and > returned by reference whatever we do. */ > - tree nelts_minus_one = array_type_nelts (type); > + tree nelts_minus_one = array_type_nelts_minus_one (type); > if (!tree_fits_uhwi_p (nelts_minus_one)) > return DOESNT_MATTER; > > diff --git a/gcc/config/i386/i386.cc b/gcc/config/i386/i386.cc > index 9c2ebe74fc9..298d8c9131a 100644 > --- a/gcc/config/i386/i386.cc > +++ b/gcc/config/i386/i386.cc > @@ -24519,7 +24519,7 @@ ix86_canonical_va_list_type (tree type) > return ms_va_list_type_node; > > if ((TREE_CODE (type) == ARRAY_TYPE > - && integer_zerop (array_type_nelts (type))) > + && integer_zerop (array_type_nelts_minus_one (type))) > || POINTER_TYPE_P (type)) > { > tree elem_type = TREE_TYPE (type); > diff --git a/gcc/cp/decl.cc b/gcc/cp/decl.cc > index e7bb4fa3089..fc3e28c4dec 100644 > --- a/gcc/cp/decl.cc > +++ b/gcc/cp/decl.cc > @@ -6936,7 +6936,7 @@ reshape_init_array (tree type, reshape_iter *d, tree > first_initializer_p, > gcc_assert (TREE_CODE (type) == ARRAY_TYPE); > > if (TYPE_DOMAIN (type)) > - max_index = array_type_nelts (type); > + max_index = array_type_nelts_minus_one (type); > > return reshape_init_array_1 (TREE_TYPE (type), max_index, d, > first_initializer_p, complain); > diff --git a/gcc/cp/init.cc b/gcc/cp/init.cc > index e9561c146d7..4558151b4c2 100644 > --- a/gcc/cp/init.cc > +++ b/gcc/cp/init.cc > @@ -260,7 +260,7 @@ build_zero_init_1 (tree type, tree nelts, bool > static_storage_p, > else if (TYPE_DOMAIN (type) == NULL_TREE) > return NULL_TREE; > else > - max_index = array_type_nelts (type); > + max_index = array_type_nelts_minus_one (type); > > /* If we have an error_mark here, we should just return error mark > as we don't know the size of the array yet. */ > @@ -471,7 +471,7 @@ build_value_init_noctor (tree type, tsubst_flags_t > complain) > vec<constructor_elt, va_gc> *v = NULL; > > /* Iterate over the array elements, building initializations. */ > - tree max_index = array_type_nelts (type); > + tree max_index = array_type_nelts_minus_one (type); > > /* If we have an error_mark here, we should just return error mark > as we don't know the size of the array yet. */ > @@ -4516,7 +4516,7 @@ build_vec_init (tree base, tree maxindex, tree init, > : location_of (base)); > > if (TREE_CODE (atype) == ARRAY_TYPE && TYPE_DOMAIN (atype)) > - maxindex = array_type_nelts (atype); > + maxindex = array_type_nelts_minus_one (atype); > > if (maxindex == NULL_TREE || maxindex == error_mark_node) > return error_mark_node; > @@ -5172,7 +5172,7 @@ build_delete (location_t loc, tree otype, tree addr, > error_at (loc, "unknown array size in delete"); > return error_mark_node; > } > - return build_vec_delete (loc, addr, array_type_nelts (type), > + return build_vec_delete (loc, addr, array_type_nelts_minus_one (type), > auto_delete, use_global_delete, complain); > } > > diff --git a/gcc/cp/lambda.cc b/gcc/cp/lambda.cc > index 0770417810e..065113bc122 100644 > --- a/gcc/cp/lambda.cc > +++ b/gcc/cp/lambda.cc > @@ -556,7 +556,8 @@ add_capture (tree lambda, tree id, tree orig_init, bool > by_reference_p, > integer_zero_node, tf_warning_or_error); > initializer = build_constructor_va (init_list_type_node, 2, > NULL_TREE, build_address (elt), > - NULL_TREE, array_type_nelts (type)); > + NULL_TREE, > + array_type_nelts_minus_one (type)); > type = vla_capture_type (type); > } > else if (!dependent_type_p (type) > diff --git a/gcc/cp/tree.cc b/gcc/cp/tree.cc > index dfd4a3a948b..3baeb8fa252 100644 > --- a/gcc/cp/tree.cc > +++ b/gcc/cp/tree.cc > @@ -3080,7 +3080,7 @@ array_type_nelts_top (tree type) > { > return fold_build2_loc (input_location, > PLUS_EXPR, sizetype, > - array_type_nelts (type), > + array_type_nelts_minus_one (type), > size_one_node); > } > > diff --git a/gcc/expr.cc b/gcc/expr.cc > index ffbac513692..cba8b365856 100644 > --- a/gcc/expr.cc > +++ b/gcc/expr.cc > @@ -6970,14 +6970,14 @@ count_type_elements (const_tree type, bool for_ctor_p) > { > case ARRAY_TYPE: > { > - tree nelts; > + tree nelts_minus_one; > > - nelts = array_type_nelts (type); > - if (nelts && tree_fits_uhwi_p (nelts)) > + nelts_minus_one = array_type_nelts_minus_one (type); > + if (nelts_minus_one && tree_fits_uhwi_p (nelts_minus_one)) > { > unsigned HOST_WIDE_INT n; > > - n = tree_to_uhwi (nelts) + 1; > + n = tree_to_uhwi (nelts_minus_one) + 1; > if (n == 0 || for_ctor_p) > return n; > else > diff --git a/gcc/fortran/trans-array.cc b/gcc/fortran/trans-array.cc > index 140d933e45d..b7927bcdf01 100644 > --- a/gcc/fortran/trans-array.cc > +++ b/gcc/fortran/trans-array.cc > @@ -9572,7 +9572,7 @@ structure_alloc_comps (gfc_symbol * der_type, tree > decl, tree dest, > else > { > /* Otherwise use the TYPE_DOMAIN information. */ > - tmp = array_type_nelts (decl_type); > + tmp = array_type_nelts_minus_one (decl_type); > tmp = fold_convert (gfc_array_index_type, tmp); > } > > diff --git a/gcc/fortran/trans-openmp.cc b/gcc/fortran/trans-openmp.cc > index df1bf144e23..14cd2f9fad7 100644 > --- a/gcc/fortran/trans-openmp.cc > +++ b/gcc/fortran/trans-openmp.cc > @@ -582,7 +582,7 @@ gfc_walk_alloc_comps (tree decl, tree dest, tree var, > tem = size_binop (MINUS_EXPR, tem, size_one_node); > } > else > - tem = array_type_nelts (type); > + tem = array_type_nelts_minus_one (type); > tem = fold_convert (gfc_array_index_type, tem); > } > > @@ -1309,7 +1309,7 @@ gfc_omp_clause_linear_ctor (tree clause, tree dest, > tree src, tree add) > nelems = size_binop (MINUS_EXPR, nelems, size_one_node); > } > else > - nelems = array_type_nelts (type); > + nelems = array_type_nelts_minus_one (type); > nelems = fold_convert (gfc_array_index_type, nelems); > > gfc_omp_linear_clause_add_loop (&block, dest, src, add, nelems); > diff --git a/gcc/rust/backend/rust-tree.cc b/gcc/rust/backend/rust-tree.cc > index 2a5ffcbf895..a2c12204667 100644 > --- a/gcc/rust/backend/rust-tree.cc > +++ b/gcc/rust/backend/rust-tree.cc > @@ -869,7 +869,7 @@ tree > array_type_nelts_top (tree type) > { > return fold_build2_loc (input_location, PLUS_EXPR, sizetype, > - array_type_nelts (type), size_one_node); > + array_type_nelts_minus_one (type), size_one_node); > } > > // forked from gcc/cp/tree.cc builtin_valid_in_constant_expr_p > diff --git a/gcc/tree.cc b/gcc/tree.cc > index 2d2d5b6db6e..dcaccc4c362 100644 > --- a/gcc/tree.cc > +++ b/gcc/tree.cc > @@ -3698,7 +3698,7 @@ int_byte_position (const_tree field) > ARRAY_TYPE) minus one. This counts only elements of the top array. */ > > tree > -array_type_nelts (const_tree type) > +array_type_nelts_minus_one (const_tree type) > { > tree index_type, min, max; > > @@ -14797,7 +14797,7 @@ is_empty_type (const_tree type) > return true; > } > else if (TREE_CODE (type) == ARRAY_TYPE) > - return (integer_minus_onep (array_type_nelts (type)) > + return (integer_minus_onep (array_type_nelts_minus_one (type)) > || TYPE_DOMAIN (type) == NULL_TREE > || is_empty_type (TREE_TYPE (type))); > return false; > diff --git a/gcc/tree.h b/gcc/tree.h > index 28e8e71b036..fdddbcf408e 100644 > --- a/gcc/tree.h > +++ b/gcc/tree.h > @@ -4921,7 +4921,7 @@ extern tree build_method_type_directly (tree, tree, > tree); > extern tree build_method_type (tree, tree); > extern tree build_offset_type (tree, tree); > extern tree build_complex_type (tree, bool named = false); > -extern tree array_type_nelts (const_tree); > +extern tree array_type_nelts_minus_one (const_tree); > > extern tree value_member (tree, tree); > extern tree purpose_member (const_tree, tree); > -- > 2.45.2 >