From 65a4b373267813ae5e47ac519da2e70d9c7e09d3 Mon Sep 17 00:00:00 2001 From: Andrew Burgess Date: Thu, 29 Nov 2018 15:07:59 +0000 Subject: [PATCH] gdb/riscv: Add equality operators to riscv_gdb_features Add '==' and '!=' operators for the struct riscv_gdb_features, allowing a small simplification. gdb/ChangeLog: * arch/riscv.h (riscv_gdb_features::operator==): New. (riscv_gdb_features::operator!=): New. * riscv-tdep.c (riscv_gdbarch_init): Make use of the inequality operator. --- gdb/ChangeLog | 7 +++++++ gdb/arch/riscv.h | 13 +++++++++++++ gdb/riscv-tdep.c | 4 +--- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 72c2ee16ca4..306e1a1132c 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2018-11-30 Andrew Burgess + + * arch/riscv.h (riscv_gdb_features::operator==): New. + (riscv_gdb_features::operator!=): New. + * riscv-tdep.c (riscv_gdbarch_init): Make use of the inequality + operator. + 2018-11-30 Andrew Burgess * arch/riscv.h (riscv_create_target_description): Make return type diff --git a/gdb/arch/riscv.h b/gdb/arch/riscv.h index ec4d5f39525..be41828eff6 100644 --- a/gdb/arch/riscv.h +++ b/gdb/arch/riscv.h @@ -53,6 +53,19 @@ struct riscv_gdbarch_features this field is true then the hardware floating point abi is in use, and values are passed in f-registers matching the size of FLEN. */ bool hw_float_abi = false; + + /* Equality operator. */ + bool operator== (const struct riscv_gdbarch_features &rhs) const + { + return (xlen == rhs.xlen && flen == rhs.flen + && hw_float_abi == rhs.hw_float_abi); + } + + /* Inequality operator. */ + bool operator!= (const struct riscv_gdbarch_features &rhs) const + { + return !((*this) == rhs); + } }; /* Create and return a target description that is compatible with diff --git a/gdb/riscv-tdep.c b/gdb/riscv-tdep.c index d66fe5c8793..30c777db6f2 100644 --- a/gdb/riscv-tdep.c +++ b/gdb/riscv-tdep.c @@ -3025,9 +3025,7 @@ riscv_gdbarch_init (struct gdbarch_info info, gdbarch. */ struct gdbarch_tdep *other_tdep = gdbarch_tdep (arches->gdbarch); - if (other_tdep->features.hw_float_abi != features.hw_float_abi - || other_tdep->features.xlen != features.xlen - || other_tdep->features.flen != features.flen) + if (other_tdep->features != features) continue; break; -- 2.30.2