keiths / rpms / gdb

Forked from rpms/gdb 4 months ago
Clone
Blob Blame History Raw
http://sourceware.org/ml/gdb-cvs/2010-09/msg00063.html

### src/gdb/ChangeLog	2010/09/08 19:49:28	1.12163
### src/gdb/ChangeLog	2010/09/08 23:14:52	1.12164
## -1,3 +1,8 @@
+2010-09-08  Daniel Jacobowitz  <dan@codesourcery.com>
+
+	* dwarf2read.c (read_func_scope, read_structure_type)
+	(read_common_block): Check for a NULL return from new_symbol.
+
 2010-09-08  Jan Kratochvil  <jan.kratochvil@redhat.com>
 
 	* dwarf2read.c (dwarf2_read_index): Return on no SEC_HAS_CONTENTS.
Index: gdb-7.2/gdb/dwarf2read.c
===================================================================
--- gdb-7.2.orig/gdb/dwarf2read.c	2011-01-01 17:47:52.000000000 +0100
+++ gdb-7.2/gdb/dwarf2read.c	2011-01-01 17:48:35.000000000 +0100
@@ -5243,7 +5243,8 @@ read_func_scope (struct die_info *die, s
 	    {
 	      struct symbol *arg = new_symbol (child_die, NULL, cu);
 
-	      VEC_safe_push (symbolp, template_args, arg);
+	      if (arg != NULL)
+		VEC_safe_push (symbolp, template_args, arg);
 	    }
 	  else
 	    process_die (child_die, cu);
@@ -6558,7 +6559,8 @@ read_structure_type (struct die_info *di
 	    {
 	      struct symbol *arg = new_symbol (child_die, NULL, cu);
 
-	      VEC_safe_push (symbolp, template_args, arg);
+	      if (arg != NULL)
+		VEC_safe_push (symbolp, template_args, arg);
 	    }
 
 	  child_die = sibling_die (child_die);
@@ -7104,7 +7106,7 @@ read_common_block (struct die_info *die,
 
 	  /* Undocumented in DWARF3, when it can be present?  */
 	  attr = dwarf2_attr (child_die, DW_AT_data_member_location, cu);
-	  if (attr)
+	  if (sym != NULL && attr != NULL)
 	    {
 	      CORE_ADDR byte_offset = 0;