aboutsummaryrefslogtreecommitdiff
path: root/gdb/printcmd.c
diff options
context:
space:
mode:
authorSimon Marchi <simon.marchi@ericsson.com>2018-09-05 21:21:51 -0600
committerTom Tromey <tom@tromey.com>2018-09-05 21:47:33 -0600
commitaf39b1c216ffb11e6ca8e8607b00749e0fc1ab41 (patch)
tree2c1e035ca006f6e98e6b9d844f3139ad386b9d21 /gdb/printcmd.c
parent4f075c06a3adbccdc2712c3e24afc7d4814149c7 (diff)
downloadgdb-af39b1c216ffb11e6ca8e8607b00749e0fc1ab41.zip
gdb-af39b1c216ffb11e6ca8e8607b00749e0fc1ab41.tar.gz
gdb-af39b1c216ffb11e6ca8e8607b00749e0fc1ab41.tar.bz2
Disable -Wformat-nonliteral in parts of printcmd.c
commit 3322c5d9a1 ("Remove unneeded explicit .o targets") broke the build with clang, because -Wno-format-nonliteral was in fact needed. This patch fixes the problem by introducing DIAGNOSTIC_IGNORE_FORMAT_NONLITERAL and using it in printcmd.c. This seems preferable to reverting the patch because now the warning suppression is more targeted. gdb/ChangeLog 2018-09-05 Simon Marchi <simon.marchi@ericsson.com> * printcmd.c (printf_c_string): Use DIAGNOSTIC_IGNORE_FORMAT_NONLITERAL. (printf_wide_c_string, printf_pointer, ui_printf): Likewise. include/ChangeLog 2018-09-05 Simon Marchi <simon.marchi@ericsson.com> * diagnostics.h (DIAGNOSTIC_IGNORE_FORMAT_NONLITERAL): New macro.
Diffstat (limited to 'gdb/printcmd.c')
-rw-r--r--gdb/printcmd.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/gdb/printcmd.c b/gdb/printcmd.c
index 1a3d972..8c99918 100644
--- a/gdb/printcmd.c
+++ b/gdb/printcmd.c
@@ -2200,7 +2200,10 @@ printf_c_string (struct ui_file *stream, const char *format,
tem = value_as_address (value);
if (tem == 0)
{
+ DIAGNOSTIC_PUSH
+ DIAGNOSTIC_IGNORE_FORMAT_NONLITERAL
fprintf_filtered (stream, format, "(null)");
+ DIAGNOSTIC_POP
return;
}
@@ -2221,7 +2224,10 @@ printf_c_string (struct ui_file *stream, const char *format,
read_memory (tem, str, j);
str[j] = 0;
+ DIAGNOSTIC_PUSH
+ DIAGNOSTIC_IGNORE_FORMAT_NONLITERAL
fprintf_filtered (stream, format, (char *) str);
+ DIAGNOSTIC_POP
}
/* Subroutine of ui_printf to simplify it.
@@ -2245,7 +2251,10 @@ printf_wide_c_string (struct ui_file *stream, const char *format,
tem = value_as_address (value);
if (tem == 0)
{
+ DIAGNOSTIC_PUSH
+ DIAGNOSTIC_IGNORE_FORMAT_NONLITERAL
fprintf_filtered (stream, format, "(null)");
+ DIAGNOSTIC_POP
return;
}
@@ -2272,7 +2281,10 @@ printf_wide_c_string (struct ui_file *stream, const char *format,
&output, translit_char);
obstack_grow_str0 (&output, "");
+ DIAGNOSTIC_PUSH
+ DIAGNOSTIC_IGNORE_FORMAT_NONLITERAL
fprintf_filtered (stream, format, obstack_base (&output));
+ DIAGNOSTIC_POP
}
/* Subroutine of ui_printf to simplify it.
@@ -2400,13 +2412,19 @@ printf_pointer (struct ui_file *stream, const char *format,
*fmt_p++ = 'l';
*fmt_p++ = 'x';
*fmt_p++ = '\0';
+ DIAGNOSTIC_PUSH
+ DIAGNOSTIC_IGNORE_FORMAT_NONLITERAL
fprintf_filtered (stream, fmt, val);
+ DIAGNOSTIC_POP
}
else
{
*fmt_p++ = 's';
*fmt_p++ = '\0';
+ DIAGNOSTIC_PUSH
+ DIAGNOSTIC_IGNORE_FORMAT_NONLITERAL
fprintf_filtered (stream, fmt, "(nil)");
+ DIAGNOSTIC_POP
}
}
@@ -2507,8 +2525,11 @@ ui_printf (const char *arg, struct ui_file *stream)
&output, translit_char);
obstack_grow_str0 (&output, "");
+ DIAGNOSTIC_PUSH
+ DIAGNOSTIC_IGNORE_FORMAT_NONLITERAL
fprintf_filtered (stream, current_substring,
obstack_base (&output));
+ DIAGNOSTIC_POP
}
break;
case long_long_arg:
@@ -2516,7 +2537,10 @@ ui_printf (const char *arg, struct ui_file *stream)
{
long long val = value_as_long (val_args[i]);
+ DIAGNOSTIC_PUSH
+ DIAGNOSTIC_IGNORE_FORMAT_NONLITERAL
fprintf_filtered (stream, current_substring, val);
+ DIAGNOSTIC_POP
break;
}
#else
@@ -2526,14 +2550,20 @@ ui_printf (const char *arg, struct ui_file *stream)
{
int val = value_as_long (val_args[i]);
+ DIAGNOSTIC_PUSH
+ DIAGNOSTIC_IGNORE_FORMAT_NONLITERAL
fprintf_filtered (stream, current_substring, val);
+ DIAGNOSTIC_POP
break;
}
case long_arg:
{
long val = value_as_long (val_args[i]);
+ DIAGNOSTIC_PUSH
+ DIAGNOSTIC_IGNORE_FORMAT_NONLITERAL
fprintf_filtered (stream, current_substring, val);
+ DIAGNOSTIC_POP
break;
}
/* Handles floating-point values. */
@@ -2557,7 +2587,10 @@ ui_printf (const char *arg, struct ui_file *stream)
have modified GCC to include -Wformat-security by
default, which will warn here if there is no
argument. */
+ DIAGNOSTIC_PUSH
+ DIAGNOSTIC_IGNORE_FORMAT_NONLITERAL
fprintf_filtered (stream, current_substring, 0);
+ DIAGNOSTIC_POP
break;
default:
internal_error (__FILE__, __LINE__,