diff options
Diffstat (limited to 'REORG.TODO/stdio-common/scanf7.c')
-rw-r--r-- | REORG.TODO/stdio-common/scanf7.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/REORG.TODO/stdio-common/scanf7.c b/REORG.TODO/stdio-common/scanf7.c new file mode 100644 index 0000000000..f568738d7e --- /dev/null +++ b/REORG.TODO/stdio-common/scanf7.c @@ -0,0 +1,33 @@ +#include <stdio.h> +#include <stdlib.h> +#include <libc-diag.h> + +int +main (int argc, char *argv[]) +{ + long long int n; + int ret; + + n = -1; + ret = sscanf ("1000", "%lld", &n); + printf ("%%lld: ret: %d, n: %Ld\n", ret, n); + if (ret != 1 || n != 1000L) + abort (); + + n = -2; + + /* We are testing a corner case of the scanf format string here. */ + DIAG_PUSH_NEEDS_COMMENT; + DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wformat"); + DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wformat-extra-args"); + + ret = sscanf ("1000", "%llld", &n); + + DIAG_POP_NEEDS_COMMENT; + + printf ("%%llld: ret: %d, n: %Ld\n", ret, n); + if (ret > 0 || n >= 0L) + abort (); + + return 0; +} |