[committed,gdb/tdep] Reset force_thumb in parse_arm_disassembler_options

Message ID 20210913181748.GA15416@delia.home
State New
Headers show
Series
  • [committed,gdb/tdep] Reset force_thumb in parse_arm_disassembler_options
Related show

Commit Message

Simon Marchi via Gdb-patches Sept. 13, 2021, 6:17 p.m.
Hi,

With a gdb build with --enable-targets=all, we have 2 arch-specific failures
in selftest print_one_insn:
...
$ gdb -q -batch a.out -ex "maint selftest print_one_insn" 2>&1 \
  | grep "Self test failed: arch "
Self test failed: arch armv8.1-m.main: self-test failed at \
  disasm-selftests.c:165
Self test failed: arch arm_any: self-test failed at disasm-selftests.c:165
$
...

During the first failed test, force_thumb is set to true, and remains so until
and during the second test, which causes the second failure.

Fix this by resetting force_thumb to false in parse_arm_disassembler_options,
such that we get just one failure:
...
$ gdb -q -batch a.out -ex "maint selftest print_one_insn" 2>&1 \
  | grep "Self test failed: arch "
Self test failed: arch armv8.1-m.main: self-test failed at \
  disasm-selftests.c:165
$
...

Tested on x86_64-linux.

Committed to trunk, as obvious.

Thanks,
- Tom

[gdb/tdep] Reset force_thumb in parse_arm_disassembler_options

---
 opcodes/arm-dis.c | 1 +
 1 file changed, 1 insertion(+)

Patch

diff --git a/opcodes/arm-dis.c b/opcodes/arm-dis.c
index faabd42b5b3..78efb815147 100644
--- a/opcodes/arm-dis.c
+++ b/opcodes/arm-dis.c
@@ -11613,6 +11613,7 @@  parse_arm_disassembler_options (const char *options)
 {
   const char *opt;
 
+  force_thumb = false;
   FOR_EACH_DISASSEMBLER_OPTION (opt, options)
     {
       if (startswith (opt, "reg-names-"))