1 /* Test for scanf formats. %m extensions. */
2 /* { dg-do compile } */
3 /* { dg-options "-std=gnu99 -Wformat" } */
8 foo (char **sp
, wchar_t **lsp
, int *ip
, float *fp
, void **pp
)
10 /* m assignment-allocation modifier, recognized in both C90
11 and C99 modes, is a POSIX and ISO/IEC WDTR 24731-2 extension. */
15 scanf ("%m[bcd]", sp
);
16 scanf ("%ml[bcd]", lsp
);
22 scanf ("%*mls"); /* { dg-warning "assignment suppression and length modifier" } */
24 scanf ("%*ml[bcd]"); /* { dg-warning "assignment suppression and length modifier" } */
26 scanf ("%*mlc"); /* { dg-warning "assignment suppression and length modifier" } */
31 scanf ("%25m[bcd]", sp
);
32 scanf ("%41ml[bcd]", lsp
);
34 scanf ("%27mlc", lsp
);
38 scanf ("%*9mls"); /* { dg-warning "assignment suppression and length modifier" } */
40 scanf ("%*41ml[bcd]"); /* { dg-warning "assignment suppression and length modifier" } */
42 scanf ("%*27mlc"); /* { dg-warning "assignment suppression and length modifier" } */
45 scanf ("%md", ip
); /* { dg-warning "flag used with" } */
46 scanf ("%mi", ip
); /* { dg-warning "flag used with" } */
47 scanf ("%mo", ip
); /* { dg-warning "flag used with" } */
48 scanf ("%mu", ip
); /* { dg-warning "flag used with" } */
49 scanf ("%mx", ip
); /* { dg-warning "flag used with" } */
50 scanf ("%ma", fp
); /* { dg-warning "flag used with" } */
51 scanf ("%mA", fp
); /* { dg-warning "flag used with" } */
52 scanf ("%me", fp
); /* { dg-warning "flag used with" } */
53 scanf ("%mf", fp
); /* { dg-warning "flag used with" } */
54 scanf ("%mg", fp
); /* { dg-warning "flag used with" } */
55 scanf ("%mp", pp
); /* { dg-warning "flag used with" } */