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.

Reply via email to