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
>

Reply via email to