]> gcc.gnu.org Git - gcc.git/commitdiff
dwarf2out.c (new_loc_descr): Use calloc.
authorJason Merrill <jason@redhat.com>
Mon, 28 Aug 2000 23:07:55 +0000 (19:07 -0400)
committerJason Merrill <jason@gcc.gnu.org>
Mon, 28 Aug 2000 23:07:55 +0000 (19:07 -0400)
        * dwarf2out.c (new_loc_descr): Use calloc.
        (splice_child_die): Remove the die from the right parent.
        (gen_struct_or_union_die): Don't add AT_name to a specification DIE.

From-SVN: r36021

gcc/ChangeLog
gcc/dwarf2out.c

index 2d0bb76ac58d4515bc50d7549a8974e3e0de0b90..885b563856589b970a64744c3f581ada9bdc49c5 100644 (file)
@@ -1,3 +1,9 @@
+2000-08-28  Jason Merrill  <jason@redhat.com>
+
+       * dwarf2out.c (new_loc_descr): Use calloc.
+       (splice_child_die): Remove the die from the right parent.
+       (gen_struct_or_union_die): Don't add AT_name to a specification DIE.
+
 Mon Aug 28 19:02:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
 
        * toplev.c (decode_g_option): Don't give warning for unknown -g
index 11e93026c97d95b798ad9b30fb0a007cdb967b4f..cc121e1283411bdba997d0130fa0a1c6d7a8dbfb 100644 (file)
@@ -2470,10 +2470,11 @@ new_loc_descr (op, oprnd1, oprnd2)
      register unsigned long oprnd1;
      register unsigned long oprnd2;
 {
+  /* Use xcalloc here so we clear out all of the long_long constant in
+     the union.  */
   register dw_loc_descr_ref descr
-    = (dw_loc_descr_ref) xmalloc (sizeof (dw_loc_descr_node));
+    = (dw_loc_descr_ref) xcalloc (1, sizeof (dw_loc_descr_node));
 
-  descr->dw_loc_next = NULL;
   descr->dw_loc_opc = op;
   descr->dw_loc_oprnd1.val_class = dw_val_class_unsigned_const;
   descr->dw_loc_oprnd1.v.val_unsigned = oprnd1;
@@ -4649,7 +4650,7 @@ splice_child_die (parent, child)
       && child->die_parent != get_AT_ref (parent, DW_AT_specification))
     abort ();
 
-  for (p = &(parent->die_child); *p; p = &((*p)->die_sib))
+  for (p = &(child->die_parent->die_child); *p; p = &((*p)->die_sib))
     if (*p == child)
       {
        *p = child->die_sib;
@@ -9185,9 +9186,10 @@ gen_struct_or_union_type_die (type, context_die)
                          ? DW_TAG_structure_type : DW_TAG_union_type,
                          scope_die);
       equate_type_number_to_die (type, type_die);
-      add_name_attribute (type_die, type_tag (type));
       if (old_die)
        add_AT_die_ref (type_die, DW_AT_specification, old_die);
+      else
+       add_name_attribute (type_die, type_tag (type));
     }
   else
     remove_AT (type_die, DW_AT_declaration);
This page took 0.089495 seconds and 5 git commands to generate.