From 2edd73cad9b1d1be76ba3b0d95ffc11fed767ca0 Mon Sep 17 00:00:00 2001 From: Josef Weidendorfer Date: Fri, 4 Mar 2011 10:53:12 +0000 Subject: [PATCH] Fix for bug 265771. For calls (structure jCC), Callgrind maintains for the source both the BBCC (counter array for the source context of the call, which includes the BB of the source call position), as well as a jump number in the source BB to reconstruct the guest instruction address of the call. In setup_bbcc, this jump number is stored in , and used when creating a new jCC on a call. The value of got out of sync when we simulate a real jump between different functions as return/call pair: the call source was reset for the popped jCC, but not . git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11579 --- callgrind/bbcc.c | 1 + 1 file changed, 1 insertion(+) diff --git a/callgrind/bbcc.c b/callgrind/bbcc.c index bab4858544..4b01b97b91 100644 --- a/callgrind/bbcc.c +++ b/callgrind/bbcc.c @@ -693,6 +693,7 @@ void CLG_(setup_bbcc)(BB* bb) /* change source for delayed push */ CLG_(current_state).bbcc = top_ce->jcc->from; sp = top_ce->sp; + passed = top_ce->jcc->jmp; CLG_(pop_call_stack)(); } else { -- 2.47.3