This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[RFA] Delayed physnames, revisited


Hi,

I have finally gotten around to revisiting this patch and rebasing it on top of all the recent churn in dwarf2read.c. I have also (finally) developed a test case for the "trivial" obstack leak that I previously reported. [It was trivial, but also very dependent on compiler and STL implementation. That made it very non-trivial. :-)]

For additional background information:
http://sourceware.org/ml/gdb-patches/2010-04/msg00641.html
http://sourceware.org/bugzilla/show_bug.cgi?id=11465

Other than twiddling the const correctness of some of the APIs (not changed/patched/updated by this patch), I believe I have addressed all of the outstanding issues raised by maintainers.

Aside1: A patch similar to this has been in Fedora for some time now...
Aside2: I've merged the "obstack leak" patch into the delayed physname patch, since you cannot trigger this failure without the delayed physname patch.


Keith

ChangeLog
2010-07-20  Keith Seitz  <keiths@redhat.com>

	PR symtab/11465:
 	* dwarf2read.c (struct delayed_method_info): New struct.
	(struct dwarf2_cu): Add vector method_list.
	(scan_partial_symbols): Count methods for union, class, structure,
	and interface types.
	(add_to_method_list): New function.
	(free_delayed_list): New function.
	(compute_delayed_physnames): New function.
	(process_full_comp_unit): Make a cleanup for the CU's delayed
	physname list, compute the delayed physnames, and free the
	the list.
	(dwarf2_add_member_fn): For C++ and Java, delay the computation
	of the physname until after the CU is read.

	* dwarf2read.c (read_structure_type): Check if the current
	DIE's type was already completed after dwarf2_full_name
	was called.

testsuite/ChangeLog
2010-07-20  Keith Seitz  <keiths@redhat.com>

	PR symtab/11465:
	* gdb.dwarf2/pr11465.exp: New test.
	* gdb.dwarf2/pr11465.S: New file.
	* gdb.dwarf2/dw2-double-set-die-type.S: New file.
	* gdb.dwarf2/dw2-double-set-die-type.exp: New test.

Attachment: delayed_physnames-3.patch
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]