Fix GDB build with GCC 4.8.2
PR build/27579 points out that the expression rewrite series introduced a build failure with GCC 4.8.2. The bug is that there's no std::hash specialization for enum exp_opcode. This patch fixes the problem by using gdb::hash_enum. 2021-03-15 Tom Tromey <tromey@adacore.com> PR build/27579: * rust-exp.y (maker_map): Use gdb::hash_enum. * stap-probe.c (stap_maker_map): Use gdb::hash_enum.
This commit is contained in:
parent
4800761a71
commit
675da9a57e
@ -1,3 +1,9 @@
|
|||||||
|
2021-03-15 Tom Tromey <tromey@adacore.com>
|
||||||
|
|
||||||
|
PR build/27579:
|
||||||
|
* rust-exp.y (maker_map): Use gdb::hash_enum.
|
||||||
|
* stap-probe.c (stap_maker_map): Use gdb::hash_enum.
|
||||||
|
|
||||||
2021-03-15 Simon Marchi <simon.marchi@polymtl.ca>
|
2021-03-15 Simon Marchi <simon.marchi@polymtl.ca>
|
||||||
|
|
||||||
* dwarf2/read.c (create_debug_type_hash_table): Remove colon at
|
* dwarf2/read.c (create_debug_type_hash_table): Remove colon at
|
||||||
|
@ -43,6 +43,7 @@
|
|||||||
#include "gdbarch.h"
|
#include "gdbarch.h"
|
||||||
#include "rust-exp.h"
|
#include "rust-exp.h"
|
||||||
#include <unordered_map>
|
#include <unordered_map>
|
||||||
|
#include "gdbsupport/hash_enum.h"
|
||||||
|
|
||||||
#define GDB_YY_REMAP_PREFIX rust
|
#define GDB_YY_REMAP_PREFIX rust
|
||||||
#include "yy-remap.h"
|
#include "yy-remap.h"
|
||||||
@ -2202,7 +2203,8 @@ typedef expr::operation_up binop_maker_ftype (expr::operation_up &&,
|
|||||||
/* Map from an expression opcode to a function that will create an
|
/* Map from an expression opcode to a function that will create an
|
||||||
instance of the appropriate operation subclass. Only binary
|
instance of the appropriate operation subclass. Only binary
|
||||||
operations are handled this way. */
|
operations are handled this way. */
|
||||||
static std::unordered_map<exp_opcode, binop_maker_ftype *> maker_map;
|
static std::unordered_map<exp_opcode, binop_maker_ftype *,
|
||||||
|
gdb::hash_enum<exp_opcode>> maker_map;
|
||||||
|
|
||||||
/* Lower a rust_op to a gdb expression. STATE is the parser state.
|
/* Lower a rust_op to a gdb expression. STATE is the parser state.
|
||||||
OPERATION is the operation to lower. TOP is a pointer to the
|
OPERATION is the operation to lower. TOP is a pointer to the
|
||||||
|
@ -38,6 +38,7 @@
|
|||||||
#include "elf-bfd.h"
|
#include "elf-bfd.h"
|
||||||
#include "expop.h"
|
#include "expop.h"
|
||||||
#include <unordered_map>
|
#include <unordered_map>
|
||||||
|
#include "gdbsupport/hash_enum.h"
|
||||||
|
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
|
|
||||||
@ -436,7 +437,8 @@ typedef expr::operation_up binop_maker_ftype (expr::operation_up &&,
|
|||||||
expr::operation_up &&);
|
expr::operation_up &&);
|
||||||
/* Map from an expression opcode to a function that can create a
|
/* Map from an expression opcode to a function that can create a
|
||||||
binary operation of that type. */
|
binary operation of that type. */
|
||||||
static std::unordered_map<exp_opcode, binop_maker_ftype *> stap_maker_map;
|
static std::unordered_map<exp_opcode, binop_maker_ftype *,
|
||||||
|
gdb::hash_enum<exp_opcode>> stap_maker_map;
|
||||||
|
|
||||||
/* Helper function to create a binary operation. */
|
/* Helper function to create a binary operation. */
|
||||||
static expr::operation_up
|
static expr::operation_up
|
||||||
|
Loading…
Reference in New Issue
Block a user