From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21072 invoked by alias); 13 Apr 2016 20:13:01 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 21053 invoked by uid 89); 13 Apr 2016 20:13:00 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.9 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD,SPF_HELO_PASS autolearn=ham version=3.3.2 spammy= 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 (AES256-GCM-SHA384 encrypted) ESMTPS; Wed, 13 Apr 2016 20:12:50 +0000 Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id DA3CA64070 for ; Wed, 13 Apr 2016 20:12:48 +0000 (UTC) Received: from localhost (unused-10-15-17-51.yyz.redhat.com [10.15.17.51]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id u3DKCm2e016125 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Wed, 13 Apr 2016 16:12:48 -0400 From: Sergio Durigan Junior To: Pedro Alves Cc: gdb-patches@sourceware.org Subject: Re: [PATCH] Avoid "format not a string literal" warnings References: <1460574365-21910-1-git-send-email-palves@redhat.com> X-URL: http://blog.sergiodj.net Date: Wed, 13 Apr 2016 20:13:00 -0000 In-Reply-To: <1460574365-21910-1-git-send-email-palves@redhat.com> (Pedro Alves's message of "Wed, 13 Apr 2016 20:06:05 +0100") Message-ID: <8737qpp8sg.fsf@redhat.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-IsSubscribed: yes X-SW-Source: 2016-04/txt/msg00303.txt.bz2 On Wednesday, April 13 2016, Pedro Alves wrote: > On: > > $ uname -a > NetBSD gcc70.fsffrance.org 5.1 NetBSD 5.1 (GENERIC) #0: Sat Nov 6 13:19:33 UTC 2010 builds@b6.netbsd.org:/home/builds/ab/netbsd-5-1-RELEASE/amd64/201011061943Z-obj/home/builds/ab/netbsd-5-1-RELEASE/src/sys/arch/amd64/compile/GENERIC amd64 > > With: > > $ g++ -v > Using built-in specs. > Target: x86_64--netbsd > Configured with: /usr/src/tools/gcc/../../gnu/dist/gcc4/configure --enable-long-long --disable-multilib --enable-threads --disable-symvers --build=x86_64-unknown-netbsd4.99.72 --host=x86_64--netbsd --target=x86_64--netbsd --enable-__cxa_atexit > Thread model: posix > gcc version 4.1.3 20080704 prerelease (NetBSD nb2 20081120) > > I saw: > > cc1plus: warnings being treated as errors > ../../src/gdb/ctf.c: In function 'void ctf_save_metadata_header(trace_write_handler*)': > ../../src/gdb/ctf.c:267: warning: format not a string literal, argument types not checked > cc1plus: warnings being treated as errors > ../../src/gdb/cli/cli-cmds.c: In function 'void alias_command(char*, int)': > ../../src/gdb/cli/cli-cmds.c:1428: warning: format not a string literal and no format arguments > ../../src/gdb/cli/cli-cmds.c:1457: warning: format not a string literal and no format arguments > > gdb/ChangeLog: > yyyy-mm-dd Pedro Alves > > * cli/cli-cmds.c (alias_usage_error): New function. > (alias_command): Use it. > * ctf.c (ctf_save_metadata_header): Inline metadata_fmt local in > ctf_save_write_metadata call. > --- > gdb/cli/cli-cmds.c | 13 ++++++++++--- > gdb/ctf.c | 42 ++++++++++++++++++++---------------------- > 2 files changed, 30 insertions(+), 25 deletions(-) > > diff --git a/gdb/cli/cli-cmds.c b/gdb/cli/cli-cmds.c > index ede4909..c60b1d3 100644 > --- a/gdb/cli/cli-cmds.c > +++ b/gdb/cli/cli-cmds.c > @@ -1410,6 +1410,14 @@ valid_command_p (const char *command) > return *command == '\0'; > } > > +/* Called when "alias" was incorrectly used. */ > + > +static void > +alias_usage_error (void) > +{ > + error (_("Usage: alias [-a] [--] ALIAS = COMMAND")); > +} > + > /* Make an alias of an existing command. */ > > static void > @@ -1421,10 +1429,9 @@ alias_command (char *args, int from_tty) > char **alias_argv, **command_argv; > dyn_string_t alias_dyn_string, command_dyn_string; > struct cleanup *cleanup; > - static const char usage[] = N_("Usage: alias [-a] [--] ALIAS = COMMAND"); > > if (args == NULL || strchr (args, '=') == NULL) > - error (_(usage)); > + alias_usage_error (); > > args2 = xstrdup (args); > cleanup = make_cleanup (xfree, args2); > @@ -1453,7 +1460,7 @@ alias_command (char *args, int from_tty) > > if (alias_argv[0] == NULL || command_argv[0] == NULL > || *alias_argv[0] == '\0' || *command_argv[0] == '\0') > - error (_(usage)); > + alias_usage_error (); I'd call error directly here and above (and yes, replicate the message), but that is a matter of personal taste. > > for (i = 0; alias_argv[i] != NULL; ++i) > { > diff --git a/gdb/ctf.c b/gdb/ctf.c > index 25a4c79..795c365 100644 > --- a/gdb/ctf.c > +++ b/gdb/ctf.c > @@ -202,27 +202,6 @@ ctf_save_next_packet (struct trace_write_handler *handler) > static void > ctf_save_metadata_header (struct trace_write_handler *handler) > { > - const char metadata_fmt[] = > - "\ntrace {\n" > - " major = %u;\n" > - " minor = %u;\n" > - " byte_order = %s;\n" /* be or le */ > - " packet.header := struct {\n" > - " uint32_t magic;\n" > - " };\n" > - "};\n" > - "\n" > - "stream {\n" > - " packet.context := struct {\n" > - " uint32_t content_size;\n" > - " uint32_t packet_size;\n" > - " uint16_t tpnum;\n" > - " };\n" > - " event.header := struct {\n" > - " uint32_t id;\n" > - " };\n" > - "};\n"; > - > ctf_save_write_metadata (handler, "/* CTF %d.%d */\n", > CTF_SAVE_MAJOR, CTF_SAVE_MINOR); > ctf_save_write_metadata (handler, > @@ -262,7 +241,26 @@ ctf_save_metadata_header (struct trace_write_handler *handler) > #define HOST_ENDIANNESS "le" > #endif > > - ctf_save_write_metadata (handler, metadata_fmt, > + ctf_save_write_metadata (handler, > + "\ntrace {\n" > + " major = %u;\n" > + " minor = %u;\n" > + " byte_order = %s;\n" > + " packet.header := struct {\n" > + " uint32_t magic;\n" > + " };\n" > + "};\n" > + "\n" > + "stream {\n" > + " packet.context := struct {\n" > + " uint32_t content_size;\n" > + " uint32_t packet_size;\n" > + " uint16_t tpnum;\n" > + " };\n" > + " event.header := struct {\n" > + " uint32_t id;\n" > + " };\n" > + "};\n", > CTF_SAVE_MAJOR, CTF_SAVE_MINOR, > HOST_ENDIANNESS); > ctf_save_write_metadata (handler, "\n"); > -- > 2.5.5 LGTM. -- Sergio GPG key ID: 237A 54B1 0287 28BF 00EF 31F4 D0EB 7628 65FC 5E36 Please send encrypted e-mail if possible http://sergiodj.net/