diff options
-rw-r--r-- | gdb/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/block.c | 4 | ||||
-rw-r--r-- | gdb/blockframe.c | 1 |
3 files changed, 10 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 8e6e6e0..173b937 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2009-09-08 Joel Brobecker <brobecker@adacore.com> + + * block.c (contained_in): Return zero for nested functions. + * blockframe.c (block_innermost_frame): Delete unreferenced local + variable. + 2009-09-08 Doug Evans <dje@google.com> * target.c (initialize_targets): Fix thinko in stack_cache_enabled_p. diff --git a/gdb/block.c b/gdb/block.c index 1889ecd..97ea67a 100644 --- a/gdb/block.c +++ b/gdb/block.c @@ -52,6 +52,10 @@ contained_in (const struct block *a, const struct block *b) { if (a == b) return 1; + /* If A is a function block, then A cannot be contained in B, + except if A was inlined. */ + if (BLOCK_FUNCTION (a) != NULL && !block_inlined_p (a)) + return 0; a = BLOCK_SUPERBLOCK (a); } while (a != NULL); diff --git a/gdb/blockframe.c b/gdb/blockframe.c index 41a3502..0960837 100644 --- a/gdb/blockframe.c +++ b/gdb/blockframe.c @@ -363,7 +363,6 @@ block_innermost_frame (struct block *block) struct frame_info *frame; CORE_ADDR start; CORE_ADDR end; - CORE_ADDR calling_pc; if (block == NULL) return NULL; |