diff options
author | Daniel Jacobowitz <dan@debian.org> | 2006-08-25 16:32:32 +0000 |
---|---|---|
committer | Daniel Jacobowitz <dan@debian.org> | 2006-08-25 16:32:32 +0000 |
commit | 6eb08ff2cb9434a8c78fde25668e1a9cc1f904ed (patch) | |
tree | fc6a37a34c6e46ade52b6e60f642dacdaa29ae4a /gdb/buildsym.c | |
parent | baaf807c6a9f69b0254494ebce015132d0658ebd (diff) | |
download | gdb-6eb08ff2cb9434a8c78fde25668e1a9cc1f904ed.tar.gz |
* buildsym.c (finish_block): Don't adjust the boundaries of
nested functions.
Diffstat (limited to 'gdb/buildsym.c')
-rw-r--r-- | gdb/buildsym.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/gdb/buildsym.c b/gdb/buildsym.c index d0143bc3f24..2e946b9a102 100644 --- a/gdb/buildsym.c +++ b/gdb/buildsym.c @@ -400,9 +400,14 @@ finish_block (struct symbol *symbol, struct pending **listhead, #if 1 /* Check to be sure the blocks are nested as we receive them. If the compiler/assembler/linker work, this just - burns a small amount of time. */ - if (BLOCK_START (pblock->block) < BLOCK_START (block) || - BLOCK_END (pblock->block) > BLOCK_END (block)) + burns a small amount of time. + + Skip blocks which correspond to a function; they're not + physically nested inside this other blocks, only + lexically nested. */ + if (BLOCK_FUNCTION (pblock->block) == NULL + && (BLOCK_START (pblock->block) < BLOCK_START (block) + || BLOCK_END (pblock->block) > BLOCK_END (block))) { if (symbol) { |