This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
[RFA] dwarf2read.c: set TYPE_DOMAIN_TYPE correctly for methods
- From: David Carlton <carlton at math dot stanford dot edu>
- To: gdb-patches at sources dot redhat dot com
- Cc: carlton at math dot stanford dot edu
- Date: 22 Aug 2002 13:35:50 -0700
- Subject: [RFA] dwarf2read.c: set TYPE_DOMAIN_TYPE correctly for methods
I've figured out what caused the regression that I turned up in PR
gdb/653; here's a patch that fixes it.
David Carlton
carlton@math.stanford.edu
2002-08-22 David Carlton <carlton@math.stanford.edu>
* dwarf2read.c (dwarf2_add_member_fn): Add back in the type
argument that was deleted on 2002-06-14: it was needed after all,
as PR gdb/653 demonstrates. Update call to smash_to_method_type.
(read_structure_scope): Update call to dwarf2_add_member_fn.
Index: dwarf2read.c
===================================================================
RCS file: /cvs/src/src/gdb/dwarf2read.c,v
retrieving revision 1.65
diff -u -p -r1.65 dwarf2read.c
--- dwarf2read.c 20 Aug 2002 18:45:30 -0000 1.65
+++ dwarf2read.c 22 Aug 2002 20:13:53 -0000
@@ -803,7 +803,8 @@ static void dwarf2_attach_fields_to_type
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 fie
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,7 @@ dwarf2_add_member_fn (struct field_info
struct type *return_type = TYPE_TARGET_TYPE (die->type);
int nparams = TYPE_NFIELDS (die->type);
- smash_to_method_type (fnp->type, die->type,
+ smash_to_method_type (fnp->type, type,
TYPE_TARGET_TYPE (die->type),
TYPE_FIELDS (die->type),
TYPE_NFIELDS (die->type),
@@ -2516,7 +2517,7 @@ read_structure_scope (struct die_info *d
{
/* 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)
{