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