[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-bugs-dist
Subject:    [valgrind] [Bug 345751] New: OS X: Incorrect result for operator Iop_Add32 and Iop_Add64
From:       <rhyskidd () gmail ! com>
Date:       2015-04-01 11:10:25
Message-ID: bug-345751-17878 () http ! bugs ! kde ! org/
[Download RAW message or body]

https://bugs.kde.org/show_bug.cgi?id=345751

            Bug ID: 345751
           Summary: OS X: Incorrect result for operator Iop_Add32 and
                    Iop_Add64
           Product: valgrind
           Version: 3.10 SVN
          Platform: Mac OS X Disk Images
                OS: OS X
            Status: UNCONFIRMED
          Severity: normal
          Priority: NOR
         Component: vex
          Assignee: jseward@acm.org
          Reporter: rhyskidd@gmail.com

Running through the regression tests on OS X (10.9 here, using clang based on
LLVM 3.5svn) I see the following interesting failures in the backend of
memcheck/tests/vbit-test/vbit-test.

I'm not sure how prevalent this issue is cascading through other code, but it
looks pretty serious on this platform. This regression test also fails on OS X
10.10.

$ valgrind -q ./memcheck/tests/vbit-test/vbit-test -v -v
Testing operator Iop_Add8
Testing operator Iop_Add16
Testing operator Iop_Add32
*** Incorrect result for operator Iop_Add32
    opnd 0:  vbits = 00000000   value = 00000000
    opnd 1:  vbits = 00000001
    result:  vbits = 00000001
    expect:  vbits = ffffffff
*** Incorrect result for operator Iop_Add32
    opnd 0:  vbits = 00000000   value = 00000000
    opnd 1:  vbits = 00000002
    result:  vbits = 00000002
    expect:  vbits = fffffffe
*** Incorrect result for operator Iop_Add32
    opnd 0:  vbits = 00000000   value = 00000000
    opnd 1:  vbits = 00000004
    result:  vbits = 00000004
    expect:  vbits = fffffffc
...
Testing operator Iop_Add64
*** Incorrect result for operator Iop_Add64
    opnd 0:  vbits = 0000000000000000   value = 0000000000000000
    opnd 1:  vbits = 0000000000000001
    result:  vbits = 0000000000000001
    expect:  vbits = ffffffffffffffff
*** Incorrect result for operator Iop_Add64
    opnd 0:  vbits = 0000000000000000   value = 0000000000000000
    opnd 1:  vbits = 0000000000000002
    result:  vbits = 0000000000000002
    expect:  vbits = fffffffffffffffe
*** Incorrect result for operator Iop_Add64
    opnd 0:  vbits = 0000000000000000   value = 0000000000000000
    opnd 1:  vbits = 0000000000000004
    result:  vbits = 0000000000000004
    expect:  vbits = fffffffffffffffc
...
Testing operator Iop_Sub8
Testing operator Iop_Sub16
Testing operator Iop_Sub32
Testing operator Iop_Sub64
Testing operator Iop_Mul16
Testing operator Iop_Mul32
Testing operator Iop_Mul64
...
etc etc

Reproducible: Always

Steps to Reproduce:
1. make regtest
2. $ perl tests/vg_regtest memcheck/tests/vbit-test/vbit-test
OR
3. $ valgrind -q ./memcheck/tests/vbit-test/vbit-test -v -v



$ clang -v
Apple LLVM version 6.0 (clang-600.0.57) (based on LLVM 3.5svn)
Target: x86_64-apple-darwin13.4.0
Thread model: posix
$ uname -mrs
Darwin 13.4.0 x86_64

-- 
You are receiving this mail because:
You are watching all bug changes.
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic