diff options
author | Daniel Jacobowitz <drow@false.org> | 2006-08-25 16:32:32 +0000 |
---|---|---|
committer | Daniel Jacobowitz <drow@false.org> | 2006-08-25 16:32:32 +0000 |
commit | 14711c8202654c66aa23a10247dfd06b9d88b19f (patch) | |
tree | e16e78253ad262eb106991bfb849be3080d94772 /gdb | |
parent | 74869ac7a4dcde1530155889456cbaa37f87b60c (diff) | |
download | gdb-14711c8202654c66aa23a10247dfd06b9d88b19f.zip gdb-14711c8202654c66aa23a10247dfd06b9d88b19f.tar.gz gdb-14711c8202654c66aa23a10247dfd06b9d88b19f.tar.bz2 |
* buildsym.c (finish_block): Don't adjust the boundaries of
nested functions.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/buildsym.c | 11 |
2 files changed, 13 insertions, 3 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 88d52a7..635cc7f 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2006-08-25 Daniel Jacobowitz <dan@codesourcery.com> + + * buildsym.c (finish_block): Don't adjust the boundaries of + nested functions. + 2006-08-24 Andreas Schwab <schwab@suse.de> * symfile.c (add_symbol_file_command): Fix off-by-one when diff --git a/gdb/buildsym.c b/gdb/buildsym.c index d0143bc..2e946b9 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) { |