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

List:       kde-bugs-dist
Subject:    [valgrind] [Bug 326955] false positive : move depends on uninitialised value wcscpy
From:       David Dyck <david.dyck () fluke ! com>
Date:       2013-10-31 23:00:02
Message-ID: bug-326955-17878-3g0FHlzv1V () http ! bugs ! kde ! org/
[Download RAW message or body]

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

--- Comment #3 from David Dyck <david.dyck@fluke.com> ---
Interesting that the only difference between getting false positives or not is
the
compiler

# no false positive
gcc -m32 -Wall -O0 -c  valgrind_bug_wcscpy.c && g++ -m32 valgrind_bug_wcscpy.o
&& valgrind -v --track-origins=yes ./a.out

# false positives
 g++ -m32 -Wall -O0 -c  valgrind_bug_wcscpy.c && g++ -m32 valgrind_bug_wcscpy.o
&& valgrind -v --track-origins=yes ./a.out

Maybe this is a red-herring - and more optimizations are happening in one of
the compilers.

> diff -u valgrind_bug_wcscpy.s*
--- valgrind_bug_wcscpy.s.g++   2013-10-31 15:52:25.330401000 -0700
+++ valgrind_bug_wcscpy.s.gcc   2013-10-31 15:52:38.120528000 -0700
@@ -35,15 +35,15 @@
        andl    $-16, %esp
        subl    $96, %esp
        movl    $.LC0, 4(%esp)
-       leal    16(%esp), %eax
+       leal    56(%esp), %eax
        movl    %eax, (%esp)
        call    wcscpy
-       leal    16(%esp), %eax
-       movl    %eax, 4(%esp)
        leal    56(%esp), %eax
+       movl    %eax, 4(%esp)
+       leal    16(%esp), %eax
        movl    %eax, (%esp)
        call    wcscpy
-       leal    56(%esp), %eax
+       leal    16(%esp), %eax
        movl    %eax, (%esp)
        call    wcslen
        leave

-- 
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