blob: c9f0496a1c2ac6488da5328f7fd15313bcde14fd [file] [log] [blame]
/* PR c/80619 - bad fix-it hint for GCC %lu directive with int argument: %wu
{ dg-do compile }
{ dg-options "-Wall -fdiagnostics-show-caret" } */
void T (const char*, ...) __attribute__ ((format (__gcc_diag__, 1, 2)));
void test_suggested_modifier (void)
{
T ("%ld", 0); // { dg-warning "format '%ld' expects argument of type 'long int', but argument 2 has type 'int'" }
/* { dg-begin-multiline-output "" }
T ("%ld", 0);
~~^ ~
| |
| int
long int
%d
{ dg-end-multiline-output "" } */
T ("%li", 0); // { dg-warning "format '%li' expects argument of type 'long int', but argument 2 has type 'int'" }
/* { dg-begin-multiline-output "" }
T ("%li", 0);
~~^ ~
| |
| int
long int
%i
{ dg-end-multiline-output "" } */
T ("%lu", 0); // { dg-warning "format '%lu' expects argument of type 'long unsigned int', but argument 2 has type 'int'" }
/* { dg-begin-multiline-output "" }
T ("%lu", 0);
~~^ ~
| |
| int
long unsigned int
%u
{ dg-end-multiline-output "" } */
T ("%lx", 0); // { dg-warning "format '%lx' expects argument of type 'long unsigned int', but argument 2 has type 'int'" }
/* { dg-begin-multiline-output "" }
T ("%lx", 0);
~~^ ~
| |
| int
long unsigned int
%x
{ dg-end-multiline-output "" } */
T ("%lli", 0); // { dg-warning "format '%lli' expects argument of type 'long long int', but argument 2 has type 'int'" }
/* { dg-begin-multiline-output "" }
T ("%lli", 0);
~~~^ ~
| |
| int
long long int
%i
{ dg-end-multiline-output "" } */
T ("%llo", 0); // { dg-warning "format '%llo' expects argument of type 'long long unsigned int', but argument 2 has type 'int'" }
/* { dg-begin-multiline-output "" }
T ("%llo", 0);
~~~^ ~
| |
| int
long long unsigned int
%o
{ dg-end-multiline-output "" } */
T ("%llu", 0); // { dg-warning "format '%llu' expects argument of type 'long long unsigned int', but argument 2 has type 'int'" }
/* { dg-begin-multiline-output "" }
T ("%llu", 0);
~~~^ ~
| |
| int
long long unsigned int
%u
{ dg-end-multiline-output "" } */
T ("%llx", 0); // { dg-warning "format '%llx' expects argument of type 'long long unsigned int', but argument 2 has type 'int'" }
/* { dg-begin-multiline-output "" }
T ("%llx", 0);
~~~^ ~
| |
| int
long long unsigned int
%x
{ dg-end-multiline-output "" } */
}