aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog6
-rw-r--r--gdb/block.c4
-rw-r--r--gdb/blockframe.c1
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;