OSDN Git Service

* buildsym.c (finish_block): Don't adjust the boundaries of
authordrow <drow>
Fri, 25 Aug 2006 16:32:31 +0000 (16:32 +0000)
committerdrow <drow>
Fri, 25 Aug 2006 16:32:31 +0000 (16:32 +0000)
nested functions.

gdb/ChangeLog
gdb/buildsym.c

index 88d52a7..635cc7f 100644 (file)
@@ -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
index d0143bc..2e946b9 100644 (file)
@@ -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)
                {