From: Pengxuan Zheng Date: Fri, 16 May 2025 00:52:29 +0000 (-0700) Subject: aarch64: Fix an oversight in aarch64_evpc_reencode X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d77c3bc1c35e3032b91648dbef4e0ef1f6020017;p=thirdparty%2Fgcc.git aarch64: Fix an oversight in aarch64_evpc_reencode Some fields (e.g., zero_op0_p and zero_op1_p) of the struct "newd" may be left uninitialized in aarch64_evpc_reencode. This can cause reading of uninitialized data. I found this oversight when testing my patches on and/fmov optimizations. This patch fixes the bug by zero initializing the struct. Pushed as obvious after bootstrap/test on aarch64-linux-gnu. gcc/ChangeLog: * config/aarch64/aarch64.cc (aarch64_evpc_reencode): Zero initialize newd. --- diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc index 901aa6ea68a..f5552e4b86c 100644 --- a/gcc/config/aarch64/aarch64.cc +++ b/gcc/config/aarch64/aarch64.cc @@ -26277,7 +26277,7 @@ aarch64_evpc_trn (struct expand_vec_perm_d *d) static bool aarch64_evpc_reencode (struct expand_vec_perm_d *d) { - expand_vec_perm_d newd; + expand_vec_perm_d newd = {}; /* The subregs that we'd create are not supported for big-endian SVE; see aarch64_modes_compatible_p for details. */