https://bugs.kde.org/show_bug.cgi?id=434296
Bug ID: 434296 Summary: s390x: False-positive memcheck diagnostics from VSTRC instruction Product: valgrind Version: 3.15 SVN Platform: Other OS: Linux Status: REPORTED Severity: normal Priority: NOR Component: vex Assignee: jsew...@acm.org Reporter: ar...@linux.ibm.com Target Milestone: --- When using Valgrind's memcheck on s390x for Python, I see the following: $ valgrind python --help ==3451325== Memcheck, a memory error detector ==3451325== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. ==3451325== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info ==3451325== Command: python --help ==3451325== ==3451325== Conditional jump or move depends on uninitialised value(s) ==3451325== at 0x4889F82: __internal_ascii_loop_vx (loop.c:336) ==3451325== by 0x4889F82: ____gconv_transform_internal_ascii_vx (skeleton.c:620) ... The instruction Valgrind complains about is a conditional branch. The condition code has last been updated by the instruction VSTRC (vector string range compare). That instruction has three vector input operands, one of which is only partially initialized and has the remaining bits undefined, so Valgrind probably deduces that the output operand and resulting condition code are undefined as well. But the undefined elements in the vector operand are actually not used by the instruction. The usage of these elements is influenced by corresponding elements in the third input operand. The VSTRC instruction is currently implemented with a dirty helper. This also applies to some other vector string instructions, so those are likely affected by similar issues. -- You are receiving this mail because: You are watching all bug changes.