2002-09-03 David Carlton <carlton@math.stanford.edu>
authorDavid Carlton <carlton@bactrian.org>
Tue, 3 Sep 2002 17:32:11 +0000 (17:32 +0000)
committerDavid Carlton <carlton@bactrian.org>
Tue, 3 Sep 2002 17:32:11 +0000 (17:32 +0000)
* dwarf2read.c (dwarf2_add_member_fn): Add the 'type'
argument (PR gdb/653).  Update call to smash_to_method_type.
(read_structure_scope): Update call to dwarf2_add_member_fn.

gdb/ChangeLog
gdb/dwarf2read.c

index 65904f8024eea52925bd853e1b9af9bf4ea1869e..a64519e2369d55c973b5d1990ddd66db6eedfc65 100644 (file)
@@ -1,3 +1,9 @@
+2002-09-03  David Carlton  <carlton@math.stanford.edu>
+
+       * dwarf2read.c (dwarf2_add_member_fn): Add the 'type'
+       argument (PR gdb/653).  Update call to smash_to_method_type.
+       (read_structure_scope): Update call to dwarf2_add_member_fn.
+
 2002-09-03  Michal Ludvig  <mludvig@suse.cz>
 
        * x86-64-linux-tdep.c: Include gdb_string.h
index 0d96e1ff74df32ddf1e0740163c8035cf5f8ac03..4ef683c13dca6cc159ef2284247173d01cd48fc2 100644 (file)
@@ -803,7 +803,8 @@ static void dwarf2_attach_fields_to_type (struct field_info *,
                                          struct type *, struct objfile *);
 
 static void dwarf2_add_member_fn (struct field_info *,
-                                 struct die_info *, struct objfile *objfile,
+                                 struct die_info *, struct type *,
+                                 struct objfile *objfile,
                                  const struct comp_unit_head *);
 
 static void dwarf2_attach_fn_fields_to_type (struct field_info *,
@@ -2259,7 +2260,7 @@ dwarf2_attach_fields_to_type (struct field_info *fip, struct type *type,
 
 static void
 dwarf2_add_member_fn (struct field_info *fip, struct die_info *die,
-                     struct objfile *objfile,
+                     struct type *type, struct objfile *objfile,
                      const struct comp_unit_head *cu_header)
 {
   struct attribute *attr;
@@ -2327,7 +2328,9 @@ dwarf2_add_member_fn (struct field_info *fip, struct die_info *die,
       struct type *return_type = TYPE_TARGET_TYPE (die->type);
       int nparams = TYPE_NFIELDS (die->type);
 
-      smash_to_method_type (fnp->type, die->type,
+      /* TYPE is the domain of this method, and DIE->TYPE is the type
+          of the method itself (TYPE_CODE_METHOD).  */
+      smash_to_method_type (fnp->type, type,
                            TYPE_TARGET_TYPE (die->type),
                            TYPE_FIELDS (die->type),
                            TYPE_NFIELDS (die->type),
@@ -2516,7 +2519,7 @@ read_structure_scope (struct die_info *die, struct objfile *objfile,
            {
              /* C++ member function. */
              process_die (child_die, objfile, cu_header);
-             dwarf2_add_member_fn (&fi, child_die, objfile, cu_header);
+             dwarf2_add_member_fn (&fi, child_die, type, objfile, cu_header);
            }
          else if (child_die->tag == DW_TAG_inheritance)
            {