[gdb/tdep] Reset force_thumb in parse_arm_disassembler_options
authorTom de Vries <tdevries@suse.de>
Mon, 13 Sep 2021 18:16:36 +0000 (20:16 +0200)
committerTom de Vries <tdevries@suse.de>
Mon, 13 Sep 2021 18:16:36 +0000 (20:16 +0200)
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.

opcodes/arm-dis.c

index faabd42b5b34ffb4b09b42502ea5dc68d39814d4..78efb815147df2c5dc30077ec9b89681e0d34a21 100644 (file)
@@ -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-"))