summaryrefslogtreecommitdiff
path: root/gdb/disasm.h
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2017-09-04 18:23:22 +0100
committerPedro Alves <palves@redhat.com>2017-09-04 18:23:22 +0100
commit9a24775b97646827396073d0d7e510b9694331ab (patch)
treed360279777f8163d750f17c01507fc671e24b4b6 /gdb/disasm.h
parent9521ecda6835b338d61b1b06e1a91706711b1d0b (diff)
Introduce gdb_disassembly_flags
For some reason I ended up staring at some of the "int flags" in btrace-related code, and I got confused because I had no clue what the flags where supposed to indicate. Fix that by using enum_flags, so that: #1 - it's clear from the type what the flags are about, and #2 - the compiler can catch mismatching mistakes gdb/ChangeLog: 2017-09-04 Pedro Alves <palves@redhat.com> * cli/cli-cmds.c (print_disassembly, disassemble_current_function) (disassemble_command): Use gdb_disassembly_flags instead of bare int. * disasm.c (gdb_pretty_print_disassembler::pretty_print_insn) (dump_insns, do_mixed_source_and_assembly_deprecated) (do_mixed_source_and_assembly, do_assembly_only, gdb_disassembly): Use gdb_disassembly_flags instead of bare int. * disasm.h (DISASSEMBLY_SOURCE_DEPRECATED, DISASSEMBLY_RAW_INSN) (DISASSEMBLY_OMIT_FNAME, DISASSEMBLY_FILENAME) (DISASSEMBLY_OMIT_PC, DISASSEMBLY_SOURCE) (DISASSEMBLY_SPECULATIVE): No longer macros. Instead they're... (enum gdb_disassembly_flag): ... values of this new enumeration. (gdb_disassembly_flags): Define. (gdb_disassembly) (gdb_pretty_print_disassembler::pretty_print_insn): Use it. * mi/mi-cmd-disas.c (mi_cmd_disassemble): Use gdb_disassembly_flags instead of bare int. * record-btrace.c (btrace_insn_history) (record_btrace_insn_history, record_btrace_insn_history_range) (record_btrace_insn_history_from): Use gdb_disassembly_flags instead of bare int. * record.c (get_insn_history_modifiers, cmd_record_insn_history): Use gdb_disassembly_flags instead of bare int. * target-debug.h (target_debug_print_gdb_disassembly_flags): Define. * target-delegates.c: Regenerate. * target.c (target_insn_history, target_insn_history_from) (target_insn_history_range): Use gdb_disassembly_flags instead of bare int. * target.h: Include "disasm.h". (struct target_ops) <to_insn_history, to_insn_history_from, to_insn_history_range>: Use gdb_disassembly_flags instead of bare int. (target_insn_history, target_insn_history_from) (target_insn_history_range): Use gdb_disassembly_flags instead of bare int.
Diffstat (limited to 'gdb/disasm.h')
-rw-r--r--gdb/disasm.h25
1 files changed, 15 insertions, 10 deletions
diff --git a/gdb/disasm.h b/gdb/disasm.h
index ad3e8ddbf9..5b79be0151 100644
--- a/gdb/disasm.h
+++ b/gdb/disasm.h
@@ -20,14 +20,19 @@
#define DISASM_H
#include "dis-asm.h"
-
-#define DISASSEMBLY_SOURCE_DEPRECATED (0x1 << 0)
-#define DISASSEMBLY_RAW_INSN (0x1 << 1)
-#define DISASSEMBLY_OMIT_FNAME (0x1 << 2)
-#define DISASSEMBLY_FILENAME (0x1 << 3)
-#define DISASSEMBLY_OMIT_PC (0x1 << 4)
-#define DISASSEMBLY_SOURCE (0x1 << 5)
-#define DISASSEMBLY_SPECULATIVE (0x1 << 6)
+#include "common/enum-flags.h"
+
+enum gdb_disassembly_flag
+ {
+ DISASSEMBLY_SOURCE_DEPRECATED = (0x1 << 0),
+ DISASSEMBLY_RAW_INSN = (0x1 << 1),
+ DISASSEMBLY_OMIT_FNAME = (0x1 << 2),
+ DISASSEMBLY_FILENAME = (0x1 << 3),
+ DISASSEMBLY_OMIT_PC = (0x1 << 4),
+ DISASSEMBLY_SOURCE = (0x1 << 5),
+ DISASSEMBLY_SPECULATIVE = (0x1 << 6),
+ };
+DEF_ENUM_FLAGS_TYPE (enum gdb_disassembly_flag, gdb_disassembly_flags);
struct gdbarch;
struct ui_out;
@@ -87,7 +92,7 @@ struct disasm_insn
};
extern void gdb_disassembly (struct gdbarch *gdbarch, struct ui_out *uiout,
- int flags, int how_many,
+ gdb_disassembly_flags flags, int how_many,
CORE_ADDR low, CORE_ADDR high);
/* Print the instruction at address MEMADDR in debugged memory,
@@ -109,7 +114,7 @@ public:
/* Prints the instruction INSN into UIOUT and returns the length of
the printed instruction in bytes. */
int pretty_print_insn (struct ui_out *uiout, const struct disasm_insn *insn,
- int flags);
+ gdb_disassembly_flags flags);
private:
/* Returns the architecture used for disassembling. */