[PATCH 03/18] -Wwrite-strings: Don't initialize string command variables to empty string

Pedro Alves
2017-04-04T17:26:01Z

-Wwrite-strings flags these initializations as requiring a cast.
However, these variables are command variables, and as such point to
heap-allocated memory. The initial allocation is always done when the
corresponding command is registered. E.g.,:

dprintf_function = xstrdup ("printf");
add_setshow_string_cmd ("dprintf-function", class_support,
&dprintf_function, _("\
Set the function to use for dynamic printf"), _("\
Show the function to use for dynamic printf"), NULL,
update_dprintf_commands, NULL,
&setlist, &showlist);

That's why we never reach a bogus attempt to free these string
literals.

So, just drop the incorrect initializations.

gdb/ChangeLog:
yyyy-mm-dd Pedro Alves <palves@redhat.com>

* breakpoint.c (dprintf_function, dprintf_channel): Don't initialize.
* tracepoint.c (default_collect): Don't initialize.
---
gdb/breakpoint.c | 4 ++--
gdb/tracepoint.c | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
index ab6e9c8..f0db3e4 100644
--- a/gdb/breakpoint.c
+++ b/gdb/breakpoint.c
@@ -345,7 +345,7 @@ static const char *dprintf_style = dprintf_style_gdb;
copied into the command, so it can be anything that GDB can
evaluate to a callable address, not necessarily a function name. */

-static char *dprintf_function = "";
+static char *dprintf_function;

/* The channel to use for dynamic printf if the preferred style is to
call into the inferior; if a nonempty string, it will be passed to
@@ -355,7 +355,7 @@ static char *dprintf_function = "";
"stderr", this could be an app-specific expression like
"mystreams[curlogger]". */

-static char *dprintf_channel = "";
+static char *dprintf_channel;

/* True if dprintf commands should continue to operate even if GDB
has disconnected. */
diff --git a/gdb/tracepoint.c b/gdb/tracepoint.c
index 2da6fdd..87ef141 100644
--- a/gdb/tracepoint.c
+++ b/gdb/tracepoint.c
@@ -139,7 +139,7 @@ static struct traceframe_info *traceframe_info;
static struct cmd_list_element *tfindlist;

/* List of expressions to collect by default at each tracepoint hit. */
-char *default_collect = "";
+char *default_collect;

static int disconnected_tracing;

--
2.5.5