From: Julian Seward Date: Tue, 7 Nov 2017 14:01:51 +0000 (+0100) Subject: s390_irgen_EX_SS: add initialisations so as to remove (false positive) warnings from... X-Git-Tag: VALGRIND_3_14_0~206 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d813fb74af762393a43dd9c70882e655f35ec2ca;p=thirdparty%2Fvalgrind.git s390_irgen_EX_SS: add initialisations so as to remove (false positive) warnings from gcc-7.x. When compiling guest_s390_toIR.c for a 32-bit target (a configuration in which it will never be used, but never mind), gcc-7.x notices that sizeof(ss.dec) is larger than sizeof(ss.bytes), so the initialisation of ss.bytes leaves ss.dec.b2 and ss.dec.d2 uninitialised. This patch causes both variants to be initialised. When built for a 64 bit target, the existing initialisation of ss.bytes covers ss.dec completely, so there is no error. --- diff --git a/VEX/priv/guest_s390_toIR.c b/VEX/priv/guest_s390_toIR.c index 14c8950826..b36b85e918 100644 --- a/VEX/priv/guest_s390_toIR.c +++ b/VEX/priv/guest_s390_toIR.c @@ -11078,6 +11078,7 @@ s390_irgen_EX_SS(UChar r, IRTemp addr2, stmt(IRStmt_Put(S390X_GUEST_OFFSET(guest_CMLEN), mkU64(4))); restart_if(mkexpr(cond)); + ss.dec.op = ss.dec.l = ss.dec.b1 = ss.dec.d1 = ss.dec.b2 = ss.dec.d2 = 0; ss.bytes = last_execute_target; assign(start1, binop(Iop_Add64, mkU64(ss.dec.d1), ss.dec.b1 != 0 ? get_gpr_dw0(ss.dec.b1) : mkU64(0)));