From f995bbe8e62fdb5607acb1ee127240cfe50d2b8f Mon Sep 17 00:00:00 2001 From: Pedro Alves Date: Wed, 5 Apr 2017 19:21:33 +0100 Subject: [PATCH] -Wwrite-strings: Constify struct disassemble_info's disassembler_options field The memory disassemble_info::disassembler_options points to is always owned by the client. I.e., that field is an non-owning, observing pointer. Thus const makes sense. Are the include/ and opcodes/ bits OK? Tested on x86_64 Fedora 23, built with --enable-targets=all. include/ChangeLog: 2017-04-05 Pedro Alves * dis-asm.h (disassemble_info) : Now a "const char *". (next_disassembler_option): Constify. opcodes/ChangeLog: 2017-04-05 Pedro Alves * arc-dis.c (parse_option, parse_disassembler_options): Constify. * arm-dis.c (parse_arm_disassembler_options): Constify. * ppc-dis.c (powerpc_init_dialect): Constify local. * vax-dis.c (parse_disassembler_options): Constify. gdb/ChangeLog: 2017-04-05 Pedro Alves * arm-tdep.c (show_disassembly_style_sfunc): Constify local. * disasm.c (set_disassembler_options): Constify local. * i386-tdep.c (i386_print_insn): Remove cast and FIXME comment. --- gdb/ChangeLog | 6 ++++++ gdb/arm-tdep.c | 2 +- gdb/disasm.c | 2 +- gdb/i386-tdep.c | 4 +--- include/ChangeLog | 6 ++++++ include/dis-asm.h | 8 ++++---- opcodes/ChangeLog | 7 +++++++ opcodes/arc-dis.c | 4 ++-- opcodes/arm-dis.c | 4 ++-- opcodes/ppc-dis.c | 2 +- opcodes/vax-dis.c | 2 +- 11 files changed, 32 insertions(+), 15 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 4141beb..1d0270c 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2017-04-05 Pedro Alves + + * arm-tdep.c (show_disassembly_style_sfunc): Constify local. + * disasm.c (set_disassembler_options): Constify local. + * i386-tdep.c (i386_print_insn): Remove cast and FIXME comment. + 2017-04-05 Sergio Durigan Junior PR gdb/21352 diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c index b3c3705..ade770e 100644 --- a/gdb/arm-tdep.c +++ b/gdb/arm-tdep.c @@ -8562,7 +8562,7 @@ show_disassembly_style_sfunc (struct ui_file *file, int from_tty, char *options = get_disassembler_options (gdbarch); const char *style = ""; int len = 0; - char *opt; + const char *opt; FOR_EACH_DISASSEMBLER_OPTION (opt, options) if (CONST_STRNEQ (opt, "reg-names-")) diff --git a/gdb/disasm.c b/gdb/disasm.c index ab080e2..734db2b 100644 --- a/gdb/disasm.c +++ b/gdb/disasm.c @@ -930,7 +930,7 @@ set_disassembler_options (char *prospective_options) char **disassembler_options = gdbarch_disassembler_options (gdbarch); const disasm_options_t *valid_options; char *options = remove_whitespace_and_extra_commas (prospective_options); - char *opt; + const char *opt; /* Allow all architectures, even ones that do not support 'set disassembler', to reset their disassembler options to NULL. */ diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c index ec8b5d3..70bd47c 100644 --- a/gdb/i386-tdep.c +++ b/gdb/i386-tdep.c @@ -4009,9 +4009,7 @@ i386_print_insn (bfd_vma pc, struct disassemble_info *info) gdb_assert (disassembly_flavor == att_flavor || disassembly_flavor == intel_flavor); - /* FIXME: kettenis/20020915: Until disassembler_options is properly - constified, cast to prevent a compiler warning. */ - info->disassembler_options = (char *) disassembly_flavor; + info->disassembler_options = disassembly_flavor; return print_insn_i386 (pc, info); } diff --git a/include/ChangeLog b/include/ChangeLog index fa0f3de..956e252 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,9 @@ +2017-04-05 Pedro Alves + + * dis-asm.h (disassemble_info) : Now a + "const char *". + (next_disassembler_option): Constify. + 2017-04-04 H.J. Lu * elf/common.h (PT_GNU_MBIND_NUM): New. diff --git a/include/dis-asm.h b/include/dis-asm.h index f054450..2ed3d7e 100644 --- a/include/dis-asm.h +++ b/include/dis-asm.h @@ -210,7 +210,7 @@ typedef struct disassemble_info bfd_vma target2; /* Second target address for dref2 */ /* Command line options specific to the target disassembler. */ - char * disassembler_options; + const char *disassembler_options; /* If non-zero then try not disassemble beyond this address, even if there are values left in the buffer. This address is the address @@ -369,10 +369,10 @@ extern char *remove_whitespace_and_extra_commas (char *); extern int disassembler_options_cmp (const char *, const char *); /* A helper function for FOR_EACH_DISASSEMBLER_OPTION. */ -static inline char * -next_disassembler_option (char *options) +static inline const char * +next_disassembler_option (const char *options) { - char *opt = strchr (options, ','); + const char *opt = strchr (options, ','); if (opt != NULL) opt++; return opt; diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index ce6ee40..2889f53 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,10 @@ +2017-04-05 Pedro Alves + + * arc-dis.c (parse_option, parse_disassembler_options): Constify. + * arm-dis.c (parse_arm_disassembler_options): Constify. + * ppc-dis.c (powerpc_init_dialect): Constify local. + * vax-dis.c (parse_disassembler_options): Constify. + 2017-04-03 Palmer Dabbelt * riscv-dis.c (riscv_disassemble_insn): Change "_gp" to diff --git a/opcodes/arc-dis.c b/opcodes/arc-dis.c index 3afd253..4beca68 100644 --- a/opcodes/arc-dis.c +++ b/opcodes/arc-dis.c @@ -733,7 +733,7 @@ operand_iterator_next (struct arc_operand_iterator *iter, /* Helper for parsing the options. */ static void -parse_option (char *option) +parse_option (const char *option) { if (CONST_STRNEQ (option, "dsp")) add_to_decodelist (DSP, NONE); @@ -772,7 +772,7 @@ parse_option (char *option) /* Go over the options list and parse it. */ static void -parse_disassembler_options (char *options) +parse_disassembler_options (const char *options) { if (options == NULL) return; diff --git a/opcodes/arm-dis.c b/opcodes/arm-dis.c index e4f99b8..a3e53db 100644 --- a/opcodes/arm-dis.c +++ b/opcodes/arm-dis.c @@ -6101,9 +6101,9 @@ arm_symbol_is_valid (asymbol * sym, /* Parse the string of disassembler options. */ static void -parse_arm_disassembler_options (char *options) +parse_arm_disassembler_options (const char *options) { - char *opt; + const char *opt; FOR_EACH_DISASSEMBLER_OPTION (opt, options) { diff --git a/opcodes/ppc-dis.c b/opcodes/ppc-dis.c index ee8016a..188e90a 100644 --- a/opcodes/ppc-dis.c +++ b/opcodes/ppc-dis.c @@ -344,7 +344,7 @@ powerpc_init_dialect (struct disassemble_info *info) break; } - char *opt; + const char *opt; FOR_EACH_DISASSEMBLER_OPTION (opt, info->disassembler_options) { ppc_cpu_t new_cpu = 0; diff --git a/opcodes/vax-dis.c b/opcodes/vax-dis.c index ff240e4..4642702 100644 --- a/opcodes/vax-dis.c +++ b/opcodes/vax-dis.c @@ -117,7 +117,7 @@ static bfd_vma * entry_addr = NULL; there's no symbol table. Returns TRUE upon success, FALSE otherwise. */ static bfd_boolean -parse_disassembler_options (char * options) +parse_disassembler_options (const char *options) { const char * entry_switch = "entry:"; -- 2.7.4