From: Christopher Bazley Date: Tue, 23 Jun 2026 10:36:10 +0000 (+0000) Subject: Fix confusing variable names in build_vector_from_ctor X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d3cd3ff57b6ad4eb434fd75e4e54b2884ab4a44f;p=thirdparty%2Fgcc.git Fix confusing variable names in build_vector_from_ctor 'nelts' is not the number of encoded elements in a VECTOR_CST; it is the number of patterns. Sometimes those interpretations coincide, as in the case of fixed length vector types (for which the number of elements per pattern is one), but not always. 'step' is not the step between the second and third element of a stepped pattern; it is the number of elements per pattern. This has led to confusion on the mailing list. Both variables are hereby renamed and the code that assigns their values refactored to be more palatable. gcc/ChangeLog: * tree.cc (build_vector_from_ctor): Rename variables and refactor assignments. Co-authored-by: Richard Sandiford --- diff --git a/gcc/tree.cc b/gcc/tree.cc index 90c8f2a35ea..411752d1463 100644 --- a/gcc/tree.cc +++ b/gcc/tree.cc @@ -2201,23 +2201,20 @@ build_vector_from_ctor (tree type, const vec *v) if (vec_safe_length (v) == 0) return build_zero_cst (type); - unsigned HOST_WIDE_INT idx, nelts, step = 1; + unsigned HOST_WIDE_INT idx, npatterns, nelts_per_pattern; tree value; /* If the vector is a VLA, build a VLA constant vector. */ - if (!TYPE_VECTOR_SUBPARTS (type).is_constant (&nelts)) - { - nelts = constant_lower_bound (TYPE_VECTOR_SUBPARTS (type)); - gcc_assert (vec_safe_length (v) <= nelts); - step = 2; - } + npatterns = constant_lower_bound (TYPE_VECTOR_SUBPARTS (type)); + nelts_per_pattern = TYPE_VECTOR_SUBPARTS (type).is_constant () ? 1 : 2; + gcc_assert (vec_safe_length (v) <= npatterns); - tree_vector_builder vec (type, nelts, step); + tree_vector_builder vec (type, npatterns, nelts_per_pattern); FOR_EACH_CONSTRUCTOR_VALUE (v, idx, value) { if (TREE_CODE (value) == VECTOR_CST) { - /* If NELTS is constant then this must be too. */ + /* If NPATTERNS is constant then this must be too. */ unsigned int sub_nelts = VECTOR_CST_NELTS (value).to_constant (); for (unsigned i = 0; i < sub_nelts; ++i) vec.quick_push (VECTOR_CST_ELT (value, i)); @@ -2225,7 +2222,7 @@ build_vector_from_ctor (tree type, const vec *v) else vec.quick_push (value); } - while (vec.length () < nelts * step) + while (vec.length () < npatterns * nelts_per_pattern) vec.quick_push (build_zero_cst (TREE_TYPE (type))); return vec.build ();