PR gdb/14550
authorSanjoy Das <sanjoyd@sourceware.org>
Thu, 17 Jan 2013 14:11:27 +0000 (14:11 +0000)
committerSanjoy Das <sanjoyd@sourceware.org>
Thu, 17 Jan 2013 14:11:27 +0000 (14:11 +0000)
 * jit.c (finalize_symtab): Ensure that only the global block has a
   NULL superblock.

gdb/ChangeLog
gdb/jit.c

index d9db2b5..9a29599 100644 (file)
@@ -1,3 +1,10 @@
+2012-01-17  Sanjoy Das <sanjoy@playingwithpointers.com>
+
+       PR gdb/14550
+
+       * jit.c (finalize_symtab): Ensure that only the global block has a
+       NULL superblock.
+
 2013-01-17  Pedro Alves  <palves@redhat.com>
 
        * acinclude.m4: Include ../config/plugins.m4,
index a930f74..f542f9e 100644 (file)
--- a/gdb/jit.c
+++ b/gdb/jit.c
@@ -724,8 +724,18 @@ finalize_symtab (struct gdb_symtab *stab, struct objfile *objfile)
        gdb_block_iter = gdb_block_iter->next)
     {
       if (gdb_block_iter->parent != NULL)
-        BLOCK_SUPERBLOCK (gdb_block_iter->real_block) =
-          gdb_block_iter->parent->real_block;
+       {
+         /* If the plugin specifically mentioned a parent block, we
+            use that.  */
+         BLOCK_SUPERBLOCK (gdb_block_iter->real_block) =
+           gdb_block_iter->parent->real_block;
+       }
+      else
+       {
+         /* And if not, we set a default parent block.  */
+         BLOCK_SUPERBLOCK (gdb_block_iter->real_block) =
+           BLOCKVECTOR_BLOCK (symtab->blockvector, STATIC_BLOCK);
+       }
     }
 
   /* Free memory.  */