diff options
Diffstat (limited to 'REORG.TODO/wcsmbs/tst-wcstof.c')
-rw-r--r-- | REORG.TODO/wcsmbs/tst-wcstof.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/REORG.TODO/wcsmbs/tst-wcstof.c b/REORG.TODO/wcsmbs/tst-wcstof.c new file mode 100644 index 0000000000..5b7cdeacd8 --- /dev/null +++ b/REORG.TODO/wcsmbs/tst-wcstof.c @@ -0,0 +1,33 @@ +#define _GNU_SOURCE 1 +#include <wchar.h> +#include <stdio.h> +#include <string.h> +#include <wctype.h> +#include <libc-diag.h> + +static int +do_test (void) +{ + int result = 0; + char buf[100]; + wchar_t tmp[3]; + tmp[0] = '8'; + tmp[1] = '1'; + tmp[2] = 0; + + /* GCC does not know the result of wcstof so cannot see that the + snprintf output is not truncated. */ + DIAG_PUSH_NEEDS_COMMENT; +#if __GNUC_PREREQ (7, 0) + DIAG_IGNORE_NEEDS_COMMENT (7.0, "-Wformat-truncation"); +#endif + snprintf (buf, 100, "%S = %f", tmp, wcstof (tmp, NULL)); + DIAG_POP_NEEDS_COMMENT; + printf ("\"%s\" -> %s\n", buf, + strcmp (buf, "81 = 81.000000") == 0 ? "okay" : "buggy"); + result |= strcmp (buf, "81 = 81.000000") != 0; + + return result; +} + +#include <support/test-driver.c> |