diff options
Diffstat (limited to 'stdio-common/bug21.c')
-rw-r--r-- | stdio-common/bug21.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/stdio-common/bug21.c b/stdio-common/bug21.c index d22b9c1a97..ca27272ba1 100644 --- a/stdio-common/bug21.c +++ b/stdio-common/bug21.c @@ -1,4 +1,5 @@ #include <stdio.h> +#include <libc-internal.h> static int do_test (void) @@ -6,7 +7,15 @@ do_test (void) static const char buf[] = " "; char *str; + /* GCC in C99 mode treats %a as the C99 format expecting float *, + but glibc with _GNU_SOURCE treats %as as the GNU allocation + extension, so resulting in "warning: format '%a' expects argument + of type 'float *', but argument 3 has type 'char **'". This + applies to the other %as, %aS and %a[] formats below as well. */ + DIAG_PUSH_NEEDS_COMMENT; + DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wformat"); int r = sscanf (buf, "%as", &str); + DIAG_POP_NEEDS_COMMENT; printf ("%d %p\n", r, str); return r != -1 || str != NULL; |