From: Philippe Waroquiers Date: Tue, 2 Sep 2014 22:20:14 +0000 (+0000) Subject: gcc on arm64 -Og produces a (false positive) warning that X-Git-Tag: svn/VALGRIND_3_10_0~69 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3b829c3acc2fa99d327608749e1e0a69eb949871;p=thirdparty%2Fvalgrind.git gcc on arm64 -Og produces a (false positive) warning that 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 --- diff --git a/coregrind/m_addrinfo.c b/coregrind/m_addrinfo.c index af52be4ac3..49c8c5db9b 100644 --- a/coregrind/m_addrinfo.c +++ b/coregrind/m_addrinfo.c @@ -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);