]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
gcc on arm64 -Og produces a (false positive) warning that
authorPhilippe Waroquiers <philippe.waroquiers@skynet.be>
Tue, 2 Sep 2014 22:20:14 +0000 (22:20 +0000)
committerPhilippe Waroquiers <philippe.waroquiers@skynet.be>
Tue, 2 Sep 2014 22:20:14 +0000 (22:20 +0000)
stackPos might be used uninitialised.

Silence gcc by assigning a value to stackPos.
This value must be overriden if a stack description is found.
The fact that the value is overriden is asserted.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14438

coregrind/m_addrinfo.c

index af52be4ac3c652c95d1924c44bf95521f3566d8b..49c8c5db9bafab82552da0e90dbf905f97b54959 100644 (file)
@@ -228,7 +228,9 @@ void VG_(describe_addr) ( Addr a, /*OUT*/AddrInfo* ai )
       too small). */
    {
       ThreadId   tid;
-      StackPos stackPos;
+      StackPos stackPos = StackPos_stacked;
+      // Default init to StackPos_stacked, to silence gcc warning.
+      // We assert this value is overriden if a stack descr is produced.
 
       // First try to find a tid with stack containing a
       tid = find_tid_with_stack_containing (a);
@@ -256,6 +258,7 @@ void VG_(describe_addr) ( Addr a, /*OUT*/AddrInfo* ai )
          ai->Addr.Stack.tinfo.tid = tid;
          ai->Addr.Stack.IP = 0;
          ai->Addr.Stack.frameNo = -1;
+         vg_assert (stackPos != StackPos_stacked);
          ai->Addr.Stack.stackPos = stackPos;
          vg_assert (a < VG_(get_SP)(tid));
          ai->Addr.Stack.spoffset = a - VG_(get_SP)(tid);