aboutsummaryrefslogtreecommitdiff
path: root/REORG.TODO/wcsmbs/tst-wcstof.c
diff options
context:
space:
mode:
Diffstat (limited to 'REORG.TODO/wcsmbs/tst-wcstof.c')
-rw-r--r--REORG.TODO/wcsmbs/tst-wcstof.c33
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>