This is the mail archive of the
gdb-cvs@sourceware.org
mailing list for the GDB project.
[binutils-gdb] Clear rust_unions in rust_union_quirks
- From: Tom Tromey <tromey at sourceware dot org>
- To: gdb-cvs at sourceware dot org
- Date: 14 May 2018 15:37:11 -0000
- Subject: [binutils-gdb] Clear rust_unions in rust_union_quirks
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=2d79090eabe8aa972b07cb71a3dd73ef9498acfa
commit 2d79090eabe8aa972b07cb71a3dd73ef9498acfa
Author: Tom Tromey <tom@tromey.com>
Date: Mon May 14 09:34:00 2018 -0600
Clear rust_unions in rust_union_quirks
It turns out that a dwarf2_cu can remain allocated after psymtab
expansion is done, and so it makes sense to clear rust_unions when
done processing it.
Tested on x86-64 Fedora 27.
2018-05-14 Tom Tromey <tom@tromey.com>
* dwarf2read.c (rust_union_quirks): Clear rust_unions.
Diff:
---
gdb/ChangeLog | 4 ++++
gdb/dwarf2read.c | 2 ++
2 files changed, 6 insertions(+)
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 67610d7..d795b4a 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,7 @@
+2018-05-14 Tom Tromey <tom@tromey.com>
+
+ * dwarf2read.c (rust_union_quirks): Clear rust_unions.
+
2018-05-11 Andrew Burgess <andrew.burgess@embecosm.com>
* i387-tdep.c (i387_collect_xsave): Use FXSAVE_MXCSR_ADDR not
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index 26ec5ef..575d316 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -10105,6 +10105,8 @@ rust_union_quirks (struct dwarf2_cu *cu)
gdb_assert (cu->language == language_rust);
for (struct type *type : cu->rust_unions)
quirk_rust_enum (type, cu->per_cu->dwarf2_per_objfile->objfile);
+ /* We don't need this any more. */
+ cu->rust_unions.clear ();
}
/* Return the symtab for PER_CU. This works properly regardless of