From aa370940e202a165ddc0be2fdc4383a82101a678 Mon Sep 17 00:00:00 2001 From: Simon Marchi Date: Thu, 21 May 2020 13:22:10 -0400 Subject: [PATCH] gdb: fix -Wtautological-overlap-compare error in lm32-tdep.c Building with clang 11, we get: /home/smarchi/src/binutils-gdb/gdb/lm32-tdep.c:84:44: error: overlapping comparisons always evaluate to false [-Werror,-Wtautological-overlap-compare] return ((regnum >= SIM_LM32_EA_REGNUM) && (regnum <= SIM_LM32_BA_REGNUM)) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Indeed, this doesn't make sense, as EA_REGNUM is greater than BA_REGNUM. I'll assume that it was just a mistake and that these two should be swapped. The regnums for BA and EA are contiguous, so ultimately this particular part of the condition is only true if regnum is == EA or == BA. These registers are Exception Address and Breakpoint Address, so I guess it makes sense for them to be in the system register group. The relevant reference is here: https://www.latticesemi.com/-/media/LatticeSemi/Documents/UserManuals/JL/LatticeMico32ProcessorReferenceManual39.ashx?document_id=52077 gdb/ChangeLog: * lm32-tdep.c (lm32_register_reggroup_p): Fix condition. --- gdb/ChangeLog | 4 ++++ gdb/lm32-tdep.c | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 4574440578..0b38daf3e3 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,7 @@ +2020-05-21 Simon Marchi + + * lm32-tdep.c (lm32_register_reggroup_p): Fix condition. + 2020-05-21 Simon Marchi * coffread.c (patch_type): Remove NULL check before xfree. diff --git a/gdb/lm32-tdep.c b/gdb/lm32-tdep.c index 6b5bb1507f..73f8ae746f 100644 --- a/gdb/lm32-tdep.c +++ b/gdb/lm32-tdep.c @@ -81,7 +81,7 @@ lm32_register_reggroup_p (struct gdbarch *gdbarch, int regnum, return ((regnum >= SIM_LM32_R0_REGNUM) && (regnum <= SIM_LM32_RA_REGNUM)) || (regnum == SIM_LM32_PC_REGNUM); else if (group == system_reggroup) - return ((regnum >= SIM_LM32_EA_REGNUM) && (regnum <= SIM_LM32_BA_REGNUM)) + return ((regnum >= SIM_LM32_BA_REGNUM) && (regnum <= SIM_LM32_EA_REGNUM)) || ((regnum >= SIM_LM32_EID_REGNUM) && (regnum <= SIM_LM32_IP_REGNUM)); return default_register_reggroup_p (gdbarch, regnum, group); }