From 1b95cdb76caca1b7a9ecf9324acf23139f11f7d1 Mon Sep 17 00:00:00 2001 From: Simon Marchi Date: Tue, 28 Apr 2020 09:49:58 -0400 Subject: [PATCH] gdb: use gdb:hash_enum as hash function in offset_map_type MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit When building with g++ 4.8, we get this error (just an excerpt, because g++ outputs a very long error message): CXX dwarf2/read.o ... /home/smarchi/src/binutils-gdb/gdb/dwarf2/read.c:14616:31: required from here /usr/include/c++/4.8/bits/hashtable_policy.h:1070:12: error: invalid use of incomplete type ‘struct std::hash’ struct _Hash_code_base<_Key, _Value, _ExtractKey, _H1, _H2, This is the same problem and fix as in commit f23f598e28ad ("[gdb] Fix build breaker with gcc 4.8"). Pass an explicit hash function rather than relying on the default std::hash. gdb/ChangeLog: PR gdb/25881 * dwarf2/read.c (offset_map_type): Use gdb:hash_enum as hash function. --- gdb/ChangeLog | 6 ++++++ gdb/dwarf2/read.c | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 76f6cf78961..f7931c23c60 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2020-04-28 Simon Marchi + + PR gdb/25881 + * dwarf2/read.c (offset_map_type): Use + gdb:hash_enum as hash function. + 2020-04-28 Tom de Vries * dwarf2/read.c (process_structure_scope): Add symbol for struct decl diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c index 82564edd7b2..c5528887faf 100644 --- a/gdb/dwarf2/read.c +++ b/gdb/dwarf2/read.c @@ -14513,7 +14513,8 @@ dwarf2_add_type_defn (struct field_info *fip, struct die_info *die, /* A convenience typedef that's used when finding the discriminant field for a variant part. */ -typedef std::unordered_map offset_map_type; +typedef std::unordered_map> + offset_map_type; /* Compute the discriminant range for a given variant. OBSTACK is where the results will be stored. VARIANT is the variant to -- 2.30.2