[ARM] Mark USER_SPECIFIED_MACHINE_TYPE in disassemble_info.flags
authorYao Qi <yao.qi@linaro.org>
Fri, 18 Aug 2017 08:30:12 +0000 (09:30 +0100)
committerYao Qi <yao.qi@linaro.org>
Fri, 18 Aug 2017 08:30:12 +0000 (09:30 +0100)
commite60eb2880368b4e4752577c626ab0dadf0499cb5
tree1b081d218faa8ddb2e6f321a64149a140ed5ccee
parent6d580b635f8963183540b816b20bb9c240154497
[ARM] Mark USER_SPECIFIED_MACHINE_TYPE in disassemble_info.flags

opcodes/arm-dis.c:print_insn may update disassemble_info.mach to
bfd_mach_arm_unknown unless USER_SPECIFIED_MACHINE_TYPE is marked.
When default_print_insn is called for the first time,
disassemble_info.mach is correctly set in GDB, but arm-dis.c:print_insn
sets it to bfd_mach_arm_unknown.  Then, when default_print_insn is
called again (in a loop), it triggers the assert.

The patch fixes the assert by marking USER_SPECIFIED_MACHINE_TYPE so that
opcodes won't reset disassemble_info.mach.

gdb:

2017-08-18  Yao Qi  <yao.qi@linaro.org>

PR tdep/21818
* arm-tdep.c (gdb_print_insn_arm): Mark
USER_SPECIFIED_MACHINE_TYPE if exec_bfd isn't NULL.
gdb/ChangeLog
gdb/arm-tdep.c