[committed] d: Fix build on aarch64-suse-linux

Message ID 20220629163533.1461114-1-ibuclaw@gdcproject.org
State Committed
Commit 98c18e040e2c65db93f1498bb421e83165da3738
Headers
Series [committed] d: Fix build on aarch64-suse-linux |

Commit Message

Iain Buclaw June 29, 2022, 4:35 p.m. UTC
  Hi,

The variables being used to get the result out of TYPE_VECTOR_SUBPARTS
were being flagged by -Werror=maybe-uninitialized.  As they have already
been checked for being constant earlier, use `to_constant' instead.

This patch is based on feedback from Andreas.  Given the error they got,
this seems obvious.  Have only regstrapped on x86_64-linux-gnu though.

Regards,
Iain.

---
gcc/d/ChangeLog:

	* intrinsics.cc (build_shuffle_mask_type): Use to_constant when
	getting the number of subparts from a vector type.
	(expand_intrinsic_vec_shufflevector): Likewise.
---
 gcc/d/intrinsics.cc | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)
  

Patch

diff --git a/gcc/d/intrinsics.cc b/gcc/d/intrinsics.cc
index 454d940d1b5..75d43186909 100644
--- a/gcc/d/intrinsics.cc
+++ b/gcc/d/intrinsics.cc
@@ -273,8 +273,7 @@  build_shuffle_mask_type (tree type)
      printed (this should really be handled by a D tree printer).  */
   Type *t = build_frontend_type (inner);
   gcc_assert (t != NULL);
-  unsigned HOST_WIDE_INT nunits;
-  TYPE_VECTOR_SUBPARTS (type).is_constant (&nunits);
+  unsigned HOST_WIDE_INT nunits = TYPE_VECTOR_SUBPARTS (type).to_constant ();
 
   return build_ctype (TypeVector::create (t->sarrayOf (nunits)));
 }
@@ -1190,9 +1189,10 @@  expand_intrinsic_vec_shufflevector (tree callexp)
   tree vec0 = CALL_EXPR_ARG (callexp, 0);
   tree vec1 = CALL_EXPR_ARG (callexp, 1);
 
-  unsigned HOST_WIDE_INT v0elems, v1elems;
-  TYPE_VECTOR_SUBPARTS (TREE_TYPE (vec0)).is_constant (&v0elems);
-  TYPE_VECTOR_SUBPARTS (TREE_TYPE (vec1)).is_constant (&v1elems);
+  unsigned HOST_WIDE_INT v0elems =
+    TYPE_VECTOR_SUBPARTS (TREE_TYPE (vec0)).to_constant ();
+  unsigned HOST_WIDE_INT v1elems =
+    TYPE_VECTOR_SUBPARTS (TREE_TYPE (vec1)).to_constant ();
 
   unsigned HOST_WIDE_INT num_indices = call_expr_nargs (callexp) - 2;
   unsigned HOST_WIDE_INT masklen = MAX (num_indices, MAX (v0elems, v1elems));