From patchwork Tue Apr 4 17:25:34 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pedro Alves X-Patchwork-Id: 19823 Received: (qmail 105576 invoked by alias); 4 Apr 2017 17:25:59 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 105080 invoked by uid 89); 4 Apr 2017 17:25:58 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.9 required=5.0 tests=BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RP_MATCHES_RCVD, SPF_HELO_PASS autolearn=ham version=3.3.2 spammy=NONE, 36910 X-Spam-User: qpsmtpd, 2 recipients X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 04 Apr 2017 17:25:56 +0000 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 0F7917EBBF; Tue, 4 Apr 2017 17:25:57 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 0F7917EBBF Authentication-Results: ext-mx03.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx03.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=palves@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 0F7917EBBF Received: from cascais.lan (ovpn04.gateway.prod.ext.phx2.redhat.com [10.5.9.4]) by smtp.corp.redhat.com (Postfix) with ESMTP id 880C618247; Tue, 4 Apr 2017 17:25:55 +0000 (UTC) From: Pedro Alves To: gdb-patches@sourceware.org Cc: Binutils Subject: [PATCH 01/18] -Wwrite-strings: Constify struct disassemble_info's disassembler_options field Date: Tue, 4 Apr 2017 18:25:34 +0100 Message-Id: <1491326751-16180-2-git-send-email-palves@redhat.com> In-Reply-To: <1491326751-16180-1-git-send-email-palves@redhat.com> References: <1491326751-16180-1-git-send-email-palves@redhat.com> 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: yyyy-mm-dd Pedro Alves * dis-asm.h (disassemble_info) : Now a "const char *". (next_disassembler_option): Constify. opcodes/ChangeLog: yyyy-mm-dd 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: yyyy-mm-dd 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/arm-tdep.c | 2 +- gdb/disasm.c | 2 +- gdb/i386-tdep.c | 4 +--- include/dis-asm.h | 8 ++++---- opcodes/arc-dis.c | 4 ++-- opcodes/arm-dis.c | 4 ++-- opcodes/ppc-dis.c | 2 +- opcodes/vax-dis.c | 2 +- 8 files changed, 13 insertions(+), 15 deletions(-) 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/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/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:";