about summary refs log tree commit diff
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>