warning: format ‘
%i ’ expects argument of type ‘
int ’, but argument 2 has type ‘
const char * ’
[-Wformat= ]
Function
test_mismatching_types
File
../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
Line
9
Column
18
9 printf("hello %i ", msg ); /* { dg-warning "format '%i' expects argument of type 'int', but argument 2 has type 'const char \\*' " } */
~^ ~~~
| |
int const char *
%s
Suggested fix
--- ../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
+++ ../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
@@ -6,7 +6,7 @@
void test_mismatching_types (const char *msg)
{
- printf("hello %i", msg); /* { dg-warning "format '%i' expects argument of type 'int', but argument 2 has type 'const char \\*' " } */
+ printf("hello %s", msg); /* { dg-warning "format '%i' expects argument of type 'int', but argument 2 has type 'const char \\*' " } */
/* { dg-begin-multiline-output "" }
printf("hello %i", msg);
warning: format ‘
%s ’ expects argument of type ‘
char * ’, but argument 2 has type ‘
int ’
[-Wformat= ]
Function
test_mismatching_types
File
../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
Line
20
Column
18
20 printf("hello %s ", 42 ); /* { dg-warning "format '%s' expects argument of type 'char \\*', but argument 2 has type 'int'" } */
~^ ~~
| |
| int
char *
%d
Suggested fix
--- ../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
+++ ../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
@@ -17,7 +17,7 @@
{ dg-end-multiline-output "" } */
- printf("hello %s", 42); /* { dg-warning "format '%s' expects argument of type 'char \\*', but argument 2 has type 'int'" } */
+ printf("hello %d", 42); /* { dg-warning "format '%s' expects argument of type 'char \\*', but argument 2 has type 'int'" } */
/* { dg-begin-multiline-output "" }
printf("hello %s", 42);
~^ ~~
warning: format ‘
%i ’ expects argument of type ‘
int ’, but argument 2 has type ‘
long int ’
[-Wformat= ]
Function
test_mismatching_types
File
../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
Line
30
Column
18
30 printf("hello %i ", (long)0 ); /* { dg-warning "format '%i' expects argument of type 'int', but argument 2 has type 'long int' " } */
~^ ~~~~~~~
| |
int long int
%li
Suggested fix
--- ../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
+++ ../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
@@ -27,7 +27,7 @@
%d
{ dg-end-multiline-output "" } */
- printf("hello %i", (long)0); /* { dg-warning "format '%i' expects argument of type 'int', but argument 2 has type 'long int' " } */
+ printf("hello %li", (long)0); /* { dg-warning "format '%i' expects argument of type 'int', but argument 2 has type 'long int' " } */
/* { dg-begin-multiline-output "" }
printf("hello %i", (long)0);
~^ ~~~~~~~
warning: format ‘
%s ’ expects argument of type ‘
char * ’, but argument 3 has type ‘
int ’
[-Wformat= ]
Function
test_multiple_arguments
File
../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
Line
42
Column
29
42 printf ("arg0: %i arg1: %s arg 2: %i", /* { dg-warning "29: format '%s'" } */
~^
|
char *
%d
43 100, 101 , 102);
~~~
|
int
Suggested fix
--- ../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
+++ ../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
@@ -39,7 +39,7 @@
void test_multiple_arguments (void)
{
- printf ("arg0: %i arg1: %s arg 2: %i", /* { dg-warning "29: format '%s'" } */
+ printf ("arg0: %i arg1: %d arg 2: %i", /* { dg-warning "29: format '%s'" } */
100, 101, 102);
/* { dg-begin-multiline-output "" }
printf ("arg0: %i arg1: %s arg 2: %i",
warning: format ‘
%s ’ expects argument of type ‘
char * ’, but argument 3 has type ‘
int ’
[-Wformat= ]
Function
test_multiple_arguments_2
File
../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
Line
59
Column
29
59 printf ("arg0: %i arg1: %s arg 2: %i", /* { dg-warning "29: format '%s'" } */
~^
|
char *
%d
60 100, i + j , 102);
~~~~~
|
int
Suggested fix
--- ../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
+++ ../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
@@ -56,7 +56,7 @@
void test_multiple_arguments_2 (int i, int j)
{
- printf ("arg0: %i arg1: %s arg 2: %i", /* { dg-warning "29: format '%s'" } */
+ printf ("arg0: %i arg1: %d arg 2: %i", /* { dg-warning "29: format '%s'" } */
100, i + j, 102);
/* { dg-begin-multiline-output "" }
printf ("arg0: %i arg1: %s arg 2: %i",
warning: format ‘
%d ’ expects a matching ‘
int ’ argument
[-Wformat= ]
Function
multiline_format_string
File
../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
Line
75
Column
11
75 printf ("before the fmt specifier" /* { dg-warning "11: format '%d' expects a matching 'int' argument" } */
^~~~~~~~~~~~~~~~~~~~~~~~~~
note: format string is defined here
File
../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
Line
82
Column
12
81 "%"
~~
82 "d " /* { dg-message "12: format string is defined here" } */
~^
|
int
warning: format ‘
%i ’ expects argument of type ‘
int ’, but argument 2 has type ‘
const char * ’
[-Wformat= ]
Function
test_hex
File
../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
Line
99
Column
21
99 printf("hello \x25\x69 ", msg ); /* { dg-warning "format '%i' expects argument of type 'int', but argument 2 has type 'const char \\*' " } */
~~~~^~~~ ~~~
| |
int const char *
\x25s
Suggested fix
--- ../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
+++ ../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
@@ -96,7 +96,7 @@
{
/* "%" is \x25
"i" is \x69 */
- printf("hello \x25\x69", msg); /* { dg-warning "format '%i' expects argument of type 'int', but argument 2 has type 'const char \\*' " } */
+ printf("hello \x25s", msg); /* { dg-warning "format '%i' expects argument of type 'int', but argument 2 has type 'const char \\*' " } */
/* { dg-begin-multiline-output "" }
printf("hello \x25\x69", msg);
warning: format ‘
%i ’ expects argument of type ‘
int ’, but argument 2 has type ‘
const char * ’
[-Wformat= ]
Function
test_oct
File
../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
Line
114
Column
21
114 printf("hello \045\151 ", msg ); /* { dg-warning "format '%i' expects argument of type 'int', but argument 2 has type 'const char \\*' " } */
~~~~^~~~ ~~~
| |
int const char *
\045s
Suggested fix
--- ../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
+++ ../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
@@ -111,7 +111,7 @@
{
/* "%" is octal 045
"i" is octal 151. */
- printf("hello \045\151", msg); /* { dg-warning "format '%i' expects argument of type 'int', but argument 2 has type 'const char \\*' " } */
+ printf("hello \045s", msg); /* { dg-warning "format '%i' expects argument of type 'int', but argument 2 has type 'const char \\*' " } */
/* { dg-begin-multiline-output "" }
printf("hello \045\151", msg);
warning: format ‘
%i ’ expects argument of type ‘
int ’, but argument 2 has type ‘
const char * ’
[-Wformat= ]
Function
test_multiple
File
../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
Line
129
Column
10
129 printf("prefix" "\x25" "\151" "suffix", /* { dg-warning "format '%i'" } */
^~~~~~~~
130 msg );
~~~
|
const char *
note: format string is defined here
File
../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
Line
129
Column
29
129 printf("prefix" "\x25" "\151 " "suffix", /* { dg-warning "format '%i'" } */
~~~~~~~~^~~~
|
int
\x25" "s
Suggested fix
--- ../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
+++ ../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
@@ -126,7 +126,7 @@
{
/* "%" is \x25 in hex
"i" is \151 in octal. */
- printf("prefix" "\x25" "\151" "suffix", /* { dg-warning "format '%i'" } */
+ printf("prefix" "\x25" "s" "suffix", /* { dg-warning "format '%i'" } */
msg);
/* { dg-begin-multiline-output "" }
printf("prefix" "\x25" "\151" "suffix",
warning: pointer targets in passing argument 1 of ‘
printf ’ differ in signedness
[-Wpointer-sign ]
Function
test_u8
File
../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
Line
151
Column
10
151 printf(u8"hello %i" , msg);/* { dg-warning "format '%i' expects argument of type 'int', but argument 2 has type 'const char \\*' " } */
^~~~~~~~~~~~
|
unsigned char *
note: expected ‘const char * restrict ’ but argument is of type ‘unsigned char * ’
File
../../src/gcc/testsuite/gcc.dg/format/format.h
Line
110
Column
20
110 extern int printf (const char *restrict , ...);
^~~~~~~~~~~~~~~~~~~~
warning: format ‘
%i ’ expects argument of type ‘
int ’, but argument 2 has type ‘
const char * ’
[-Wformat= ]
Function
test_u8
File
../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
Line
151
Column
20
151 printf(u8"hello %i ", msg );/* { dg-warning "format '%i' expects argument of type 'int', but argument 2 has type 'const char \\*' " } */
~^ ~~~
| |
int const char *
%s
Suggested fix
--- ../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
+++ ../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
@@ -148,7 +148,7 @@
void test_u8 (const char *msg)
{
- printf(u8"hello %i", msg);/* { dg-warning "format '%i' expects argument of type 'int', but argument 2 has type 'const char \\*' " } */
+ printf(u8"hello %s", msg);/* { dg-warning "format '%i' expects argument of type 'int', but argument 2 has type 'const char \\*' " } */
/* { dg-begin-multiline-output "" }
printf(u8"hello %i", msg);
~^ ~~~
warning: format ‘
%s ’ expects argument of type ‘
char * ’, but argument 2 has type ‘
long int ’
[-Wformat= ]
Function
test_param
File
../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
Line
163
Column
17
163 printf ("foo %s bar", long_i + long_j ); /* { dg-warning "17: format '%s' expects argument of type 'char \\*', but argument 2 has type 'long int'" } */
~^ ~~~~~~~~~~~~~~~
| |
char * long int
%ld
Suggested fix
--- ../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
+++ ../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
@@ -160,7 +160,7 @@
void test_param (long long_i, long long_j)
{
- printf ("foo %s bar", long_i + long_j); /* { dg-warning "17: format '%s' expects argument of type 'char \\*', but argument 2 has type 'long int'" } */
+ printf ("foo %ld bar", long_i + long_j); /* { dg-warning "17: format '%s' expects argument of type 'char \\*', but argument 2 has type 'long int'" } */
/* { dg-begin-multiline-output "" }
printf ("foo %s bar", long_i + long_j);
~^ ~~~~~~~~~~~~~~~
warning: field width specifier ‘
* ’ expects argument of type ‘
int ’, but argument 2 has type ‘
long int ’
[-Wformat= ]
Function
test_field_width_specifier
File
../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
Line
175
Column
14
175 printf (" %*.*d ", l , i1, i2); /* { dg-warning "14: field width specifier '\\*' expects argument of type 'int', but argument 2 has type 'long int'" } */
~^~~~ ~
| |
int long int
warning: field width specifier ‘
* ’ expects argument of type ‘
int ’, but argument 3 has type ‘
long int ’
[-Wformat= ]
Function
test_field_width_specifier_2
File
../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
Line
188
Column
28
188 __builtin_sprintf (d, " %*ld ", foo , foo); /* { dg-warning "28: field width specifier '\\*' expects argument of type 'int', but argument 3 has type 'long int'" } */
~^~~ ~~~
| |
int long int
warning: field width specifier ‘
* ’ expects argument of type ‘
int ’, but argument 3 has type ‘
long int ’
[-Wformat= ]
Function
test_field_width_specifier_2
File
../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
Line
196
Column
28
196 __builtin_sprintf (d, " %*ld ", foo + bar , foo); /* { dg-warning "28: field width specifier '\\*' expects argument of type 'int', but argument 3 has type 'long int'" } */
~^~~ ~~~~~~~~~
| |
int long int
warning: field precision specifier ‘
.* ’ expects argument of type ‘
int ’, but argument 3 has type ‘
long int ’
[-Wformat= ]
Function
test_field_precision_specifier
File
../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
Line
207
Column
29
207 __builtin_sprintf (d, " %.*ld ", foo , foo); /* { dg-warning "29: field precision specifier '\\.\\*' expects argument of type 'int', but argument 3 has type 'long int'" } */
~~^~~ ~~~
| |
int long int
warning: field precision specifier ‘
.* ’ expects argument of type ‘
int ’, but argument 3 has type ‘
long int ’
[-Wformat= ]
Function
test_field_precision_specifier
File
../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
Line
215
Column
29
215 __builtin_sprintf (d, " %.*ld ", foo + bar , foo); /* { dg-warning "29: field precision specifier '\\.\\*' expects argument of type 'int', but argument 3 has type 'long int'" } */
~~^~~ ~~~~~~~~~
| |
int long int
warning: spurious trailing ‘
% ’ in format
[-Wformat= ]
Function
test_spurious_percent
File
../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
Line
226
Column
23
226 printf("hello world % "); /* { dg-warning "23: spurious trailing" } */
^
warning: empty left precision in gnu_strfmon format
[-Wformat= ]
Function
test_empty_precision
File
../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
Line
236
Column
20
236 strfmon (s, m, "%# .5n", d); /* { dg-warning "20: empty left precision in gnu_strfmon format" } */
^
warning: empty precision in gnu_strfmon format
[-Wformat= ]
Function
test_empty_precision
File
../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
Line
242
Column
22
242 strfmon (s, m, "%#5. n", d); /* { dg-warning "22: empty precision in gnu_strfmon format" } */
^
warning: repeated '+' flag in format
[-Wformat= ]
Function
test_repeated
File
../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
Line
251
Column
14
251 printf ("%++ d", i); /* { dg-warning "14: repeated '\\+' flag in format" } */
^
warning: conversion lacks type at end of format
[-Wformat= ]
Function
test_conversion_lacks_type
File
../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
Line
260
Column
14
260 printf (" %h "); /* { dg-warning "14:conversion lacks type at end of format" } */
^
Function
test_embedded_nul
File
../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
Line
269
Column
13
269 printf (" \0 "); /* { dg-warning "13:embedded" "warning for embedded NUL" } */
^~
warning: format ‘
%i ’ expects argument of type ‘
int ’, but argument 2 has type ‘
const char * ’
[-Wformat= ]
Function
test_macro
File
../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
Line
279
Column
10
279 printf("hello " INT_FMT " world", msg ); /* { dg-warning "10: format '%i' expects argument of type 'int', but argument 2 has type 'const char \\*' " } */
^~~~~~~~ ~~~
|
const char *
note: format string is defined here
File
../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
Line
278
Column
19
278 #define INT_FMT "%i " /* { dg-message "19: format string is defined here" } */
~^
|
int
%s
Suggested fix
--- ../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
+++ ../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
@@ -275,7 +275,7 @@
void test_macro (const char *msg)
{
-#define INT_FMT "%i" /* { dg-message "19: format string is defined here" } */
+#define INT_FMT "%s" /* { dg-message "19: format string is defined here" } */
printf("hello " INT_FMT " world", msg); /* { dg-warning "10: format '%i' expects argument of type 'int', but argument 2 has type 'const char \\*' " } */
/* { dg-begin-multiline-output "" }
printf("hello " INT_FMT " world", msg);
warning: format ‘
%u ’ expects argument of type ‘
unsigned int ’, but argument 2 has type ‘
const char * ’
[-Wformat= ]
Function
test_macro_2
File
../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
Line
299
Column
10
299 printf("hello %" PRIu32 " world", msg ); /* { dg-warning "10: format '%u' expects argument of type 'unsigned int', but argument 2 has type 'const char \\*' " } */
^~~~~~~~~ ~~~
|
const char *
note: format string is defined here
File
../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
Line
298
Column
17
298 #define PRIu32 "u " /* { dg-message "17: format string is defined here" } */
^
|
unsigned int
warning: format ‘
%i ’ expects argument of type ‘
int ’, but argument 2 has type ‘
const char * ’
[-Wformat= ]
Function
test_macro_3
File
../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
Line
317
Column
20
317 #define FMT_STRING "hello %i world" /* { dg-line test_macro_3_macro_line } */
^~~~~~~~~~~~~~~~
note: format string is defined here
File
../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
Line
317
Column
28
317 #define FMT_STRING "hello %i world" /* { dg-line test_macro_3_macro_line } */
~^
|
int
%s
Suggested fix
--- ../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
+++ ../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
@@ -314,7 +314,7 @@
void test_macro_3 (const char *msg)
{
-#define FMT_STRING "hello %i world" /* { dg-line test_macro_3_macro_line } */
+#define FMT_STRING "hello %s world" /* { dg-line test_macro_3_macro_line } */
/* { dg-warning "20: format '%i' expects argument of type 'int', but argument 2 has type 'const char \\*'" "" { target *-*-*} .-1 } */
printf(FMT_STRING, msg); /* { dg-message "10: in expansion of macro 'FMT_STRING" } */
/* { dg-begin-multiline-output "" }
warning: format ‘
%i ’ expects argument of type ‘
int ’, but argument 2 has type ‘
const char * ’
[-Wformat= ]
Function
test_macro_4
File
../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
Line
341
Column
20
341 #define FMT_STRING "hello %i world" /* { dg-warning "20: format '%i' expects argument of type 'int', but argument 2 has type 'const char \\*' " } */
^~~~~~~~~~~~~~~~
note: format string is defined here
File
../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
Line
341
Column
28
341 #define FMT_STRING "hello %i world" /* { dg-warning "20: format '%i' expects argument of type 'int', but argument 2 has type 'const char \\*' " } */
~^
|
int
%s
Suggested fix
--- ../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
+++ ../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
@@ -338,7 +338,7 @@
void test_macro_4 (const char *msg)
{
-#define FMT_STRING "hello %i world" /* { dg-warning "20: format '%i' expects argument of type 'int', but argument 2 has type 'const char \\*' " } */
+#define FMT_STRING "hello %s world" /* { dg-warning "20: format '%i' expects argument of type 'int', but argument 2 has type 'const char \\*' " } */
printf(FMT_STRING "\n", msg); /* { dg-message "10: in expansion of macro 'FMT_STRING" } */
/* { dg-begin-multiline-output "" }
#define FMT_STRING "hello %i world"
warning: format ‘
%d ’ expects argument of type ‘
int ’, but argument 2 has type ‘
double ’
[-Wformat= ]
Function
test_non_contiguous_strings
File
../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
Line
363
Column
20
363 __builtin_printf(" %" "d ", 0.5 ); /* { dg-warning "20: format .%d. expects argument of type .int., but argument 2 has type .double." } */
^~~~ ~~~
|
double
note: format string is defined here
File
../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
Line
363
Column
26
363 __builtin_printf(" %" "d ", 0.5); /* { dg-warning "20: format .%d. expects argument of type .int., but argument 2 has type .double." } */
~~~~^
|
int
%" "f
Suggested fix
--- ../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
+++ ../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
@@ -360,7 +360,7 @@
void test_non_contiguous_strings (void)
{
- __builtin_printf(" %" "d ", 0.5); /* { dg-warning "20: format .%d. expects argument of type .int., but argument 2 has type .double." } */
+ __builtin_printf(" %" "f ", 0.5); /* { dg-warning "20: format .%d. expects argument of type .int., but argument 2 has type .double." } */
/* { dg-message "26: format string is defined here" "" { target *-*-* } .-1 } */
/* { dg-begin-multiline-output "" }
__builtin_printf(" %" "d ", 0.5);
warning: format ‘
%d ’ expects argument of type ‘
int ’, but argument 2 has type ‘
double ’
[-Wformat= ]
Function
test_const_arrays
File
../../src/gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
Line
385
Column
20
385 __builtin_printf(a , 0.5 ); /* { dg-warning "20: format .%d. expects argument of type .int., but argument 2 has type .double." } */
^ ~~~
|
double