about summary refs log tree commit diff
path: root/REORG.TODO/stdio-common
diff options
context:
space:
mode:
Diffstat (limited to 'REORG.TODO/stdio-common')
-rw-r--r--REORG.TODO/stdio-common/Depend1
-rw-r--r--REORG.TODO/stdio-common/Makefile157
-rw-r--r--REORG.TODO/stdio-common/Versions66
-rw-r--r--REORG.TODO/stdio-common/_i18n_number.h117
-rw-r--r--REORG.TODO/stdio-common/_itoa.c479
-rw-r--r--REORG.TODO/stdio-common/_itowa.c349
-rw-r--r--REORG.TODO/stdio-common/_itowa.h71
-rw-r--r--REORG.TODO/stdio-common/asprintf.c43
-rw-r--r--REORG.TODO/stdio-common/bits/printf-ldbl.h23
-rw-r--r--REORG.TODO/stdio-common/bug-vfprintf-nargs.c78
-rw-r--r--REORG.TODO/stdio-common/bug1.c30
-rw-r--r--REORG.TODO/stdio-common/bug1.input1
-rw-r--r--REORG.TODO/stdio-common/bug10.c25
-rw-r--r--REORG.TODO/stdio-common/bug11.c14
-rw-r--r--REORG.TODO/stdio-common/bug12.c46
-rw-r--r--REORG.TODO/stdio-common/bug13.c30
-rw-r--r--REORG.TODO/stdio-common/bug14.c29
-rw-r--r--REORG.TODO/stdio-common/bug16.c43
-rw-r--r--REORG.TODO/stdio-common/bug17.c31
-rw-r--r--REORG.TODO/stdio-common/bug18.c48
-rw-r--r--REORG.TODO/stdio-common/bug18a.c6
-rw-r--r--REORG.TODO/stdio-common/bug19.c58
-rw-r--r--REORG.TODO/stdio-common/bug19a.c7
-rw-r--r--REORG.TODO/stdio-common/bug2.c11
-rw-r--r--REORG.TODO/stdio-common/bug20.c32
-rw-r--r--REORG.TODO/stdio-common/bug21.c25
-rw-r--r--REORG.TODO/stdio-common/bug22.c56
-rw-r--r--REORG.TODO/stdio-common/bug23-2.c70
-rw-r--r--REORG.TODO/stdio-common/bug23-3.c50
-rw-r--r--REORG.TODO/stdio-common/bug23-4.c31
-rw-r--r--REORG.TODO/stdio-common/bug23.c21
-rw-r--r--REORG.TODO/stdio-common/bug24.c26
-rw-r--r--REORG.TODO/stdio-common/bug25.c71
-rw-r--r--REORG.TODO/stdio-common/bug26.c38
-rw-r--r--REORG.TODO/stdio-common/bug3.c53
-rw-r--r--REORG.TODO/stdio-common/bug4.c48
-rw-r--r--REORG.TODO/stdio-common/bug5.c69
-rw-r--r--REORG.TODO/stdio-common/bug6.c26
-rw-r--r--REORG.TODO/stdio-common/bug6.input1
-rw-r--r--REORG.TODO/stdio-common/bug7.c69
-rw-r--r--REORG.TODO/stdio-common/bug8.c27
-rw-r--r--REORG.TODO/stdio-common/bug9.c22
-rw-r--r--REORG.TODO/stdio-common/ctermid.c33
-rw-r--r--REORG.TODO/stdio-common/cuserid.c32
-rw-r--r--REORG.TODO/stdio-common/dprintf.c40
-rw-r--r--REORG.TODO/stdio-common/errlist.c36
-rw-r--r--REORG.TODO/stdio-common/errnobug.c59
-rw-r--r--REORG.TODO/stdio-common/flockfile.c29
-rw-r--r--REORG.TODO/stdio-common/fprintf.c43
-rw-r--r--REORG.TODO/stdio-common/fscanf.c36
-rw-r--r--REORG.TODO/stdio-common/ftrylockfile.c30
-rw-r--r--REORG.TODO/stdio-common/funlockfile.c29
-rw-r--r--REORG.TODO/stdio-common/fxprintf.c99
-rw-r--r--REORG.TODO/stdio-common/getline.c35
-rw-r--r--REORG.TODO/stdio-common/getw.c33
-rw-r--r--REORG.TODO/stdio-common/isoc99_fscanf.c39
-rw-r--r--REORG.TODO/stdio-common/isoc99_scanf.c44
-rw-r--r--REORG.TODO/stdio-common/isoc99_sscanf.c35
-rw-r--r--REORG.TODO/stdio-common/isoc99_vfscanf.c34
-rw-r--r--REORG.TODO/stdio-common/isoc99_vscanf.c33
-rw-r--r--REORG.TODO/stdio-common/isoc99_vsscanf.c46
-rw-r--r--REORG.TODO/stdio-common/itoa-digits.c24
-rw-r--r--REORG.TODO/stdio-common/itoa-udigits.c24
-rw-r--r--REORG.TODO/stdio-common/itowa-digits.c26
-rw-r--r--REORG.TODO/stdio-common/perror.c83
-rw-r--r--REORG.TODO/stdio-common/printf-parse.h144
-rw-r--r--REORG.TODO/stdio-common/printf-parsemb.c408
-rw-r--r--REORG.TODO/stdio-common/printf-parsewc.c2
-rw-r--r--REORG.TODO/stdio-common/printf-prs.c102
-rw-r--r--REORG.TODO/stdio-common/printf.c42
-rw-r--r--REORG.TODO/stdio-common/printf.h191
-rw-r--r--REORG.TODO/stdio-common/printf_fp.c1364
-rw-r--r--REORG.TODO/stdio-common/printf_fphex.c487
-rw-r--r--REORG.TODO/stdio-common/printf_size.c236
-rw-r--r--REORG.TODO/stdio-common/psiginfo-data.h50
-rw-r--r--REORG.TODO/stdio-common/psiginfo-define.h15
-rw-r--r--REORG.TODO/stdio-common/psiginfo.c203
-rw-r--r--REORG.TODO/stdio-common/psignal.c52
-rw-r--r--REORG.TODO/stdio-common/putw.c30
-rw-r--r--REORG.TODO/stdio-common/reg-modifier.c202
-rw-r--r--REORG.TODO/stdio-common/reg-printf.c86
-rw-r--r--REORG.TODO/stdio-common/reg-type.c61
-rw-r--r--REORG.TODO/stdio-common/remove.c30
-rw-r--r--REORG.TODO/stdio-common/rename.c37
-rw-r--r--REORG.TODO/stdio-common/renameat.c44
-rw-r--r--REORG.TODO/stdio-common/scanf.c38
-rw-r--r--REORG.TODO/stdio-common/scanf1.c15
-rw-r--r--REORG.TODO/stdio-common/scanf10.c15
-rw-r--r--REORG.TODO/stdio-common/scanf11.c46
-rw-r--r--REORG.TODO/stdio-common/scanf12.c23
-rw-r--r--REORG.TODO/stdio-common/scanf12.input1
-rw-r--r--REORG.TODO/stdio-common/scanf13.c186
-rw-r--r--REORG.TODO/stdio-common/scanf14.c137
-rw-r--r--REORG.TODO/stdio-common/scanf15.c99
-rw-r--r--REORG.TODO/stdio-common/scanf16.c147
-rw-r--r--REORG.TODO/stdio-common/scanf17.c130
-rw-r--r--REORG.TODO/stdio-common/scanf2.c25
-rw-r--r--REORG.TODO/stdio-common/scanf3.c28
-rw-r--r--REORG.TODO/stdio-common/scanf4.c40
-rw-r--r--REORG.TODO/stdio-common/scanf5.c21
-rw-r--r--REORG.TODO/stdio-common/scanf7.c33
-rw-r--r--REORG.TODO/stdio-common/scanf8.c16
-rw-r--r--REORG.TODO/stdio-common/scanf9.c30
-rw-r--r--REORG.TODO/stdio-common/siglist.c36
-rw-r--r--REORG.TODO/stdio-common/snprintf.c39
-rw-r--r--REORG.TODO/stdio-common/sprintf.c39
-rw-r--r--REORG.TODO/stdio-common/sscanf.c41
-rw-r--r--REORG.TODO/stdio-common/stdio_ext.h86
-rw-r--r--REORG.TODO/stdio-common/stdio_lim.h.in42
-rw-r--r--REORG.TODO/stdio-common/tempnam.c43
-rw-r--r--REORG.TODO/stdio-common/tempname.c51
-rw-r--r--REORG.TODO/stdio-common/temptest.c28
-rw-r--r--REORG.TODO/stdio-common/test-fseek.c87
-rw-r--r--REORG.TODO/stdio-common/test-fwrite.c71
-rw-r--r--REORG.TODO/stdio-common/test-popen.c105
-rw-r--r--REORG.TODO/stdio-common/test-vfprintf.c136
-rw-r--r--REORG.TODO/stdio-common/test_rdwr.c128
-rw-r--r--REORG.TODO/stdio-common/tfformat.c4130
-rw-r--r--REORG.TODO/stdio-common/tiformat.c5070
-rw-r--r--REORG.TODO/stdio-common/tllformat.c59
-rw-r--r--REORG.TODO/stdio-common/tmpfile.c69
-rw-r--r--REORG.TODO/stdio-common/tmpfile64.c28
-rw-r--r--REORG.TODO/stdio-common/tmpnam.c51
-rw-r--r--REORG.TODO/stdio-common/tmpnam_r.c37
-rw-r--r--REORG.TODO/stdio-common/tst-cookie.c95
-rw-r--r--REORG.TODO/stdio-common/tst-fdopen.c50
-rw-r--r--REORG.TODO/stdio-common/tst-ferror.c44
-rw-r--r--REORG.TODO/stdio-common/tst-ferror.input1
-rw-r--r--REORG.TODO/stdio-common/tst-fgets.c20
-rw-r--r--REORG.TODO/stdio-common/tst-fileno.c40
-rw-r--r--REORG.TODO/stdio-common/tst-fmemopen.c165
-rw-r--r--REORG.TODO/stdio-common/tst-fmemopen2.c262
-rw-r--r--REORG.TODO/stdio-common/tst-fmemopen3.c322
-rw-r--r--REORG.TODO/stdio-common/tst-fmemopen4.c71
-rw-r--r--REORG.TODO/stdio-common/tst-fphex-wide.c24
-rw-r--r--REORG.TODO/stdio-common/tst-fphex.c72
-rw-r--r--REORG.TODO/stdio-common/tst-fseek.c482
-rw-r--r--REORG.TODO/stdio-common/tst-fwrite.c70
-rw-r--r--REORG.TODO/stdio-common/tst-gets.c71
-rw-r--r--REORG.TODO/stdio-common/tst-gets.input2
-rw-r--r--REORG.TODO/stdio-common/tst-grouping.c83
-rw-r--r--REORG.TODO/stdio-common/tst-long-dbl-fphex.c53
-rw-r--r--REORG.TODO/stdio-common/tst-obprintf.c45
-rw-r--r--REORG.TODO/stdio-common/tst-perror.c157
-rw-r--r--REORG.TODO/stdio-common/tst-popen.c72
-rw-r--r--REORG.TODO/stdio-common/tst-popen2.c92
-rw-r--r--REORG.TODO/stdio-common/tst-printf-bz18872.sh68
-rw-r--r--REORG.TODO/stdio-common/tst-printf-round.c234
-rw-r--r--REORG.TODO/stdio-common/tst-printf.c404
-rw-r--r--REORG.TODO/stdio-common/tst-printf.sh268
-rw-r--r--REORG.TODO/stdio-common/tst-printfsz.c81
-rw-r--r--REORG.TODO/stdio-common/tst-put-error.c69
-rw-r--r--REORG.TODO/stdio-common/tst-rndseek.c144
-rw-r--r--REORG.TODO/stdio-common/tst-setvbuf1.c19
-rw-r--r--REORG.TODO/stdio-common/tst-setvbuf1.expect2
-rw-r--r--REORG.TODO/stdio-common/tst-sprintf.c90
-rw-r--r--REORG.TODO/stdio-common/tst-sprintf2.c87
-rw-r--r--REORG.TODO/stdio-common/tst-sprintf3.c99
-rw-r--r--REORG.TODO/stdio-common/tst-sscanf.c273
-rw-r--r--REORG.TODO/stdio-common/tst-swprintf.c59
-rw-r--r--REORG.TODO/stdio-common/tst-swscanf.c5
-rw-r--r--REORG.TODO/stdio-common/tst-tmpnam.c53
-rw-r--r--REORG.TODO/stdio-common/tst-unbputc.c14
-rwxr-xr-xREORG.TODO/stdio-common/tst-unbputc.sh33
-rw-r--r--REORG.TODO/stdio-common/tst-ungetc.c63
-rw-r--r--REORG.TODO/stdio-common/tst-unlockedio.c169
-rw-r--r--REORG.TODO/stdio-common/tst-vfprintf-width-prec.c108
-rw-r--r--REORG.TODO/stdio-common/tst-wc-printf.c25
-rw-r--r--REORG.TODO/stdio-common/tstdiomisc.c289
-rw-r--r--REORG.TODO/stdio-common/tstgetln.c46
-rw-r--r--REORG.TODO/stdio-common/tstgetln.input3
-rw-r--r--REORG.TODO/stdio-common/tstscanf.c355
-rw-r--r--REORG.TODO/stdio-common/tstscanf.input7
-rw-r--r--REORG.TODO/stdio-common/vfprintf.c2375
-rw-r--r--REORG.TODO/stdio-common/vfscanf.c3070
-rw-r--r--REORG.TODO/stdio-common/vfwprintf.c3
-rw-r--r--REORG.TODO/stdio-common/vfwscanf.c2
-rw-r--r--REORG.TODO/stdio-common/vprintf.c33
-rw-r--r--REORG.TODO/stdio-common/xbug.c70
179 files changed, 29525 insertions, 0 deletions
diff --git a/REORG.TODO/stdio-common/Depend b/REORG.TODO/stdio-common/Depend
new file mode 100644
index 0000000000..f3e1156a4e
--- /dev/null
+++ b/REORG.TODO/stdio-common/Depend
@@ -0,0 +1 @@
+localedata
diff --git a/REORG.TODO/stdio-common/Makefile b/REORG.TODO/stdio-common/Makefile
new file mode 100644
index 0000000000..01a6dd0eda
--- /dev/null
+++ b/REORG.TODO/stdio-common/Makefile
@@ -0,0 +1,157 @@
+# Copyright (C) 1991-2017 Free Software Foundation, Inc.
+# This file is part of the GNU C Library.
+
+# The GNU C Library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+
+# The GNU C Library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+
+# You should have received a copy of the GNU Lesser General Public
+# License along with the GNU C Library; if not, see
+# <http://www.gnu.org/licenses/>.
+
+#
+#	Specific makefile for stdio-common.
+#
+subdir	:= stdio-common
+
+include ../Makeconfig
+
+headers	:= stdio_ext.h printf.h bits/printf-ldbl.h bits/stdio_lim.h
+
+routines	:=							      \
+	ctermid cuserid							      \
+	_itoa _itowa itoa-digits itoa-udigits itowa-digits		      \
+	vfprintf vprintf printf_fp reg-printf printf-prs printf_fphex	      \
+	reg-modifier reg-type						      \
+	printf_size fprintf printf snprintf sprintf asprintf dprintf	      \
+	vfwprintf vfscanf vfwscanf					      \
+	fscanf scanf sscanf						      \
+	perror psignal							      \
+	tmpfile tmpfile64 tmpnam tmpnam_r tempnam tempname		      \
+	getline getw putw						      \
+	remove rename renameat						      \
+	flockfile ftrylockfile funlockfile				      \
+	isoc99_scanf isoc99_vscanf isoc99_fscanf isoc99_vfscanf isoc99_sscanf \
+	isoc99_vsscanf							      \
+	psiginfo
+
+aux	:= errlist siglist printf-parsemb printf-parsewc fxprintf
+
+tests := tstscanf test_rdwr test-popen tstgetln test-fseek \
+	 temptest tst-fileno test-fwrite tst-ungetc tst-ferror \
+	 xbug errnobug \
+	 bug1 bug2 bug3 bug4 bug5 bug6 bug7 bug8 bug9 bug10 bug11 bug12 bug13 \
+	 tfformat tiformat tllformat tstdiomisc tst-printfsz tst-wc-printf \
+	 scanf1 scanf2 scanf3 scanf4 scanf5 scanf7 scanf8 scanf9 scanf10 \
+	 scanf11 scanf12 tst-tmpnam tst-cookie tst-obprintf tst-sscanf \
+	 tst-swprintf tst-fseek tst-fmemopen test-vfprintf tst-gets \
+	 tst-perror tst-sprintf tst-rndseek tst-fdopen tst-fphex bug14 \
+	 tst-popen tst-unlockedio tst-fmemopen2 tst-put-error tst-fgets \
+	 tst-fwrite bug16 bug17 tst-swscanf tst-sprintf2 bug18 bug18a \
+	 bug19 bug19a tst-popen2 scanf13 scanf14 scanf15 bug20 bug21 bug22 \
+	 scanf16 scanf17 tst-setvbuf1 tst-grouping bug23 bug24 \
+	 bug-vfprintf-nargs tst-long-dbl-fphex tst-fphex-wide tst-sprintf3 \
+	 bug25 tst-printf-round bug23-2 bug23-3 bug23-4 bug26 tst-fmemopen3 \
+	 tst-printf-bz18872 tst-vfprintf-width-prec tst-fmemopen4
+
+test-srcs = tst-unbputc tst-printf
+
+ifeq ($(run-built-tests),yes)
+tests-special += $(objpfx)tst-unbputc.out $(objpfx)tst-printf.out \
+		 $(objpfx)tst-printf-bz18872-mem.out \
+		 $(objpfx)tst-setvbuf1-cmp.out \
+		 $(objpfx)tst-vfprintf-width-prec-mem.out
+generated += tst-printf-bz18872.c tst-printf-bz18872.mtrace \
+	     tst-printf-bz18872-mem.out \
+	     tst-vfprintf-width-prec.mtrace tst-vfprintf-width-prec-mem.out
+endif
+
+include ../Rules
+
+ifeq ($(run-built-tests),yes)
+LOCALES := de_DE.ISO-8859-1 de_DE.UTF-8 en_US.ISO-8859-1 ja_JP.EUC-JP
+include ../gen-locales.mk
+
+$(objpfx)bug14.out: $(gen-locales)
+$(objpfx)scanf13.out: $(gen-locales)
+$(objpfx)test-vfprintf.out: $(gen-locales)
+$(objpfx)tst-grouping.out: $(gen-locales)
+$(objpfx)tst-sprintf.out: $(gen-locales)
+$(objpfx)tst-sscanf.out: $(gen-locales)
+$(objpfx)tst-swprintf.out: $(gen-locales)
+endif
+
+tst-printf-bz18872-ENV = MALLOC_TRACE=$(objpfx)tst-printf-bz18872.mtrace
+tst-vfprintf-width-prec-ENV = \
+  MALLOC_TRACE=$(objpfx)tst-vfprintf-width-prec.mtrace
+
+$(objpfx)tst-unbputc.out: tst-unbputc.sh $(objpfx)tst-unbputc
+	$(SHELL) $< $(common-objpfx) '$(test-program-prefix)'; \
+	$(evaluate-test)
+
+$(objpfx)tst-printf.out: tst-printf.sh $(objpfx)tst-printf
+	$(SHELL) $< $(common-objpfx) '$(test-program-prefix)'; \
+	$(evaluate-test)
+
+# We generate this source because it requires a printf invocation with
+# 10K arguments.
+$(objpfx)tst-printf-bz18872.c: tst-printf-bz18872.sh
+	rm -f $@ && $(BASH) $^ > $@.new && mv $@.new $@
+
+$(objpfx)tst-%-mem.out: $(objpfx)tst-%.out
+	$(common-objpfx)malloc/mtrace $(objpfx)tst-$*.mtrace > $@; \
+	$(evaluate-test)
+
+CFLAGS-vfprintf.c = -Wno-uninitialized
+CFLAGS-vfwprintf.c = -Wno-uninitialized
+
+CFLAGS-tmpfile.c = -fexceptions
+CFLAGS-tmpfile64.c = -fexceptions
+CFLAGS-tempname.c = -fexceptions
+CFLAGS-psignal.c = -fexceptions
+CFLAGS-vprintf.c = -fexceptions
+CFLAGS-cuserid.c = -fexceptions
+
+CFLAGS-vfprintf.c += -fexceptions
+CFLAGS-fprintf.c += -fexceptions
+CFLAGS-printf.c += -fexceptions
+CFLAGS-vfwprintf.c += -fexceptions
+CFLAGS-vfscanf.c += -fexceptions
+CFLAGS-vfwscanf.c += -fexceptions
+CFLAGS-fscanf.c += -fexceptions
+CFLAGS-scanf.c += -fexceptions
+CFLAGS-isoc99_vfscanf.c += -fexceptions
+CFLAGS-isoc99_vscanf.c += -fexceptions
+CFLAGS-isoc99_fscanf.c += -fexceptions
+CFLAGS-isoc99_scanf.c += -fexceptions
+CFLAGS-errlist.c = $(fno-unit-at-a-time)
+CFLAGS-siglist.c = $(fno-unit-at-a-time)
+
+# The following is a hack since we must compile scanf1{5,7}.c without any
+# GNU extension.  The latter are needed, though, when internal headers
+# are used.  So made sure we see the installed headers first.
+CFLAGS-scanf15.c = -I../libio -I../stdlib -I../wcsmbs -I../time -I../string \
+		   -I../wctype
+CFLAGS-scanf17.c = -I../libio -I../stdlib -I../wcsmbs -I../time -I../string \
+		   -I../wctype
+
+# tst-gets.c tests a deprecated function.
+CFLAGS-tst-gets.c += -Wno-deprecated-declarations
+
+CPPFLAGS += $(libio-mtsafe)
+
+$(objpfx)tst-setvbuf1.out: /dev/null $(objpfx)tst-setvbuf1
+	$(test-program-cmd) > $@ 2>&1; \
+	$(evaluate-test)
+
+$(objpfx)tst-setvbuf1-cmp.out: tst-setvbuf1.expect $(objpfx)tst-setvbuf1.out
+	cmp $^ > $@; \
+	$(evaluate-test)
+
+$(objpfx)tst-printf-round: $(libm)
diff --git a/REORG.TODO/stdio-common/Versions b/REORG.TODO/stdio-common/Versions
new file mode 100644
index 0000000000..5016f69c20
--- /dev/null
+++ b/REORG.TODO/stdio-common/Versions
@@ -0,0 +1,66 @@
+libc {
+  GLIBC_2.0 {
+    # global variables
+    _sys_errlist; _sys_nerr; _sys_siglist;
+
+    # functions used in other libraries
+    __printf_fp; __vfscanf;
+
+    # variables in normal name space
+    sys_errlist; sys_nerr; sys_sigabbrev; sys_siglist;
+
+    # a*
+    asprintf;
+
+    # c*
+    ctermid; cuserid;
+
+    # d*
+    dprintf;
+
+    # f*
+    flockfile; fprintf; fscanf; ftrylockfile; funlockfile;
+
+    # g*
+    getline; getw;
+
+    # p*
+    parse_printf_format; perror; printf; putw;
+
+    # r*
+    register_printf_function; remove; rename;
+
+    # s*
+    scanf; snprintf; sprintf; sscanf;
+
+    # t*
+    tempnam; tmpfile; tmpnam; tmpnam_r;
+
+    # v*
+    vfprintf; vfscanf; vprintf;
+  }
+  GLIBC_2.1 {
+    # p*
+    printf_size; printf_size_info;
+
+    # t*
+    tmpfile; tmpfile64;
+  }
+  GLIBC_2.4 {
+    renameat;
+  }
+  GLIBC_2.7 {
+    __isoc99_scanf; __isoc99_vscanf; __isoc99_fscanf; __isoc99_vfscanf;
+    __isoc99_sscanf; __isoc99_vsscanf;
+  }
+  GLIBC_2.10 {
+    psiginfo;
+    register_printf_modifier; register_printf_type; register_printf_specifier;
+  }
+  GLIBC_PRIVATE {
+    # global variables
+    _itoa_lower_digits;
+    # Used in libcrypt.
+    __snprintf;
+  }
+}
diff --git a/REORG.TODO/stdio-common/_i18n_number.h b/REORG.TODO/stdio-common/_i18n_number.h
new file mode 100644
index 0000000000..080e8141b9
--- /dev/null
+++ b/REORG.TODO/stdio-common/_i18n_number.h
@@ -0,0 +1,117 @@
+/* Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@gnu.org>, 2000.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <stdbool.h>
+#include <wchar.h>
+#include <wctype.h>
+
+#include "../locale/outdigits.h"
+#include "../locale/outdigitswc.h"
+
+static CHAR_T *
+_i18n_number_rewrite (CHAR_T *w, CHAR_T *rear_ptr, CHAR_T *end)
+{
+#ifdef COMPILE_WPRINTF
+# define decimal NULL
+# define thousands NULL
+#else
+  char decimal[MB_LEN_MAX + 1];
+  char thousands[MB_LEN_MAX + 1];
+#endif
+
+  /* "to_outpunct" is a map from ASCII decimal point and thousands-sep
+     to their equivalent in locale. This is defined for locales which
+     use extra decimal point and thousands-sep.  */
+  wctrans_t map = __wctrans ("to_outpunct");
+  wint_t wdecimal = __towctrans (L'.', map);
+  wint_t wthousands = __towctrans (L',', map);
+
+#ifndef COMPILE_WPRINTF
+  if (__glibc_unlikely (map != NULL))
+    {
+      mbstate_t state;
+      memset (&state, '\0', sizeof (state));
+
+      size_t n = __wcrtomb (decimal, wdecimal, &state);
+      if (n == (size_t) -1)
+	memcpy (decimal, ".", 2);
+      else
+	decimal[n] = '\0';
+
+      memset (&state, '\0', sizeof (state));
+
+      n = __wcrtomb (thousands, wthousands, &state);
+      if (n == (size_t) -1)
+	memcpy (thousands, ",", 2);
+      else
+	thousands[n] = '\0';
+    }
+#endif
+
+  /* Copy existing string so that nothing gets overwritten.  */
+  CHAR_T *src;
+  bool use_alloca = __libc_use_alloca ((rear_ptr - w) * sizeof (CHAR_T));
+  if (__builtin_expect (use_alloca, true))
+    src = (CHAR_T *) alloca ((rear_ptr - w) * sizeof (CHAR_T));
+  else
+    {
+      src = (CHAR_T *) malloc ((rear_ptr - w) * sizeof (CHAR_T));
+      if (src == NULL)
+	/* If we cannot allocate the memory don't rewrite the string.
+	   It is better than nothing.  */
+	return w;
+    }
+
+  CHAR_T *s = (CHAR_T *) __mempcpy (src, w,
+				    (rear_ptr - w) * sizeof (CHAR_T));
+
+  w = end;
+
+  /* Process all characters in the string.  */
+  while (--s >= src)
+    {
+      if (*s >= '0' && *s <= '9')
+	{
+	  if (sizeof (CHAR_T) == 1)
+	    w = (CHAR_T *) outdigit_value ((char *) w, *s - '0');
+	  else
+	    *--w = (CHAR_T) outdigitwc_value (*s - '0');
+	}
+      else if (__builtin_expect (map == NULL, 1) || (*s != '.' && *s != ','))
+	*--w = *s;
+      else
+	{
+	  if (sizeof (CHAR_T) == 1)
+	    {
+	      const char *outpunct = *s == '.' ? decimal : thousands;
+	      size_t dlen = strlen (outpunct);
+
+	      w -= dlen;
+	      while (dlen-- > 0)
+		w[dlen] = outpunct[dlen];
+	    }
+	  else
+	    *--w = *s == '.' ? (CHAR_T) wdecimal : (CHAR_T) wthousands;
+	}
+    }
+
+  if (! use_alloca)
+    free (src);
+
+  return w;
+}
diff --git a/REORG.TODO/stdio-common/_itoa.c b/REORG.TODO/stdio-common/_itoa.c
new file mode 100644
index 0000000000..7b369ab49b
--- /dev/null
+++ b/REORG.TODO/stdio-common/_itoa.c
@@ -0,0 +1,479 @@
+/* Internal function for converting integers to ASCII.
+   Copyright (C) 1994-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Torbjorn Granlund <tege@matematik.su.se>
+   and Ulrich Drepper <drepper@gnu.org>.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <gmp-mparam.h>
+#include <gmp.h>
+#include <limits.h>
+#include <stdlib/gmp-impl.h>
+#include <stdlib/longlong.h>
+
+#include <_itoa.h>
+
+
+/* Canonize environment.  For some architectures not all values might
+   be defined in the GMP header files.  */
+#ifndef UMUL_TIME
+# define UMUL_TIME 1
+#endif
+#ifndef UDIV_TIME
+# define UDIV_TIME 3
+#endif
+
+/* Control memory layout.  */
+#ifdef PACK
+# undef PACK
+# define PACK __attribute__ ((packed))
+#else
+# define PACK
+#endif
+
+
+/* Declare local types.  */
+struct base_table_t
+{
+#if (UDIV_TIME > 2 * UMUL_TIME)
+  mp_limb_t base_multiplier;
+#endif
+  char flag;
+  char post_shift;
+#if BITS_PER_MP_LIMB == 32
+  struct
+    {
+      char normalization_steps;
+      char ndigits;
+      mp_limb_t base PACK;
+#if UDIV_TIME > 2 * UMUL_TIME
+      mp_limb_t base_ninv PACK;
+#endif
+    } big;
+#endif
+};
+
+/* To reduce the memory needed we include some fields of the tables
+   only conditionally.  */
+#if UDIV_TIME > 2 * UMUL_TIME
+# define SEL1(X) X,
+# define SEL2(X) ,X
+#else
+# define SEL1(X)
+# define SEL2(X)
+#endif
+
+
+/* We do not compile _itoa if we always can use _itoa_word.  */
+#if _ITOA_NEEDED
+/* Local variables.  */
+const struct base_table_t _itoa_base_table[] attribute_hidden =
+{
+# if BITS_PER_MP_LIMB == 64
+  /*  2 */ {SEL1(0ull) 1, 1},
+  /*  3 */ {SEL1(0xaaaaaaaaaaaaaaabull) 0, 1},
+  /*  4 */ {SEL1(0ull) 1, 2},
+  /*  5 */ {SEL1(0xcccccccccccccccdull) 0, 2},
+  /*  6 */ {SEL1(0xaaaaaaaaaaaaaaabull) 0, 2},
+  /*  7 */ {SEL1(0x2492492492492493ull) 1, 3},
+  /*  8 */ {SEL1(0ull) 1, 3},
+  /*  9 */ {SEL1(0xe38e38e38e38e38full) 0, 3},
+  /* 10 */ {SEL1(0xcccccccccccccccdull) 0, 3},
+  /* 11 */ {SEL1(0x2e8ba2e8ba2e8ba3ull) 0, 1},
+  /* 12 */ {SEL1(0xaaaaaaaaaaaaaaabull) 0, 3},
+  /* 13 */ {SEL1(0x4ec4ec4ec4ec4ec5ull) 0, 2},
+  /* 14 */ {SEL1(0x2492492492492493ull) 1, 4},
+  /* 15 */ {SEL1(0x8888888888888889ull) 0, 3},
+  /* 16 */ {SEL1(0ull) 1, 4},
+  /* 17 */ {SEL1(0xf0f0f0f0f0f0f0f1ull) 0, 4},
+  /* 18 */ {SEL1(0xe38e38e38e38e38full) 0, 4},
+  /* 19 */ {SEL1(0xd79435e50d79435full) 0, 4},
+  /* 20 */ {SEL1(0xcccccccccccccccdull) 0, 4},
+  /* 21 */ {SEL1(0x8618618618618619ull) 1, 5},
+  /* 22 */ {SEL1(0x2e8ba2e8ba2e8ba3ull) 0, 2},
+  /* 23 */ {SEL1(0x642c8590b21642c9ull) 1, 5},
+  /* 24 */ {SEL1(0xaaaaaaaaaaaaaaabull) 0, 4},
+  /* 25 */ {SEL1(0x47ae147ae147ae15ull) 1, 5},
+  /* 26 */ {SEL1(0x4ec4ec4ec4ec4ec5ull) 0, 3},
+  /* 27 */ {SEL1(0x97b425ed097b425full) 0, 4},
+  /* 28 */ {SEL1(0x2492492492492493ull) 1, 5},
+  /* 29 */ {SEL1(0x1a7b9611a7b9611bull) 1, 5},
+  /* 30 */ {SEL1(0x8888888888888889ull) 0, 4},
+  /* 31 */ {SEL1(0x0842108421084211ull) 1, 5},
+  /* 32 */ {SEL1(0ull) 1, 5},
+  /* 33 */ {SEL1(0x0f83e0f83e0f83e1ull) 0, 1},
+  /* 34 */ {SEL1(0xf0f0f0f0f0f0f0f1ull) 0, 5},
+  /* 35 */ {SEL1(0xea0ea0ea0ea0ea0full) 0, 5},
+  /* 36 */ {SEL1(0xe38e38e38e38e38full) 0, 5}
+# endif
+# if BITS_PER_MP_LIMB == 32
+  /*  2 */ {SEL1(0ul) 1, 1, {0, 31, 0x80000000ul SEL2(0xfffffffful)}},
+  /*  3 */ {SEL1(0xaaaaaaabul) 0, 1, {0, 20, 0xcfd41b91ul SEL2(0x3b563c24ul)}},
+  /*  4 */ {SEL1(0ul) 1, 2, {1, 15, 0x40000000ul SEL2(0xfffffffful)}},
+  /*  5 */ {SEL1(0xcccccccdul) 0, 2, {1, 13, 0x48c27395ul SEL2(0xc25c2684ul)}},
+  /*  6 */ {SEL1(0xaaaaaaabul) 0, 2, {0, 12, 0x81bf1000ul SEL2(0xf91bd1b6ul)}},
+  /*  7 */ {SEL1(0x24924925ul) 1, 3, {1, 11, 0x75db9c97ul SEL2(0x1607a2cbul)}},
+  /*  8 */ {SEL1(0ul) 1, 3, {1, 10, 0x40000000ul SEL2(0xfffffffful)}},
+  /*  9 */ {SEL1(0x38e38e39ul) 0, 1, {0, 10, 0xcfd41b91ul SEL2(0x3b563c24ul)}},
+  /* 10 */ {SEL1(0xcccccccdul) 0, 3, {2, 9, 0x3b9aca00ul SEL2(0x12e0be82ul)}},
+  /* 11 */ {SEL1(0xba2e8ba3ul) 0, 3, {0, 9, 0x8c8b6d2bul SEL2(0xd24cde04ul)}},
+  /* 12 */ {SEL1(0xaaaaaaabul) 0, 3, {3, 8, 0x19a10000ul SEL2(0x3fa39ab5ul)}},
+  /* 13 */ {SEL1(0x4ec4ec4ful) 0, 2, {2, 8, 0x309f1021ul SEL2(0x50f8ac5ful)}},
+  /* 14 */ {SEL1(0x24924925ul) 1, 4, {1, 8, 0x57f6c100ul SEL2(0x74843b1eul)}},
+  /* 15 */ {SEL1(0x88888889ul) 0, 3, {0, 8, 0x98c29b81ul SEL2(0xad0326c2ul)}},
+  /* 16 */ {SEL1(0ul) 1, 4, {3, 7, 0x10000000ul SEL2(0xfffffffful)}},
+  /* 17 */ {SEL1(0xf0f0f0f1ul) 0, 4, {3, 7, 0x18754571ul SEL2(0x4ef0b6bdul)}},
+  /* 18 */ {SEL1(0x38e38e39ul) 0, 2, {2, 7, 0x247dbc80ul SEL2(0xc0fc48a1ul)}},
+  /* 19 */ {SEL1(0xaf286bcbul) 1, 5, {2, 7, 0x3547667bul SEL2(0x33838942ul)}},
+  /* 20 */ {SEL1(0xcccccccdul) 0, 4, {1, 7, 0x4c4b4000ul SEL2(0xad7f29abul)}},
+  /* 21 */ {SEL1(0x86186187ul) 1, 5, {1, 7, 0x6b5a6e1dul SEL2(0x313c3d15ul)}},
+  /* 22 */ {SEL1(0xba2e8ba3ul) 0, 4, {0, 7, 0x94ace180ul SEL2(0xb8cca9e0ul)}},
+  /* 23 */ {SEL1(0xb21642c9ul) 0, 4, {0, 7, 0xcaf18367ul SEL2(0x42ed6de9ul)}},
+  /* 24 */ {SEL1(0xaaaaaaabul) 0, 4, {4, 6, 0x0b640000ul SEL2(0x67980e0bul)}},
+  /* 25 */ {SEL1(0x51eb851ful) 0, 3, {4, 6, 0x0e8d4a51ul SEL2(0x19799812ul)}},
+  /* 26 */ {SEL1(0x4ec4ec4ful) 0, 3, {3, 6, 0x1269ae40ul SEL2(0xbce85396ul)}},
+  /* 27 */ {SEL1(0x2f684bdbul) 1, 5, {3, 6, 0x17179149ul SEL2(0x62c103a9ul)}},
+  /* 28 */ {SEL1(0x24924925ul) 1, 5, {3, 6, 0x1cb91000ul SEL2(0x1d353d43ul)}},
+  /* 29 */ {SEL1(0x8d3dcb09ul) 0, 4, {2, 6, 0x23744899ul SEL2(0xce1deceaul)}},
+  /* 30 */ {SEL1(0x88888889ul) 0, 4, {2, 6, 0x2b73a840ul SEL2(0x790fc511ul)}},
+  /* 31 */ {SEL1(0x08421085ul) 1, 5, {2, 6, 0x34e63b41ul SEL2(0x35b865a0ul)}},
+  /* 32 */ {SEL1(0ul) 1, 5, {1, 6, 0x40000000ul SEL2(0xfffffffful)}},
+  /* 33 */ {SEL1(0x3e0f83e1ul) 0, 3, {1, 6, 0x4cfa3cc1ul SEL2(0xa9aed1b3ul)}},
+  /* 34 */ {SEL1(0xf0f0f0f1ul) 0, 5, {1, 6, 0x5c13d840ul SEL2(0x63dfc229ul)}},
+  /* 35 */ {SEL1(0xd41d41d5ul) 1, 6, {1, 6, 0x6d91b519ul SEL2(0x2b0fee30ul)}},
+  /* 36 */ {SEL1(0x38e38e39ul) 0, 3, {0, 6, 0x81bf1000ul SEL2(0xf91bd1b6ul)}}
+# endif
+};
+#endif
+
+char *
+_itoa_word (_ITOA_WORD_TYPE value, char *buflim,
+	    unsigned int base, int upper_case)
+{
+  const char *digits = (upper_case
+			? _itoa_upper_digits
+			: _itoa_lower_digits);
+
+  switch (base)
+    {
+#define SPECIAL(Base)							      \
+    case Base:								      \
+      do								      \
+	*--buflim = digits[value % Base];				      \
+      while ((value /= Base) != 0);					      \
+      break
+
+      SPECIAL (10);
+      SPECIAL (16);
+      SPECIAL (8);
+    default:
+      do
+	*--buflim = digits[value % base];
+      while ((value /= base) != 0);
+    }
+  return buflim;
+}
+#undef SPECIAL
+
+
+#if _ITOA_NEEDED
+char *
+_itoa (unsigned long long int value, char *buflim, unsigned int base,
+       int upper_case)
+{
+  const char *digits = (upper_case
+			? _itoa_upper_digits
+			: _itoa_lower_digits);
+  const struct base_table_t *brec = &_itoa_base_table[base - 2];
+
+  switch (base)
+    {
+# define RUN_2N(BITS) \
+      do								      \
+	{								      \
+	  /* `unsigned long long int' always has 64 bits.  */		      \
+	  mp_limb_t work_hi = value >> (64 - BITS_PER_MP_LIMB);		      \
+									      \
+	  if (BITS_PER_MP_LIMB == 32)					      \
+	    {								      \
+	      if (work_hi != 0)						      \
+		{							      \
+		  mp_limb_t work_lo;					      \
+		  int cnt;						      \
+									      \
+		  work_lo = value & 0xfffffffful;			      \
+		  for (cnt = BITS_PER_MP_LIMB / BITS; cnt > 0; --cnt)	      \
+		    {							      \
+		      *--buflim = digits[work_lo & ((1ul << BITS) - 1)];      \
+		      work_lo >>= BITS;					      \
+		    }							      \
+		  if (BITS_PER_MP_LIMB % BITS != 0)			      \
+		    {							      \
+		      work_lo						      \
+			|= ((work_hi					      \
+			     & ((1 << (BITS - BITS_PER_MP_LIMB%BITS))	      \
+				- 1))					      \
+			    << BITS_PER_MP_LIMB % BITS);		      \
+		      work_hi >>= BITS - BITS_PER_MP_LIMB % BITS;	      \
+		      if (work_hi == 0)					      \
+			work_hi = work_lo;				      \
+		      else						      \
+			*--buflim = digits[work_lo];			      \
+		    }							      \
+		}							      \
+	      else							      \
+		work_hi = value & 0xfffffffful;				      \
+	    }								      \
+	  do								      \
+	    {								      \
+	      *--buflim = digits[work_hi & ((1 << BITS) - 1)];		      \
+	      work_hi >>= BITS;						      \
+	    }								      \
+	  while (work_hi != 0);						      \
+	}								      \
+      while (0)
+    case 8:
+      RUN_2N (3);
+      break;
+
+    case 16:
+      RUN_2N (4);
+      break;
+
+    default:
+      {
+	char *bufend = buflim;
+# if BITS_PER_MP_LIMB == 64
+	mp_limb_t base_multiplier = brec->base_multiplier;
+	if (brec->flag)
+	  while (value != 0)
+	    {
+	      mp_limb_t quo, rem, x;
+	      mp_limb_t dummy __attribute__ ((unused));
+
+	      umul_ppmm (x, dummy, value, base_multiplier);
+	      quo = (x + ((value - x) >> 1)) >> (brec->post_shift - 1);
+	      rem = value - quo * base;
+	      *--buflim = digits[rem];
+	      value = quo;
+	    }
+	else
+	  while (value != 0)
+	    {
+	      mp_limb_t quo, rem, x;
+	      mp_limb_t dummy __attribute__ ((unused));
+
+	      umul_ppmm (x, dummy, value, base_multiplier);
+	      quo = x >> brec->post_shift;
+	      rem = value - quo * base;
+	      *--buflim = digits[rem];
+	      value = quo;
+	    }
+# endif
+# if BITS_PER_MP_LIMB == 32
+	mp_limb_t t[3];
+	int n;
+
+	/* First convert x0 to 1-3 words in base s->big.base.
+	   Optimize for frequent cases of 32 bit numbers.  */
+	if ((mp_limb_t) (value >> 32) >= 1)
+	  {
+#  if UDIV_TIME > 2 * UMUL_TIME || UDIV_NEEDS_NORMALIZATION
+	    int big_normalization_steps = brec->big.normalization_steps;
+	    mp_limb_t big_base_norm
+	      = brec->big.base << big_normalization_steps;
+#  endif
+	    if ((mp_limb_t) (value >> 32) >= brec->big.base)
+	      {
+		mp_limb_t x1hi, x1lo, r;
+		/* If you want to optimize this, take advantage of
+		   that the quotient in the first udiv_qrnnd will
+		   always be very small.  It might be faster just to
+		   subtract in a tight loop.  */
+
+#  if UDIV_TIME > 2 * UMUL_TIME
+		mp_limb_t x, xh, xl;
+
+		if (big_normalization_steps == 0)
+		  xh = 0;
+		else
+		  xh = (mp_limb_t) (value >> (64 - big_normalization_steps));
+		xl = (mp_limb_t) (value >> (32 - big_normalization_steps));
+		udiv_qrnnd_preinv (x1hi, r, xh, xl, big_base_norm,
+				   brec->big.base_ninv);
+
+		xl = ((mp_limb_t) value) << big_normalization_steps;
+		udiv_qrnnd_preinv (x1lo, x, r, xl, big_base_norm,
+				   brec->big.base_ninv);
+		t[2] = x >> big_normalization_steps;
+
+		if (big_normalization_steps == 0)
+		  xh = x1hi;
+		else
+		  xh = ((x1hi << big_normalization_steps)
+			| (x1lo >> (32 - big_normalization_steps)));
+		xl = x1lo << big_normalization_steps;
+		udiv_qrnnd_preinv (t[0], x, xh, xl, big_base_norm,
+				   brec->big.base_ninv);
+		t[1] = x >> big_normalization_steps;
+#  elif UDIV_NEEDS_NORMALIZATION
+		mp_limb_t x, xh, xl;
+
+		if (big_normalization_steps == 0)
+		  xh = 0;
+		else
+		  xh = (mp_limb_t) (value >> 64 - big_normalization_steps);
+		xl = (mp_limb_t) (value >> 32 - big_normalization_steps);
+		udiv_qrnnd (x1hi, r, xh, xl, big_base_norm);
+
+		xl = ((mp_limb_t) value) << big_normalization_steps;
+		udiv_qrnnd (x1lo, x, r, xl, big_base_norm);
+		t[2] = x >> big_normalization_steps;
+
+		if (big_normalization_steps == 0)
+		  xh = x1hi;
+		else
+		  xh = ((x1hi << big_normalization_steps)
+			| (x1lo >> 32 - big_normalization_steps));
+		xl = x1lo << big_normalization_steps;
+		udiv_qrnnd (t[0], x, xh, xl, big_base_norm);
+		t[1] = x >> big_normalization_steps;
+#  else
+		udiv_qrnnd (x1hi, r, 0, (mp_limb_t) (value >> 32),
+			    brec->big.base);
+		udiv_qrnnd (x1lo, t[2], r, (mp_limb_t) value, brec->big.base);
+		udiv_qrnnd (t[0], t[1], x1hi, x1lo, brec->big.base);
+#  endif
+		n = 3;
+	      }
+	    else
+	      {
+#  if UDIV_TIME > 2 * UMUL_TIME
+		mp_limb_t x;
+
+		value <<= brec->big.normalization_steps;
+		udiv_qrnnd_preinv (t[0], x, (mp_limb_t) (value >> 32),
+				   (mp_limb_t) value, big_base_norm,
+				   brec->big.base_ninv);
+		t[1] = x >> brec->big.normalization_steps;
+#  elif UDIV_NEEDS_NORMALIZATION
+		mp_limb_t x;
+
+		value <<= big_normalization_steps;
+		udiv_qrnnd (t[0], x, (mp_limb_t) (value >> 32),
+			    (mp_limb_t) value, big_base_norm);
+		t[1] = x >> big_normalization_steps;
+#  else
+		udiv_qrnnd (t[0], t[1], (mp_limb_t) (value >> 32),
+			    (mp_limb_t) value, brec->big.base);
+#  endif
+		n = 2;
+	      }
+	  }
+	else
+	  {
+	    t[0] = value;
+	    n = 1;
+	  }
+
+	/* Convert the 1-3 words in t[], word by word, to ASCII.  */
+	do
+	  {
+	    mp_limb_t ti = t[--n];
+	    int ndig_for_this_limb = 0;
+
+#  if UDIV_TIME > 2 * UMUL_TIME
+	    mp_limb_t base_multiplier = brec->base_multiplier;
+	    if (brec->flag)
+	      while (ti != 0)
+		{
+		  mp_limb_t quo, rem, x;
+		  mp_limb_t dummy __attribute__ ((unused));
+
+		  umul_ppmm (x, dummy, ti, base_multiplier);
+		  quo = (x + ((ti - x) >> 1)) >> (brec->post_shift - 1);
+		  rem = ti - quo * base;
+		  *--buflim = digits[rem];
+		  ti = quo;
+		  ++ndig_for_this_limb;
+		}
+	    else
+	      while (ti != 0)
+		{
+		  mp_limb_t quo, rem, x;
+		  mp_limb_t dummy __attribute__ ((unused));
+
+		  umul_ppmm (x, dummy, ti, base_multiplier);
+		  quo = x >> brec->post_shift;
+		  rem = ti - quo * base;
+		  *--buflim = digits[rem];
+		  ti = quo;
+		  ++ndig_for_this_limb;
+		}
+#  else
+	    while (ti != 0)
+	      {
+		mp_limb_t quo, rem;
+
+		quo = ti / base;
+		rem = ti % base;
+		*--buflim = digits[rem];
+		ti = quo;
+		++ndig_for_this_limb;
+	      }
+#  endif
+	    /* If this wasn't the most significant word, pad with zeros.  */
+	    if (n != 0)
+	      while (ndig_for_this_limb < brec->big.ndigits)
+		{
+		  *--buflim = '0';
+		  ++ndig_for_this_limb;
+		}
+	  }
+	while (n != 0);
+# endif
+	if (buflim == bufend)
+	  *--buflim = '0';
+      }
+      break;
+    }
+
+  return buflim;
+}
+#endif
+
+char *
+_fitoa_word (_ITOA_WORD_TYPE value, char *buf, unsigned int base,
+	     int upper_case)
+{
+  char tmpbuf[sizeof (value) * 4];	      /* Worst case length: base 2.  */
+  char *cp = _itoa_word (value, tmpbuf + sizeof (value) * 4, base, upper_case);
+  while (cp < tmpbuf + sizeof (value) * 4)
+    *buf++ = *cp++;
+  return buf;
+}
+
+#if _ITOA_NEEDED
+char *
+_fitoa (unsigned long long value, char *buf, unsigned int base, int upper_case)
+{
+  char tmpbuf[sizeof (value) * 4];	      /* Worst case length: base 2.  */
+  char *cp = _itoa (value, tmpbuf + sizeof (value) * 4, base, upper_case);
+  while (cp < tmpbuf + sizeof (value) * 4)
+    *buf++ = *cp++;
+  return buf;
+}
+#endif
diff --git a/REORG.TODO/stdio-common/_itowa.c b/REORG.TODO/stdio-common/_itowa.c
new file mode 100644
index 0000000000..16d27d0e4a
--- /dev/null
+++ b/REORG.TODO/stdio-common/_itowa.c
@@ -0,0 +1,349 @@
+/* Internal function for converting integers to ASCII.
+   Copyright (C) 1994-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Torbjorn Granlund <tege@matematik.su.se>
+   and Ulrich Drepper <drepper@gnu.org>.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <gmp-mparam.h>
+#include <gmp.h>
+#include <limits.h>
+#include <stdlib/gmp-impl.h>
+#include <stdlib/longlong.h>
+
+#include <_itowa.h>
+
+
+/* Canonize environment.  For some architectures not all values might
+   be defined in the GMP header files.  */
+#ifndef UMUL_TIME
+# define UMUL_TIME 1
+#endif
+#ifndef UDIV_TIME
+# define UDIV_TIME 3
+#endif
+
+/* Control memory layout.  */
+#ifdef PACK
+# undef PACK
+# define PACK __attribute__ ((packed))
+#else
+# define PACK
+#endif
+
+
+/* Declare local types.  */
+struct base_table_t
+{
+#if (UDIV_TIME > 2 * UMUL_TIME)
+  mp_limb_t base_multiplier;
+#endif
+  char flag;
+  char post_shift;
+#if BITS_PER_MP_LIMB == 32
+  struct
+    {
+      char normalization_steps;
+      char ndigits;
+      mp_limb_t base PACK;
+#if UDIV_TIME > 2 * UMUL_TIME
+      mp_limb_t base_ninv PACK;
+#endif
+    } big;
+#endif
+};
+
+/* To reduce the memory needed we include some fields of the tables
+   only conditionally.  */
+#if UDIV_TIME > 2 * UMUL_TIME
+# define SEL1(X) X,
+# define SEL2(X) ,X
+#else
+# define SEL1(X)
+# define SEL2(X)
+#endif
+
+/* Factor table for the different bases.  */
+extern const struct base_table_t _itoa_base_table[] attribute_hidden;
+
+/* Lower-case digits.  */
+extern const wchar_t _itowa_lower_digits[] attribute_hidden;
+/* Upper-case digits.  */
+extern const wchar_t _itowa_upper_digits[] attribute_hidden;
+
+
+#if _ITOA_NEEDED
+wchar_t *
+_itowa (unsigned long long int value, wchar_t *buflim, unsigned int base,
+	int upper_case)
+{
+  const wchar_t *digits = (upper_case
+			   ? _itowa_upper_digits : _itowa_lower_digits);
+  wchar_t *bp = buflim;
+  const struct base_table_t *brec = &_itoa_base_table[base - 2];
+
+  switch (base)
+    {
+# define RUN_2N(BITS) \
+      do								      \
+	{								      \
+	  /* `unsigned long long int' always has 64 bits.  */		      \
+	  mp_limb_t work_hi = value >> (64 - BITS_PER_MP_LIMB);		      \
+									      \
+	  if (BITS_PER_MP_LIMB == 32)					      \
+	    {								      \
+	      if (work_hi != 0)						      \
+		{							      \
+		  mp_limb_t work_lo;					      \
+		  int cnt;						      \
+									      \
+		  work_lo = value & 0xfffffffful;			      \
+		  for (cnt = BITS_PER_MP_LIMB / BITS; cnt > 0; --cnt)	      \
+		    {							      \
+		      *--bp = digits[work_lo & ((1ul << BITS) - 1)];	      \
+		      work_lo >>= BITS;					      \
+		    }							      \
+		  if (BITS_PER_MP_LIMB % BITS != 0)			      \
+		    {							      \
+		      work_lo						      \
+			|= ((work_hi					      \
+			     & ((1 << (BITS - BITS_PER_MP_LIMB%BITS))	      \
+				- 1))					      \
+			    << BITS_PER_MP_LIMB % BITS);		      \
+		      work_hi >>= BITS - BITS_PER_MP_LIMB % BITS;	      \
+		      if (work_hi == 0)					      \
+			work_hi = work_lo;				      \
+		      else						      \
+			*--bp = digits[work_lo];			      \
+		    }							      \
+		}							      \
+	      else							      \
+		work_hi = value & 0xfffffffful;				      \
+	    }								      \
+	  do								      \
+	    {								      \
+	      *--bp = digits[work_hi & ((1 << BITS) - 1)];		      \
+	      work_hi >>= BITS;						      \
+	    }								      \
+	  while (work_hi != 0);						      \
+	}								      \
+      while (0)
+    case 8:
+      RUN_2N (3);
+      break;
+
+    case 16:
+      RUN_2N (4);
+      break;
+
+    default:
+      {
+# if BITS_PER_MP_LIMB == 64
+	mp_limb_t base_multiplier = brec->base_multiplier;
+	if (brec->flag)
+	  while (value != 0)
+	    {
+	      mp_limb_t quo, rem, x;
+	      mp_limb_t dummy __attribute__ ((unused));
+
+	      umul_ppmm (x, dummy, value, base_multiplier);
+	      quo = (x + ((value - x) >> 1)) >> (brec->post_shift - 1);
+	      rem = value - quo * base;
+	      *--bp = digits[rem];
+	      value = quo;
+	    }
+	else
+	  while (value != 0)
+	    {
+	      mp_limb_t quo, rem, x;
+	      mp_limb_t dummy __attribute__ ((unused));
+
+	      umul_ppmm (x, dummy, value, base_multiplier);
+	      quo = x >> brec->post_shift;
+	      rem = value - quo * base;
+	      *--bp = digits[rem];
+	      value = quo;
+	    }
+# endif
+# if BITS_PER_MP_LIMB == 32
+	mp_limb_t t[3];
+	int n;
+
+	/* First convert x0 to 1-3 words in base s->big.base.
+	   Optimize for frequent cases of 32 bit numbers.  */
+	if ((mp_limb_t) (value >> 32) >= 1)
+	  {
+# if UDIV_TIME > 2 * UMUL_TIME || UDIV_NEEDS_NORMALIZATION
+	    int big_normalization_steps = brec->big.normalization_steps;
+	    mp_limb_t big_base_norm
+	      = brec->big.base << big_normalization_steps;
+# endif
+	    if ((mp_limb_t) (value >> 32) >= brec->big.base)
+	      {
+		mp_limb_t x1hi, x1lo, r;
+		/* If you want to optimize this, take advantage of
+		   that the quotient in the first udiv_qrnnd will
+		   always be very small.  It might be faster just to
+		   subtract in a tight loop.  */
+
+# if UDIV_TIME > 2 * UMUL_TIME
+		mp_limb_t x, xh, xl;
+
+		if (big_normalization_steps == 0)
+		  xh = 0;
+		else
+		  xh = (mp_limb_t) (value >> (64 - big_normalization_steps));
+		xl = (mp_limb_t) (value >> (32 - big_normalization_steps));
+		udiv_qrnnd_preinv (x1hi, r, xh, xl, big_base_norm,
+				   brec->big.base_ninv);
+
+		xl = ((mp_limb_t) value) << big_normalization_steps;
+		udiv_qrnnd_preinv (x1lo, x, r, xl, big_base_norm,
+				   brec->big.base_ninv);
+		t[2] = x >> big_normalization_steps;
+
+		if (big_normalization_steps == 0)
+		  xh = x1hi;
+		else
+		  xh = ((x1hi << big_normalization_steps)
+			| (x1lo >> (32 - big_normalization_steps)));
+		xl = x1lo << big_normalization_steps;
+		udiv_qrnnd_preinv (t[0], x, xh, xl, big_base_norm,
+				   brec->big.base_ninv);
+		t[1] = x >> big_normalization_steps;
+# elif UDIV_NEEDS_NORMALIZATION
+		mp_limb_t x, xh, xl;
+
+		if (big_normalization_steps == 0)
+		  xh = 0;
+		else
+		  xh = (mp_limb_t) (value >> 64 - big_normalization_steps);
+		xl = (mp_limb_t) (value >> 32 - big_normalization_steps);
+		udiv_qrnnd (x1hi, r, xh, xl, big_base_norm);
+
+		xl = ((mp_limb_t) value) << big_normalization_steps;
+		udiv_qrnnd (x1lo, x, r, xl, big_base_norm);
+		t[2] = x >> big_normalization_steps;
+
+		if (big_normalization_steps == 0)
+		  xh = x1hi;
+		else
+		  xh = ((x1hi << big_normalization_steps)
+			| (x1lo >> 32 - big_normalization_steps));
+		xl = x1lo << big_normalization_steps;
+		udiv_qrnnd (t[0], x, xh, xl, big_base_norm);
+		t[1] = x >> big_normalization_steps;
+# else
+		udiv_qrnnd (x1hi, r, 0, (mp_limb_t) (value >> 32),
+			    brec->big.base);
+		udiv_qrnnd (x1lo, t[2], r, (mp_limb_t) value, brec->big.base);
+		udiv_qrnnd (t[0], t[1], x1hi, x1lo, brec->big.base);
+# endif
+		n = 3;
+	      }
+	    else
+	      {
+# if UDIV_TIME > 2 * UMUL_TIME
+		mp_limb_t x;
+
+		value <<= brec->big.normalization_steps;
+		udiv_qrnnd_preinv (t[0], x, (mp_limb_t) (value >> 32),
+				   (mp_limb_t) value, big_base_norm,
+				   brec->big.base_ninv);
+		t[1] = x >> brec->big.normalization_steps;
+# elif UDIV_NEEDS_NORMALIZATION
+		mp_limb_t x;
+
+		value <<= big_normalization_steps;
+		udiv_qrnnd (t[0], x, (mp_limb_t) (value >> 32),
+			    (mp_limb_t) value, big_base_norm);
+		t[1] = x >> big_normalization_steps;
+# else
+		udiv_qrnnd (t[0], t[1], (mp_limb_t) (value >> 32),
+			    (mp_limb_t) value, brec->big.base);
+# endif
+		n = 2;
+	      }
+	  }
+	else
+	  {
+	    t[0] = value;
+	    n = 1;
+	  }
+
+	/* Convert the 1-3 words in t[], word by word, to ASCII.  */
+	do
+	  {
+	    mp_limb_t ti = t[--n];
+	    int ndig_for_this_limb = 0;
+
+# if UDIV_TIME > 2 * UMUL_TIME
+	    mp_limb_t base_multiplier = brec->base_multiplier;
+	    if (brec->flag)
+	      while (ti != 0)
+		{
+		  mp_limb_t quo, rem, x;
+		  mp_limb_t dummy __attribute__ ((unused));
+
+		  umul_ppmm (x, dummy, ti, base_multiplier);
+		  quo = (x + ((ti - x) >> 1)) >> (brec->post_shift - 1);
+		  rem = ti - quo * base;
+		  *--bp = digits[rem];
+		  ti = quo;
+		  ++ndig_for_this_limb;
+		}
+	    else
+	      while (ti != 0)
+		{
+		  mp_limb_t quo, rem, x;
+		  mp_limb_t dummy __attribute__ ((unused));
+
+		  umul_ppmm (x, dummy, ti, base_multiplier);
+		  quo = x >> brec->post_shift;
+		  rem = ti - quo * base;
+		  *--bp = digits[rem];
+		  ti = quo;
+		  ++ndig_for_this_limb;
+		}
+# else
+	    while (ti != 0)
+	      {
+		mp_limb_t quo, rem;
+
+		quo = ti / base;
+		rem = ti % base;
+		*--bp = digits[rem];
+		ti = quo;
+		++ndig_for_this_limb;
+	      }
+# endif
+	    /* If this wasn't the most significant word, pad with zeros.  */
+	    if (n != 0)
+	      while (ndig_for_this_limb < brec->big.ndigits)
+		{
+		  *--bp = '0';
+		  ++ndig_for_this_limb;
+		}
+	  }
+	while (n != 0);
+# endif
+      }
+      break;
+    }
+
+  return bp;
+}
+#endif
diff --git a/REORG.TODO/stdio-common/_itowa.h b/REORG.TODO/stdio-common/_itowa.h
new file mode 100644
index 0000000000..985d5474a5
--- /dev/null
+++ b/REORG.TODO/stdio-common/_itowa.h
@@ -0,0 +1,71 @@
+/* Internal function for converting integers to ASCII.
+   Copyright (C) 1994-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#ifndef _ITOWA_H
+#define _ITOWA_H	1
+#include <features.h>
+#include <wchar.h>
+#include <_itoa.h>
+
+/* Convert VALUE into ASCII in base BASE (2..36).
+   Write backwards starting the character just before BUFLIM.
+   Return the address of the first (left-to-right) character in the number.
+   Use upper case letters iff UPPER_CASE is nonzero.  */
+
+extern wchar_t *_itowa (unsigned long long int value, wchar_t *buflim,
+			unsigned int base, int upper_case);
+
+static inline wchar_t *
+__attribute__ ((unused, always_inline))
+_itowa_word (_ITOA_WORD_TYPE value, wchar_t *buflim,
+	     unsigned int base, int upper_case)
+{
+  extern const wchar_t _itowa_upper_digits[] attribute_hidden;
+  extern const wchar_t _itowa_lower_digits[] attribute_hidden;
+  const wchar_t *digits = (upper_case
+			   ? _itowa_upper_digits : _itowa_lower_digits);
+  wchar_t *bp = buflim;
+
+  switch (base)
+    {
+#define SPECIAL(Base)							      \
+    case Base:								      \
+      do								      \
+	*--bp = digits[value % Base];					      \
+      while ((value /= Base) != 0);					      \
+      break
+
+      SPECIAL (10);
+      SPECIAL (16);
+      SPECIAL (8);
+    default:
+      do
+	*--bp = digits[value % base];
+      while ((value /= base) != 0);
+    }
+  return bp;
+}
+#undef SPECIAL
+
+#if !_ITOA_NEEDED
+/* No need for special long long versions.  */
+# define _itowa(value, buf, base, upper_case) \
+  _itowa_word (value, buf, base, upper_case)
+#endif
+
+#endif	/* itowa.h */
diff --git a/REORG.TODO/stdio-common/asprintf.c b/REORG.TODO/stdio-common/asprintf.c
new file mode 100644
index 0000000000..a61cf64740
--- /dev/null
+++ b/REORG.TODO/stdio-common/asprintf.c
@@ -0,0 +1,43 @@
+/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <stdarg.h>
+#include <stdio.h>
+
+#include <libioP.h>
+#define vasprintf(s, f, a) _IO_vasprintf (s, f, a)
+#undef __asprintf
+
+/* Write formatted output from FORMAT to a string which is
+   allocated with malloc and stored in *STRING_PTR.  */
+/* VARARGS2 */
+int
+___asprintf (char **string_ptr, const char *format, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, format);
+  done = vasprintf (string_ptr, format, arg);
+  va_end (arg);
+
+  return done;
+}
+ldbl_hidden_def (___asprintf, __asprintf)
+
+ldbl_strong_alias (___asprintf, __asprintf)
+ldbl_weak_alias (___asprintf, asprintf)
diff --git a/REORG.TODO/stdio-common/bits/printf-ldbl.h b/REORG.TODO/stdio-common/bits/printf-ldbl.h
new file mode 100644
index 0000000000..54008f5467
--- /dev/null
+++ b/REORG.TODO/stdio-common/bits/printf-ldbl.h
@@ -0,0 +1,23 @@
+/* -mlong-double-64 compatibility mode for <printf.h> functions.
+   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#ifndef _PRINTF_H
+# error "Never include <bits/printf-ldbl.h> directly; use <printf.h> instead."
+#endif
+
+__LDBL_REDIR_DECL (printf_size)
diff --git a/REORG.TODO/stdio-common/bug-vfprintf-nargs.c b/REORG.TODO/stdio-common/bug-vfprintf-nargs.c
new file mode 100644
index 0000000000..e1b111248c
--- /dev/null
+++ b/REORG.TODO/stdio-common/bug-vfprintf-nargs.c
@@ -0,0 +1,78 @@
+/* Test for vfprintf nargs allocation overflow (BZ #13656).
+   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Kees Cook <keescook@chromium.org>, 2012.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdint.h>
+#include <unistd.h>
+#include <inttypes.h>
+#include <string.h>
+#include <signal.h>
+
+static int
+format_failed (const char *fmt, const char *expected)
+{
+  char output[80];
+
+  printf ("%s : ", fmt);
+
+  memset (output, 0, sizeof output);
+  /* Having sprintf itself detect a failure is good.  */
+  if (sprintf (output, fmt, 1, 2, 3, "test") > 0
+      && strcmp (output, expected) != 0)
+    {
+      printf ("FAIL (output '%s' != expected '%s')\n", output, expected);
+      return 1;
+    }
+  puts ("ok");
+  return 0;
+}
+
+static int
+do_test (void)
+{
+  int rc = 0;
+  char buf[64];
+
+  /* Regular positionals work.  */
+  if (format_failed ("%1$d", "1") != 0)
+    rc = 1;
+
+  /* Regular width positionals work.  */
+  if (format_failed ("%1$*2$d", " 1") != 0)
+    rc = 1;
+
+  /* Positional arguments are constructed via read_int, so nargs can only
+     overflow on 32-bit systems.  On 64-bit systems, it will attempt to
+     allocate a giant amount of memory and possibly crash, which is the
+     expected situation.  Since the 64-bit behavior is arch-specific, only
+     test this on 32-bit systems.  */
+  if (sizeof (long int) == 4)
+    {
+      sprintf (buf, "%%1$d %%%" PRIdPTR "$d",
+	       (intptr_t) (UINT32_MAX / sizeof (int)));
+      if (format_failed (buf, "1 %$d") != 0)
+        rc = 1;
+    }
+
+  return rc;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/stdio-common/bug1.c b/REORG.TODO/stdio-common/bug1.c
new file mode 100644
index 0000000000..18e7d4c257
--- /dev/null
+++ b/REORG.TODO/stdio-common/bug1.c
@@ -0,0 +1,30 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+int
+main (void)
+{
+  char *bp;
+  size_t size;
+  FILE *stream;
+  int lose = 0;
+
+  stream = open_memstream (&bp, &size);
+  fprintf (stream, "hello");
+  fflush (stream);
+  printf ("buf = %s, size = %Zu\n", bp, size);
+  lose |= size != 5;
+  lose |= strncmp (bp, "hello", size);
+  fprintf (stream, ", world");
+  fclose (stream);
+  printf ("buf = %s, size = %Zu\n", bp, size);
+  lose |= size != 12;
+  lose |= strncmp (bp, "hello, world", 12);
+
+  puts (lose ? "Test FAILED!" : "Test succeeded.");
+
+  free (bp);
+
+  return lose;
+}
diff --git a/REORG.TODO/stdio-common/bug1.input b/REORG.TODO/stdio-common/bug1.input
new file mode 100644
index 0000000000..5595fa46c0
--- /dev/null
+++ b/REORG.TODO/stdio-common/bug1.input
@@ -0,0 +1 @@
+95
diff --git a/REORG.TODO/stdio-common/bug10.c b/REORG.TODO/stdio-common/bug10.c
new file mode 100644
index 0000000000..c4f328d4cb
--- /dev/null
+++ b/REORG.TODO/stdio-common/bug10.c
@@ -0,0 +1,25 @@
+#include <stdio.h>
+
+int
+main (int arc, char *argv[])
+{
+  int n, res;
+  unsigned int val;
+  char s[] = "111";
+  int result = 0;
+
+  n = 0;
+  res = sscanf(s, "%u %n", &val, &n);
+
+  printf("Result of sscanf = %d\n", res);
+  printf("Scanned format %%u = %u\n", val);
+  printf("Possibly scanned format %%n = %d\n", n);
+  result |= res != 1 || val != 111 || n != 3;
+
+
+  result |= sscanf ("", " %n", &n) == EOF;
+
+  puts (result ? "Test failed" : "All tests passed");
+
+  return result;
+}
diff --git a/REORG.TODO/stdio-common/bug11.c b/REORG.TODO/stdio-common/bug11.c
new file mode 100644
index 0000000000..c5af604e44
--- /dev/null
+++ b/REORG.TODO/stdio-common/bug11.c
@@ -0,0 +1,14 @@
+#include <stdio.h>
+#include <string.h>
+
+int
+main (int argc, char *argv[])
+{
+  int ret;
+  char buf [1024] = "Ooops";
+
+  ret = sscanf ("static char Term_bits[] = {", "static char %s = {", buf);
+  printf ("ret: %d, name: %s\n", ret, buf);
+
+  return strcmp (buf, "Term_bits[]") != 0 || ret != 1;
+}
diff --git a/REORG.TODO/stdio-common/bug12.c b/REORG.TODO/stdio-common/bug12.c
new file mode 100644
index 0000000000..48610c0e78
--- /dev/null
+++ b/REORG.TODO/stdio-common/bug12.c
@@ -0,0 +1,46 @@
+#include <stdio.h>
+#include <string.h>
+
+char x[4096], z[4096], b[21], m[4096 * 4];
+
+int
+main (void)
+{
+  FILE *f = tmpfile ();
+  int i, failed = 0;
+
+  memset (x, 'x', 4096);
+  memset (z, 'z', 4096);
+  b[20] = 0;
+
+  for (i = 0; i <= 5; i++)
+    {
+      fwrite (x, 4096, 1, f);
+      fwrite (z, 4096, 1, f);
+    }
+  rewind (f);
+
+  fread (m, 4096 * 4 - 10, 1, f);
+  fread (b, 20, 1, f);
+  printf ("got %s (should be %s)\n", b, "zzzzzzzzzzxxxxxxxxxx");
+  if (strcmp (b, "zzzzzzzzzzxxxxxxxxxx"))
+    failed = 1;
+
+  fseek (f, -40, SEEK_CUR);
+  fread (b, 20, 1, f);
+  printf ("got %s (should be %s)\n", b, "zzzzzzzzzzzzzzzzzzzz");
+  if (strcmp (b, "zzzzzzzzzzzzzzzzzzzz"))
+    failed = 1;
+
+  fread (b, 20, 1, f);
+  printf ("got %s (should be %s)\n", b, "zzzzzzzzzzxxxxxxxxxx");
+  if (strcmp (b, "zzzzzzzzzzxxxxxxxxxx"))
+    failed = 1;
+
+  fread (b, 20, 1, f);
+  printf ("got %s (should be %s)\n", b, "xxxxxxxxxxxxxxxxxxxx");
+  if (strcmp (b, "xxxxxxxxxxxxxxxxxxxx"))
+    failed = 1;
+
+  return failed;
+}
diff --git a/REORG.TODO/stdio-common/bug13.c b/REORG.TODO/stdio-common/bug13.c
new file mode 100644
index 0000000000..1eca8185ca
--- /dev/null
+++ b/REORG.TODO/stdio-common/bug13.c
@@ -0,0 +1,30 @@
+#include <stdio.h>
+
+
+
+int
+main (void)
+{
+  int res = 0;
+  char buf[100];
+
+#define TEST(nr, result, format, args...) \
+  if (sprintf (buf, format, ## args) != result)				      \
+    {									      \
+      printf ("test %d failed (\"%s\",  %d)\n", nr, buf, result);	      \
+      res = 1;								      \
+    }
+
+  TEST (1, 2, "%d", -1);
+  TEST (2, 2, "% 2d", 1);
+  TEST (3, 3, "%#x", 1);
+  TEST (4, 2, "%+d", 1);
+  TEST (5, 2, "% d", 1);
+  TEST (6, 2, "%-d", -1);
+  TEST (7, 2, "%- 2d", 1);
+  TEST (8, 3, "%-#x", 1);
+  TEST (9, 2, "%-+d", 1);
+  TEST (10, 2, "%- d", 1);
+
+  return res;
+}
diff --git a/REORG.TODO/stdio-common/bug14.c b/REORG.TODO/stdio-common/bug14.c
new file mode 100644
index 0000000000..317d4969d3
--- /dev/null
+++ b/REORG.TODO/stdio-common/bug14.c
@@ -0,0 +1,29 @@
+/* Test case by Al Viro <aviro@redhat.com>.  */
+#include <locale.h>
+#include <wchar.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+/* MB_CUR_MAX multibyte ones (6 UTF+0080, in this case) */
+static const char string[] = "\
+\xc2\x80\xc2\x80\xc2\x80\xc2\x80\xc2\x80\xc2\x80";
+
+int
+main (void)
+{
+  if (setlocale (LC_ALL, "de_DE.UTF-8") == NULL)
+    {
+      puts ("cannot set locale");
+      exit (1);
+    }
+
+  wchar_t s[7];
+  int n = sscanf (string, "%l[\x80\xc2]", s);
+  if (n != 1)
+    {
+      printf ("return values %d != 1\n", n);
+      exit (1);
+    }
+
+  return 0;
+}
diff --git a/REORG.TODO/stdio-common/bug16.c b/REORG.TODO/stdio-common/bug16.c
new file mode 100644
index 0000000000..1112c39d05
--- /dev/null
+++ b/REORG.TODO/stdio-common/bug16.c
@@ -0,0 +1,43 @@
+#include <stdio.h>
+#include <string.h>
+
+struct
+{
+  long double val;
+  const char str[4][7];
+} tests[] =
+{
+  { 0x0.FFFFp+0L, { "0X1P+0", "0X2P-1", "0X4P-2", "0X8P-3" } },
+  { 0x0.FFFFp+1L, { "0X1P+1", "0X2P+0", "0X4P-1", "0X8P-2" } },
+  { 0x0.FFFFp+2L, { "0X1P+2", "0X2P+1", "0X4P+0", "0X8P-1" } },
+  { 0x0.FFFFp+3L, { "0X1P+3", "0X2P+2", "0X4P+1", "0X8P+0" } }
+};
+
+static int
+do_test (void)
+{
+  char buf[100];
+  int ret = 0;
+
+  for (size_t i = 0; i < sizeof (tests) / sizeof (tests[0]); ++i)
+    {
+      snprintf (buf, sizeof (buf), "%.0LA", tests[i].val);
+
+      size_t j;
+      for (j = 0; j < 4; ++j)
+	if (strcmp (buf, tests[i].str[j]) == 0)
+	  break;
+
+      if (j == 4)
+	{
+	  printf ("%zd: got \"%s\", expected \"%s\" or equivalent\n",
+		  i, buf, tests[i].str[0]);
+	  ret = 1;
+	}
+    }
+
+  return ret;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/stdio-common/bug17.c b/REORG.TODO/stdio-common/bug17.c
new file mode 100644
index 0000000000..2ef398674b
--- /dev/null
+++ b/REORG.TODO/stdio-common/bug17.c
@@ -0,0 +1,31 @@
+#include <stdio.h>
+#include <string.h>
+
+static int
+do_test (void)
+{
+  static const char expect[] = "0, 0, 0";
+  char buf[100];
+  int status = 0;
+
+  static const char fmt1[] = "%0d, %0ld, %0lld";
+  snprintf (buf, sizeof (buf), fmt1, 0, 0L, 0LL);
+  if (strcmp (buf, expect) != 0)
+    {
+      printf ("\"%s\": got \"%s\", expected \"%s\"\n", fmt1, buf, expect);
+      status = 1;
+    }
+
+  static const char fmt2[] = "%0u, %0lu, %0llu";
+  snprintf (buf, sizeof (buf), fmt2, 0u, 0uL, 0uLL);
+  if (strcmp (buf, expect) != 0)
+    {
+      printf ("\"%s\": got \"%s\", expected \"%s\"\n", fmt2, buf, expect);
+      status = 1;
+    }
+
+  return status;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/stdio-common/bug18.c b/REORG.TODO/stdio-common/bug18.c
new file mode 100644
index 0000000000..2e4c378c13
--- /dev/null
+++ b/REORG.TODO/stdio-common/bug18.c
@@ -0,0 +1,48 @@
+#include <assert.h>
+#include <errno.h>
+#include <stdio.h>
+
+#ifndef CHAR
+# define CHAR char
+# define L(str) str
+# define SSCANF sscanf
+#endif
+
+
+static int
+do_test (void)
+{
+  printf("setting errno to EINTR\n");
+  errno = EINTR;
+
+  printf("checking sscanf\n");
+
+  CHAR str[] = L("7-11");
+  int i, j, n;
+
+  i = j = n = 0;
+  SSCANF (str, L(" %i - %i %n"), &i, &j, &n);
+  printf ("found %i-%i (length=%i)\n", i, j, n);
+
+  int result = 0;
+  if (i != 7)
+    {
+      printf ("i is %d, expected 7\n", i);
+      result = 1;
+    }
+  if (j != 11)
+    {
+      printf ("j is %d, expected 11\n", j);
+      result = 1;
+    }
+  if (n != 4)
+    {
+      printf ("n is %d, expected 4\n", j);
+      result = 1;
+    }
+
+  return result;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/stdio-common/bug18a.c b/REORG.TODO/stdio-common/bug18a.c
new file mode 100644
index 0000000000..663cbf4fb7
--- /dev/null
+++ b/REORG.TODO/stdio-common/bug18a.c
@@ -0,0 +1,6 @@
+#include <wchar.h>
+#define CHAR wchar_t
+#define L(str) L##str
+#define SSCANF swscanf
+
+#include "bug18.c"
diff --git a/REORG.TODO/stdio-common/bug19.c b/REORG.TODO/stdio-common/bug19.c
new file mode 100644
index 0000000000..e083304bda
--- /dev/null
+++ b/REORG.TODO/stdio-common/bug19.c
@@ -0,0 +1,58 @@
+#include <assert.h>
+#include <errno.h>
+#include <stdio.h>
+
+#ifndef CHAR
+# define CHAR char
+# define L(str) str
+# define FPUTS fputs
+# define FSCANF fscanf
+#endif
+
+
+static int
+do_test (void)
+{
+  FILE *fp = tmpfile ();
+  if (fp == NULL)
+    {
+      puts ("cannot open file");
+      return 1;
+    }
+
+  FPUTS (L("7-11"), fp);
+  rewind (fp);
+
+  printf("setting errno to EINTR\n");
+  errno = EINTR;
+
+  printf("checking sscanf\n");
+
+  int i, j, n;
+
+  i = j = n = 0;
+  FSCANF (fp, L(" %i - %i %n"), &i, &j, &n);
+  printf ("found %i-%i (length=%i)\n", i, j, n);
+
+  int result = 0;
+  if (i != 7)
+    {
+      printf ("i is %d, expected 7\n", i);
+      result = 1;
+    }
+  if (j != 11)
+    {
+      printf ("j is %d, expected 11\n", j);
+      result = 1;
+    }
+  if (n != 4)
+    {
+      printf ("n is %d, expected 4\n", j);
+      result = 1;
+    }
+
+  return result;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/stdio-common/bug19a.c b/REORG.TODO/stdio-common/bug19a.c
new file mode 100644
index 0000000000..c723398503
--- /dev/null
+++ b/REORG.TODO/stdio-common/bug19a.c
@@ -0,0 +1,7 @@
+#include <wchar.h>
+#define CHAR wchar_t
+#define L(str) L##str
+#define FPUTS fputws
+#define FSCANF fwscanf
+
+#include "bug19.c"
diff --git a/REORG.TODO/stdio-common/bug2.c b/REORG.TODO/stdio-common/bug2.c
new file mode 100644
index 0000000000..79b89a4d28
--- /dev/null
+++ b/REORG.TODO/stdio-common/bug2.c
@@ -0,0 +1,11 @@
+#include <stdio.h>
+
+int
+main (void)
+{
+  int i;
+  puts ("This should print \"wow = I\" for I from 0 to 39 inclusive.");
+  for (i = 0; i < 40; i++)
+    printf ("%s = %d\n", "wow", i);
+  return 0;
+}
diff --git a/REORG.TODO/stdio-common/bug20.c b/REORG.TODO/stdio-common/bug20.c
new file mode 100644
index 0000000000..385f6ffbe1
--- /dev/null
+++ b/REORG.TODO/stdio-common/bug20.c
@@ -0,0 +1,32 @@
+/* BZ #5225 */
+#include <stdio.h>
+#include <string.h>
+#include <wchar.h>
+
+static int
+do_test (void)
+{
+  wchar_t in[] = L"123,abc,321";
+  /* This is the critical part for this test.  format must be in
+     read-only memory.  */
+  static const wchar_t format[50] = L"%d,%[^,],%d";
+  int out_d1, out_d2;
+  char out_s[50];
+  printf ("in='%ls' format='%ls'\n", in, format);
+  if (swscanf (in, format, &out_d1, out_s, &out_d2) != 3)
+    {
+      puts ("swscanf did not return 3");
+      return 1;
+    }
+  printf ("in='%ls' format='%ls'\n", in, format);
+  printf ("out_d1=%d out_s='%s' out_d2=%d\n", out_d1, out_s, out_d2);
+  if (out_d1 != 123 || strcmp (out_s, "abc") != 0 || out_d2 != 321)
+    {
+      puts ("swscanf did not return the correct values");
+      return 1;
+    }
+  return 0;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/stdio-common/bug21.c b/REORG.TODO/stdio-common/bug21.c
new file mode 100644
index 0000000000..7a8c6a3542
--- /dev/null
+++ b/REORG.TODO/stdio-common/bug21.c
@@ -0,0 +1,25 @@
+#include <stdio.h>
+#include <libc-diag.h>
+
+static int
+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;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/stdio-common/bug22.c b/REORG.TODO/stdio-common/bug22.c
new file mode 100644
index 0000000000..b26399acb7
--- /dev/null
+++ b/REORG.TODO/stdio-common/bug22.c
@@ -0,0 +1,56 @@
+/* BZ #5424 */
+#include <stdio.h>
+#include <errno.h>
+
+/* INT_MAX + 1 */
+#define N 2147483648
+
+/* (INT_MAX / 2) + 2 */
+#define N2 1073741825
+
+/* INT_MAX - 3 */
+#define N3 2147483644
+
+#define STRINGIFY(S) #S
+#define MAKE_STR(S) STRINGIFY(S)
+
+#define SN MAKE_STR(N)
+#define SN2 MAKE_STR(N2)
+#define SN3 MAKE_STR(N3)
+
+static int
+do_test (void)
+{
+  int ret;
+
+  FILE *fp = fopen ("/dev/null", "w");
+  if (fp == NULL)
+    {
+      puts ("cannot open /dev/null");
+      return 1;
+    }
+
+  ret = fprintf (fp, "%" SN "d", 1);
+  printf ("ret = %d\n", ret);
+  if (ret != -1 || errno != EOVERFLOW)
+	  return 1;
+
+  ret = fprintf (fp, "%." SN "d", 1);
+  printf ("ret = %d\n", ret);
+  if (ret != -1 || errno != EOVERFLOW)
+	  return 1;
+
+  ret = fprintf (fp, "%." SN3 "d", 1);
+  printf ("ret = %d\n", ret);
+  if (ret != -1 || errno != EOVERFLOW)
+	  return 1;
+
+  ret = fprintf (fp, "%" SN2 "d%" SN2 "d", 1, 1);
+  printf ("ret = %d\n", ret);
+
+  return ret != -1 || errno != EOVERFLOW;
+}
+
+#define TIMEOUT 60
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/stdio-common/bug23-2.c b/REORG.TODO/stdio-common/bug23-2.c
new file mode 100644
index 0000000000..9e0cfe6860
--- /dev/null
+++ b/REORG.TODO/stdio-common/bug23-2.c
@@ -0,0 +1,70 @@
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+static const char expected[] = "\
+\n\
+a\n\
+abbcd55\
+\n\
+a\n\
+abbcd55\
+\n\
+a\n\
+abbcd55\
+\n\
+a\n\
+abbcd55\
+\n\
+a\n\
+abbcd55\
+\n\
+a\n\
+abbcd55\
+\n\
+a\n\
+abbcd55\
+\n\
+a\n\
+abbcd55\
+\n\
+a\n\
+abbcd55\
+\n\
+a\n\
+abbcd55\
+\n\
+a\n\
+abbcd55\
+\n\
+a\n\
+abbcd55\
+\n\
+a\n\
+abbcd55%%%%%%%%%%%%%%%%%%%%%%%%%%\n";
+
+static int
+do_test (void)
+{
+  char *buf = malloc (strlen (expected) + 1);
+  snprintf (buf, strlen (expected) + 1,
+	    "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
+	    "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
+	    "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
+	    "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
+	    "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
+	    "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
+	    "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
+	    "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
+	    "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
+	    "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
+	    "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
+	    "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
+	    "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
+	    "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n",
+	    "a", "b", "c", "d", 5);
+  return strcmp (buf, expected) != 0;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/stdio-common/bug23-3.c b/REORG.TODO/stdio-common/bug23-3.c
new file mode 100644
index 0000000000..57c8cef195
--- /dev/null
+++ b/REORG.TODO/stdio-common/bug23-3.c
@@ -0,0 +1,50 @@
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+int
+do_test (void)
+{
+  size_t instances = 16384;
+#define X0 "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
+  const char *item = "\na\nabbcd55";
+#define X3 X0 X0 X0 X0 X0 X0 X0 X0
+#define X6 X3 X3 X3 X3 X3 X3 X3 X3
+#define X9 X6 X6 X6 X6 X6 X6 X6 X6
+#define X12 X9 X9 X9 X9 X9 X9 X9 X9
+#define X14 X12 X12 X12 X12
+#define TRAILER "%%%%%%%%%%%%%%%%%%%%%%%%%%"
+#define TRAILER2 TRAILER TRAILER
+  size_t length = instances * strlen (item) + strlen (TRAILER) + 1;
+
+  char *buf = malloc (length + 1);
+  snprintf (buf, length + 1,
+	    X14 TRAILER2 "\n",
+	    "a", "b", "c", "d", 5);
+
+  const char *p = buf;
+  size_t i;
+  for (i = 0; i < instances; ++i)
+    {
+      const char *expected;
+      for (expected = item; *expected; ++expected)
+	{
+	  if (*p != *expected)
+	    {
+	      printf ("mismatch at offset %zu (%zu): expected %d, got %d\n",
+		      (size_t) (p - buf), i, *expected & 0xFF, *p & 0xFF);
+	      return 1;
+	    }
+	  ++p;
+	}
+    }
+  if (strcmp (p, TRAILER "\n") != 0)
+    {
+      printf ("mismatch at trailer: [%s]\n", p);
+      return 1;
+    }
+  free (buf);
+  return 0;
+}
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/stdio-common/bug23-4.c b/REORG.TODO/stdio-common/bug23-4.c
new file mode 100644
index 0000000000..a4785640de
--- /dev/null
+++ b/REORG.TODO/stdio-common/bug23-4.c
@@ -0,0 +1,31 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/resource.h>
+
+#define LIMIT 1000000
+
+int
+main (void)
+{
+  struct rlimit lim;
+  getrlimit (RLIMIT_STACK, &lim);
+  lim.rlim_cur = 1048576;
+  setrlimit (RLIMIT_STACK, &lim);
+  char *fmtstr = malloc (4 * LIMIT + 1);
+  if (fmtstr == NULL)
+    abort ();
+  char *output = malloc (LIMIT + 1);
+  if (output == NULL)
+    abort ();
+  for (size_t i = 0; i < LIMIT; i++)
+    memcpy (fmtstr + 4 * i, "%1$d", 4);
+  fmtstr[4 * LIMIT] = '\0';
+  int ret = snprintf (output, LIMIT + 1, fmtstr, 0);
+  if (ret != LIMIT)
+    abort ();
+  for (size_t i = 0; i < LIMIT; i++)
+    if (output[i] != '0')
+      abort ();
+  return 0;
+}
diff --git a/REORG.TODO/stdio-common/bug23.c b/REORG.TODO/stdio-common/bug23.c
new file mode 100644
index 0000000000..dcc5428078
--- /dev/null
+++ b/REORG.TODO/stdio-common/bug23.c
@@ -0,0 +1,21 @@
+#include <stdio.h>
+#include <string.h>
+
+static char buf[32768];
+static const char expected[] = "\
+\n\
+a\n\
+abbcd55%%%%%%%%%%%%%%%%%%%%%%%%%%\n";
+
+static int
+do_test (void)
+{
+  snprintf (buf, sizeof (buf),
+	    "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
+	    "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n",
+	    "a", "b", "c", "d", 5);
+  return strcmp (buf, expected) != 0;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/stdio-common/bug24.c b/REORG.TODO/stdio-common/bug24.c
new file mode 100644
index 0000000000..4e6ffcc90b
--- /dev/null
+++ b/REORG.TODO/stdio-common/bug24.c
@@ -0,0 +1,26 @@
+#include <stdio.h>
+#include <errno.h>
+
+static int
+do_test (void)
+{
+  FILE *fp = fopen ("/foobar_does_no_exit", "re");
+  if (fp != NULL)
+    {
+      /* A joker created this file.  Ignore the test.  */
+      fclose (fp);
+      return 0;
+    }
+
+  if (errno == ENOENT)
+    {
+      printf ("no bug\n");
+      return 0;
+    }
+
+  printf ("bug : expected ENOENT, got: %m\n");
+  return 1;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/stdio-common/bug25.c b/REORG.TODO/stdio-common/bug25.c
new file mode 100644
index 0000000000..617f21ab71
--- /dev/null
+++ b/REORG.TODO/stdio-common/bug25.c
@@ -0,0 +1,71 @@
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+static const char expected[] = "\
+\n\
+a\n\
+abbcd55\
+\n\
+a\n\
+abbcd55\
+\n\
+a\n\
+abbcd55\
+\n\
+a\n\
+abbcd55\
+\n\
+a\n\
+abbcd55\
+\n\
+a\n\
+abbcd55\
+\n\
+a\n\
+abbcd55\
+\n\
+a\n\
+abbcd55\
+\n\
+a\n\
+abbcd55\
+\n\
+a\n\
+abbcd55\
+\n\
+a\n\
+abbcd55\
+\n\
+a\n\
+abbcd55\
+\n\
+a\n\
+abbcd55%%%%%%%%%%%%%%%%%%%%%%%%%%\n";
+
+static int
+do_test (void)
+{
+  char *buf = malloc (strlen (expected) + 1);
+  snprintf (buf, strlen (expected) + 1,
+	    "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
+	    "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
+	    "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
+	    "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
+	    "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
+	    "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
+	    "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
+	    "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
+	    "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
+	    "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
+	    "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
+	    "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
+	    "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
+	    "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n",
+	    "a", "b", "c", "d", 5);
+  return strcmp (buf, expected) != 0;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/stdio-common/bug26.c b/REORG.TODO/stdio-common/bug26.c
new file mode 100644
index 0000000000..febd90fe5f
--- /dev/null
+++ b/REORG.TODO/stdio-common/bug26.c
@@ -0,0 +1,38 @@
+/* Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <stdio.h>
+#include <string.h>
+
+int
+main (void)
+{
+  FILE *f;
+  int lost = 0;
+  int c;
+  double d;
+  char s[] = "+.e";
+
+  f = fmemopen (s, strlen (s), "r");
+  /* This should fail to parse a floating-point number, and leave 'e' in the
+     input.  */
+  lost |= (fscanf (f, "%lf", &d) != 0);
+  c = fgetc (f);
+  lost |= c != 'e';
+  puts (lost ? "Test FAILED!" : "Test succeeded.");
+  return lost;
+}
diff --git a/REORG.TODO/stdio-common/bug3.c b/REORG.TODO/stdio-common/bug3.c
new file mode 100644
index 0000000000..6b2ed6b8e0
--- /dev/null
+++ b/REORG.TODO/stdio-common/bug3.c
@@ -0,0 +1,53 @@
+#include <stdio.h>
+#include <string.h>
+
+int
+main (void)
+{
+  FILE *f;
+  int i;
+  const char filename[] = "/tmp/bug3.test";
+
+  f = fopen(filename, "w+");
+  for (i=0; i<9000; i++)
+    putc ('x', f);
+  fseek (f, 8180L, 0);
+  fwrite ("Where does this text go?", 1, 24, f);
+  fflush (f);
+
+  rewind (f);
+  for (i=0; i<9000; i++)
+    {
+      int j;
+
+      if ((j = getc(f)) != 'x')
+	{
+	  if (i != 8180)
+	    {
+	      printf ("Test FAILED!");
+	      return 1;
+	    }
+	  else
+	    {
+	      char buf[25];
+
+	      buf[0] = j;
+	      fread (buf + 1, 1, 23, f);
+	      buf[24] = '\0';
+	      if (strcmp (buf, "Where does this text go?") != 0)
+		{
+		  printf ("%s\nTest FAILED!\n", buf);
+		  return 1;
+		}
+	      i += 23;
+	    }
+	}
+    }
+
+  fclose(f);
+  remove(filename);
+
+  puts ("Test succeeded.");
+
+  return 0;
+}
diff --git a/REORG.TODO/stdio-common/bug4.c b/REORG.TODO/stdio-common/bug4.c
new file mode 100644
index 0000000000..a0377862a5
--- /dev/null
+++ b/REORG.TODO/stdio-common/bug4.c
@@ -0,0 +1,48 @@
+#include <stdio.h>
+#include <unistd.h>
+#include <string.h>
+
+int stdio_block_read = 1, stdio_block_write = 1;
+
+int
+main (int argc, char *argv[])
+{
+  FILE *f;
+  int i;
+  char buffer[31];
+  const char filename[] = "/tmp/bug4.test";
+
+  while ((i = getopt (argc, argv, "rw")) != -1)
+    switch (i)
+      {
+      case 'r':
+	stdio_block_read = 0;
+	break;
+      case 'w':
+	stdio_block_write = 0;
+	break;
+      }
+
+  f = fopen (filename, "w+");
+  for (i = 0; i < 9000; ++i)
+    putc('x', f);
+
+  fseek (f, 8180L, 0);
+  fwrite ("Where does this text come from?", 1, 31, f);
+  fseek (f, 8180L, 0);
+  fread (buffer, 1, 31, f);
+  fwrite (buffer, 1, 31, stdout);
+  fclose (f);
+  remove (filename);
+
+  if (!memcmp (buffer, "Where does this text come from?", 31))
+    {
+      puts ("\nTest succeeded.");
+      return 0;
+    }
+  else
+    {
+      puts ("\nTest FAILED!");
+      return 1;
+    }
+}
diff --git a/REORG.TODO/stdio-common/bug5.c b/REORG.TODO/stdio-common/bug5.c
new file mode 100644
index 0000000000..f655845891
--- /dev/null
+++ b/REORG.TODO/stdio-common/bug5.c
@@ -0,0 +1,69 @@
+/* If stdio is working correctly, after this is run infile and outfile
+   will have the same contents.  If the bug (found in GNU C library 0.3)
+   exhibits itself, outfile will be missing the 2nd through 1023rd
+   characters.  */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+static char buf[8192];
+
+int
+main (void)
+{
+  FILE *in;
+  FILE *out;
+  static char inname[] = "/tmp/bug5.in";
+  static char outname[] = "/tmp/bug5.out";
+  char *printbuf;
+  size_t i;
+  int result;
+
+  /* Create a test file.  */
+  in = fopen (inname, "w+");
+  if (in == NULL)
+    {
+      perror (inname);
+      return 1;
+    }
+  for (i = 0; i < 1000; ++i)
+    fprintf (in, "%Zu\n", i);
+
+  out = fopen (outname, "w");
+  if (out == NULL)
+    {
+      perror (outname);
+      return 1;
+    }
+  if (fseek (in, 0L, SEEK_SET) != 0)
+    abort ();
+  putc (getc (in), out);
+  i = fread (buf, 1, sizeof (buf), in);
+  if (i == 0)
+    {
+      perror ("fread");
+      return 1;
+    }
+  if (fwrite (buf, 1, i, out) != i)
+    {
+      perror ("fwrite");
+      return 1;
+    }
+  fclose (in);
+  fclose (out);
+
+  puts ("There should be no further output from this test.");
+  fflush (stdout);
+
+  /* We must remove this entry to assure the `cmp' binary does not use
+     the perhaps incompatible new shared libraries.  */
+  unsetenv ("LD_LIBRARY_PATH");
+
+  asprintf (&printbuf, "cmp %s %s", inname, outname);
+  result = system (printbuf);
+  remove (inname);
+  remove (outname);
+
+  exit ((result != 0));
+}
diff --git a/REORG.TODO/stdio-common/bug6.c b/REORG.TODO/stdio-common/bug6.c
new file mode 100644
index 0000000000..0db63a3b44
--- /dev/null
+++ b/REORG.TODO/stdio-common/bug6.c
@@ -0,0 +1,26 @@
+#include <stdio.h>
+
+int
+main (void)
+{
+  char buf[80];
+  int i;
+  int lost = 0;
+
+  scanf ("%2s", buf);
+  lost |= (buf[0] != 'X' || buf[1] != 'Y' || buf[2] != '\0');
+  if (lost)
+    puts ("test of %2s failed.");
+  scanf (" ");
+  scanf ("%d", &i);
+  lost |= (i != 1234);
+  if (lost)
+    puts ("test of %d failed.");
+  scanf ("%c", buf);
+  lost |= (buf[0] != 'L');
+  if (lost)
+    puts ("test of %c failed.\n");
+
+  puts (lost ? "Test FAILED!" : "Test succeeded.");
+  return lost;
+}
diff --git a/REORG.TODO/stdio-common/bug6.input b/REORG.TODO/stdio-common/bug6.input
new file mode 100644
index 0000000000..d996e399c3
--- /dev/null
+++ b/REORG.TODO/stdio-common/bug6.input
@@ -0,0 +1 @@
+XY 1234L
diff --git a/REORG.TODO/stdio-common/bug7.c b/REORG.TODO/stdio-common/bug7.c
new file mode 100644
index 0000000000..2b1efe3bc6
--- /dev/null
+++ b/REORG.TODO/stdio-common/bug7.c
@@ -0,0 +1,69 @@
+/* Regression test for fseek and freopen bugs.  */
+
+#include <stdio.h>
+
+int
+main (int argc, char *argv[])
+{
+  int lose = 0;
+  char filename[L_tmpnam];
+  FILE *fp;
+
+  if (tmpnam (filename) == NULL)
+    {
+      printf ("tmpnam failed\n");
+      lose = 1;
+    }
+  else
+    {
+      fp = fopen (filename, "w+");
+      fprintf (fp, "Hello world!\n");
+      fflush (fp);
+      fseek (fp, 5L, SEEK_SET);
+      if (fseek (fp, -1L, SEEK_CUR) < 0)
+	{
+	  printf ("seek failed\n");
+	  lose = 1;
+	}
+      fclose (fp);
+      remove (filename);
+    }
+
+  {
+    FILE *file1;
+    FILE *file2;
+    char filename1[L_tmpnam];
+    char filename2[L_tmpnam];
+    int ch;
+
+    if (tmpnam (filename1) == NULL || tmpnam (filename2) == NULL)
+      {
+	printf ("tmpnam failed\n");
+	lose = 1;
+      }
+    else
+      {
+
+	file1 = fopen (filename1, "w");
+	fclose (file1);
+
+	file2 = fopen (filename2, "w");
+	fputc ('x', file2);
+	fclose (file2);
+
+	file1 = fopen (filename1, "r");
+	file2 = freopen (filename2, "r", file1);
+	if ((ch = fgetc (file2)) != 'x')
+	  {
+	    printf ("wrong character in reopened file, value = %d\n", ch);
+	    lose = 1;
+	  }
+	fclose (file2);
+	remove (filename1);
+	remove (filename2);
+      }
+  }
+
+  puts (lose ? "Test FAILED!" : "Test succeeded.");
+  return lose;
+}
diff --git a/REORG.TODO/stdio-common/bug8.c b/REORG.TODO/stdio-common/bug8.c
new file mode 100644
index 0000000000..77bbfe3435
--- /dev/null
+++ b/REORG.TODO/stdio-common/bug8.c
@@ -0,0 +1,27 @@
+#include <stdio.h>
+#include <string.h>
+
+int
+main(int argc, char *argv[])
+{
+    char buf[100];
+    int point, x, y;
+    int status = 0;
+
+    sscanf("0x10 10", "%x %x", &x, &y);
+    sprintf(buf, "%d %d", x, y);
+    puts (buf);
+    status |= strcmp (buf, "16 16");
+    sscanf("P012349876", "P%1d%4d%4d", &point, &x, &y);
+    sprintf(buf, "%d %d %d", point, x, y);
+    status |= strcmp (buf, "0 1234 9876");
+    puts (buf);
+    sscanf("P112349876", "P%1d%4d%4d", &point, &x, &y);
+    sprintf(buf, "%d %d %d", point, x, y);
+    status |= strcmp (buf, "1 1234 9876");
+    puts (buf);
+
+    puts (status ? "Test failed" : "Test passed");
+
+    return status;
+}
diff --git a/REORG.TODO/stdio-common/bug9.c b/REORG.TODO/stdio-common/bug9.c
new file mode 100644
index 0000000000..732904d731
--- /dev/null
+++ b/REORG.TODO/stdio-common/bug9.c
@@ -0,0 +1,22 @@
+#include <stdio.h>
+#include <string.h>
+
+int
+main(int argc, char *argv[])
+{
+  char buf[100];
+  int a, b;
+  int status = 0;
+
+  sscanf ("12ab", "%dab%n", &a, &b);
+  sprintf (buf, "%d, %d", a, b);
+  puts (buf);
+  status |= strcmp (buf, "12, 4");
+
+  sscanf ("12ab100", "%dab%n100", &a, &b);
+  sprintf (buf, "%d, %d", a, b);
+  puts (buf);
+  status |= strcmp (buf, "12, 4");
+
+  return status;
+}
diff --git a/REORG.TODO/stdio-common/ctermid.c b/REORG.TODO/stdio-common/ctermid.c
new file mode 100644
index 0000000000..559ed50516
--- /dev/null
+++ b/REORG.TODO/stdio-common/ctermid.c
@@ -0,0 +1,33 @@
+/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <errno.h>
+#include <stdio.h>
+
+
+/* Return the name of the controlling terminal.
+   If S is not NULL, the name is copied into it (it should be at
+   least L_ctermid bytes long), otherwise a static buffer is used.  */
+char *
+ctermid (char *s)
+{
+  __set_errno (ENOSYS);
+  return NULL;
+}
+
+
+stub_warning (ctermid)
diff --git a/REORG.TODO/stdio-common/cuserid.c b/REORG.TODO/stdio-common/cuserid.c
new file mode 100644
index 0000000000..bcff3d76a3
--- /dev/null
+++ b/REORG.TODO/stdio-common/cuserid.c
@@ -0,0 +1,32 @@
+/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <stdio.h>
+#include <errno.h>
+
+/* Return the username of the caller.
+   If S is not NULL, it points to a buffer of at least L_cuserid bytes
+   into which the name is copied; otherwise, a static buffer is used.  */
+char *
+cuserid (char *s)
+{
+  __set_errno (ENOSYS);
+  return NULL;
+}
+
+
+stub_warning (cuserid)
diff --git a/REORG.TODO/stdio-common/dprintf.c b/REORG.TODO/stdio-common/dprintf.c
new file mode 100644
index 0000000000..376cb0601c
--- /dev/null
+++ b/REORG.TODO/stdio-common/dprintf.c
@@ -0,0 +1,40 @@
+/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <stdarg.h>
+#include <stdio.h>
+
+#include <libioP.h>
+#define vdprintf(d, f, a) _IO_vdprintf (d, f, a)
+
+/* Write formatted output to D, according to the format string FORMAT.  */
+/* VARARGS2 */
+int
+__dprintf (int d, const char *format, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, format);
+  done = vdprintf (d, format, arg);
+  va_end (arg);
+
+  return done;
+}
+libc_hidden_def (__dprintf)
+ldbl_hidden_def (__dprintf, dprintf)
+ldbl_weak_alias (__dprintf, dprintf)
diff --git a/REORG.TODO/stdio-common/errlist.c b/REORG.TODO/stdio-common/errlist.c
new file mode 100644
index 0000000000..0f1b72b37d
--- /dev/null
+++ b/REORG.TODO/stdio-common/errlist.c
@@ -0,0 +1,36 @@
+/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <stddef.h>
+
+
+const char *const _sys_errlist[] =
+  {
+    "Error 0",			/* 0 */
+    "Argument out of function's domain", /* 1 = EDOM */
+    "Result out of range",	/* 2 = ERANGE */
+    "Operation not implemented", /* 3 = ENOSYS */
+    "Invalid argument",		/* 4 = EINVAL */
+    "Illegal seek",		/* 5 = ESPIPE */
+    "Bad file descriptor",	/* 6 = EBADF */
+    "Cannot allocate memory",	/* 7 = ENOMEM */
+    "Permission denied",	/* 8 = EACCES */
+    "Too many open files in system", /* 9 = ENFILE */
+    "Too many open files",	/* 10 = EMFILE */
+  };
+
+const int _sys_nerr = sizeof (_sys_errlist) / sizeof (_sys_errlist[0]);
diff --git a/REORG.TODO/stdio-common/errnobug.c b/REORG.TODO/stdio-common/errnobug.c
new file mode 100644
index 0000000000..9b09a3849e
--- /dev/null
+++ b/REORG.TODO/stdio-common/errnobug.c
@@ -0,0 +1,59 @@
+/* Regression test for reported old bug that errno is clobbered
+   by the first successful output to a stream on an unseekable object.
+   Copyright (C) 1995-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <errno.h>
+#include <stdio.h>
+#include <unistd.h>
+
+int
+main (void)
+{
+  int fd[2];
+  FILE *f;
+
+  /* Get a stream that cannot seek.  */
+
+  if (pipe (fd))
+    {
+      perror ("pipe");
+      return 1;
+    }
+  f = fdopen (fd[1], "w");
+  if (f == NULL)
+    {
+      perror ("fdopen");
+      return 1;
+    }
+
+  errno = 0;
+  if (fputs ("fnord", f) == EOF)
+    {
+      perror ("fputs");
+      return 1;
+    }
+
+  if (errno)
+    {
+      perror ("errno gratuitously set -- TEST FAILED");
+      return 1;
+    }
+
+  puts ("Test succeeded.");
+  return 0;
+}
diff --git a/REORG.TODO/stdio-common/flockfile.c b/REORG.TODO/stdio-common/flockfile.c
new file mode 100644
index 0000000000..4080ecfcc8
--- /dev/null
+++ b/REORG.TODO/stdio-common/flockfile.c
@@ -0,0 +1,29 @@
+/* Lock I/O stream.  Singlethreaded version.
+   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <stdio.h>
+
+#undef _IO_flockfile
+
+void
+__flockfile (FILE *stream)
+{
+  /* Do nothing.  Using this version does not do any locking.  */
+}
+weak_alias (__flockfile, flockfile);
+weak_alias (__flockfile, _IO_flockfile)
diff --git a/REORG.TODO/stdio-common/fprintf.c b/REORG.TODO/stdio-common/fprintf.c
new file mode 100644
index 0000000000..2bbaba8b99
--- /dev/null
+++ b/REORG.TODO/stdio-common/fprintf.c
@@ -0,0 +1,43 @@
+/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <stdarg.h>
+#include <stdio.h>
+#include <libioP.h>
+
+
+/* Write formatted output to STREAM from the format string FORMAT.  */
+/* VARARGS2 */
+int
+__fprintf (FILE *stream, const char *format, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, format);
+  done = vfprintf (stream, format, arg);
+  va_end (arg);
+
+  return done;
+}
+ldbl_hidden_def (__fprintf, fprintf)
+ldbl_strong_alias (__fprintf, fprintf)
+
+/* We define the function with the real name here.  But deep down in
+   libio the original function _IO_fprintf is also needed.  So make
+   an alias.  */
+ldbl_weak_alias (__fprintf, _IO_fprintf)
diff --git a/REORG.TODO/stdio-common/fscanf.c b/REORG.TODO/stdio-common/fscanf.c
new file mode 100644
index 0000000000..019ce899ab
--- /dev/null
+++ b/REORG.TODO/stdio-common/fscanf.c
@@ -0,0 +1,36 @@
+/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <libioP.h>
+#include <stdarg.h>
+#include <stdio.h>
+
+/* Read formatted input from STREAM according to the format string FORMAT.  */
+/* VARARGS2 */
+int
+__fscanf (FILE *stream, const char *format, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, format);
+  done = __vfscanf (stream, format, arg);
+  va_end (arg);
+
+  return done;
+}
+ldbl_strong_alias (__fscanf, fscanf)
diff --git a/REORG.TODO/stdio-common/ftrylockfile.c b/REORG.TODO/stdio-common/ftrylockfile.c
new file mode 100644
index 0000000000..366ad31c6a
--- /dev/null
+++ b/REORG.TODO/stdio-common/ftrylockfile.c
@@ -0,0 +1,30 @@
+/* Try locking I/O stream.  Singlethreaded version.
+   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <stdio.h>
+
+#undef _IO_ftrylockfile
+
+int
+__ftrylockfile (FILE *stream)
+{
+  /* Do nothing.  Using this version does not do any locking.  */
+  return 1;
+}
+weak_alias (__ftrylockfile, ftrylockfile);
+weak_alias (__ftrylockfile, _IO_ftrylockfile)
diff --git a/REORG.TODO/stdio-common/funlockfile.c b/REORG.TODO/stdio-common/funlockfile.c
new file mode 100644
index 0000000000..2204fde094
--- /dev/null
+++ b/REORG.TODO/stdio-common/funlockfile.c
@@ -0,0 +1,29 @@
+/* Unlock I/O stream.  Singlethreaded version.
+   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <stdio.h>
+
+#undef _IO_funlockfile
+
+void
+__funlockfile (FILE *stream)
+{
+  /* Do nothing.  Using this version does not do any locking.  */
+}
+weak_alias (__funlockfile, _IO_funlockfile)
+weak_alias (__funlockfile, funlockfile);
diff --git a/REORG.TODO/stdio-common/fxprintf.c b/REORG.TODO/stdio-common/fxprintf.c
new file mode 100644
index 0000000000..82d4f2e235
--- /dev/null
+++ b/REORG.TODO/stdio-common/fxprintf.c
@@ -0,0 +1,99 @@
+/* Copyright (C) 2005-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@gnu.org>.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <wchar.h>
+#include <libioP.h>
+
+static int
+locked_vfxprintf (FILE *fp, const char *fmt, va_list ap)
+{
+  if (_IO_fwide (fp, 0) <= 0)
+    return _IO_vfprintf (fp, fmt, ap);
+
+  /* We must convert the narrow format string to a wide one.
+     Each byte can produce at most one wide character.  */
+  wchar_t *wfmt;
+  mbstate_t mbstate;
+  int res;
+  int used_malloc = 0;
+  size_t len = strlen (fmt) + 1;
+
+  if (__glibc_unlikely (len > SIZE_MAX / sizeof (wchar_t)))
+    {
+      __set_errno (EOVERFLOW);
+      return -1;
+    }
+  if (__libc_use_alloca (len * sizeof (wchar_t)))
+    wfmt = alloca (len * sizeof (wchar_t));
+  else if ((wfmt = malloc (len * sizeof (wchar_t))) == NULL)
+    return -1;
+  else
+    used_malloc = 1;
+
+  memset (&mbstate, 0, sizeof mbstate);
+  res = __mbsrtowcs (wfmt, &fmt, len, &mbstate);
+
+  if (res != -1)
+    res = _IO_vfwprintf (fp, wfmt, ap);
+
+  if (used_malloc)
+    free (wfmt);
+
+  return res;
+}
+
+int
+__fxprintf (FILE *fp, const char *fmt, ...)
+{
+  if (fp == NULL)
+    fp = stderr;
+
+  va_list ap;
+  va_start (ap, fmt);
+  _IO_flockfile (fp);
+
+  int res = locked_vfxprintf (fp, fmt, ap);
+
+  _IO_funlockfile (fp);
+  va_end (ap);
+  return res;
+}
+
+int
+__fxprintf_nocancel (FILE *fp, const char *fmt, ...)
+{
+  if (fp == NULL)
+    fp = stderr;
+
+  va_list ap;
+  va_start (ap, fmt);
+  _IO_flockfile (fp);
+  int save_flags2 = ((_IO_FILE *)fp)->_flags2;
+  ((_IO_FILE *)fp)->_flags2 |= _IO_FLAGS2_NOTCANCEL;
+
+  int res = locked_vfxprintf (fp, fmt, ap);
+
+  ((_IO_FILE *)fp)->_flags2 = save_flags2;
+  _IO_funlockfile (fp);
+  va_end (ap);
+  return res;
+}
diff --git a/REORG.TODO/stdio-common/getline.c b/REORG.TODO/stdio-common/getline.c
new file mode 100644
index 0000000000..1976dd916f
--- /dev/null
+++ b/REORG.TODO/stdio-common/getline.c
@@ -0,0 +1,35 @@
+/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <stddef.h>
+#include <stdio.h>
+
+#undef __getline
+
+#include "../libio/libioP.h"
+#undef ssize_t
+#define ssize_t _IO_ssize_t
+#define __getdelim _IO_getdelim
+
+/* Like getdelim, but always looks for a newline.  */
+ssize_t
+__getline (char **lineptr, size_t *n, FILE *stream)
+{
+  return __getdelim (lineptr, n, '\n', stream);
+}
+
+weak_alias (__getline, getline)
diff --git a/REORG.TODO/stdio-common/getw.c b/REORG.TODO/stdio-common/getw.c
new file mode 100644
index 0000000000..f698707d2c
--- /dev/null
+++ b/REORG.TODO/stdio-common/getw.c
@@ -0,0 +1,33 @@
+/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <stdio.h>
+
+#include <libio/iolibio.h>
+#define fread(p, m, n, s) _IO_fread (p, m, n, s)
+
+/* Read a word (int) from STREAM.  */
+int
+getw (FILE *stream)
+{
+  int w;
+
+  /* Is there a better way?  */
+  if (fread ((void *) &w, sizeof (w), 1, stream) != 1)
+    return EOF;
+  return w;
+}
diff --git a/REORG.TODO/stdio-common/isoc99_fscanf.c b/REORG.TODO/stdio-common/isoc99_fscanf.c
new file mode 100644
index 0000000000..671162fb65
--- /dev/null
+++ b/REORG.TODO/stdio-common/isoc99_fscanf.c
@@ -0,0 +1,39 @@
+/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <libioP.h>
+#include <stdarg.h>
+#include <stdio.h>
+
+/* Read formatted input from STREAM according to the format string FORMAT.  */
+/* VARARGS2 */
+int
+__isoc99_fscanf (FILE *stream, const char *format, ...)
+{
+  va_list arg;
+  int done;
+
+  _IO_acquire_lock_clear_flags2 (stream);
+  stream->_flags2 |= _IO_FLAGS2_SCANF_STD;
+
+  va_start (arg, format);
+  done = _IO_vfscanf (stream, format, arg, NULL);
+  va_end (arg);
+
+  _IO_release_lock (stream);
+  return done;
+}
diff --git a/REORG.TODO/stdio-common/isoc99_scanf.c b/REORG.TODO/stdio-common/isoc99_scanf.c
new file mode 100644
index 0000000000..5a384c9757
--- /dev/null
+++ b/REORG.TODO/stdio-common/isoc99_scanf.c
@@ -0,0 +1,44 @@
+/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <stdarg.h>
+#include <stdio.h>
+#include <libioP.h>
+
+
+/* Read formatted input from stdin according to the format string FORMAT.  */
+/* VARARGS1 */
+int
+__isoc99_scanf (const char *format, ...)
+{
+  va_list arg;
+  int done;
+
+#ifdef _IO_MTSAFE_IO
+  _IO_acquire_lock_clear_flags2 (stdin);
+#endif
+  stdin->_flags2 |= _IO_FLAGS2_SCANF_STD;
+
+  va_start (arg, format);
+  done = _IO_vfscanf (stdin, format, arg, NULL);
+  va_end (arg);
+
+#ifdef _IO_MTSAFE_IO
+  _IO_release_lock (stdin);
+#endif
+  return done;
+}
diff --git a/REORG.TODO/stdio-common/isoc99_sscanf.c b/REORG.TODO/stdio-common/isoc99_sscanf.c
new file mode 100644
index 0000000000..9242102718
--- /dev/null
+++ b/REORG.TODO/stdio-common/isoc99_sscanf.c
@@ -0,0 +1,35 @@
+/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <stdarg.h>
+#include <stdio.h>
+#include <libioP.h>
+
+/* Read formatted input from S, according to the format string FORMAT.  */
+/* VARARGS2 */
+int
+__isoc99_sscanf (const char *s, const char *format, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, format);
+  done = __isoc99_vsscanf (s, format, arg);
+  va_end (arg);
+
+  return done;
+}
diff --git a/REORG.TODO/stdio-common/isoc99_vfscanf.c b/REORG.TODO/stdio-common/isoc99_vfscanf.c
new file mode 100644
index 0000000000..7b5c3670c4
--- /dev/null
+++ b/REORG.TODO/stdio-common/isoc99_vfscanf.c
@@ -0,0 +1,34 @@
+/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <libioP.h>
+#include <stdio.h>
+
+/* Read formatted input from STREAM according to the format string FORMAT.  */
+/* VARARGS2 */
+int
+__isoc99_vfscanf (FILE *stream, const char *format, _IO_va_list args)
+{
+  int done;
+
+  _IO_acquire_lock_clear_flags2 (stream);
+  stream->_flags2 |= _IO_FLAGS2_SCANF_STD;
+  done = _IO_vfscanf (stream, format, args, NULL);
+  _IO_release_lock (stream);
+  return done;
+}
+libc_hidden_def (__isoc99_vfscanf)
diff --git a/REORG.TODO/stdio-common/isoc99_vscanf.c b/REORG.TODO/stdio-common/isoc99_vscanf.c
new file mode 100644
index 0000000000..1c713b378c
--- /dev/null
+++ b/REORG.TODO/stdio-common/isoc99_vscanf.c
@@ -0,0 +1,33 @@
+/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <libioP.h>
+#include <stdio.h>
+
+/* Read formatted input from STDIN according to the format string FORMAT.  */
+/* VARARGS2 */
+int
+__isoc99_vscanf (const char *format, _IO_va_list args)
+{
+  int done;
+
+  _IO_acquire_lock_clear_flags2 (stdin);
+  stdin->_flags2 |= _IO_FLAGS2_SCANF_STD;
+  done = _IO_vfscanf (stdin, format, args, NULL);
+  _IO_release_lock (stdin);
+  return done;
+}
diff --git a/REORG.TODO/stdio-common/isoc99_vsscanf.c b/REORG.TODO/stdio-common/isoc99_vsscanf.c
new file mode 100644
index 0000000000..a82d9b3111
--- /dev/null
+++ b/REORG.TODO/stdio-common/isoc99_vsscanf.c
@@ -0,0 +1,46 @@
+/* Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.
+
+   As a special exception, if you link the code in this file with
+   files compiled with a GNU compiler to produce an executable,
+   that does not cause the resulting executable to be covered by
+   the GNU Lesser General Public License.  This exception does not
+   however invalidate any other reasons why the executable file
+   might be covered by the GNU Lesser General Public License.
+   This exception applies to code released by its copyright holders
+   in files containing the exception.  */
+
+#include <libioP.h>
+#include <stdio.h>
+#include "../libio/strfile.h"
+
+int
+__isoc99_vsscanf (const char *string, const char *format, _IO_va_list args)
+{
+  int ret;
+  _IO_strfile sf;
+#ifdef _IO_MTSAFE_IO
+  sf._sbf._f._lock = NULL;
+#endif
+  _IO_no_init (&sf._sbf._f, _IO_USER_LOCK, -1, NULL, NULL);
+  _IO_JUMPS (&sf._sbf) = &_IO_str_jumps;
+  _IO_str_init_static_internal (&sf, (char*)string, 0, NULL);
+  sf._sbf._f._flags2 |= _IO_FLAGS2_SCANF_STD;
+  ret = _IO_vfscanf (&sf._sbf._f, format, args, NULL);
+  return ret;
+}
+libc_hidden_def (__isoc99_vsscanf)
diff --git a/REORG.TODO/stdio-common/itoa-digits.c b/REORG.TODO/stdio-common/itoa-digits.c
new file mode 100644
index 0000000000..1298de81cc
--- /dev/null
+++ b/REORG.TODO/stdio-common/itoa-digits.c
@@ -0,0 +1,24 @@
+/* Digits.
+   Copyright (C) 1994-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <_itoa.h>
+
+/* Lower-case digits.  */
+const char _itoa_lower_digits[36]
+	= "0123456789abcdefghijklmnopqrstuvwxyz";
+libc_hidden_data_def (_itoa_lower_digits)
diff --git a/REORG.TODO/stdio-common/itoa-udigits.c b/REORG.TODO/stdio-common/itoa-udigits.c
new file mode 100644
index 0000000000..914c63b633
--- /dev/null
+++ b/REORG.TODO/stdio-common/itoa-udigits.c
@@ -0,0 +1,24 @@
+/* Digits.
+   Copyright (C) 1994-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <_itoa.h>
+
+/* Upper-case digits.  */
+const char _itoa_upper_digits[36]
+	= "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
+libc_hidden_data_def (_itoa_upper_digits)
diff --git a/REORG.TODO/stdio-common/itowa-digits.c b/REORG.TODO/stdio-common/itowa-digits.c
new file mode 100644
index 0000000000..0b46f35fdd
--- /dev/null
+++ b/REORG.TODO/stdio-common/itowa-digits.c
@@ -0,0 +1,26 @@
+/* Digits.
+   Copyright (C) 1994-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <wchar.h>
+
+/* Lower-case digits.  */
+const wchar_t _itowa_lower_digits[36] attribute_hidden
+	= L"0123456789abcdefghijklmnopqrstuvwxyz";
+/* Upper-case digits.  */
+const wchar_t _itowa_upper_digits[36] attribute_hidden
+	= L"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
diff --git a/REORG.TODO/stdio-common/perror.c b/REORG.TODO/stdio-common/perror.c
new file mode 100644
index 0000000000..d109c63607
--- /dev/null
+++ b/REORG.TODO/stdio-common/perror.c
@@ -0,0 +1,83 @@
+/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <errno.h>
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+#include <wchar.h>
+#include "libioP.h"
+
+static void
+perror_internal (FILE *fp, const char *s, int errnum)
+{
+  char buf[1024];
+  const char *colon;
+  const char *errstring;
+
+  if (s == NULL || *s == '\0')
+    s = colon = "";
+  else
+    colon = ": ";
+
+  errstring = __strerror_r (errnum, buf, sizeof buf);
+
+  (void) __fxprintf (fp, "%s%s%s\n", s, colon, errstring);
+}
+
+
+/* Print a line on stderr consisting of the text in S, a colon, a space,
+   a message describing the meaning of the contents of `errno' and a newline.
+   If S is NULL or "", the colon and space are omitted.  */
+void
+perror (const char *s)
+{
+  int errnum = errno;
+  FILE *fp;
+  int fd = -1;
+
+
+  /* The standard says that 'perror' must not change the orientation
+     of the stream.  What is supposed to happen when the stream isn't
+     oriented yet?  In this case we'll create a new stream which is
+     using the same underlying file descriptor.  */
+  if (__builtin_expect (_IO_fwide (stderr, 0) != 0, 1)
+      || (fd = __fileno (stderr)) == -1
+      || (fd = __dup (fd)) == -1
+      || (fp = fdopen (fd, "w+")) == NULL)
+    {
+      if (__glibc_unlikely (fd != -1))
+	__close (fd);
+
+      /* Use standard error as is.  */
+      perror_internal (stderr, s, errnum);
+    }
+  else
+    {
+      /* We don't have to do any special hacks regarding the file
+	 position.  Since the stderr stream wasn't used so far we just
+	 write to the descriptor.  */
+      perror_internal (fp, s, errnum);
+
+      if (_IO_ferror_unlocked (fp))
+	stderr->_flags |= _IO_ERR_SEEN;
+
+      /* Close the stream.  */
+      fclose (fp);
+    }
+}
+libc_hidden_def (perror)
diff --git a/REORG.TODO/stdio-common/printf-parse.h b/REORG.TODO/stdio-common/printf-parse.h
new file mode 100644
index 0000000000..484ba6010d
--- /dev/null
+++ b/REORG.TODO/stdio-common/printf-parse.h
@@ -0,0 +1,144 @@
+/* Internal header for parsing printf format strings.
+   Copyright (C) 1995-2017 Free Software Foundation, Inc.
+   This file is part of th GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <printf.h>
+#include <stdint.h>
+#include <stddef.h>
+#include <string.h>
+#include <wchar.h>
+
+
+struct printf_spec
+  {
+    /* Information parsed from the format spec.  */
+    struct printf_info info;
+
+    /* Pointers into the format string for the end of this format
+       spec and the next (or to the end of the string if no more).  */
+    const UCHAR_T *end_of_fmt, *next_fmt;
+
+    /* Position of arguments for precision and width, or -1 if `info' has
+       the constant value.  */
+    int prec_arg, width_arg;
+
+    int data_arg;		/* Position of data argument.  */
+    int data_arg_type;		/* Type of first argument.  */
+    /* Number of arguments consumed by this format specifier.  */
+    size_t ndata_args;
+    /* Size of the parameter for PA_USER type.  */
+    int size;
+  };
+
+
+/* The various kinds off arguments that can be passed to printf.  */
+union printf_arg
+  {
+    wchar_t pa_wchar;
+    int pa_int;
+    long int pa_long_int;
+    long long int pa_long_long_int;
+    unsigned int pa_u_int;
+    unsigned long int pa_u_long_int;
+    unsigned long long int pa_u_long_long_int;
+    double pa_double;
+    long double pa_long_double;
+    const char *pa_string;
+    const wchar_t *pa_wstring;
+    void *pa_pointer;
+    void *pa_user;
+  };
+
+
+#ifndef DONT_NEED_READ_INT
+/* Read a simple integer from a string and update the string pointer.
+   It is assumed that the first character is a digit.  */
+static int
+read_int (const UCHAR_T * *pstr)
+{
+  int retval = **pstr - L_('0');
+
+  while (ISDIGIT (*++(*pstr)))
+    if (retval >= 0)
+      {
+	if (INT_MAX / 10 < retval)
+	  retval = -1;
+	else
+	  {
+	    int digit = **pstr - L_('0');
+
+	    retval *= 10;
+	    if (INT_MAX - digit < retval)
+	      retval = -1;
+	    else
+	      retval += digit;
+	  }
+      }
+
+  return retval;
+}
+#endif
+
+
+/* These are defined in reg-printf.c.  */
+extern printf_arginfo_size_function **__printf_arginfo_table attribute_hidden;
+extern printf_function **__printf_function_table attribute_hidden;
+extern printf_va_arg_function **__printf_va_arg_table attribute_hidden;
+
+
+/* Find the next spec in FORMAT, or the end of the string.  Returns
+   a pointer into FORMAT, to a '%' or a '\0'.  */
+__extern_always_inline const unsigned char *
+__find_specmb (const unsigned char *format)
+{
+  return (const unsigned char *) __strchrnul ((const char *) format, '%');
+}
+
+__extern_always_inline const unsigned int *
+__find_specwc (const unsigned int *format)
+{
+  return (const unsigned int *) __wcschrnul ((const wchar_t *) format, L'%');
+}
+
+
+/* FORMAT must point to a '%' at the beginning of a spec.  Fills in *SPEC
+   with the parsed details.  POSN is the number of arguments already
+   consumed.  At most MAXTYPES - POSN types are filled in TYPES.  Return
+   the number of args consumed by this spec; *MAX_REF_ARG is updated so it
+   remains the highest argument index used.  */
+extern size_t __parse_one_specmb (const unsigned char *format, size_t posn,
+				  struct printf_spec *spec,
+				  size_t *max_ref_arg) attribute_hidden;
+
+extern size_t __parse_one_specwc (const unsigned int *format, size_t posn,
+				  struct printf_spec *spec,
+				  size_t *max_ref_arg) attribute_hidden;
+
+
+
+/* This variable is defined in reg-modifier.c.  */
+struct printf_modifier_record;
+extern struct printf_modifier_record **__printf_modifier_table
+     attribute_hidden;
+
+/* Handle registered modifiers.  */
+extern int __handle_registered_modifier_mb (const unsigned char **format,
+					    struct printf_info *info)
+     attribute_hidden;
+extern int __handle_registered_modifier_wc (const unsigned int **format,
+					    struct printf_info *info)
+     attribute_hidden;
diff --git a/REORG.TODO/stdio-common/printf-parsemb.c b/REORG.TODO/stdio-common/printf-parsemb.c
new file mode 100644
index 0000000000..a42336c538
--- /dev/null
+++ b/REORG.TODO/stdio-common/printf-parsemb.c
@@ -0,0 +1,408 @@
+/* Helper functions for parsing printf format strings.
+   Copyright (C) 1995-2017 Free Software Foundation, Inc.
+   This file is part of th GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <ctype.h>
+#include <limits.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/param.h>
+#include <wchar.h>
+#include <wctype.h>
+
+#ifndef COMPILE_WPRINTF
+# define CHAR_T		char
+# define UCHAR_T	unsigned char
+# define INT_T		int
+# define L_(Str)	Str
+# define ISDIGIT(Ch)	isdigit (Ch)
+# define HANDLE_REGISTERED_MODIFIER __handle_registered_modifier_mb
+#else
+# define CHAR_T		wchar_t
+# define UCHAR_T	unsigned int
+# define INT_T		wint_t
+# define L_(Str)	L##Str
+# define ISDIGIT(Ch)	iswdigit (Ch)
+# define HANDLE_REGISTERED_MODIFIER __handle_registered_modifier_wc
+#endif
+
+#include "printf-parse.h"
+
+#define NDEBUG 1
+#include <assert.h>
+
+
+
+/* FORMAT must point to a '%' at the beginning of a spec.  Fills in *SPEC
+   with the parsed details.  POSN is the number of arguments already
+   consumed.  At most MAXTYPES - POSN types are filled in TYPES.  Return
+   the number of args consumed by this spec; *MAX_REF_ARG is updated so it
+   remains the highest argument index used.  */
+size_t
+attribute_hidden
+#ifdef COMPILE_WPRINTF
+__parse_one_specwc (const UCHAR_T *format, size_t posn,
+		    struct printf_spec *spec, size_t *max_ref_arg)
+#else
+__parse_one_specmb (const UCHAR_T *format, size_t posn,
+		    struct printf_spec *spec, size_t *max_ref_arg)
+#endif
+{
+  unsigned int n;
+  size_t nargs = 0;
+
+  /* Skip the '%'.  */
+  ++format;
+
+  /* Clear information structure.  */
+  spec->data_arg = -1;
+  spec->info.alt = 0;
+  spec->info.space = 0;
+  spec->info.left = 0;
+  spec->info.showsign = 0;
+  spec->info.group = 0;
+  spec->info.i18n = 0;
+  spec->info.extra = 0;
+  spec->info.pad = ' ';
+  spec->info.wide = sizeof (UCHAR_T) > 1;
+  spec->info.is_binary128 = 0;
+
+  /* Test for positional argument.  */
+  if (ISDIGIT (*format))
+    {
+      const UCHAR_T *begin = format;
+
+      n = read_int (&format);
+
+      if (n != 0 && *format == L_('$'))
+	/* Is positional parameter.  */
+	{
+	  ++format;		/* Skip the '$'.  */
+	  if (n != -1)
+	    {
+	      spec->data_arg = n - 1;
+	      *max_ref_arg = MAX (*max_ref_arg, n);
+	    }
+	}
+      else
+	/* Oops; that was actually the width and/or 0 padding flag.
+	   Step back and read it again.  */
+	format = begin;
+    }
+
+  /* Check for spec modifiers.  */
+  do
+    {
+      switch (*format)
+	{
+	case L_(' '):
+	  /* Output a space in place of a sign, when there is no sign.  */
+	  spec->info.space = 1;
+	  continue;
+	case L_('+'):
+	  /* Always output + or - for numbers.  */
+	  spec->info.showsign = 1;
+	  continue;
+	case L_('-'):
+	  /* Left-justify things.  */
+	  spec->info.left = 1;
+	  continue;
+	case L_('#'):
+	  /* Use the "alternate form":
+	     Hex has 0x or 0X, FP always has a decimal point.  */
+	  spec->info.alt = 1;
+	  continue;
+	case L_('0'):
+	  /* Pad with 0s.  */
+	  spec->info.pad = '0';
+	  continue;
+	case L_('\''):
+	  /* Show grouping in numbers if the locale information
+	     indicates any.  */
+	  spec->info.group = 1;
+	  continue;
+	case L_('I'):
+	  /* Use the internationalized form of the output.  Currently
+	     means to use the `outdigits' of the current locale.  */
+	  spec->info.i18n = 1;
+	  continue;
+	default:
+	  break;
+	}
+      break;
+    }
+  while (*++format);
+
+  if (spec->info.left)
+    spec->info.pad = ' ';
+
+  /* Get the field width.  */
+  spec->width_arg = -1;
+  spec->info.width = 0;
+  if (*format == L_('*'))
+    {
+      /* The field width is given in an argument.
+	 A negative field width indicates left justification.  */
+      const UCHAR_T *begin = ++format;
+
+      if (ISDIGIT (*format))
+	{
+	  /* The width argument might be found in a positional parameter.  */
+	  n = read_int (&format);
+
+	  if (n != 0 && *format == L_('$'))
+	    {
+	      if (n != -1)
+		{
+		  spec->width_arg = n - 1;
+		  *max_ref_arg = MAX (*max_ref_arg, n);
+		}
+	      ++format;		/* Skip '$'.  */
+	    }
+	}
+
+      if (spec->width_arg < 0)
+	{
+	  /* Not in a positional parameter.  Consume one argument.  */
+	  spec->width_arg = posn++;
+	  ++nargs;
+	  format = begin;	/* Step back and reread.  */
+	}
+    }
+  else if (ISDIGIT (*format))
+    {
+      int n = read_int (&format);
+
+      /* Constant width specification.  */
+      if (n != -1)
+	spec->info.width = n;
+    }
+  /* Get the precision.  */
+  spec->prec_arg = -1;
+  /* -1 means none given; 0 means explicit 0.  */
+  spec->info.prec = -1;
+  if (*format == L_('.'))
+    {
+      ++format;
+      if (*format == L_('*'))
+	{
+	  /* The precision is given in an argument.  */
+	  const UCHAR_T *begin = ++format;
+
+	  if (ISDIGIT (*format))
+	    {
+	      n = read_int (&format);
+
+	      if (n != 0 && *format == L_('$'))
+		{
+		  if (n != -1)
+		    {
+		      spec->prec_arg = n - 1;
+		      *max_ref_arg = MAX (*max_ref_arg, n);
+		    }
+		  ++format;
+		}
+	    }
+
+	  if (spec->prec_arg < 0)
+	    {
+	      /* Not in a positional parameter.  */
+	      spec->prec_arg = posn++;
+	      ++nargs;
+	      format = begin;
+	    }
+	}
+      else if (ISDIGIT (*format))
+	{
+	  int n = read_int (&format);
+
+	  if (n != -1)
+	    spec->info.prec = n;
+	}
+      else
+	/* "%.?" is treated like "%.0?".  */
+	spec->info.prec = 0;
+    }
+
+  /* Check for type modifiers.  */
+  spec->info.is_long_double = 0;
+  spec->info.is_short = 0;
+  spec->info.is_long = 0;
+  spec->info.is_char = 0;
+  spec->info.user = 0;
+
+  if (__builtin_expect (__printf_modifier_table == NULL, 1)
+      || __printf_modifier_table[*format] == NULL
+      || HANDLE_REGISTERED_MODIFIER (&format, &spec->info) != 0)
+    switch (*format++)
+      {
+      case L_('h'):
+	/* ints are short ints or chars.  */
+	if (*format != L_('h'))
+	  spec->info.is_short = 1;
+	else
+	  {
+	    ++format;
+	    spec->info.is_char = 1;
+	  }
+	break;
+      case L_('l'):
+	/* ints are long ints.  */
+	spec->info.is_long = 1;
+	if (*format != L_('l'))
+	  break;
+	++format;
+	/* FALLTHROUGH */
+      case L_('L'):
+	/* doubles are long doubles, and ints are long long ints.  */
+      case L_('q'):
+	/* 4.4 uses this for long long.  */
+	spec->info.is_long_double = 1;
+	break;
+      case L_('z'):
+      case L_('Z'):
+	/* ints are size_ts.  */
+	assert (sizeof (size_t) <= sizeof (unsigned long long int));
+#if LONG_MAX != LONG_LONG_MAX
+	spec->info.is_long_double = (sizeof (size_t)
+				     > sizeof (unsigned long int));
+#endif
+	spec->info.is_long = sizeof (size_t) > sizeof (unsigned int);
+	break;
+      case L_('t'):
+	assert (sizeof (ptrdiff_t) <= sizeof (long long int));
+#if LONG_MAX != LONG_LONG_MAX
+	spec->info.is_long_double = (sizeof (ptrdiff_t) > sizeof (long int));
+#endif
+	spec->info.is_long = sizeof (ptrdiff_t) > sizeof (int);
+	break;
+      case L_('j'):
+	assert (sizeof (uintmax_t) <= sizeof (unsigned long long int));
+#if LONG_MAX != LONG_LONG_MAX
+	spec->info.is_long_double = (sizeof (uintmax_t)
+				     > sizeof (unsigned long int));
+#endif
+	spec->info.is_long = sizeof (uintmax_t) > sizeof (unsigned int);
+	break;
+      default:
+	/* Not a recognized modifier.  Backup.  */
+	--format;
+	break;
+      }
+
+  /* Get the format specification.  */
+  spec->info.spec = (wchar_t) *format++;
+  spec->size = -1;
+  if (__builtin_expect (__printf_function_table == NULL, 1)
+      || spec->info.spec > UCHAR_MAX
+      || __printf_arginfo_table[spec->info.spec] == NULL
+      /* We don't try to get the types for all arguments if the format
+	 uses more than one.  The normal case is covered though.  If
+	 the call returns -1 we continue with the normal specifiers.  */
+      || (int) (spec->ndata_args = (*__printf_arginfo_table[spec->info.spec])
+				   (&spec->info, 1, &spec->data_arg_type,
+				    &spec->size)) < 0)
+    {
+      /* Find the data argument types of a built-in spec.  */
+      spec->ndata_args = 1;
+
+      switch (spec->info.spec)
+	{
+	case L'i':
+	case L'd':
+	case L'u':
+	case L'o':
+	case L'X':
+	case L'x':
+#if LONG_MAX != LONG_LONG_MAX
+	  if (spec->info.is_long_double)
+	    spec->data_arg_type = PA_INT|PA_FLAG_LONG_LONG;
+	  else
+#endif
+	    if (spec->info.is_long)
+	      spec->data_arg_type = PA_INT|PA_FLAG_LONG;
+	    else if (spec->info.is_short)
+	      spec->data_arg_type = PA_INT|PA_FLAG_SHORT;
+	    else if (spec->info.is_char)
+	      spec->data_arg_type = PA_CHAR;
+	    else
+	      spec->data_arg_type = PA_INT;
+	  break;
+	case L'e':
+	case L'E':
+	case L'f':
+	case L'F':
+	case L'g':
+	case L'G':
+	case L'a':
+	case L'A':
+	  if (spec->info.is_long_double)
+	    spec->data_arg_type = PA_DOUBLE|PA_FLAG_LONG_DOUBLE;
+	  else
+	    spec->data_arg_type = PA_DOUBLE;
+	  break;
+	case L'c':
+	  spec->data_arg_type = PA_CHAR;
+	  break;
+	case L'C':
+	  spec->data_arg_type = PA_WCHAR;
+	  break;
+	case L's':
+	  spec->data_arg_type = PA_STRING;
+	  break;
+	case L'S':
+	  spec->data_arg_type = PA_WSTRING;
+	  break;
+	case L'p':
+	  spec->data_arg_type = PA_POINTER;
+	  break;
+	case L'n':
+	  spec->data_arg_type = PA_INT|PA_FLAG_PTR;
+	  break;
+
+	case L'm':
+	default:
+	  /* An unknown spec will consume no args.  */
+	  spec->ndata_args = 0;
+	  break;
+	}
+    }
+
+  if (spec->data_arg == -1 && spec->ndata_args > 0)
+    {
+      /* There are args consumed, but no positional spec.  Use the
+	 next sequential arg position.  */
+      spec->data_arg = posn;
+      nargs += spec->ndata_args;
+    }
+
+  if (spec->info.spec == L'\0')
+    /* Format ended before this spec was complete.  */
+    spec->end_of_fmt = spec->next_fmt = format - 1;
+  else
+    {
+      /* Find the next format spec.  */
+      spec->end_of_fmt = format;
+#ifdef COMPILE_WPRINTF
+      spec->next_fmt = __find_specwc (format);
+#else
+      spec->next_fmt = __find_specmb (format);
+#endif
+    }
+
+  return nargs;
+}
diff --git a/REORG.TODO/stdio-common/printf-parsewc.c b/REORG.TODO/stdio-common/printf-parsewc.c
new file mode 100644
index 0000000000..3de67d8081
--- /dev/null
+++ b/REORG.TODO/stdio-common/printf-parsewc.c
@@ -0,0 +1,2 @@
+#define COMPILE_WPRINTF	1
+#include "printf-parsemb.c"
diff --git a/REORG.TODO/stdio-common/printf-prs.c b/REORG.TODO/stdio-common/printf-prs.c
new file mode 100644
index 0000000000..d63855612a
--- /dev/null
+++ b/REORG.TODO/stdio-common/printf-prs.c
@@ -0,0 +1,102 @@
+/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <stdio.h>
+#include <printf.h>
+#include <stdlib.h>
+#include <string.h>
+#include <wchar.h>
+#include <sys/param.h>
+
+#include "../locale/localeinfo.h"
+
+#ifndef COMPILE_WPRINTF
+# define CHAR_T		char
+# define UCHAR_T	unsigned char
+# define INT_T		int
+# define L_(Str)	Str
+# define ISDIGIT(Ch)	isdigit (Ch)
+# define ISASCII(Ch)	isascii (Ch)
+# define MBRLEN(Cp, L, St) __mbrlen (Cp, L, St)
+
+# define PUT(F, S, N)	_IO_sputn (F, S, N)
+# define PAD(Padchar)							      \
+  if (width > 0)							      \
+    done += _IO_padn (s, Padchar, width)
+#else
+# define vfprintf	vfwprintf
+# define CHAR_T		wchar_t
+# define UCHAR_T	uwchar_t
+# define INT_T		wint_t
+# define L_(Str)	L##Str
+# define ISDIGIT(Ch)	iswdigit (Ch)
+
+# define PUT(F, S, N)	_IO_sputn (F, S, N)
+# define PAD(Padchar)							      \
+  if (width > 0)							      \
+    done += _IO_wpadn (s, Padchar, width)
+#endif
+
+#define DONT_NEED_READ_INT
+#include "printf-parse.h"
+
+
+size_t
+parse_printf_format (const char *fmt, size_t n, int *argtypes)
+{
+  size_t nargs;			/* Number of arguments.  */
+  size_t max_ref_arg;		/* Highest index used in a positional arg.  */
+  struct printf_spec spec;
+  const unsigned char *f = (const unsigned char *) fmt;
+
+  nargs = 0;
+  max_ref_arg = 0;
+
+  /* Search for format specifications.  */
+  for (f = __find_specmb (f); *f != '\0'; f = spec.next_fmt)
+    {
+      /* Parse this spec.  */
+      nargs += __parse_one_specmb (f, nargs, &spec, &max_ref_arg);
+
+      /* If the width is determined by an argument this is an int.  */
+      if (spec.width_arg != -1 && (size_t) spec.width_arg < n)
+	argtypes[spec.width_arg] = PA_INT;
+
+      /* If the precision is determined by an argument this is an int.  */
+      if (spec.prec_arg != -1 && (size_t) spec.prec_arg < n)
+	argtypes[spec.prec_arg] = PA_INT;
+
+      if ((size_t) spec.data_arg < n)
+	switch (spec.ndata_args)
+	  {
+	  case 0:		/* No arguments.  */
+	    break;
+	  case 1:		/* One argument; we already have the type.  */
+	    argtypes[spec.data_arg] = spec.data_arg_type;
+	    break;
+	  default:
+	    /* We have more than one argument for this format spec.  We must
+               call the arginfo function again to determine all the types.  */
+	    (void) (*__printf_arginfo_table[spec.info.spec])
+	      (&spec.info, n - spec.data_arg, &argtypes[spec.data_arg],
+	       &spec.size);
+	    break;
+	  }
+    }
+
+  return MAX (nargs, max_ref_arg);
+}
diff --git a/REORG.TODO/stdio-common/printf.c b/REORG.TODO/stdio-common/printf.c
new file mode 100644
index 0000000000..ba84064e9e
--- /dev/null
+++ b/REORG.TODO/stdio-common/printf.c
@@ -0,0 +1,42 @@
+/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <libioP.h>
+#include <stdarg.h>
+#include <stdio.h>
+
+#undef printf
+
+/* Write formatted output to stdout from the format string FORMAT.  */
+/* VARARGS1 */
+int
+__printf (const char *format, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, format);
+  done = vfprintf (stdout, format, arg);
+  va_end (arg);
+
+  return done;
+}
+
+#undef _IO_printf
+ldbl_strong_alias (__printf, printf);
+/* This is for libg++.  */
+ldbl_strong_alias (__printf, _IO_printf);
diff --git a/REORG.TODO/stdio-common/printf.h b/REORG.TODO/stdio-common/printf.h
new file mode 100644
index 0000000000..940256445e
--- /dev/null
+++ b/REORG.TODO/stdio-common/printf.h
@@ -0,0 +1,191 @@
+/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#ifndef	_PRINTF_H
+
+#define	_PRINTF_H	1
+#include <features.h>
+
+__BEGIN_DECLS
+
+#include <bits/types/FILE.h>
+
+#define	__need_size_t
+#define __need_wchar_t
+#include <stddef.h>
+
+#include <stdarg.h>
+
+
+struct printf_info
+{
+  int prec;			/* Precision.  */
+  int width;			/* Width.  */
+  wchar_t spec;			/* Format letter.  */
+  unsigned int is_long_double:1;/* L flag.  */
+  unsigned int is_short:1;	/* h flag.  */
+  unsigned int is_long:1;	/* l flag.  */
+  unsigned int alt:1;		/* # flag.  */
+  unsigned int space:1;		/* Space flag.  */
+  unsigned int left:1;		/* - flag.  */
+  unsigned int showsign:1;	/* + flag.  */
+  unsigned int group:1;		/* ' flag.  */
+  unsigned int extra:1;		/* For special use.  */
+  unsigned int is_char:1;	/* hh flag.  */
+  unsigned int wide:1;		/* Nonzero for wide character streams.  */
+  unsigned int i18n:1;		/* I flag.  */
+  unsigned int is_binary128:1;	/* Floating-point argument is ABI-compatible
+				   with IEC 60559 binary128.  */
+  unsigned int __pad:3;		/* Unused so far.  */
+  unsigned short int user;	/* Bits for user-installed modifiers.  */
+  wchar_t pad;			/* Padding character.  */
+};
+
+
+/* Type of a printf specifier-handler function.
+   STREAM is the FILE on which to write output.
+   INFO gives information about the format specification.
+   ARGS is a vector of pointers to the argument data;
+   the number of pointers will be the number returned
+   by the associated arginfo function for the same INFO.
+
+   The function should return the number of characters written,
+   or -1 for errors.  */
+
+typedef int printf_function (FILE *__stream,
+			     const struct printf_info *__info,
+			     const void *const *__args);
+
+/* Type of a printf specifier-arginfo function.
+   INFO gives information about the format specification.
+   N, ARGTYPES, *SIZE has to contain the size of the parameter for
+   user-defined types, and return value are as for parse_printf_format
+   except that -1 should be returned if the handler cannot handle
+   this case.  This allows to partially overwrite the functionality
+   of existing format specifiers.  */
+
+typedef int printf_arginfo_size_function (const struct printf_info *__info,
+					  size_t __n, int *__argtypes,
+					  int *__size);
+
+/* Old version of 'printf_arginfo_function' without a SIZE parameter.  */
+
+typedef int printf_arginfo_function (const struct printf_info *__info,
+				     size_t __n, int *__argtypes);
+
+/* Type of a function to get a value of a user-defined from the
+   variable argument list.  */
+typedef void printf_va_arg_function (void *__mem, va_list *__ap);
+
+
+/* Register FUNC to be called to format SPEC specifiers; ARGINFO must be
+   specified to determine how many arguments a SPEC conversion requires and
+   what their types are.  */
+
+extern int register_printf_specifier (int __spec, printf_function __func,
+				      printf_arginfo_size_function __arginfo)
+  __THROW;
+
+
+/* Obsolete interface similar to register_printf_specifier.  It can only
+   handle basic data types because the ARGINFO callback does not return
+   information on the size of the user-defined type.  */
+
+extern int register_printf_function (int __spec, printf_function __func,
+				     printf_arginfo_function __arginfo)
+  __THROW __attribute_deprecated__;
+
+
+/* Register a new modifier character sequence.  If the call succeeds
+   it returns a positive value representing the bit set in the USER
+   field in 'struct printf_info'.  */
+
+extern int register_printf_modifier (const wchar_t *__str) __THROW __wur;
+
+
+/* Register variable argument handler for user type.  The return value
+   is to be used in ARGINFO functions to signal the use of the
+   type.  */
+extern int register_printf_type (printf_va_arg_function __fct) __THROW __wur;
+
+
+/* Parse FMT, and fill in N elements of ARGTYPES with the
+   types needed for the conversions FMT specifies.  Returns
+   the number of arguments required by FMT.
+
+   The ARGINFO function registered with a user-defined format is passed a
+   `struct printf_info' describing the format spec being parsed.  A width
+   or precision of INT_MIN means a `*' was used to indicate that the
+   width/precision will come from an arg.  The function should fill in the
+   array it is passed with the types of the arguments it wants, and return
+   the number of arguments it wants.  */
+
+extern size_t parse_printf_format (const char *__restrict __fmt, size_t __n,
+				   int *__restrict __argtypes) __THROW;
+
+
+/* Codes returned by `parse_printf_format' for basic types.
+
+   These values cover all the standard format specifications.
+   Users can reserve new values after PA_LAST for their own types
+   using 'register_printf_type'.  */
+
+enum
+{				/* C type: */
+  PA_INT,			/* int */
+  PA_CHAR,			/* int, cast to char */
+  PA_WCHAR,			/* wide char */
+  PA_STRING,			/* const char *, a '\0'-terminated string */
+  PA_WSTRING,			/* const wchar_t *, wide character string */
+  PA_POINTER,			/* void * */
+  PA_FLOAT,			/* float */
+  PA_DOUBLE,			/* double */
+  PA_LAST
+};
+
+/* Flag bits that can be set in a type returned by `parse_printf_format'.  */
+#define	PA_FLAG_MASK		0xff00
+#define	PA_FLAG_LONG_LONG	(1 << 8)
+#define	PA_FLAG_LONG_DOUBLE	PA_FLAG_LONG_LONG
+#define	PA_FLAG_LONG		(1 << 9)
+#define	PA_FLAG_SHORT		(1 << 10)
+#define	PA_FLAG_PTR		(1 << 11)
+
+
+
+/* Function which can be registered as `printf'-handlers.  */
+
+/* Print floating point value using using abbreviations for the orders
+   of magnitude used for numbers ('k' for kilo, 'm' for mega etc).  If
+   the format specifier is a uppercase character powers of 1000 are
+   used.  Otherwise powers of 1024.  */
+extern int printf_size (FILE *__restrict __fp,
+			const struct printf_info *__info,
+			const void *const *__restrict __args) __THROW;
+
+/* This is the appropriate argument information function for `printf_size'.  */
+extern int printf_size_info (const struct printf_info *__restrict
+			     __info, size_t __n, int *__restrict __argtypes)
+     __THROW;
+
+#ifdef __LDBL_COMPAT
+# include <bits/printf-ldbl.h>
+#endif
+
+__END_DECLS
+
+#endif /* printf.h  */
diff --git a/REORG.TODO/stdio-common/printf_fp.c b/REORG.TODO/stdio-common/printf_fp.c
new file mode 100644
index 0000000000..514b698d27
--- /dev/null
+++ b/REORG.TODO/stdio-common/printf_fp.c
@@ -0,0 +1,1364 @@
+/* Floating point output for `printf'.
+   Copyright (C) 1995-2017 Free Software Foundation, Inc.
+
+   This file is part of the GNU C Library.
+   Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+/* The gmp headers need some configuration frobs.  */
+#define HAVE_ALLOCA 1
+
+#include <libioP.h>
+#include <alloca.h>
+#include <ctype.h>
+#include <float.h>
+#include <gmp-mparam.h>
+#include <gmp.h>
+#include <ieee754.h>
+#include <stdlib/gmp-impl.h>
+#include <stdlib/longlong.h>
+#include <stdlib/fpioconst.h>
+#include <locale/localeinfo.h>
+#include <limits.h>
+#include <math.h>
+#include <printf.h>
+#include <string.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <wchar.h>
+#include <stdbool.h>
+#include <rounding-mode.h>
+
+#ifdef COMPILE_WPRINTF
+# define CHAR_T        wchar_t
+#else
+# define CHAR_T        char
+#endif
+
+#include "_i18n_number.h"
+
+#ifndef NDEBUG
+# define NDEBUG			/* Undefine this for debugging assertions.  */
+#endif
+#include <assert.h>
+
+/* This defines make it possible to use the same code for GNU C library and
+   the GNU I/O library.	 */
+#define PUT(f, s, n) _IO_sputn (f, s, n)
+#define PAD(f, c, n) (wide ? _IO_wpadn (f, c, n) : _IO_padn (f, c, n))
+/* We use this file GNU C library and GNU I/O library.	So make
+   names equal.	 */
+#undef putc
+#define putc(c, f) (wide \
+		    ? (int)_IO_putwc_unlocked (c, f) : _IO_putc_unlocked (c, f))
+#define size_t     _IO_size_t
+#define FILE	     _IO_FILE
+
+/* Macros for doing the actual output.  */
+
+#define outchar(ch)							      \
+  do									      \
+    {									      \
+      const int outc = (ch);						      \
+      if (putc (outc, fp) == EOF)					      \
+	{								      \
+	  if (buffer_malloced)						      \
+	    free (wbuffer);						      \
+	  return -1;							      \
+	}								      \
+      ++done;								      \
+    } while (0)
+
+#define PRINT(ptr, wptr, len)						      \
+  do									      \
+    {									      \
+      size_t outlen = (len);						      \
+      if (len > 20)							      \
+	{								      \
+	  if (PUT (fp, wide ? (const char *) wptr : ptr, outlen) != outlen)   \
+	    {								      \
+	      if (buffer_malloced)					      \
+		free (wbuffer);						      \
+	      return -1;						      \
+	    }								      \
+	  ptr += outlen;						      \
+	  done += outlen;						      \
+	}								      \
+      else								      \
+	{								      \
+	  if (wide)							      \
+	    while (outlen-- > 0)					      \
+	      outchar (*wptr++);					      \
+	  else								      \
+	    while (outlen-- > 0)					      \
+	      outchar (*ptr++);						      \
+	}								      \
+    } while (0)
+
+#define PADN(ch, len)							      \
+  do									      \
+    {									      \
+      if (PAD (fp, ch, len) != len)					      \
+	{								      \
+	  if (buffer_malloced)						      \
+	    free (wbuffer);						      \
+	  return -1;							      \
+	}								      \
+      done += len;							      \
+    }									      \
+  while (0)
+
+/* We use the GNU MP library to handle large numbers.
+
+   An MP variable occupies a varying number of entries in its array.  We keep
+   track of this number for efficiency reasons.  Otherwise we would always
+   have to process the whole array.  */
+#define MPN_VAR(name) mp_limb_t *name; mp_size_t name##size
+
+#define MPN_ASSIGN(dst,src)						      \
+  memcpy (dst, src, (dst##size = src##size) * sizeof (mp_limb_t))
+#define MPN_GE(u,v) \
+  (u##size > v##size || (u##size == v##size && __mpn_cmp (u, v, u##size) >= 0))
+
+extern mp_size_t __mpn_extract_double (mp_ptr res_ptr, mp_size_t size,
+				       int *expt, int *is_neg,
+				       double value);
+extern mp_size_t __mpn_extract_long_double (mp_ptr res_ptr, mp_size_t size,
+					    int *expt, int *is_neg,
+					    long double value);
+extern unsigned int __guess_grouping (unsigned int intdig_max,
+				      const char *grouping);
+
+
+static wchar_t *group_number (wchar_t *buf, wchar_t *bufend,
+			      unsigned int intdig_no, const char *grouping,
+			      wchar_t thousands_sep, int ngroups)
+     internal_function;
+
+struct hack_digit_param
+{
+  /* Sign of the exponent.  */
+  int expsign;
+  /* The type of output format that will be used: 'e'/'E' or 'f'.  */
+  int type;
+  /* and the exponent.	*/
+  int exponent;
+  /* The fraction of the floting-point value in question  */
+  MPN_VAR(frac);
+  /* Scaling factor.  */
+  MPN_VAR(scale);
+  /* Temporary bignum value.  */
+  MPN_VAR(tmp);
+};
+
+static wchar_t
+hack_digit (struct hack_digit_param *p)
+{
+  mp_limb_t hi;
+
+  if (p->expsign != 0 && p->type == 'f' && p->exponent-- > 0)
+    hi = 0;
+  else if (p->scalesize == 0)
+    {
+      hi = p->frac[p->fracsize - 1];
+      p->frac[p->fracsize - 1] = __mpn_mul_1 (p->frac, p->frac,
+	p->fracsize - 1, 10);
+    }
+  else
+    {
+      if (p->fracsize < p->scalesize)
+	hi = 0;
+      else
+	{
+	  hi = mpn_divmod (p->tmp, p->frac, p->fracsize,
+	    p->scale, p->scalesize);
+	  p->tmp[p->fracsize - p->scalesize] = hi;
+	  hi = p->tmp[0];
+
+	  p->fracsize = p->scalesize;
+	  while (p->fracsize != 0 && p->frac[p->fracsize - 1] == 0)
+	    --p->fracsize;
+	  if (p->fracsize == 0)
+	    {
+	      /* We're not prepared for an mpn variable with zero
+		 limbs.  */
+	      p->fracsize = 1;
+	      return L'0' + hi;
+	    }
+	}
+
+      mp_limb_t _cy = __mpn_mul_1 (p->frac, p->frac, p->fracsize, 10);
+      if (_cy != 0)
+	p->frac[p->fracsize++] = _cy;
+    }
+
+  return L'0' + hi;
+}
+
+int
+__printf_fp_l (FILE *fp, locale_t loc,
+	       const struct printf_info *info,
+	       const void *const *args)
+{
+  /* The floating-point value to output.  */
+  union
+    {
+      double dbl;
+      __long_double_t ldbl;
+#if __HAVE_DISTINCT_FLOAT128
+      _Float128 f128;
+#endif
+    }
+  fpnum;
+
+  /* Locale-dependent representation of decimal point.	*/
+  const char *decimal;
+  wchar_t decimalwc;
+
+  /* Locale-dependent thousands separator and grouping specification.  */
+  const char *thousands_sep = NULL;
+  wchar_t thousands_sepwc = 0;
+  const char *grouping;
+
+  /* "NaN" or "Inf" for the special cases.  */
+  const char *special = NULL;
+  const wchar_t *wspecial = NULL;
+
+  /* When _Float128 is enabled in the library and ABI-distinct from long
+     double, we need mp_limbs enough for any of them.  */
+#if __HAVE_DISTINCT_FLOAT128
+# define GREATER_MANT_DIG FLT128_MANT_DIG
+#else
+# define GREATER_MANT_DIG LDBL_MANT_DIG
+#endif
+  /* We need just a few limbs for the input before shifting to the right
+     position.	*/
+  mp_limb_t fp_input[(GREATER_MANT_DIG + BITS_PER_MP_LIMB - 1)
+		     / BITS_PER_MP_LIMB];
+  /* We need to shift the contents of fp_input by this amount of bits.	*/
+  int to_shift = 0;
+
+  struct hack_digit_param p;
+  /* Sign of float number.  */
+  int is_neg = 0;
+
+  /* Counter for number of written characters.	*/
+  int done = 0;
+
+  /* General helper (carry limb).  */
+  mp_limb_t cy;
+
+  /* Nonzero if this is output on a wide character stream.  */
+  int wide = info->wide;
+
+  /* Buffer in which we produce the output.  */
+  wchar_t *wbuffer = NULL;
+  /* Flag whether wbuffer is malloc'ed or not.  */
+  int buffer_malloced = 0;
+
+  p.expsign = 0;
+
+  /* Figure out the decimal point character.  */
+  if (info->extra == 0)
+    {
+      decimal = _nl_lookup (loc, LC_NUMERIC, DECIMAL_POINT);
+      decimalwc = _nl_lookup_word
+	(loc, LC_NUMERIC, _NL_NUMERIC_DECIMAL_POINT_WC);
+    }
+  else
+    {
+      decimal = _nl_lookup (loc, LC_MONETARY, MON_DECIMAL_POINT);
+      if (*decimal == '\0')
+	decimal = _nl_lookup (loc, LC_NUMERIC, DECIMAL_POINT);
+      decimalwc = _nl_lookup_word (loc, LC_MONETARY,
+				    _NL_MONETARY_DECIMAL_POINT_WC);
+      if (decimalwc == L'\0')
+	decimalwc = _nl_lookup_word (loc, LC_NUMERIC,
+				      _NL_NUMERIC_DECIMAL_POINT_WC);
+    }
+  /* The decimal point character must not be zero.  */
+  assert (*decimal != '\0');
+  assert (decimalwc != L'\0');
+
+  if (info->group)
+    {
+      if (info->extra == 0)
+	grouping = _nl_lookup (loc, LC_NUMERIC, GROUPING);
+      else
+	grouping = _nl_lookup (loc, LC_MONETARY, MON_GROUPING);
+
+      if (*grouping <= 0 || *grouping == CHAR_MAX)
+	grouping = NULL;
+      else
+	{
+	  /* Figure out the thousands separator character.  */
+	  if (wide)
+	    {
+	      if (info->extra == 0)
+		thousands_sepwc = _nl_lookup_word
+		  (loc, LC_NUMERIC, _NL_NUMERIC_THOUSANDS_SEP_WC);
+	      else
+		thousands_sepwc =
+		  _nl_lookup_word (loc, LC_MONETARY,
+				    _NL_MONETARY_THOUSANDS_SEP_WC);
+	    }
+	  else
+	    {
+	      if (info->extra == 0)
+		thousands_sep = _nl_lookup (loc, LC_NUMERIC, THOUSANDS_SEP);
+	      else
+		thousands_sep = _nl_lookup
+		  (loc, LC_MONETARY, MON_THOUSANDS_SEP);
+	    }
+
+	  if ((wide && thousands_sepwc == L'\0')
+	      || (! wide && *thousands_sep == '\0'))
+	    grouping = NULL;
+	  else if (thousands_sepwc == L'\0')
+	    /* If we are printing multibyte characters and there is a
+	       multibyte representation for the thousands separator,
+	       we must ensure the wide character thousands separator
+	       is available, even if it is fake.  */
+	    thousands_sepwc = 0xfffffffe;
+	}
+    }
+  else
+    grouping = NULL;
+
+#define PRINTF_FP_FETCH(FLOAT, VAR, SUFFIX, MANT_DIG)			\
+  {									\
+    (VAR) = *(const FLOAT *) args[0];					\
+									\
+    /* Check for special values: not a number or infinity.  */		\
+    if (isnan (VAR))							\
+      {									\
+	is_neg = signbit (VAR);						\
+	if (isupper (info->spec))					\
+	  {								\
+	    special = "NAN";						\
+	    wspecial = L"NAN";						\
+	  }								\
+	else								\
+	  {								\
+	    special = "nan";						\
+	    wspecial = L"nan";						\
+	  }								\
+      }									\
+    else if (isinf (VAR))						\
+      {									\
+	is_neg = signbit (VAR);						\
+	if (isupper (info->spec))					\
+	  {								\
+	    special = "INF";						\
+	    wspecial = L"INF";						\
+	  }								\
+	else								\
+	  {								\
+	    special = "inf";						\
+	    wspecial = L"inf";						\
+	  }								\
+      }									\
+    else								\
+      {									\
+	p.fracsize = __mpn_extract_##SUFFIX				\
+		     (fp_input,						\
+		      (sizeof (fp_input) / sizeof (fp_input[0])),	\
+		      &p.exponent, &is_neg, VAR);			\
+	to_shift = 1 + p.fracsize * BITS_PER_MP_LIMB - MANT_DIG;	\
+      }									\
+  }
+
+  /* Fetch the argument value.	*/
+#if __HAVE_DISTINCT_FLOAT128
+  if (info->is_binary128)
+    PRINTF_FP_FETCH (_Float128, fpnum.f128, float128, FLT128_MANT_DIG)
+  else
+#endif
+#ifndef __NO_LONG_DOUBLE_MATH
+  if (info->is_long_double && sizeof (long double) > sizeof (double))
+    PRINTF_FP_FETCH (long double, fpnum.ldbl, long_double, LDBL_MANT_DIG)
+  else
+#endif
+    PRINTF_FP_FETCH (double, fpnum.dbl, double, DBL_MANT_DIG)
+
+#undef PRINTF_FP_FETCH
+
+  if (special)
+    {
+      int width = info->width;
+
+      if (is_neg || info->showsign || info->space)
+	--width;
+      width -= 3;
+
+      if (!info->left && width > 0)
+	PADN (' ', width);
+
+      if (is_neg)
+	outchar ('-');
+      else if (info->showsign)
+	outchar ('+');
+      else if (info->space)
+	outchar (' ');
+
+      PRINT (special, wspecial, 3);
+
+      if (info->left && width > 0)
+	PADN (' ', width);
+
+      return done;
+    }
+
+
+  /* We need three multiprecision variables.  Now that we have the p.exponent
+     of the number we can allocate the needed memory.  It would be more
+     efficient to use variables of the fixed maximum size but because this
+     would be really big it could lead to memory problems.  */
+  {
+    mp_size_t bignum_size = ((abs (p.exponent) + BITS_PER_MP_LIMB - 1)
+			     / BITS_PER_MP_LIMB
+			     + (GREATER_MANT_DIG / BITS_PER_MP_LIMB > 2
+				? 8 : 4))
+			    * sizeof (mp_limb_t);
+    p.frac = (mp_limb_t *) alloca (bignum_size);
+    p.tmp = (mp_limb_t *) alloca (bignum_size);
+    p.scale = (mp_limb_t *) alloca (bignum_size);
+  }
+
+  /* We now have to distinguish between numbers with positive and negative
+     exponents because the method used for the one is not applicable/efficient
+     for the other.  */
+  p.scalesize = 0;
+  if (p.exponent > 2)
+    {
+      /* |FP| >= 8.0.  */
+      int scaleexpo = 0;
+      int explog;
+#if __HAVE_DISTINCT_FLOAT128
+      if (info->is_binary128)
+	explog = FLT128_MAX_10_EXP_LOG;
+      else
+	explog = LDBL_MAX_10_EXP_LOG;
+#else
+      explog = LDBL_MAX_10_EXP_LOG;
+#endif
+      int exp10 = 0;
+      const struct mp_power *powers = &_fpioconst_pow10[explog + 1];
+      int cnt_h, cnt_l, i;
+
+      if ((p.exponent + to_shift) % BITS_PER_MP_LIMB == 0)
+	{
+	  MPN_COPY_DECR (p.frac + (p.exponent + to_shift) / BITS_PER_MP_LIMB,
+			 fp_input, p.fracsize);
+	  p.fracsize += (p.exponent + to_shift) / BITS_PER_MP_LIMB;
+	}
+      else
+	{
+	  cy = __mpn_lshift (p.frac +
+			     (p.exponent + to_shift) / BITS_PER_MP_LIMB,
+			     fp_input, p.fracsize,
+			     (p.exponent + to_shift) % BITS_PER_MP_LIMB);
+	  p.fracsize += (p.exponent + to_shift) / BITS_PER_MP_LIMB;
+	  if (cy)
+	    p.frac[p.fracsize++] = cy;
+	}
+      MPN_ZERO (p.frac, (p.exponent + to_shift) / BITS_PER_MP_LIMB);
+
+      assert (powers > &_fpioconst_pow10[0]);
+      do
+	{
+	  --powers;
+
+	  /* The number of the product of two binary numbers with n and m
+	     bits respectively has m+n or m+n-1 bits.	*/
+	  if (p.exponent >= scaleexpo + powers->p_expo - 1)
+	    {
+	      if (p.scalesize == 0)
+		{
+#if __HAVE_DISTINCT_FLOAT128
+		  if ((FLT128_MANT_DIG
+			    > _FPIO_CONST_OFFSET * BITS_PER_MP_LIMB)
+			   && info->is_binary128)
+		    {
+#define _FLT128_FPIO_CONST_SHIFT \
+  (((FLT128_MANT_DIG + BITS_PER_MP_LIMB - 1) / BITS_PER_MP_LIMB) \
+   - _FPIO_CONST_OFFSET)
+		      /* 64bit const offset is not enough for
+			 IEEE 854 quad long double (_Float128).  */
+		      p.tmpsize = powers->arraysize + _FLT128_FPIO_CONST_SHIFT;
+		      memcpy (p.tmp + _FLT128_FPIO_CONST_SHIFT,
+			      &__tens[powers->arrayoff],
+			      p.tmpsize * sizeof (mp_limb_t));
+		      MPN_ZERO (p.tmp, _FLT128_FPIO_CONST_SHIFT);
+		      /* Adjust p.exponent, as scaleexpo will be this much
+			 bigger too.  */
+		      p.exponent += _FLT128_FPIO_CONST_SHIFT * BITS_PER_MP_LIMB;
+		    }
+		  else
+#endif /* __HAVE_DISTINCT_FLOAT128 */
+#ifndef __NO_LONG_DOUBLE_MATH
+		  if (LDBL_MANT_DIG > _FPIO_CONST_OFFSET * BITS_PER_MP_LIMB
+		      && info->is_long_double)
+		    {
+#define _FPIO_CONST_SHIFT \
+  (((LDBL_MANT_DIG + BITS_PER_MP_LIMB - 1) / BITS_PER_MP_LIMB) \
+   - _FPIO_CONST_OFFSET)
+		      /* 64bit const offset is not enough for
+			 IEEE quad long double.  */
+		      p.tmpsize = powers->arraysize + _FPIO_CONST_SHIFT;
+		      memcpy (p.tmp + _FPIO_CONST_SHIFT,
+			      &__tens[powers->arrayoff],
+			      p.tmpsize * sizeof (mp_limb_t));
+		      MPN_ZERO (p.tmp, _FPIO_CONST_SHIFT);
+		      /* Adjust p.exponent, as scaleexpo will be this much
+			 bigger too.  */
+		      p.exponent += _FPIO_CONST_SHIFT * BITS_PER_MP_LIMB;
+		    }
+		  else
+#endif
+		    {
+		      p.tmpsize = powers->arraysize;
+		      memcpy (p.tmp, &__tens[powers->arrayoff],
+			      p.tmpsize * sizeof (mp_limb_t));
+		    }
+		}
+	      else
+		{
+		  cy = __mpn_mul (p.tmp, p.scale, p.scalesize,
+				  &__tens[powers->arrayoff
+					 + _FPIO_CONST_OFFSET],
+				  powers->arraysize - _FPIO_CONST_OFFSET);
+		  p.tmpsize = p.scalesize +
+		    powers->arraysize - _FPIO_CONST_OFFSET;
+		  if (cy == 0)
+		    --p.tmpsize;
+		}
+
+	      if (MPN_GE (p.frac, p.tmp))
+		{
+		  int cnt;
+		  MPN_ASSIGN (p.scale, p.tmp);
+		  count_leading_zeros (cnt, p.scale[p.scalesize - 1]);
+		  scaleexpo = (p.scalesize - 2) * BITS_PER_MP_LIMB - cnt - 1;
+		  exp10 |= 1 << explog;
+		}
+	    }
+	  --explog;
+	}
+      while (powers > &_fpioconst_pow10[0]);
+      p.exponent = exp10;
+
+      /* Optimize number representations.  We want to represent the numbers
+	 with the lowest number of bytes possible without losing any
+	 bytes. Also the highest bit in the scaling factor has to be set
+	 (this is a requirement of the MPN division routines).  */
+      if (p.scalesize > 0)
+	{
+	  /* Determine minimum number of zero bits at the end of
+	     both numbers.  */
+	  for (i = 0; p.scale[i] == 0 && p.frac[i] == 0; i++)
+	    ;
+
+	  /* Determine number of bits the scaling factor is misplaced.	*/
+	  count_leading_zeros (cnt_h, p.scale[p.scalesize - 1]);
+
+	  if (cnt_h == 0)
+	    {
+	      /* The highest bit of the scaling factor is already set.	So
+		 we only have to remove the trailing empty limbs.  */
+	      if (i > 0)
+		{
+		  MPN_COPY_INCR (p.scale, p.scale + i, p.scalesize - i);
+		  p.scalesize -= i;
+		  MPN_COPY_INCR (p.frac, p.frac + i, p.fracsize - i);
+		  p.fracsize -= i;
+		}
+	    }
+	  else
+	    {
+	      if (p.scale[i] != 0)
+		{
+		  count_trailing_zeros (cnt_l, p.scale[i]);
+		  if (p.frac[i] != 0)
+		    {
+		      int cnt_l2;
+		      count_trailing_zeros (cnt_l2, p.frac[i]);
+		      if (cnt_l2 < cnt_l)
+			cnt_l = cnt_l2;
+		    }
+		}
+	      else
+		count_trailing_zeros (cnt_l, p.frac[i]);
+
+	      /* Now shift the numbers to their optimal position.  */
+	      if (i == 0 && BITS_PER_MP_LIMB - cnt_h > cnt_l)
+		{
+		  /* We cannot save any memory.	 So just roll both numbers
+		     so that the scaling factor has its highest bit set.  */
+
+		  (void) __mpn_lshift (p.scale, p.scale, p.scalesize, cnt_h);
+		  cy = __mpn_lshift (p.frac, p.frac, p.fracsize, cnt_h);
+		  if (cy != 0)
+		    p.frac[p.fracsize++] = cy;
+		}
+	      else if (BITS_PER_MP_LIMB - cnt_h <= cnt_l)
+		{
+		  /* We can save memory by removing the trailing zero limbs
+		     and by packing the non-zero limbs which gain another
+		     free one. */
+
+		  (void) __mpn_rshift (p.scale, p.scale + i, p.scalesize - i,
+				       BITS_PER_MP_LIMB - cnt_h);
+		  p.scalesize -= i + 1;
+		  (void) __mpn_rshift (p.frac, p.frac + i, p.fracsize - i,
+				       BITS_PER_MP_LIMB - cnt_h);
+		  p.fracsize -= p.frac[p.fracsize - i - 1] == 0 ? i + 1 : i;
+		}
+	      else
+		{
+		  /* We can only save the memory of the limbs which are zero.
+		     The non-zero parts occupy the same number of limbs.  */
+
+		  (void) __mpn_rshift (p.scale, p.scale + (i - 1),
+				       p.scalesize - (i - 1),
+				       BITS_PER_MP_LIMB - cnt_h);
+		  p.scalesize -= i;
+		  (void) __mpn_rshift (p.frac, p.frac + (i - 1),
+				       p.fracsize - (i - 1),
+				       BITS_PER_MP_LIMB - cnt_h);
+		  p.fracsize -=
+		    p.frac[p.fracsize - (i - 1) - 1] == 0 ? i : i - 1;
+		}
+	    }
+	}
+    }
+  else if (p.exponent < 0)
+    {
+      /* |FP| < 1.0.  */
+      int exp10 = 0;
+      int explog;
+#if __HAVE_DISTINCT_FLOAT128
+      if (info->is_binary128)
+	explog = FLT128_MAX_10_EXP_LOG;
+      else
+	explog = LDBL_MAX_10_EXP_LOG;
+#else
+      explog = LDBL_MAX_10_EXP_LOG;
+#endif
+      const struct mp_power *powers = &_fpioconst_pow10[explog + 1];
+
+      /* Now shift the input value to its right place.	*/
+      cy = __mpn_lshift (p.frac, fp_input, p.fracsize, to_shift);
+      p.frac[p.fracsize++] = cy;
+      assert (cy == 1 || (p.frac[p.fracsize - 2] == 0 && p.frac[0] == 0));
+
+      p.expsign = 1;
+      p.exponent = -p.exponent;
+
+      assert (powers != &_fpioconst_pow10[0]);
+      do
+	{
+	  --powers;
+
+	  if (p.exponent >= powers->m_expo)
+	    {
+	      int i, incr, cnt_h, cnt_l;
+	      mp_limb_t topval[2];
+
+	      /* The __mpn_mul function expects the first argument to be
+		 bigger than the second.  */
+	      if (p.fracsize < powers->arraysize - _FPIO_CONST_OFFSET)
+		cy = __mpn_mul (p.tmp, &__tens[powers->arrayoff
+					    + _FPIO_CONST_OFFSET],
+				powers->arraysize - _FPIO_CONST_OFFSET,
+				p.frac, p.fracsize);
+	      else
+		cy = __mpn_mul (p.tmp, p.frac, p.fracsize,
+				&__tens[powers->arrayoff + _FPIO_CONST_OFFSET],
+				powers->arraysize - _FPIO_CONST_OFFSET);
+	      p.tmpsize = p.fracsize + powers->arraysize - _FPIO_CONST_OFFSET;
+	      if (cy == 0)
+		--p.tmpsize;
+
+	      count_leading_zeros (cnt_h, p.tmp[p.tmpsize - 1]);
+	      incr = (p.tmpsize - p.fracsize) * BITS_PER_MP_LIMB
+		     + BITS_PER_MP_LIMB - 1 - cnt_h;
+
+	      assert (incr <= powers->p_expo);
+
+	      /* If we increased the p.exponent by exactly 3 we have to test
+		 for overflow.	This is done by comparing with 10 shifted
+		 to the right position.	 */
+	      if (incr == p.exponent + 3)
+		{
+		  if (cnt_h <= BITS_PER_MP_LIMB - 4)
+		    {
+		      topval[0] = 0;
+		      topval[1]
+			= ((mp_limb_t) 10) << (BITS_PER_MP_LIMB - 4 - cnt_h);
+		    }
+		  else
+		    {
+		      topval[0] = ((mp_limb_t) 10) << (BITS_PER_MP_LIMB - 4);
+		      topval[1] = 0;
+		      (void) __mpn_lshift (topval, topval, 2,
+					   BITS_PER_MP_LIMB - cnt_h);
+		    }
+		}
+
+	      /* We have to be careful when multiplying the last factor.
+		 If the result is greater than 1.0 be have to test it
+		 against 10.0.  If it is greater or equal to 10.0 the
+		 multiplication was not valid.  This is because we cannot
+		 determine the number of bits in the result in advance.  */
+	      if (incr < p.exponent + 3
+		  || (incr == p.exponent + 3 &&
+		      (p.tmp[p.tmpsize - 1] < topval[1]
+		       || (p.tmp[p.tmpsize - 1] == topval[1]
+			   && p.tmp[p.tmpsize - 2] < topval[0]))))
+		{
+		  /* The factor is right.  Adapt binary and decimal
+		     exponents.	 */
+		  p.exponent -= incr;
+		  exp10 |= 1 << explog;
+
+		  /* If this factor yields a number greater or equal to
+		     1.0, we must not shift the non-fractional digits down. */
+		  if (p.exponent < 0)
+		    cnt_h += -p.exponent;
+
+		  /* Now we optimize the number representation.	 */
+		  for (i = 0; p.tmp[i] == 0; ++i);
+		  if (cnt_h == BITS_PER_MP_LIMB - 1)
+		    {
+		      MPN_COPY (p.frac, p.tmp + i, p.tmpsize - i);
+		      p.fracsize = p.tmpsize - i;
+		    }
+		  else
+		    {
+		      count_trailing_zeros (cnt_l, p.tmp[i]);
+
+		      /* Now shift the numbers to their optimal position.  */
+		      if (i == 0 && BITS_PER_MP_LIMB - 1 - cnt_h > cnt_l)
+			{
+			  /* We cannot save any memory.	 Just roll the
+			     number so that the leading digit is in a
+			     separate limb.  */
+
+			  cy = __mpn_lshift (p.frac, p.tmp, p.tmpsize,
+			    cnt_h + 1);
+			  p.fracsize = p.tmpsize + 1;
+			  p.frac[p.fracsize - 1] = cy;
+			}
+		      else if (BITS_PER_MP_LIMB - 1 - cnt_h <= cnt_l)
+			{
+			  (void) __mpn_rshift (p.frac, p.tmp + i, p.tmpsize - i,
+					       BITS_PER_MP_LIMB - 1 - cnt_h);
+			  p.fracsize = p.tmpsize - i;
+			}
+		      else
+			{
+			  /* We can only save the memory of the limbs which
+			     are zero.	The non-zero parts occupy the same
+			     number of limbs.  */
+
+			  (void) __mpn_rshift (p.frac, p.tmp + (i - 1),
+					       p.tmpsize - (i - 1),
+					       BITS_PER_MP_LIMB - 1 - cnt_h);
+			  p.fracsize = p.tmpsize - (i - 1);
+			}
+		    }
+		}
+	    }
+	  --explog;
+	}
+      while (powers != &_fpioconst_pow10[1] && p.exponent > 0);
+      /* All factors but 10^-1 are tested now.	*/
+      if (p.exponent > 0)
+	{
+	  int cnt_l;
+
+	  cy = __mpn_mul_1 (p.tmp, p.frac, p.fracsize, 10);
+	  p.tmpsize = p.fracsize;
+	  assert (cy == 0 || p.tmp[p.tmpsize - 1] < 20);
+
+	  count_trailing_zeros (cnt_l, p.tmp[0]);
+	  if (cnt_l < MIN (4, p.exponent))
+	    {
+	      cy = __mpn_lshift (p.frac, p.tmp, p.tmpsize,
+				 BITS_PER_MP_LIMB - MIN (4, p.exponent));
+	      if (cy != 0)
+		p.frac[p.tmpsize++] = cy;
+	    }
+	  else
+	    (void) __mpn_rshift (p.frac, p.tmp, p.tmpsize, MIN (4, p.exponent));
+	  p.fracsize = p.tmpsize;
+	  exp10 |= 1;
+	  assert (p.frac[p.fracsize - 1] < 10);
+	}
+      p.exponent = exp10;
+    }
+  else
+    {
+      /* This is a special case.  We don't need a factor because the
+	 numbers are in the range of 1.0 <= |fp| < 8.0.  We simply
+	 shift it to the right place and divide it by 1.0 to get the
+	 leading digit.	 (Of course this division is not really made.)	*/
+      assert (0 <= p.exponent && p.exponent < 3 &&
+	      p.exponent + to_shift < BITS_PER_MP_LIMB);
+
+      /* Now shift the input value to its right place.	*/
+      cy = __mpn_lshift (p.frac, fp_input, p.fracsize, (p.exponent + to_shift));
+      p.frac[p.fracsize++] = cy;
+      p.exponent = 0;
+    }
+
+  {
+    int width = info->width;
+    wchar_t *wstartp, *wcp;
+    size_t chars_needed;
+    int expscale;
+    int intdig_max, intdig_no = 0;
+    int fracdig_min;
+    int fracdig_max;
+    int dig_max;
+    int significant;
+    int ngroups = 0;
+    char spec = _tolower (info->spec);
+
+    if (spec == 'e')
+      {
+	p.type = info->spec;
+	intdig_max = 1;
+	fracdig_min = fracdig_max = info->prec < 0 ? 6 : info->prec;
+	chars_needed = 1 + 1 + (size_t) fracdig_max + 1 + 1 + 4;
+	/*	       d   .	 ddd	     e	 +-  ddd  */
+	dig_max = INT_MAX;		/* Unlimited.  */
+	significant = 1;		/* Does not matter here.  */
+      }
+    else if (spec == 'f')
+      {
+	p.type = 'f';
+	fracdig_min = fracdig_max = info->prec < 0 ? 6 : info->prec;
+	dig_max = INT_MAX;		/* Unlimited.  */
+	significant = 1;		/* Does not matter here.  */
+	if (p.expsign == 0)
+	  {
+	    intdig_max = p.exponent + 1;
+	    /* This can be really big!	*/  /* XXX Maybe malloc if too big? */
+	    chars_needed = (size_t) p.exponent + 1 + 1 + (size_t) fracdig_max;
+	  }
+	else
+	  {
+	    intdig_max = 1;
+	    chars_needed = 1 + 1 + (size_t) fracdig_max;
+	  }
+      }
+    else
+      {
+	dig_max = info->prec < 0 ? 6 : (info->prec == 0 ? 1 : info->prec);
+	if ((p.expsign == 0 && p.exponent >= dig_max)
+	    || (p.expsign != 0 && p.exponent > 4))
+	  {
+	    if ('g' - 'G' == 'e' - 'E')
+	      p.type = 'E' + (info->spec - 'G');
+	    else
+	      p.type = isupper (info->spec) ? 'E' : 'e';
+	    fracdig_max = dig_max - 1;
+	    intdig_max = 1;
+	    chars_needed = 1 + 1 + (size_t) fracdig_max + 1 + 1 + 4;
+	  }
+	else
+	  {
+	    p.type = 'f';
+	    intdig_max = p.expsign == 0 ? p.exponent + 1 : 0;
+	    fracdig_max = dig_max - intdig_max;
+	    /* We need space for the significant digits and perhaps
+	       for leading zeros when < 1.0.  The number of leading
+	       zeros can be as many as would be required for
+	       exponential notation with a negative two-digit
+	       p.exponent, which is 4.  */
+	    chars_needed = (size_t) dig_max + 1 + 4;
+	  }
+	fracdig_min = info->alt ? fracdig_max : 0;
+	significant = 0;		/* We count significant digits.	 */
+      }
+
+    if (grouping)
+      {
+	/* Guess the number of groups we will make, and thus how
+	   many spaces we need for separator characters.  */
+	ngroups = __guess_grouping (intdig_max, grouping);
+	/* Allocate one more character in case rounding increases the
+	   number of groups.  */
+	chars_needed += ngroups + 1;
+      }
+
+    /* Allocate buffer for output.  We need two more because while rounding
+       it is possible that we need two more characters in front of all the
+       other output.  If the amount of memory we have to allocate is too
+       large use `malloc' instead of `alloca'.  */
+    if (__builtin_expect (chars_needed >= (size_t) -1 / sizeof (wchar_t) - 2
+			  || chars_needed < fracdig_max, 0))
+      {
+	/* Some overflow occurred.  */
+	__set_errno (ERANGE);
+	return -1;
+      }
+    size_t wbuffer_to_alloc = (2 + chars_needed) * sizeof (wchar_t);
+    buffer_malloced = ! __libc_use_alloca (wbuffer_to_alloc);
+    if (__builtin_expect (buffer_malloced, 0))
+      {
+	wbuffer = (wchar_t *) malloc (wbuffer_to_alloc);
+	if (wbuffer == NULL)
+	  /* Signal an error to the caller.  */
+	  return -1;
+      }
+    else
+      wbuffer = (wchar_t *) alloca (wbuffer_to_alloc);
+    wcp = wstartp = wbuffer + 2;	/* Let room for rounding.  */
+
+    /* Do the real work: put digits in allocated buffer.  */
+    if (p.expsign == 0 || p.type != 'f')
+      {
+	assert (p.expsign == 0 || intdig_max == 1);
+	while (intdig_no < intdig_max)
+	  {
+	    ++intdig_no;
+	    *wcp++ = hack_digit (&p);
+	  }
+	significant = 1;
+	if (info->alt
+	    || fracdig_min > 0
+	    || (fracdig_max > 0 && (p.fracsize > 1 || p.frac[0] != 0)))
+	  *wcp++ = decimalwc;
+      }
+    else
+      {
+	/* |fp| < 1.0 and the selected p.type is 'f', so put "0."
+	   in the buffer.  */
+	*wcp++ = L'0';
+	--p.exponent;
+	*wcp++ = decimalwc;
+      }
+
+    /* Generate the needed number of fractional digits.	 */
+    int fracdig_no = 0;
+    int added_zeros = 0;
+    while (fracdig_no < fracdig_min + added_zeros
+	   || (fracdig_no < fracdig_max && (p.fracsize > 1 || p.frac[0] != 0)))
+      {
+	++fracdig_no;
+	*wcp = hack_digit (&p);
+	if (*wcp++ != L'0')
+	  significant = 1;
+	else if (significant == 0)
+	  {
+	    ++fracdig_max;
+	    if (fracdig_min > 0)
+	      ++added_zeros;
+	  }
+      }
+
+    /* Do rounding.  */
+    wchar_t last_digit = wcp[-1] != decimalwc ? wcp[-1] : wcp[-2];
+    wchar_t next_digit = hack_digit (&p);
+    bool more_bits;
+    if (next_digit != L'0' && next_digit != L'5')
+      more_bits = true;
+    else if (p.fracsize == 1 && p.frac[0] == 0)
+      /* Rest of the number is zero.  */
+      more_bits = false;
+    else if (p.scalesize == 0)
+      {
+	/* Here we have to see whether all limbs are zero since no
+	   normalization happened.  */
+	size_t lcnt = p.fracsize;
+	while (lcnt >= 1 && p.frac[lcnt - 1] == 0)
+	  --lcnt;
+	more_bits = lcnt > 0;
+      }
+    else
+      more_bits = true;
+    int rounding_mode = get_rounding_mode ();
+    if (round_away (is_neg, (last_digit - L'0') & 1, next_digit >= L'5',
+		    more_bits, rounding_mode))
+      {
+	wchar_t *wtp = wcp;
+
+	if (fracdig_no > 0)
+	  {
+	    /* Process fractional digits.  Terminate if not rounded or
+	       radix character is reached.  */
+	    int removed = 0;
+	    while (*--wtp != decimalwc && *wtp == L'9')
+	      {
+		*wtp = L'0';
+		++removed;
+	      }
+	    if (removed == fracdig_min && added_zeros > 0)
+	      --added_zeros;
+	    if (*wtp != decimalwc)
+	      /* Round up.  */
+	      (*wtp)++;
+	    else if (__builtin_expect (spec == 'g' && p.type == 'f' && info->alt
+				       && wtp == wstartp + 1
+				       && wstartp[0] == L'0',
+				       0))
+	      /* This is a special case: the rounded number is 1.0,
+		 the format is 'g' or 'G', and the alternative format
+		 is selected.  This means the result must be "1.".  */
+	      --added_zeros;
+	  }
+
+	if (fracdig_no == 0 || *wtp == decimalwc)
+	  {
+	    /* Round the integer digits.  */
+	    if (*(wtp - 1) == decimalwc)
+	      --wtp;
+
+	    while (--wtp >= wstartp && *wtp == L'9')
+	      *wtp = L'0';
+
+	    if (wtp >= wstartp)
+	      /* Round up.  */
+	      (*wtp)++;
+	    else
+	      /* It is more critical.  All digits were 9's.  */
+	      {
+		if (p.type != 'f')
+		  {
+		    *wstartp = '1';
+		    p.exponent += p.expsign == 0 ? 1 : -1;
+
+		    /* The above p.exponent adjustment could lead to 1.0e-00,
+		       e.g. for 0.999999999.  Make sure p.exponent 0 always
+		       uses + sign.  */
+		    if (p.exponent == 0)
+		      p.expsign = 0;
+		  }
+		else if (intdig_no == dig_max)
+		  {
+		    /* This is the case where for p.type %g the number fits
+		       really in the range for %f output but after rounding
+		       the number of digits is too big.	 */
+		    *--wstartp = decimalwc;
+		    *--wstartp = L'1';
+
+		    if (info->alt || fracdig_no > 0)
+		      {
+			/* Overwrite the old radix character.  */
+			wstartp[intdig_no + 2] = L'0';
+			++fracdig_no;
+		      }
+
+		    fracdig_no += intdig_no;
+		    intdig_no = 1;
+		    fracdig_max = intdig_max - intdig_no;
+		    ++p.exponent;
+		    /* Now we must print the p.exponent.	*/
+		    p.type = isupper (info->spec) ? 'E' : 'e';
+		  }
+		else
+		  {
+		    /* We can simply add another another digit before the
+		       radix.  */
+		    *--wstartp = L'1';
+		    ++intdig_no;
+		  }
+
+		/* While rounding the number of digits can change.
+		   If the number now exceeds the limits remove some
+		   fractional digits.  */
+		if (intdig_no + fracdig_no > dig_max)
+		  {
+		    wcp -= intdig_no + fracdig_no - dig_max;
+		    fracdig_no -= intdig_no + fracdig_no - dig_max;
+		  }
+	      }
+	  }
+      }
+
+    /* Now remove unnecessary '0' at the end of the string.  */
+    while (fracdig_no > fracdig_min + added_zeros && *(wcp - 1) == L'0')
+      {
+	--wcp;
+	--fracdig_no;
+      }
+    /* If we eliminate all fractional digits we perhaps also can remove
+       the radix character.  */
+    if (fracdig_no == 0 && !info->alt && *(wcp - 1) == decimalwc)
+      --wcp;
+
+    if (grouping)
+      {
+	/* Rounding might have changed the number of groups.  We allocated
+	   enough memory but we need here the correct number of groups.  */
+	if (intdig_no != intdig_max)
+	  ngroups = __guess_grouping (intdig_no, grouping);
+
+	/* Add in separator characters, overwriting the same buffer.  */
+	wcp = group_number (wstartp, wcp, intdig_no, grouping, thousands_sepwc,
+			    ngroups);
+      }
+
+    /* Write the p.exponent if it is needed.  */
+    if (p.type != 'f')
+      {
+	if (__glibc_unlikely (p.expsign != 0 && p.exponent == 4 && spec == 'g'))
+	  {
+	    /* This is another special case.  The p.exponent of the number is
+	       really smaller than -4, which requires the 'e'/'E' format.
+	       But after rounding the number has an p.exponent of -4.  */
+	    assert (wcp >= wstartp + 1);
+	    assert (wstartp[0] == L'1');
+	    __wmemcpy (wstartp, L"0.0001", 6);
+	    wstartp[1] = decimalwc;
+	    if (wcp >= wstartp + 2)
+	      {
+		__wmemset (wstartp + 6, L'0', wcp - (wstartp + 2));
+		wcp += 4;
+	      }
+	    else
+	      wcp += 5;
+	  }
+	else
+	  {
+	    *wcp++ = (wchar_t) p.type;
+	    *wcp++ = p.expsign ? L'-' : L'+';
+
+	    /* Find the magnitude of the p.exponent.	*/
+	    expscale = 10;
+	    while (expscale <= p.exponent)
+	      expscale *= 10;
+
+	    if (p.exponent < 10)
+	      /* Exponent always has at least two digits.  */
+	      *wcp++ = L'0';
+	    else
+	      do
+		{
+		  expscale /= 10;
+		  *wcp++ = L'0' + (p.exponent / expscale);
+		  p.exponent %= expscale;
+		}
+	      while (expscale > 10);
+	    *wcp++ = L'0' + p.exponent;
+	  }
+      }
+
+    /* Compute number of characters which must be filled with the padding
+       character.  */
+    if (is_neg || info->showsign || info->space)
+      --width;
+    width -= wcp - wstartp;
+
+    if (!info->left && info->pad != '0' && width > 0)
+      PADN (info->pad, width);
+
+    if (is_neg)
+      outchar ('-');
+    else if (info->showsign)
+      outchar ('+');
+    else if (info->space)
+      outchar (' ');
+
+    if (!info->left && info->pad == '0' && width > 0)
+      PADN ('0', width);
+
+    {
+      char *buffer = NULL;
+      char *buffer_end = NULL;
+      char *cp = NULL;
+      char *tmpptr;
+
+      if (! wide)
+	{
+	  /* Create the single byte string.  */
+	  size_t decimal_len;
+	  size_t thousands_sep_len;
+	  wchar_t *copywc;
+	  size_t factor;
+	  if (info->i18n)
+	    factor = _nl_lookup_word (loc, LC_CTYPE, _NL_CTYPE_MB_CUR_MAX);
+	  else
+	    factor = 1;
+
+	  decimal_len = strlen (decimal);
+
+	  if (thousands_sep == NULL)
+	    thousands_sep_len = 0;
+	  else
+	    thousands_sep_len = strlen (thousands_sep);
+
+	  size_t nbuffer = (2 + chars_needed * factor + decimal_len
+			    + ngroups * thousands_sep_len);
+	  if (__glibc_unlikely (buffer_malloced))
+	    {
+	      buffer = (char *) malloc (nbuffer);
+	      if (buffer == NULL)
+		{
+		  /* Signal an error to the caller.  */
+		  free (wbuffer);
+		  return -1;
+		}
+	    }
+	  else
+	    buffer = (char *) alloca (nbuffer);
+	  buffer_end = buffer + nbuffer;
+
+	  /* Now copy the wide character string.  Since the character
+	     (except for the decimal point and thousands separator) must
+	     be coming from the ASCII range we can esily convert the
+	     string without mapping tables.  */
+	  for (cp = buffer, copywc = wstartp; copywc < wcp; ++copywc)
+	    if (*copywc == decimalwc)
+	      cp = (char *) __mempcpy (cp, decimal, decimal_len);
+	    else if (*copywc == thousands_sepwc)
+	      cp = (char *) __mempcpy (cp, thousands_sep, thousands_sep_len);
+	    else
+	      *cp++ = (char) *copywc;
+	}
+
+      tmpptr = buffer;
+      if (__glibc_unlikely (info->i18n))
+	{
+#ifdef COMPILE_WPRINTF
+	  wstartp = _i18n_number_rewrite (wstartp, wcp,
+					  wbuffer + wbuffer_to_alloc);
+	  wcp = wbuffer + wbuffer_to_alloc;
+	  assert ((uintptr_t) wbuffer <= (uintptr_t) wstartp);
+	  assert ((uintptr_t) wstartp
+		  < (uintptr_t) wbuffer + wbuffer_to_alloc);
+#else
+	  tmpptr = _i18n_number_rewrite (tmpptr, cp, buffer_end);
+	  cp = buffer_end;
+	  assert ((uintptr_t) buffer <= (uintptr_t) tmpptr);
+	  assert ((uintptr_t) tmpptr < (uintptr_t) buffer_end);
+#endif
+	}
+
+      PRINT (tmpptr, wstartp, wide ? wcp - wstartp : cp - tmpptr);
+
+      /* Free the memory if necessary.  */
+      if (__glibc_unlikely (buffer_malloced))
+	{
+	  free (buffer);
+	  free (wbuffer);
+	}
+    }
+
+    if (info->left && width > 0)
+      PADN (info->pad, width);
+  }
+  return done;
+}
+libc_hidden_def (__printf_fp_l)
+
+int
+___printf_fp (FILE *fp, const struct printf_info *info,
+	      const void *const *args)
+{
+  return __printf_fp_l (fp, _NL_CURRENT_LOCALE, info, args);
+}
+ldbl_hidden_def (___printf_fp, __printf_fp)
+ldbl_strong_alias (___printf_fp, __printf_fp)
+
+
+/* Return the number of extra grouping characters that will be inserted
+   into a number with INTDIG_MAX integer digits.  */
+
+unsigned int
+__guess_grouping (unsigned int intdig_max, const char *grouping)
+{
+  unsigned int groups;
+
+  /* We treat all negative values like CHAR_MAX.  */
+
+  if (*grouping == CHAR_MAX || *grouping <= 0)
+    /* No grouping should be done.  */
+    return 0;
+
+  groups = 0;
+  while (intdig_max > (unsigned int) *grouping)
+    {
+      ++groups;
+      intdig_max -= *grouping++;
+
+      if (*grouping == CHAR_MAX
+#if CHAR_MIN < 0
+	  || *grouping < 0
+#endif
+	  )
+	/* No more grouping should be done.  */
+	break;
+      else if (*grouping == 0)
+	{
+	  /* Same grouping repeats.  */
+	  groups += (intdig_max - 1) / grouping[-1];
+	  break;
+	}
+    }
+
+  return groups;
+}
+
+/* Group the INTDIG_NO integer digits of the number in [BUF,BUFEND).
+   There is guaranteed enough space past BUFEND to extend it.
+   Return the new end of buffer.  */
+
+static wchar_t *
+internal_function
+group_number (wchar_t *buf, wchar_t *bufend, unsigned int intdig_no,
+	      const char *grouping, wchar_t thousands_sep, int ngroups)
+{
+  wchar_t *p;
+
+  if (ngroups == 0)
+    return bufend;
+
+  /* Move the fractional part down.  */
+  __wmemmove (buf + intdig_no + ngroups, buf + intdig_no,
+	      bufend - (buf + intdig_no));
+
+  p = buf + intdig_no + ngroups - 1;
+  do
+    {
+      unsigned int len = *grouping++;
+      do
+	*p-- = buf[--intdig_no];
+      while (--len > 0);
+      *p-- = thousands_sep;
+
+      if (*grouping == CHAR_MAX
+#if CHAR_MIN < 0
+	  || *grouping < 0
+#endif
+	  )
+	/* No more grouping should be done.  */
+	break;
+      else if (*grouping == 0)
+	/* Same grouping repeats.  */
+	--grouping;
+    } while (intdig_no > (unsigned int) *grouping);
+
+  /* Copy the remaining ungrouped digits.  */
+  do
+    *p-- = buf[--intdig_no];
+  while (p > buf);
+
+  return bufend + ngroups;
+}
diff --git a/REORG.TODO/stdio-common/printf_fphex.c b/REORG.TODO/stdio-common/printf_fphex.c
new file mode 100644
index 0000000000..004d2aa716
--- /dev/null
+++ b/REORG.TODO/stdio-common/printf_fphex.c
@@ -0,0 +1,487 @@
+/* Print floating point number in hexadecimal notation according to ISO C99.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <ctype.h>
+#include <ieee754.h>
+#include <math.h>
+#include <printf.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <wchar.h>
+#include <_itoa.h>
+#include <_itowa.h>
+#include <locale/localeinfo.h>
+#include <stdbool.h>
+#include <rounding-mode.h>
+
+#if __HAVE_DISTINCT_FLOAT128
+# include "ieee754_float128.h"
+# include <ldbl-128/printf_fphex_macros.h>
+# define PRINT_FPHEX_FLOAT128 \
+   PRINT_FPHEX (_Float128, fpnum.flt128, ieee854_float128, \
+		IEEE854_FLOAT128_BIAS)
+#endif
+
+/* #define NDEBUG 1*/		/* Undefine this for debugging assertions.  */
+#include <assert.h>
+
+/* This defines make it possible to use the same code for GNU C library and
+   the GNU I/O library.	 */
+#include <libioP.h>
+#define PUT(f, s, n) _IO_sputn (f, s, n)
+#define PAD(f, c, n) (wide ? _IO_wpadn (f, c, n) : _IO_padn (f, c, n))
+/* We use this file GNU C library and GNU I/O library.	So make
+   names equal.	 */
+#undef putc
+#define putc(c, f) (wide \
+		     ? (int)_IO_putwc_unlocked (c, f) : _IO_putc_unlocked (c, f))
+#define size_t     _IO_size_t
+#define FILE	     _IO_FILE
+
+/* Macros for doing the actual output.  */
+
+#define outchar(ch)							      \
+  do									      \
+    {									      \
+      const int outc = (ch);						      \
+      if (putc (outc, fp) == EOF)					      \
+	return -1;							      \
+      ++done;								      \
+    } while (0)
+
+#define PRINT(ptr, wptr, len)						      \
+  do									      \
+    {									      \
+      size_t outlen = (len);						      \
+      if (wide)								      \
+	while (outlen-- > 0)						      \
+	  outchar (*wptr++);						      \
+      else								      \
+	while (outlen-- > 0)						      \
+	  outchar (*ptr++);						      \
+    } while (0)
+
+#define PADN(ch, len)							      \
+  do									      \
+    {									      \
+      if (PAD (fp, ch, len) != len)					      \
+	return -1;							      \
+      done += len;							      \
+    }									      \
+  while (0)
+
+#ifndef MIN
+# define MIN(a,b) ((a)<(b)?(a):(b))
+#endif
+
+
+int
+__printf_fphex (FILE *fp,
+		const struct printf_info *info,
+		const void *const *args)
+{
+  /* The floating-point value to output.  */
+  union
+    {
+      union ieee754_double dbl;
+      long double ldbl;
+#if __HAVE_DISTINCT_FLOAT128
+      _Float128 flt128;
+#endif
+    }
+  fpnum;
+
+  /* Locale-dependent representation of decimal point.	*/
+  const char *decimal;
+  wchar_t decimalwc;
+
+  /* "NaN" or "Inf" for the special cases.  */
+  const char *special = NULL;
+  const wchar_t *wspecial = NULL;
+
+  /* Buffer for the generated number string for the mantissa.  The
+     maximal size for the mantissa is 128 bits.  */
+  char numbuf[32];
+  char *numstr;
+  char *numend;
+  wchar_t wnumbuf[32];
+  wchar_t *wnumstr;
+  wchar_t *wnumend;
+  int negative;
+
+  /* The maximal exponent of two in decimal notation has 5 digits.  */
+  char expbuf[5];
+  char *expstr;
+  wchar_t wexpbuf[5];
+  wchar_t *wexpstr;
+  int expnegative;
+  int exponent;
+
+  /* Non-zero is mantissa is zero.  */
+  int zero_mantissa;
+
+  /* The leading digit before the decimal point.  */
+  char leading;
+
+  /* Precision.  */
+  int precision = info->prec;
+
+  /* Width.  */
+  int width = info->width;
+
+  /* Number of characters written.  */
+  int done = 0;
+
+  /* Nonzero if this is output on a wide character stream.  */
+  int wide = info->wide;
+
+
+  /* Figure out the decimal point character.  */
+  if (info->extra == 0)
+    {
+      decimal = _NL_CURRENT (LC_NUMERIC, DECIMAL_POINT);
+      decimalwc = _NL_CURRENT_WORD (LC_NUMERIC, _NL_NUMERIC_DECIMAL_POINT_WC);
+    }
+  else
+    {
+      decimal = _NL_CURRENT (LC_MONETARY, MON_DECIMAL_POINT);
+      decimalwc = _NL_CURRENT_WORD (LC_MONETARY,
+				    _NL_MONETARY_DECIMAL_POINT_WC);
+    }
+  /* The decimal point character must never be zero.  */
+  assert (*decimal != '\0' && decimalwc != L'\0');
+
+#define PRINTF_FPHEX_FETCH(FLOAT, VAR)					\
+  {									\
+    (VAR) = *(const FLOAT *) args[0];					\
+									\
+    /* Check for special values: not a number or infinity.  */		\
+    if (isnan (VAR))							\
+      {									\
+	if (isupper (info->spec))					\
+	  {								\
+	    special = "NAN";						\
+	    wspecial = L"NAN";						\
+	  }								\
+	else								\
+	  {								\
+	    special = "nan";						\
+	    wspecial = L"nan";						\
+	  }								\
+      }									\
+    else								\
+      {									\
+	if (isinf (VAR))						\
+	  {								\
+	    if (isupper (info->spec))					\
+	      {								\
+		special = "INF";					\
+		wspecial = L"INF";					\
+	      }								\
+	    else							\
+	      {								\
+		special = "inf";					\
+		wspecial = L"inf";					\
+	      }								\
+	  }								\
+      }									\
+    negative = signbit (VAR);						\
+  }
+
+  /* Fetch the argument value.	*/
+#if __HAVE_DISTINCT_FLOAT128
+  if (info->is_binary128)
+    PRINTF_FPHEX_FETCH (_Float128, fpnum.flt128)
+  else
+#endif
+#ifndef __NO_LONG_DOUBLE_MATH
+  if (info->is_long_double && sizeof (long double) > sizeof (double))
+    PRINTF_FPHEX_FETCH (long double, fpnum.ldbl)
+  else
+#endif
+    PRINTF_FPHEX_FETCH (double, fpnum.dbl.d)
+
+#undef PRINTF_FPHEX_FETCH
+
+  if (special)
+    {
+      int width = info->width;
+
+      if (negative || info->showsign || info->space)
+	--width;
+      width -= 3;
+
+      if (!info->left && width > 0)
+	PADN (' ', width);
+
+      if (negative)
+	outchar ('-');
+      else if (info->showsign)
+	outchar ('+');
+      else if (info->space)
+	outchar (' ');
+
+      PRINT (special, wspecial, 3);
+
+      if (info->left && width > 0)
+	PADN (' ', width);
+
+      return done;
+    }
+
+#if __HAVE_DISTINCT_FLOAT128
+  if (info->is_binary128)
+    PRINT_FPHEX_FLOAT128;
+  else
+#endif
+  if (info->is_long_double == 0 || sizeof (double) == sizeof (long double))
+    {
+      /* We have 52 bits of mantissa plus one implicit digit.  Since
+	 52 bits are representable without rest using hexadecimal
+	 digits we use only the implicit digits for the number before
+	 the decimal point.  */
+      unsigned long long int num;
+
+      num = (((unsigned long long int) fpnum.dbl.ieee.mantissa0) << 32
+	     | fpnum.dbl.ieee.mantissa1);
+
+      zero_mantissa = num == 0;
+
+      if (sizeof (unsigned long int) > 6)
+	{
+	  wnumstr = _itowa_word (num, wnumbuf + (sizeof wnumbuf) / sizeof (wchar_t), 16,
+				 info->spec == 'A');
+	  numstr = _itoa_word (num, numbuf + sizeof numbuf, 16,
+			       info->spec == 'A');
+	}
+      else
+	{
+	  wnumstr = _itowa (num, wnumbuf + sizeof wnumbuf / sizeof (wchar_t), 16,
+			    info->spec == 'A');
+	  numstr = _itoa (num, numbuf + sizeof numbuf, 16,
+			  info->spec == 'A');
+	}
+
+      /* Fill with zeroes.  */
+      while (wnumstr > wnumbuf + (sizeof wnumbuf - 52) / sizeof (wchar_t))
+	{
+	  *--wnumstr = L'0';
+	  *--numstr = '0';
+	}
+
+      leading = fpnum.dbl.ieee.exponent == 0 ? '0' : '1';
+
+      exponent = fpnum.dbl.ieee.exponent;
+
+      if (exponent == 0)
+	{
+	  if (zero_mantissa)
+	    expnegative = 0;
+	  else
+	    {
+	      /* This is a denormalized number.  */
+	      expnegative = 1;
+	      exponent = IEEE754_DOUBLE_BIAS - 1;
+	    }
+	}
+      else if (exponent >= IEEE754_DOUBLE_BIAS)
+	{
+	  expnegative = 0;
+	  exponent -= IEEE754_DOUBLE_BIAS;
+	}
+      else
+	{
+	  expnegative = 1;
+	  exponent = -(exponent - IEEE754_DOUBLE_BIAS);
+	}
+    }
+#ifdef PRINT_FPHEX_LONG_DOUBLE
+  else
+    PRINT_FPHEX_LONG_DOUBLE;
+#endif
+
+  /* Look for trailing zeroes.  */
+  if (! zero_mantissa)
+    {
+      wnumend = &wnumbuf[sizeof wnumbuf / sizeof wnumbuf[0]];
+      numend = &numbuf[sizeof numbuf / sizeof numbuf[0]];
+      while (wnumend[-1] == L'0')
+	{
+	  --wnumend;
+	  --numend;
+	}
+
+      bool do_round_away = false;
+
+      if (precision != -1 && precision < numend - numstr)
+	{
+	  char last_digit = precision > 0 ? numstr[precision - 1] : leading;
+	  char next_digit = numstr[precision];
+	  int last_digit_value = (last_digit >= 'A' && last_digit <= 'F'
+				  ? last_digit - 'A' + 10
+				  : (last_digit >= 'a' && last_digit <= 'f'
+				     ? last_digit - 'a' + 10
+				     : last_digit - '0'));
+	  int next_digit_value = (next_digit >= 'A' && next_digit <= 'F'
+				  ? next_digit - 'A' + 10
+				  : (next_digit >= 'a' && next_digit <= 'f'
+				     ? next_digit - 'a' + 10
+				     : next_digit - '0'));
+	  bool more_bits = ((next_digit_value & 7) != 0
+			    || precision + 1 < numend - numstr);
+	  int rounding_mode = get_rounding_mode ();
+	  do_round_away = round_away (negative, last_digit_value & 1,
+				      next_digit_value >= 8, more_bits,
+				      rounding_mode);
+	}
+
+      if (precision == -1)
+	precision = numend - numstr;
+      else if (do_round_away)
+	{
+	  /* Round up.  */
+	  int cnt = precision;
+	  while (--cnt >= 0)
+	    {
+	      char ch = numstr[cnt];
+	      /* We assume that the digits and the letters are ordered
+		 like in ASCII.  This is true for the rest of GNU, too.  */
+	      if (ch == '9')
+		{
+		  wnumstr[cnt] = (wchar_t) info->spec;
+		  numstr[cnt] = info->spec;	/* This is tricky,
+						   think about it!  */
+		  break;
+		}
+	      else if (tolower (ch) < 'f')
+		{
+		  ++numstr[cnt];
+		  ++wnumstr[cnt];
+		  break;
+		}
+	      else
+		{
+		  numstr[cnt] = '0';
+		  wnumstr[cnt] = L'0';
+		}
+	    }
+	  if (cnt < 0)
+	    {
+	      /* The mantissa so far was fff...f  Now increment the
+		 leading digit.  Here it is again possible that we
+		 get an overflow.  */
+	      if (leading == '9')
+		leading = info->spec;
+	      else if (tolower (leading) < 'f')
+		++leading;
+	      else
+		{
+		  leading = '1';
+		  if (expnegative)
+		    {
+		      exponent -= 4;
+		      if (exponent <= 0)
+			{
+			  exponent = -exponent;
+			  expnegative = 0;
+			}
+		    }
+		  else
+		    exponent += 4;
+		}
+	    }
+	}
+    }
+  else
+    {
+      if (precision == -1)
+	precision = 0;
+      numend = numstr;
+      wnumend = wnumstr;
+    }
+
+  /* Now we can compute the exponent string.  */
+  expstr = _itoa_word (exponent, expbuf + sizeof expbuf, 10, 0);
+  wexpstr = _itowa_word (exponent,
+			 wexpbuf + sizeof wexpbuf / sizeof (wchar_t), 10, 0);
+
+  /* Now we have all information to compute the size.  */
+  width -= ((negative || info->showsign || info->space)
+	    /* Sign.  */
+	    + 2    + 1 + 0 + precision + 1 + 1
+	    /* 0x    h   .   hhh         P   ExpoSign.  */
+	    + ((expbuf + sizeof expbuf) - expstr));
+	    /* Exponent.  */
+
+  /* Count the decimal point.
+     A special case when the mantissa or the precision is zero and the `#'
+     is not given.  In this case we must not print the decimal point.  */
+  if (precision > 0 || info->alt)
+    width -= wide ? 1 : strlen (decimal);
+
+  if (!info->left && info->pad != '0' && width > 0)
+    PADN (' ', width);
+
+  if (negative)
+    outchar ('-');
+  else if (info->showsign)
+    outchar ('+');
+  else if (info->space)
+    outchar (' ');
+
+  outchar ('0');
+  if ('X' - 'A' == 'x' - 'a')
+    outchar (info->spec + ('x' - 'a'));
+  else
+    outchar (info->spec == 'A' ? 'X' : 'x');
+
+  if (!info->left && info->pad == '0' && width > 0)
+    PADN ('0', width);
+
+  outchar (leading);
+
+  if (precision > 0 || info->alt)
+    {
+      const wchar_t *wtmp = &decimalwc;
+      PRINT (decimal, wtmp, wide ? 1 : strlen (decimal));
+    }
+
+  if (precision > 0)
+    {
+      ssize_t tofill = precision - (numend - numstr);
+      PRINT (numstr, wnumstr, MIN (numend - numstr, precision));
+      if (tofill > 0)
+	PADN ('0', tofill);
+    }
+
+  if ('P' - 'A' == 'p' - 'a')
+    outchar (info->spec + ('p' - 'a'));
+  else
+    outchar (info->spec == 'A' ? 'P' : 'p');
+
+  outchar (expnegative ? '-' : '+');
+
+  PRINT (expstr, wexpstr, (expbuf + sizeof expbuf) - expstr);
+
+  if (info->left && info->pad != '0' && width > 0)
+    PADN (info->pad, width);
+
+  return done;
+}
diff --git a/REORG.TODO/stdio-common/printf_size.c b/REORG.TODO/stdio-common/printf_size.c
new file mode 100644
index 0000000000..e20b76cf91
--- /dev/null
+++ b/REORG.TODO/stdio-common/printf_size.c
@@ -0,0 +1,236 @@
+/* Print size value using units for orders of magnitude.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+   Based on a proposal by Larry McVoy <lm@sgi.com>.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <ctype.h>
+#include <ieee754.h>
+#include <math.h>
+#include <printf.h>
+#include <libioP.h>
+
+
+/* This defines make it possible to use the same code for GNU C library and
+   the GNU I/O library.	 */
+#define PUT(f, s, n) _IO_sputn (f, s, n)
+#define PAD(f, c, n) (wide ? _IO_wpadn (f, c, n) : _IO_padn (f, c, n))
+/* We use this file GNU C library and GNU I/O library.	So make
+   names equal.	 */
+#undef putc
+#define putc(c, f) (wide \
+		    ? (int)_IO_putwc_unlocked (c, f) : _IO_putc_unlocked (c, f))
+#define size_t	_IO_size_t
+#define FILE	_IO_FILE
+
+/* Macros for doing the actual output.  */
+
+#define outchar(ch)							      \
+  do									      \
+    {									      \
+      const int outc = (ch);						      \
+      if (putc (outc, fp) == EOF)					      \
+	return -1;							      \
+      ++done;								      \
+    } while (0)
+
+#define PRINT(ptr, wptr, len)						      \
+  do									      \
+    {									      \
+      size_t outlen = (len);						      \
+      if (len > 20)							      \
+	{								      \
+	  if (PUT (fp, wide ? (const char *) wptr : ptr, outlen) != outlen)   \
+	    return -1;							      \
+	  ptr += outlen;						      \
+	  done += outlen;						      \
+	}								      \
+      else								      \
+	{								      \
+	  if (wide)							      \
+	    while (outlen-- > 0)					      \
+	      outchar (*wptr++);					      \
+	  else								      \
+	    while (outlen-- > 0)					      \
+	      outchar (*ptr++);						      \
+	}								      \
+    } while (0)
+
+#define PADN(ch, len)							      \
+  do									      \
+    {									      \
+      if (PAD (fp, ch, len) != len)					      \
+	return -1;							      \
+      done += len;							      \
+    }									      \
+  while (0)
+
+/* Prototype for helper functions.  */
+extern int __printf_fp (FILE *fp, const struct printf_info *info,
+			const void *const *args);
+
+
+int
+__printf_size (FILE *fp, const struct printf_info *info,
+	       const void *const *args)
+{
+  /* Units for the both formats.  */
+#define BINARY_UNITS	" kmgtpezy"
+#define DECIMAL_UNITS	" KMGTPEZY"
+  static const char units[2][sizeof (BINARY_UNITS)] =
+  {
+    BINARY_UNITS,	/* For binary format.  */
+    DECIMAL_UNITS	/* For decimal format.  */
+  };
+  const char *tag = units[isupper (info->spec) != 0];
+  int divisor = isupper (info->spec) ? 1000 : 1024;
+
+  /* The floating-point value to output.  */
+  union
+    {
+      union ieee754_double dbl;
+      long double ldbl;
+#if __HAVE_DISTINCT_FLOAT128
+      _Float128 f128;
+#endif
+    }
+  fpnum;
+  const void *ptr = &fpnum;
+
+  int is_neg = 0;
+
+  /* "NaN" or "Inf" for the special cases.  */
+  const char *special = NULL;
+  const wchar_t *wspecial = NULL;
+
+  struct printf_info fp_info;
+  int done = 0;
+  int wide = info->wide;
+
+#define PRINTF_SIZE_FETCH(FLOAT, VAR)					\
+  {									\
+    (VAR) = *(const FLOAT *) args[0];					\
+									\
+    /* Check for special values: not a number or infinity.  */		\
+    if (isnan (VAR))							\
+      {									\
+	special = "nan";						\
+	wspecial = L"nan";						\
+	/* is_neg = 0; Already zero */					\
+      }									\
+    else if (isinf (VAR))						\
+      {									\
+	is_neg = signbit (VAR);						\
+	special = "inf";						\
+	wspecial = L"inf";						\
+      }									\
+    else								\
+      while ((VAR) >= divisor && tag[1] != '\0')			\
+	{								\
+	  (VAR) /= divisor;						\
+	  ++tag;							\
+	}								\
+  }
+
+  /* Fetch the argument value.	*/
+#if __HAVE_DISTINCT_FLOAT128
+  if (info->is_binary128)
+    PRINTF_SIZE_FETCH (_Float128, fpnum.f128)
+  else
+#endif
+#ifndef __NO_LONG_DOUBLE_MATH
+  if (info->is_long_double && sizeof (long double) > sizeof (double))
+    PRINTF_SIZE_FETCH (long double, fpnum.ldbl)
+  else
+#endif
+    PRINTF_SIZE_FETCH (double, fpnum.dbl.d)
+
+#undef PRINTF_SIZE_FETCH
+
+  if (special)
+    {
+      int width = info->prec > info->width ? info->prec : info->width;
+
+      if (is_neg || info->showsign || info->space)
+	--width;
+      width -= 3;
+
+      if (!info->left && width > 0)
+	PADN (' ', width);
+
+      if (is_neg)
+	outchar ('-');
+      else if (info->showsign)
+	outchar ('+');
+      else if (info->space)
+	outchar (' ');
+
+      PRINT (special, wspecial, 3);
+
+      if (info->left && width > 0)
+	PADN (' ', width);
+
+      return done;
+    }
+
+  /* Prepare to print the number.  We want to use `__printf_fp' so we
+     have to prepare a `printf_info' structure.  */
+  fp_info = *info;
+  fp_info.spec = 'f';
+  fp_info.prec = info->prec < 0 ? 3 : info->prec;
+  fp_info.wide = wide;
+
+  if (fp_info.left && fp_info.pad == L' ')
+    {
+      /* We must do the padding ourself since the unit character must
+	 be placed before the padding spaces.  */
+      fp_info.width = 0;
+
+      done = __printf_fp (fp, &fp_info, &ptr);
+      if (done > 0)
+	{
+	  outchar (*tag);
+	  if (info->width > done)
+	    PADN (' ', info->width - done);
+	}
+    }
+  else
+    {
+      /* We can let __printf_fp do all the printing and just add our
+	 unit character afterwards.  */
+      fp_info.width = info->width - 1;
+
+      done = __printf_fp (fp, &fp_info, &ptr);
+      if (done > 0)
+	outchar (*tag);
+    }
+
+  return done;
+}
+ldbl_strong_alias (__printf_size, printf_size);
+
+/* This is the function used by `vfprintf' to determine number and
+   type of the arguments.  */
+int
+printf_size_info (const struct printf_info *info, size_t n, int *argtypes)
+{
+  /* We need only one double or long double argument.  */
+  if (n >= 1)
+    argtypes[0] = PA_DOUBLE | (info->is_long_double ? PA_FLAG_LONG_DOUBLE : 0);
+
+  return 1;
+}
diff --git a/REORG.TODO/stdio-common/psiginfo-data.h b/REORG.TODO/stdio-common/psiginfo-data.h
new file mode 100644
index 0000000000..05bb76c179
--- /dev/null
+++ b/REORG.TODO/stdio-common/psiginfo-data.h
@@ -0,0 +1,50 @@
+#if NOW == SIGILL
+P (ILL_ILLOPC, N_("Illegal opcode"))
+P (ILL_ILLOPN, N_("Illegal operand"))
+P (ILL_ILLADR, N_("Illegal addressing mode"))
+P (ILL_ILLTRP, N_("Illegal trap"))
+P (ILL_PRVOPC, N_("Privileged opcode"))
+P (ILL_PRVREG, N_("Privileged register"))
+P (ILL_COPROC, N_("Coprocessor error"))
+P (ILL_BADSTK, N_("Internal stack error"))
+#endif
+#if NOW == SIGFPE
+P (FPE_INTDIV, N_("Integer divide by zero"))
+P (FPE_INTOVF, N_("Integer overflow"))
+P (FPE_FLTDIV, N_("Floating-point divide by zero"))
+P (FPE_FLTOVF, N_("Floating-point overflow"))
+P (FPE_FLTUND, N_("Floating-point underflow"))
+P (FPE_FLTRES, N_("Floating-poing inexact result"))
+P (FPE_FLTINV, N_("Invalid floating-point operation"))
+P (FPE_FLTSUB, N_("Subscript out of range"))
+#endif
+#if NOW == SIGSEGV
+P (SEGV_MAPERR, N_("Address not mapped to object"))
+P (SEGV_ACCERR, N_("Invalid permissions for mapped object"))
+#endif
+#if NOW == SIGBUS
+P (BUS_ADRALN, N_("Invalid address alignment"))
+P (BUS_ADRERR, N_("Nonexisting physical address"))
+P (BUS_OBJERR, N_("Object-specific hardware error"))
+#endif
+#if NOW == SIGTRAP
+P (TRAP_BRKPT, N_("Process breakpoint"))
+P (TRAP_TRACE, N_("Process trace trap"))
+#endif
+#if NOW == SIGCLD
+P (CLD_EXITED, N_("Child has exited"))
+P (CLD_KILLED, N_("Child has terminated abnormally and did not create a core file"))
+P (CLD_DUMPED, N_("Child has terminated abnormally and created a core file"))
+P (CLD_TRAPPED, N_("Traced child has trapped"))
+P (CLD_STOPPED, N_("Child has stopped"))
+P (CLD_CONTINUED, N_("Stopped child has continued"))
+#endif
+#if NOW == SIGPOLL
+P (POLL_IN, N_("Data input available"))
+P (POLL_OUT, N_("Output buffers available"))
+P (POLL_MSG, N_("Input message available"))
+P (POLL_ERR, N_("I/O error"))
+P (POLL_PRI, N_("High priority input available"))
+P (POLL_HUP, N_("Device disconnected"))
+#endif
+#undef P
diff --git a/REORG.TODO/stdio-common/psiginfo-define.h b/REORG.TODO/stdio-common/psiginfo-define.h
new file mode 100644
index 0000000000..e1d1a351f8
--- /dev/null
+++ b/REORG.TODO/stdio-common/psiginfo-define.h
@@ -0,0 +1,15 @@
+static const union C(codestrs_t_, NOW) {
+  struct {
+#define P(n, s) char MF(__LINE__)[sizeof (s)];
+#include "psiginfo-data.h"
+  };
+  char str[0];
+} C(codestrs_, NOW) = { {
+#define P(n, s) s,
+#include "psiginfo-data.h"
+  } };
+static const uint8_t C(codes_, NOW)[] = {
+#define P(n, s) [(n) - 1] = offsetof (union C(codestrs_t_, NOW), MF(__LINE__)),
+#include "psiginfo-data.h"
+};
+#undef NOW
diff --git a/REORG.TODO/stdio-common/psiginfo.c b/REORG.TODO/stdio-common/psiginfo.c
new file mode 100644
index 0000000000..6954a42458
--- /dev/null
+++ b/REORG.TODO/stdio-common/psiginfo.c
@@ -0,0 +1,203 @@
+/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <errno.h>
+#include <libintl.h>
+#include <signal.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <not-cancel.h>
+
+
+#define MF(l) MF1 (l)
+#define MF1(l) str_##l
+#define C(s1, s2) C1 (s1, s2)
+#define C1(s1, s2) s1##s2
+
+#define NOW SIGILL
+#include "psiginfo-define.h"
+
+#define NOW SIGFPE
+#include "psiginfo-define.h"
+
+#define NOW SIGSEGV
+#include "psiginfo-define.h"
+
+#define NOW SIGBUS
+#include "psiginfo-define.h"
+
+#define NOW SIGTRAP
+#include "psiginfo-define.h"
+
+#define NOW SIGCLD
+#include "psiginfo-define.h"
+
+#define NOW SIGPOLL
+#include "psiginfo-define.h"
+
+
+/* Print out on stderr a line consisting of the test in S, a colon, a space,
+   a message describing the meaning of the signal number PINFO and a newline.
+   If S is NULL or "", the colon and space are omitted.  */
+void
+psiginfo (const siginfo_t *pinfo, const char *s)
+{
+  char buf[512];
+  FILE *fp = __fmemopen (buf, sizeof (buf), "w");
+  if (fp == NULL)
+    {
+      const char *colon;
+
+      if (s == NULL || *s == '\0')
+	s = colon = "";
+      else
+	colon = ": ";
+
+      __fxprintf (NULL, "%s%ssignal %d\n", s, colon, pinfo->si_signo);
+      return;
+    }
+
+  if (s != NULL && *s != '\0')
+    fprintf (fp, "%s: ", s);
+
+  const char *desc;
+  if (pinfo->si_signo >= 0 && pinfo->si_signo < NSIG
+      && ((desc = _sys_siglist[pinfo->si_signo]) != NULL
+#ifdef SIGRTMIN
+	  || (pinfo->si_signo >= SIGRTMIN && pinfo->si_signo < SIGRTMAX)
+#endif
+	 ))
+    {
+#ifdef SIGRTMIN
+      if (desc == NULL)
+	{
+	  if (pinfo->si_signo - SIGRTMIN < SIGRTMAX - pinfo->si_signo)
+	    {
+	      if (pinfo->si_signo == SIGRTMIN)
+		fprintf (fp, "SIGRTMIN (");
+	      else
+		fprintf (fp, "SIGRTMIN+%d (", pinfo->si_signo - SIGRTMIN);
+	    }
+	  else
+	    {
+	      if (pinfo->si_signo == SIGRTMAX)
+		fprintf (fp, "SIGRTMAX (");
+	      else
+		fprintf (fp, "SIGRTMAX-%d (", SIGRTMAX - pinfo->si_signo);
+	    }
+	}
+      else
+#endif
+	fprintf (fp, "%s (", _(desc));
+
+      const char *base = NULL;
+      const uint8_t *offarr = NULL;
+      size_t offarr_len = 0;
+      switch (pinfo->si_signo)
+	{
+#define H(sig) \
+	case sig:							      \
+	  base = C(codestrs_, sig).str;					      \
+	  offarr = C (codes_, sig);					      \
+	  offarr_len = sizeof (C (codes_, sig)) / sizeof (C (codes_, sig)[0]);\
+	  break
+
+	  H (SIGILL);
+	  H (SIGFPE);
+	  H (SIGSEGV);
+	  H (SIGBUS);
+	  H (SIGTRAP);
+	  H (SIGCHLD);
+	  H (SIGPOLL);
+	}
+
+      const char *str = NULL;
+      if (offarr != NULL
+	  && pinfo->si_code >= 1 && pinfo->si_code <= offarr_len)
+	str = base + offarr[pinfo->si_code - 1];
+      else
+	switch (pinfo->si_code)
+	  {
+	  case SI_USER:
+	    str = N_("Signal sent by kill()");
+	    break;
+	  case SI_QUEUE:
+	    str = N_("Signal sent by sigqueue()");
+	    break;
+	  case SI_TIMER:
+	    str = N_("Signal generated by the expiration of a timer");
+	    break;
+	  case SI_ASYNCIO:
+	    str = N_("\
+Signal generated by the completion of an asynchronous I/O request");
+	    break;
+	  case SI_MESGQ:
+	    str = N_("\
+Signal generated by the arrival of a message on an empty message queue");
+	    break;
+#ifdef SI_TKILL
+	  case SI_TKILL:
+	    str = N_("Signal sent by tkill()");
+	    break;
+#endif
+#ifdef SI_ASYNCNL
+	  case SI_ASYNCNL:
+	    str = N_("\
+Signal generated by the completion of an asynchronous name lookup request");
+	    break;
+#endif
+#ifdef SI_SIGIO
+	  case SI_SIGIO:
+	    str = N_("\
+Signal generated by the completion of an I/O request");
+	    break;
+#endif
+#ifdef SI_KERNEL
+	  case SI_KERNEL:
+	    str = N_("Signal sent by the kernel");
+	    break;
+#endif
+	  }
+
+      if (str != NULL)
+	fprintf (fp, "%s ", _(str));
+      else
+	fprintf (fp, "%d ", pinfo->si_code);
+
+      if (pinfo->si_signo == SIGILL || pinfo->si_signo == SIGFPE
+	  || pinfo->si_signo == SIGSEGV || pinfo->si_signo == SIGBUS)
+	fprintf (fp, "[%p])\n", pinfo->si_addr);
+      else if (pinfo->si_signo == SIGCHLD)
+	fprintf (fp, "%ld %d %ld)\n",
+		 (long int) pinfo->si_pid, pinfo->si_status,
+		 (long int) pinfo->si_uid);
+      else if (pinfo->si_signo == SIGPOLL)
+	fprintf (fp, "%ld)\n", (long int) pinfo->si_band);
+      else
+	fprintf (fp, "%ld %ld)\n",
+		 (long int) pinfo->si_pid, (long int) pinfo->si_uid);
+    }
+  else
+    fprintf (fp, _("Unknown signal %d\n"),  pinfo->si_signo);
+
+  fclose (fp);
+
+  write_not_cancel (STDERR_FILENO, buf, strlen (buf));
+}
diff --git a/REORG.TODO/stdio-common/psignal.c b/REORG.TODO/stdio-common/psignal.c
new file mode 100644
index 0000000000..71c56a78a9
--- /dev/null
+++ b/REORG.TODO/stdio-common/psignal.c
@@ -0,0 +1,52 @@
+/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <stdio.h>
+#include <signal.h>
+#include <stdlib.h>
+#include <libintl.h>
+#include <wchar.h>
+
+/* Print out on stderr a line consisting of the test in S, a colon, a space,
+   a message describing the meaning of the signal number SIG and a newline.
+   If S is NULL or "", the colon and space are omitted.  */
+void
+psignal (int sig, const char *s)
+{
+  const char *colon, *desc;
+
+  if (s == NULL || *s == '\0')
+    s = colon = "";
+  else
+    colon = ": ";
+
+  if (sig >= 0 && sig < NSIG && (desc = _sys_siglist[sig]) != NULL)
+    (void) __fxprintf (NULL, "%s%s%s\n", s, colon, _(desc));
+  else
+    {
+      char *buf;
+
+      if (__asprintf (&buf, _("%s%sUnknown signal %d\n"), s, colon, sig) < 0)
+	(void) __fxprintf (NULL, "%s%s%s\n", s, colon, _("Unknown signal"));
+      else
+	{
+	  (void) __fxprintf (NULL, "%s", buf);
+
+	  free (buf);
+	}
+    }
+}
diff --git a/REORG.TODO/stdio-common/putw.c b/REORG.TODO/stdio-common/putw.c
new file mode 100644
index 0000000000..2b0e6ad3d7
--- /dev/null
+++ b/REORG.TODO/stdio-common/putw.c
@@ -0,0 +1,30 @@
+/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <stdio.h>
+#include <libio/iolibio.h>
+#define fwrite(p, n, m, s) _IO_fwrite (p, n, m, s)
+
+/* Write the word (int) W to STREAM.  */
+int
+putw (int w, FILE *stream)
+{
+  /* Is there a better way?  */
+  if (fwrite ((const void *) &w, sizeof (w), 1, stream) < 1)
+    return EOF;
+  return 0;
+}
diff --git a/REORG.TODO/stdio-common/reg-modifier.c b/REORG.TODO/stdio-common/reg-modifier.c
new file mode 100644
index 0000000000..783dcd3273
--- /dev/null
+++ b/REORG.TODO/stdio-common/reg-modifier.c
@@ -0,0 +1,202 @@
+/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <errno.h>
+#include <limits.h>
+#include <printf.h>
+#include <stdlib.h>
+#include <wchar.h>
+#include <libc-lock.h>
+
+
+struct printf_modifier_record
+{
+  struct printf_modifier_record *next;
+  int bit;
+  wchar_t str[0];
+};
+
+struct printf_modifier_record **__printf_modifier_table attribute_hidden;
+
+__libc_lock_define_initialized (static, lock)
+
+/* Bits to hand out.  */
+static int next_bit;
+
+
+int
+__register_printf_modifier (const wchar_t *str)
+{
+  if (str[0] == L'\0')
+    {
+    einval:
+      __set_errno (EINVAL);
+      return -1;
+    }
+
+  const wchar_t *wc = str;
+  while (*wc != L'\0')
+    if (*wc < 0 || *wc > (wchar_t) UCHAR_MAX)
+      goto einval;
+    else
+      ++wc;
+
+  if (next_bit / 8 == sizeof (((struct printf_info *) NULL)->user))
+    {
+      __set_errno (ENOSPC);
+      return -1;
+    }
+
+  int result = -1;
+  __libc_lock_lock (lock);
+
+  if (__printf_modifier_table == NULL)
+    {
+      __printf_modifier_table = calloc (UCHAR_MAX,
+					sizeof (*__printf_modifier_table));
+      if (__printf_modifier_table == NULL)
+	goto out;
+    }
+
+  /* Create enough room for the string.  But we don't need the first
+     character. */
+  struct printf_modifier_record *newp = malloc (sizeof (*newp)
+						+ ((wc - str)
+						   * sizeof (wchar_t)));
+  if (newp == NULL)
+    goto out;
+
+  newp->next = __printf_modifier_table[(unsigned char) *str];
+  newp->bit = 1 << next_bit++;
+  __wmemcpy (newp->str, str + 1, wc - str);
+
+  __printf_modifier_table[(unsigned char) *str] = newp;
+
+  result = newp->bit;
+
+ out:
+  __libc_lock_unlock (lock);
+
+  return result;
+}
+weak_alias (__register_printf_modifier, register_printf_modifier)
+
+
+#include <stdio.h>
+int
+attribute_hidden
+__handle_registered_modifier_mb (const unsigned char **format,
+				 struct printf_info *info)
+{
+  struct printf_modifier_record *runp = __printf_modifier_table[**format];
+
+  int best_bit = 0;
+  int best_len = 0;
+  const unsigned char *best_cp = NULL;
+
+  while (runp != NULL)
+    {
+      const unsigned char *cp = *format + 1;
+      wchar_t *fcp = runp->str;
+
+      while (*cp != '\0' && *fcp != L'\0')
+	if (*cp != *fcp)
+	  break;
+	else
+	  ++cp, ++fcp;
+
+      if (*fcp == L'\0' && cp - *format > best_len)
+	{
+	  best_cp = cp;
+	  best_len = cp - *format;
+	  best_bit = runp->bit;
+	}
+
+      runp = runp->next;
+    }
+
+  if (best_bit != 0)
+    {
+      info->user |= best_bit;
+      *format = best_cp;
+      return 0;
+    }
+
+  return 1;
+}
+
+
+int
+attribute_hidden
+__handle_registered_modifier_wc (const unsigned int **format,
+				 struct printf_info *info)
+{
+  struct printf_modifier_record *runp = __printf_modifier_table[**format];
+
+  int best_bit = 0;
+  int best_len = 0;
+  const unsigned int *best_cp = NULL;
+
+  while (runp != NULL)
+    {
+      const unsigned int *cp = *format + 1;
+      wchar_t *fcp = runp->str;
+
+      while (*cp != '\0' && *fcp != L'\0')
+	if (*cp != *fcp)
+	  break;
+	else
+	  ++cp, ++fcp;
+
+      if (*fcp == L'\0' && cp - *format > best_len)
+	{
+	  best_cp = cp;
+	  best_len = cp - *format;
+	  best_bit = runp->bit;
+	}
+
+      runp = runp->next;
+    }
+
+  if (best_bit != 0)
+    {
+      info->user |= best_bit;
+      *format = best_cp;
+      return 0;
+    }
+
+  return 1;
+}
+
+
+libc_freeres_fn (free_mem)
+{
+  if (__printf_modifier_table != NULL)
+    {
+      for (int i = 0; i < UCHAR_MAX; ++i)
+	{
+	  struct printf_modifier_record *runp = __printf_modifier_table[i];
+	  while (runp != NULL)
+	    {
+	      struct printf_modifier_record *oldp = runp;
+	      runp = runp->next;
+	      free (oldp);
+	    }
+	}
+      free (__printf_modifier_table);
+    }
+}
diff --git a/REORG.TODO/stdio-common/reg-printf.c b/REORG.TODO/stdio-common/reg-printf.c
new file mode 100644
index 0000000000..cbb9307795
--- /dev/null
+++ b/REORG.TODO/stdio-common/reg-printf.c
@@ -0,0 +1,86 @@
+/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <errno.h>
+#include <limits.h>
+#include <printf.h>
+#include <stddef.h>
+#include <stdlib.h>
+#include <libc-lock.h>
+
+
+/* Array of functions indexed by format character.  */
+libc_freeres_ptr (printf_arginfo_size_function **__printf_arginfo_table)
+  attribute_hidden;
+printf_function **__printf_function_table attribute_hidden;
+
+__libc_lock_define_initialized (static, lock)
+
+int __register_printf_specifier (int, printf_function,
+				 printf_arginfo_size_function);
+int __register_printf_function (int, printf_function,
+				printf_arginfo_function);
+
+
+/* Register FUNC to be called to format SPEC specifiers.  */
+int
+__register_printf_specifier (int spec, printf_function converter,
+			     printf_arginfo_size_function arginfo)
+{
+  if (spec < 0 || spec > (int) UCHAR_MAX)
+    {
+      __set_errno (EINVAL);
+      return -1;
+    }
+
+  int result = 0;
+  __libc_lock_lock (lock);
+
+  if (__printf_function_table == NULL)
+    {
+      __printf_arginfo_table = (printf_arginfo_size_function **)
+	calloc (UCHAR_MAX + 1, sizeof (void *) * 2);
+      if (__printf_arginfo_table == NULL)
+	{
+	  result = -1;
+	  goto out;
+	}
+
+      __printf_function_table = (printf_function **)
+	(__printf_arginfo_table + UCHAR_MAX + 1);
+    }
+
+  __printf_function_table[spec] = converter;
+  __printf_arginfo_table[spec] = arginfo;
+
+ out:
+  __libc_lock_unlock (lock);
+
+  return result;
+}
+weak_alias (__register_printf_specifier, register_printf_specifier)
+
+
+/* Register FUNC to be called to format SPEC specifiers.  */
+int
+__register_printf_function (int spec, printf_function converter,
+			    printf_arginfo_function arginfo)
+{
+  return __register_printf_specifier (spec, converter,
+				      (printf_arginfo_size_function*) arginfo);
+}
+weak_alias (__register_printf_function, register_printf_function)
diff --git a/REORG.TODO/stdio-common/reg-type.c b/REORG.TODO/stdio-common/reg-type.c
new file mode 100644
index 0000000000..cc8952754a
--- /dev/null
+++ b/REORG.TODO/stdio-common/reg-type.c
@@ -0,0 +1,61 @@
+/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <errno.h>
+#include <printf.h>
+#include <stdlib.h>
+#include <libc-lock.h>
+
+
+/* Array of functions indexed by format character.  */
+libc_freeres_ptr (printf_va_arg_function **__printf_va_arg_table)
+  attribute_hidden;
+
+__libc_lock_define_initialized (static, lock);
+
+/* Last type allocated.  */
+static int pa_next_type = PA_LAST;
+
+
+int
+__register_printf_type (printf_va_arg_function fct)
+{
+  int result = -1;
+  __libc_lock_lock (lock);
+
+  if (__printf_va_arg_table == NULL)
+    {
+      __printf_va_arg_table = (printf_va_arg_function **)
+	calloc (0x100 - PA_LAST, sizeof (void *));
+      if (__printf_va_arg_table == NULL)
+	goto out;
+    }
+
+  if (pa_next_type == 0x100)
+    __set_errno (ENOSPC);
+  else
+    {
+      result = pa_next_type++;
+      __printf_va_arg_table[result - PA_LAST] = fct;
+    }
+
+ out:
+  __libc_lock_unlock (lock);
+
+  return result;
+}
+weak_alias (__register_printf_type, register_printf_type)
diff --git a/REORG.TODO/stdio-common/remove.c b/REORG.TODO/stdio-common/remove.c
new file mode 100644
index 0000000000..75a212ff74
--- /dev/null
+++ b/REORG.TODO/stdio-common/remove.c
@@ -0,0 +1,30 @@
+/* ANSI C `remove' function to delete a file or directory.  Stub version.
+   Copyright (C) 1995-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <errno.h>
+#include <stdio.h>
+
+int
+remove (const char *file)
+{
+  __set_errno (ENOSYS);
+  return -1;
+}
+libc_hidden_def (remove)
+
+stub_warning (remove)
diff --git a/REORG.TODO/stdio-common/rename.c b/REORG.TODO/stdio-common/rename.c
new file mode 100644
index 0000000000..a71e3420b4
--- /dev/null
+++ b/REORG.TODO/stdio-common/rename.c
@@ -0,0 +1,37 @@
+/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <stdio.h>
+#include <errno.h>
+
+
+/* Rename the file OLD to NEW.  */
+int
+rename (const char *old, const char *new)
+{
+  if (old == NULL || new == NULL)
+    {
+      __set_errno (EINVAL);
+      return -1;
+    }
+
+  __set_errno (ENOSYS);
+  return -1;
+}
+
+
+stub_warning (rename)
diff --git a/REORG.TODO/stdio-common/renameat.c b/REORG.TODO/stdio-common/renameat.c
new file mode 100644
index 0000000000..5bfbfb6f04
--- /dev/null
+++ b/REORG.TODO/stdio-common/renameat.c
@@ -0,0 +1,44 @@
+/* Copyright (C) 2005-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <stdio.h>
+
+
+/* Rename the file OLD relative to OLDFD to NEW relative to NEWFD.  */
+int
+renameat (int oldfd, const char *old, int newfd, const char *new)
+{
+  if ((oldfd < 0 && oldfd != AT_FDCWD) || (newfd < 0 && newfd != AT_FDCWD))
+    {
+      __set_errno (EBADF);
+      return -1;
+    }
+
+  if (old == NULL || new == NULL)
+    {
+      __set_errno (EINVAL);
+      return -1;
+    }
+
+  __set_errno (ENOSYS);
+  return -1;
+}
+
+
+stub_warning (renameat)
diff --git a/REORG.TODO/stdio-common/scanf.c b/REORG.TODO/stdio-common/scanf.c
new file mode 100644
index 0000000000..3caddcb5aa
--- /dev/null
+++ b/REORG.TODO/stdio-common/scanf.c
@@ -0,0 +1,38 @@
+/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <stdarg.h>
+#include <stdio.h>
+
+#include <libioP.h>
+
+
+/* Read formatted input from stdin according to the format string FORMAT.  */
+/* VARARGS1 */
+int
+__scanf (const char *format, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, format);
+  done = _IO_vfscanf (stdin, format, arg, NULL);
+  va_end (arg);
+
+  return done;
+}
+ldbl_strong_alias (__scanf, scanf)
diff --git a/REORG.TODO/stdio-common/scanf1.c b/REORG.TODO/stdio-common/scanf1.c
new file mode 100644
index 0000000000..be6d63e997
--- /dev/null
+++ b/REORG.TODO/stdio-common/scanf1.c
@@ -0,0 +1,15 @@
+#include  <stdio.h>
+#include  <stdlib.h>
+
+int
+main (int argc, char *argv[])
+{
+  int i,n,r;
+
+  n = i = r = -1;
+  r = sscanf ("1234:567", "%d%n", &i, &n);
+  printf ("%d %d %d\n", r, n, i);
+  if (r != 1 || i != 1234 || n != 4)
+    abort ();
+  return 0;
+}
diff --git a/REORG.TODO/stdio-common/scanf10.c b/REORG.TODO/stdio-common/scanf10.c
new file mode 100644
index 0000000000..f8961378ef
--- /dev/null
+++ b/REORG.TODO/stdio-common/scanf10.c
@@ -0,0 +1,15 @@
+#include <stdio.h>
+#include <string.h>
+
+int
+main (int argc, char *argv[])
+{
+  const char teststring[] = "<tag `word'>";
+  int retc, a, b;
+
+  retc = sscanf (teststring, "<%*s `%n%*s%n'>", &a, &b);
+
+  printf ("retc=%d a=%d b=%d\n", retc, a, b);
+
+  return retc == -1 && a == 6 && b == 12 ? 0 : 1;
+}
diff --git a/REORG.TODO/stdio-common/scanf11.c b/REORG.TODO/stdio-common/scanf11.c
new file mode 100644
index 0000000000..f456a0b13d
--- /dev/null
+++ b/REORG.TODO/stdio-common/scanf11.c
@@ -0,0 +1,46 @@
+/* Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@redhat.com>, 2001.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <ctype.h>
+#include <stdio.h>
+
+int
+main (int argc, char *argv[])
+{
+  int exc = 0;
+  int retc;
+  float f;
+  int d;
+  char str[] = "x 1";
+  int c;
+
+  for (c = 1; c < 127; ++c)
+    if (! isdigit (c) && ! isspace (c))
+      {
+	str[0] = c;
+	retc = sscanf (str, "%e %d", &f, &d);
+	if (retc != 0)
+	  {
+	    printf ("sscanf (\"%s\", \"%%e %%d\", ...) == %d, not 0\n",
+		    str, retc);
+	    exc = 1;
+	  }
+      }
+
+  return exc;
+}
diff --git a/REORG.TODO/stdio-common/scanf12.c b/REORG.TODO/stdio-common/scanf12.c
new file mode 100644
index 0000000000..db37e2fedc
--- /dev/null
+++ b/REORG.TODO/stdio-common/scanf12.c
@@ -0,0 +1,23 @@
+#include <stdio.h>
+#include <stdlib.h>
+
+int
+main (void)
+{
+  double d;
+  int c;
+
+  if (scanf ("%lg", &d) != 0)
+    {
+      printf ("scanf didn't failed\n");
+      exit (1);
+    }
+  c = getchar ();
+  if (c != ' ')
+    {
+      printf ("c is `%c', not ` '\n", c);
+      exit (1);
+    }
+
+  return 0;
+}
diff --git a/REORG.TODO/stdio-common/scanf12.input b/REORG.TODO/stdio-common/scanf12.input
new file mode 100644
index 0000000000..41aa98aa8b
--- /dev/null
+++ b/REORG.TODO/stdio-common/scanf12.input
@@ -0,0 +1 @@
++ foo
diff --git a/REORG.TODO/stdio-common/scanf13.c b/REORG.TODO/stdio-common/scanf13.c
new file mode 100644
index 0000000000..720224aa05
--- /dev/null
+++ b/REORG.TODO/stdio-common/scanf13.c
@@ -0,0 +1,186 @@
+#include <locale.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <wchar.h>
+
+int
+main (void)
+{
+  char *sp1, *sp2, *sp3, *sp4;
+  wchar_t *lsp1, *lsp2, *lsp3, *lsp4;
+  int result = 0;
+  char buf[2048+64];
+  size_t i;
+
+#define FAIL() \
+  do {							\
+    result = 1;						\
+    printf ("test at line %d failed\n", __LINE__);	\
+  } while (0)
+
+  setlocale (LC_ALL, "de_DE.UTF-8");
+  if (sscanf ("A  \xc3\x84-\t\t\xc3\x84-abcdefbcd\t\xc3\x84-B",
+	      "A%ms%10ms%4m[bcd]%4mcB", &sp1, &sp2, &sp3, &sp4) != 4)
+    FAIL ();
+  else
+    {
+      if (strcmp (sp1, "\xc3\x84-") != 0)
+	FAIL ();
+      free (sp1);
+      if (strcmp (sp2, "\xc3\x84-abcdefb") != 0)
+	FAIL ();
+      free (sp2);
+      if (strcmp (sp3, "cd") != 0)
+	FAIL ();
+      free (sp3);
+      if (memcmp (sp4, "\t\xc3\x84-", 4) != 0)
+	FAIL ();
+      free (sp4);
+    }
+
+  if (sscanf ("A  \xc3\x84-\t\t\xc3\x84-abcdefbcd\t\xc3\x84-BB",
+	      "A%mS%10mls%4ml[bcd]%4mCB", &lsp1, &lsp2, &lsp3, &lsp4) != 4)
+    FAIL ();
+  else
+    {
+      if (wcscmp (lsp1, L"\xc4-") != 0)
+	FAIL ();
+      free (lsp1);
+      if (wcscmp (lsp2, L"\xc4-abcdefbc") != 0)
+	FAIL ();
+      free (lsp2);
+      if (wcscmp (lsp3, L"d") != 0)
+	FAIL ();
+      free (lsp3);
+      if (memcmp (lsp4, L"\t\xc4-B", 4 * sizeof (wchar_t)) != 0)
+	FAIL ();
+      free (lsp4);
+    }
+
+  memset (buf, '/', sizeof (buf));
+  buf[0] = '\t';
+  buf[1] = ' ';
+  buf[2] = 0xc3;
+  buf[3] = 0x84;
+  buf[2048] = 0xc3;
+  buf[2049] = 0x84;
+  buf[2058] = '\t';
+  buf[2059] = 'a';
+  if (sscanf (buf, "%ms%mc", &sp1, &sp2) != 2)
+    FAIL ();
+  else
+    {
+      if (sp1[0] != '\xc3' || sp1[1] != '\x84'
+	  || sp1[2046] != '\xc3' || sp1[2047] != '\x84'
+	  || sp1[2056] != '\0')
+	FAIL ();
+      sp1[2046] = '/';
+      sp1[2047] = '/';
+      for (i = 2; i < 2056; i++)
+	if (sp1[i] != '/')
+	  FAIL ();
+      free (sp1);
+      if (sp2[0] != '\t')
+	FAIL ();
+      free (sp2);
+    }
+  if (sscanf (buf, "%2048ms%mc", &sp3, &sp4) != 2)
+    FAIL ();
+  else
+    {
+      if (sp3[0] != '\xc3' || sp3[1] != '\x84'
+	  || sp3[2046] != '\xc3' || sp3[2047] != '\x84'
+	  || sp3[2048] != '\0')
+	FAIL ();
+      for (i = 2; i < 2046; i++)
+	if (sp3[i] != '/')
+	  FAIL ();
+      free (sp3);
+      if (sp4[0] != '/')
+	FAIL ();
+      free (sp4);
+    }
+  if (sscanf (buf, "%4mc%1500m[dr/]%548m[abc/d]%3mc", &sp1, &sp2, &sp3, &sp4)
+      != 4)
+    FAIL ();
+  else
+    {
+      if (memcmp (sp1, "\t \xc3\x84", 4) != 0)
+	FAIL ();
+      free (sp1);
+      for (i = 0; i < 1500; i++)
+	if (sp2[i] != '/')
+	  FAIL ();
+      if (sp2[1500] != '\0')
+	FAIL ();
+      free (sp2);
+      for (i = 0; i < 544; i++)
+	if (sp3[i] != '/')
+	  FAIL ();
+      if (sp3[544] != '\0')
+	FAIL ();
+      free (sp3);
+      if (memcmp (sp4, "\xc3\x84/", 3) != 0)
+	FAIL ();
+      free (sp4);
+    }
+  if (sscanf (buf, "%mS%mC", &lsp1, &lsp2) != 2)
+    FAIL ();
+  else
+    {
+      if (lsp1[0] != L'\xc4' || lsp1[2045] != L'\xc4'
+	  || lsp1[2054] != L'\0')
+	FAIL ();
+      lsp1[2045] = L'/';
+      for (i = 1; i < 2054; i++)
+	if (lsp1[i] != L'/')
+	  FAIL ();
+      free (lsp1);
+      if (lsp2[0] != L'\t')
+	FAIL ();
+      free (lsp2);
+    }
+  if (sscanf (buf, "%2048mls%mlc", &lsp3, &lsp4) != 2)
+    FAIL ();
+  else
+    {
+      if (lsp3[0] != L'\xc4' || lsp3[2045] != L'\xc4'
+	  || lsp3[2048] != L'\0')
+	FAIL ();
+      lsp3[2045] = L'/';
+      for (i = 1; i < 2048; i++)
+	if (lsp3[i] != L'/')
+	  FAIL ();
+      free (lsp3);
+      if (lsp4[0] != L'/')
+	FAIL ();
+      free (lsp4);
+    }
+  if (sscanf (buf, "%4mC%1500ml[dr/]%548ml[abc/d]%3mlc",
+	      &lsp1, &lsp2, &lsp3, &lsp4) != 4)
+    FAIL ();
+  else
+    {
+      if (memcmp (lsp1, L"\t \xc4/", 4 * sizeof (wchar_t)) != 0)
+	FAIL ();
+      free (lsp1);
+      for (i = 0; i < 1500; i++)
+	if (lsp2[i] != L'/')
+	  FAIL ();
+      if (lsp2[1500] != L'\0')
+	FAIL ();
+      free (lsp2);
+      for (i = 0; i < 543; i++)
+	if (lsp3[i] != L'/')
+	  FAIL ();
+      if (lsp3[543] != L'\0')
+	FAIL ();
+      free (lsp3);
+      if (memcmp (lsp4, L"\xc4//", 3 * sizeof (wchar_t)) != 0)
+	FAIL ();
+      free (lsp4);
+    }
+
+  return result;
+}
diff --git a/REORG.TODO/stdio-common/scanf14.c b/REORG.TODO/stdio-common/scanf14.c
new file mode 100644
index 0000000000..2bcd9c9893
--- /dev/null
+++ b/REORG.TODO/stdio-common/scanf14.c
@@ -0,0 +1,137 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <wchar.h>
+#include <libc-diag.h>
+
+#define FAIL() \
+  do {							\
+    result = 1;						\
+    printf ("test at line %d failed\n", __LINE__);	\
+  } while (0)
+
+int
+main (void)
+{
+  wchar_t *lsp;
+  char *sp;
+  float f;
+  double d;
+  char c[8];
+  int result = 0;
+
+  if (sscanf (" 0.25s x", "%e%3c", &f, c) != 2)
+    FAIL ();
+  else if (f != 0.25 || memcmp (c, "s x", 3) != 0)
+    FAIL ();
+  /* 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");
+  if (sscanf (" 1.25s x", "%as%2c", &sp, c) != 2)
+    FAIL ();
+  else
+    {
+      if (strcmp (sp, "1.25s") != 0 || memcmp (c, " x", 2) != 0)
+	FAIL ();
+      memset (sp, 'x', sizeof "1.25s");
+      free (sp);
+    }
+  DIAG_POP_NEEDS_COMMENT;
+  if (sscanf (" 2.25s x", "%las%2c", &d, c) != 2)
+    FAIL ();
+  else if (d != 2.25 || memcmp (c, " x", 2) != 0)
+    FAIL ();
+  /* See explanation above.  */
+  DIAG_PUSH_NEEDS_COMMENT;
+  DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wformat");
+  if (sscanf (" 3.25S x", "%4aS%3c", &lsp, c) != 2)
+    FAIL ();
+  else
+    {
+      if (wcscmp (lsp, L"3.25") != 0 || memcmp (c, "S x", 3) != 0)
+	FAIL ();
+      memset (lsp, 'x', sizeof L"3.25");
+      free (lsp);
+    }
+  if (sscanf ("4.25[0-9.] x", "%a[0-9.]%8c", &sp, c) != 2)
+    FAIL ();
+  else
+    {
+      if (strcmp (sp, "4.25") != 0 || memcmp (c, "[0-9.] x", 8) != 0)
+	FAIL ();
+      memset (sp, 'x', sizeof "4.25");
+      free (sp);
+    }
+  DIAG_POP_NEEDS_COMMENT;
+  if (sscanf ("5.25[0-9.] x", "%la[0-9.]%2c", &d, c) != 2)
+    FAIL ();
+  else if (d != 5.25 || memcmp (c, " x", 2) != 0)
+    FAIL ();
+
+  const char *tmpdir = getenv ("TMPDIR");
+  if (tmpdir == NULL || tmpdir[0] == '\0')
+    tmpdir = "/tmp";
+
+  char fname[strlen (tmpdir) + sizeof "/tst-scanf14.XXXXXX"];
+  sprintf (fname, "%s/tst-scanf14.XXXXXX", tmpdir);
+  if (fname == NULL)
+    FAIL ();
+
+  /* Create a temporary file.   */
+  int fd = mkstemp (fname);
+  if (fd == -1)
+    FAIL ();
+
+  FILE *fp = fdopen (fd, "w+");
+  if (fp == NULL)
+    FAIL ();
+  else
+    {
+      if (fputs (" 1.25s x", fp) == EOF)
+	FAIL ();
+      if (fseek (fp, 0, SEEK_SET) != 0)
+	FAIL ();
+      /* See explanation above.  */
+      DIAG_PUSH_NEEDS_COMMENT;
+      DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wformat");
+      if (fscanf (fp, "%as%2c", &sp, c) != 2)
+	FAIL ();
+      else
+	{
+	  if (strcmp (sp, "1.25s") != 0 || memcmp (c, " x", 2) != 0)
+	    FAIL ();
+	  memset (sp, 'x', sizeof "1.25s");
+	  free (sp);
+	}
+      DIAG_POP_NEEDS_COMMENT;
+
+      if (freopen (fname, "r", stdin) == NULL)
+	FAIL ();
+      else
+	{
+	  /* See explanation above.  */
+	  DIAG_PUSH_NEEDS_COMMENT;
+	  DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wformat");
+	  if (scanf ("%as%2c", &sp, c) != 2)
+	    FAIL ();
+	  else
+	    {
+	      if (strcmp (sp, "1.25s") != 0 || memcmp (c, " x", 2) != 0)
+		FAIL ();
+	      memset (sp, 'x', sizeof "1.25s");
+	      free (sp);
+	    }
+	  DIAG_POP_NEEDS_COMMENT;
+	}
+
+      fclose (fp);
+    }
+
+  remove (fname);
+
+  return result;
+}
diff --git a/REORG.TODO/stdio-common/scanf15.c b/REORG.TODO/stdio-common/scanf15.c
new file mode 100644
index 0000000000..a3ab15dea2
--- /dev/null
+++ b/REORG.TODO/stdio-common/scanf15.c
@@ -0,0 +1,99 @@
+#undef _GNU_SOURCE
+#define _XOPEN_SOURCE 600
+#undef _LIBC
+#undef _IO_MTSAFE_IO
+/* The following macro definitions are a hack.  They word around disabling
+   the GNU extension while still using a few internal headers.  */
+#define u_char unsigned char
+#define u_short unsigned short
+#define u_int unsigned int
+#define u_long unsigned long
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <wchar.h>
+
+#define FAIL() \
+  do {							\
+    result = 1;						\
+    printf ("test at line %d failed\n", __LINE__);	\
+  } while (0)
+
+int
+main (void)
+{
+  float f;
+  double d;
+  char c[8];
+  int result = 0;
+
+  if (sscanf (" 0.25s x", "%e%3c", &f, c) != 2)
+    FAIL ();
+  else if (f != 0.25 || memcmp (c, "s x", 3) != 0)
+    FAIL ();
+  if (sscanf (" 1.25s x", "%as%2c", &f, c) != 2)
+    FAIL ();
+  else if (f != 1.25 || memcmp (c, " x", 2) != 0)
+    FAIL ();
+  if (sscanf (" 2.25s x", "%las%2c", &d, c) != 2)
+    FAIL ();
+  else if (d != 2.25 || memcmp (c, " x", 2) != 0)
+    FAIL ();
+  if (sscanf (" 3.25S x", "%4aS%2c", &f, c) != 2)
+    FAIL ();
+  else if (f != 3.25 || memcmp (c, " x", 2) != 0)
+    FAIL ();
+  if (sscanf (" 4.25[0-9.] x", "%a[0-9.]%2c", &f, c) != 2)
+    FAIL ();
+  else if (f != 4.25 || memcmp (c, " x", 2) != 0)
+    FAIL ();
+  if (sscanf (" 5.25[0-9.] x", "%la[0-9.]%2c", &d, c) != 2)
+    FAIL ();
+  else if (d != 5.25 || memcmp (c, " x", 2) != 0)
+    FAIL ();
+
+  const char *tmpdir = getenv ("TMPDIR");
+  if (tmpdir == NULL || tmpdir[0] == '\0')
+    tmpdir = "/tmp";
+
+  char fname[strlen (tmpdir) + sizeof "/tst-scanf15.XXXXXX"];
+  sprintf (fname, "%s/tst-scanf15.XXXXXX", tmpdir);
+  if (fname == NULL)
+    FAIL ();
+
+  /* Create a temporary file.   */
+  int fd = mkstemp (fname);
+  if (fd == -1)
+    FAIL ();
+
+  FILE *fp = fdopen (fd, "w+");
+  if (fp == NULL)
+    FAIL ();
+  else
+    {
+      if (fputs (" 1.25s x", fp) == EOF)
+	FAIL ();
+      if (fseek (fp, 0, SEEK_SET) != 0)
+	FAIL ();
+      if (fscanf (fp, "%as%2c", &f, c) != 2)
+	FAIL ();
+      else if (f != 1.25 || memcmp (c, " x", 2) != 0)
+	FAIL ();
+
+      if (freopen (fname, "r", stdin) == NULL)
+	FAIL ();
+      else
+	{
+	  if (scanf ("%as%2c", &f, c) != 2)
+	    FAIL ();
+	  else if (f != 1.25 || memcmp (c, " x", 2) != 0)
+	    FAIL ();
+	}
+
+      fclose (fp);
+    }
+
+  remove (fname);
+
+  return result;
+}
diff --git a/REORG.TODO/stdio-common/scanf16.c b/REORG.TODO/stdio-common/scanf16.c
new file mode 100644
index 0000000000..3e3cb417f2
--- /dev/null
+++ b/REORG.TODO/stdio-common/scanf16.c
@@ -0,0 +1,147 @@
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <wchar.h>
+
+#define FAIL() \
+  do {							\
+    result = 1;						\
+    printf ("test at line %d failed\n", __LINE__);	\
+  } while (0)
+
+static int
+xsscanf (const char *str, const char *fmt, ...)
+{
+  va_list ap;
+  va_start (ap, fmt);
+  int ret = vsscanf (str, fmt, ap);
+  va_end (ap);
+  return ret;
+}
+
+static int
+xscanf (const char *fmt, ...)
+{
+  va_list ap;
+  va_start (ap, fmt);
+  int ret = vscanf (fmt, ap);
+  va_end (ap);
+  return ret;
+}
+
+static int
+xfscanf (FILE *f, const char *fmt, ...)
+{
+  va_list ap;
+  va_start (ap, fmt);
+  int ret = vfscanf (f, fmt, ap);
+  va_end (ap);
+  return ret;
+}
+
+int
+main (void)
+{
+  wchar_t *lsp;
+  char *sp;
+  float f;
+  double d;
+  char c[8];
+  int result = 0;
+
+  if (xsscanf (" 0.25s x", "%e%3c", &f, c) != 2)
+    FAIL ();
+  else if (f != 0.25 || memcmp (c, "s x", 3) != 0)
+    FAIL ();
+  if (xsscanf (" 1.25s x", "%as%2c", &sp, c) != 2)
+    FAIL ();
+  else
+    {
+      if (strcmp (sp, "1.25s") != 0 || memcmp (c, " x", 2) != 0)
+	FAIL ();
+      memset (sp, 'x', sizeof "1.25s");
+      free (sp);
+    }
+  if (xsscanf (" 2.25s x", "%las%2c", &d, c) != 2)
+    FAIL ();
+  else if (d != 2.25 || memcmp (c, " x", 2) != 0)
+    FAIL ();
+  if (xsscanf (" 3.25S x", "%4aS%3c", &lsp, c) != 2)
+    FAIL ();
+  else
+    {
+      if (wcscmp (lsp, L"3.25") != 0 || memcmp (c, "S x", 3) != 0)
+	FAIL ();
+      memset (lsp, 'x', sizeof L"3.25");
+      free (lsp);
+    }
+  if (xsscanf ("4.25[0-9.] x", "%a[0-9.]%8c", &sp, c) != 2)
+    FAIL ();
+  else
+    {
+      if (strcmp (sp, "4.25") != 0 || memcmp (c, "[0-9.] x", 8) != 0)
+	FAIL ();
+      memset (sp, 'x', sizeof "4.25");
+      free (sp);
+    }
+  if (xsscanf ("5.25[0-9.] x", "%la[0-9.]%2c", &d, c) != 2)
+    FAIL ();
+  else if (d != 5.25 || memcmp (c, " x", 2) != 0)
+    FAIL ();
+
+  const char *tmpdir = getenv ("TMPDIR");
+  if (tmpdir == NULL || tmpdir[0] == '\0')
+    tmpdir = "/tmp";
+
+  char fname[strlen (tmpdir) + sizeof "/tst-scanf16.XXXXXX"];
+  sprintf (fname, "%s/tst-scanf16.XXXXXX", tmpdir);
+  if (fname == NULL)
+    FAIL ();
+
+  /* Create a temporary file.   */
+  int fd = mkstemp (fname);
+  if (fd == -1)
+    FAIL ();
+
+  FILE *fp = fdopen (fd, "w+");
+  if (fp == NULL)
+    FAIL ();
+  else
+    {
+      if (fputs (" 1.25s x", fp) == EOF)
+	FAIL ();
+      if (fseek (fp, 0, SEEK_SET) != 0)
+	FAIL ();
+      if (xfscanf (fp, "%as%2c", &sp, c) != 2)
+	FAIL ();
+      else
+	{
+	  if (strcmp (sp, "1.25s") != 0 || memcmp (c, " x", 2) != 0)
+	    FAIL ();
+	  memset (sp, 'x', sizeof "1.25s");
+	  free (sp);
+	}
+
+      if (freopen (fname, "r", stdin) == NULL)
+	FAIL ();
+      else
+	{
+	  if (xscanf ("%as%2c", &sp, c) != 2)
+	    FAIL ();
+	  else
+	    {
+	      if (strcmp (sp, "1.25s") != 0 || memcmp (c, " x", 2) != 0)
+		FAIL ();
+	      memset (sp, 'x', sizeof "1.25s");
+	      free (sp);
+	    }
+	}
+
+      fclose (fp);
+    }
+
+  remove (fname);
+
+  return result;
+}
diff --git a/REORG.TODO/stdio-common/scanf17.c b/REORG.TODO/stdio-common/scanf17.c
new file mode 100644
index 0000000000..b6c0e63ab0
--- /dev/null
+++ b/REORG.TODO/stdio-common/scanf17.c
@@ -0,0 +1,130 @@
+#undef _GNU_SOURCE
+#define _XOPEN_SOURCE 600
+#undef _LIBC
+#undef _IO_MTSAFE_IO
+/* The following macro definitions are a hack.  They word around disabling
+   the GNU extension while still using a few internal headers.  */
+#define u_char unsigned char
+#define u_short unsigned short
+#define u_int unsigned int
+#define u_long unsigned long
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <wchar.h>
+
+#define FAIL() \
+  do {							\
+    result = 1;						\
+    printf ("test at line %d failed\n", __LINE__);	\
+  } while (0)
+
+static int
+xsscanf (const char *str, const char *fmt, ...)
+{
+  va_list ap;
+  va_start (ap, fmt);
+  int ret = vsscanf (str, fmt, ap);
+  va_end (ap);
+  return ret;
+}
+
+static int
+xscanf (const char *fmt, ...)
+{
+  va_list ap;
+  va_start (ap, fmt);
+  int ret = vscanf (fmt, ap);
+  va_end (ap);
+  return ret;
+}
+
+static int
+xfscanf (FILE *f, const char *fmt, ...)
+{
+  va_list ap;
+  va_start (ap, fmt);
+  int ret = vfscanf (f, fmt, ap);
+  va_end (ap);
+  return ret;
+}
+
+int
+main (void)
+{
+  float f;
+  double d;
+  char c[8];
+  int result = 0;
+
+  if (xsscanf (" 0.25s x", "%e%3c", &f, c) != 2)
+    FAIL ();
+  else if (f != 0.25 || memcmp (c, "s x", 3) != 0)
+    FAIL ();
+  if (xsscanf (" 1.25s x", "%as%2c", &f, c) != 2)
+    FAIL ();
+  else if (f != 1.25 || memcmp (c, " x", 2) != 0)
+    FAIL ();
+  if (xsscanf (" 2.25s x", "%las%2c", &d, c) != 2)
+    FAIL ();
+  else if (d != 2.25 || memcmp (c, " x", 2) != 0)
+    FAIL ();
+  if (xsscanf (" 3.25S x", "%4aS%2c", &f, c) != 2)
+    FAIL ();
+  else if (f != 3.25 || memcmp (c, " x", 2) != 0)
+    FAIL ();
+  if (xsscanf (" 4.25[0-9.] x", "%a[0-9.]%2c", &f, c) != 2)
+    FAIL ();
+  else if (f != 4.25 || memcmp (c, " x", 2) != 0)
+    FAIL ();
+  if (xsscanf (" 5.25[0-9.] x", "%la[0-9.]%2c", &d, c) != 2)
+    FAIL ();
+  else if (d != 5.25 || memcmp (c, " x", 2) != 0)
+    FAIL ();
+
+  const char *tmpdir = getenv ("TMPDIR");
+  if (tmpdir == NULL || tmpdir[0] == '\0')
+    tmpdir = "/tmp";
+
+  char fname[strlen (tmpdir) + sizeof "/tst-scanf17.XXXXXX"];
+  sprintf (fname, "%s/tst-scanf17.XXXXXX", tmpdir);
+  if (fname == NULL)
+    FAIL ();
+
+  /* Create a temporary file.   */
+  int fd = mkstemp (fname);
+  if (fd == -1)
+    FAIL ();
+
+  FILE *fp = fdopen (fd, "w+");
+  if (fp == NULL)
+    FAIL ();
+  else
+    {
+      if (fputs (" 1.25s x", fp) == EOF)
+	FAIL ();
+      if (fseek (fp, 0, SEEK_SET) != 0)
+	FAIL ();
+      if (xfscanf (fp, "%as%2c", &f, c) != 2)
+	FAIL ();
+      else if (f != 1.25 || memcmp (c, " x", 2) != 0)
+	FAIL ();
+
+      if (freopen (fname, "r", stdin) == NULL)
+	FAIL ();
+      else
+	{
+	  if (xscanf ("%as%2c", &f, c) != 2)
+	    FAIL ();
+	  else if (f != 1.25 || memcmp (c, " x", 2) != 0)
+	    FAIL ();
+	}
+
+      fclose (fp);
+    }
+
+  remove (fname);
+
+  return result;
+}
diff --git a/REORG.TODO/stdio-common/scanf2.c b/REORG.TODO/stdio-common/scanf2.c
new file mode 100644
index 0000000000..452104d5aa
--- /dev/null
+++ b/REORG.TODO/stdio-common/scanf2.c
@@ -0,0 +1,25 @@
+#include <stdio.h>
+#include <stdlib.h>
+
+int
+main(int argc, char *argv[])
+{
+    int point, x, y;
+
+    point = x = y = -1;
+    sscanf("0x10 10", "%x %x", &x, &y);
+    printf("%d %d\n", x, y);
+    if (x != 0x10 || y != 0x10)
+      abort ();
+    point = x = y = -1;
+    sscanf("P012349876", "P%1d%4d%4d", &point, &x, &y);
+    printf("%d %d %d\n", point, x, y);
+    if (point != 0 || x != 1234 || y != 9876)
+      abort ();
+    point = x = y = -1;
+    sscanf("P112349876", "P%1d%4d%4d", &point, &x, &y);
+    printf("%d %d %d\n", point, x, y);
+    if (point != 1 || x != 1234 || y != 9876)
+      abort ();
+  return 0;
+}
diff --git a/REORG.TODO/stdio-common/scanf3.c b/REORG.TODO/stdio-common/scanf3.c
new file mode 100644
index 0000000000..33495cca79
--- /dev/null
+++ b/REORG.TODO/stdio-common/scanf3.c
@@ -0,0 +1,28 @@
+#include <stdio.h>
+#include <stdlib.h>
+
+int
+main(int arc, char *argv[])
+{
+  int n, res;
+  unsigned int val;
+  char s[] = "111";
+
+  val = n = -1;
+  res = sscanf(s, "%u %n", &val, &n);
+  printf("Result of sscanf = %d\n", res);
+  printf("Scanned format %%u = %u\n", val);
+  printf("Possibly scanned format %%n = %d\n", n);
+  if (n != 3 || val != 111 || res != 1)
+    abort ();
+
+  val = n = -1;
+  res = sscanf(s, "%u%n", &val, &n);
+  printf("Result of sscanf = %d\n", res);
+  printf("Scanned format %%u = %u\n", val);
+  printf("Possibly scanned format %%n = %d\n", n);
+  if (n != 3 || val != 111 || res != 1)
+    abort ();
+
+  return 0;
+}
diff --git a/REORG.TODO/stdio-common/scanf4.c b/REORG.TODO/stdio-common/scanf4.c
new file mode 100644
index 0000000000..7a2abec89b
--- /dev/null
+++ b/REORG.TODO/stdio-common/scanf4.c
@@ -0,0 +1,40 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <libc-diag.h>
+
+int
+main(int arc, char *argv[])
+{
+  int res;
+  unsigned int val;
+
+  FILE *fp = fopen ("/dev/null", "r");
+
+  val = 0;
+  res = fscanf(fp, "%n", &val);
+
+  printf("Result of fscanf %%n = %d\n", res);
+  printf("Scanned format = %d\n", val);
+
+  /* We're testing exactly the case the warning is for.  */
+  DIAG_PUSH_NEEDS_COMMENT;
+  DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wformat-zero-length");
+
+  res = fscanf(fp, "");
+
+  DIAG_POP_NEEDS_COMMENT;
+
+  printf("Result of fscanf \"\" = %d\n", res);
+  if (res != 0)
+    abort ();
+
+  res = fscanf(fp, "BLURB");
+  printf("Result of fscanf \"BLURB\" = %d\n", res);
+  if (res >= 0)
+    abort ();
+
+  fclose (fp);
+
+  return 0;
+  return 0;
+}
diff --git a/REORG.TODO/stdio-common/scanf5.c b/REORG.TODO/stdio-common/scanf5.c
new file mode 100644
index 0000000000..fb4acfabf1
--- /dev/null
+++ b/REORG.TODO/stdio-common/scanf5.c
@@ -0,0 +1,21 @@
+#include <stdio.h>
+#include <stdlib.h>
+
+int
+main(int argc, char *argv[])
+{
+  int a, b;
+
+  a = b = -1;
+  sscanf ("12ab", "%dab%n", &a, &b);
+  printf ("%d, %d\n", a, b);
+  if (a != 12 || b != 4)
+    abort ();
+
+  a = b = -1;
+  sscanf ("12ab100", "%dab%n100", &a, &b);
+  printf ("%d, %d\n", a, b);
+  if (a != 12 || b != 4)
+    abort ();
+  return 0;
+}
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;
+}
diff --git a/REORG.TODO/stdio-common/scanf8.c b/REORG.TODO/stdio-common/scanf8.c
new file mode 100644
index 0000000000..731ca8be2c
--- /dev/null
+++ b/REORG.TODO/stdio-common/scanf8.c
@@ -0,0 +1,16 @@
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+int
+main (int argc, char *argv[])
+{
+  int ret;
+  char buf [1024] = "Ooops";
+
+  ret = sscanf ("static char Term_bits[] = {", "static char %s = {", buf);
+  printf ("ret: %d, name: %s\n", ret, buf);
+  if (ret != 1 || strcmp (buf, "Term_bits[]") != 0)
+    abort ();
+  return 0;
+}
diff --git a/REORG.TODO/stdio-common/scanf9.c b/REORG.TODO/stdio-common/scanf9.c
new file mode 100644
index 0000000000..7aca354d2a
--- /dev/null
+++ b/REORG.TODO/stdio-common/scanf9.c
@@ -0,0 +1,30 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+int
+main (void)
+{
+  int matches;
+  char str[10];
+
+  str[0] = '\0';
+  matches = -9;
+  matches = sscanf ("x ]", "%[^] ]", str);
+  printf ("Matches = %d, string str = \"%s\".\n", matches, str);
+  printf ("str should be \"x\".\n");
+
+  if (strcmp (str, "x"))
+    abort ();
+
+  str[0] = '\0';
+  matches = -9;
+  matches = sscanf (" ] x", "%[] ]", str);
+  printf ("Matches = %d, string str = \"%s\".\n", matches, str);
+  printf ("str should be \" ] \".\n");
+
+  if (strcmp (str, " ] "))
+    abort ();
+
+  return 0;
+}
diff --git a/REORG.TODO/stdio-common/siglist.c b/REORG.TODO/stdio-common/siglist.c
new file mode 100644
index 0000000000..2148dc6a41
--- /dev/null
+++ b/REORG.TODO/stdio-common/siglist.c
@@ -0,0 +1,36 @@
+/* Define list of all signal numbers and their names.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <stddef.h>
+#include <signal.h>
+#include <libintl.h>
+
+const char *const _sys_siglist[NSIG] =
+{
+#define init_sig(sig, abbrev, desc)   [sig] = desc,
+#include <siglist.h>
+#undef init_sig
+};
+
+
+const char *const _sys_sigabbrev[NSIG] =
+{
+#define init_sig(sig, abbrev, desc)   [sig] = abbrev,
+#include <siglist.h>
+#undef init_sig
+};
diff --git a/REORG.TODO/stdio-common/snprintf.c b/REORG.TODO/stdio-common/snprintf.c
new file mode 100644
index 0000000000..66bcd198a8
--- /dev/null
+++ b/REORG.TODO/stdio-common/snprintf.c
@@ -0,0 +1,39 @@
+/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <stdarg.h>
+#include <stdio.h>
+#include <libioP.h>
+#define __vsnprintf(s, l, f, a) _IO_vsnprintf (s, l, f, a)
+
+/* Write formatted output into S, according to the format
+   string FORMAT, writing no more than MAXLEN characters.  */
+/* VARARGS3 */
+int
+__snprintf (char *s, size_t maxlen, const char *format, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, format);
+  done = __vsnprintf (s, maxlen, format, arg);
+  va_end (arg);
+
+  return done;
+}
+libc_hidden_def (__snprintf)
+ldbl_weak_alias (__snprintf, snprintf)
diff --git a/REORG.TODO/stdio-common/sprintf.c b/REORG.TODO/stdio-common/sprintf.c
new file mode 100644
index 0000000000..391c495393
--- /dev/null
+++ b/REORG.TODO/stdio-common/sprintf.c
@@ -0,0 +1,39 @@
+/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <stdarg.h>
+#include <stdio.h>
+#include <libioP.h>
+#define vsprintf(s, f, a) _IO_vsprintf (s, f, a)
+
+/* Write formatted output into S, according to the format string FORMAT.  */
+/* VARARGS2 */
+int
+__sprintf (char *s, const char *format, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, format);
+  done = vsprintf (s, format, arg);
+  va_end (arg);
+
+  return done;
+}
+ldbl_hidden_def (__sprintf, sprintf)
+ldbl_strong_alias (__sprintf, sprintf)
+ldbl_strong_alias (__sprintf, _IO_sprintf)
diff --git a/REORG.TODO/stdio-common/sscanf.c b/REORG.TODO/stdio-common/sscanf.c
new file mode 100644
index 0000000000..63b9503db5
--- /dev/null
+++ b/REORG.TODO/stdio-common/sscanf.c
@@ -0,0 +1,41 @@
+/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <stdarg.h>
+#include <stdio.h>
+#include <libioP.h>
+#define __vsscanf(s, f, a) _IO_vsscanf (s, f, a)
+
+/* Read formatted input from S, according to the format string FORMAT.  */
+/* VARARGS2 */
+int
+__sscanf (const char *s, const char *format, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, format);
+  done = __vsscanf (s, format, arg);
+  va_end (arg);
+
+  return done;
+}
+ldbl_hidden_def (__sscanf, sscanf)
+ldbl_strong_alias (__sscanf, sscanf)
+#undef _IO_sscanf
+/* This is for libg++.  */
+ldbl_strong_alias (__sscanf, _IO_sscanf)
diff --git a/REORG.TODO/stdio-common/stdio_ext.h b/REORG.TODO/stdio-common/stdio_ext.h
new file mode 100644
index 0000000000..d30488ae9d
--- /dev/null
+++ b/REORG.TODO/stdio-common/stdio_ext.h
@@ -0,0 +1,86 @@
+/* Functions to access FILE structure internals.
+   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+/* This header contains the same definitions as the header of the same name
+   on Sun's Solaris OS.  */
+
+#ifndef _STDIO_EXT_H
+#define _STDIO_EXT_H	1
+
+#include <stdio.h>
+
+enum
+{
+  /* Query current state of the locking status.  */
+  FSETLOCKING_QUERY = 0,
+#define FSETLOCKING_QUERY	FSETLOCKING_QUERY
+  /* The library protects all uses of the stream functions, except for
+     uses of the *_unlocked functions, by calls equivalent to flockfile().  */
+  FSETLOCKING_INTERNAL,
+#define FSETLOCKING_INTERNAL	FSETLOCKING_INTERNAL
+  /* The user will take care of locking.  */
+  FSETLOCKING_BYCALLER
+#define FSETLOCKING_BYCALLER	FSETLOCKING_BYCALLER
+};
+
+
+__BEGIN_DECLS
+
+/* Return the size of the buffer of FP in bytes currently in use by
+   the given stream.  */
+extern size_t __fbufsize (FILE *__fp) __THROW;
+
+
+/* Return non-zero value iff the stream FP is opened readonly, or if the
+   last operation on the stream was a read operation.  */
+extern int __freading (FILE *__fp) __THROW;
+
+/* Return non-zero value iff the stream FP is opened write-only or
+   append-only, or if the last operation on the stream was a write
+   operation.  */
+extern int __fwriting (FILE *__fp) __THROW;
+
+
+/* Return non-zero value iff stream FP is not opened write-only or
+   append-only.  */
+extern int __freadable (FILE *__fp) __THROW;
+
+/* Return non-zero value iff stream FP is not opened read-only.  */
+extern int __fwritable (FILE *__fp) __THROW;
+
+
+/* Return non-zero value iff the stream FP is line-buffered.  */
+extern int __flbf (FILE *__fp) __THROW;
+
+
+/* Discard all pending buffered I/O on the stream FP.  */
+extern void __fpurge (FILE *__fp) __THROW;
+
+/* Return amount of output in bytes pending on a stream FP.  */
+extern size_t __fpending (FILE *__fp) __THROW;
+
+/* Flush all line-buffered files.  */
+extern void _flushlbf (void);
+
+
+/* Set locking status of stream FP to TYPE.  */
+extern int __fsetlocking (FILE *__fp, int __type) __THROW;
+
+__END_DECLS
+
+#endif	/* stdio_ext.h */
diff --git a/REORG.TODO/stdio-common/stdio_lim.h.in b/REORG.TODO/stdio-common/stdio_lim.h.in
new file mode 100644
index 0000000000..510bf008aa
--- /dev/null
+++ b/REORG.TODO/stdio-common/stdio_lim.h.in
@@ -0,0 +1,42 @@
+/* Copyright (C) 1994-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#if !defined _STDIO_H && !defined __need_FOPEN_MAX && !defined __need_IOV_MAX
+# error "Never include <bits/stdio_lim.h> directly; use <stdio.h> instead."
+#endif
+
+#ifdef _STDIO_H
+# define L_tmpnam @L_tmpnam@
+# define TMP_MAX @TMP_MAX@
+# define FILENAME_MAX @FILENAME_MAX@
+
+# ifdef __USE_POSIX
+#  define L_ctermid @L_ctermid@
+#  if !defined __USE_XOPEN2K || defined __USE_GNU
+#   define L_cuserid @L_cuserid@
+#  endif
+# endif
+#endif
+
+#if defined __need_FOPEN_MAX || defined _STDIO_H
+# undef  FOPEN_MAX
+# define FOPEN_MAX @FOPEN_MAX@
+#endif
+
+#if defined __need_IOV_MAX && !defined IOV_MAX
+@define_IOV_MAX@
+#endif
diff --git a/REORG.TODO/stdio-common/tempnam.c b/REORG.TODO/stdio-common/tempnam.c
new file mode 100644
index 0000000000..3f0d07352e
--- /dev/null
+++ b/REORG.TODO/stdio-common/tempnam.c
@@ -0,0 +1,43 @@
+/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <stdio.h>
+#include <string.h>
+
+/* Generate a unique temporary filename using up to five characters of
+   PFX if it is not NULL.  The directory to put this file in is
+   searched for as follows: First the environment variable "TMPDIR" is
+   checked.  If it contains the name of a directory, that directory is
+   used.  If not and if DIR is not NULL, that value is checked.  If
+   that fails, P_tmpdir is tried and finally "/tmp".  The storage for
+   the filename is allocated by `malloc'.  */
+char *
+tempnam (const char *dir, const char *pfx)
+{
+  char buf[FILENAME_MAX];
+
+  if (__path_search (buf, FILENAME_MAX, dir, pfx, 1))
+    return NULL;
+
+  if (__gen_tempname (buf, 0, 0, __GT_NOCREATE))
+    return NULL;
+
+  return __strdup (buf);
+}
+
+link_warning (tempnam,
+	      "the use of `tempnam' is dangerous, better use `mkstemp'")
diff --git a/REORG.TODO/stdio-common/tempname.c b/REORG.TODO/stdio-common/tempname.c
new file mode 100644
index 0000000000..6f050f296b
--- /dev/null
+++ b/REORG.TODO/stdio-common/tempname.c
@@ -0,0 +1,51 @@
+/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#define __need_size_t
+#include <stddef.h>
+#include <stdio.h>
+#include <errno.h>
+
+/* Perform the "SVID path search malarkey" on DIR and PFX.  Write a
+   template suitable for use in __gen_tempname into TMPL, bounded
+   by TMPL_LEN. */
+int
+__path_search (char *tmpl, size_t tmpl_len, const char *dir, const char *pfx,
+	       int try_tmpdir)
+{
+  __set_errno (ENOSYS);
+  return -1;
+}
+stub_warning (__path_search)
+
+/* Generate a (hopefully) unique temporary filename
+   in DIR (if applicable), using template TMPL.
+   KIND determines what to do with that name.  It may be one of:
+     __GT_FILE:		create a file and return a read-write fd.
+     __GT_BIGFILE:	same, but use open64() (or equivalent).
+     __GT_DIR:		create a directory.
+     __GT_NOCREATE:	just find a name not currently in use.
+ */
+
+int
+__gen_tempname (char *tmpl, int suffixlen, int flags, int kind)
+{
+  __set_errno (ENOSYS);
+  return -1;
+}
+
+stub_warning (__gen_tempname)
diff --git a/REORG.TODO/stdio-common/temptest.c b/REORG.TODO/stdio-common/temptest.c
new file mode 100644
index 0000000000..c8cf8529f1
--- /dev/null
+++ b/REORG.TODO/stdio-common/temptest.c
@@ -0,0 +1,28 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+char *files[500];
+
+int
+main (int argc, char *argv[])
+{
+  FILE *fp;
+  int i;
+
+  for (i = 0; i < 500; i++) {
+    files[i] = tempnam (NULL, "file");
+    if (files[i] == NULL) {
+      printf ("tempnam failed\n");
+      exit (1);
+    }
+    printf ("file: %s\n", files[i]);
+    fp = fopen (files[i], "w");
+    fclose (fp);
+  }
+
+  for (i = 0; i < 500; i++)
+    remove (files[i]);
+
+  return 0;
+}
diff --git a/REORG.TODO/stdio-common/test-fseek.c b/REORG.TODO/stdio-common/test-fseek.c
new file mode 100644
index 0000000000..2416b190aa
--- /dev/null
+++ b/REORG.TODO/stdio-common/test-fseek.c
@@ -0,0 +1,87 @@
+/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <stdio.h>
+
+#define TESTFILE "/tmp/test.dat"
+
+static int
+do_test (void)
+{
+  FILE *fp;
+  int i, j;
+
+  puts ("\nFile seek test");
+  fp = fopen (TESTFILE, "w");
+  if (fp == NULL)
+    {
+      perror (TESTFILE);
+      return 1;
+    }
+
+  for (i = 0; i < 256; i++)
+    putc (i, fp);
+  if (freopen (TESTFILE, "r", fp) != fp)
+    {
+      perror ("Cannot open file for reading");
+      return 1;
+    }
+
+  for (i = 1; i <= 255; i++)
+    {
+      printf ("%3d\n", i);
+      fseek (fp, (long) -i, SEEK_END);
+      if ((j = getc (fp)) != 256 - i)
+	{
+	  printf ("SEEK_END failed %d\n", j);
+	  break;
+	}
+      if (fseek (fp, (long) i, SEEK_SET))
+	{
+	  puts ("Cannot SEEK_SET");
+	  break;
+	}
+      if ((j = getc (fp)) != i)
+	{
+	  printf ("SEEK_SET failed %d\n", j);
+	  break;
+	}
+      if (fseek (fp, (long) i, SEEK_SET))
+	{
+	  puts ("Cannot SEEK_SET");
+	  break;
+	}
+      if (fseek (fp, (long) (i >= 128 ? -128 : 128), SEEK_CUR))
+	{
+	  puts ("Cannot SEEK_CUR");
+	  break;
+	}
+      if ((j = getc (fp)) != (i >= 128 ? i - 128 : i + 128))
+	{
+	  printf ("SEEK_CUR failed %d\n", j);
+	  break;
+	}
+    }
+  fclose (fp);
+  remove (TESTFILE);
+
+  puts ((i > 255) ? "Test succeeded." : "Test FAILED!");
+  return (i > 255) ? 0 : 1;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/stdio-common/test-fwrite.c b/REORG.TODO/stdio-common/test-fwrite.c
new file mode 100644
index 0000000000..5677c6da80
--- /dev/null
+++ b/REORG.TODO/stdio-common/test-fwrite.c
@@ -0,0 +1,71 @@
+#include <stdio.h>
+#include <string.h>
+
+static int
+do_test (void)
+{
+  FILE *f = tmpfile ();
+  char obuf[99999], ibuf[sizeof obuf];
+  char *line;
+  size_t linesz;
+
+  if (! f)
+    {
+      perror ("tmpfile");
+      return 1;
+    }
+
+  if (fputs ("line\n", f) == EOF)
+    {
+      perror ("fputs");
+      return 1;
+    }
+
+  memset (obuf, 'z', sizeof obuf);
+  memset (ibuf, 'y', sizeof ibuf);
+
+  if (fwrite (obuf, sizeof obuf, 1, f) != 1)
+    {
+      perror ("fwrite");
+      return 1;
+    }
+
+  rewind (f);
+
+  line = NULL;
+  linesz = 0;
+  if (getline (&line, &linesz, f) != 5)
+    {
+      perror ("getline");
+      return 1;
+    }
+  if (strcmp (line, "line\n"))
+    {
+      puts ("Lines differ.  Test FAILED!");
+      return 1;
+    }
+
+  if (fread (ibuf, sizeof ibuf, 1, f) != 1)
+    {
+      perror ("fread");
+      return 1;
+    }
+
+  if (memcmp (ibuf, obuf, sizeof ibuf))
+    {
+      puts ("Buffers differ.  Test FAILED!");
+      return 1;
+    }
+
+  asprintf (&line, "\
+GDB is free software and you are welcome to distribute copies of it\n\
+ under certain conditions; type \"show copying\" to see the conditions.\n\
+There is absolutely no warranty for GDB; type \"show warranty\" for details.\n\
+");
+
+  puts ("Test succeeded.");
+  return 0;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/stdio-common/test-popen.c b/REORG.TODO/stdio-common/test-popen.c
new file mode 100644
index 0000000000..44b09fa129
--- /dev/null
+++ b/REORG.TODO/stdio-common/test-popen.c
@@ -0,0 +1,105 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+static void
+write_data (FILE *stream)
+{
+  int i;
+  for (i=0; i<100; i++)
+    fprintf (stream, "%d\n", i);
+  if (ferror (stream))
+    {
+      fprintf (stderr, "Output to stream failed.\n");
+      exit (1);
+    }
+}
+
+static void
+read_data (FILE *stream)
+{
+  int i, j;
+
+  for (i=0; i<100; i++)
+    {
+      if (fscanf (stream, "%d\n", &j) != 1 || j != i)
+	{
+	  if (ferror (stream))
+	    perror ("fscanf");
+	  puts ("Test FAILED!");
+	  exit (1);
+	}
+    }
+}
+
+static int
+do_test (void)
+{
+  FILE *output, *input;
+  int wstatus, rstatus;
+
+  /* We must remove this entry to assure the `cat' binary does not use
+     the perhaps incompatible new shared libraries.  */
+  unsetenv ("LD_LIBRARY_PATH");
+
+  output = popen ("/bin/cat >/tmp/tstpopen.tmp", "w");
+  if (output == NULL)
+    {
+      perror ("popen");
+      puts ("Test FAILED!");
+      exit (1);
+    }
+  write_data (output);
+  wstatus = pclose (output);
+  printf ("writing pclose returned %d\n", wstatus);
+  input = popen ("/bin/cat /tmp/tstpopen.tmp", "r");
+  if (input == NULL)
+    {
+      perror ("/tmp/tstpopen.tmp");
+      puts ("Test FAILED!");
+      exit (1);
+    }
+  read_data (input);
+  rstatus = pclose (input);
+  printf ("reading pclose returned %d\n", rstatus);
+
+  remove ("/tmp/tstpopen.tmp");
+
+  errno = 0;
+  output = popen ("/bin/cat", "m");
+  if (output != NULL)
+    {
+      puts ("popen called with illegal mode does not return NULL");
+      puts ("Test FAILED!");
+      exit (1);
+    }
+  if (errno != EINVAL)
+    {
+      puts ("popen called with illegal mode does not set errno to EINVAL");
+      puts ("Test FAILED!");
+      exit (1);
+    }
+
+  puts (wstatus | rstatus  ? "Test FAILED!" : "Test succeeded.");
+  return (wstatus | rstatus);
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/stdio-common/test-vfprintf.c b/REORG.TODO/stdio-common/test-vfprintf.c
new file mode 100644
index 0000000000..f8bb9cee58
--- /dev/null
+++ b/REORG.TODO/stdio-common/test-vfprintf.c
@@ -0,0 +1,136 @@
+/* Tests of *printf for very large strings.
+   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@redhat.com>, 2000.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <locale.h>
+#include <mcheck.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <sys/stat.h>
+#include <libc-diag.h>
+
+
+const char *locs[] =
+{
+  "C", "de_DE.ISO-8859-1", "de_DE.UTF-8", "ja_JP.EUC-JP"
+};
+#define nlocs (sizeof (locs) / sizeof (locs[0]))
+
+
+char large[50000];
+
+static int
+do_test (void)
+{
+  char buf[25];
+  size_t i;
+  int res = 0;
+  int fd;
+
+  mtrace ();
+
+  strcpy (buf, "/tmp/test-vfprintfXXXXXX");
+  fd = mkstemp (buf);
+  if (fd == -1)
+    {
+      printf ("cannot open temporary file: %m\n");
+      exit (1);
+    }
+  unlink (buf);
+
+  for (i = 0; i < nlocs; ++i)
+    {
+      FILE *fp;
+      struct stat st;
+      int fd2;
+
+      setlocale (LC_ALL, locs[i]);
+
+      memset (large, '\1', sizeof (large));
+      large[sizeof (large) - 1] = '\0';
+
+      fd2 = dup (fd);
+      if (fd2 == -1)
+	{
+	  printf ("cannot dup for locale %s: %m\n",
+		  setlocale (LC_ALL, NULL));
+	  exit (1);
+	}
+
+      if (ftruncate (fd2, 0) != 0)
+	{
+	  printf ("cannot truncate file for locale %s: %m\n",
+		  setlocale (LC_ALL, NULL));
+	  exit (1);
+	}
+
+      fp = fdopen (fd2, "a");
+      if (fp == NULL)
+	{
+	  printf ("cannot create FILE for locale %s: %m\n",
+		  setlocale (LC_ALL, NULL));
+	  exit (1);
+	}
+
+      fprintf (fp, "%s", large);
+      fprintf (fp, "%.*s", 30000, large);
+      large[20000] = '\0';
+      /* We're testing a large format string here and need to generate it
+         to avoid this source file being ridiculous.  So disable the warning
+         about a generated format string.  */
+      DIAG_PUSH_NEEDS_COMMENT;
+      DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wformat-security");
+      fprintf (fp, large);
+      DIAG_POP_NEEDS_COMMENT;
+      fprintf (fp, "%-1.300000000s", "hello");
+
+      if (fflush (fp) != 0 || ferror (fp) != 0 || fclose (fp) != 0)
+	{
+	  printf ("write error for locale %s: %m\n",
+		  setlocale (LC_ALL, NULL));
+	  exit (1);
+	}
+
+      if (fstat (fd, &st) != 0)
+	{
+	  printf ("cannot stat for locale %s: %m\n",
+		  setlocale (LC_ALL, NULL));
+	  exit (1);
+	}
+      else if (st.st_size != 50000 + 30000 + 19999 + 5)
+	{
+	  printf ("file size incorrect for locale %s: %jd instead of %jd\n",
+		  setlocale (LC_ALL, NULL),
+		  (intmax_t) st.st_size,
+		  (intmax_t) 50000 + 30000 + 19999 + 5);
+	  res = 1;
+	}
+      else
+	printf ("locale %s OK\n", setlocale (LC_ALL, NULL));
+    }
+
+  close (fd);
+
+  return res;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/stdio-common/test_rdwr.c b/REORG.TODO/stdio-common/test_rdwr.c
new file mode 100644
index 0000000000..c7e0c4da06
--- /dev/null
+++ b/REORG.TODO/stdio-common/test_rdwr.c
@@ -0,0 +1,128 @@
+/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+
+int
+main (int argc, char **argv)
+{
+  static const char hello[] = "Hello, world.\n";
+  static const char replace[] = "Hewwo, world.\n";
+  static const size_t replace_from = 2, replace_to = 4;
+  char filename[FILENAME_MAX];
+  char *name = strrchr (*argv, '/');
+  char buf[BUFSIZ];
+  FILE *f;
+  int lose = 0;
+
+  if (name != NULL)
+    ++name;
+  else
+    name = *argv;
+
+  (void) sprintf (filename, "/tmp/%s.test", name);
+
+  f = fopen (filename, "w+");
+  if (f == NULL)
+    {
+      perror (filename);
+      exit (1);
+    }
+
+  (void) fputs (hello, f);
+  rewind (f);
+  (void) fgets (buf, sizeof (buf), f);
+  rewind (f);
+  (void) fputs (buf, f);
+  rewind (f);
+  {
+    size_t i;
+    for (i = 0; i < replace_from; ++i)
+      {
+	int c = getc (f);
+	if (c == EOF)
+	  {
+	    printf ("EOF at %Zu.\n", i);
+	    lose = 1;
+	    break;
+	  }
+	else if (c != hello[i])
+	  {
+	    printf ("Got '%c' instead of '%c' at %Zu.\n",
+		    (unsigned char) c, hello[i], i);
+	    lose = 1;
+	    break;
+	  }
+      }
+  }
+
+  {
+    long int where = ftell (f);
+    if (where == (long int) replace_from)
+      {
+	size_t i;
+	for (i = replace_from; i < replace_to; ++i)
+	  if (putc(replace[i], f) == EOF)
+	    {
+	      printf ("putc('%c') got %s at %Zu.\n",
+		      replace[i], strerror (errno), i);
+	      lose = 1;
+	      break;
+	    }
+      }
+    else if (where == -1L)
+      {
+	printf ("ftell got %s (should be at %Zu).\n",
+		strerror (errno), replace_from);
+	lose = 1;
+      }
+    else
+      {
+	printf ("ftell returns %lu; should be %Zu.\n", where, replace_from);
+	lose = 1;
+      }
+  }
+
+  if (!lose)
+    {
+      rewind (f);
+      if (fgets (buf, sizeof (buf), f) == NULL)
+	{
+	  printf ("fgets got %s.\n", strerror(errno));
+	  lose = 1;
+	}
+      else if (strcmp (buf, replace))
+	{
+	  printf ("Read \"%s\" instead of \"%s\".\n", buf, replace);
+	  lose = 1;
+	}
+    }
+
+  if (lose)
+    printf ("Test FAILED!  Losing file is \"%s\".\n", filename);
+  else
+    {
+      (void) remove (filename);
+      puts ("Test succeeded.");
+    }
+
+  return lose ? EXIT_FAILURE : EXIT_SUCCESS;
+}
diff --git a/REORG.TODO/stdio-common/tfformat.c b/REORG.TODO/stdio-common/tfformat.c
new file mode 100644
index 0000000000..5cb366dd48
--- /dev/null
+++ b/REORG.TODO/stdio-common/tfformat.c
@@ -0,0 +1,4130 @@
+#include <stdio.h>
+
+/* Tests taken from Cygnus C library. */
+
+typedef struct
+{
+  int line;
+  double value;
+  const char *result;
+  const char *format_string;
+} sprint_double_type;
+
+sprint_double_type sprint_doubles[] =
+{
+  {__LINE__,  30.3,			"<          +30.3>", "<%+15.10g>"},
+  {__LINE__,  10.0,			"<10.00>", "<%5.2f>"},
+
+  {__LINE__,  1.002121970718271e+05,	"100212.19707   ", "%0-15.5f"},
+  {__LINE__, -1.002121970718271e+05,	"-100212.19707  ", "%0-15.5f"},
+  {__LINE__,  1.002121970718271e+05,	"000100212.19707", "%015.5f"},
+  {__LINE__, -1.002121970718271e+05,	"-00100212.19707", "%015.5f"},
+  {__LINE__,  1.002121970718271e+05,	"+00100212.19707", "%+015.5f"},
+  {__LINE__, -1.002121970718271e+05,	"-00100212.19707", "%+015.5f"},
+  {__LINE__,  1.002121970718271e+05,	" 00100212.19707", "% 015.5f"},
+  {__LINE__, -1.002121970718271e+05,	"-00100212.19707", "% 015.5f"},
+  {__LINE__,  1.002121970718271e+05,	"+100212.19707  ", "%+-15.5f"},
+  {__LINE__, -1.002121970718271e+05,	"-100212.19707  ", "%+-15.5f"},
+
+  {__LINE__, -1.002121970718271e+29,	"-1.0E+29", "%.1E"},
+  {__LINE__, -1.002126048612756e-02,	"-1.002126E-02", "%+#E"},
+  {__LINE__, -1.002653755271637e+00,	"-1.00265", "%G"},
+  {__LINE__, -1.003238744365917e-23,	"-0.00", "%4.2f"},
+  {__LINE__, -1.005084840877781e-29,	"  -0", "%4.f"},
+  {__LINE__, -1.005362549674427e+01,	"-10.0536", "%#g"},
+  {__LINE__, -1.005915042991691e-17,	"-1.00592E-17", "%G"},
+  {__LINE__, -1.007829874228503e-18,	"-1.00783e-18", "%.7g"},
+  {__LINE__, -1.007829874228503e-18,	"-1.007830e-18", "%#.7g"},
+  {__LINE__, -1.009390937771849e+15,	"-1009390937771848.628657", "%+f"},
+  {__LINE__, -1.010679382726182e-29,	"-0.0000000", "%.7f"},
+  {__LINE__, -1.010691853346650e+13,	"-10106918533466.497934", "%+f"},
+  {__LINE__, -1.013412912122286e-22,	"-1.01E-22", "%.2E"},
+  {__LINE__, -1.019269582113858e-25,	"  -0", "%4.0f"},
+  {__LINE__, -1.019886033368556e+24,	"-1.019886E+24", "%+.7G"},
+  {__LINE__, -1.021037413548719e+02,	"-102.103741", "%f"},
+  {__LINE__, -1.023833576089065e+26,	"-1.023834E+26", "%+E"},
+  {__LINE__, -1.024736652408627e+10,	"-10247366524.086265", "%+f"},
+  {__LINE__, -1.025439198495476e+09,	"-1.02544e+09", "%+g"},
+  {__LINE__, -1.027080247585776e-04,	"-0.0001027", "%6.7f"},
+  {__LINE__, -1.028096307262016e+18,	"-1.0281E+18", "%3G"},
+  {__LINE__, -1.029604290697901e-02,	"-0.010296", "%g"},
+  {__LINE__, -1.034347730570491e+16,	"-10343477305704908.975059", "%+f"},
+  {__LINE__, -1.034663325049286e+22,	"-1.0E+22", "%#.1E"},
+  {__LINE__, -1.034843152721857e-14,	"    -0", "%6.f"},
+  {__LINE__, -1.036082122299529e-29,	"-1.04e-29", "%4.3g"},
+  {__LINE__, -1.037213662365954e-09,	"-1e-09", "%3.e"},
+  {__LINE__, -1.038563976775690e-12,	"-0.000000", "%f"},
+  {__LINE__, -1.040910158681323e-02,	"-0.0104091", "%+G"},
+  {__LINE__, -1.044680094714482e-20,	"-1.04468E-20", "%G"},
+  {__LINE__, -1.044990054091126e+24,	"-1.044990E+24", "%+E"},
+  {__LINE__, -1.045693871096982e+11,	"-1.045694e+11", "%+e"},
+  {__LINE__, -1.045714133591312e-04,	"-0.000104571", "%+#3g"},
+  {__LINE__, -1.046215079103016e-15,	"-1.04622e-15", "%g"},
+  {__LINE__, -1.046285293993789e-18,	"-1.04629E-18", "%+4G"},
+  {__LINE__, -1.046306092899333e-06,	"-0.00", "%0.2f"},
+  {__LINE__, -1.047308973649206e-22,	"-1.05E-22", "%+1.3G"},
+  {__LINE__, -1.047369032507755e+01,	"-1.047369E+01", "%E"},
+  {__LINE__, -1.048986365562919e-21,	"-1.05E-21", "%+.2E"},
+  {__LINE__, -1.049530193156793e-17,	"-1.04953E-17", "%+G"},
+  {__LINE__, -1.050073419263768e+25,	"-1.05007e+25", "%g"},
+  {__LINE__, -1.051739652002504e-28,	"-0.000000", "%+f"},
+  {__LINE__, -1.054493420082636e+21,	"-1.0545e+21", "%#5.4e"},
+  {__LINE__, -1.055867291029098e+18,	"-1.05587e+18", "%g"},
+  {__LINE__, -1.056514389757866e-16,	"-1.05651E-16", "%5.6G"},
+  {__LINE__, -1.057180924868704e+15,	"-1057180924868704", "%4.f"},
+  {__LINE__, -1.058455468395683e-23,	"-1.05846e-23", "%g"},
+  {__LINE__, -1.062560982393212e+08,	"-1.06256e+08", "%g"},
+  {__LINE__, -1.063365829241138e-10,	"-1.063366e-10", "%+e"},
+  {__LINE__, -1.063568908667280e-19,	"-1.06357E-19", "%+G"},
+  {__LINE__, -1.063734263253492e-13,	"-0.000000", "%0f"},
+  {__LINE__, -1.064472689765495e-13,	"-1E-13", "%4.0G"},
+  {__LINE__, -1.067192610000129e-25,	"-1.06719E-25", "%G"},
+  {__LINE__, -1.068401334996592e-12,	"-0.0000000", "%+.7f"},
+  {__LINE__, -1.069012628653724e-13,	"-1.069013E-13", "%+.7G"},
+  {__LINE__, -1.069451976810790e+16,	"-10694519768107904.056365", "%f"},
+  {__LINE__, -1.069568935323556e+17,	"-1.06957e+17", "%g"},
+  {__LINE__, -1.071351044854107e-29,	"-1.07135e-29", "%g"},
+  {__LINE__, -1.072274197526185e-21,	"-1E-21", "%1.G"},
+  {__LINE__, -1.073875921752995e+23,	"-1E+23", "%5.E"},
+  {__LINE__, -1.074835151152265e-12,	"-1.0748e-12", "%1.5g"},
+  {__LINE__, -1.075171047088241e-19,	"-1.07517E-19", "%#G"},
+  {__LINE__, -1.076258826412760e+22,	"-1.076259e+22", "%+e"},
+  {__LINE__, -1.076365103160401e+06,	"-1.07637E+06", "%+4.6G"},
+  {__LINE__, -1.076817750454633e+08,	"-1e+08", "%4.g"},
+  {__LINE__, -1.078615405755685e-30,	"-1e-30", "%4.g"},
+  {__LINE__, -1.078629622917468e-25,	"-1.078630e-25", "%e"},
+  {__LINE__, -1.079352432833170e+11,	"-107935243283", "%+2.f"},
+  {__LINE__, -1.081431147440215e+16,	"-10814311474402147.439378", "%+f"},
+  {__LINE__, -1.083042116905339e-16,	"-1.083e-16", "%.5g"},
+  {__LINE__, -1.085351710708553e-10,	"-1.085e-10", "%1.4g"},
+  {__LINE__, -1.085796045618276e+07,	"-1.085796e+07", "%e"},
+  {__LINE__, -1.087398259981007e+22,	"-1.0874e+22", "%g"},
+  {__LINE__, -1.087986044402224e-11,	"-1.087986e-11", "%e"},
+  {__LINE__, -1.090451848762709e-02,	"-1.090452e-02", "%e"},
+  {__LINE__, -1.091463236899737e+11,	"-1.091463E+11", "%#E"},
+  {__LINE__, -1.091617921737384e-29,	"-1.09162e-29", "%3g"},
+  {__LINE__, -1.092049328579047e-17,	"-1.092049E-17", "%E"},
+  {__LINE__, -1.093647615472090e+06,	"-1093647.61547", "%6.5f"},
+  {__LINE__, -1.094133175602384e-08,	"-1.1E-08", "%0.1E"},
+  {__LINE__, -1.095397916728214e-23,	"-1e-23", "%6.e"},
+  {__LINE__, -1.098958790437321e+02,	"-109.895879", "%+#f"},
+  {__LINE__, -1.100194638181594e-20,	"-1.100195e-20", "%e"},
+  {__LINE__, -1.102174253534260e+05,	"-1.1e+05", "%2.3g"},
+  {__LINE__, -1.102890180316350e-12,	"-1.10289e-12", "%+g"},
+  {__LINE__, -1.105582337418378e+00,	"-1.11", "%3.3g"},
+  {__LINE__, -1.110515122647056e+04,	"-1.E+04", "%#0.G"},
+  {__LINE__, -1.111365895262625e-18,	"-1e-18", "%0.g"},
+  {__LINE__, -1.112010622677495e+04,	"-11120.1", "%g"},
+  {__LINE__, -1.112580043156699e-23,	"-1.11258e-23", "%1g"},
+  {__LINE__, -1.112829057091303e+08,	"-1.11283e+08", "%+2g"},
+  {__LINE__, -1.115019046200472e+18,	"-1.1150190e+18", "%+#.7e"},
+  {__LINE__, -1.118078332268016e-13,	"-1.12E-13", "%1.3G"},
+  {__LINE__, -1.119113571963886e+08,	"-1.119114e+08", "%e"},
+  {__LINE__, -1.120102397563448e-15,	"-1.12e-15", "%.4g"},
+  {__LINE__, -1.120707480791434e-19,	"-1.12071e-19", "%g"},
+  {__LINE__, -1.124243676139007e-07,	"-0.000000", "%f"},
+  {__LINE__, -1.125025214608798e+15,	"-1.12503E+15", "%0G"},
+  {__LINE__, -1.126074395136447e+06,	"-1E+06", "%+.0G"},
+  {__LINE__, -1.127203019940870e-06,	"-0.000001", "%+#7f"},
+  {__LINE__, -1.130577648480677e+01,	"-1.130578e+01", "%e"},
+  {__LINE__, -1.131469694425240e-11,	"-1.13147e-11", "%#0.6g"},
+  {__LINE__, -1.132225023239752e+02,	"-113.223", "%G"},
+  {__LINE__, -1.133702113050128e+20,	"-1E+20", "%+3.E"},
+  {__LINE__, -1.135529466224404e-13,	"-1.13553e-13", "%#g"},
+  {__LINE__, -1.137587210063004e+21,	"-1e+21", "%.1g"},
+  {__LINE__, -1.140765637106361e-21,	"-1.1e-21", "%+.1e"},
+  {__LINE__, -1.141182595083699e-18,	"-0.000000", "%f"},
+  {__LINE__, -1.141695709120972e+00,	"-1.1417", "%3G"},
+  {__LINE__, -1.143199141708028e+18,	"-1143199141708027833", "%2.f"},
+  {__LINE__, -1.146712902056139e+21,	"-1146712902056139071760.298975", "%f"},
+  {__LINE__, -1.146837903839073e-02,	" -0.0", "%+5.1f"},
+  {__LINE__, -1.147363016107446e+10,	"-1.14736e+10", "%+7g"},
+  {__LINE__, -1.149575523465052e+20,	"-114957552346505220697.28140", "%+.5f"},
+  {__LINE__, -1.152748955392589e+13,	"-1.15275E+13", "%G"},
+  {__LINE__, -1.152751106015483e-17,	"-1E-17", "%+3.E"},
+  {__LINE__, -1.155539139258226e-18,	"-1.2e-18", "%+.2g"},
+  {__LINE__, -1.157089280563492e+20,	"-1.15709e+20", "%g"},
+  {__LINE__, -1.161217745859779e+19,	"-1.161218E+19", "%E"},
+  {__LINE__, -1.162293536734798e+10,	"-11622935367.347980", "%f"},
+  {__LINE__, -1.162629909468603e+20,	"-1.16E+20", "%.3G"},
+  {__LINE__, -1.164979155838631e+24,	"-1.16498E+24", "%G"},
+  {__LINE__, -1.165103052644816e-20,	" -1e-20", "%+7.g"},
+  {__LINE__, -1.166448459023264e-08,	"-0.000000", "%f"},
+  {__LINE__, -1.167694506705309e+28,	"-1e+28", "%.1g"},
+  {__LINE__, -1.169901754818745e-28,	"-0.000000", "%+f"},
+  {__LINE__, -1.170330336216446e+08,	" -1e+08", "%7.g"},
+  {__LINE__, -1.170946623214213e-17,	"-1.17095E-17", "%G"},
+  {__LINE__, -1.174581596799302e+27,	"-1.174582e+27", "%+e"},
+  {__LINE__, -1.174763473995155e-28,	"-1E-28", "%.1G"},
+  {__LINE__, -1.175885640508038e-23,	"-1E-23", "%+.0E"},
+  {__LINE__, -1.177268411775439e-05,	"-0.000012", "%#2.6f"},
+  {__LINE__, -1.177739669428001e-30,	"-1.17774E-30", "%G"},
+  {__LINE__, -1.178059639880544e-02,	"-0.0117806", "%+.7G"},
+  {__LINE__, -1.178793300854446e-13,	"-1.2E-13", "%+#0.2G"},
+  {__LINE__, -1.179629345138058e-04,	"-0.000118", "%0.3g"},
+  {__LINE__, -1.180730292213358e-25,	"-1.18073e-25", "%g"},
+  {__LINE__, -1.180766261654697e+02,	"-118.077", "%3g"},
+  {__LINE__, -1.181880261069391e-29,	"-1.181880e-29", "%+#e"},
+  {__LINE__, -1.183752810063514e-09,	"-1.18375e-09", "%#g"},
+  {__LINE__, -1.184191742443406e-21,	"-1.184192e-21", "%e"},
+  {__LINE__, -1.184859760488406e-26,	"-1.18486E-26", "%G"},
+  {__LINE__, -1.187276828720072e-29,	"-1.18728E-29", "%G"},
+  {__LINE__, -1.187992907205195e-04,	"-1.187993E-04", "%E"},
+  {__LINE__, -1.190586192763405e-28,	"-1.E-28", "%#1.E"},
+  {__LINE__, -1.192104053032086e+02,	"-119.21", "%G"},
+  {__LINE__, -1.192917884333569e+26,	"-1.192918E+26", "%E"},
+  {__LINE__, -1.195900753509801e+22,	"-1.1959e+22", "%g"},
+  {__LINE__, -1.196559413116537e-28,	"-0.000000", "%6.6f"},
+  {__LINE__, -1.197534588732952e+12,	"-1.19753e+12", "%#g"},
+  {__LINE__, -1.200279514790649e-25,	"-0.0000", "%0.4f"},
+  {__LINE__, -1.203806667944635e+10,	"-1.2038067E+10", "%5.7E"},
+  {__LINE__, -1.204344885974736e+07,	"-1.204E+07", "%#2.4G"},
+  {__LINE__, -1.205668007693083e+00,	"-1.20567", "%g"},
+  {__LINE__, -1.205898515218947e-11,	"-1.2059e-11", "%+g"},
+  {__LINE__, -1.206787414909373e-05,	"-1.2e-05", "%2.2g"},
+  {__LINE__, -1.207905830366447e+15,	"-1.207906e+15", "%6.7g"},
+  {__LINE__, -1.208067010597729e-17,	"-1.208067e-17", "%5e"},
+  {__LINE__, -1.210189135822574e+01,	"-12", "%+2.0f"},
+  {__LINE__, -1.211560695948122e+10,	"-1.21156e+10", "%+g"},
+  {__LINE__, -1.214003025273234e-18,	"-1.214e-18", "%+g"},
+  {__LINE__, -1.214096815259005e+17,	"-121409681525900459.142520", "%f"},
+  {__LINE__, -1.214699041716797e-14,	"-1.2147E-14", "%G"},
+  {__LINE__, -1.215061611919443e+14,	"-121506161191944.306310", "%+#f"},
+  {__LINE__, -1.217491221065185e+27,	"-1.21749e+27", "%g"},
+  {__LINE__, -1.218538401534388e-11,	"-1.218538e-11", "%#e"},
+  {__LINE__, -1.218810085883466e+16,	"-1e+16", "%+.1g"},
+  {__LINE__, -1.219422688169801e+08,	"-1.219423e+08", "%e"},
+  {__LINE__, -1.220473194407651e-14,	"-1.2205E-14", "%1.5G"},
+  {__LINE__, -1.220824440193375e-02,	"-0.012208", "%4f"},
+  {__LINE__, -1.221520240637007e+13,	"-1.221520E+13", "%1E"},
+  {__LINE__, -1.221894719843486e+29,	"-1.22189E+29", "%G"},
+  {__LINE__, -1.223020108610281e+25,	"-1.22302E+25", "%G"},
+  {__LINE__, -1.223203206227728e-02,	"-0.012232", "%G"},
+  {__LINE__, -1.225661737076919e-15,	"-1.22566E-15", "%G"},
+  {__LINE__, -1.228147221003795e-08,	"-1.22815E-08", "%G"},
+  {__LINE__, -1.228298534591771e+20,	"-1.22830E+20", "%#G"},
+  {__LINE__, -1.228469080229780e-02,	"-0.012285", "%0f"},
+  {__LINE__, -1.229161950699222e-09,	"-1e-09", "%0.e"},
+  {__LINE__, -1.231294820136559e-17,	"-1.231295E-17", "%1.7G"},
+  {__LINE__, -1.232588663406698e-21,	"-1E-21", "%+0.G"},
+  {__LINE__, -1.233381256982191e-26,	"-0.000000", "%f"},
+  {__LINE__, -1.233435864835578e+14,	"-1.23344e+14", "%#g"},
+  {__LINE__, -1.237409567806099e-25,	"-1.23741E-25", "%#G"},
+  {__LINE__, -1.238244697758558e-02,	"-1.238245e-02", "%7e"},
+  {__LINE__, -1.239393163123284e+26,	"-1.23939e+26", "%+g"},
+  {__LINE__, -1.240484781756132e-18,	"-1E-18", "%4.E"},
+  {__LINE__, -1.241420286838750e+23,	"-1E+23", "%2.E"},
+  {__LINE__, -1.243781122052343e-18,	"-1.243781e-18", "%+e"},
+  {__LINE__, -1.244421506844779e+07,	"-1.244422E+07", "%+6E"},
+  {__LINE__, -1.245754054764741e-21,	"-1e-21", "%5.0g"},
+  {__LINE__, -1.245992228426733e-24,	"-0.000000", "%f"},
+  {__LINE__, -1.246498277739883e-12,	"-0.0000000", "%5.7f"},
+  {__LINE__, -1.247130891343776e-18,	"-1.24713E-18", "%G"},
+  {__LINE__, -1.247309461703025e-03,	"-0.0012473", "%#5.5G"},
+  {__LINE__, -1.248139162966407e-29,	"-1.e-29", "%+#6.g"},
+  {__LINE__, -1.249756153623776e+08,	"-1.249756e+08", "%e"},
+  {__LINE__, -1.250899983565585e-10,	"-1.2509e-10", "%5g"},
+  {__LINE__, -1.250957368798327e+19,	"-1.25096E+19", "%0G"},
+  {__LINE__, -1.252630814464822e-02,	"-0.012526", "%+f"},
+  {__LINE__, -1.253076368257011e-28,	"-0.000000", "%f"},
+  {__LINE__, -1.254243507039370e+01,	"-1.254244e+01", "%e"},
+  {__LINE__, -1.257605614492298e-12,	"-1.257606E-12", "%6.7G"},
+  {__LINE__, -1.258041911573120e+06,	"-1258041.911573", "%+f"},
+  {__LINE__, -1.261670983426507e-25,	"-0.00", "%.2f"},
+  {__LINE__, -1.263216883336562e-14,	"-1.26322e-14", "%g"},
+  {__LINE__, -1.266846944498751e-15,	"-1e-15", "%0.g"},
+  {__LINE__, -1.266977908502326e+06,	"-1266978", "%+1.f"},
+  {__LINE__, -1.267006162870084e-23,	"-1.267006e-23", "%e"},
+  {__LINE__, -1.269144609375931e+01,	"-1.269145e+01", "%+e"},
+  {__LINE__, -1.269458714257904e+25,	"-1.26946E+25", "%G"},
+  {__LINE__, -1.276697325772662e-02,	"-0.0128", "%7.3G"},
+  {__LINE__, -1.278855081807602e+15,	"-1278855081807601.87891", "%#0.5f"},
+  {__LINE__, -1.278966821639612e+20,	"-1.278967E+20", "%3E"},
+  {__LINE__, -1.281942705258106e+03,	"-1281.94", "%+G"},
+  {__LINE__, -1.282331291499203e+14,	"-128233129149920.266343", "%+f"},
+  {__LINE__, -1.285125739341808e-28,	"-1.28513e-28", "%g"},
+  {__LINE__, -1.285700693704978e+11,	"-1.285701E+11", "%E"},
+  {__LINE__, -1.286574096459251e+28,	"-1.287E+28", "%6.4G"},
+  {__LINE__, -1.287967889247240e+03,	"-1287.97", "%G"},
+  {__LINE__, -1.288913808801319e-27,	"-1.3e-27", "%7.1e"},
+  {__LINE__, -1.289147517760377e-18,	"-1.289148E-18", "%E"},
+  {__LINE__, -1.289355006600107e+23,	"-1.28936E+23", "%+G"},
+  {__LINE__, -1.291232014623979e+01,	"-1.29123E+01", "%+.5E"},
+  {__LINE__, -1.293658562875966e-18,	"-1.29366e-18", "%+g"},
+  {__LINE__, -1.294982911983638e-19,	"-1.29498E-19", "%#G"},
+  {__LINE__, -1.296123363481695e-13,	"-1.296123E-13", "%E"},
+  {__LINE__, -1.296632862070602e-20,	"-1.29663e-20", "%+g"},
+  {__LINE__, -1.297801639022777e+23,	"-129780163902277735132884.11777", "%#0.5f"},
+  {__LINE__, -1.297886574534611e+16,	"-1.297887e+16", "%+e"},
+  {__LINE__, -1.300588216308401e+11,	"-1.30e+11", "%.2e"},
+  {__LINE__, -1.301296100909062e-10,	"-1.3013e-10", "%+g"},
+  {__LINE__, -1.303144244306468e-07,	"-1.303144E-07", "%E"},
+  {__LINE__, -1.304096315024042e-20,	"-1.3041E-20", "%+G"},
+  {__LINE__, -1.304817970675085e+16,	"-1.304818E+16", "%+E"},
+  {__LINE__, -1.304870304632683e-15,	" -1e-15", "%7.g"},
+  {__LINE__, -1.305213586757638e-18,	"-1.30521e-18", "%g"},
+  {__LINE__, -1.306880734910465e-22,	"-1.306881E-22", "%E"},
+  {__LINE__, -1.308964092631446e-23,	"-1.30896e-23", "%g"},
+  {__LINE__, -1.312070555198201e+26,	"-131207055519820126043839537", "%+7.f"},
+  {__LINE__, -1.312511609151056e-30,	"-1.312512E-30", "%#E"},
+  {__LINE__, -1.313087359008389e-23,	"-0.000000", "%+f"},
+  {__LINE__, -1.316948423042059e-02,	"-1.316948E-02", "%+E"},
+  {__LINE__, -1.317080882577385e+29,	"-1.317E+29", "%+.4G"},
+  {__LINE__, -1.317514598984346e+24,	"-1.317515e+24", "%e"},
+  {__LINE__, -1.317817551125923e-21,	"-1.31782E-21", "%+G"},
+  {__LINE__, -1.319603985988120e+29,	"-131960398598811989856471882376.354188", "%f"},
+  {__LINE__, -1.328850458671907e+06,	"-1e+06", "%.0e"},
+  {__LINE__, -1.328945346449817e-23,	"-1.328945e-23", "%+e"},
+  {__LINE__, -1.330146584094221e-08,	"-1e-08", "%+5.g"},
+  {__LINE__, -1.332609617892115e+00,	"-1.33261", "%2.7G"},
+#ifndef __PCCNECV70__
+  {__LINE__, -1.332751724965715e+22,	"-13327517249657150344432.920974", "%f"},
+  {__LINE__, -1.333194379353273e-19,	"-0.000000", "%f"},
+  {__LINE__, -1.334304387932777e-06,	"-1.334304e-06", "%e"},
+  {__LINE__, -1.334306581172082e-05,	"-1.3e-05", "%+1.2g"},
+  {__LINE__, -1.335283510893438e-05,	" -1E-05", "%7.G"},
+  {__LINE__, -1.337939692108373e+11,	"-1.33794e+11", "%+4g"},
+  {__LINE__, -1.339117288874809e-03,	"-0.001", "%1.3f"},
+  {__LINE__, -1.340100588141492e+27,	"-1.340101E+27", "%E"},
+  {__LINE__, -1.341953272572953e-19,	"-0.000000", "%+f"},
+  {__LINE__, -1.343058354301620e-02,	"-1.343058e-02", "%e"},
+  {__LINE__, -1.346662720871543e+22,	"-1.34666E+22", "%#G"},
+  {__LINE__, -1.354010578652210e-02,	"-0.0135401", "%#g"},
+  {__LINE__, -1.354066549307666e-12,	"    -0", "%+6.f"},
+  {__LINE__, -1.355284719365947e+21,	"-1.35528e+21", "%g"},
+  {__LINE__, -1.356326532145087e+29,	"-1E+29", "%4.G"},
+  {__LINE__, -1.357278618897291e+19,	"-13572786188972911780.581398", "%f"},
+  {__LINE__, -1.357537331348202e-10,	"-0.000", "%+.3f"},
+  {__LINE__, -1.360011287595868e-10,	"-0.000000", "%f"},
+  {__LINE__, -1.360506902899232e+16,	"-13605069028992320.", "%#5.f"},
+  {__LINE__, -1.361102570277000e+10,	"-1.3611E+10", "%G"},
+  {__LINE__, -1.362601255900219e+07,	"-1.363E+07", "%.4G"},
+  {__LINE__, -1.366078182354771e+10,	"-1.36608E+10", "%0G"},
+  {__LINE__, -1.366667926615127e+08,	"-136666792.661513", "%f"},
+  {__LINE__, -1.367162823743231e-12,	"-0.000000", "%#f"},
+  {__LINE__, -1.371523037550709e+09,	"-1.37152e+09", "%+g"},
+  {__LINE__, -1.374328925986197e-17,	"-1.37e-17", "%.2e"},
+  {__LINE__, -1.374995603898421e-26,	"-1.375e-26", "%+g"},
+  {__LINE__, -1.376726539375688e+09,	"-1.376727E+09", "%+E"},
+  {__LINE__, -1.378351117694958e-13,	"-0.000000", "%f"},
+  {__LINE__, -1.378514699313619e-14,	"-1.378515e-14", "%e"},
+  {__LINE__, -1.379347588942324e-23,	"-1.4e-23", "%+.1e"},
+  {__LINE__, -1.380380583822272e-17,	"-0.000000", "%+f"},
+  {__LINE__, -1.381658659947406e+19,	"-1.38166e+19", "%g"},
+  {__LINE__, -1.382775316390237e+29,	"-138277531639023653298181670834.3104", "%+#7.4f"},
+  {__LINE__, -1.383541138922400e+00,	"-1.383541E+00", "%E"},
+  {__LINE__, -1.384625301445090e+01,	"-13.8", "%+.3g"},
+  {__LINE__, -1.386844086284027e-13,	"-1.38684E-13", "%+G"},
+  {__LINE__, -1.386930516448650e-28,	"-1.386931E-28", "%E"},
+  {__LINE__, -1.387444896054260e-07,	"-1.38744E-07", "%G"},
+  {__LINE__, -1.389685107980798e+22,	"-1.38969E+22", "%G"},
+  {__LINE__, -1.390880300369347e+03,	"-1390.880300", "%f"},
+  {__LINE__, -1.391423370198150e-17,	"-1E-17", "%+2.G"},
+  {__LINE__, -1.394441767471218e-09,	"-1.394442e-09", "%e"},
+  {__LINE__, -1.396275525062527e-20,	"-1.39628E-20", "%G"},
+  {__LINE__, -1.397045957455157e+24,	"-1E+24", "%.0E"},
+  {__LINE__, -1.397458546930799e+21,	"-1397458546930798526375.383517", "%f"},
+  {__LINE__, -1.397584578988941e-14,	"-1.39758e-14", "%5g"},
+  {__LINE__, -1.397789397300823e+09,	"-1.398e+09", "%.4g"},
+  {__LINE__, -1.398167472294874e+21,	"-1.398167E+21", "%+7E"},
+  {__LINE__, -1.398809636136688e-16,	"-0.000000", "%+f"},
+  {__LINE__, -1.399545335304119e+26,	"-139954533530411872277454676.805064", "%#5f"},
+  {__LINE__, -1.400102603335755e+20,	"-140010260333575509150.705329", "%2f"},
+  {__LINE__, -1.401212746235235e+04,	"-1.401213e+04", "%e"},
+  {__LINE__, -1.404409427681801e+07,	"-1E+07", "%4.E"},
+  {__LINE__, -1.406018114263948e-25,	"-1e-25", "%3.e"},
+  {__LINE__, -1.406245608096877e-06,	"-1.4e-06", "%+.1e"},
+  {__LINE__, -1.410697254683835e-10,	"-1.410697e-10", "%e"},
+  {__LINE__, -1.410739097553846e+25,	"-1.410739E+25", "%+E"},
+  {__LINE__, -1.410850631189577e+04,	"-14108.5", "%.6g"},
+  {__LINE__, -1.411680434455781e+28,	"-14116804344557807304738616949.180141", "%f"},
+  {__LINE__, -1.413309465660099e-27,	"-1.413309E-27", "%+#E"},
+  {__LINE__, -1.418468741386300e+09,	"-1418468741.386300", "%f"},
+  {__LINE__, -1.420277110892909e+06,	"-1.42028e+06", "%1g"},
+  {__LINE__, -1.420417889565590e-17,	"-1.42E-17", "%.2E"},
+  {__LINE__, -1.421098212056305e+08,	"-1.421098e+08", "%4e"},
+  {__LINE__, -1.421792812798986e-20,	" -1E-20", "%7.G"},
+  {__LINE__, -1.423675488122461e+18,	"-1423675488122461363.360571", "%f"},
+  {__LINE__, -1.423810545840653e+15,	"-1E+15", "%3.E"},
+  {__LINE__, -1.424242673476368e-15,	"-1.424243e-15", "%e"},
+  {__LINE__, -1.427847435688733e-01,	"-1.427847E-01", "%E"},
+  {__LINE__, -1.433897734612555e-04,	"-0.0001", "%3.g"},
+  {__LINE__, -1.434537754075696e-24,	"-1.435E-24", "%+0.3E"},
+  {__LINE__, -1.434774864809324e-24,	"-1E-24", "%2.E"},
+  {__LINE__, -1.435583851565142e-11,	"-1E-11", "%.0E"},
+  {__LINE__, -1.438791024010112e+11,	"-1.43879e+11", "%#.6g"},
+  {__LINE__, -1.439267565343777e+27,	"-1.4e+27", "%2.1e"},
+  {__LINE__, -1.439440602670449e+02,	"-143.944", "%G"},
+  {__LINE__, -1.439494412124925e+13,	"-14394944121249.251268", "%f"},
+  {__LINE__, -1.440032823245152e+10,	"-14400328232.451516", "%f"},
+  {__LINE__, -1.440174494009562e-08,	"-0.000000", "%7f"},
+  {__LINE__, -1.440827804010568e+07,	"-1.E+07", "%#6.1G"},
+  {__LINE__, -1.442760907195336e+09,	"-1.44276E+09", "%+5G"},
+  {__LINE__, -1.444655304181403e+10,	"-14446553041.814035", "%7f"},
+  {__LINE__, -1.444995766787036e+04,	"-14450", "%5G"},
+  {__LINE__, -1.445078682874535e-13,	"-1E-13", "%3.E"},
+  {__LINE__, -1.446781469662328e+01,	"-14.4678", "%G"},
+  {__LINE__, -1.447795251395321e-04,	"-0.000145", "%+f"},
+  {__LINE__, -1.448193079247108e-02,	"-0.014", "%4.2G"},
+  {__LINE__, -1.449552967961345e+14,	"-1E+14", "%1.E"},
+  {__LINE__, -1.451269763513571e+10,	"-14512697635.135705", "%6f"},
+  {__LINE__, -1.451843176990292e+12,	"-1e+12", "%1.g"},
+  {__LINE__, -1.452631405935931e+06,	"-1.452631e+06", "%e"},
+  {__LINE__, -1.452753650285897e+21,	"-1452753650285897091265.496783", "%5f"},
+  {__LINE__, -1.453811512433860e-05,	"-1e-05", "%+6.g"},
+  {__LINE__, -1.454071430557372e+13,	"-1.4541E+13", "%.4E"},
+  {__LINE__, -1.455956079562999e+03,	"-1455.96", "%G"},
+  {__LINE__, -1.459712196146602e-17,	"-1.45971e-17", "%g"},
+  {__LINE__, -1.461857733495947e-02,	"-1.4619E-02", "%.4E"},
+  {__LINE__, -1.465257069090911e-11,	"-1.465257E-11", "%+E"},
+  {__LINE__, -1.465306607257042e+05,	"-146531", "%g"},
+  {__LINE__, -1.465857076315921e+20,	"-1.46586E+20", "%+G"},
+  {__LINE__, -1.467919792051489e+16,	"-1.46792e+16", "%2g"},
+  {__LINE__, -1.469271519834567e+20,	"-146927151983456720785", "%+.0f"},
+  {__LINE__, -1.472961447442697e-28,	"-1.47296e-28", "%#g"},
+  {__LINE__, -1.473385695190456e-12,	"-1.473386E-12", "%E"},
+  {__LINE__, -1.485003089033267e-10,	"-1.485E-10", "%2G"},
+  {__LINE__, -1.490541379072390e-18,	"-1.490541E-18", "%4E"},
+  {__LINE__, -1.490683434793125e+22,	"-14906834347931249951102.472551", "%#f"},
+  {__LINE__, -1.498356837215425e+20,	"-1.49836E+20", "%#G"},
+  {__LINE__, -1.498677007818122e+14,	"-1.49868E+14", "%+4G"},
+  {__LINE__, -1.502143197677119e+23,	"-150214319767711934616727.", "%#7.f"},
+  {__LINE__, -1.503563770470753e-24,	"-1.50356e-24", "%.6g"},
+  {__LINE__, -1.504643092793197e-18,	"-1.504643e-18", "%+4e"},
+  {__LINE__, -1.507017706254022e-13,	"-1.50702e-13", "%+g"},
+  {__LINE__, -1.507054033750081e-22,	"-0.000000", "%f"},
+  {__LINE__, -1.508662346022339e+16,	"-1.508662E+16", "%#E"},
+  {__LINE__, -1.509366882438902e+08,	"-2e+08", "%4.g"},
+  {__LINE__, -1.511086567087967e+20,	"-1.51109e+20", "%g"},
+  {__LINE__, -1.514959134622707e-18,	"-0.000000", "%+f"},
+  {__LINE__, -1.515730120364204e+06,	"-2E+06", "%0.G"},
+  {__LINE__, -1.516372763118606e-09,	"-1.51637e-09", "%g"},
+  {__LINE__, -1.520610443546204e+27,	"-1.52061e+27", "%g"},
+  {__LINE__, -1.522040655642012e+11,	"-1.52204E+11", "%+2G"},
+  {__LINE__, -1.523772495014966e-24,	"-2E-24", "%2.G"},
+  {__LINE__, -1.523980825983892e-05,	"-0.000", "%2.3f"},
+  {__LINE__, -1.526696214603152e-03,	"-0.0015267", "%+6.5G"},
+  {__LINE__, -1.528680540769583e+00,	"-1.5287", "%0.5G"},
+  {__LINE__, -1.529951830525433e+08,	"-1.529952e+08", "%+e"},
+  {__LINE__, -1.533052896559935e+05,	"-153305", "%4.0f"},
+  {__LINE__, -1.533829640475152e-03,	"-0.00153383", "%+#g"},
+  {__LINE__, -1.535617804643105e-30,	"-1.535618e-30", "%e"},
+  {__LINE__, -1.537623698361821e+16,	"-15376236983618207.7875719", "%4.7f"},
+  {__LINE__, -1.544994895330616e+24,	"-1.54499e+24", "%g"},
+  {__LINE__, -1.545083356728403e+17,	"-1.545083e+17", "%e"},
+  {__LINE__, -1.545684535393879e+12,	"-1.55E+12", "%3.3G"},
+  {__LINE__, -1.545878334099427e+13,	"-15458783340994.268762", "%1f"},
+  {__LINE__, -1.547697185980564e-18,	"-1.5477e-18", "%.6g"},
+  {__LINE__, -1.548576527172579e-29,	"-1.5E-29", "%2.2G"},
+  {__LINE__, -1.549712227835891e+08,	"-1.549712e+08", "%#6.7g"},
+  {__LINE__, -1.550010819435335e-21,	"-1.55001E-21", "%G"},
+  {__LINE__, -1.551412476164257e+14,	"-1.551412E+14", "%E"},
+  {__LINE__, -1.553156638090030e+01,	" -2E+01", "%7.G"},
+  {__LINE__, -1.553733233064355e-01,	"-0.2", "%3.g"},
+  {__LINE__, -1.558391111609365e+00,	"-1.558391", "%+f"},
+  {__LINE__, -1.562004019284766e+15,	"-1.562E+15", "%6.5G"},
+  {__LINE__, -1.562195733239758e-16,	"-0.000000", "%f"},
+  {__LINE__, -1.563953339012525e-14,	"-1.56395E-14", "%1G"},
+  {__LINE__, -1.568317638534983e+18,	"-1.56832E+18", "%1G"},
+  {__LINE__, -1.568546851135348e+04,	"-15685.5", "%+#G"},
+  {__LINE__, -1.574297872228857e+18,	"-1.574298e+18", "%e"},
+  {__LINE__, -1.575696460196291e-21,	"-1.5757E-21", "%G"},
+  {__LINE__, -1.576324848379791e+25,	"-1.57632E+25", "%+G"},
+  {__LINE__, -1.577524395140843e+06,	"-1.5775E+06", "%.5G"},
+  {__LINE__, -1.585122856675091e+12,	"-1585122856675.091452", "%f"},
+  {__LINE__, -1.586734674395556e-02,	"-1.586735E-02", "%E"},
+  {__LINE__, -1.592602264315192e+22,	"-1.5926E+22", "%G"},
+  {__LINE__, -1.594121556700562e+05,	"-2E+05", "%+.0G"},
+  {__LINE__, -1.598538116193430e+22,	"-1.59854e+22", "%+g"},
+  {__LINE__, -1.605647463222382e+18,	"-1.6056E+18", "%.5G"},
+  {__LINE__, -1.610891449201191e+06,	"-1.6109E+06", "%#6.4E"},
+  {__LINE__, -1.614593168166818e-05,	"-1.61459E-05", "%G"},
+  {__LINE__, -1.615597722557325e-03,	"-0.001616", "%f"},
+  {__LINE__, -1.616038022182124e-29,	"-1.61604E-29", "%1G"},
+  {__LINE__, -1.618380771451625e-28,	"-2e-28", "%+1.g"},
+  {__LINE__, -1.620287456872150e+10,	"-1.620e+10", "%#7.3e"},
+  {__LINE__, -1.620469955611903e-29,	"-0.000000", "%f"},
+  {__LINE__, -1.622580720690927e+20,	"-1.622581E+20", "%+#E"},
+  {__LINE__, -1.622752500991079e-12,	"-1.622753E-12", "%E"},
+  {__LINE__, -1.622771933776459e+08,	"-1.6228E+08", "%+4.4E"},
+  {__LINE__, -1.623894567037391e+09,	"-1.623895e+09", "%#e"},
+  {__LINE__, -1.624021408185354e-25,	"-1.624E-25", "%.5G"},
+  {__LINE__, -1.624405320939366e-06,	"-1.62441e-06", "%+#g"},
+  {__LINE__, -1.631236208958857e-25,	"-1.631236e-25", "%#e"},
+  {__LINE__, -1.632165969536046e+20,	"-1.63217E+20", "%G"},
+  {__LINE__, -1.632859596256475e+06,	"-1.63286E+06", "%G"},
+  {__LINE__, -1.634371961703112e+06,	"-1.634372E+06", "%+E"},
+  {__LINE__, -1.637230383641845e+24,	"-1.63723e+24", "%#g"},
+  {__LINE__, -1.638081480475853e+17,	"-1.63808e+17", "%+g"},
+  {__LINE__, -1.638279690467673e+14,	"-163827969046767.325523", "%#f"},
+  {__LINE__, -1.640360249548215e-29,	"-1.64036e-29", "%+6.6g"},
+  {__LINE__, -1.645691728060833e-30,	"-1.64569e-30", "%g"},
+  {__LINE__, -1.648548965852592e-03,	"   -0", "%5.f"},
+  {__LINE__, -1.650100957771182e+21,	"-1650100957771182308420.065965", "%+f"},
+  {__LINE__, -1.650957176011913e-02,	"-0.016510", "%#4.5G"},
+  {__LINE__, -1.651165108095301e+29,	"-165116510809530137038336761179.380119", "%f"},
+  {__LINE__, -1.657132845094847e-06,	"-0.000002", "%f"},
+  {__LINE__, -1.657152146172541e+12,	"-1.657152E+12", "%.7G"},
+  {__LINE__, -1.658377345516132e-06,	"-0.00", "%.2f"},
+  {__LINE__, -1.658850468902324e+20,	"-1.659e+20", "%.4g"},
+  {__LINE__, -1.661723557149830e+18,	"-1.66172E+18", "%G"},
+  {__LINE__, -1.663570885140273e+14,	"-166357088514027", "%2.f"},
+  {__LINE__, -1.665186944896906e+25,	"-1.66519E+25", "%G"},
+  {__LINE__, -1.675910137717036e+22,	"-2e+22", "%5.g"},
+  {__LINE__, -1.677447987675587e-15,	"-1.67745E-15", "%G"},
+  {__LINE__, -1.677510590697220e+06,	"-1677510.590697", "%5f"},
+  {__LINE__, -1.677658141289510e-18,	"-2E-18", "%+5.G"},
+  {__LINE__, -1.678316848066192e-03,	"-1.678317E-03", "%E"},
+  {__LINE__, -1.681506404024821e+24,	"-1.68151E+24", "%G"},
+  {__LINE__, -1.688584243722160e+12,	"-1.68858E+12", "%+#G"},
+  {__LINE__, -1.689468295411408e+28,	"-1.68947E+28", "%+G"},
+  {__LINE__, -1.690746767470207e-11,	"-1.69075E-11", "%G"},
+  {__LINE__, -1.692773960755248e-14,	"-2E-14", "%4.E"},
+  {__LINE__, -1.693349092740995e-18,	"-1.69335e-18", "%g"},
+  {__LINE__, -1.693642321808920e-26,	"-1.69364E-26", "%G"},
+  {__LINE__, -1.694579128700042e-12,	"-0.000000", "%f"},
+  {__LINE__, -1.695454897264717e-08,	"-1.7E-08", "%+4.3G"},
+  {__LINE__, -1.695733278397589e+19,	"-1.695733e+19", "%4e"},
+  {__LINE__, -1.699522534409388e-05,	"-1.69952E-05", "%G"},
+  {__LINE__, -1.701752039544919e+00,	"-2", "%.0f"},
+  {__LINE__, -1.702304998615036e+16,	"-1.7023E+16", "%1G"},
+  {__LINE__, -1.703113580904556e-25,	"-1.703114e-25", "%+e"},
+  {__LINE__, -1.705165515454546e+29,	"-1.705166e+29", "%+e"},
+  {__LINE__, -1.707392568277288e-05,	"-1.70739E-05", "%G"},
+  {__LINE__, -1.707477319256742e+09,	"-1707477319.26", "%7.2f"},
+  {__LINE__, -1.709669107513969e-03,	" -0.002", "%7.g"},
+  {__LINE__, -1.713284011412432e-24,	"-1.713e-24", "%3.3e"},
+  {__LINE__, -1.715512203951086e-28,	"-1.715512E-28", "%E"},
+  {__LINE__, -1.716880832248879e+13,	"-1.71688e+13", "%+g"},
+  {__LINE__, -1.720722835740680e-15,	"-1.7E-15", "%.1E"},
+  {__LINE__, -1.721855769574895e+07,	"-17218557.695749", "%3f"},
+  {__LINE__, -1.722449437415368e+01,	"-1.722449e+01", "%e"},
+  {__LINE__, -1.723218805116591e-29,	"-2e-29", "%.0g"},
+  {__LINE__, -1.726129004920195e-05,	"-1.72613E-05", "%0G"},
+  {__LINE__, -1.727400228037571e-28,	"-0.0000000", "%2.7f"},
+  {__LINE__, -1.730008745782339e-23,	"-1.73e-23", "%.4g"},
+  {__LINE__, -1.731875670201859e+09,	"-1.73188E+09", "%G"},
+  {__LINE__, -1.732142976428085e+10,	"-2E+10", "%+6.0E"},
+  {__LINE__, -1.732699651229194e-02,	"-0.017327", "%5g"},
+  {__LINE__, -1.734772870736446e-12,	"-0.000000", "%+f"},
+  {__LINE__, -1.738576887938331e+09,	"-1.73858e+09", "%g"},
+  {__LINE__, -1.738759937912438e-08,	"-1.73876e-08", "%+2g"},
+  {__LINE__, -1.739320154069143e-18,	"-0.0000", "%1.4f"},
+  {__LINE__, -1.739870415800800e+16,	"-1.73987e+16", "%g"},
+  {__LINE__, -1.741290506928618e+04,	"-17412.9", "%G"},
+  {__LINE__, -1.742520800031913e+29,	"-1.742521e+29", "%7e"},
+  {__LINE__, -1.747620095195231e+01,	"-2e+01", "%+2.g"},
+  {__LINE__, -1.749860675924882e-21,	"-1.74986E-21", "%G"},
+  {__LINE__, -1.752675363661431e-06,	"-1.7527E-06", "%.5G"},
+  {__LINE__, -1.752871508059699e-06,	"     -0", "%7.f"},
+  {__LINE__, -1.755178530989839e+25,	"-1.7551785e+25", "%1.7e"},
+  {__LINE__, -1.755566213249512e-07,	"-1.755566e-07", "%.6e"},
+  {__LINE__, -1.756193485005071e-24,	"-1.75619E-24", "%+2.6G"},
+  {__LINE__, -1.758501410496218e+03,	"-1758.501", "%.7G"},
+  {__LINE__, -1.758795617219102e+20,	"-1.75880E+20", "%#6G"},
+  {__LINE__, -1.760538679276709e+03,	"-2e+03", "%+1.e"},
+  {__LINE__, -1.762660914833003e+27,	"-1.76266E+27", "%G"},
+  {__LINE__, -1.765122691141907e+19,	"-17651226911419071186.1", "%5.1f"},
+  {__LINE__, -1.765313277389086e-18,	"-2E-18", "%+1.E"},
+  {__LINE__, -1.765821717148734e+19,	"-1.76582E+19", "%G"},
+  {__LINE__, -1.767048687863149e-17,	"-1.77E-17", "%+.3G"},
+  {__LINE__, -1.768661645451962e+18,	"-1.77E+18", "%+.3G"},
+  {__LINE__, -1.769753257452233e+01,	"-17.6975", "%G"},
+  {__LINE__, -1.770945665065531e+28,	"-1.770946E+28", "%0.7G"},
+  {__LINE__, -1.776713865753894e-09,	"-2e-09", "%1.g"},
+  {__LINE__, -1.778424845787448e+03,	"-1.7784E+03", "%.4E"},
+  {__LINE__, -1.779060610701250e+06,	"-1.779061E+06", "%E"},
+  {__LINE__, -1.781447182110762e-27,	"-1.781447E-27", "%E"},
+  {__LINE__, -1.782655842123784e-13,	"-2.E-13", "%#2.1G"},
+  {__LINE__, -1.783071018169166e+16,	"-17830710181691664.217851", "%+f"},
+  {__LINE__, -1.784665985294415e+25,	"-2E+25", "%3.G"},
+  {__LINE__, -1.787297600658096e+25,	"-2E+25", "%+5.E"},
+  {__LINE__, -1.788200250255718e+12,	"-1.7882E+12", "%2.4E"},
+  {__LINE__, -1.792860730579114e-09,	"-1.79286E-09", "%G"},
+  {__LINE__, -1.793122797100936e+24,	"-1.793123e+24", "%e"},
+  {__LINE__, -1.793761706915029e-25,	"-0.000000", "%f"},
+  {__LINE__, -1.793947567431932e+22,	"-1.79395e+22", "%g"},
+  {__LINE__, -1.796428035404303e-18,	"-1.79643e-18", "%g"},
+  {__LINE__, -1.797113144273918e-16,	"-1.79711E-16", "%.6G"},
+  {__LINE__, -1.798796767828424e-29,	"-1.7988E-29", "%G"},
+  {__LINE__, -1.805004010633763e-11,	"-1.805e-11", "%2.5g"},
+  {__LINE__, -1.806936269752338e-26,	"-1.80694e-26", "%g"},
+  {__LINE__, -1.807122541760172e-10,	"-1.80712e-10", "%g"},
+  {__LINE__, -1.808295407815630e-06,	"-1.8083E-06", "%+G"},
+  {__LINE__, -1.813893236685959e+15,	"-1813893236685959", "%0.f"},
+  {__LINE__, -1.816201530145367e+06,	"-1816202", "%+2.f"},
+  {__LINE__, -1.822811219123512e+13,	"-1.82281e+13", "%g"},
+  {__LINE__, -1.826276499170243e-25,	"-2E-25", "%+3.G"},
+  {__LINE__, -1.832399287433839e-26,	"-1.832399E-26", "%#4E"},
+  {__LINE__, -1.833597815584463e-18,	"-0.000000", "%+3f"},
+  {__LINE__, -1.834165532712233e+28,	"-1.834166E+28", "%.7G"},
+  {__LINE__, -1.837633147831083e+28,	"-1.8376331e+28", "%.7e"},
+  {__LINE__, -1.839756716742518e-01,	"-0.2", "%+0.G"},
+  {__LINE__, -1.840101206950368e-14,	"-1.840101E-14", "%+E"},
+  {__LINE__, -1.842043645474877e+17,	"-1.84204e+17", "%+g"},
+  {__LINE__, -1.842155892969934e+17,	"-1.84216e+17", "%+g"},
+  {__LINE__, -1.843566073012842e-25,	"-1.84357E-25", "%G"},
+  {__LINE__, -1.843976321320497e-02,	"-0.02", "%+4.2f"},
+  {__LINE__, -1.845299931651554e+11,	"-1.8453E+11", "%0.4E"},
+  {__LINE__, -1.846199038659889e-06,	"-1.8462e-06", "%0.5g"},
+  {__LINE__, -1.847062180184169e-30,	"-1.847062E-30", "%5E"},
+  {__LINE__, -1.847962158722201e-16,	"-0.000000", "%f"},
+  {__LINE__, -1.849446376756582e+15,	"-1.8E+15", "%2.2G"},
+  {__LINE__, -1.853168465523878e-24,	"-2E-24", "%1.E"},
+  {__LINE__, -1.853601367230139e+10,	"-1.853601e+10", "%e"},
+  {__LINE__, -1.857367903775364e+18,	"-1.86E+18", "%1.3G"},
+  {__LINE__, -1.858332820633906e-05,	"-0.000019", "%7f"},
+  {__LINE__, -1.860243811657223e-23,	"-1.860244e-23", "%e"},
+  {__LINE__, -1.860660612539794e+08,	"-1.86066e+08", "%+6.5e"},
+  {__LINE__, -1.861160816251124e-09,	"-2E-09", "%1.G"},
+  {__LINE__, -1.862380636974688e-25,	"-1.9E-25", "%.2G"},
+  {__LINE__, -1.864168808453004e+15,	"-1.86417E+15", "%G"},
+  {__LINE__, -1.864273144411246e+07,	"-1.86427e+07", "%g"},
+  {__LINE__, -1.864929236615802e-02,	"-2e-02", "%+3.e"},
+  {__LINE__, -1.865010503480847e+19,	"-2E+19", "%4.G"},
+  {__LINE__, -1.866276374553144e+22,	"-1.866276e+22", "%e"},
+  {__LINE__, -1.870809567910649e+09,	"-1.870810e+09", "%e"},
+  {__LINE__, -1.872555495839008e-13,	"-1.872555E-13", "%3E"},
+  {__LINE__, -1.874465717110388e-22,	"-1.874466E-22", "%E"},
+  {__LINE__, -1.874916306627632e+21,	"-1874916306627632422987.517202", "%f"},
+  {__LINE__, -1.875804322194491e-23,	"-0.000000", "%+f"},
+  {__LINE__, -1.876662099198587e-04,	"-0.000187666", "%G"},
+  {__LINE__, -1.876775504795760e-25,	"-1.87678e-25", "%0g"},
+  {__LINE__, -1.879343051002554e-20,	"   -0.", "%#6.f"},
+  {__LINE__, -1.881535445774717e-15,	"-1.881535e-15", "%e"},
+  {__LINE__, -1.887515901404300e+00,	"-1.888", "%2.4G"},
+  {__LINE__, -1.887730637149009e+17,	"-1.887731E+17", "%E"},
+  {__LINE__, -1.889920303480086e+17,	"-1.889920e+17", "%+e"},
+  {__LINE__, -1.891903478784091e+04,	"-1.891903e+04", "%e"},
+  {__LINE__, -1.893550084305833e+16,	"-1.89355e+16", "%g"},
+  {__LINE__, -1.894675230197676e+05,	"-1.894675e+05", "%#e"},
+  {__LINE__, -1.898389624953187e-27,	"-1.898390e-27", "%+e"},
+  {__LINE__, -1.899250044644046e+21,	"-1899250044644046120367.875119", "%+4.6f"},
+  {__LINE__, -1.904187609804679e-02,	"-1.90419E-02", "%0.5E"},
+  {__LINE__, -1.904452538421193e-04,	"-2e-04", "%4.0e"},
+  {__LINE__, -1.904615326969061e-16,	"-1.904615e-16", "%1.7g"},
+  {__LINE__, -1.907761255064750e+02,	"-190.776126", "%f"},
+  {__LINE__, -1.910727641826707e-10,	" -2e-10", "%7.g"},
+  {__LINE__, -1.913149279262051e+15,	"-1.913149e+15", "%.7g"},
+  {__LINE__, -1.913235739298009e+28,	"-1.913236e+28", "%e"},
+  {__LINE__, -1.913526822735271e+18,	"-1.914e+18", "%.4g"},
+  {__LINE__, -1.913780977515583e+17,	"-191378097751558335.9150", "%5.4f"},
+  {__LINE__, -1.917095456962182e-10,	"-2E-10", "%4.G"},
+  {__LINE__, -1.918803033972851e+23,	"-191880303397285132405158.947222", "%f"},
+  {__LINE__, -1.926420984801848e+16,	"-19264209848018483.128840", "%+f"},
+  {__LINE__, -1.931905465942639e-10,	"-1.93191e-10", "%g"},
+  {__LINE__, -1.932907105840252e+06,	"-1.932907e+06", "%+#e"},
+  {__LINE__, -1.933091601918916e+15,	"-1.933092E+15", "%#E"},
+  {__LINE__, -1.934296184983361e+09,	"-1.9343e+09", "%1.6g"},
+  {__LINE__, -1.934637311832448e+11,	"-1.93464e+11", "%+g"},
+  {__LINE__, -1.936201483262186e+12,	"-2e+12", "%+6.g"},
+  {__LINE__, -1.939114661603911e+19,	"-1.93911E+19", "%G"},
+  {__LINE__, -1.940478182124347e-13,	"-0.000000", "%f"},
+  {__LINE__, -1.943218220654923e+08,	"-2E+08", "%+5.0G"},
+  {__LINE__, -1.943526872455779e-30,	"-1.9E-30", "%.1E"},
+  {__LINE__, -1.949869164681357e+19,	"-1.949869e+19", "%#3e"},
+  {__LINE__, -1.954181060535402e+23,	"-1.954181e+23", "%e"},
+  {__LINE__, -1.961581555579142e+14,	"-1.962E+14", "%.3E"},
+  {__LINE__, -1.964535562036915e+07,	"-1.96454E+07", "%G"},
+  {__LINE__, -1.969749653575926e+04,	"-19697.5", "%.6g"},
+  {__LINE__, -1.973475369169053e+15,	"-1.97348e+15", "%g"},
+  {__LINE__, -1.975658532866600e-21,	"-2e-21", "%+1.2g"},
+  {__LINE__, -1.984050343831260e+09,	"-1.984050E+09", "%E"},
+  {__LINE__, -1.984422410018571e+12,	"-1.984422e+12", "%+4.7g"},
+  {__LINE__, -1.984878687667223e-22,	"-0.000000", "%f"},
+  {__LINE__, -1.986116930967811e-28,	"-1.98612e-28", "%g"},
+  {__LINE__, -1.986774457812683e+02,	"-1.986774e+02", "%e"},
+  {__LINE__, -1.987274814938726e-04,	"-0.000198727", "%g"},
+  {__LINE__, -1.987319200580415e+10,	"-1.987319E+10", "%E"},
+  {__LINE__, -1.987980768698114e-19,	"-0.000000", "%3f"},
+  {__LINE__, -1.994698965044602e-29,	"-2E-29", "%+4.0G"},
+  {__LINE__, -1.997833122667050e+26,	"-1.99783E+26", "%G"},
+  {__LINE__, -1.999453681184129e-10,	"-0.00000", "%.5f"},
+  {__LINE__, -1.999897345839745e-16,	"-1.9999e-16", "%g"},
+  {__LINE__, -2.003703825123989e-22,	"-0.000000", "%f"},
+  {__LINE__, -2.004569188274957e-23,	"-2.00457E-23", "%G"},
+  {__LINE__, -2.005911883189058e+07,	"-2.00591E+07", "%G"},
+  {__LINE__, -2.006438312005722e-25,	"-2.006e-25", "%0.4g"},
+  {__LINE__, -2.017322171210280e+18,	"-2.01732E+18", "%+0G"},
+  {__LINE__, -2.017718635819594e-06,	"-2.01772e-06", "%5g"},
+  {__LINE__, -2.019187445568160e-12,	"-0.00", "%.2f"},
+  {__LINE__, -2.021022665608503e+25,	"-20210226656085028551501636.684", "%2.3f"},
+  {__LINE__, -2.022720393474145e+07,	"-2.02272E+07", "%#G"},
+  {__LINE__, -2.024506694471065e+23,	"-2.02451E+23", "%G"},
+  {__LINE__, -2.024884686553821e-15,	" -2e-15", "%7.g"},
+  {__LINE__, -2.027484636128966e-23,	"-2.0275E-23", "%.5G"},
+  {__LINE__, -2.028185530467237e+21,	"-2028185530467237374097.067", "%+4.3f"},
+  {__LINE__, -2.028388905566873e-09,	"-0.000000", "%f"},
+  {__LINE__, -2.029856507431584e-17,	"-2.02986E-17", "%G"},
+  {__LINE__, -2.029891733449167e+27,	"-2029891733449166846270372843.7190875", "%3.7f"},
+  {__LINE__, -2.031933616694469e+14,	"-2.031934E+14", "%#E"},
+  {__LINE__, -2.034011738471413e-10,	"-2.03401E-10", "%#G"},
+  {__LINE__, -2.036087355975756e+29,	"-203608735597575574161055556032.806635", "%+f"},
+  {__LINE__, -2.036355025137273e+09,	"-2.036355E+09", "%#.7G"},
+  {__LINE__, -2.038423730536878e+12,	"-2E+12", "%4.G"},
+  {__LINE__, -2.045209202278810e+23,	"-2.045209e+23", "%+#e"},
+  {__LINE__, -2.046794083517423e-06,	"-2.04679e-06", "%g"},
+  {__LINE__, -2.048042459678599e-19,	"-0.000000", "%f"},
+  {__LINE__, -2.050526462096153e+18,	"-2.05053e+18", "%+g"},
+  {__LINE__, -2.053583900249402e+13,	"-2.053584e+13", "%0.7g"},
+  {__LINE__, -2.054342100957522e-23,	"-2.05434E-23", "%#G"},
+  {__LINE__, -2.054793400141025e+11,	"-205479340014.1", "%+2.1f"},
+  {__LINE__, -2.059200689196498e-11,	"-0.000000", "%#f"},
+  {__LINE__, -2.060960692728114e-16,	"-0.000000", "%+f"},
+  {__LINE__, -2.061417528654300e-30,	"-2.06E-30", "%.3G"},
+  {__LINE__, -2.061513401198340e-29,	"-2.06151e-29", "%7g"},
+  {__LINE__, -2.061846698845984e+27,	"-2.061847E+27", "%E"},
+  {__LINE__, -2.063922242876789e-19,	"-2.06392e-19", "%#g"},
+  {__LINE__, -2.065359431805529e+03,	"-2065.359432", "%f"},
+  {__LINE__, -2.065529069992156e-04,	"-0.000206553", "%+G"},
+  {__LINE__, -2.066082546490980e-25,	"-2.06608e-25", "%5g"},
+  {__LINE__, -2.068394312095200e+17,	"-2.068394e+17", "%e"},
+  {__LINE__, -2.071024178556425e-10,	"-2.07102E-10", "%G"},
+  {__LINE__, -2.074401605950382e-22,	"-2.07e-22", "%1.3g"},
+  {__LINE__, -2.074731895144874e-26,	"-2.07473E-26", "%G"},
+  {__LINE__, -2.074895800882730e+18,	"-2074895800882730068.082083", "%+f"},
+  {__LINE__, -2.077336220500764e-30,	"-0", "%2.f"},
+  {__LINE__, -2.078067878561077e+09,	"-2.0781e+09", "%0.5g"},
+  {__LINE__, -2.080497889634533e+15,	"-2.080498E+15", "%4E"},
+  {__LINE__, -2.084717279367594e-21,	"-2.08472e-21", "%+g"},
+  {__LINE__, -2.087827915301948e+29,	"-2E+29", "%6.1G"},
+  {__LINE__, -2.090268686389680e+05,	"-2.090269e+05", "%1e"},
+  {__LINE__, -2.092036176589720e+24,	"-2.09204e+24", "%+g"},
+  {__LINE__, -2.093546373938615e-21,	"-2.093546e-21", "%#e"},
+  {__LINE__, -2.101302069316682e+18,	"-2.1013e+18", "%+7g"},
+  {__LINE__, -2.103463622286002e-13,	"-2.103464E-13", "%E"},
+  {__LINE__, -2.105622845016732e+06,	"-2105622.845017", "%1f"},
+  {__LINE__, -2.109999123037767e+28,	"-2.11E+28", "%.2E"},
+  {__LINE__, -2.110317013992166e+04,	"-21103.2", "%+g"},
+  {__LINE__, -2.112226142154618e+21,	"-2112226142154617569702.", "%#6.f"},
+  {__LINE__, -2.112519484486528e+06,	"-2.11252E+06", "%G"},
+  {__LINE__, -2.113439260812000e+23,	"-2E+23", "%1.G"},
+  {__LINE__, -2.113465893194608e-15,	"-2.1135E-15", "%.5G"},
+  {__LINE__, -2.113547784669409e+20,	"-2.1135e+20", "%2.5g"},
+  {__LINE__, -2.114146001321822e+28,	"-2.114146e+28", "%e"},
+  {__LINE__, -2.114509425574444e-30,	"  -0", "%4.f"},
+  {__LINE__, -2.114887421659561e-21,	"-0.000000", "%+f"},
+  {__LINE__, -2.121120215127601e+21,	"-2121120215127601404958.5683097", "%.7f"},
+  {__LINE__, -2.122555390665796e+06,	"-2E+06", "%0.G"},
+  {__LINE__, -2.123468430242052e-27,	"-0.000000", "%+f"},
+  {__LINE__, -2.123473598890635e+28,	"-2.12347e+28", "%+g"},
+  {__LINE__, -2.124328049748190e-04,	"-2.124328E-04", "%E"},
+  {__LINE__, -2.125633890999010e+28,	"-2E+28", "%+5.G"},
+  {__LINE__, -2.125697963566045e+21,	"-2.1257E+21", "%0G"},
+  {__LINE__, -2.127638109230109e+06,	"-2.12764e+06", "%+6g"},
+  {__LINE__, -2.128456114617786e+07,	"-2.128456E+07", "%E"},
+  {__LINE__, -2.128732742932824e-04,	"-2.128733E-04", "%#E"},
+  {__LINE__, -2.129654381588404e+27,	"-2129654381588404365999167566.7697564", "%+.7f"},
+  {__LINE__, -2.129792795009985e+20,	"-2.12979e+20", "%g"},
+  {__LINE__, -2.131026925664619e-20,	"-2e-20", "%.0e"},
+  {__LINE__, -2.132860730144188e-04,	"-0.0002", "%5.g"},
+  {__LINE__, -2.133620979309562e+06,	"-2e+06", "%3.e"},
+  {__LINE__, -2.133821423139120e-27,	"-2.13382E-27", "%.6G"},
+  {__LINE__, -2.134253401425940e-07,	"-0.000000", "%f"},
+  {__LINE__, -2.135469568156964e-29,	"-2.135470E-29", "%+7E"},
+  {__LINE__, -2.135723595288365e-25,	"-0.0", "%.1f"},
+  {__LINE__, -2.137642458920094e-09,	"-2.13764e-09", "%g"},
+  {__LINE__, -2.143412361116583e+12,	"-2.14341e+12", "%+g"},
+  {__LINE__, -2.144467087741129e-17,	"-2.14447e-17", "%+g"},
+  {__LINE__, -2.145726966596964e-11,	"-0.000000", "%2f"},
+  {__LINE__, -2.148318753042597e+08,	"-2.14832E+08", "%5G"},
+  {__LINE__, -2.149932310549644e-19,	"-2.14993e-19", "%g"},
+  {__LINE__, -2.150050917377646e-21,	" -0", "%3.f"},
+  {__LINE__, -2.150854313643430e-16,	"-0.000000", "%.6f"},
+  {__LINE__, -2.151071797121845e+00,	"-2.15107", "%+g"},
+  {__LINE__, -2.158728406865981e+14,	"-215872840686598.088666", "%7f"},
+  {__LINE__, -2.166062878011641e-23,	"-2.166063e-23", "%e"},
+  {__LINE__, -2.167045002060684e+12,	"-2.167045E+12", "%E"},
+  {__LINE__, -2.173752581051530e+20,	"-217375258105153035259.604621", "%f"},
+  {__LINE__, -2.175599129057555e+24,	"-2.175599E+24", "%E"},
+  {__LINE__, -2.176564454093042e-02,	"-0.0217656", "%+G"},
+  {__LINE__, -2.181270774327071e-12,	"-0.000000", "%#1f"},
+  {__LINE__, -2.184404769844158e-09,	"-2.2E-09", "%+.2G"},
+  {__LINE__, -2.184881476334310e-07,	"-2.18488e-07", "%g"},
+  {__LINE__, -2.189197211449684e-11,	"-2E-11", "%.0G"},
+  {__LINE__, -2.189451286805190e+20,	"-218945128680519029984", "%3.f"},
+  {__LINE__, -2.190642494146884e-27,	" -0.", "%#4.f"},
+  {__LINE__, -2.194727956725854e+06,	"-2.19E+06", "%.3G"},
+  {__LINE__, -2.196145868303877e+11,	"-219614586830.387726", "%+5f"},
+  {__LINE__, -2.196397972262690e-16,	"-0.000000", "%3f"},
+  {__LINE__, -2.202692843474668e-01,	"-2.203e-01", "%.3e"},
+  {__LINE__, -2.204528684782451e-21,	"-2.20453E-21", "%G"},
+  {__LINE__, -2.214926838821340e-16,	"-2e-16", "%+2.g"},
+  {__LINE__, -2.215558986352773e+18,	"-2215558986352773374", "%0.f"},
+  {__LINE__, -2.216976693056186e+27,	"-2216976693056186498154147557.215765", "%f"},
+  {__LINE__, -2.217348422793322e+13,	"-2.21735E+13", "%6G"},
+  {__LINE__, -2.217732695583920e-07,	"-0", "%.0f"},
+  {__LINE__, -2.221185494767834e-14,	"-2.22119e-14", "%g"},
+  {__LINE__, -2.224557193699609e-16,	"-2.224557E-16", "%E"},
+  {__LINE__, -2.227417758704028e-18,	"-0.000000", "%0f"},
+  {__LINE__, -2.231261655673006e-30,	"-2.231262E-30", "%E"},
+  {__LINE__, -2.233081938836160e+21,	"-2233081938836160240668.960", "%+6.3f"},
+  {__LINE__, -2.233158918439853e+05,	"-223316", "%2G"},
+  {__LINE__, -2.233802298007898e-30,	"-2.2338E-30", "%2G"},
+  {__LINE__, -2.233864858404732e+17,	"-223386485840473181.241350", "%f"},
+  {__LINE__, -2.241242805107749e+14,	"-2.24124E+14", "%G"},
+  {__LINE__, -2.244555498855249e+25,	"-2.24456E+25", "%#G"},
+  {__LINE__, -2.248170665127481e-07,	"-2.248171E-07", "%E"},
+  {__LINE__, -2.252558275567388e-13,	"-2.25256e-13", "%g"},
+  {__LINE__, -2.256190083496001e+13,	"-22561900834960.0136398", "%7.7f"},
+  {__LINE__, -2.259851596715945e+27,	"-2.259852e+27", "%e"},
+  {__LINE__, -2.260461480001174e-21,	"-0.000000", "%f"},
+  {__LINE__, -2.264128628428577e+22,	"-2.26413e+22", "%1g"},
+  {__LINE__, -2.265914518399595e-04,	"-0.000226591", "%G"},
+  {__LINE__, -2.266251557092826e+23,	"-2.26625e+23", "%g"},
+  {__LINE__, -2.268592252572450e+19,	"-2.268592e+19", "%2.6e"},
+  {__LINE__, -2.268597523847349e+11,	"-2.2686e+11", "%g"},
+  {__LINE__, -2.268963106935546e+05,	"-226896", "%+g"},
+  {__LINE__, -2.272527876808919e-24,	"-0.000000", "%#f"},
+  {__LINE__, -2.273366440479073e+02,	"-227.337", "%g"},
+  {__LINE__, -2.277858038556191e+25,	"-2.28E+25", "%0.3G"},
+  {__LINE__, -2.282019915623415e+25,	"-2E+25", "%5.E"},
+  {__LINE__, -2.283333247435650e-27,	"  -0", "%4.f"},
+  {__LINE__, -2.285230610829355e+23,	"-2E+23", "%2.G"},
+  {__LINE__, -2.290900253402985e+23,	"-2.2909E+23", "%G"},
+  {__LINE__, -2.293266953268186e+08,	"-2.29327e+08", "%g"},
+  {__LINE__, -2.293489603164786e+23,	"-229348960316478578391752.3076525", "%4.7f"},
+  {__LINE__, -2.294434667605481e+15,	"-2.2944E+15", "%.5G"},
+  {__LINE__, -2.296607768466765e+21,	"-2.29661E+21", "%G"},
+  {__LINE__, -2.297449967994012e+14,	"-229744996799401.23542", "%+.5f"},
+  {__LINE__, -2.301162556466583e-01,	"-0.230116", "%+#2g"},
+  {__LINE__, -2.301676246374004e+05,	"-230168.", "%#g"},
+  {__LINE__, -2.301976724487835e-01,	"-0.230198", "%5G"},
+  {__LINE__, -2.303269770571222e-15,	"-2.303270e-15", "%.6e"},
+  {__LINE__, -2.306451480495636e+23,	"-2.30645E+23", "%G"},
+  {__LINE__, -2.307659351219690e-17,	"-0.000000", "%+3f"},
+  {__LINE__, -2.309009762339430e+16,	"-2.30901E+16", "%G"},
+  {__LINE__, -2.309261751862100e+06,	"-2309261.751862", "%+f"},
+  {__LINE__, -2.309504876918634e-26,	" -2E-26", "%7.E"},
+  {__LINE__, -2.310910348147804e-26,	"-2e-26", "%5.g"},
+  {__LINE__, -2.317173552252235e+05,	"-231717.4", "%.7g"},
+  {__LINE__, -2.319517289618469e-23,	"-2.31952E-23", "%+G"},
+  {__LINE__, -2.320103195142527e+08,	"-2.320103E+08", "%+E"},
+  {__LINE__, -2.323523032125633e+24,	"-2323523032125633491773442.07419", "%.5f"},
+  {__LINE__, -2.326279126614399e-16,	"-0.000000", "%f"},
+  {__LINE__, -2.331393688620925e-09,	"-2.33139e-09", "%#g"},
+  {__LINE__, -2.334233527512469e+01,	"   -23", "%6.0f"},
+  {__LINE__, -2.337418834112767e+24,	" -2E+24", "%7.E"},
+  {__LINE__, -2.339455293612118e+12,	"-2339455293612.1", "%+.1f"},
+  {__LINE__, -2.341930318143367e-18,	"-2.E-18", "%#4.E"},
+  {__LINE__, -2.346107614950921e-17,	"-0.00000", "%+2.5f"},
+  {__LINE__, -2.348356578807972e+23,	"-2.34836e+23", "%g"},
+  {__LINE__, -2.351485855138244e+19,	"-2.351486e+19", "%+e"},
+  {__LINE__, -2.362101647639198e-15,	"-2.36210e-15", "%#g"},
+  {__LINE__, -2.369743873030115e+08,	"-2e+08", "%.1g"},
+  {__LINE__, -2.371658164739356e+25,	"-23716581647393559784120498.079574", "%f"},
+  {__LINE__, -2.372427847607163e+28,	"-2.37243E+28", "%G"},
+  {__LINE__, -2.375465465294647e+11,	"-2.375465e+11", "%e"},
+  {__LINE__, -2.377128971572195e-18,	"-0.0", "%1.1f"},
+  {__LINE__, -2.380322448568089e-13,	"-2.38032E-13", "%+#0G"},
+  {__LINE__, -2.385960728264882e+26,	"-2E+26", "%.0E"},
+  {__LINE__, -2.387345744004747e+00,	"-2.38735", "%G"},
+  {__LINE__, -2.390480023300201e+25,	"-2.39048e+25", "%g"},
+  {__LINE__, -2.395420431930886e+23,	"-2E+23", "%2.E"},
+  {__LINE__, -2.401144663870969e-10,	"-2.e-10", "%#6.g"},
+  {__LINE__, -2.402787441215039e-08,	"-2.40279e-08", "%g"},
+  {__LINE__, -2.402990830425278e+08,	"-2.40299E+08", "%G"},
+  {__LINE__, -2.404213682932215e+08,	"-2.40421e+08", "%2g"},
+  {__LINE__, -2.409385592298822e+21,	"-2409385592298821876511.283335", "%7f"},
+  {__LINE__, -2.410798267658614e+13,	"-2.4108e+13", "%+g"},
+  {__LINE__, -2.413180068271811e-24,	"-0.000000", "%+f"},
+  {__LINE__, -2.413268457113495e+26,	"-2.41327E+26", "%3.6G"},
+  {__LINE__, -2.415341832206007e-13,	"-0.000000", "%+f"},
+  {__LINE__, -2.422519577068670e-08,	"-0.0000000", "%.7f"},
+  {__LINE__, -2.422533651282808e+20,	"-2.42253E+20", "%#G"},
+  {__LINE__, -2.422795006880671e+17,	"-2.4228e+17", "%g"},
+  {__LINE__, -2.423483330202008e+20,	"-2.42348e+20", "%g"},
+  {__LINE__, -2.431756009640369e-04,	"-0.000243176", "%+#3g"},
+  {__LINE__, -2.431878622534173e-05,	"-0.000024", "%f"},
+  {__LINE__, -2.432012113077180e+24,	"-2.43201e+24", "%g"},
+  {__LINE__, -2.433843704470487e+07,	"-24338437", "%4.f"},
+  {__LINE__, -2.435475755031956e+11,	"-2.435476E+11", "%1E"},
+  {__LINE__, -2.438081888695437e-13,	"-0.000000", "%f"},
+  {__LINE__, -2.438334590462860e+10,	"-2.4E+10", "%5.2G"},
+  {__LINE__, -2.440223135334059e+17,	"-2.44022e+17", "%g"},
+  {__LINE__, -2.444107281115317e-21,	"-2.44411e-21", "%+g"},
+  {__LINE__, -2.444582273206171e-02,	"  -0.02", "%7.G"},
+  {__LINE__, -2.445234676352794e+23,	"-2.44523e+23", "%#g"},
+  {__LINE__, -2.449185020984714e+08,	"-2.E+08", "%#2.G"},
+  {__LINE__, -2.450646640466020e+22,	"-2.45065E+22", "%5G"},
+  {__LINE__, -2.456840850262473e+13,	"-24568408502625", "%0.f"},
+  {__LINE__, -2.464466865714499e-10,	"-2e-10", "%6.g"},
+  {__LINE__, -2.466022088999151e+27,	"-2.46602E+27", "%G"},
+  {__LINE__, -2.484398113119779e-04,	"-2.484398E-04", "%E"},
+  {__LINE__, -2.484591850456328e+23,	"-248459185045632846566832.085955", "%+f"},
+  {__LINE__, -2.488166252162446e-11,	"-2.5E-11", "%4.2G"},
+  {__LINE__, -2.493507313049390e+24,	"-2.49E+24", "%4.3G"},
+  {__LINE__, -2.500280281988428e+28,	"-2.5E+28", "%.4G"},
+  {__LINE__, -2.500373956445372e-07,	"-2.50037e-07", "%g"},
+  {__LINE__, -2.505566434769299e-12,	"-2.5E-12", "%+#0.2G"},
+  {__LINE__, -2.508215917020758e+05,	"-2.508216e+05", "%5e"},
+  {__LINE__, -2.519368094680315e-29,	"-2.51937e-29", "%#0g"},
+  {__LINE__, -2.522266530587753e-11,	"-2.52227e-11", "%+g"},
+  {__LINE__, -2.534492886372514e-06,	"-2.53449E-06", "%0G"},
+  {__LINE__, -2.534617610955074e-02,	"-0.03", "%0.2f"},
+  {__LINE__, -2.540551642835634e+26,	"-3E+26", "%4.G"},
+  {__LINE__, -2.548210731830516e-26,	"-0.000", "%2.3f"},
+  {__LINE__, -2.558868082397931e-11,	"-3E-11", "%2.E"},
+  {__LINE__, -2.560062512991052e+11,	"-2.56006E+11", "%+G"},
+  {__LINE__, -2.561274682814428e-05,	"-0.000026", "%f"},
+  {__LINE__, -2.563424949397357e-02,	"    -0", "%6.f"},
+  {__LINE__, -2.577010939931465e+17,	"-2.57701E+17", "%G"},
+  {__LINE__, -2.578224879294822e+10,	"-3E+10", "%+4.1G"},
+  {__LINE__, -2.585655636750244e+13,	"-2.585656e+13", "%+0.7g"},
+  {__LINE__, -2.585657986834408e+14,	"-2.5857e+14", "%3.5g"},
+  {__LINE__, -2.586728929368101e+02,	"-258.673", "%+g"},
+  {__LINE__, -2.591293023229468e+06,	"-2591293.0232295", "%2.7f"},
+  {__LINE__, -2.592454222603538e-06,	"-2.59245E-06", "%G"},
+  {__LINE__, -2.599399905869649e+02,	"-259.939991", "%f"},
+  {__LINE__, -2.605382860307596e+12,	"-2.60538E+12", "%2G"},
+  {__LINE__, -2.607507689402762e-01,	"-0.260751", "%#.6g"},
+  {__LINE__, -2.612933252582967e+15,	"-2.61293e+15", "%g"},
+  {__LINE__, -2.614337505491483e-14,	"-2.61434E-14", "%.6G"},
+  {__LINE__, -2.618302263333671e+14,	"-2.62e+14", "%3.3g"},
+  {__LINE__, -2.622998533972296e+00,	"-3.", "%#0.g"},
+  {__LINE__, -2.623348319869643e-15,	"-2.62335E-15", "%#G"},
+  {__LINE__, -2.626703132693163e+23,	"-3E+23", "%+6.E"},
+  {__LINE__, -2.629610853765779e+25,	"-2.62961E+25", "%+#G"},
+  {__LINE__, -2.632993880472784e+26,	"-2.63299E+26", "%G"},
+  {__LINE__, -2.635651112327873e-20,	"-2.63565E-20", "%1G"},
+  {__LINE__, -2.636003980473492e-23,	"-2.636E-23", "%G"},
+  {__LINE__, -2.639316453244009e+10,	"-26393164532.440094", "%#f"},
+  {__LINE__, -2.640517223417942e-28,	"-2.641e-28", "%.3e"},
+  {__LINE__, -2.640625797147664e-22,	"-2.640626E-22", "%E"},
+  {__LINE__, -2.644401262524378e-12,	" -0.000", "%7.3f"},
+  {__LINE__, -2.651033203243637e-14,	"-2.651033e-14", "%+e"},
+  {__LINE__, -2.652386470126594e-24,	"-2.652386E-24", "%E"},
+  {__LINE__, -2.654281018623631e-12,	"-0.00000", "%6.5f"},
+  {__LINE__, -2.655529742118827e+02,	"-265.552974", "%f"},
+  {__LINE__, -2.658550833241620e+22,	"-26585508332416196708436.473273", "%+f"},
+  {__LINE__, -2.660515890519100e+08,	"-2.660516E+08", "%E"},
+  {__LINE__, -2.665025749266086e-24,	"-2.66503E-24", "%G"},
+  {__LINE__, -2.666117105643095e-20,	"-2.66612e-20", "%g"},
+  {__LINE__, -2.667051347741259e+11,	"-3e+11", "%6.g"},
+  {__LINE__, -2.667207607243375e+04,	"-26672.076072", "%+#f"},
+  {__LINE__, -2.667631877167590e+26,	"-2.667632E+26", "%E"},
+  {__LINE__, -2.673817942962878e+13,	"-2.673818e+13", "%+2.6e"},
+  {__LINE__, -2.674972907853507e+20,	"-2.674973E+20", "%E"},
+  {__LINE__, -2.675830887404867e+14,	"-2.675831E+14", "%E"},
+  {__LINE__, -2.682749918168908e+26,	"-2.682750E+26", "%E"},
+  {__LINE__, -2.689222801942679e-03,	"-0.0027", "%7.2G"},
+  {__LINE__, -2.692245629411156e+25,	"-2.69225e+25", "%g"},
+  {__LINE__, -2.692606702464273e+11,	"-2.69261e+11", "%g"},
+  {__LINE__, -2.693070822061136e-27,	"-2.69307e-27", "%+g"},
+  {__LINE__, -2.694415515655336e-30,	"-3E-30", "%+3.0E"},
+  {__LINE__, -2.694770057384739e+15,	"-2.69477e+15", "%g"},
+  {__LINE__, -2.699998392329361e+01,	"-27", "%+.2g"},
+  {__LINE__, -2.700151952281511e+23,	"-270015195228151050343968.", "%+#5.f"},
+  {__LINE__, -2.707398527302841e-08,	"-2.70740e-08", "%+#3g"},
+  {__LINE__, -2.711404950850030e-21,	"-2.71E-21", "%.2E"},
+  {__LINE__, -2.714057739024281e-10,	"-2.714e-10", "%.4g"},
+  {__LINE__, -2.717657632815414e-10,	"-2.71766e-10", "%g"},
+  {__LINE__, -2.720875786430592e-09,	"-2.7E-09", "%6.2G"},
+  {__LINE__, -2.725886730997891e+19,	"-2.72589e+19", "%g"},
+  {__LINE__, -2.726089169748676e-09,	"-2.72609E-09", "%+G"},
+  {__LINE__, -2.732907572038661e-30,	"-2.73291E-30", "%G"},
+  {__LINE__, -2.737918050958789e+11,	"-3e+11", "%1.g"},
+  {__LINE__, -2.739024251198484e-18,	"-2.73902e-18", "%+g"},
+  {__LINE__, -2.742646144452305e+13,	"-2.74265e+13", "%g"},
+  {__LINE__, -2.742911865386719e+06,	"-3E+06", "%+5.G"},
+  {__LINE__, -2.759159275123811e-30,	"-0.000000", "%+f"},
+  {__LINE__, -2.759794813930001e-21,	"-2.75979e-21", "%+g"},
+  {__LINE__, -2.763243077558348e+20,	"-2.7632E+20", "%+0.4E"},
+  {__LINE__, -2.770348477810209e-14,	"-0.000000", "%2f"},
+  {__LINE__, -2.776074766292453e+05,	"-277607", "%g"},
+  {__LINE__, -2.776610811432007e-07,	"-2.77661E-07", "%6G"},
+  {__LINE__, -2.778673793270678e+23,	"-3E+23", "%+4.E"},
+  {__LINE__, -2.782405168708350e+08,	"-278240516.87084", "%.5f"},
+  {__LINE__, -2.783316149365198e-09,	"-3E-09", "%5.0G"},
+  {__LINE__, -2.785436703085409e-27,	"-2.78544E-27", "%#G"},
+  {__LINE__, -2.787479051660640e+21,	"-2.78748e+21", "%g"},
+  {__LINE__, -2.789445406042450e-03,	"-0.002789", "%+f"},
+  {__LINE__, -2.791104581836077e+05,	"-279110.4581836", "%+7.7f"},
+  {__LINE__, -2.802078617775784e+04,	"-28020.786", "%0.3f"},
+  {__LINE__, -2.804954315579055e+20,	"-2.80495E+20", "%G"},
+  {__LINE__, -2.806575341862696e-05,	"-2.80658E-05", "%G"},
+  {__LINE__, -2.807769556900402e-06,	"-0.000003", "%+#f"},
+  {__LINE__, -2.808882056357941e-12,	"-0.0", "%.1f"},
+  {__LINE__, -2.809386677339924e+10,	"-2.8094E+10", "%6.5G"},
+  {__LINE__, -2.818404311437694e+19,	"-3E+19", "%6.G"},
+  {__LINE__, -2.819463285551660e+01,	"-28.1946", "%+G"},
+  {__LINE__, -2.821428853207724e-16,	"-3e-16", "%6.g"},
+  {__LINE__, -2.824452750788444e+07,	"-3e+07", "%+2.g"},
+  {__LINE__, -2.825430381094971e+28,	"-3e+28", "%+.0e"},
+  {__LINE__, -2.830010928384944e-17,	"-0", "%.0f"},
+  {__LINE__, -2.832505114479680e-09,	"-0.000000", "%f"},
+  {__LINE__, -2.833246604950796e+13,	"-2.83325E+13", "%G"},
+  {__LINE__, -2.833274073265017e+13,	"-28332740732650.174564", "%f"},
+  {__LINE__, -2.835842581787797e+07,	"-2.83584E+07", "%2G"},
+  {__LINE__, -2.839758384681983e-07,	"-2.83976E-07", "%.6G"},
+  {__LINE__, -2.841077022753766e-09,	"-3E-09", "%0.1G"},
+  {__LINE__, -2.845307294930682e+00,	"-2.845307e+00", "%+1e"},
+  {__LINE__, -2.847420163874243e+19,	"-2.8e+19", "%1.2g"},
+  {__LINE__, -2.848133715109881e-25,	"-2.848134E-25", "%E"},
+  {__LINE__, -2.850208101288058e-06,	"-2.8502E-06", "%+5.4E"},
+  {__LINE__, -2.853666525870413e+04,	"-28536.665259", "%f"},
+  {__LINE__, -2.855661543202034e+21,	"-2.85566e+21", "%g"},
+  {__LINE__, -2.859528889324159e-08,	"-2.859529e-08", "%3e"},
+  {__LINE__, -2.860545310690251e+29,	"-3e+29", "%.1g"},
+  {__LINE__, -2.863576633666884e-14,	"-2.863577e-14", "%+5e"},
+  {__LINE__, -2.864115740396321e-14,	"-2.86412e-14", "%g"},
+  {__LINE__, -2.864481979037153e+20,	"-2.86E+20", "%3.3G"},
+  {__LINE__, -2.867582970177984e-18,	"-0.000000", "%f"},
+  {__LINE__, -2.868237707901564e+25,	"-3E+25", "%6.E"},
+  {__LINE__, -2.871741071402520e+13,	"-3e+13", "%.1g"},
+  {__LINE__, -2.873724610073364e+18,	"-2873724610073364438.278531", "%+#f"},
+  {__LINE__, -2.876433859770866e-25,	"-2.87643e-25", "%g"},
+  {__LINE__, -2.877458587075737e-08,	"-2.877E-08", "%+.4G"},
+  {__LINE__, -2.883349842927101e+24,	"-2.883350E+24", "%2E"},
+  {__LINE__, -2.883749925642885e+09,	"-2.883750e+09", "%e"},
+  {__LINE__, -2.883773835633003e-17,	"-0.000000", "%+f"},
+  {__LINE__, -2.890389090491409e+24,	"-2890389090491409262995148.310438", "%#1f"},
+  {__LINE__, -2.900848552225810e-11,	"-0.000000", "%+f"},
+  {__LINE__, -2.911942123176400e+25,	"-29119421231764004431852300", "%0.f"},
+  {__LINE__, -2.912904462180751e-18,	"-2.9129E-18", "%6G"},
+  {__LINE__, -2.917717875075651e+26,	"-3e+26", "%0.e"},
+  {__LINE__, -2.922293201084093e-26,	"-2.922293E-26", "%E"},
+  {__LINE__, -2.925070319932451e-30,	"-0.000000", "%f"},
+  {__LINE__, -2.926558572870874e+15,	"-2.926559E+15", "%E"},
+  {__LINE__, -2.928781435877896e+26,	"-2.928781e+26", "%+e"},
+  {__LINE__, -2.930178318110376e+28,	"-2.930178E+28", "%E"},
+  {__LINE__, -2.930984661925819e+05,	"-293098.5", "%.7G"},
+  {__LINE__, -2.932762424932762e-08,	"-0.000000", "%#f"},
+  {__LINE__, -2.933415597492494e+10,	"-29334155974.924943", "%+#2f"},
+  {__LINE__, -2.933564314850986e+29,	"-2.93356E+29", "%7G"},
+  {__LINE__, -2.943224907893795e+10,	"-2.943225E+10", "%+7E"},
+  {__LINE__, -2.945311540471221e+19,	"-2.94531E+19", "%#G"},
+  {__LINE__, -2.945812356522847e+15,	"-2.94581e+15", "%+g"},
+  {__LINE__, -2.945836999630957e+00,	"-2.945837E+00", "%E"},
+  {__LINE__, -2.947798782726622e-01,	"-0.29478", "%+g"},
+  {__LINE__, -2.948958405827917e+18,	"-2.94896e+18", "%g"},
+  {__LINE__, -2.949790871798059e-11,	"-2.94979E-11", "%G"},
+  {__LINE__, -2.950347806125225e-12,	"-2.95035e-12", "%g"},
+  {__LINE__, -2.952781884599368e-29,	"-2.952782E-29", "%+E"},
+  {__LINE__, -2.956801341442716e+06,	"-2.9568E+06", "%G"},
+  {__LINE__, -2.957469310356540e-07,	"-0.000", "%1.3f"},
+  {__LINE__, -2.960464869534870e-23,	"-2.96046E-23", "%G"},
+  {__LINE__, -2.962339381825446e-07,	"-0", "%1.f"},
+  {__LINE__, -2.971013180028710e+22,	"-2.971e+22", "%3.5g"},
+  {__LINE__, -2.975167862441254e+07,	"-2.97517e+07", "%g"},
+  {__LINE__, -2.976018424339993e+16,	"-2.976018e+16", "%3e"},
+  {__LINE__, -2.979173094835454e+29,	"-2.97917E+29", "%G"},
+  {__LINE__, -2.983135249987541e-03,	"-0.00298314", "%+G"},
+  {__LINE__, -2.985142444917919e-24,	"-2.985142E-24", "%+#7E"},
+  {__LINE__, -2.988680953635159e-14,	"-0.0000000", "%2.7f"},
+  {__LINE__, -2.989629778079379e+04,	"-29896.297781", "%f"},
+  {__LINE__, -2.991274275137276e+19,	"-29912742751372762839.423558", "%+4f"},
+  {__LINE__, -2.991286396006024e-06,	"-2.99129e-06", "%4g"},
+  {__LINE__, -2.993310397844811e+04,	"-2.993310E+04", "%3.6E"},
+  {__LINE__, -2.994669852410861e-29,	"-2.99467E-29", "%G"},
+  {__LINE__, -2.996082093034831e+27,	"-2.996082e+27", "%1e"},
+  {__LINE__, -2.999783904575110e+16,	"-2.999784E+16", "%#E"},
+  {__LINE__, -3.012019221956988e+25,	"-3.012019E+25", "%E"},
+  {__LINE__, -3.014211917706622e-25,	"-0.000000", "%+f"},
+  {__LINE__, -3.015149723683428e-19,	"-3.01515E-19", "%G"},
+  {__LINE__, -3.022158478004638e-19,	"-3.02216e-19", "%6g"},
+  {__LINE__, -3.022825518373900e-12,	"-3.0228E-12", "%+.4E"},
+  {__LINE__, -3.025108924057340e-19,	"-0.000000", "%f"},
+  {__LINE__, -3.026316824631967e+24,	"-3026316824631966717618070.106255", "%1f"},
+  {__LINE__, -3.033074643529623e-13,	"-3.03307e-13", "%g"},
+  {__LINE__, -3.035292960731141e+24,	"-3035292960731141409524980.190326", "%f"},
+  {__LINE__, -3.043291272956732e-13,	"-3.04329e-13", "%#g"},
+  {__LINE__, -3.045216723973715e-23,	"-3.045e-23", "%.4g"},
+  {__LINE__, -3.047140976048835e+09,	"-3.04714E+09", "%3.5E"},
+  {__LINE__, -3.047680278470886e+09,	"-3.047680E+09", "%#E"},
+  {__LINE__, -3.048465807963461e+05,	"-304847", "%g"},
+  {__LINE__, -3.050904753556756e+22,	"-3.0509E+22", "%G"},
+  {__LINE__, -3.052845748999047e-13,	"-3.05285e-13", "%g"},
+  {__LINE__, -3.053395231883620e-06,	"-3E-06", "%2.G"},
+  {__LINE__, -3.054894203375445e-28,	"-3e-28", "%2.g"},
+  {__LINE__, -3.055080347760755e-13,	"-0", "%2.f"},
+  {__LINE__, -3.055513037393624e-29,	"-3e-29", "%3.g"},
+  {__LINE__, -3.056198778208295e-06,	"-3.0562e-06", "%g"},
+  {__LINE__, -3.057813660266980e-21,	"-3E-21", "%1.G"},
+  {__LINE__, -3.059687036330998e-11,	"-3.1E-11", "%#2.2G"},
+  {__LINE__, -3.061450385559094e-10,	"-3.06145E-10", "%G"},
+  {__LINE__, -3.066605713361383e-27,	"-0.000000", "%f"},
+  {__LINE__, -3.071590110813156e+22,	"-3.07159E+22", "%G"},
+  {__LINE__, -3.073253864426931e+26,	"-3.0733E+26", "%.5G"},
+  {__LINE__, -3.078998328596940e+07,	"-3.079e+07", "%5.4g"},
+  {__LINE__, -3.082733887951920e+06,	"-3.082734e+06", "%+6e"},
+  {__LINE__, -3.084365358064710e+24,	"-3.084365E+24", "%#E"},
+  {__LINE__, -3.086948022123716e+25,	"-30869480221237162176350921.072299", "%+f"},
+  {__LINE__, -3.088200214218024e-10,	"-0", "%0.f"},
+  {__LINE__, -3.093442983942874e+08,	"-309344298.394287", "%f"},
+  {__LINE__, -3.103573455403534e-09,	"-3.103573E-09", "%#E"},
+  {__LINE__, -3.109178443120997e+07,	"-31091784.431210", "%f"},
+  {__LINE__, -3.111494549914917e+28,	"-3e+28", "%0.g"},
+  {__LINE__, -3.113384020517480e-17,	"    -0", "%+6.f"},
+  {__LINE__, -3.121622779718055e+14,	"-312162277971805.491", "%+.3f"},
+  {__LINE__, -3.122780443843900e-01,	"-0.312278", "%#g"},
+  {__LINE__, -3.122952438335638e-25,	"-3.122952E-25", "%E"},
+  {__LINE__, -3.128970339463168e-18,	"-3e-18", "%3.g"},
+  {__LINE__, -3.130862507719335e+10,	"-3.130863e+10", "%3e"},
+  {__LINE__, -3.145960838955379e+03,	"-3145.96", "%g"},
+  {__LINE__, -3.149362645138929e+21,	"-3.14936e+21", "%g"},
+  {__LINE__, -3.150697168664913e+26,	"-315069716866491322804222363.629378", "%+f"},
+  {__LINE__, -3.157946785041287e+05,	"-3.1579e+05", "%.4e"},
+  {__LINE__, -3.158347006986809e-02,	"-3.E-02", "%#.0E"},
+  {__LINE__, -3.159542871923388e+07,	"-31595429", "%2.f"},
+  {__LINE__, -3.169997512351985e+15,	"-3.169998E+15", "%6.7G"},
+  {__LINE__, -3.170971776544746e+07,	"-31709717.765447", "%f"},
+  {__LINE__, -3.173246079104466e+19,	"-3.173246E+19", "%1E"},
+  {__LINE__, -3.173581228658553e-02,	"-0.03", "%+0.G"},
+  {__LINE__, -3.187598864929850e-07,	"-3.18760E-07", "%#G"},
+  {__LINE__, -3.190525302270244e+08,	"-3.190525e+08", "%+0.7g"},
+  {__LINE__, -3.191879884186422e+19,	"-3.19E+19", "%.2E"},
+  {__LINE__, -3.197292604744926e+02,	"-3.197293e+02", "%+e"},
+  {__LINE__, -3.203713337688838e-12,	"-3.20371E-12", "%6G"},
+  {__LINE__, -3.204416889544914e-18,	"-0.000000", "%+f"},
+  {__LINE__, -3.204494471917096e+09,	"-3.20449e+09", "%g"},
+  {__LINE__, -3.211933195516720e+11,	"-3.21193E+11", "%G"},
+  {__LINE__, -3.214544021431917e-24,	"-0.000000", "%1f"},
+  {__LINE__, -3.215501229487004e-07,	"-3e-07", "%3.e"},
+  {__LINE__, -3.232157492322707e-13,	"-3.E-13", "%+#5.G"},
+  {__LINE__, -3.239074974455177e-05,	"-3.239e-05", "%2.4g"},
+  {__LINE__, -3.243083730801156e-24,	"-3.243084e-24", "%#e"},
+  {__LINE__, -3.243128583394124e+07,	"-32431285.8339", "%6.4f"},
+  {__LINE__, -3.247997999770571e-08,	"-3e-08", "%5.e"},
+  {__LINE__, -3.258251054563991e-15,	"-3.2583E-15", "%.5G"},
+  {__LINE__, -3.259499053187446e+07,	"-3.2595E+07", "%5.6G"},
+  {__LINE__, -3.261907782031174e+20,	"-3.3e+20", "%.2g"},
+  {__LINE__, -3.263979380855122e+29,	"-3.26398E+29", "%G"},
+  {__LINE__, -3.264166546402073e+06,	"-3.26417E+06", "%5G"},
+  {__LINE__, -3.269357648926951e+01,	"-3.E+01", "%#5.G"},
+  {__LINE__, -3.273523287028019e-30,	"-3.27352e-30", "%g"},
+  {__LINE__, -3.274464331526264e-14,	"-3e-14", "%.0g"},
+  {__LINE__, -3.276647049958546e+05,	"-327664.7", "%+.1f"},
+  {__LINE__, -3.276853612008326e-04,	"-3.276854e-04", "%e"},
+  {__LINE__, -3.288077788905925e+17,	"-3.28808e+17", "%g"},
+  {__LINE__, -3.292054327509010e+21,	"-3.29205e+21", "%+g"},
+  {__LINE__, -3.292086868337041e-16,	"     -0", "%7.f"},
+  {__LINE__, -3.299368070005327e-17,	"-3E-17", "%5.G"},
+  {__LINE__, -3.307165537474566e-30,	"-3e-30", "%+2.g"},
+  {__LINE__, -3.310556325973673e-17,	"-3.31056E-17", "%G"},
+  {__LINE__, -3.315407318453138e-09,	"-3.315407e-09", "%+#.6e"},
+  {__LINE__, -3.318402800998018e-09,	"-3.3184E-09", "%+G"},
+  {__LINE__, -3.324277622889107e-04,	"-0.000332428", "%G"},
+  {__LINE__, -3.326372457131185e+14,	"-3.326372e+14", "%0e"},
+  {__LINE__, -3.333300611287597e+18,	"-3.3E+18", "%4.2G"},
+  {__LINE__, -3.333608976277018e-25,	"-3.33361e-25", "%g"},
+  {__LINE__, -3.333613056182724e-24,	"-3.33361e-24", "%.5e"},
+  {__LINE__, -3.338505874378410e-26,	"-0.00000", "%.5f"},
+  {__LINE__, -3.339838772519661e+24,	"-3.3398E+24", "%0.5G"},
+  {__LINE__, -3.354802735583258e-27,	"-3.3548E-27", "%G"},
+  {__LINE__, -3.356542080644329e+15,	"-3356542080644329.129058", "%#f"},
+  {__LINE__, -3.360027692463026e-29,	"-3.36003e-29", "%+g"},
+  {__LINE__, -3.361845657814323e+06,	"-3361845.657814", "%f"},
+  {__LINE__, -3.363135493765816e-12,	"   -0", "%5.f"},
+  {__LINE__, -3.367383112102258e+19,	"-33673831121022579360.158034", "%f"},
+  {__LINE__, -3.376798505037497e+03,	"-3376.8", "%+3G"},
+  {__LINE__, -3.388170639372559e+09,	"-3.388171e+09", "%+e"},
+  {__LINE__, -3.397304185715499e-12,	"-3.397304e-12", "%+e"},
+  {__LINE__, -3.401559374016378e-13,	"-3.40156e-13", "%g"},
+  {__LINE__, -3.402651870178825e+21,	"-3.40265e+21", "%+g"},
+  {__LINE__, -3.410491213537530e+12,	"-3.41049E+12", "%G"},
+  {__LINE__, -3.411695570460075e-01,	"-3.411696e-01", "%e"},
+  {__LINE__, -3.417311435719220e+29,	"-3.4E+29", "%3.1E"},
+  {__LINE__, -3.417581063208165e-23,	"  -0", "%+4.f"},
+  {__LINE__, -3.424005615113663e-28,	"-0.000000", "%f"},
+  {__LINE__, -3.424793585094130e-12,	"-0.000000", "%f"},
+  {__LINE__, -3.434733077762304e-05,	"-3.43473e-05", "%g"},
+  {__LINE__, -3.436384988494743e+08,	"-3.43638E+08", "%G"},
+  {__LINE__, -3.441082995163884e-21,	"-0.000000", "%f"},
+  {__LINE__, -3.442868661576827e-23,	"-3.442869e-23", "%#.7g"},
+  {__LINE__, -3.444337521046186e+13,	"-3.44434E+13", "%#G"},
+  {__LINE__, -3.448230173418967e-28,	"-3.44823E-28", "%#G"},
+  {__LINE__, -3.448523828225326e-21,	"-3.4485e-21", "%.4e"},
+  {__LINE__, -3.449876796754720e-07,	"-3.44988e-07", "%g"},
+  {__LINE__, -3.450163790411588e+25,	"-34501637904115876054333966.749255", "%2f"},
+  {__LINE__, -3.450224454406567e-26,	"-3.450224E-26", "%#1E"},
+  {__LINE__, -3.459930768422874e-28,	"-3.46E-28", "%2.3G"},
+  {__LINE__, -3.460730505022601e-28,	"-3.46073e-28", "%#g"},
+  {__LINE__, -3.462894265593946e-10,	"-3.46289e-10", "%+#g"},
+  {__LINE__, -3.464808359229496e+05,	"-346481", "%6.6G"},
+  {__LINE__, -3.467272303652620e-03,	"-0.00346727", "%g"},
+  {__LINE__, -3.468252706910251e+10,	"-3.5E+10", "%#7.2G"},
+  {__LINE__, -3.473623965680253e+27,	"-3.47362e+27", "%g"},
+  {__LINE__, -3.474527926009729e+11,	"-3.475E+11", "%.4G"},
+  {__LINE__, -3.476489048299929e+15,	"-3.47649e+15", "%g"},
+  {__LINE__, -3.477809698895344e-09,	"-0.000", "%+.3f"},
+  {__LINE__, -3.493008398637667e-28,	"  -0", "%+4.f"},
+  {__LINE__, -3.497441286691613e+07,	"-3.49744e+07", "%g"},
+  {__LINE__, -3.500904660533358e+00,	"-3.500905E+00", "%+1E"},
+  {__LINE__, -3.504996054364915e+25,	"-3.505e+25", "%+g"},
+  {__LINE__, -3.507738629125434e-24,	"-0.00", "%+4.2f"},
+  {__LINE__, -3.508557770253211e-04,	"-3.508558e-04", "%#6e"},
+  {__LINE__, -3.516056824437550e+20,	"-3.516057e+20", "%#e"},
+  {__LINE__, -3.521102917733367e+02,	"-352.11", "%g"},
+  {__LINE__, -3.523948985825251e+10,	"-3.52395e+10", "%+g"},
+  {__LINE__, -3.525281835697895e-15,	"-3.525282e-15", "%e"},
+  {__LINE__, -3.534088845494570e-26,	"-0.000000", "%2f"},
+  {__LINE__, -3.541002442741569e+01,	"-35.410", "%3.3f"},
+  {__LINE__, -3.541126630345017e-19,	"-3.541127e-19", "%e"},
+  {__LINE__, -3.545277845967514e-17,	"-0.000000", "%f"},
+  {__LINE__, -3.560935430637329e-12,	"-3.56094E-12", "%G"},
+  {__LINE__, -3.564234584447659e-23,	"-3.56423E-23", "%G"},
+  {__LINE__, -3.576040378379921e-11,	"-0.000000", "%+6f"},
+  {__LINE__, -3.578133580350674e-05,	"-3.578134e-05", "%#e"},
+  {__LINE__, -3.584484015191491e-28,	"-0.0", "%+2.1f"},
+  {__LINE__, -3.591961845146752e+27,	"-3.59196E+27", "%G"},
+  {__LINE__, -3.602508380305001e+26,	"-3.60251e+26", "%g"},
+  {__LINE__, -3.603113449808132e+04,	"-36031.134498", "%+3.6f"},
+  {__LINE__, -3.605569849504628e+25,	"-4E+25", "%6.G"},
+  {__LINE__, -3.611297754851416e+05,	"-361129.775485", "%+f"},
+  {__LINE__, -3.613177909959201e-28,	"-0.000000", "%f"},
+  {__LINE__, -3.616261225230595e-01,	"-0.361626", "%3g"},
+  {__LINE__, -3.619203521536307e+09,	"-3.6192E+09", "%G"},
+  {__LINE__, -3.619316709131723e-27,	"-0.0000000", "%.7f"},
+  {__LINE__, -3.623100583082346e+28,	"-3.6231E+28", "%+G"},
+  {__LINE__, -3.626582653589919e+21,	"-3626582653589918603387.332041", "%f"},
+  {__LINE__, -3.626667540343067e-30,	"-4.E-30", "%#.0G"},
+  {__LINE__, -3.633539220625861e-30,	"-3.634E-30", "%+.3E"},
+  {__LINE__, -3.641655782149502e-11,	"-3.64166E-11", "%G"},
+  {__LINE__, -3.644523594046571e+25,	"-3.64452e+25", "%5g"},
+  {__LINE__, -3.645977605394108e+25,	"-3.646e+25", "%+0.3e"},
+  {__LINE__, -3.647864582248812e+13,	"-4E+13", "%4.G"},
+  {__LINE__, -3.655241667633056e-25,	"-3.655242E-25", "%E"},
+  {__LINE__, -3.662603655433297e+23,	"-3.662604e+23", "%e"},
+  {__LINE__, -3.668995445134158e+22,	" -4E+22", "%7.G"},
+  {__LINE__, -3.670006666569412e-11,	"-3.670007e-11", "%e"},
+  {__LINE__, -3.670510381138509e-24,	"-3.670510e-24", "%e"},
+  {__LINE__, -3.671283003268254e-20,	"-3.67128E-20", "%G"},
+  {__LINE__, -3.687760201176777e-13,	"-3.68776E-13", "%G"},
+  {__LINE__, -3.687983982100676e-14,	"-0.00", "%.2f"},
+  {__LINE__, -3.694808382827435e-12,	"-3.694808E-12", "%#E"},
+  {__LINE__, -3.696158520838821e+28,	"-3.69616E+28", "%3G"},
+  {__LINE__, -3.700911860811323e+18,	"-3.70091e+18", "%+g"},
+  {__LINE__, -3.701328314738669e+24,	"-3.70133e+24", "%g"},
+  {__LINE__, -3.707068461822151e-19,	"-3.707068E-19", "%E"},
+  {__LINE__, -3.710679411506914e+25,	"-3.71068e+25", "%g"},
+  {__LINE__, -3.713003840923896e-23,	"-3.713e-23", "%7g"},
+  {__LINE__, -3.717028397747828e-28,	"-3.71703e-28", "%g"},
+  {__LINE__, -3.728159642236442e+14,	"-3.72816E+14", "%G"},
+  {__LINE__, -3.731956233637010e+21,	"-3.73196E+21", "%G"},
+  {__LINE__, -3.742336623322610e+07,	"-3.74234e+07", "%g"},
+  {__LINE__, -3.748328269630045e+04,	"-37483.3", "%G"},
+  {__LINE__, -3.750803081283569e-27,	"-3.7508E-27", "%+7G"},
+  {__LINE__, -3.752021500826652e-04,	"-0.0004", "%.1G"},
+  {__LINE__, -3.755942257004103e-12,	"-3.75594E-12", "%G"},
+  {__LINE__, -3.765921235889045e+03,	" -4e+03", "%+7.g"},
+  {__LINE__, -3.772453135667801e-28,	"-3.77245E-28", "%G"},
+  {__LINE__, -3.776384200230367e+27,	"-3.776e+27", "%1.4g"},
+  {__LINE__, -3.787035870684945e-25,	"-4E-25", "%+3.G"},
+  {__LINE__, -3.798616350818839e-29,	"-3.7986164e-29", "%.7e"},
+  {__LINE__, -3.807178315238428e-15,	"-0.000000", "%+#6f"},
+  {__LINE__, -3.822059837967635e+18,	"-3822059837967634621.236357", "%6.6f"},
+  {__LINE__, -3.823553096022006e+12,	"-3.82355e+12", "%g"},
+  {__LINE__, -3.839198115259428e-23,	"-0.000000", "%f"},
+  {__LINE__, -3.846953640321746e+02,	"-3.846954E+02", "%E"},
+  {__LINE__, -3.852230696542361e+08,	"-3.8522e+08", "%#.5g"},
+  {__LINE__, -3.861139362195314e-25,	"-3.86114E-25", "%2G"},
+  {__LINE__, -3.873388618099769e+09,	"-3873388618", "%0.0f"},
+  {__LINE__, -3.874161550543817e+15,	"-3.874162e+15", "%+e"},
+  {__LINE__, -3.874527935469425e+20,	"-3.87E+20", "%3.3G"},
+  {__LINE__, -3.878069577893697e-30,	"-3.878070E-30", "%#E"},
+  {__LINE__, -3.878852490397702e-20,	"-3.87885e-20", "%g"},
+  {__LINE__, -3.879688342272101e-10,	"-0.00", "%#4.2f"},
+  {__LINE__, -3.879797428399897e+03,	"-3880", "%1.4g"},
+  {__LINE__, -3.881588804766756e+00,	"-3.9", "%+4.2G"},
+  {__LINE__, -3.889377318111182e+01,	"-38.8938", "%+.4f"},
+  {__LINE__, -3.893444523430385e-03,	"-0.004", "%+2.g"},
+  {__LINE__, -3.894912141515856e+03,	"-3894.91", "%+g"},
+  {__LINE__, -3.905279115773667e+04,	"-39052.791158", "%f"},
+  {__LINE__, -3.905333955484919e-20,	"-3.90533E-20", "%G"},
+  {__LINE__, -3.906559442060730e+27,	"-3906559442060730447110472596.250474", "%f"},
+  {__LINE__, -3.909396469655334e-26,	"-3.91E-26", "%.3G"},
+  {__LINE__, -3.920132491092364e+11,	"-3.92013e+11", "%g"},
+  {__LINE__, -3.935651497471973e+27,	"-3935651497471972604103029880", "%5.f"},
+  {__LINE__, -3.939742577853889e-03,	"-0.004", "%5.G"},
+  {__LINE__, -3.943284017088198e+19,	"-39432840170881981123.3", "%.1f"},
+  {__LINE__, -3.947452186327660e+09,	"-3947452186.33", "%0.2f"},
+  {__LINE__, -3.951967237553488e+18,	"-3951967237553488132.562052", "%f"},
+  {__LINE__, -3.953673427359789e-28,	"-3.954E-28", "%3.4G"},
+  {__LINE__, -3.956044867371602e+23,	"-4e+23", "%+6.1g"},
+  {__LINE__, -3.965038994251913e-20,	"-3.96504e-20", "%g"},
+  {__LINE__, -3.970527677577937e+05,	"-4.e+05", "%#0.1g"},
+  {__LINE__, -3.970717822164395e-20,	"-3.970718e-20", "%6e"},
+  {__LINE__, -3.978063834438912e-19,	"-3.97806E-19", "%G"},
+  {__LINE__, -3.982705395472599e+27,	"-3.9827e+27", "%#.5g"},
+  {__LINE__, -3.983486821352571e-28,	"-3.98349e-28", "%g"},
+  {__LINE__, -3.985470630230926e-14,	"-4e-14", "%.2g"},
+  {__LINE__, -3.993095662863953e-16,	"-3.993096e-16", "%e"},
+  {__LINE__, -4.006984141314271e-22,	" -4e-22", "%7.2g"},
+  {__LINE__, -4.006984141314271e-22,	"-4.0e-22", "%#7.2g"},
+  {__LINE__, -4.013226099863981e+06,	"-4.013226E+06", "%+E"},
+  {__LINE__, -4.013702226581167e+00,	"-4.0137022", "%+#3.7f"},
+  {__LINE__, -4.017598274642537e+11,	"-4E+11", "%5.G"},
+  {__LINE__, -4.021385792825529e-09,	" -4e-09", "%7.2g"},
+  {__LINE__, -4.024099064819937e-20,	"-4.0241E-20", "%+G"},
+  {__LINE__, -4.026952473441366e+22,	"-4.026952e+22", "%6.7g"},
+  {__LINE__, -4.027636677087866e+12,	"-4.02764E+12", "%G"},
+  {__LINE__, -4.036506013049443e+17,	"-4.03651e+17", "%0.6g"},
+  {__LINE__, -4.063191953523012e-06,	"  -0.0", "%6.1f"},
+  {__LINE__, -4.070953223475192e-23,	"-4.07095E-23", "%G"},
+  {__LINE__, -4.072425833070524e+09,	"-4.072426E+09", "%E"},
+  {__LINE__, -4.086025576759603e+12,	"-4.086026e+12", "%e"},
+  {__LINE__, -4.086627783296081e-24,	"-4.087E-24", "%.3E"},
+  {__LINE__, -4.086683676772144e+10,	"-40866836767.721439", "%f"},
+  {__LINE__, -4.087336043219081e-10,	"-0.", "%+#0.f"},
+  {__LINE__, -4.125162973336809e-26,	"-4.125163E-26", "%.7G"},
+  {__LINE__, -4.150753797717075e-10,	"-4.2e-10", "%.2g"},
+  {__LINE__, -4.152126152181912e+23,	"-4.15213e+23", "%g"},
+  {__LINE__, -4.164458223079432e-07,	"-4.164458E-07", "%E"},
+  {__LINE__, -4.170624866130099e+03,	"-4170.624866", "%4.6f"},
+  {__LINE__, -4.171137277374942e-01,	" -4E-01", "%+7.E"},
+  {__LINE__, -4.176067421901769e-25,	"-4.17607E-25", "%G"},
+  {__LINE__, -4.179514418604771e+24,	"-4.1795e+24", "%3.5g"},
+  {__LINE__, -4.196285183415621e+23,	"-4.19629E+23", "%5G"},
+  {__LINE__, -4.198600486581023e+23,	"-4E+23", "%+4.G"},
+  {__LINE__, -4.199020494598538e-16,	"-0.000000", "%+f"},
+  {__LINE__, -4.207824153501688e-01,	"-0.420782", "%G"},
+  {__LINE__, -4.219086441294006e-13,	"  -0", "%+4.f"},
+  {__LINE__, -4.223689582765525e+12,	"-4.22369e+12", "%g"},
+  {__LINE__, -4.230213377391093e+04,	"-42302.1", "%+2.6G"},
+  {__LINE__, -4.232495358100605e-02,	"-0.042325", "%+f"},
+  {__LINE__, -4.235459662515940e-29,	"-0.000000", "%f"},
+  {__LINE__, -4.240807508057296e-07,	"-4e-07", "%0.g"},
+  {__LINE__, -4.248376819122346e-13,	"-4.248377e-13", "%7e"},
+  {__LINE__, -4.251361939638334e-23,	"-4.251362E-23", "%E"},
+  {__LINE__, -4.253044333568077e+24,	"-4.253044e+24", "%4e"},
+  {__LINE__, -4.255728039119772e-30,	"-4.25573E-30", "%2G"},
+  {__LINE__, -4.256502531648988e+02,	"-425.65", "%G"},
+  {__LINE__, -4.260731632612400e-04,	"-0", "%2.f"},
+  {__LINE__, -4.262037138254753e-25,	"-4e-25", "%5.g"},
+  {__LINE__, -4.270910126379393e+00,	"-4.2709", "%#7.4f"},
+  {__LINE__, -4.273844276097008e-09,	" -0.", "%#4.f"},
+  {__LINE__, -4.280424136111831e+21,	"-4.280E+21", "%.3E"},
+  {__LINE__, -4.284351940366486e-23,	"-0.000000", "%+f"},
+  {__LINE__, -4.291747881693517e-29,	"-4.3e-29", "%+#.2g"},
+  {__LINE__, -4.298346825232928e+04,	"-42983.5", "%G"},
+  {__LINE__, -4.298879924365432e+28,	"-42988799243654316484253286034.800112", "%f"},
+  {__LINE__, -4.302192665689887e-25,	"-0.000000", "%f"},
+  {__LINE__, -4.303899568112784e+06,	"-4E+06", "%1.G"},
+  {__LINE__, -4.307399960278190e-30,	"-4.31e-30", "%.3g"},
+  {__LINE__, -4.341161949359232e+01,	"-43.411619", "%+f"},
+  {__LINE__, -4.353334435604675e+17,	" -4e+17", "%+7.g"},
+  {__LINE__, -4.354760231068195e+08,	"-4e+08", "%2.e"},
+  {__LINE__, -4.363535913318519e+08,	"-4.363536E+08", "%+7E"},
+  {__LINE__, -4.365389605557404e-29,	"-4.365390e-29", "%e"},
+  {__LINE__, -4.369278570829168e-22,	"-4.369279E-22", "%5E"},
+  {__LINE__, -4.372187639240662e-11,	"-4.37219e-11", "%+g"},
+  {__LINE__, -4.374221079233858e-15,	"-4.37422E-15", "%4.6G"},
+  {__LINE__, -4.374840292001664e-13,	"-0.000000", "%+f"},
+  {__LINE__, -4.376554800103945e+16,	"-43765548001039453.751559", "%f"},
+  {__LINE__, -4.376659235899513e+07,	"-4.4E+07", "%0.2G"},
+  {__LINE__, -4.377316129868239e-06,	"-4.37732E-06", "%+5G"},
+  {__LINE__, -4.380028480226885e+21,	"-4e+21", "%1.0e"},
+  {__LINE__, -4.380434965450223e+16,	"-43804349654502230.393405", "%f"},
+  {__LINE__, -4.392477080355168e-15,	"-4E-15", "%+2.G"},
+  {__LINE__, -4.396120020536161e+17,	"-439612002053616102.159594", "%#f"},
+  {__LINE__, -4.400993154571784e+13,	"-44009931545717.844159", "%f"},
+  {__LINE__, -4.402873692051930e-26,	"-4.4e-26", "%5.3g"},
+  {__LINE__, -4.405330274903779e+24,	"-4405330274903779042006135.568954", "%+5f"},
+  {__LINE__, -4.406272291312090e+06,	"-4.40627e+06", "%+g"},
+  {__LINE__, -4.407065949816988e-13,	"-0.000000", "%f"},
+  {__LINE__, -4.408295597674563e-10,	"-4.4083e-10", "%g"},
+  {__LINE__, -4.417553815178214e-30,	"-4.41755E-30", "%G"},
+  {__LINE__, -4.428894120469459e+16,	"-4.42889e+16", "%g"},
+  {__LINE__, -4.433747825142046e+04,	"-4.433748e+04", "%#e"},
+  {__LINE__, -4.435051082856639e+11,	"-4.43505E+11", "%G"},
+  {__LINE__, -4.445045573007259e-27,	"-4.445e-27", "%.5g"},
+  {__LINE__, -4.447791368960968e-25,	" -4e-25", "%+7.g"},
+  {__LINE__, -4.449691386526521e-11,	"-4.44969e-11", "%g"},
+  {__LINE__, -4.451399093849402e+06,	"-4.e+06", "%#0.e"},
+  {__LINE__, -4.453753130320864e-22,	"-4E-22", "%6.E"},
+  {__LINE__, -4.455910780463539e+00,	"-4", "%2.g"},
+  {__LINE__, -4.464935674747308e+25,	"-4.46494e+25", "%g"},
+  {__LINE__, -4.469759565657550e-29,	"-4.46976e-29", "%g"},
+  {__LINE__, -4.473254139442931e+14,	"-4E+14", "%3.1G"},
+  {__LINE__, -4.480844704930373e-04,	"-0.000448", "%5.6f"},
+  {__LINE__, -4.484177356024563e+19,	"-4.484177E+19", "%E"},
+  {__LINE__, -4.488115678357666e-13,	"-4.48812e-13", "%g"},
+  {__LINE__, -4.491545112281561e+12,	"-4.491545E+12", "%E"},
+  {__LINE__, -4.492547433553077e-23,	"-4.49255e-23", "%g"},
+  {__LINE__, -4.492701755830813e-05,	"-0.000045", "%f"},
+  {__LINE__, -4.497405935096372e-02,	"-4.497406e-02", "%e"},
+  {__LINE__, -4.502764260212887e+21,	"-4.50276E+21", "%G"},
+  {__LINE__, -4.511984199938207e+29,	"-451198419993820731832556703011.505306", "%f"},
+  {__LINE__, -4.514517861504637e-13,	"-4.51452e-13", "%g"},
+  {__LINE__, -4.525577218881990e+24,	"-4.5e+24", "%2.2g"},
+  {__LINE__, -4.549244580903896e-26,	"-5E-26", "%2.G"},
+  {__LINE__, -4.569192488002113e-29,	"-5E-29", "%3.G"},
+  {__LINE__, -4.572011438847734e+17,	"-4.57e+17", "%#.3g"},
+  {__LINE__, -4.573010973514519e-08,	"-4.57301e-08", "%+7g"},
+  {__LINE__, -4.584534976177852e-04,	"-0.000458453", "%7g"},
+  {__LINE__, -4.584729895132228e-21,	"-0.000000", "%4f"},
+  {__LINE__, -4.585259328217483e-30,	"-4.58526E-30", "%+#4.6G"},
+  {__LINE__, -4.589603063610410e-04,	"-4.589603E-04", "%+E"},
+  {__LINE__, -4.592428795671033e+22,	" -5e+22", "%7.g"},
+  {__LINE__, -4.595683678223830e-20,	"   -0", "%5.f"},
+  {__LINE__, -4.602585606100101e+05,	"-4.602586E+05", "%E"},
+  {__LINE__, -4.603375306660027e-08,	"-5E-08", "%+6.G"},
+  {__LINE__, -4.611341343728034e-18,	"-4.611341e-18", "%5e"},
+  {__LINE__, -4.613608487855863e+05,	"-461361", "%6g"},
+  {__LINE__, -4.615997775774194e-24,	"-4.61600e-24", "%#g"},
+  {__LINE__, -4.620310950564759e+23,	"-462031095056475926696749", "%1.0f"},
+  {__LINE__, -4.620645693595563e-10,	"-4.6206457e-10", "%.7e"},
+  {__LINE__, -4.621527706233292e-09,	"-4.621528e-09", "%#e"},
+  {__LINE__, -4.625215210297273e-13,	"-4.62522E-13", "%G"},
+  {__LINE__, -4.636755152220100e-29,	"-0.000000", "%#f"},
+  {__LINE__, -4.641203877508087e+23,	"-4.6412e+23", "%0g"},
+  {__LINE__, -4.648627249239175e+23,	"-4.65E+23", "%+0.3G"},
+  {__LINE__, -4.662546890623409e-10,	"-4.663E-10", "%.3E"},
+  {__LINE__, -4.664488650292317e-27,	"-4.66449e-27", "%#g"},
+  {__LINE__, -4.668715685060282e+08,	"-466871568.50603", "%.5f"},
+  {__LINE__, -4.673332851657081e-18,	"-4.7e-18", "%#5.2g"},
+  {__LINE__, -4.683361436174074e+24,	"-4.68e+24", "%#.2e"},
+  {__LINE__, -4.693748680461066e-01,	"-0.469375", "%G"},
+  {__LINE__, -4.697110010549124e+23,	"-4.69711E+23", "%G"},
+  {__LINE__, -4.710442739966989e+06,	"-4.710443e+06", "%2e"},
+  {__LINE__, -4.713427678642280e-09,	"-4.71343e-09", "%g"},
+  {__LINE__, -4.721999055940316e-04,	"-4.721999e-04", "%#1e"},
+  {__LINE__, -4.724262200578540e+17,	"-472426220057853996.081576", "%+f"},
+  {__LINE__, -4.733267644288093e+01,	"-4.733268e+01", "%7e"},
+  {__LINE__, -4.742854711396110e-11,	"-0.000000", "%f"},
+  {__LINE__, -4.757456106385936e+23,	"-4.75746e+23", "%g"},
+  {__LINE__, -4.770895495642298e+27,	"-4770895495642298200777986494.358629", "%2f"},
+  {__LINE__, -4.775073456318149e+29,	"-4.775073E+29", "%#E"},
+  {__LINE__, -4.779997387204258e+17,	"-4.78e+17", "%g"},
+  {__LINE__, -4.799264315770707e-23,	"-4.799264E-23", "%+.7G"},
+  {__LINE__, -4.814277930599660e+10,	"-5e+10", "%2.1g"},
+  {__LINE__, -4.818413387018612e+05,	"-5e+05", "%.0g"},
+  {__LINE__, -4.818827195107612e-16,	"-4.818827e-16", "%e"},
+  {__LINE__, -4.841524514024803e+21,	"-4.84152E+21", "%G"},
+  {__LINE__, -4.860585077313477e+10,	"-4.86059E+10", "%+G"},
+  {__LINE__, -4.870037451948589e+28,	"-48700374519485887248038125107.996166", "%f"},
+  {__LINE__, -4.888835952705153e-28,	"-4.888836E-28", "%+E"},
+  {__LINE__, -4.893523355754114e-19,	"-4.893523e-19", "%.6e"},
+  {__LINE__, -4.906070260482585e+17,	"-490607026048258454", "%+.0f"},
+  {__LINE__, -4.907734144101900e+25,	"-5E+25", "%+.1G"},
+  {__LINE__, -4.917899547741841e-25,	"-4.917900e-25", "%e"},
+  {__LINE__, -4.923348512538722e+25,	"-49233485125387215219916470.232420", "%+.6f"},
+  {__LINE__, -4.926052630078460e-26,	"-4.926053e-26", "%e"},
+  {__LINE__, -4.926751662051156e+14,	"-4.927E+14", "%+5.3E"},
+  {__LINE__, -4.928017952199046e-12,	"-0.000000", "%f"},
+  {__LINE__, -4.944296782981195e-21,	"-4.9443E-21", "%1.5G"},
+  {__LINE__, -4.947320427183599e-19,	"-4.947320e-19", "%.6e"},
+  {__LINE__, -4.968188938972135e+17,	"-4.96819E+17", "%G"},
+  {__LINE__, -4.968756725758674e+05,	"-496876", "%G"},
+  {__LINE__, -4.968788759793340e-26,	"-4.97E-26", "%.3G"},
+  {__LINE__, -4.983904999913364e-24,	"-5E-24", "%0.G"},
+  {__LINE__, -4.985209496522767e+23,	"-4.985209e+23", "%e"},
+  {__LINE__, -4.987363880732866e+08,	"-4.98736E+08", "%G"},
+  {__LINE__, -4.989754940144973e+05,	"-498975.494014", "%f"},
+  {__LINE__, -4.998203870733718e-25,	"-4.9982e-25", "%g"},
+  {__LINE__, -4.999153445016792e-27,	"-5e-27", "%+1.e"},
+  {__LINE__, -5.002693488258108e+06,	" -5e+06", "%+7.g"},
+  {__LINE__, -5.017958458603783e+05,	"-5.0179585E+05", "%+.7E"},
+  {__LINE__, -5.028902178573363e-12,	"-5.0289e-12", "%0g"},
+  {__LINE__, -5.032337536971444e+07,	"-50323375.369714", "%f"},
+  {__LINE__, -5.036525516370473e-24,	"-5.0365e-24", "%4.5g"},
+  {__LINE__, -5.038642321515756e+18,	"-5038642321515755639.893541", "%f"},
+  {__LINE__, -5.051003516976770e-14,	"-5.051E-14", "%+G"},
+  {__LINE__, -5.051196143816789e+27,	"-5.0512e+27", "%g"},
+  {__LINE__, -5.057372886713786e+28,	"-5.057373e+28", "%#e"},
+  {__LINE__, -5.057475029459727e+12,	"-5.05748e+12", "%+g"},
+  {__LINE__, -5.068286816124670e-17,	"-5.068E-17", "%5.3E"},
+  {__LINE__, -5.070475165759468e-12,	"-0.000000", "%4.6f"},
+  {__LINE__, -5.081352543220476e+20,	"-5.081E+20", "%.3E"},
+  {__LINE__, -5.084398319179363e+11,	"-508439831917.936313", "%#f"},
+  {__LINE__, -5.085781220648484e+05,	"-5.E+05", "%+#7.G"},
+  {__LINE__, -5.094941054632498e-24,	"-5.09494E-24", "%+G"},
+  {__LINE__, -5.100059596310871e-10,	"-5.10006e-10", "%3.6g"},
+  {__LINE__, -5.103072553594136e-01,	"-0.5", "%+1.g"},
+  {__LINE__, -5.106319890388412e+08,	"-5.106320e+08", "%4e"},
+  {__LINE__, -5.107120687977690e+09,	"-5107120687.977690", "%f"},
+  {__LINE__, -5.119910716893161e-13,	"-5.11991E-13", "%6G"},
+  {__LINE__, -5.127594569425709e-29,	"-5.12759e-29", "%#g"},
+  {__LINE__, -5.130365585632797e+29,	"-5.13037e+29", "%#g"},
+  {__LINE__, -5.131415638022112e+08,	"-513141563.802211", "%0f"},
+  {__LINE__, -5.144703216335916e-23,	"-5.1447e-23", "%g"},
+  {__LINE__, -5.152511923201882e-05,	"-5.15251E-05", "%+G"},
+  {__LINE__, -5.165484448280190e-12,	" -0.0", "%5.1f"},
+  {__LINE__, -5.179220760465737e-20,	"-5e-20", "%+5.g"},
+  {__LINE__, -5.183005119662180e-10,	"-5.183005E-10", "%+E"},
+  {__LINE__, -5.199587953258117e+13,	"-5.19959e+13", "%6g"},
+  {__LINE__, -5.202041951844580e-25,	"-0.000000", "%f"},
+  {__LINE__, -5.202836038621740e+00,	"-5.20284", "%G"},
+  {__LINE__, -5.212204099528552e-11,	"-5.2122e-11", "%.6g"},
+  {__LINE__, -5.225617726710534e+17,	"-522561772671053414.995868", "%+f"},
+  {__LINE__, -5.230162003281426e+25,	"-52301620032814257754694153.84578", "%+6.5f"},
+  {__LINE__, -5.251849429321286e-11,	"-5.25185e-11", "%g"},
+  {__LINE__, -5.265174939930368e+23,	"-5.265175E+23", "%1.6E"},
+  {__LINE__, -5.271218134351422e+21,	"-5.27122e+21", "%+1g"},
+  {__LINE__, -5.273823357545750e+17,	"-527382335754575048.980541", "%f"},
+  {__LINE__, -5.279848797214957e+11,	"-527984879721.495659", "%0f"},
+  {__LINE__, -5.281551888625290e+11,	"-5e+11", "%4.g"},
+  {__LINE__, -5.281780377142961e-24,	"-5.28178e-24", "%g"},
+  {__LINE__, -5.292125782379512e+03,	"-5292.125782", "%f"},
+  {__LINE__, -5.292401691410388e+15,	"-5292401691410387.520875", "%f"},
+  {__LINE__, -5.305120752102265e-25,	"-5.30512e-25", "%+#.5e"},
+  {__LINE__, -5.317975791704413e+16,	"-5.31798e+16", "%+g"},
+  {__LINE__, -5.336522843607233e+27,	"-5.33652e+27", "%#6g"},
+  {__LINE__, -5.342016438000917e-05,	" -5e-05", "%+7.e"},
+  {__LINE__, -5.351122291549103e+06,	"-5351122.291549", "%+0f"},
+  {__LINE__, -5.352043956303597e+00,	"-5.35204", "%g"},
+  {__LINE__, -5.353582488767747e+09,	"-5.354E+09", "%7.3E"},
+  {__LINE__, -5.383420177718380e+04,	"-5e+04", "%1.e"},
+  {__LINE__, -5.384320189791882e-10,	"-5.384320e-10", "%e"},
+  {__LINE__, -5.409487543257379e-12,	"-5.40949E-12", "%G"},
+  {__LINE__, -5.418395794776773e+23,	"-5.4184e+23", "%g"},
+  {__LINE__, -5.419918795921525e-09,	"-0.000000", "%+f"},
+  {__LINE__, -5.422374157832442e+11,	"-5.42237e+11", "%3g"},
+  {__LINE__, -5.426916951577001e-27,	"-5.42692E-27", "%+G"},
+  {__LINE__, -5.430058833461779e+28,	"-5.43006E+28", "%G"},
+  {__LINE__, -5.444433348653147e+23,	"-5.444433E+23", "%E"},
+  {__LINE__, -5.446560186537024e+09,	"-5.446560E+09", "%E"},
+  {__LINE__, -5.464243500152188e+27,	"-5.46424E+27", "%G"},
+  {__LINE__, -5.464427517531742e+20,	"-546442751753174249529.365625", "%f"},
+  {__LINE__, -5.465783705970954e+05,	"-5E+05", "%1.E"},
+  {__LINE__, -5.475138077475789e-11,	"-5e-11", "%.0e"},
+  {__LINE__, -5.475302250616576e+10,	"-54753022506.1658", "%.4f"},
+  {__LINE__, -5.488964905442472e+09,	"-5.48896e+09", "%g"},
+  {__LINE__, -5.492508526846316e-08,	"-5.49251e-08", "%.6g"},
+  {__LINE__, -5.520533408804846e-15,	"-5.520533e-15", "%e"},
+  {__LINE__, -5.532744688447266e+28,	"-55327446884472664123677532188.594341", "%2.6f"},
+  {__LINE__, -5.535834653450131e-14,	"-5.5e-14", "%0.1e"},
+  {__LINE__, -5.554344735392882e-02,	"-5.554345E-02", "%+#E"},
+  {__LINE__, -5.555497334515501e-17,	"-5.5555e-17", "%g"},
+  {__LINE__, -5.558304303221977e+14,	"-555830430322197.699411", "%f"},
+  {__LINE__, -5.562210815777694e-05,	"-5.562211E-05", "%#1E"},
+  {__LINE__, -5.564800722538402e-09,	"-5.56480e-09", "%#.6g"},
+  {__LINE__, -5.567143271590439e-01,	"-5.567143e-01", "%#e"},
+  {__LINE__, -5.568606044396186e+01,	"-55.6861", "%4g"},
+  {__LINE__, -5.592027856401721e+12,	"-5.592028e+12", "%.7g"},
+  {__LINE__, -5.592295342565443e+22,	"-6.E+22", "%#3.G"},
+  {__LINE__, -5.600007421926053e+07,	"-56000074.219261", "%1f"},
+  {__LINE__, -5.601444553155006e-12,	"-5.60144E-12", "%G"},
+  {__LINE__, -5.605128912835080e-03,	"-0.005605", "%+f"},
+  {__LINE__, -5.610950285679577e+19,	"-5.61095E+19", "%G"},
+  {__LINE__, -5.622074657679467e+11,	"-562207465767.946690", "%f"},
+  {__LINE__, -5.627358352391656e-01,	"-0.6", "%1.g"},
+  {__LINE__, -5.627974317622488e-02,	"-5.627974e-02", "%+e"},
+  {__LINE__, -5.629497696447229e+27,	"-5.629E+27", "%+.4G"},
+  {__LINE__, -5.631383567258576e-29,	"-5.63138e-29", "%0g"},
+  {__LINE__, -5.635241327177333e-18,	"-5.63524E-18", "%G"},
+  {__LINE__, -5.644819783138381e+06,	"-5.644820E+06", "%#E"},
+  {__LINE__, -5.648538459114833e+26,	"-564853845911483265496144667.849876", "%+f"},
+  {__LINE__, -5.649004865848537e+00,	"-5.649", "%g"},
+  {__LINE__, -5.653403316885170e+23,	"-6E+23", "%2.0E"},
+  {__LINE__, -5.656109962244926e-18,	"-0.000000", "%f"},
+  {__LINE__, -5.674988031695793e+22,	"-5.674988E+22", "%+.7G"},
+  {__LINE__, -5.686380226400881e-22,	"-0.000000", "%f"},
+  {__LINE__, -5.698840855829442e-14,	"-5.69884E-14", "%G"},
+  {__LINE__, -5.707036642649580e+03,	"-5707.036643", "%f"},
+  {__LINE__, -5.710344882278847e+11,	"-5.71034E+11", "%+G"},
+  {__LINE__, -5.714852196401017e+19,	"-5.71485E+19", "%+G"},
+  {__LINE__, -5.720153622156089e-22,	"-5.72015E-22", "%G"},
+  {__LINE__, -5.722366011976922e+26,	"-5.72237e+26", "%+g"},
+  {__LINE__, -5.722909928097404e+12,	"-5.72291E+12", "%2G"},
+  {__LINE__, -5.725325961787777e-25,	"-5.72533e-25", "%g"},
+  {__LINE__, -5.727138241052646e+19,	"-5.72714e+19", "%+#g"},
+  {__LINE__, -5.734025840446336e+14,	"-5.73403e+14", "%+g"},
+  {__LINE__, -5.736469106710259e-05,	"-0.000057", "%.6f"},
+  {__LINE__, -5.755099153733116e-14,	"-5.7551e-14", "%+g"},
+  {__LINE__, -5.758411844890947e-20,	"-6E-20", "%+6.G"},
+  {__LINE__, -5.760350214122813e+03,	"-5760.35", "%+g"},
+  {__LINE__, -5.768009192512392e-30,	"-0", "%1.f"},
+  {__LINE__, -5.772343286693103e+07,	"-5.77234E+07", "%G"},
+  {__LINE__, -5.776693265471852e-27,	"-5.776693E-27", "%E"},
+  {__LINE__, -5.779682861172754e-28,	"-5.779683e-28", "%e"},
+  {__LINE__, -5.789953490749936e+26,	"-578995349074993637117358957.76656", "%5.5f"},
+  {__LINE__, -5.796771264754334e+04,	"-57967.7", "%g"},
+  {__LINE__, -5.804788370597286e-02,	"-5.80479E-02", "%+#1.5E"},
+  {__LINE__, -5.805343475329215e-13,	"-5.80534e-13", "%g"},
+  {__LINE__, -5.809853913830122e+09,	"-5809853914", "%+0.f"},
+  {__LINE__, -5.817313814570609e-30,	"     -0", "%7.0f"},
+  {__LINE__, -5.831708441750138e+00,	"-5.83171", "%#g"},
+  {__LINE__, -5.846914550593652e+29,	"-5.846915e+29", "%e"},
+  {__LINE__, -5.851455214762288e+04,	"-58514.6", "%+G"},
+  {__LINE__, -5.855803663871393e-23,	"-6E-23", "%5.E"},
+  {__LINE__, -5.858065129988470e+10,	"-5.85807e+10", "%+g"},
+  {__LINE__, -5.863147168075411e-14,	"-5.86315e-14", "%+g"},
+  {__LINE__, -5.878936740266680e-04,	"-0.000587894", "%g"},
+  {__LINE__, -5.887654893386630e+25,	"-58876548933866299506689756.526612", "%#f"},
+  {__LINE__, -5.889416409731902e-02,	"-0.06", "%5.g"},
+  {__LINE__, -5.897630195029892e-18,	"-5.897630E-18", "%#0.7G"},
+  {__LINE__, -5.898506808456422e-19,	"-5.89851E-19", "%G"},
+  {__LINE__, -5.901768645393515e+29,	"-5.90177E+29", "%+G"},
+  {__LINE__, -5.907529093570369e+10,	"-59075290935.703695", "%f"},
+  {__LINE__, -5.910069365260240e+13,	"-59100693652602.39849", "%+#5.5f"},
+  {__LINE__, -5.915678929676435e-07,	"-0.000001", "%+f"},
+  {__LINE__, -5.922232380131716e-01,	"-0.592223", "%+3f"},
+  {__LINE__, -5.923716473994306e+19,	"-5.92372E+19", "%+#.6G"},
+  {__LINE__, -5.929950428920404e-15,	"-5.929950e-15", "%+e"},
+  {__LINE__, -5.949552735665802e+26,	"-5.94955e+26", "%#g"},
+  {__LINE__, -5.949977081310732e-02,	"-0.059500", "%f"},
+  {__LINE__, -5.954520303889356e-07,	"-5.954520E-07", "%5E"},
+  {__LINE__, -5.978861337429145e-13,	"-6E-13", "%1.G"},
+  {__LINE__, -5.980539445081087e+15,	"-5.98054E+15", "%.6G"},
+  {__LINE__, -5.981724990853490e-03,	" -0.006", "%#7.g"},
+  {__LINE__, -5.989488907825821e+03,	"-6E+03", "%.2G"},
+  {__LINE__, -5.998272294890842e+06,	"-6.00E+06", "%4.2E"},
+  {__LINE__, -6.023775731455919e-29,	"-6.023776e-29", "%e"},
+  {__LINE__, -6.028153126666870e-05,	"-6.e-05", "%+#6.e"},
+  {__LINE__, -6.036200621484690e+25,	"-6e+25", "%2.2g"},
+  {__LINE__, -6.036400640928137e-14,	"-6.036401e-14", "%e"},
+  {__LINE__, -6.038198451098329e-20,	"-6.038198e-20", "%1.7g"},
+  {__LINE__, -6.045778975641123e-15,	"-6.04578E-15", "%G"},
+  {__LINE__, -6.046038904252073e+00,	"-6.04604", "%g"},
+  {__LINE__, -6.082158462782175e-06,	"-0.000006", "%+#f"},
+  {__LINE__, -6.106162726644904e+10,	"-6.10616e+10", "%g"},
+  {__LINE__, -6.126345215489182e+10,	"-6e+10", "%+1.g"},
+  {__LINE__, -6.131852309620571e+02,	"-6e+02", "%4.e"},
+  {__LINE__, -6.134589313243809e-01,	"-0.613459", "%+#f"},
+  {__LINE__, -6.142358153783462e-10,	"-6.14236E-10", "%4G"},
+  {__LINE__, -6.151524334856263e+27,	"-6151524334856262932191839354.345575", "%+6f"},
+  {__LINE__, -6.156818333724550e+04,	"-6.e+04", "%#.1g"},
+  {__LINE__, -6.166172551433993e+24,	"-6166172551433993120895138.4178", "%5.4f"},
+  {__LINE__, -6.169532428006014e-09,	"-6.16953e-09", "%3g"},
+  {__LINE__, -6.172019382601770e-28,	"-0.000000", "%+f"},
+  {__LINE__, -6.174496985807155e-09,	"-6.1745E-09", "%G"},
+  {__LINE__, -6.186771845105751e+04,	"-61867.7", "%G"},
+  {__LINE__, -6.200817973780066e+22,	"-6.20082E+22", "%3G"},
+  {__LINE__, -6.218004335456301e-22,	"-0.000000", "%+f"},
+  {__LINE__, -6.219009630546262e-18,	"-6.22e-18", "%6.3g"},
+  {__LINE__, -6.242532875230618e-06,	"-0.000006", "%7f"},
+  {__LINE__, -6.243612261280864e+14,	"-6.24361e+14", "%.6g"},
+  {__LINE__, -6.243689597320126e+10,	"-6e+10", "%.0e"},
+  {__LINE__, -6.244620667090527e+04,	"-6e+04", "%6.e"},
+  {__LINE__, -6.250789625572054e-09,	"-0.000000", "%+f"},
+  {__LINE__, -6.253537566219164e+01,	"-63.", "%#1.f"},
+  {__LINE__, -6.284420289484166e+21,	"-6.2844203e+21", "%7.7e"},
+  {__LINE__, -6.285939888202846e+27,	"-6e+27", "%+.0g"},
+  {__LINE__, -6.290025777678105e+13,	"-6E+13", "%2.E"},
+  {__LINE__, -6.291364254323924e+10,	"-6.3E+10", "%3.2G"},
+  {__LINE__, -6.292428812164449e+15,	"-6292428812164448.714839", "%.6f"},
+  {__LINE__, -6.292600606358002e+29,	"-6.29260E+29", "%#G"},
+  {__LINE__, -6.292739629144148e-15,	"-6.292740E-15", "%E"},
+  {__LINE__, -6.296471626465745e+28,	"-6.29647E+28", "%G"},
+  {__LINE__, -6.299575066640315e+27,	"-6.300E+27", "%.3E"},
+  {__LINE__, -6.315234679394876e-24,	"-6E-24", "%2.G"},
+  {__LINE__, -6.320883246383228e-01,	"-0.632088", "%2g"},
+  {__LINE__, -6.324938413548937e-11,	"-6e-11", "%.1g"},
+  {__LINE__, -6.336312983176250e+04,	"-6.336313e+04", "%e"},
+  {__LINE__, -6.341786787214541e+06,	"-6.341787E+06", "%+7.6E"},
+  {__LINE__, -6.360189291106185e-15,	"-0.0000000", "%#.7f"},
+  {__LINE__, -6.364818355457748e-15,	"-0.0000000", "%1.7f"},
+  {__LINE__, -6.366291103431814e+04,	"-63662.9", "%#G"},
+  {__LINE__, -6.366334042923153e-05,	"-6.37e-05", "%5.3g"},
+  {__LINE__, -6.370477455143194e-12,	"-0.000000", "%f"},
+  {__LINE__, -6.372829256546279e+23,	"-6.37283E+23", "%G"},
+  {__LINE__, -6.375208490193110e-23,	"-6.37521e-23", "%4.5e"},
+  {__LINE__, -6.382595100891736e-24,	"-6.3826E-24", "%5G"},
+  {__LINE__, -6.396882421146790e-22,	"-6.39688e-22", "%+g"},
+  {__LINE__, -6.407190354039938e+08,	"-6.40719e+08", "%+g"},
+  {__LINE__, -6.408581541430886e-10,	"-6.E-10", "%#0.0G"},
+  {__LINE__, -6.409206904981703e-03,	"-0.006", "%+.0G"},
+  {__LINE__, -6.416106714707772e+26,	"-641610671470777216285341637.558304", "%f"},
+  {__LINE__, -6.417436981761998e-04,	"-0.000642", "%+#f"},
+  {__LINE__, -6.429997249673124e+11,	"-642999724967.312414", "%#f"},
+  {__LINE__, -6.440827429825250e+16,	"-6.44083E+16", "%G"},
+  {__LINE__, -6.444869858444955e+02,	"-6e+02", "%6.g"},
+  {__LINE__, -6.471701890976228e-25,	" -6e-25", "%7.1g"},
+  {__LINE__, -6.485393161670371e-12,	"-6.485393e-12", "%.6e"},
+  {__LINE__, -6.487710907063584e+23,	"-6.E+23", "%#3.E"},
+  {__LINE__, -6.492942931343439e-08,	"-0.", "%+#2.0f"},
+  {__LINE__, -6.496010652113223e+18,	"-6.49601e+18", "%g"},
+  {__LINE__, -6.502856921840228e+22,	"-6.50286e+22", "%4g"},
+  {__LINE__, -6.523559906055000e-10,	"-6.52356E-10", "%.6G"},
+  {__LINE__, -6.525899074126662e+04,	"-6.5e+04", "%+.1e"},
+  {__LINE__, -6.532216801155521e-09,	"-6.53222E-09", "%G"},
+  {__LINE__, -6.544601787025684e-27,	"-0", "%+.0f"},
+  {__LINE__, -6.558968312132168e-01,	"    -1", "%+6.f"},
+  {__LINE__, -6.559654261655786e+08,	"-6.559654e+08", "%e"},
+  {__LINE__, -6.566562622196495e-21,	"-6.56656E-21", "%.6G"},
+  {__LINE__, -6.573486832071960e+04,	"-65734.9", "%G"},
+  {__LINE__, -6.573806290918275e+13,	"-6.57381E+13", "%G"},
+  {__LINE__, -6.578113771674787e+17,	"-6.57811E+17", "%+#G"},
+  {__LINE__, -6.584106931007506e+15,	"-6.584107E+15", "%E"},
+  {__LINE__, -6.590538844308877e+07,	"-65905388.443089", "%f"},
+  {__LINE__, -6.593708834068371e-07,	"-0.000001", "%f"},
+  {__LINE__, -6.597116446195875e+08,	"-6.5971164e+08", "%#1.7e"},
+  {__LINE__, -6.605813542127091e-04,	"-0.0007", "%+0.g"},
+  {__LINE__, -6.607491403866429e+07,	"-7e+07", "%3.g"},
+  {__LINE__, -6.616499847522278e+09,	"-6.61650E+09", "%+#G"},
+  {__LINE__, -6.618619768691332e+20,	"-7E+20", "%2.G"},
+  {__LINE__, -6.626748168962331e-22,	"-7.E-22", "%+#3.E"},
+  {__LINE__, -6.639335450348280e+12,	"-6.63934e+12", "%g"},
+  {__LINE__, -6.643910144912576e-03,	"-0.006644", "%f"},
+  {__LINE__, -6.650293872031870e-18,	"-6.65029e-18", "%+#g"},
+  {__LINE__, -6.654903858656310e-21,	"-0.000000", "%f"},
+  {__LINE__, -6.665834666726511e-12,	"-6.665835E-12", "%E"},
+  {__LINE__, -6.666428729917570e-19,	"-0.000000", "%+#f"},
+  {__LINE__, -6.668415789681128e+27,	"-6.66842E+27", "%+G"},
+  {__LINE__, -6.675214676269601e-28,	"-6.67521e-28", "%#g"},
+  {__LINE__, -6.679560072732262e+01,	"-66.7956", "%#g"},
+  {__LINE__, -6.692325075457020e-19,	"-0.000000", "%1f"},
+  {__LINE__, -6.697096655164652e+00,	"-6.70", "%#.3g"},
+  {__LINE__, -6.712436135928394e-28,	"-7e-28", "%0.g"},
+  {__LINE__, -6.720769486122685e-16,	"-7e-16", "%0.e"},
+  {__LINE__, -6.727196898490600e+26,	"-672719689849060031860972230.8", "%.1f"},
+  {__LINE__, -6.744132627576416e+02,	"-674.413", "%6G"},
+  {__LINE__, -6.757705576425288e+28,	"-6.7577056e+28", "%.7e"},
+  {__LINE__, -6.760554929237173e-02,	"-0.067606", "%+f"},
+  {__LINE__, -6.763538810629361e+10,	"-6.7635E+10", "%.4E"},
+  {__LINE__, -6.764712008860796e-29,	"-6.76471E-29", "%+G"},
+  {__LINE__, -6.767299719678443e+04,	"-67672.997197", "%f"},
+  {__LINE__, -6.768326491352134e+20,	"-676832649135213415547.70", "%+.2f"},
+  {__LINE__, -6.771116968952891e+03,	"-7E+03", "%3.1G"},
+  {__LINE__, -6.775218099238350e-30,	"-7.e-30", "%+#6.g"},
+  {__LINE__, -6.782142689928918e-18,	"-0.00", "%4.2f"},
+  {__LINE__, -6.795409770512149e+08,	"-7E+08", "%+5.0G"},
+  {__LINE__, -6.820966157097271e+14,	"-6.820966e+14", "%e"},
+  {__LINE__, -6.824972990592273e-22,	"-0.00", "%+#1.2f"},
+  {__LINE__, -6.830452914741750e+29,	"-6.8E+29", "%+7.2G"},
+  {__LINE__, -6.835797187132348e+10,	"-6.8358E+10", "%+5G"},
+  {__LINE__, -6.837040829636343e-03,	"-0.00683704", "%+g"},
+  {__LINE__, -6.852956218658224e+23,	"-6.85296e+23", "%3g"},
+  {__LINE__, -6.854102607287217e-26,	"-7e-26", "%5.e"},
+  {__LINE__, -6.865065870249438e+16,	"-6.86507E+16", "%#G"},
+  {__LINE__, -6.884819522625523e-13,	"-6.88482E-13", "%5G"},
+  {__LINE__, -6.916316600148513e-12,	"-0.000000", "%f"},
+  {__LINE__, -6.925312418761560e-05,	"-6.92531E-05", "%#G"},
+  {__LINE__, -6.929518694178331e+09,	"-6929518694.178", "%#.3f"},
+  {__LINE__, -6.936008056682024e+02,	"-6.936008E+02", "%E"},
+  {__LINE__, -6.944911117352400e+26,	"-6.944911E+26", "%1.6E"},
+  {__LINE__, -6.945829492125162e+05,	"-6.9e+05", "%+2.2g"},
+  {__LINE__, -6.946603162471856e-13,	"-6.94660E-13", "%#G"},
+  {__LINE__, -6.947529440406653e+22,	"-6.9475e+22", "%+6.5g"},
+  {__LINE__, -6.950167604854856e-30,	"-0.000000", "%7f"},
+  {__LINE__, -6.958122319262799e-26,	"-7E-26", "%+1.E"},
+  {__LINE__, -6.958978258390961e+16,	"-6.95898E+16", "%+5.6G"},
+  {__LINE__, -6.963780466334008e-06,	"-6.96378E-06", "%2G"},
+  {__LINE__, -6.965570896221966e+13,	"-6.965571E+13", "%5E"},
+  {__LINE__, -6.967741871945064e-10,	"-6.96774E-10", "%+#G"},
+  {__LINE__, -6.973815739524307e+19,	"-69738157395243067782.076", "%6.3f"},
+  {__LINE__, -6.982714545008106e+13,	"-6.98271e+13", "%g"},
+  {__LINE__, -6.985955885054476e+03,	"-6985.96", "%6G"},
+  {__LINE__, -6.986415266835747e+18,	"-6.98642e+18", "%#g"},
+  {__LINE__, -6.996461529596512e-08,	"-7.0E-08", "%#.1E"},
+  {__LINE__, -7.000144914012241e-05,	"-7.00014e-05", "%#g"},
+  {__LINE__, -7.001017894492730e-03,	"-0.00700102", "%+#.6G"},
+  {__LINE__, -7.003690685875917e+20,	"-7E+20", "%0.G"},
+  {__LINE__, -7.010454163965384e+00,	"-7.010454e+00", "%+e"},
+  {__LINE__, -7.011493550018082e-26,	"     -0", "%7.f"},
+  {__LINE__, -7.018018443394008e+21,	"-7.0E+21", "%+#1.1E"},
+  {__LINE__, -7.027253777387243e-05,	"-7.02725E-05", "%+G"},
+  {__LINE__, -7.043679213677740e-17,	"-0", "%1.f"},
+  {__LINE__, -7.051690489227881e-16,	"-7.052e-16", "%0.4g"},
+  {__LINE__, -7.063422475274161e-16,	"-7.063422E-16", "%E"},
+  {__LINE__, -7.065069592235558e-30,	"-7.06507e-30", "%+#g"},
+  {__LINE__, -7.068265283935834e-29,	"-7e-29", "%+5.e"},
+  {__LINE__, -7.068748224536295e-13,	"-0.000000", "%f"},
+  {__LINE__, -7.069621910708177e-04,	"-0.000707", "%1.3g"},
+  {__LINE__, -7.079725450964823e-12,	"-0.000000", "%f"},
+  {__LINE__, -7.087255464668218e+17,	"-7.1e+17", "%.1e"},
+  {__LINE__, -7.088715102009605e-09,	"-7e-09", "%6.0g"},
+  {__LINE__, -7.090414916270137e-15,	"-0.00000", "%.5f"},
+  {__LINE__, -7.091868311008428e-03,	" -0.0", "%5.1f"},
+  {__LINE__, -7.094242165237718e+21,	"-7.09424e+21", "%+g"},
+  {__LINE__, -7.094324305740325e-05,	"-7E-05", "%+3.G"},
+  {__LINE__, -7.104544752289144e+04,	"-71045.4", "%#g"},
+  {__LINE__, -7.105164644813694e-29,	"-0.000000", "%+f"},
+  {__LINE__, -7.114513164219487e-12,	"-7.11451e-12", "%+g"},
+  {__LINE__, -7.115778236604137e-12,	"-7.11578E-12", "%G"},
+  {__LINE__, -7.126217683410162e-27,	"-7.126218e-27", "%e"},
+  {__LINE__, -7.136214260967733e+28,	"-71362142609677334803564008325.338364", "%f"},
+  {__LINE__, -7.143452595522573e+19,	"-7.14345e+19", "%g"},
+  {__LINE__, -7.156042088843537e+27,	"-7156042088843537207765166385.7977837", "%4.7f"},
+  {__LINE__, -7.173687683710490e+24,	"-7.17369e+24", "%6g"},
+  {__LINE__, -7.190531162598206e+25,	"-71905311625982060164119503", "%4.f"},
+  {__LINE__, -7.201301831373747e-09,	"-7.2013e-09", "%g"},
+  {__LINE__, -7.209601436737306e+10,	"-7.2096e+10", "%g"},
+  {__LINE__, -7.211058997356655e-06,	"-7.211059E-06", "%E"},
+  {__LINE__, -7.226756177676272e-09,	"-7.22676E-09", "%+G"},
+  {__LINE__, -7.230870817566419e+19,	"-72308708175664193618.1040364", "%#.7f"},
+  {__LINE__, -7.231355992133345e-05,	"-7.231356E-05", "%#E"},
+  {__LINE__, -7.245999575278407e-12,	"-7.246e-12", "%g"},
+  {__LINE__, -7.247426403040390e-09,	"-7.2474E-09", "%+4.5G"},
+  {__LINE__, -7.257348680308567e-12,	"-7.3E-12", "%1.2G"},
+  {__LINE__, -7.258184256387366e-26,	"-7.25818E-26", "%+2G"},
+  {__LINE__, -7.262633672900126e+10,	"-7.26263e+10", "%#g"},
+  {__LINE__, -7.268887462426250e+03,	"-7.268887e+03", "%+#e"},
+  {__LINE__, -7.275284494682963e+08,	"-7.27528e+08", "%g"},
+  {__LINE__, -7.276335846256479e-07,	"  -0", "%4.f"},
+  {__LINE__, -7.312556378294452e+15,	"-7.31256e+15", "%+6g"},
+  {__LINE__, -7.334763752442417e-15,	"-0.0000", "%#.4f"},
+  {__LINE__, -7.354627097325888e-18,	"-7E-18", "%0.E"},
+  {__LINE__, -7.360087573342401e-25,	"-7.4E-25", "%6.2G"},
+  {__LINE__, -7.368533563361098e-29,	"-7.4E-29", "%3.1E"},
+  {__LINE__, -7.379267723540596e-06,	"-0.000007", "%f"},
+  {__LINE__, -7.384525781709565e-19,	"-0.000000", "%+#f"},
+  {__LINE__, -7.388940868679677e-09,	"-7.388941E-09", "%E"},
+  {__LINE__, -7.391602149099698e+00,	"-7.391602E+00", "%E"},
+  {__LINE__, -7.393159340196723e+22,	"-7.39316e+22", "%#2.6g"},
+  {__LINE__, -7.399783260198277e-16,	"-7.39978E-16", "%G"},
+  {__LINE__, -7.405609590448331e-06,	"-7.40561e-06", "%g"},
+  {__LINE__, -7.407396977847794e-11,	"-7.40740E-11", "%#G"},
+  {__LINE__, -7.433716848698637e+20,	"-7.43372e+20", "%+g"},
+  {__LINE__, -7.444176062769411e-01,	"-0.744418", "%#g"},
+  {__LINE__, -7.448314697244012e+12,	"-7448314697244.011739", "%f"},
+  {__LINE__, -7.449533988369018e+08,	"-7.449534e+08", "%+#7e"},
+  {__LINE__, -7.465682839758801e-01,	"-7E-01", "%4.E"},
+  {__LINE__, -7.466517843126368e-26,	"-7.5E-26", "%.1E"},
+  {__LINE__, -7.471385785539900e+24,	"-7471385785539899515583783.795591", "%f"},
+  {__LINE__, -7.478345583780341e+00,	"-7.478346e+00", "%e"},
+  {__LINE__, -7.524759284626724e-06,	"-7.52476e-06", "%2g"},
+  {__LINE__, -7.534831049342539e-19,	"-7.53483E-19", "%G"},
+  {__LINE__, -7.540546673179273e+15,	"-8e+15", "%.1g"},
+  {__LINE__, -7.543440436184003e-08,	"-7.54344E-08", "%6G"},
+  {__LINE__, -7.558224240835564e-06,	"-7.55822e-06", "%g"},
+  {__LINE__, -7.564132915154469e+23,	"-756413291515446850610260.298708", "%+f"},
+  {__LINE__, -7.566590720355392e+15,	"-7.566591e+15", "%1.6e"},
+  {__LINE__, -7.568565927479741e-01,	"-7.568566e-01", "%#6e"},
+  {__LINE__, -7.615574141973305e-17,	"-7.6156e-17", "%+.5g"},
+  {__LINE__, -7.641297631509318e-28,	"-8e-28", "%+.1g"},
+  {__LINE__, -7.661227834163450e+09,	"-7661227834.1634497", "%+#.7f"},
+  {__LINE__, -7.665934364070126e+11,	"-766593436407.0", "%.1f"},
+  {__LINE__, -7.682500068463102e-27,	"-0.000000", "%+#f"},
+  {__LINE__, -7.709363160273798e+15,	"-7.70936e+15", "%g"},
+  {__LINE__, -7.712596019255238e+26,	"-7.7e+26", "%.2g"},
+  {__LINE__, -7.730213358437991e+25,	"-7.7e+25", "%6.2g"},
+  {__LINE__, -7.744420019068976e+05,	"-7.74442E+05", "%.5E"},
+  {__LINE__, -7.745813181942296e+11,	"-7.7458132e+11", "%+.7e"},
+  {__LINE__, -7.751004379716307e+16,	"-7.751004e+16", "%e"},
+  {__LINE__, -7.759862226564527e-28,	"-7.75986e-28", "%g"},
+  {__LINE__, -7.767838880221207e-27,	"-7.76784e-27", "%g"},
+  {__LINE__, -7.776301142157532e-19,	"-0", "%2.f"},
+  {__LINE__, -7.783944257077553e-14,	"-8e-14", "%3.g"},
+  {__LINE__, -7.801587579382377e+28,	"-8e+28", "%+0.g"},
+  {__LINE__, -7.806685979552780e+25,	"-7.806686E+25", "%E"},
+  {__LINE__, -7.825968891331719e-05,	"-7.82597E-05", "%G"},
+  {__LINE__, -7.826834158664018e+12,	"-7.826834E+12", "%+#E"},
+  {__LINE__, -7.832536798726886e+24,	"-7.83254E+24", "%#1G"},
+  {__LINE__, -7.840485340202362e-18,	"-0.000000", "%.6f"},
+  {__LINE__, -7.843236212099233e+21,	"-7.84324e+21", "%g"},
+  {__LINE__, -7.906644052019278e-13,	"-7.906644E-13", "%E"},
+  {__LINE__, -7.908090440678874e-20,	"-7.90809E-20", "%#G"},
+  {__LINE__, -7.917588593012283e+08,	"-7.917589E+08", "%+E"},
+  {__LINE__, -7.929100086742454e+29,	"-792910008674245414539427656563.930213", "%f"},
+  {__LINE__, -7.933235286034290e+26,	"-7.933235E+26", "%E"},
+  {__LINE__, -7.943431966567875e-03,	"-0.0079434", "%+.5g"},
+  {__LINE__, -7.950872643572970e-22,	"-7.95087e-22", "%2g"},
+  {__LINE__, -7.971225555313069e-01,	"-0.797123", "%f"},
+  {__LINE__, -7.978310272676090e-12,	"-0.000000", "%#f"},
+  {__LINE__, -8.006805393896414e-29,	"-8.00681E-29", "%G"},
+  {__LINE__, -8.006906303018830e+25,	"-8.00691E+25", "%+G"},
+  {__LINE__, -8.008484654476057e+18,	"-8.008485e+18", "%5.6e"},
+  {__LINE__, -8.008943512904249e+27,	"-8008943512904249217854157905.0943", "%+.4f"},
+  {__LINE__, -8.016539743121665e+27,	"-8.01654E+27", "%G"},
+  {__LINE__, -8.018247227006128e-05,	" -8E-05", "%7.G"},
+  {__LINE__, -8.044391842561705e+21,	"-8.04439e+21", "%g"},
+  {__LINE__, -8.081902305002036e-02,	"-8.081902E-02", "%E"},
+  {__LINE__, -8.084193011936438e-03,	"-0.0080842", "%+5.5g"},
+  {__LINE__, -8.105813534846529e-27,	"-0.000000", "%f"},
+  {__LINE__, -8.128116892989251e+00,	"-8.12812", "%G"},
+  {__LINE__, -8.136119035731877e+05,	"-8e+05", "%+0.g"},
+  {__LINE__, -8.140584224052606e+14,	"-8E+14", "%5.G"},
+  {__LINE__, -8.145928897003907e+13,	"-8.15E+13", "%.3G"},
+  {__LINE__, -8.164495905907508e-02,	"-0.081645", "%G"},
+  {__LINE__, -8.169602113313905e+20,	"-8.16960e+20", "%#g"},
+  {__LINE__, -8.179181640418333e+24,	"-8.E+24", "%#.1G"},
+  {__LINE__, -8.184324492264231e-18,	"-8.18432E-18", "%G"},
+  {__LINE__, -8.186480473850516e-28,	"-0.000000", "%+f"},
+  {__LINE__, -8.196858948158896e+07,	"-8.1969E+07", "%.4E"},
+  {__LINE__, -8.213138534699043e-30,	"-0.000000", "%f"},
+  {__LINE__, -8.221181368676532e-21,	"-8.221181E-21", "%#1E"},
+  {__LINE__, -8.222605734191438e+16,	"-8.22261E+16", "%+G"},
+  {__LINE__, -8.223925661091432e-14,	"-8.223926e-14", "%0e"},
+  {__LINE__, -8.232281541044777e-01,	"-0.823228", "%f"},
+  {__LINE__, -8.245536794508725e+22,	"-8E+22", "%6.G"},
+  {__LINE__, -8.270687365305925e+25,	"-82706873653059247430974210.146815", "%f"},
+  {__LINE__, -8.288978945738204e+11,	"-8.28898e+11", "%5g"},
+  {__LINE__, -8.290628698333139e+02,	"-829.063", "%+G"},
+  {__LINE__, -8.292416206056451e-16,	"-8.29242e-16", "%+g"},
+  {__LINE__, -8.296322623746486e-13,	"-8.29632E-13", "%0.6G"},
+  {__LINE__, -8.298321941376933e-16,	"-0.000000", "%+f"},
+  {__LINE__, -8.302331258878365e+29,	"-8.30233E+29", "%0G"},
+  {__LINE__, -8.309022429255061e+06,	"-8309022.429255", "%+f"},
+  {__LINE__, -8.312786829254646e-23,	"-8.312787e-23", "%e"},
+  {__LINE__, -8.313852965178063e-15,	"-8.313853e-15", "%#7e"},
+  {__LINE__, -8.317529094827869e+16,	"-8.31753E+16", "%2G"},
+  {__LINE__, -8.322847660882248e-17,	"-0.000000", "%f"},
+  {__LINE__, -8.324060602752638e-30,	"-8.32406e-30", "%#g"},
+  {__LINE__, -8.325043500735461e+27,	"-8325043500735461066142306663.095951", "%#f"},
+  {__LINE__, -8.332432016286935e-02,	"-0.0833243", "%g"},
+  {__LINE__, -8.334251670232117e-09,	"-8.33425e-09", "%g"},
+  {__LINE__, -8.338076225141778e+02,	"-833.808", "%g"},
+  {__LINE__, -8.338349587571534e-23,	"-8.33835e-23", "%+2g"},
+  {__LINE__, -8.342420812231939e+23,	"-834242081223193920891390.00745", "%+0.5f"},
+  {__LINE__, -8.347404637940894e+17,	"-8.347405e+17", "%+e"},
+  {__LINE__, -8.367002601133880e-12,	"-0.000000", "%#2.6f"},
+  {__LINE__, -8.368579538210858e-17,	"-8.36858e-17", "%5g"},
+  {__LINE__, -8.392398522472401e-10,	"-0.0000", "%.4f"},
+  {__LINE__, -8.393029677635258e-29,	" -8E-29", "%7.G"},
+  {__LINE__, -8.393843230819225e-11,	"-8.393843E-11", "%E"},
+  {__LINE__, -8.397239871789148e-11,	"-8.39724e-11", "%g"},
+  {__LINE__, -8.402316358199041e-29,	"-0.000", "%3.3f"},
+  {__LINE__, -8.402910159034304e-14,	"-8.4e-14", "%+0.3g"},
+  {__LINE__, -8.414960962391726e+09,	"-8414960962.391726", "%#f"},
+  {__LINE__, -8.417512471384889e-28,	"-8.417512e-28", "%e"},
+  {__LINE__, -8.418719240222911e+21,	"-8418719240222911182058.851409", "%f"},
+  {__LINE__, -8.421210956044195e-09,	"-0.00000", "%.5f"},
+  {__LINE__, -8.422001733529095e+24,	"-8E+24", "%0.G"},
+  {__LINE__, -8.443614453772469e+21,	"-8.44361E+21", "%+G"},
+  {__LINE__, -8.445883044175737e-19,	"-0", "%+1.f"},
+  {__LINE__, -8.460545304711022e-01,	"-0.846055", "%G"},
+  {__LINE__, -8.470462532754567e+12,	"-8.47E+12", "%6.3G"},
+  {__LINE__, -8.478488782426476e-07,	"-8.478489E-07", "%E"},
+  {__LINE__, -8.478657582923923e+09,	"-8.5e+09", "%.2g"},
+  {__LINE__, -8.482732098043366e+12,	"-8482732098043", "%5.f"},
+  {__LINE__, -8.489112373854447e+07,	"-8.489e+07", "%#3.3e"},
+  {__LINE__, -8.494153144629106e+02,	"-849.415", "%+g"},
+  {__LINE__, -8.496331191616493e+28,	"-8E+28", "%+6.G"},
+  {__LINE__, -8.503711894495339e+05,	"-850371", "%g"},
+  {__LINE__, -8.505271893964268e+14,	"-8.505272E+14", "%E"},
+  {__LINE__, -8.509873985358741e+15,	"-9.e+15", "%#7.g"},
+  {__LINE__, -8.518336897898081e-20,	"-8.51834E-20", "%G"},
+  {__LINE__, -8.529588044136128e+21,	"-8.529588E+21", "%E"},
+  {__LINE__, -8.539706586811079e-23,	"-8.53971E-23", "%G"},
+  {__LINE__, -8.545924619642008e+10,	"-8.545925e+10", "%6e"},
+  {__LINE__, -8.572893681637353e+09,	"-8.57289E+09", "%G"},
+  {__LINE__, -8.585483717692345e+29,	"-8.58548E+29", "%+G"},
+  {__LINE__, -8.586092014292309e+27,	"-8.59e+27", "%.2e"},
+  {__LINE__, -8.604716827086833e-26,	"-8.60472e-26", "%g"},
+  {__LINE__, -8.621349224186615e-04,	"-0.000862", "%f"},
+  {__LINE__, -8.626097065201103e-21,	"   -0", "%5.f"},
+  {__LINE__, -8.631700514212522e-16,	"-8.631701E-16", "%+E"},
+  {__LINE__, -8.634703359975640e-09,	"-0.000000", "%+5f"},
+  {__LINE__, -8.639393025443855e-17,	"-8.63939e-17", "%g"},
+  {__LINE__, -8.640641942556812e-11,	"-8.64064e-11", "%#g"},
+  {__LINE__, -8.646260250525495e-09,	"-0.000", "%.3f"},
+  {__LINE__, -8.667322015806242e+09,	"-8667322015.806242", "%+#f"},
+  {__LINE__, -8.690705655554451e+10,	"-8.690706E+10", "%#E"},
+  {__LINE__, -8.714299893763934e-07,	"-8.7143E-07", "%.5G"},
+  {__LINE__, -8.715729756264988e+27,	"-8.71573E+27", "%+.6G"},
+  {__LINE__, -8.716518487180945e+16,	"-9e+16", "%3.e"},
+  {__LINE__, -8.744404488756237e+25,	"-87444044887562366596966967.335902", "%4f"},
+  {__LINE__, -8.754720498369242e+13,	"-8.75472e+13", "%g"},
+  {__LINE__, -8.763198097931010e-19,	"-8.76320e-19", "%#g"},
+  {__LINE__, -8.779007408852458e+28,	"-8.77901E+28", "%G"},
+  {__LINE__, -8.794576202907937e+11,	"-8.79458E+11", "%#2.6G"},
+  {__LINE__, -8.799091520612418e-11,	"-8.799E-11", "%3.4G"},
+  {__LINE__, -8.799246265524921e+11,	"-8.79925E+11", "%G"},
+  {__LINE__, -8.809010508550436e-04,	"-8.8090E-04", "%.4E"},
+  {__LINE__, -8.817389999872653e-10,	"-8.81739e-10", "%g"},
+  {__LINE__, -8.842022428985267e-28,	"-8.842022E-28", "%E"},
+  {__LINE__, -8.851265987586864e-07,	"-0.000001", "%f"},
+  {__LINE__, -8.861985131432196e+03,	"-8861.985", "%+.7G"},
+  {__LINE__, -8.874449013455113e-29,	"-8.874449e-29", "%e"},
+  {__LINE__, -8.878752609483453e+18,	"-8.87875E+18", "%G"},
+  {__LINE__, -8.882501665315313e-04,	"-0.00088825", "%+G"},
+  {__LINE__, -8.892056241505784e-14,	"-8.89206E-14", "%G"},
+  {__LINE__, -8.895327674961603e-30,	"-8.89533E-30", "%G"},
+  {__LINE__, -8.900059462213669e-30,	"-8.900059E-30", "%+#E"},
+  {__LINE__, -8.957100548759815e+18,	"-9e+18", "%3.0e"},
+  {__LINE__, -8.961352369869012e-30,	"-8.961352e-30", "%+#2e"},
+  {__LINE__, -8.962296474587800e+02,	"-896", "%4.f"},
+  {__LINE__, -8.962536469328530e-12,	"-8.96254E-12", "%G"},
+  {__LINE__, -8.963299420391932e+21,	"-8.9633e+21", "%g"},
+  {__LINE__, -8.967736672941522e-11,	"-8.96774e-11", "%g"},
+  {__LINE__, -8.994077362462679e+11,	"-8.9940774e+11", "%+#.7e"},
+  {__LINE__, -9.000452862345622e+15,	"-9e+15", "%2.e"},
+  {__LINE__, -9.007489135361462e+07,	"-9.0075E+07", "%+2.4E"},
+  {__LINE__, -9.036271805879910e+16,	"-9.03627E+16", "%G"},
+  {__LINE__, -9.036319073700248e+22,	"-9.03632e+22", "%1g"},
+  {__LINE__, -9.043207635989237e+11,	"-9.043208e+11", "%#e"},
+  {__LINE__, -9.043856598625815e-26,	"-9e-26", "%+1.g"},
+  {__LINE__, -9.052760561065698e+14,	"-9.052761E+14", "%E"},
+  {__LINE__, -9.066480297957160e-06,	"-9E-06", "%+1.G"},
+  {__LINE__, -9.070971376440752e-01,	"-0.907097", "%g"},
+  {__LINE__, -9.073301831888273e+09,	"-9.07330E+09", "%#G"},
+  {__LINE__, -9.091228662702147e+28,	"-9E+28", "%4.G"},
+  {__LINE__, -9.093652024983832e+04,	"-9.093652E+04", "%7.6E"},
+  {__LINE__, -9.098945831139295e-04,	"-9.098946E-04", "%+1.6E"},
+  {__LINE__, -9.124981449916591e+05,	"-912498", "%G"},
+  {__LINE__, -9.132038703003394e-02,	"-0.0913204", "%#G"},
+  {__LINE__, -9.138271437433964e-04,	"-0.000913827", "%5g"},
+  {__LINE__, -9.158186427463699e-04,	"-0.000915819", "%g"},
+  {__LINE__, -9.160846358172526e+16,	"-9.160846E+16", "%#E"},
+  {__LINE__, -9.160884330810163e+17,	"-9E+17", "%+5.G"},
+  {__LINE__, -9.190271387375542e+21,	"-9.19027e+21", "%+g"},
+  {__LINE__, -9.191651872412619e-04,	"-9.191652E-04", "%E"},
+  {__LINE__, -9.196426161984341e-10,	"-9E-10", "%4.G"},
+  {__LINE__, -9.201074139774962e+09,	"-9E+09", "%4.G"},
+  {__LINE__, -9.223294284802762e+09,	"-9.22329E+09", "%G"},
+  {__LINE__, -9.224740266754996e+02,	"-9E+02", "%6.0G"},
+  {__LINE__, -9.231583780512302e-01,	"  -0.9", "%6.g"},
+  {__LINE__, -9.241998826543689e+07,	"-92419988", "%1.f"},
+  {__LINE__, -9.243603351372128e+27,	"-9.243603e+27", "%#e"},
+  {__LINE__, -9.255922697415071e+11,	"-9.25592e+11", "%g"},
+  {__LINE__, -9.265734968114124e-02,	"-0.092657", "%f"},
+  {__LINE__, -9.273132068521061e+11,	"-9.27313E+11", "%G"},
+  {__LINE__, -9.276017912826685e+27,	"-9.E+27", "%+#5.G"},
+  {__LINE__, -9.279781279788505e+17,	"-9.27978E+17", "%7G"},
+  {__LINE__, -9.305057549822465e-19,	"-9.30506E-19", "%5G"},
+  {__LINE__, -9.313182384508469e+18,	"-9.31318E+18", "%G"},
+  {__LINE__, -9.313350925182641e-12,	"-9.31E-12", "%.3G"},
+  {__LINE__, -9.362202657509130e+08,	"-9e+08", "%.1g"},
+  {__LINE__, -9.367344757598381e+19,	"-9.36734e+19", "%g"},
+  {__LINE__, -9.374222399774300e+26,	"-9.37422e+26", "%4g"},
+  {__LINE__, -9.385734023305105e+02,	"-9.385734e+02", "%+0e"},
+  {__LINE__, -9.392042570618909e+17,	"-9.39204E+17", "%G"},
+  {__LINE__, -9.395742939311926e+20,	"-939574293931192627837.8451", "%.4f"},
+  {__LINE__, -9.409066155962469e+09,	"-9.40907E+09", "%#G"},
+  {__LINE__, -9.412851077799790e+23,	"-9.412851E+23", "%E"},
+  {__LINE__, -9.431808019049818e+08,	"-9.43181e+08", "%g"},
+  {__LINE__, -9.465236900519924e-27,	"-9.46524e-27", "%g"},
+  {__LINE__, -9.478330386415852e+17,	"-9.478330e+17", "%e"},
+  {__LINE__, -9.510393719697428e+15,	"-9.51039E+15", "%+G"},
+  {__LINE__, -9.534229599909890e-09,	"-0.000000", "%f"},
+  {__LINE__, -9.541731189284823e-17,	"-1.E-16", "%+#7.G"},
+  {__LINE__, -9.548861908445902e+24,	"-9548861908445902102471336.547751", "%f"},
+  {__LINE__, -9.578447281451794e+14,	"-957844728145179", "%5.f"},
+  {__LINE__, -9.580512736933464e+11,	"-9.58051E+11", "%G"},
+  {__LINE__, -9.596838169770637e-28,	"-1E-27", "%+6.G"},
+  {__LINE__, -9.597528852877852e-22,	"-1e-21", "%2.1g"},
+  {__LINE__, -9.599943658427051e+02,	"-9.599944E+02", "%E"},
+  {__LINE__, -9.603227991185260e-14,	"-1E-13", "%+0.E"},
+  {__LINE__, -9.606818733892343e+08,	"-960681873.389", "%1.3f"},
+  {__LINE__, -9.617442692720937e+16,	"-9.61744E+16", "%G"},
+  {__LINE__, -9.628685516961109e+29,	"-9.62869e+29", "%3g"},
+  {__LINE__, -9.638354750455226e-11,	"-0.000000", "%f"},
+  {__LINE__, -9.644266379029137e+16,	"-96442663790291369.707575", "%f"},
+  {__LINE__, -9.645563533575482e+06,	"-1E+07", "%1.G"},
+  {__LINE__, -9.645993536742941e-29,	"-9.64599e-29", "%+g"},
+  {__LINE__, -9.647147223548563e+00,	"-9.647147e+00", "%e"},
+  {__LINE__, -9.671225879906396e-11,	"-0", "%0.f"},
+  {__LINE__, -9.675000471729906e-09,	"-9.675000E-09", "%E"},
+  {__LINE__, -9.683992878297159e-26,	"-9.68e-26", "%2.2e"},
+  {__LINE__, -9.695491325144765e+10,	"-9.69549E+10", "%#G"},
+  {__LINE__, -9.695661526907136e-24,	"   -0.", "%#6.f"},
+  {__LINE__, -9.703124881970338e+07,	"-9.703e+07", "%0.4g"},
+  {__LINE__, -9.707701257031864e+26,	"-970770125703186437249314622.022212", "%f"},
+  {__LINE__, -9.709879792694702e+09,	"-9.709880E+09", "%E"},
+  {__LINE__, -9.736052226907940e+26,	"-9.73605e+26", "%+#g"},
+  {__LINE__, -9.745037157520795e+07,	"-9.74504e+07", "%#5.6g"},
+  {__LINE__, -9.757293950670832e-29,	"-9.757E-29", "%0.4G"},
+  {__LINE__, -9.762126832689880e+12,	"-9.76213E+12", "%G"},
+  {__LINE__, -9.801328150341989e-01,	"     -1", "%7.G"},
+  {__LINE__, -9.837332964629669e-20,	"-9.83733E-20", "%0G"},
+  {__LINE__, -9.837790327283010e+23,	"-1E+24", "%.1G"},
+  {__LINE__, -9.839636176463729e+23,	"-9.83964E+23", "%#6.5E"},
+  {__LINE__, -9.841454250618272e+11,	"-9.84E+11", "%+2.3G"},
+  {__LINE__, -9.852920805249280e-12,	"-9.852921e-12", "%.7g"},
+  {__LINE__, -9.854092850182351e+12,	"-9.85409e+12", "%0g"},
+  {__LINE__, -9.866796026839712e+02,	"-9.9E+02", "%#.1E"},
+  {__LINE__, -9.867413260289803e-21,	"-1e-20", "%.1g"},
+  {__LINE__, -9.882136052131983e-08,	"-9.88214e-08", "%g"},
+  {__LINE__, -9.882755697941866e+20,	"-9.882756E+20", "%E"},
+  {__LINE__, -9.897275811087050e+20,	"-9.9E+20", "%0.3G"},
+  {__LINE__, -9.899860651812364e-04,	"-9.899861e-04", "%e"},
+  {__LINE__, -9.906754113555550e-11,	"-9.90675e-11", "%3g"},
+  {__LINE__, -9.926067557389940e+11,	"-9.92607E+11", "%G"},
+  {__LINE__, -9.929638609014063e+17,	"-992963860901406292.214233", "%1f"},
+  {__LINE__, -9.941214552193284e-24,	"-0.000000", "%+#f"},
+  {__LINE__, -9.942875240256573e+14,	"-9.942875e+14", "%+1e"},
+  {__LINE__, -9.944492909695798e-01,	"-9.944E-01", "%.3E"},
+  {__LINE__, -9.954710507359939e-27,	"-1e-26", "%+0.2g"},
+  {__LINE__, -9.955410507742851e+03,	"-9955.41", "%+G"},
+  {__LINE__, -9.974437672251590e+02,	"-997.444", "%#G"},
+  {__LINE__, -9.975683165288929e-26,	"-9.97568E-26", "%6G"},
+  {__LINE__, 1.003827370583415e+06,	"1003827.370583", "%3f"},
+  {__LINE__, 1.004189065268560e-27,	"1.004189E-27", "%.7G"},
+  {__LINE__, 1.005840059175462e-28,	"+1.00584E-28", "%+G"},
+  {__LINE__, 1.006586790090557e-12,	"0.000000", "%#f"},
+  {__LINE__, 1.007598594773359e+18,	"1.0076E+18", "%G"},
+  {__LINE__, 1.007902307001894e+29,	"1.0079e+29", "%g"},
+  {__LINE__, 1.008607405036580e-15,	"1.00861E-15", "%6G"},
+  {__LINE__, 1.008769102466771e+16,	"+1.00877E+16", "%+G"},
+  {__LINE__, 1.009545698372534e-08,	"+1E-08", "%+0.0G"},
+  {__LINE__, 1.010173673945099e-12,	"+1.01017e-12", "%+#0g"},
+  {__LINE__, 1.011375000606627e+09,	"1011375000.606627", "%f"},
+  {__LINE__, 1.011944652221650e+15,	"1011944652221649.98", "%3.2f"},
+  {__LINE__, 1.013057788090379e-21,	"0.000000", "%#f"},
+  {__LINE__, 1.014525729953198e+15,	"1.01453e+15", "%3g"},
+  {__LINE__, 1.016760538234615e-21,	"+1.016761E-21", "%+3E"},
+  {__LINE__, 1.017052611781237e-29,	"0.000000", "%f"},
+  {__LINE__, 1.018471223361229e+14,	"1.01847E+14", "%G"},
+  {__LINE__, 1.021646959220873e+15,	"1021646959220872.6", "%4.1f"},
+  {__LINE__, 1.022304833976590e+27,	"1.0223e+27", "%g"},
+  {__LINE__, 1.022500312067325e-12,	"1.0225e-12", "%6g"},
+  {__LINE__, 1.023019285462627e-20,	"0.000000", "%f"},
+  {__LINE__, 1.024192579400824e+06,	"1.02419e+06", "%g"},
+  {__LINE__, 1.024517953555766e-28,	"1.02452E-28", "%G"},
+  {__LINE__, 1.026673589339585e+21,	"1.02667E+21", "%G"},
+  {__LINE__, 1.027231090958880e-19,	"1.E-19", "%#3.G"},
+  {__LINE__, 1.028249904956487e-27,	"1E-27", "%5.G"},
+  {__LINE__, 1.028570144661448e-28,	"+1.02857E-28", "%+G"},
+  {__LINE__, 1.028934898454705e-13,	"+1.028935E-13", "%+E"},
+  {__LINE__, 1.029071053545906e-26,	"1.029071E-26", "%E"},
+  {__LINE__, 1.032672895881148e-30,	"+1.032673E-30", "%+E"},
+  {__LINE__, 1.033502358979511e+06,	"1.0335E+06", "%.5G"},
+  {__LINE__, 1.036790427717847e+19,	"1e+19", "%4.g"},
+  {__LINE__, 1.037022928821648e+03,	"1037.02", "%5g"},
+  {__LINE__, 1.040551683941284e+14,	"1.04055E+14", "%G"},
+  {__LINE__, 1.044499252101308e-17,	"1.044499E-17", "%E"},
+  {__LINE__, 1.045791899570889e+15,	"+1.04579e+15", "%+g"},
+  {__LINE__, 1.048730383198703e+28,	"1.049e+28", "%.4g"},
+  {__LINE__, 1.050654419882509e-18,	"0.000000", "%f"},
+  {__LINE__, 1.052600569262127e-27,	"+0.000", "%+2.3f"},
+  {__LINE__, 1.053213014784149e+15,	"1E+15", "%4.G"},
+  {__LINE__, 1.057553916225948e-15,	"+0.000000", "%+4f"},
+  {__LINE__, 1.058191244482453e+19,	"1.058e+19", "%.3e"},
+  {__LINE__, 1.058746269793972e-26,	"+1.1E-26", "%+.2G"},
+  {__LINE__, 1.058793271960762e-01,	"+1.058793E-01", "%+4E"},
+  {__LINE__, 1.058869592738370e-19,	"1.05887e-19", "%3g"},
+  {__LINE__, 1.060402312803008e+15,	"1060402312803008.229025", "%f"},
+  {__LINE__, 1.061106284763095e+00,	"1.061106", "%0f"},
+  {__LINE__, 1.061180160987467e+09,	"1e+09", "%2.g"},
+  {__LINE__, 1.061181537176067e-06,	"+1.06118e-06", "%+g"},
+  {__LINE__, 1.065021381771174e+20,	"1.06502e+20", "%g"},
+  {__LINE__, 1.065464040401130e-16,	"1.065464e-16", "%e"},
+  {__LINE__, 1.065573419819459e-05,	"0.00001", "%.5f"},
+  {__LINE__, 1.066107764306644e+13,	"1.066108e+13", "%#e"},
+  {__LINE__, 1.071318759598956e+12,	"1.071319e+12", "%e"},
+  {__LINE__, 1.071564727222321e+10,	"1.072E+10", "%3.4G"},
+  {__LINE__, 1.074652481218139e+14,	"1.0747E+14", "%.4E"},
+  {__LINE__, 1.078453684911309e-02,	"0.0107845", "%g"},
+  {__LINE__, 1.078550811446675e-05,	"1.07855e-05", "%g"},
+  {__LINE__, 1.078780494515273e-04,	"0.000107878", "%4G"},
+  {__LINE__, 1.079467488876157e-16,	"+1.079467E-16", "%+E"},
+  {__LINE__, 1.080529722917934e-20,	"0.000000", "%f"},
+  {__LINE__, 1.082169127709439e+01,	"10.8217", "%#5g"},
+  {__LINE__, 1.087241285590951e+22,	"1E+22", "%4.G"},
+  {__LINE__, 1.091049208406195e-14,	"0.0000", "%.4f"},
+  {__LINE__, 1.095316064213237e+16,	"+1e+16", "%+0.g"},
+  {__LINE__, 1.095349083237975e-04,	"1.095349e-04", "%5e"},
+  {__LINE__, 1.098002465452836e+12,	"1098002465452.836205", "%f"},
+  {__LINE__, 1.098445764138997e+13,	"1.09845E+13", "%G"},
+  {__LINE__, 1.099968047892474e-13,	"1.1e-13", "%2.5g"},
+  {__LINE__, 1.101017598311363e-04,	"0.000110102", "%G"},
+  {__LINE__, 1.102776332077817e+18,	"1.103e+18", "%.3e"},
+  {__LINE__, 1.103734053887830e-01,	"0.110373", "%f"},
+  {__LINE__, 1.105730106869006e-03,	"0.00110573", "%g"},
+  {__LINE__, 1.106366781854058e-10,	"1.10637e-10", "%g"},
+  {__LINE__, 1.107354763213839e+15,	"1.107355e+15", "%6e"},
+  {__LINE__, 1.108151709609825e-10,	"+1.10815E-10", "%+G"},
+  {__LINE__, 1.110054501993647e+21,	"+1.11005E+21", "%+G"},
+  {__LINE__, 1.111574814737873e-17,	"+1.112E-17", "%+1.4G"},
+  {__LINE__, 1.111865512360108e-15,	"1E-15", "%.0G"},
+  {__LINE__, 1.112281568330498e-03,	"1.112282e-03", "%.6e"},
+  {__LINE__, 1.112625415174238e+21,	"+1.11263e+21", "%+g"},
+  {__LINE__, 1.112744974910395e-02,	"0.011127", "%f"},
+  {__LINE__, 1.114726566979885e-10,	"1.11473e-10", "%g"},
+  {__LINE__, 1.115395843055731e-20,	"+0.000000", "%+6f"},
+  {__LINE__, 1.115983414693121e+15,	"1.11598e+15", "%5.6g"},
+  {__LINE__, 1.116118842074266e+27,	"1.116119e+27", "%e"},
+  {__LINE__, 1.118386983012328e+19,	"11183869830123276400.968280", "%1f"},
+  {__LINE__, 1.119344607892718e-22,	"1.119345e-22", "%e"},
+  {__LINE__, 1.120560837110279e-19,	"0.000000", "%f"},
+  {__LINE__, 1.123620157906291e-02,	"0.0112362", "%G"},
+  {__LINE__, 1.126804857639478e+29,	"1.1268E+29", "%#0.5G"},
+  {__LINE__, 1.128962199461581e+11,	"1.12896e+11", "%g"},
+  {__LINE__, 1.129878714246809e-16,	"1E-16", "%0.0G"},
+  {__LINE__, 1.130331982972407e-06,	"+0.", "%+#1.f"},
+  {__LINE__, 1.134167332070028e-16,	"0", "%0.0f"},
+  {__LINE__, 1.134248080053598e-28,	"0.000000", "%f"},
+  {__LINE__, 1.136023160708119e-10,	"+0.000000", "%+1f"},
+  {__LINE__, 1.136167141059036e+23,	"113616714105903593434732.101741", "%f"},
+  {__LINE__, 1.136439499920164e+10,	"+1.13644E+10", "%+G"},
+  {__LINE__, 1.136859734932182e+24,	"1.13686e+24", "%g"},
+  {__LINE__, 1.138985939448731e+09,	"1.13899e+09", "%2g"},
+  {__LINE__, 1.139287324790407e-25,	"1e-25", "%.1g"},
+  {__LINE__, 1.140559912153251e+06,	"1.14056e+06", "%g"},
+  {__LINE__, 1.141318036027086e-26,	"1.14132E-26", "%G"},
+  {__LINE__, 1.142586049368452e-20,	"+1.14259E-20", "%+7.5E"},
+  {__LINE__, 1.143283863993333e-17,	"1.143284E-17", "%3E"},
+  {__LINE__, 1.144637911632432e-28,	"1.144638E-28", "%#3E"},
+  {__LINE__, 1.145791416532065e-10,	"1.14579e-10", "%g"},
+  {__LINE__, 1.146958047315780e-17,	"1.146958e-17", "%e"},
+  {__LINE__, 1.147898346886569e-08,	"1E-08", "%3.0E"},
+  {__LINE__, 1.149724744965608e-14,	"1.14972e-14", "%5g"},
+  {__LINE__, 1.155383721940441e-10,	"1e-10", "%1.g"},
+  {__LINE__, 1.157066617729094e-02,	"0", "%1.f"},
+  {__LINE__, 1.157893614537215e+05,	"1.157894E+05", "%E"},
+  {__LINE__, 1.160476344451928e-19,	"1.2e-19", "%.1e"},
+  {__LINE__, 1.161610499315966e-26,	"1.161610E-26", "%E"},
+  {__LINE__, 1.162345042181490e+29,	"116234504218148981813385489658.685401", "%5.6f"},
+  {__LINE__, 1.162376053722862e+23,	"1.16238e+23", "%g"},
+  {__LINE__, 1.162996084782483e+18,	"+1e+18", "%+0.g"},
+  {__LINE__, 1.163544861478966e+26,	"1.16354E+26", "%G"},
+  {__LINE__, 1.167300137450931e+06,	"1E+06", "%.0G"},
+  {__LINE__, 1.168693829096401e-30,	"+1.16869e-30", "%+g"},
+  {__LINE__, 1.172791369381396e+15,	"1.173E+15", "%.4G"},
+  {__LINE__, 1.174427110782028e-29,	"  1E-29", "%7.G"},
+  {__LINE__, 1.179498322112450e+27,	"1179498322112449759657692993.641831", "%f"},
+  {__LINE__, 1.179555606293547e+27,	"1.17956e+27", "%3g"},
+  {__LINE__, 1.180815814881269e+06,	"1.180816e+06", "%e"},
+  {__LINE__, 1.181494870072805e+20,	"1.181495e+20", "%5e"},
+  {__LINE__, 1.181524119225619e+12,	"+1181524119225.61917", "%+5.5f"},
+  {__LINE__, 1.182111212289243e-20,	"1e-20", "%4.g"},
+  {__LINE__, 1.184503315019769e-27,	"1.1845e-27", "%7g"},
+  {__LINE__, 1.186413646767670e+29,	"1.18641e+29", "%g"},
+  {__LINE__, 1.186852938885004e-13,	"1.18685e-13", "%4g"},
+  {__LINE__, 1.188837612473914e+05,	"1e+05", "%.0g"},
+  {__LINE__, 1.190317482928293e-29,	"1.190317e-29", "%e"},
+  {__LINE__, 1.190527491143987e+02,	"1.190527E+02", "%E"},
+  {__LINE__, 1.191823062060233e-30,	"1.2E-30", "%6.2G"},
+  {__LINE__, 1.191926974812428e-23,	"1.2e-23", "%.2g"},
+  {__LINE__, 1.193549622366544e-25,	"1E-25", "%4.1G"},
+  {__LINE__, 1.195517368629765e-21,	"1.195517e-21", "%1.7g"},
+  {__LINE__, 1.195573061651289e-27,	"1.19557e-27", "%#g"},
+  {__LINE__, 1.195806681188325e-03,	"+0.00120", "%+#.3G"},
+  {__LINE__, 1.196842275192189e-28,	"1.19684e-28", "%g"},
+  {__LINE__, 1.197307550969576e+04,	"1.1973E+04", "%.4E"},
+  {__LINE__, 1.197608525847607e+15,	"1197608525847606.8062805", "%4.7f"},
+  {__LINE__, 1.197801338159407e+04,	"11978", "%5G"},
+  {__LINE__, 1.197813329735025e+27,	"1.19781E+27", "%7G"},
+  {__LINE__, 1.199483904123253e-12,	"1.19948e-12", "%g"},
+  {__LINE__, 1.199535292169766e-09,	"1.199535e-09", "%e"},
+  {__LINE__, 1.201478067515135e+05,	"120147.806752", "%f"},
+  {__LINE__, 1.202054662662158e+17,	"1.20205E+17", "%#G"},
+  {__LINE__, 1.202111922368321e+07,	"+1.202112E+07", "%+#E"},
+  {__LINE__, 1.202536892743791e-01,	"0.120254", "%#g"},
+  {__LINE__, 1.205698674119882e-29,	"1.2057E-29", "%G"},
+  {__LINE__, 1.208091664701942e-13,	" 0.", "%#3.f"},
+  {__LINE__, 1.208942413954872e-17,	"1.20894E-17", "%G"},
+  {__LINE__, 1.209704891496613e+10,	"1.210e+10", "%2.3e"},
+  {__LINE__, 1.211355639334831e+29,	"1E+29", "%.0G"},
+  {__LINE__, 1.211447553804203e+17,	"  1E+17", "%7.E"},
+  {__LINE__, 1.212481583429790e-16,	"1.212482e-16", "%e"},
+  {__LINE__, 1.212849001551862e+26,	"121284900155186181613942153.4899157", "%6.7f"},
+  {__LINE__, 1.213057538677801e+06,	"1213057.538678", "%#.6f"},
+  {__LINE__, 1.214609592911893e+25,	"1.214610e+25", "%#e"},
+  {__LINE__, 1.216086266251665e+01,	"1e+01", "%5.e"},
+  {__LINE__, 1.216468565931026e-22,	"1.216469E-22", "%1E"},
+  {__LINE__, 1.216503126598765e+14,	"+1E+14", "%+0.E"},
+  {__LINE__, 1.216641013695553e-14,	"0.000000", "%f"},
+  {__LINE__, 1.223142246779504e-23,	"0.000000", "%f"},
+  {__LINE__, 1.223884786443274e+08,	"122388479", "%5.f"},
+  {__LINE__, 1.224012562770076e+29,	"1.22401e+29", "%0g"},
+  {__LINE__, 1.225098157528297e+14,	"1.22510e+14", "%#g"},
+  {__LINE__, 1.226306848505242e-22,	"1.22631E-22", "%G"},
+  {__LINE__, 1.227487485547996e-08,	"+1.22749e-08", "%+g"},
+  {__LINE__, 1.237206486909689e+02,	"+123.721", "%+#.6g"},
+  {__LINE__, 1.240281126177077e-02,	"+0.01", "%+3.g"},
+  {__LINE__, 1.241197211306994e-06,	"1.241197E-06", "%E"},
+  {__LINE__, 1.241776311097410e+07,	"1.241776E+07", "%E"},
+  {__LINE__, 1.245995986024999e-03,	"0.001246", "%g"},
+  {__LINE__, 1.246082428199607e+03,	"1246.082428", "%f"},
+  {__LINE__, 1.247021567954220e+05,	"  1e+05", "%7.g"},
+  {__LINE__, 1.248140089618390e-30,	"+1.24814E-30", "%+G"},
+  {__LINE__, 1.248403361652064e-30,	"+0.000000", "%+f"},
+  {__LINE__, 1.251098538918842e-26,	"+1.251099E-26", "%+E"},
+  {__LINE__, 1.251952633022061e+25,	"1.25195e+25", "%g"},
+  {__LINE__, 1.253029705843461e-04,	"+1.E-04", "%+#4.E"},
+  {__LINE__, 1.259562132729488e-09,	"1e-09", "%1.e"},
+  {__LINE__, 1.261702205492260e-27,	"0.000000", "%f"},
+  {__LINE__, 1.265910361926660e-19,	"+1.265910e-19", "%+e"},
+  {__LINE__, 1.267411912651087e+12,	"1.26741E+12", "%1G"},
+  {__LINE__, 1.267830718285980e-10,	"1.26783e-10", "%g"},
+  {__LINE__, 1.268238378987517e-23,	"1E-23", "%5.E"},
+  {__LINE__, 1.275543253354167e+10,	"1.27554E+10", "%G"},
+  {__LINE__, 1.277255234454465e-10,	"1.27726E-10", "%5G"},
+  {__LINE__, 1.280590949834150e-21,	"1.280591E-21", "%E"},
+  {__LINE__, 1.285570453788242e-02,	"1.285570E-02", "%E"},
+  {__LINE__, 1.287712130719031e+09,	"1287712130.719031", "%#f"},
+  {__LINE__, 1.290142876187105e+29,	"+1.290143E+29", "%+E"},
+  {__LINE__, 1.293129213191961e+21,	"1.29313E+21", "%G"},
+  {__LINE__, 1.293317101334714e-23,	"+0.000000", "%+f"},
+  {__LINE__, 1.294506813069071e-13,	"0.0", "%3.1f"},
+  {__LINE__, 1.295576232685739e-22,	"+0.000000", "%+f"},
+  {__LINE__, 1.296010470431800e-19,	"+0.000000", "%+6f"},
+  {__LINE__, 1.298798231947674e+19,	"1.2988E+19", "%2G"},
+  {__LINE__, 1.299521114379381e+09,	"1.29952E+09", "%G"},
+  {__LINE__, 1.299847637892712e+24,	"1.299848e+24", "%e"},
+  {__LINE__, 1.301269777843698e+29,	"130126977784369834978406288428.232074", "%f"},
+  {__LINE__, 1.302911786437618e-15,	"     0", "%6.f"},
+  {__LINE__, 1.303863159906719e+27,	"1303863159906719415559450681", "%0.f"},
+  {__LINE__, 1.304396472326846e-12,	"+1E-12", "%+1.0G"},
+  {__LINE__, 1.306180443528427e-30,	"+1e-30", "%+.1g"},
+  {__LINE__, 1.308469138968514e+22,	"1.30847E+22", "%0G"},
+  {__LINE__, 1.312700156826057e-11,	"1.3127e-11", "%g"},
+  {__LINE__, 1.315364075120764e+21,	"+1.31536E+21", "%+G"},
+  {__LINE__, 1.320376485288444e-09,	"+1.3204E-09", "%+6.5G"},
+  {__LINE__, 1.321434154364635e-08,	"1.32143e-08", "%1g"},
+  {__LINE__, 1.322777272579176e+19,	"+1e+19", "%+3.e"},
+  {__LINE__, 1.322861663428564e+00,	"1.322862E+00", "%#E"},
+  {__LINE__, 1.323566013489230e+14,	"+1.323566E+14", "%+1E"},
+  {__LINE__, 1.327446904132973e-20,	"+1.32745E-20", "%+4.6G"},
+  {__LINE__, 1.328226362528158e+19,	"1e+19", "%2.g"},
+  {__LINE__, 1.329167460803610e+08,	"1e+08", "%3.g"},
+  {__LINE__, 1.335371420823160e+14,	"1.33537E+14", "%7G"},
+  {__LINE__, 1.336116185095935e-21,	"0.000000", "%f"},
+  {__LINE__, 1.338766774704671e-22,	"+1.33877e-22", "%+g"},
+  {__LINE__, 1.339199373014647e-12,	"1E-12", "%1.E"},
+  {__LINE__, 1.344293357481519e+26,	"134429335748151945750805680.290796", "%#2f"},
+  {__LINE__, 1.344328188122843e+29,	"1.34433e+29", "%g"},
+  {__LINE__, 1.344382581316972e-05,	"1E-05", "%5.0E"},
+  {__LINE__, 1.349835616116184e+11,	"134983561611.6", "%2.1f"},
+  {__LINE__, 1.349955669989707e+20,	"134995566998970728533.890906", "%7f"},
+  {__LINE__, 1.350230411093841e+20,	"135023041109384145386.229648", "%f"},
+  {__LINE__, 1.353391369565576e+10,	"  1E+10", "%7.1G"},
+  {__LINE__, 1.356889483699471e+22,	"+1.35689E+22", "%+G"},
+  {__LINE__, 1.358141775798243e+24,	"+1358141775798242578687791.137781", "%+f"},
+  {__LINE__, 1.358547541975523e-15,	"1.35855e-15", "%g"},
+  {__LINE__, 1.363402539800791e+11,	"1.3634E+11", "%G"},
+  {__LINE__, 1.363676837988798e+16,	"+13636768379887982.4053", "%+2.4f"},
+  {__LINE__, 1.364592026494839e-24,	"1.36459e-24", "%g"},
+  {__LINE__, 1.366664212399413e-09,	"+1E-09", "%+6.G"},
+  {__LINE__, 1.367446193117463e-17,	"1.3674e-17", "%2.4e"},
+  {__LINE__, 1.368681648785823e-18,	"1.36868E-18", "%3G"},
+  {__LINE__, 1.370635189583606e+05,	"1.370635E+05", "%E"},
+  {__LINE__, 1.371395540772186e-18,	"+1.371396e-18", "%+e"},
+  {__LINE__, 1.371945318043159e+10,	"1E+10", "%0.E"},
+  {__LINE__, 1.373780604772988e-21,	"1e-21", "%3.g"},
+  {__LINE__, 1.374244970441862e-28,	"0.000000", "%7.6f"},
+  {__LINE__, 1.375874695067149e-25,	"1.37587E-25", "%#3G"},
+  {__LINE__, 1.377165614832621e+20,	"1.37717E+20", "%#G"},
+  {__LINE__, 1.381541864946684e-09,	"1.38154E-09", "%G"},
+  {__LINE__, 1.382901694835415e+00,	"1.382902E+00", "%E"},
+  {__LINE__, 1.384250577530184e-21,	"1.384e-21", "%.4g"},
+  {__LINE__, 1.385322753374640e-03,	" 1E-03", "%6.E"},
+  {__LINE__, 1.387026156054724e+19,	"1.387026E+19", "%E"},
+  {__LINE__, 1.388726735790498e-27,	"+1.388727E-27", "%+E"},
+  {__LINE__, 1.388819105742044e+16,	"1.38882e+16", "%g"},
+  {__LINE__, 1.389941086024951e-19,	"0.000000", "%f"},
+  {__LINE__, 1.390101174785536e+25,	"1.3901E+25", "%G"},
+  {__LINE__, 1.392210785638597e+24,	"+1.39221E+24", "%+G"},
+  {__LINE__, 1.396148856283474e-26,	"1.4e-26", "%7.3g"},
+  {__LINE__, 1.398153728631994e-21,	"1.39815E-21", "%G"},
+  {__LINE__, 1.398332446762342e-14,	"+1.39833E-14", "%+5G"},
+  {__LINE__, 1.400250919607987e+10,	"1.40025E+10", "%G"},
+  {__LINE__, 1.400662469019739e+03,	"1.E+03", "%#0.0E"},
+  {__LINE__, 1.401720273747805e-12,	"0.000000", "%#f"},
+  {__LINE__, 1.402151358748719e+22,	"1.402151e+22", "%e"},
+  {__LINE__, 1.402351913752357e-28,	"1.40235E-28", "%#1.6G"},
+  {__LINE__, 1.403285877973810e+13,	"+14032858779738.097255", "%+4f"},
+  {__LINE__, 1.404540981735861e+04,	"14045.409817", "%4f"},
+  {__LINE__, 1.406420622355064e+19,	"1.40642E+19", "%G"},
+  {__LINE__, 1.412552725962301e-29,	"+1e-29", "%+1.e"},
+  {__LINE__, 1.413266982485044e+10,	"1.41327e+10", "%g"},
+  {__LINE__, 1.413627189411456e+21,	"1.41363E+21", "%0G"},
+  {__LINE__, 1.416647216002592e-25,	"+0.000000", "%+#f"},
+  {__LINE__, 1.417107155080584e-10,	"1e-10", "%1.e"},
+  {__LINE__, 1.418829895346648e+19,	"14188298953466484952.912197", "%f"},
+  {__LINE__, 1.419404559267523e-11,	"1.4194e-11", "%g"},
+  {__LINE__, 1.422421321425472e+15,	"1.422421E+15", "%E"},
+  {__LINE__, 1.424858902008998e+18,	"1.42486E+18", "%2.5E"},
+  {__LINE__, 1.428863051254205e+22,	"1.428863e+22", "%e"},
+  {__LINE__, 1.429533727936725e-02,	"0.0142953", "%g"},
+  {__LINE__, 1.430982219743369e-19,	" 1E-19", "%6.G"},
+  {__LINE__, 1.431974118434703e+17,	"1E+17", "%3.G"},
+  {__LINE__, 1.432418341970152e+16,	"+1.432418e+16", "%+5e"},
+  {__LINE__, 1.433470281650523e+04,	"14334.7", "%g"},
+  {__LINE__, 1.434446243424653e+24,	" +1e+24", "%+7.g"},
+  {__LINE__, 1.435118019241039e+24,	"+1e+24", "%+4.g"},
+  {__LINE__, 1.435691648420278e-01,	"0.1435692", "%#4.7g"},
+  {__LINE__, 1.437569598098744e+27,	"1.437570E+27", "%#E"},
+  {__LINE__, 1.437633484061726e-25,	"+1.43763e-25", "%+7g"},
+  {__LINE__, 1.437866591230707e-13,	"1.43787e-13", "%g"},
+  {__LINE__, 1.440593154445915e-01,	"+0.144059", "%+1G"},
+  {__LINE__, 1.441368205977342e+16,	"1.441368E+16", "%#E"},
+  {__LINE__, 1.441825266684367e+28,	"1.44183e+28", "%g"},
+  {__LINE__, 1.442374183199456e+20,	"1.442374E+20", "%E"},
+  {__LINE__, 1.445101893951061e-24,	"0", "%0.f"},
+  {__LINE__, 1.446037835160094e-20,	"+1.44604E-20", "%+2G"},
+  {__LINE__, 1.449245376093616e+04,	"1.449245e+04", "%e"},
+  {__LINE__, 1.454126845620100e+09,	"1.45413E+09", "%G"},
+  {__LINE__, 1.455764608801107e+09,	"1.5e+09", "%6.1e"},
+  {__LINE__, 1.457176183149955e-12,	"1.45718e-12", "%#g"},
+  {__LINE__, 1.458821535020046e-05,	"1.45882e-05", "%#g"},
+  {__LINE__, 1.460179141161202e-19,	"1.460179E-19", "%#E"},
+  {__LINE__, 1.461701055446198e-20,	"1.461701e-20", "%#2.7g"},
+  {__LINE__, 1.462408181482172e+10,	"1.4624082E+10", "%3.7E"},
+  {__LINE__, 1.463706296748154e+24,	"1e+24", "%2.g"},
+  {__LINE__, 1.464891255780761e-19,	"+1.46489e-19", "%+g"},
+  {__LINE__, 1.467903978945872e+25,	"1.4679E+25", "%G"},
+  {__LINE__, 1.468585992857062e+22,	"14685859928570619281629.205943", "%f"},
+  {__LINE__, 1.469803528668286e+29,	"+1E+29", "%+6.G"},
+  {__LINE__, 1.469883002609266e-23,	"1.E-23", "%#2.E"},
+  {__LINE__, 1.469941481858809e+08,	"+146994148.185881", "%+f"},
+  {__LINE__, 1.470744493304611e+13,	"1.47074e+13", "%g"},
+  {__LINE__, 1.471857261085004e+23,	"1E+23", "%2.G"},
+  {__LINE__, 1.474419778873037e+06,	"1474419.7789", "%#.4f"},
+  {__LINE__, 1.483134762223381e-03,	"0", "%0.0f"},
+  {__LINE__, 1.483575501240724e-13,	"1.48358e-13", "%g"},
+  {__LINE__, 1.486068112294452e+20,	"1.486068e+20", "%e"},
+  {__LINE__, 1.488665528787761e-03,	"  +0", "%+4.f"},
+  {__LINE__, 1.492145267536713e+07,	"14921452.675367", "%f"},
+  {__LINE__, 1.492589762884761e-01,	"0.149259", "%f"},
+  {__LINE__, 1.494784286168215e+01,	"1.494784E+01", "%E"},
+  {__LINE__, 1.495945331501655e+04,	"1.5e+04", "%.2g"},
+  {__LINE__, 1.501383201904700e+14,	"2e+14", "%1.g"},
+  {__LINE__, 1.501387105011959e-02,	"0.0150139", "%g"},
+  {__LINE__, 1.505784488562271e+26,	"1.50578e+26", "%5g"},
+  {__LINE__, 1.506367986495534e+10,	"1.50637e+10", "%2g"},
+  {__LINE__, 1.507421710226296e+19,	"1.507422E+19", "%#E"},
+  {__LINE__, 1.507960881206134e+16,	"2e+16", "%.0g"},
+  {__LINE__, 1.508974301049424e+14,	"+1.508974E+14", "%+E"},
+  {__LINE__, 1.509204025111090e-18,	"1.509204E-18", "%E"},
+  {__LINE__, 1.511351799767759e+21,	"1511351799767759462866.93397", "%.5f"},
+  {__LINE__, 1.511712197184520e-06,	"+1.51171e-06", "%+1g"},
+  {__LINE__, 1.514703727491400e+02,	"151.47", "%.5g"},
+  {__LINE__, 1.514855355408287e+04,	"15148.6", "%g"},
+  {__LINE__, 1.516256896575301e+06,	"1.516257e+06", "%.6e"},
+  {__LINE__, 1.517712083681069e+14,	"1.51771e+14", "%0g"},
+  {__LINE__, 1.522102209167607e-18,	"1.52210e-18", "%#g"},
+  {__LINE__, 1.526264862895663e-12,	"0.000000", "%f"},
+  {__LINE__, 1.527165480858125e+10,	"1.527e+10", "%.4g"},
+  {__LINE__, 1.528363280308369e+00,	"+1.52836", "%+0G"},
+  {__LINE__, 1.529108490733420e-22,	"1.529108E-22", "%E"},
+  {__LINE__, 1.529783364474522e+19,	"15297833644745216119.531506", "%7f"},
+  {__LINE__, 1.530698363199346e-01,	"0.1531", "%#.4f"},
+  {__LINE__, 1.531520796537450e+22,	"1.53152E+22", "%G"},
+  {__LINE__, 1.533314559644813e+06,	"+1533314.559645", "%+f"},
+  {__LINE__, 1.534682791112854e+01,	"+15.3468", "%+0G"},
+  {__LINE__, 1.534714026386730e-11,	"0.000000", "%f"},
+  {__LINE__, 1.537145729498115e+00,	"1.537146E+00", "%E"},
+  {__LINE__, 1.538740040875751e-23,	"1.538740E-23", "%E"},
+  {__LINE__, 1.546248240596482e-03,	"0.001546", "%f"},
+  {__LINE__, 1.546808012239302e-09,	"+1.54681E-09", "%+G"},
+  {__LINE__, 1.546903877359107e+06,	"1.5e+06", "%.2g"},
+  {__LINE__, 1.550153973747718e-18,	"2e-18", "%.0g"},
+  {__LINE__, 1.551703460384378e+00,	"+1.5517", "%+.4f"},
+  {__LINE__, 1.553995673101369e+29,	"1.554E+29", "%G"},
+  {__LINE__, 1.555477017531899e+28,	"1.55548e+28", "%g"},
+  {__LINE__, 1.555548963448462e+12,	"1555548963448.46227", "%6.5f"},
+  {__LINE__, 1.558702451007712e+16,	"2e+16", "%5.1g"},
+  {__LINE__, 1.561641587723724e+29,	"1.561642e+29", "%e"},
+  {__LINE__, 1.561868589559509e-05,	"1.56187E-05", "%G"},
+  {__LINE__, 1.565229056438949e+13,	"1.56523e+13", "%1.6g"},
+  {__LINE__, 1.570074406600442e+14,	"+1.57007E+14", "%+4G"},
+  {__LINE__, 1.570951909913194e+13,	"1.57095E+13", "%.6G"},
+  {__LINE__, 1.572186421520727e-30,	"+1.57219e-30", "%+g"},
+  {__LINE__, 1.574374582066945e+12,	"1.57e+12", "%5.2e"},
+  {__LINE__, 1.577789404823585e+12,	"1.577789E+12", "%E"},
+  {__LINE__, 1.579641278389186e+04,	"15796.413", "%7.3f"},
+  {__LINE__, 1.581602330975388e+17,	"1.5816E+17", "%#.5G"},
+  {__LINE__, 1.587809692297490e-18,	"+1.58781e-18", "%+2g"},
+  {__LINE__, 1.588672954832388e-05,	"1.58867E-05", "%G"},
+  {__LINE__, 1.594548954259978e+25,	"+1.595e+25", "%+.3e"},
+  {__LINE__, 1.596653742160718e+10,	"15966537421.6072", "%.4f"},
+  {__LINE__, 1.597416186584641e+25,	"1.59742e+25", "%g"},
+  {__LINE__, 1.597810706039500e-04,	"0.000159781", "%g"},
+  {__LINE__, 1.601425691153542e+01,	"16.0143", "%G"},
+  {__LINE__, 1.601491150913706e-15,	"+1.60149e-15", "%+g"},
+  {__LINE__, 1.609357026469645e+02,	"160.936", "%0g"},
+  {__LINE__, 1.611064881461188e+06,	"+1.611065E+06", "%+E"},
+  {__LINE__, 1.611324319640770e-03,	"0.00161132", "%G"},
+  {__LINE__, 1.613202907940803e+19,	"1.6E+19", "%#.1E"},
+  {__LINE__, 1.613883500056636e-12,	"0.000000", "%5f"},
+  {__LINE__, 1.618254213010772e+07,	"16182542.130108", "%6f"},
+  {__LINE__, 1.620441271211248e-08,	"1.62044E-08", "%0G"},
+  {__LINE__, 1.622548435024803e-01,	"+0.162255", "%+5G"},
+  {__LINE__, 1.623740394555269e+19,	"16237403945552689066.289531", "%3f"},
+  {__LINE__, 1.625774250389937e+18,	"1.625774e+18", "%1e"},
+  {__LINE__, 1.626300864432426e-02,	"0.016263", "%G"},
+  {__LINE__, 1.626351146877694e-11,	"1.6263511e-11", "%2.7e"},
+  {__LINE__, 1.626568757587995e+25,	"16265687575879949733348439.62220", "%6.5f"},
+  {__LINE__, 1.626717482094360e-28,	"+1.626717e-28", "%+3e"},
+  {__LINE__, 1.630801585998995e-28,	"1.6308e-28", "%0g"},
+  {__LINE__, 1.631827173682962e+03,	"1632", "%1.4g"},
+  {__LINE__, 1.631907571243379e+18,	"1631907571243378818.337533", "%f"},
+  {__LINE__, 1.632058420447239e-14,	" +2E-14", "%+7.G"},
+  {__LINE__, 1.632847882621240e+18,	"+1.63285E+18", "%+2G"},
+  {__LINE__, 1.637329146233172e-09,	"+1.63733e-09", "%+g"},
+  {__LINE__, 1.638315287442427e-16,	"+1.63832E-16", "%+G"},
+  {__LINE__, 1.641284849351445e+15,	"1641284849351445.096488", "%f"},
+  {__LINE__, 1.644871927486929e+10,	"2e+10", "%1.e"},
+  {__LINE__, 1.645917293047431e-19,	"1.64592e-19", "%.6g"},
+  {__LINE__, 1.649201265647819e-07,	"0.000000", "%f"},
+  {__LINE__, 1.650169065733559e+23,	"165016906573355903731226.135278", "%3f"},
+  {__LINE__, 1.651217291298196e-30,	"2E-30", "%4.G"},
+  {__LINE__, 1.652680660160331e+08,	"2.e+08", "%#3.g"},
+  {__LINE__, 1.654171892948767e-15,	"1.65417e-15", "%g"},
+  {__LINE__, 1.655435863725412e+17,	"+1.655436e+17", "%+#e"},
+  {__LINE__, 1.656015606204101e+28,	"+1.7E+28", "%+3.2G"},
+  {__LINE__, 1.656814723110478e-21,	"+0.000000", "%+f"},
+  {__LINE__, 1.658632655199721e-19,	"2.E-19", "%#4.G"},
+  {__LINE__, 1.659915061311444e+27,	"1.66E+27", "%.3G"},
+  {__LINE__, 1.664258574522914e-29,	"+1.664259E-29", "%+E"},
+  {__LINE__, 1.667662840654469e-28,	"+2e-28", "%+0.g"},
+  {__LINE__, 1.673124993246863e-25,	"+0.000000", "%+f"},
+  {__LINE__, 1.677788498058833e-20,	"1.678e-20", "%.4g"},
+  {__LINE__, 1.681211731173386e-07,	"1.68121e-07", "%0.6g"},
+  {__LINE__, 1.686341560076196e+02,	"169", "%.0f"},
+  {__LINE__, 1.686507685287281e+08,	"1.686508E+08", "%E"},
+  {__LINE__, 1.689500448795801e+03,	"+1689.500449", "%+0f"},
+  {__LINE__, 1.690639426041009e-13,	"2e-13", "%5.0g"},
+  {__LINE__, 1.691554939595928e+16,	"+1.6916e+16", "%+.5g"},
+  {__LINE__, 1.698597126229626e-09,	"1.699e-09", "%3.4g"},
+  {__LINE__, 1.700093083173516e+16,	"17000930831735159", "%5.f"},
+  {__LINE__, 1.703653732982710e+13,	"+1.70365e+13", "%+g"},
+  {__LINE__, 1.705353380573352e-16,	"0.000000", "%f"},
+  {__LINE__, 1.705973328700179e-26,	"1.70597e-26", "%5g"},
+  {__LINE__, 1.717797289369145e+22,	"+1.717797E+22", "%+7E"},
+  {__LINE__, 1.722819196705361e-28,	"1.722819E-28", "%1.7G"},
+  {__LINE__, 1.723775772891202e+01,	"17.237758", "%f"},
+  {__LINE__, 1.723787102325353e-23,	"0.000000", "%2f"},
+  {__LINE__, 1.724551301171870e-13,	"0.000000", "%f"},
+  {__LINE__, 1.726098078655758e-20,	"0.0000000", "%7.7f"},
+  {__LINE__, 1.726302822039762e+18,	"+2E+18", "%+1.G"},
+  {__LINE__, 1.726659209108151e+18,	"+1.72666E+18", "%+6G"},
+  {__LINE__, 1.728324925097269e-25,	"1.728325e-25", "%7e"},
+  {__LINE__, 1.728357491215602e+02,	"172.836", "%G"},
+  {__LINE__, 1.729612227517587e+22,	"1.729612e+22", "%e"},
+  {__LINE__, 1.731753104740805e-06,	"1.73175e-06", "%2g"},
+  {__LINE__, 1.736066279733589e+18,	"+1.736066E+18", "%+3E"},
+  {__LINE__, 1.736626769480182e-19,	"2e-19", "%.0g"},
+  {__LINE__, 1.737445267713118e-13,	"  2e-13", "%7.g"},
+  {__LINE__, 1.739264683023077e+05,	"173926.468302", "%f"},
+  {__LINE__, 1.739423702667596e-16,	"+1.73942e-16", "%+g"},
+  {__LINE__, 1.741053616961658e-14,	"1.74105E-14", "%G"},
+  {__LINE__, 1.741085952255057e+29,	"1.7e+29", "%#.1e"},
+  {__LINE__, 1.743673705633426e+03,	"2E+03", "%5.0G"},
+  {__LINE__, 1.750940899205665e+27,	"1.75094e+27", "%g"},
+  {__LINE__, 1.753871003884151e-26,	"0.", "%#.0f"},
+  {__LINE__, 1.755237470854478e-14,	"1.755237e-14", "%4e"},
+  {__LINE__, 1.757491419837315e-03,	"0.002", "%1.G"},
+  {__LINE__, 1.758657797688126e+26,	"+1.75866E+26", "%+#G"},
+  {__LINE__, 1.760491452270889e+08,	"1.76049E+08", "%G"},
+  {__LINE__, 1.760816275862939e-10,	"2e-10", "%.1g"},
+  {__LINE__, 1.760905893493003e-22,	"1.76e-22", "%.2e"},
+  {__LINE__, 1.762101125986743e-12,	"2e-12", "%.0g"},
+  {__LINE__, 1.763855968659571e+27,	"1.763856E+27", "%E"},
+  {__LINE__, 1.764595217341348e-13,	"1.764595E-13", "%E"},
+  {__LINE__, 1.766737296048445e+08,	"+1.77e+08", "%+.3g"},
+  {__LINE__, 1.769916386969961e-05,	"+1.76992e-05", "%+g"},
+  {__LINE__, 1.773873506344176e-01,	"1.773874e-01", "%e"},
+  {__LINE__, 1.775392554371421e+03,	"+1775.39", "%+3.2f"},
+  {__LINE__, 1.776007623006870e+24,	"1776007623006870161930237.372871", "%f"},
+  {__LINE__, 1.777418921678653e-27,	"     0", "%6.f"},
+  {__LINE__, 1.780967607234234e-18,	"1.780968E-18", "%E"},
+  {__LINE__, 1.782510583486435e+24,	"+2e+24", "%+3.g"},
+  {__LINE__, 1.784002921603004e+14,	"1.784E+14", "%G"},
+  {__LINE__, 1.784231151778382e+11,	"1.7842E+11", "%.5G"},
+  {__LINE__, 1.785589091453195e+02,	" 179.", "%#5.f"},
+  {__LINE__, 1.786402639400039e+19,	"2e+19", "%0.g"},
+  {__LINE__, 1.786506485794647e-25,	"2E-25", "%.1G"},
+  {__LINE__, 1.787513971482493e-04,	"+0.000178751", "%+G"},
+  {__LINE__, 1.799765409320039e+23,	"179976540932003885586710", "%6.0f"},
+  {__LINE__, 1.800451864218989e+08,	"+1.80045e+08", "%+g"},
+  {__LINE__, 1.800743538258572e+04,	" +18007", "%+7.f"},
+  {__LINE__, 1.801583764453362e+25,	"1.8016e+25", "%0.5g"},
+  {__LINE__, 1.804502093739547e+14,	"2e+14", "%2.g"},
+  {__LINE__, 1.805600104488678e-17,	"1.805600E-17", "%E"},
+  {__LINE__, 1.811342448081048e+17,	"1.811342e+17", "%.6e"},
+  {__LINE__, 1.812252160066930e+19,	"2e+19", "%0.e"},
+  {__LINE__, 1.816287564395273e+02,	"182", "%2.f"},
+  {__LINE__, 1.817097386762552e-13,	"2E-13", "%3.1G"},
+  {__LINE__, 1.817881381387254e+06,	"1.81788E+06", "%G"},
+  {__LINE__, 1.818416380830953e-30,	"1.81842E-30", "%G"},
+  {__LINE__, 1.824788290177454e-23,	"1.82479e-23", "%g"},
+  {__LINE__, 1.827832506678437e-18,	"1.82783E-18", "%G"},
+  {__LINE__, 1.828048053242609e+01,	"18.2805", "%g"},
+  {__LINE__, 1.828939681844203e-21,	"1.82894E-21", "%.6G"},
+  {__LINE__, 1.829763900251753e+12,	"1829763900251.752773", "%1f"},
+  {__LINE__, 1.833100407114602e-05,	"0.000018", "%#f"},
+  {__LINE__, 1.833672780034284e-07,	"1.833673e-07", "%e"},
+  {__LINE__, 1.834307692387540e+21,	"2E+21", "%5.G"},
+  {__LINE__, 1.835119931666753e+14,	"+1.835120e+14", "%+e"},
+  {__LINE__, 1.835956566920861e-26,	"0.000000", "%#f"},
+  {__LINE__, 1.837784131899354e+22,	"1.83778E+22", "%G"},
+  {__LINE__, 1.842867094224664e-09,	"1.84287e-09", "%g"},
+  {__LINE__, 1.844234823805319e+28,	"2E+28", "%1.G"},
+  {__LINE__, 1.844877682008962e+12,	"1.84488e+12", "%g"},
+  {__LINE__, 1.846530424340488e-22,	"1.846530e-22", "%#.7g"},
+  {__LINE__, 1.849111603036448e-08,	"0.00", "%.2f"},
+  {__LINE__, 1.850158752678734e+04,	"+18502", "%+.5G"},
+  {__LINE__, 1.851431391104701e-06,	" +2e-06", "%+7.e"},
+  {__LINE__, 1.851487430609031e-04,	"0.000185149", "%G"},
+  {__LINE__, 1.853171650128773e+03,	"1853.17", "%G"},
+  {__LINE__, 1.854743263740068e-16,	"1.854743E-16", "%6.6E"},
+  {__LINE__, 1.864399020932753e-11,	"+0.000000", "%+f"},
+  {__LINE__, 1.865028568072397e-22,	"1.86503E-22", "%.6G"},
+  {__LINE__, 1.868128423759223e+14,	"1.86813E+14", "%4G"},
+  {__LINE__, 1.868453558435480e+21,	"1.86845E+21", "%G"},
+  {__LINE__, 1.870663011627498e-06,	"1.87E-06", "%.3G"},
+  {__LINE__, 1.873273487748907e+17,	"+1.873273E+17", "%+E"},
+  {__LINE__, 1.878885220839805e-04,	"0.000187889", "%G"},
+  {__LINE__, 1.879102515623569e+17,	"1.8791e+17", "%g"},
+  {__LINE__, 1.889343972100858e-10,	"2E-10", "%2.E"},
+  {__LINE__, 1.891833282879762e-24,	"+2e-24", "%+.1g"},
+  {__LINE__, 1.895148778941240e-07,	"0.000000", "%0f"},
+  {__LINE__, 1.896950834067578e-28,	"+1.89695e-28", "%+#g"},
+  {__LINE__, 1.898464546986629e-05,	"1.898465e-05", "%.7g"},
+  {__LINE__, 1.900851427578321e-19,	"1.90085e-19", "%6g"},
+  {__LINE__, 1.901171344577750e+27,	"1.901171e+27", "%7.7g"},
+  {__LINE__, 1.903563335316359e+02,	"190.356", "%0g"},
+  {__LINE__, 1.903817306004701e-16,	"+1.90e-16", "%+#6.2e"},
+  {__LINE__, 1.910606410246797e+21,	"1.91061E+21", "%2.5E"},
+  {__LINE__, 1.912537759564710e+29,	"1.91254E+29", "%G"},
+  {__LINE__, 1.913606675894566e+27,	"1.91361E+27", "%7.6G"},
+  {__LINE__, 1.916473734025505e-05,	"  2e-05", "%7.g"},
+  {__LINE__, 1.916507511720523e+23,	"+2E+23", "%+.0E"},
+  {__LINE__, 1.917688262248837e-28,	"1.918e-28", "%.4g"},
+  {__LINE__, 1.921375594217083e-12,	"1.92138E-12", "%G"},
+  {__LINE__, 1.923916000932815e-25,	"1.92392E-25", "%G"},
+  {__LINE__, 1.926303652776462e-01,	"+0.2", "%+0.G"},
+  {__LINE__, 1.929411084211293e+21,	"1.92941E+21", "%6G"},
+  {__LINE__, 1.929996820297491e-26,	"1.93e-26", "%.6g"},
+  {__LINE__, 1.937301472034748e-29,	"1.9373E-29", "%G"},
+  {__LINE__, 1.937301660220894e-11,	"+1.9373E-11", "%+G"},
+  {__LINE__, 1.939038538587083e-02,	"0.0193904", "%g"},
+  {__LINE__, 1.940575489112444e-09,	"1.94058E-09", "%G"},
+  {__LINE__, 1.946550455606677e-26,	"1.946550E-26", "%#1E"},
+  {__LINE__, 1.954250777559491e-14,	"1.95425E-14", "%G"},
+  {__LINE__, 1.955646327688473e-16,	"1.956E-16", "%#.3E"},
+  {__LINE__, 1.956999911995683e+20,	"2E+20", "%2.G"},
+  {__LINE__, 1.959125254298784e-21,	"1.95913E-21", "%#G"},
+  {__LINE__, 1.960330340481290e+26,	"1.96033e+26", "%.6g"},
+  {__LINE__, 1.964156478075422e+01,	"+19.6416", "%+g"},
+  {__LINE__, 1.964702507676036e+19,	"2.0e+19", "%2.1e"},
+  {__LINE__, 1.965762191674409e-30,	"2E-30", "%1.G"},
+  {__LINE__, 1.967492699686803e-29,	"+1.967493E-29", "%+#E"},
+  {__LINE__, 1.970072604062236e-11,	"+1.97007E-11", "%+G"},
+  {__LINE__, 1.975631055550387e+05,	"197563.105555", "%.6f"},
+  {__LINE__, 1.975722425389177e+28,	"+1.975722e+28", "%+5.6e"},
+  {__LINE__, 1.977938328895365e-05,	" 2e-05", "%6.e"},
+  {__LINE__, 1.981950849019640e+13,	"1.981951E+13", "%E"},
+  {__LINE__, 1.982543168856985e-26,	"1.98254e-26", "%4g"},
+  {__LINE__, 1.984873317384181e-20,	"1.98487E-20", "%4G"},
+  {__LINE__, 1.986146420877074e+02,	"+1.986146e+02", "%+0e"},
+  {__LINE__, 1.986465942785167e-28,	"1.98647e-28", "%g"},
+  {__LINE__, 1.988250323235468e-05,	"     +0", "%+7.f"},
+  {__LINE__, 1.989966623080645e-09,	"1.989967e-09", "%e"},
+  {__LINE__, 1.991243122514519e+11,	"199124312251", "%5.f"},
+  {__LINE__, 1.993287894645908e+25,	"+1.993288E+25", "%+E"},
+  {__LINE__, 1.995172329888890e-30,	"+1.99517e-30", "%+3g"},
+  {__LINE__, 1.997075127236432e+05,	"1.997E+05", "%#.4G"},
+  {__LINE__, 2.000651599487290e+04,	"2E+04", "%2.E"},
+  {__LINE__, 2.001429412876339e-28,	"0.000000", "%6f"},
+  {__LINE__, 2.003535646264196e+03,	"  2E+03", "%7.G"},
+  {__LINE__, 2.011751504116246e+06,	"2E+06", "%2.G"},
+  {__LINE__, 2.016361237694652e-30,	"2.01636e-30", "%4g"},
+  {__LINE__, 2.018266414065554e-08,	"0.00", "%2.2f"},
+  {__LINE__, 2.020706780608565e+03,	"2E+03", "%.0G"},
+  {__LINE__, 2.025098418552005e-16,	"+2.025098E-16", "%+2E"},
+  {__LINE__, 2.026100592518976e-11,	"2.026101e-11", "%6e"},
+  {__LINE__, 2.026167291572980e+11,	"2.02617E+11", "%G"},
+  {__LINE__, 2.026782170272331e+07,	"2.026782E+07", "%E"},
+  {__LINE__, 2.029133469449347e-06,	" 2e-06", "%6.g"},
+  {__LINE__, 2.031191570768443e-20,	"2.031192E-20", "%2.7G"},
+  {__LINE__, 2.031884221862863e-16,	"2.031884e-16", "%e"},
+  {__LINE__, 2.032992924118323e+29,	"203299292411832333016263874014.84", "%#0.2f"},
+  {__LINE__, 2.035799610097827e+28,	"+20357996100978272835391180706.2104344", "%+3.7f"},
+  {__LINE__, 2.038008183612069e+25,	"20380081836120691463065668", "%7.0f"},
+  {__LINE__, 2.041632205119365e-22,	"+2.04163e-22", "%+g"},
+  {__LINE__, 2.042769811159352e-10,	"2e-10", "%.1g"},
+  {__LINE__, 2.043034975847005e-08,	"2.043035e-08", "%e"},
+  {__LINE__, 2.045930666285880e+26,	"2.04593e+26", "%g"},
+  {__LINE__, 2.048377276651386e-21,	"0.00000", "%2.5f"},
+  {__LINE__, 2.051785787301292e-23,	"0.000000", "%f"},
+  {__LINE__, 2.055085792048183e-10,	"0.000000", "%f"},
+  {__LINE__, 2.055783028451040e-21,	"+0", "%+1.f"},
+  {__LINE__, 2.057641607509489e-17,	"+2E-17", "%+2.G"},
+  {__LINE__, 2.058348703001600e-15,	"2.05835E-15", "%#G"},
+  {__LINE__, 2.059594758787322e+24,	"2.05959E+24", "%1G"},
+  {__LINE__, 2.062710740295018e+01,	"20.6271", "%G"},
+  {__LINE__, 2.063240676447750e-11,	"0.000000", "%f"},
+  {__LINE__, 2.063799238238917e-09,	"+0.000000", "%+f"},
+  {__LINE__, 2.064564135160425e-17,	"2.06456E-17", "%G"},
+  {__LINE__, 2.066363476927650e-05,	"2.07E-05", "%.3G"},
+  {__LINE__, 2.066871450514214e-02,	"+2.066871e-02", "%+e"},
+  {__LINE__, 2.067258256169148e+07,	"2.06726e+07", "%g"},
+  {__LINE__, 2.068466590729350e-22,	"0.0000", "%.4f"},
+  {__LINE__, 2.068779510112540e-26,	"2.06878e-26", "%g"},
+  {__LINE__, 2.069258770387493e+19,	"20692587703874929516.700831", "%3f"},
+  {__LINE__, 2.069547778447951e+26,	"2.069548e+26", "%6e"},
+  {__LINE__, 2.070479507710941e-23,	"2.07048E-23", "%G"},
+  {__LINE__, 2.071809640061785e+22,	"2.071810E+22", "%E"},
+  {__LINE__, 2.073364463564950e-06,	"2.07336e-06", "%g"},
+  {__LINE__, 2.073478953644888e-10,	"+2.07E-10", "%+.3G"},
+  {__LINE__, 2.076039194312519e+12,	"2.07604E+12", "%G"},
+  {__LINE__, 2.081490398946229e-07,	"+2.08149e-07", "%+g"},
+  {__LINE__, 2.084941170287895e-07,	"2.084941E-07", "%7E"},
+  {__LINE__, 2.087035885023382e-18,	"+0.000000", "%+f"},
+  {__LINE__, 2.091025884363342e-09,	"2.09103E-09", "%G"},
+  {__LINE__, 2.091830555397864e+08,	"209183056", "%0.f"},
+  {__LINE__, 2.091998109232084e-22,	"0.000000", "%#f"},
+  {__LINE__, 2.093406473464940e-17,	"2.09341e-17", "%g"},
+  {__LINE__, 2.094646724039720e-26,	"2.094647e-26", "%0.7g"},
+  {__LINE__, 2.095218667083208e-22,	"2.09522e-22", "%.5e"},
+  {__LINE__, 2.096932364992728e-27,	"2.1E-27", "%.2G"},
+  {__LINE__, 2.097012452732083e+17,	"2.09701E+17", "%G"},
+  {__LINE__, 2.102022216908102e-07,	"0.000000", "%f"},
+  {__LINE__, 2.104648382618938e-04,	"0.00021", "%.3G"},
+  {__LINE__, 2.109159578853690e-19,	"2.10916e-19", "%6g"},
+  {__LINE__, 2.111732624641178e-13,	"+2.111733E-13", "%+7.7G"},
+  {__LINE__, 2.112676138351330e+21,	" 2e+21", "%6.g"},
+  {__LINE__, 2.117332904051741e-09,	"+0.000000", "%+f"},
+  {__LINE__, 2.118001353767757e-14,	"2.118E-14", "%4.3E"},
+  {__LINE__, 2.119413720893955e+12,	"2.119414E+12", "%.7G"},
+  {__LINE__, 2.119610992647014e+07,	"+21196109.9265", "%+.4f"},
+  {__LINE__, 2.120504022069221e+25,	"21205040220692210617414730.223", "%#.3f"},
+  {__LINE__, 2.120634617123718e-16,	"2.120635e-16", "%#e"},
+  {__LINE__, 2.128702437175385e+12,	"2128702437175.385", "%.3f"},
+  {__LINE__, 2.131148830213536e-12,	"2.131149e-12", "%e"},
+  {__LINE__, 2.132682622145255e+04,	"+21326.83", "%+#5.7G"},
+  {__LINE__, 2.133864841676473e-01,	"  +0.2", "%+6.g"},
+  {__LINE__, 2.133939058496273e+16,	"2E+16", "%4.G"},
+  {__LINE__, 2.135087006806302e-24,	"0.000000", "%f"},
+  {__LINE__, 2.138983961194584e-20,	"+2.138984e-20", "%+7e"},
+  {__LINE__, 2.146534189669224e+17,	"+2.147E+17", "%+.4G"},
+  {__LINE__, 2.147375595676503e+09,	"2.147376e+09", "%e"},
+  {__LINE__, 2.152994986418075e+02,	"2E+02", "%0.E"},
+  {__LINE__, 2.154127135896811e+06,	"2.15E+06", "%2.3G"},
+  {__LINE__, 2.154613053892588e-29,	"2.1546E-29", "%.4E"},
+  {__LINE__, 2.160830430730653e-12,	"2.16083E-12", "%#G"},
+  {__LINE__, 2.161740591663027e+28,	"2.161741e+28", "%e"},
+  {__LINE__, 2.167181665934011e-06,	"2e-06", "%1.e"},
+  {__LINE__, 2.167348761729060e-04,	"2.167349e-04", "%#e"},
+  {__LINE__, 2.170270852816708e-10,	"2.17027E-10", "%0G"},
+  {__LINE__, 2.173048229189370e-06,	"2.173e-06", "%.5g"},
+  {__LINE__, 2.175554537855024e+10,	"2.17555E+10", "%G"},
+  {__LINE__, 2.177447372527968e-30,	"+0.000000", "%+.6f"},
+  {__LINE__, 2.178591661569858e+05,	"2.1786e+05", "%1.5g"},
+  {__LINE__, 2.184700207174818e-29,	"0.000000", "%f"},
+  {__LINE__, 2.190817031437247e+03,	"2.E+03", "%#3.0E"},
+  {__LINE__, 2.191396212145558e-01,	"2.191E-01", "%6.3E"},
+  {__LINE__, 2.191786353372880e-23,	"2.19179e-23", "%.5e"},
+  {__LINE__, 2.193471126151079e+19,	"2.1935E+19", "%.4E"},
+  {__LINE__, 2.194750177630526e-15,	"2.194750e-15", "%e"},
+  {__LINE__, 2.196145170358973e+05,	"+219615", "%+g"},
+  {__LINE__, 2.199602360934320e-09,	"2.19960E-09", "%#6.6G"},
+  {__LINE__, 2.202913988776998e+17,	"+2.20291e+17", "%+g"},
+  {__LINE__, 2.207094560707703e-10,	"2.207095e-10", "%e"},
+  {__LINE__, 2.207557214621658e-13,	"   0", "%4.f"},
+  {__LINE__, 2.209428206272229e+13,	"2.20943e+13", "%g"},
+  {__LINE__, 2.212662463615175e-11,	"   0", "%4.0f"},
+  {__LINE__, 2.215732710968468e-30,	"2E-30", "%.1G"},
+  {__LINE__, 2.218490841936778e-10,	"2.21849e-10", "%2g"},
+  {__LINE__, 2.218850610567959e-01,	"+0.221885", "%+G"},
+  {__LINE__, 2.220796939261542e-03,	"0.002221", "%#f"},
+  {__LINE__, 2.221819894808024e+24,	"2.2e+24", "%5.1e"},
+  {__LINE__, 2.223804993235507e+27,	"2.223805e+27", "%1e"},
+  {__LINE__, 2.224715386046563e-17,	"0.00000", "%#.5f"},
+  {__LINE__, 2.224864709983882e-16,	"+2.224865e-16", "%+e"},
+  {__LINE__, 2.225764510969505e+16,	"2.E+16", "%#4.G"},
+  {__LINE__, 2.233229189161284e-07,	"+2.23323e-07", "%+6g"},
+  {__LINE__, 2.236522807209868e+17,	"2.23652e+17", "%g"},
+  {__LINE__, 2.236641620849775e+20,	"2E+20", "%0.G"},
+  {__LINE__, 2.237089952728626e-13,	"2E-13", "%5.E"},
+  {__LINE__, 2.238531255563381e-11,	"  2E-11", "%7.1G"},
+  {__LINE__, 2.242782296436871e+12,	"2242782296436.871103", "%f"},
+  {__LINE__, 2.249177852069393e-02,	"+2.249178E-02", "%+5E"},
+  {__LINE__, 2.250735782732076e+29,	"+2.25074e+29", "%+g"},
+  {__LINE__, 2.257455203557544e-11,	"+2e-11", "%+4.0g"},
+  {__LINE__, 2.258002527939529e+24,	"2.258e+24", "%g"},
+  {__LINE__, 2.266955929448160e+20,	"226695592944815960123.6056915", "%.7f"},
+  {__LINE__, 2.269019719123250e-23,	"0.000000", "%f"},
+  {__LINE__, 2.269022332502809e+02,	"+226.902233", "%+f"},
+  {__LINE__, 2.271165222038591e-03,	"0.002", "%1.1g"},
+  {__LINE__, 2.273965946408021e+14,	"+227396594640802.085507", "%+f"},
+  {__LINE__, 2.277221153386242e+22,	"22772211533862418697538.032575", "%#f"},
+  {__LINE__, 2.280214920187521e-01,	"0.2", "%2.G"},
+  {__LINE__, 2.280762993019740e+06,	"2.28076E+06", "%G"},
+  {__LINE__, 2.283479263040833e-24,	"+0.000000", "%+f"},
+  {__LINE__, 2.283686319235123e-07,	"2.2837E-07", "%5.5G"},
+  {__LINE__, 2.285842617231066e-26,	"0.000000", "%f"},
+  {__LINE__, 2.293145864755873e-02,	"0.02", "%.0g"},
+  {__LINE__, 2.293439381531532e+03,	"+2.293439E+03", "%+#1E"},
+  {__LINE__, 2.297972500660698e-22,	"2.29797e-22", "%g"},
+  {__LINE__, 2.298725366073681e+23,	"2.29873E+23", "%G"},
+  {__LINE__, 2.303151535483950e-29,	"2.30315E-29", "%G"},
+  {__LINE__, 2.308565313657699e-25,	"   0", "%4.f"},
+  {__LINE__, 2.309305373760733e-07,	"2.309305E-07", "%E"},
+  {__LINE__, 2.309693761334710e-19,	"2.30969e-19", "%g"},
+  {__LINE__, 2.312218220995774e-20,	"+2.31222E-20", "%+.6G"},
+  {__LINE__, 2.313115729670525e+24,	"2.31312E+24", "%G"},
+  {__LINE__, 2.315325159866773e-21,	"2.315325E-21", "%E"},
+  {__LINE__, 2.316932917620091e-19,	"0.000000", "%f"},
+  {__LINE__, 2.317548394633895e+13,	"2.31755E+13", "%0G"},
+  {__LINE__, 2.318951465093612e+02,	"+2.32e+02", "%+1.2e"},
+  {__LINE__, 2.319151794905482e-17,	"+0.000000", "%+0f"},
+  {__LINE__, 2.319708617851078e-27,	"0.000000", "%f"},
+  {__LINE__, 2.320019976591725e+20,	"2e+20", "%.1g"},
+  {__LINE__, 2.322859962551666e+06,	"2.32286e+06", "%g"},
+  {__LINE__, 2.326474568074649e-29,	"2.326e-29", "%.4g"},
+  {__LINE__, 2.328400844172053e-07,	"2.3284E-07", "%G"},
+  {__LINE__, 2.333695247698112e+16,	"2.3337e+16", "%g"},
+  {__LINE__, 2.333717120257130e-19,	"+0.000000", "%+f"},
+  {__LINE__, 2.334711793234782e-19,	"2.33471E-19", "%5G"},
+  {__LINE__, 2.335524987281242e+02,	"+233.55", "%+7.5g"},
+  {__LINE__, 2.335556767836369e-30,	"2.34e-30", "%.3g"},
+  {__LINE__, 2.337696964360052e-10,	"2.3377e-10", "%1g"},
+  {__LINE__, 2.337858249184500e-14,	"2.337858E-14", "%5.6E"},
+  {__LINE__, 2.339984354781169e-14,	"2.339984E-14", "%E"},
+  {__LINE__, 2.340849041430089e-04,	"0.00023", "%0.2G"},
+  {__LINE__, 2.342388410373363e-24,	"2.34239E-24", "%G"},
+  {__LINE__, 2.343933106737237e-22,	"2.34393e-22", "%g"},
+  {__LINE__, 2.344870855713960e-08,	"0.000000", "%.6f"},
+  {__LINE__, 2.347368965433808e+24,	"2347368965433808352116785", "%4.f"},
+  {__LINE__, 2.349417462171421e-02,	"+0.0234942", "%+G"},
+  {__LINE__, 2.351071111431207e+11,	"235107111143.12", "%.2f"},
+  {__LINE__, 2.352756222810670e+19,	"+2.e+19", "%+#4.g"},
+  {__LINE__, 2.355862529217003e-22,	"2.355863e-22", "%#4e"},
+  {__LINE__, 2.356804045401445e-30,	"2.3568E-30", "%G"},
+  {__LINE__, 2.362100710185559e-26,	"2.3621e-26", "%g"},
+  {__LINE__, 2.368330779173562e-12,	"   0", "%4.f"},
+  {__LINE__, 2.383329784369796e+22,	"2.38333E+22", "%G"},
+  {__LINE__, 2.386845229536477e+01,	"+23.868452", "%+#f"},
+  {__LINE__, 2.388207830036780e-05,	"0.000024", "%f"},
+  {__LINE__, 2.391809468802907e+21,	"+2.391809e+21", "%+e"},
+  {__LINE__, 2.395172908564692e-09,	"+0.000000", "%+f"},
+  {__LINE__, 2.395447167030886e-29,	"2.39545e-29", "%g"},
+  {__LINE__, 2.397292973389182e+16,	"23972929733891823", "%6.f"},
+  {__LINE__, 2.401749832237687e-30,	"2.401750E-30", "%E"},
+  {__LINE__, 2.403610502544347e-03,	"0.00240361", "%4G"},
+  {__LINE__, 2.404676421776132e+17,	"240467642177613206", "%6.f"},
+  {__LINE__, 2.406327689091479e+25,	"2.406328e+25", "%e"},
+  {__LINE__, 2.407341999590511e-02,	"0.024073", "%f"},
+  {__LINE__, 2.407352797581004e+05,	"240735.", "%#g"},
+  {__LINE__, 2.407903467439017e+13,	"2.4079E+13", "%G"},
+  {__LINE__, 2.407979635013539e+21,	" +2E+21", "%+7.G"},
+  {__LINE__, 2.409513517930790e+29,	"240951351793079027174826478585.600853", "%f"},
+  {__LINE__, 2.412530651221551e+10,	"+2.41253E+10", "%+G"},
+  {__LINE__, 2.419943224673811e+00,	"2.41994", "%#g"},
+  {__LINE__, 2.422474399040258e-15,	"0.000000", "%f"},
+  {__LINE__, 2.426060206689458e+18,	"2.42606E+18", "%1G"},
+  {__LINE__, 2.439982659679872e+14,	"+2.439983E+14", "%+E"},
+  {__LINE__, 2.440528851375447e+13,	"24405288513754.466173", "%f"},
+  {__LINE__, 2.441340473292679e+19,	"2.44134E+19", "%G"},
+  {__LINE__, 2.443521636943916e+19,	" 2.e+19", "%#7.g"},
+  {__LINE__, 2.445925211597624e-27,	"2.445925E-27", "%E"},
+  {__LINE__, 2.446966179060722e+25,	"2.446966e+25", "%5e"},
+  {__LINE__, 2.447714218717278e+11,	"2e+11", "%1.e"},
+  {__LINE__, 2.448339744613286e+06,	"2.4483e+06", "%3.5g"},
+  {__LINE__, 2.448772993496189e+03,	"2448.77", "%G"},
+  {__LINE__, 2.448857654325229e+22,	"+2.44886e+22", "%+g"},
+  {__LINE__, 2.450082452098890e-27,	"2.4501E-27", "%#3.5G"},
+  {__LINE__, 2.451293602221637e+05,	"245129.360222", "%f"},
+  {__LINE__, 2.454531490229426e+02,	"245.453", "%G"},
+  {__LINE__, 2.458958369944980e+14,	"2.5E+14", "%6.1E"},
+  {__LINE__, 2.463666680775038e+14,	"+246366668077503.80", "%+#.2f"},
+  {__LINE__, 2.471582990960795e+05,	"2.471583e+05", "%e"},
+  {__LINE__, 2.474107179274687e+22,	"2.47411e+22", "%g"},
+  {__LINE__, 2.474332114849132e-08,	"+2.47433e-08", "%+g"},
+  {__LINE__, 2.476956762431716e+18,	"+2476956762431715919.348107", "%+#f"},
+  {__LINE__, 2.479091221850607e-22,	"0.000000", "%f"},
+  {__LINE__, 2.479819586598431e-24,	"2.47982e-24", "%g"},
+  {__LINE__, 2.480006174601455e-05,	"2.48001E-05", "%G"},
+  {__LINE__, 2.482672677638334e-26,	"+0.000000", "%+f"},
+  {__LINE__, 2.492816492208918e-14,	"      0", "%7.f"},
+  {__LINE__, 2.492964173197140e-12,	"  2e-12", "%7.g"},
+  {__LINE__, 2.494646635961173e+02,	"249.465", "%g"},
+  {__LINE__, 2.494687818780545e+11,	"249468781878.054546", "%#7f"},
+  {__LINE__, 2.510083560147301e-13,	"+2.510084e-13", "%+#e"},
+  {__LINE__, 2.511186607989480e-30,	"2.51E-30", "%.3G"},
+  {__LINE__, 2.514164516133643e-11,	"2.51416e-11", "%g"},
+  {__LINE__, 2.517242520804735e+11,	"2.517243e+11", "%e"},
+  {__LINE__, 2.518526126400833e-26,	"2.51853e-26", "%g"},
+  {__LINE__, 2.520313416401176e+09,	"2520313416.401176", "%5f"},
+  {__LINE__, 2.521653160738683e-29,	"2.52165e-29", "%#g"},
+  {__LINE__, 2.521941342615338e-16,	"2.52194e-16", "%g"},
+  {__LINE__, 2.523554774354461e-03,	"+3E-03", "%+.0E"},
+  {__LINE__, 2.525434130825058e+06,	"+2.525434E+06", "%+E"},
+  {__LINE__, 2.527616380113364e+02,	"2.527616E+02", "%E"},
+  {__LINE__, 2.531871347913505e+09,	"+2.53187E+09", "%+#G"},
+  {__LINE__, 2.532167428661069e+06,	"2532167.428661", "%f"},
+  {__LINE__, 2.545585718405995e+14,	"+2.54559E+14", "%+G"},
+  {__LINE__, 2.546305097286406e+10,	"2.546305e+10", "%e"},
+  {__LINE__, 2.547467156069069e-30,	"+0.00", "%+3.2f"},
+  {__LINE__, 2.548728793004506e-14,	"2.54873E-14", "%G"},
+  {__LINE__, 2.560375602395090e+11,	"256037560239.509032", "%0f"},
+  {__LINE__, 2.560555687476687e+03,	"2561", "%.4g"},
+  {__LINE__, 2.561709077363443e-24,	"+0.000000", "%+f"},
+  {__LINE__, 2.563763849675242e+10,	"2.5637638E+10", "%.7E"},
+  {__LINE__, 2.567482414574355e+11,	"+2.567482e+11", "%+e"},
+  {__LINE__, 2.571575046303674e-17,	"3E-17", "%2.0E"},
+  {__LINE__, 2.572997971296986e+11,	"257299797129.698593", "%f"},
+  {__LINE__, 2.578625935900331e+22,	"25786259359003311786295.853381", "%f"},
+  {__LINE__, 2.579663282966370e+12,	"2.579663e+12", "%e"},
+  {__LINE__, 2.593141782397610e-08,	"0.000000", "%f"},
+  {__LINE__, 2.594386109584196e+04,	"3.E+04", "%#6.0E"},
+  {__LINE__, 2.598069318007816e-22,	"2.59807e-22", "%g"},
+  {__LINE__, 2.600910462290091e+09,	"2.600910E+09", "%6E"},
+  {__LINE__, 2.602580183614458e-03,	"2.602580e-03", "%e"},
+  {__LINE__, 2.606540360440264e+09,	"+2606540360.4", "%+#0.1f"},
+  {__LINE__, 2.610016419698116e-21,	"+3.e-21", "%+#3.g"},
+  {__LINE__, 2.612279323574882e-20,	"2.61228E-20", "%G"},
+  {__LINE__, 2.614157324336453e-14,	"2.61416e-14", "%g"},
+  {__LINE__, 2.614688721873993e-09,	"2.61e-09", "%6.2e"},
+  {__LINE__, 2.616661104472416e-15,	"    0", "%5.f"},
+  {__LINE__, 2.616742079283195e-09,	" +3E-09", "%+7.E"},
+  {__LINE__, 2.618075304717427e+24,	"2.618075e+24", "%e"},
+  {__LINE__, 2.624118573335769e+26,	"262411857333576925555007619.550452", "%1f"},
+  {__LINE__, 2.625718894274227e+24,	"+2625718894274227110940955.753904", "%+f"},
+  {__LINE__, 2.627081999477812e+03,	"2627.081999", "%f"},
+  {__LINE__, 2.631061062224705e+14,	"263106106222470.481626", "%f"},
+  {__LINE__, 2.631545877128814e+27,	"+2.63155e+27", "%+g"},
+  {__LINE__, 2.632694395848818e-11,	"2.63269e-11", "%g"},
+  {__LINE__, 2.636728891022008e-22,	"+2.63673e-22", "%+#4g"},
+  {__LINE__, 2.638495675008130e-28,	"+2.638496e-28", "%+e"},
+  {__LINE__, 2.639704195859799e-11,	"0.", "%#.0f"},
+  {__LINE__, 2.641645264652665e-20,	"0", "%0.f"},
+  {__LINE__, 2.642012075064497e-20,	"3E-20", "%0.E"},
+  {__LINE__, 2.648725869006487e-29,	" 3E-29", "%6.G"},
+  {__LINE__, 2.649060724417770e+12,	"3E+12", "%3.G"},
+  {__LINE__, 2.651188545120166e-17,	"0.000", "%.3f"},
+  {__LINE__, 2.652302152621621e+14,	"2.7E+14", "%.2G"},
+  {__LINE__, 2.653309718412604e-28,	"0.000000", "%f"},
+  {__LINE__, 2.658344750491858e-21,	" 3e-21", "%6.g"},
+  {__LINE__, 2.664625074612594e+15,	"3e+15", "%1.g"},
+  {__LINE__, 2.666953728270800e-15,	"3e-15", "%0.e"},
+  {__LINE__, 2.674515419678877e-11,	" 3E-11", "%6.E"},
+  {__LINE__, 2.680054917256578e+15,	"2680054917256577.5", "%#2.1f"},
+  {__LINE__, 2.680495609883415e-11,	"2.68E-11", "%#.3G"},
+  {__LINE__, 2.685757893641070e+23,	"268575789364107020418259.70809", "%1.5f"},
+  {__LINE__, 2.695551226058178e+16,	"26955512260581775.407786", "%f"},
+  {__LINE__, 2.696346377519671e+04,	"+26963.5", "%+G"},
+  {__LINE__, 2.714262310601257e+17,	"+2.714262E+17", "%+E"},
+  {__LINE__, 2.719227450016317e-01,	"0.271923", "%G"},
+  {__LINE__, 2.724135433346056e-30,	"+2.72414e-30", "%+g"},
+  {__LINE__, 2.725143224130276e+14,	"272514322413027.576530", "%6f"},
+  {__LINE__, 2.729355189648310e-03,	"+0.00273", "%+.5f"},
+  {__LINE__, 2.732872167724945e+11,	"2.73287E+11", "%G"},
+  {__LINE__, 2.737709476435412e+17,	"273770947643541218.141650", "%f"},
+  {__LINE__, 2.739299356074967e-15,	"2.7E-15", "%.2G"},
+  {__LINE__, 2.740793612304798e-27,	"2.740794E-27", "%.7G"},
+  {__LINE__, 2.742030156175960e+20,	"2.74203e+20", "%2.6g"},
+  {__LINE__, 2.744455324096085e+11,	"2.74446E+11", "%G"},
+  {__LINE__, 2.745179546531160e+07,	"2.7452E+07", "%.5G"},
+  {__LINE__, 2.747470562525333e+04,	"3E+04", "%2.E"},
+  {__LINE__, 2.750243314674629e+21,	"2.75024E+21", "%#G"},
+  {__LINE__, 2.750250224436030e+20,	"+2.750250e+20", "%+0.6e"},
+  {__LINE__, 2.752712858561084e-22,	"2.752713e-22", "%e"},
+  {__LINE__, 2.756982987656667e-03,	"0.002756983", "%#.7G"},
+  {__LINE__, 2.761841188479590e+13,	"3e+13", "%1.g"},
+  {__LINE__, 2.769498440434419e+00,	"+3e+00", "%+0.e"},
+  {__LINE__, 2.769993785786379e+10,	"27699937857.863794", "%f"},
+  {__LINE__, 2.772900256376753e-06,	"+2.7729E-06", "%+7.6G"},
+  {__LINE__, 2.774401482467457e-06,	"2.8e-06", "%3.2g"},
+  {__LINE__, 2.777691370374757e-02,	"+0.027777", "%+f"},
+  {__LINE__, 2.779836227365899e-09,	"3e-09", "%5.0g"},
+  {__LINE__, 2.780481651765741e+01,	"2.780482E+01", "%E"},
+  {__LINE__, 2.782228478714809e-26,	"2.782228E-26", "%4.7G"},
+  {__LINE__, 2.790457781719376e+13,	"+2.8e+13", "%+.2g"},
+  {__LINE__, 2.792026581166417e-30,	" 3.e-30", "%#7.0g"},
+  {__LINE__, 2.792396278299615e-08,	"0.00", "%#.2f"},
+  {__LINE__, 2.793658047689995e-10,	"2.794e-10", "%#0.4g"},
+  {__LINE__, 2.795707358229888e-25,	"0.000000", "%f"},
+  {__LINE__, 2.796253091758523e-06,	"2.796E-06", "%.4G"},
+  {__LINE__, 2.796756564788716e-24,	"2.796757e-24", "%e"},
+  {__LINE__, 2.798730444798773e-14,	"2.79873e-14", "%g"},
+  {__LINE__, 2.799108397670447e-24,	"3E-24", "%.0G"},
+  {__LINE__, 2.799389008872835e+06,	"2799389.", "%#0.f"},
+  {__LINE__, 2.800413998518039e-14,	"0.000000", "%f"},
+  {__LINE__, 2.803237602587100e+15,	"+2803237602587100.418816", "%+5f"},
+  {__LINE__, 2.803474415574551e-04,	"0.0002803", "%.7f"},
+  {__LINE__, 2.804957468647181e+25,	"2.80496e+25", "%g"},
+  {__LINE__, 2.809345112788226e+09,	"2809345112.788226", "%.6f"},
+  {__LINE__, 2.811518239408899e+10,	"3e+10", "%1.g"},
+  {__LINE__, 2.813188439967416e-16,	"0.0000000", "%5.7f"},
+  {__LINE__, 2.813497118051755e+08,	"2.8135e+08", "%.5g"},
+  {__LINE__, 2.815748256510577e-29,	"0.000000", "%2f"},
+  {__LINE__, 2.816076365485207e-01,	"0.281608", "%0G"},
+  {__LINE__, 2.816083345772131e+24,	"2.8161e+24", "%6.4e"},
+  {__LINE__, 2.818686957605178e+12,	"2.8187E+12", "%.5G"},
+  {__LINE__, 2.821903538737691e+20,	"2.8219E+20", "%G"},
+  {__LINE__, 2.823659589845680e+26,	"2.82366e+26", "%2g"},
+  {__LINE__, 2.823685630865012e+22,	"2.82369E+22", "%G"},
+  {__LINE__, 2.828826386007914e+21,	"2.828826E+21", "%7E"},
+  {__LINE__, 2.830997901034349e+04,	"+3e+04", "%+0.e"},
+  {__LINE__, 2.833886731091353e-26,	"+2.833887e-26", "%+4e"},
+  {__LINE__, 2.839965144893913e+28,	"28399651448939131626048038015.1421", "%.4f"},
+  {__LINE__, 2.840651452049947e-09,	"2.841E-09", "%#.3E"},
+  {__LINE__, 2.843388001911757e-01,	"0.284339", "%g"},
+  {__LINE__, 2.846122151080671e+14,	"2.84612E+14", "%.5E"},
+  {__LINE__, 2.851257828837595e+05,	"+285126", "%+5.f"},
+  {__LINE__, 2.853823884459520e+07,	"+2.85382E+07", "%+G"},
+  {__LINE__, 2.853870068368765e-06,	"2.854E-06", "%4.3E"},
+  {__LINE__, 2.856687358149867e+01,	"+28.567", "%+6.5G"},
+  {__LINE__, 2.858946600073752e+06,	"2.8589466e+06", "%3.7e"},
+  {__LINE__, 2.861525727138818e+24,	"2.8615257e+24", "%2.7e"},
+  {__LINE__, 2.865104175886071e-24,	"0.000000", "%f"},
+  {__LINE__, 2.870678920363198e-14,	"2.87068E-14", "%G"},
+  {__LINE__, 2.873298537233691e+09,	"+2.8733e+09", "%+g"},
+  {__LINE__, 2.877939609444375e-02,	"0.028779", "%f"},
+  {__LINE__, 2.878253985341728e+13,	"2.87825E+13", "%G"},
+  {__LINE__, 2.879299244903946e+29,	"287929924490394597569320467301", "%0.f"},
+  {__LINE__, 2.885516225515485e-26,	"0.000000", "%f"},
+  {__LINE__, 2.886013724129579e+20,	"+3e+20", "%+4.g"},
+  {__LINE__, 2.887032786975506e-30,	"0.000000", "%f"},
+  {__LINE__, 2.890415456531026e-29,	"2.89042E-29", "%G"},
+  {__LINE__, 2.893177360548214e-13,	"2.893E-13", "%#6.3E"},
+  {__LINE__, 2.895265536458195e+26,	"2.89527e+26", "%5g"},
+  {__LINE__, 2.903844533810152e+23,	"290384453381015195105874.23", "%.2f"},
+  {__LINE__, 2.909060558287504e+27,	"2.90906e+27", "%g"},
+  {__LINE__, 2.911615480973172e-05,	"2.91162E-05", "%3G"},
+  {__LINE__, 2.912692297221896e+09,	"2912692297.221896", "%#f"},
+  {__LINE__, 2.913595662485813e-24,	"2.9136E-24", "%G"},
+  {__LINE__, 2.915960840341896e-27,	"0.000000", "%f"},
+  {__LINE__, 2.920451095973991e-16,	"2.92e-16", "%2.2e"},
+  {__LINE__, 2.920528295810925e+06,	"2.92053E+06", "%#G"},
+  {__LINE__, 2.921564671017147e+20,	"2.921565E+20", "%#6E"},
+  {__LINE__, 2.921628350942189e+01,	"2.921628E+01", "%E"},
+  {__LINE__, 2.921843377455232e+20,	"2.921843E+20", "%#E"},
+  {__LINE__, 2.930156950319384e+29,	"2.930E+29", "%1.3E"},
+  {__LINE__, 2.931229858895071e-30,	"2.9e-30", "%4.2g"},
+  {__LINE__, 2.931753029689166e+20,	"2.93175e+20", "%g"},
+  {__LINE__, 2.933023693079342e+15,	"3.E+15", "%#.1G"},
+  {__LINE__, 2.933078733225520e+26,	"2.93308E+26", "%G"},
+  {__LINE__, 2.933528170896643e-14,	"+2.93353e-14", "%+g"},
+  {__LINE__, 2.938648437428148e+00,	"2.938648e+00", "%e"},
+  {__LINE__, 2.940752238221344e+26,	"+2.94075E+26", "%+G"},
+  {__LINE__, 2.942836470459675e+20,	"2.9428e+20", "%6.4e"},
+  {__LINE__, 2.943218333254941e+29,	"294321833325494086608387078740.634024", "%f"},
+  {__LINE__, 2.943690574007512e-27,	"0.000000", "%f"},
+  {__LINE__, 2.945452907046501e+09,	"+2.9455E+09", "%+.5G"},
+  {__LINE__, 2.946648725966953e+16,	"29466487259669534.637396", "%4f"},
+  {__LINE__, 2.955119322417825e+29,	"2.95512E+29", "%G"},
+  {__LINE__, 2.966481197538973e+24,	"2.96648e+24", "%#g"},
+  {__LINE__, 2.969362862661362e+08,	"+2.969363e+08", "%+7e"},
+  {__LINE__, 2.970062459990078e+21,	"+2.97006E+21", "%+G"},
+  {__LINE__, 2.971059959019791e+10,	"  3E+10", "%7.G"},
+  {__LINE__, 2.973020205606034e-29,	"0.000000", "%f"},
+  {__LINE__, 2.977223210301426e+04,	"2.977223e+04", "%#e"},
+  {__LINE__, 2.977467832772786e-26,	"0.000000", "%f"},
+  {__LINE__, 2.981433606423384e+18,	"2981433606423384397.032805", "%f"},
+  {__LINE__, 2.981615513287404e-17,	"2.98162e-17", "%g"},
+  {__LINE__, 2.983880743847276e+19,	"  3e+19", "%7.e"},
+  {__LINE__, 2.983927792297305e-28,	"2.983928e-28", "%e"},
+  {__LINE__, 2.984807359492058e-17,	" 0", "%2.f"},
+  {__LINE__, 2.985123412933032e+09,	"+2.98512e+09", "%+g"},
+  {__LINE__, 2.991132955408629e-27,	"+2.99113e-27", "%+4g"},
+  {__LINE__, 2.992345635923643e+19,	"3E+19", "%4.G"},
+  {__LINE__, 2.993024238285395e-05,	"2.99302e-05", "%2g"},
+  {__LINE__, 2.995303406756363e+16,	"+2.995303E+16", "%+E"},
+  {__LINE__, 2.995492577854335e+19,	"+29954925778543346481.797016", "%+f"},
+  {__LINE__, 2.996856271675341e-25,	"+3e-25", "%+0.e"},
+  {__LINE__, 2.997813968112619e+12,	"2.99781e+12", "%#5g"},
+  {__LINE__, 3.002097486457961e-17,	"3.00210e-17", "%5.5e"},
+  {__LINE__, 3.006538123158692e+28,	"+3.00654E+28", "%+#G"},
+  {__LINE__, 3.007293721729544e+04,	"30072.937217", "%f"},
+  {__LINE__, 3.008301791944493e-07,	"3.008e-07", "%.3e"},
+  {__LINE__, 3.011742184603817e-17,	"3.011742E-17", "%#E"},
+  {__LINE__, 3.024641547299177e-30,	"3.02464e-30", "%g"},
+  {__LINE__, 3.026525135110198e-28,	"3e-28", "%.0e"},
+  {__LINE__, 3.026768160756558e+20,	"3.02677E+20", "%G"},
+  {__LINE__, 3.031928829940975e+18,	"3031928829940975234.1", "%0.1f"},
+  {__LINE__, 3.039787705138620e+24,	"+3.E+24", "%+#5.G"},
+  {__LINE__, 3.039803824423916e-02,	"0.030398", "%5f"},
+  {__LINE__, 3.041236293199133e-26,	"3.04124e-26", "%g"},
+  {__LINE__, 3.045634954037886e+04,	"30456.3", "%g"},
+  {__LINE__, 3.047528114241850e+25,	"3e+25", "%0.e"},
+  {__LINE__, 3.047958193737501e-24,	"3.04796E-24", "%#G"},
+  {__LINE__, 3.049537324414302e-16,	"3.04954E-16", "%G"},
+  {__LINE__, 3.050500637681798e-30,	"3.0505E-30", "%G"},
+  {__LINE__, 3.051769626625307e-01,	"0.305177", "%f"},
+  {__LINE__, 3.057280201971847e+11,	"+3.05728E+11", "%+.5E"},
+  {__LINE__, 3.060046173306881e-10,	"+3.060046e-10", "%+e"},
+  {__LINE__, 3.069732667347204e+27,	"+3069732667347204291274920251.453295", "%+f"},
+  {__LINE__, 3.075060836786916e-14,	"0.000000", "%f"},
+  {__LINE__, 3.078175179670964e+13,	"3.07818E+13", "%G"},
+  {__LINE__, 3.080305344303183e-21,	"3.08031e-21", "%6g"},
+  {__LINE__, 3.088881497064043e+27,	"+3.088881E+27", "%+3E"},
+  {__LINE__, 3.089196877931209e-20,	"3.089197e-20", "%e"},
+  {__LINE__, 3.091400888880487e-08,	"3e-08", "%2.e"},
+  {__LINE__, 3.093410684178904e+16,	"3.09341e+16", "%g"},
+  {__LINE__, 3.104225344208216e-21,	"0.000000", "%f"},
+  {__LINE__, 3.105843728248599e+13,	"3.e+13", "%#.0g"},
+  {__LINE__, 3.106463071390893e-07,	"0.0000", "%.4f"},
+  {__LINE__, 3.107784123569379e+02,	"+310.778", "%+G"},
+  {__LINE__, 3.110605148983672e-20,	"3.1106051E-20", "%.7E"},
+  {__LINE__, 3.111702418162670e-04,	"0.00031117", "%.5G"},
+  {__LINE__, 3.117610675303153e-17,	"3.11761e-17", "%g"},
+  {__LINE__, 3.123620125717981e+07,	"3.1236e+07", "%2.5g"},
+  {__LINE__, 3.125648558809832e-24,	"+3.125649E-24", "%+#0.6E"},
+  {__LINE__, 3.129025163659283e+10,	"31290251636.592825", "%#f"},
+  {__LINE__, 3.130689119412709e-29,	"+3.131E-29", "%+#.4G"},
+  {__LINE__, 3.135681222132527e+13,	"3.13568E+13", "%G"},
+  {__LINE__, 3.138290485073330e-10,	"3.13829E-10", "%G"},
+  {__LINE__, 3.141255250155306e-12,	"3.14126E-12", "%G"},
+  {__LINE__, 3.143224520918429e+25,	"3.14322E+25", "%#1G"},
+  {__LINE__, 3.144746921366173e-16,	"      0", "%7.f"},
+  {__LINE__, 3.151336678241994e+19,	"+3.15134E+19", "%+G"},
+  {__LINE__, 3.161752935716549e+24,	"3.2E+24", "%2.1E"},
+  {__LINE__, 3.167106521258172e-10,	"+3.167107e-10", "%+e"},
+  {__LINE__, 3.167266522824146e-04,	"3E-04", "%3.E"},
+  {__LINE__, 3.169995217131489e+27,	"3169995217131488907114089670.358226", "%f"},
+  {__LINE__, 3.172117220467692e-21,	"3.1721E-21", "%.5G"},
+  {__LINE__, 3.173824170351611e+02,	" 3e+02", "%6.e"},
+  {__LINE__, 3.186291452544739e-28,	" 0", "%2.f"},
+  {__LINE__, 3.194750094186063e+03,	"+3.194750E+03", "%+E"},
+  {__LINE__, 3.195001037118137e-20,	"0", "%0.0f"},
+  {__LINE__, 3.199271564719560e+02,	"319.927", "%g"},
+  {__LINE__, 3.212803450638544e+20,	"3.2128e+20", "%.6g"},
+  {__LINE__, 3.214502877263883e+24,	"3214502877263882840708220", "%2.f"},
+  {__LINE__, 3.214658414074286e-01,	"+0.321466", "%+#g"},
+  {__LINE__, 3.217627975823673e+00,	"3.217628", "%f"},
+  {__LINE__, 3.218257328710536e-07,	"3.21826e-07", "%6.5e"},
+  {__LINE__, 3.221949479347008e+02,	"322.194948", "%f"},
+  {__LINE__, 3.222862935507443e-14,	"3.222863E-14", "%E"},
+  {__LINE__, 3.223750247261608e+19,	"3.22375e+19", "%g"},
+  {__LINE__, 3.236030335782375e+05,	"3.236030e+05", "%e"},
+  {__LINE__, 3.241078803072735e+19,	"3.24108e+19", "%g"},
+  {__LINE__, 3.248069569167045e-06,	"0.000003", "%#f"},
+  {__LINE__, 3.248148973717269e-15,	"3.24815E-15", "%G"},
+  {__LINE__, 3.251150704311790e+25,	"+3.25115e+25", "%+5g"},
+  {__LINE__, 3.254498593372140e+15,	"+3.2545e+15", "%+g"},
+  {__LINE__, 3.254949399612861e-13,	"+3.255E-13", "%+7.3E"},
+  {__LINE__, 3.255490928554106e-17,	"3.255491e-17", "%e"},
+  {__LINE__, 3.262333894422112e+17,	"326233389442211185.738074", "%0f"},
+  {__LINE__, 3.263923577545217e-24,	"0.0000000", "%.7f"},
+  {__LINE__, 3.267125289609703e+23,	"3.26713e+23", "%#.5e"},
+  {__LINE__, 3.267906049108331e+27,	"3.267906E+27", "%6E"},
+  {__LINE__, 3.269885039157328e+14,	"326988503915732.797722", "%f"},
+  {__LINE__, 3.296011393609953e-27,	"  3E-27", "%7.E"},
+  {__LINE__, 3.296452164568996e+29,	"3.296452E+29", "%E"},
+  {__LINE__, 3.296544736555325e+10,	"+3.29654E+10", "%+.6G"},
+  {__LINE__, 3.301861835798572e+03,	"3301.862", "%4.7g"},
+  {__LINE__, 3.311292283423002e+21,	" 3E+21", "%6.G"},
+  {__LINE__, 3.314868440076262e-10,	"3.3149E-10", "%.5G"},
+  {__LINE__, 3.318057982247451e-13,	"3.3181e-13", "%0.5g"},
+  {__LINE__, 3.318139218410071e-22,	"0.000000", "%f"},
+  {__LINE__, 3.326769904839351e-11,	"+3.3268e-11", "%+0.4e"},
+  {__LINE__, 3.327483659787219e+27,	"+3.32748e+27", "%+g"},
+  {__LINE__, 3.332666889640198e+17,	"333266688964019763.830038", "%f"},
+  {__LINE__, 3.333807449377253e+10,	"+3.33e+10", "%+.3g"},
+  {__LINE__, 3.334572302792625e-09,	"3.334572E-09", "%E"},
+  {__LINE__, 3.337567126586765e-17,	"0.0000000", "%#3.7f"},
+  {__LINE__, 3.340512607683786e-04,	"+3E-04", "%+1.E"},
+  {__LINE__, 3.344911557516870e+04,	"33449.1", "%G"},
+  {__LINE__, 3.346464302017296e+26,	"+3.E+26", "%+#3.G"},
+  {__LINE__, 3.348503166628953e+00,	"+3.348503e+00", "%+e"},
+  {__LINE__, 3.350025157778138e-19,	"3.35003e-19", "%6g"},
+  {__LINE__, 3.352826233035342e+11,	"335282623303.534200", "%7f"},
+  {__LINE__, 3.357174089765502e+10,	"3.35717E+10", "%G"},
+  {__LINE__, 3.369253166475501e+03,	"+3369.25", "%+G"},
+  {__LINE__, 3.371385975046735e+02,	"337.", "%#.0f"},
+  {__LINE__, 3.372532650462104e-04,	"+0.000", "%+.3f"},
+  {__LINE__, 3.376498162710442e-26,	"3.376498e-26", "%e"},
+  {__LINE__, 3.383510307689135e-12,	"  3e-12", "%7.0e"},
+  {__LINE__, 3.388427914080631e-04,	"0.0003", "%2.4f"},
+  {__LINE__, 3.390757423408097e+29,	"3.3908E+29", "%.4E"},
+  {__LINE__, 3.393963140962879e-11,	"3.39396e-11", "%g"},
+  {__LINE__, 3.399245742994444e+24,	"3.399246E+24", "%E"},
+  {__LINE__, 3.417690405546708e-26,	"0.00000", "%4.5f"},
+  {__LINE__, 3.421159360472045e-30,	"3.42116E-30", "%G"},
+  {__LINE__, 3.421973947898887e-06,	"3.42197E-06", "%4G"},
+  {__LINE__, 3.425949002482817e-10,	"+3.42595E-10", "%+G"},
+  {__LINE__, 3.428355150377972e+08,	"3.42836E+08", "%G"},
+  {__LINE__, 3.445035158951526e+15,	"3445035158951526.454985", "%f"},
+  {__LINE__, 3.447363996077534e+28,	"+3e+28", "%+2.e"},
+  {__LINE__, 3.451571062654907e-03,	"0.00345157", "%G"},
+  {__LINE__, 3.452787236877688e+09,	"3.45279e+09", "%g"},
+  {__LINE__, 3.454114826574939e-22,	"3.e-22", "%#3.e"},
+  {__LINE__, 3.455241965974631e-03,	"0.003455", "%#f"},
+  {__LINE__, 3.456190496554365e-18,	"3.E-18", "%#5.E"},
+  {__LINE__, 3.456804565717233e-19,	"+0.000", "%+2.3f"},
+  {__LINE__, 3.457077651539715e-28,	"3.457078E-28", "%E"},
+  {__LINE__, 3.472025705376229e+22,	"3.472e+22", "%7.4g"},
+  {__LINE__, 3.473308270919079e+03,	"3.473308e+03", "%e"},
+  {__LINE__, 3.474468013243007e-30,	"3.47447e-30", "%g"},
+  {__LINE__, 3.477976957097698e+22,	"3.47798e+22", "%g"},
+  {__LINE__, 3.501174631980057e-06,	"4e-06", "%4.g"},
+  {__LINE__, 3.501808481702140e+20,	"3.50181E+20", "%G"},
+  {__LINE__, 3.511760000705324e+14,	"351176000070532.357000", "%f"},
+  {__LINE__, 3.511870226306087e+29,	"3.51187e+29", "%.5e"},
+  {__LINE__, 3.518846859147841e+02,	"+351.885", "%+G"},
+  {__LINE__, 3.521659149753418e+25,	"35216591497534182053641416", "%5.f"},
+  {__LINE__, 3.521721228178747e+21,	"4e+21", "%2.e"},
+  {__LINE__, 3.526696007281458e+22,	"3.5267e+22", "%g"},
+  {__LINE__, 3.535631031379084e-11,	"4e-11", "%5.0g"},
+  {__LINE__, 3.537219665456759e-01,	"0.353722", "%f"},
+  {__LINE__, 3.537252728287785e-09,	"3.537253E-09", "%E"},
+  {__LINE__, 3.542561277796815e-19,	"3.542561E-19", "%E"},
+  {__LINE__, 3.548942336915745e+13,	"3.54894E+13", "%.5E"},
+  {__LINE__, 3.574385715121768e-24,	"3.57439E-24", "%#G"},
+  {__LINE__, 3.578068067760211e-13,	"3.578068E-13", "%E"},
+  {__LINE__, 3.583296432862266e-13,	"3.5833e-13", "%g"},
+  {__LINE__, 3.591567367115590e+19,	"3.59157e+19", "%1g"},
+  {__LINE__, 3.594902312287635e-24,	"3.5949E-24", "%G"},
+  {__LINE__, 3.602929486764515e+12,	"3602929486764.514522", "%#f"},
+  {__LINE__, 3.606699462631472e-01,	"+0.360670", "%+f"},
+  {__LINE__, 3.608605968319811e+17,	"3.60861e+17", "%g"},
+  {__LINE__, 3.608780761567885e+24,	"4e+24", "%0.e"},
+  {__LINE__, 3.623857274715022e-15,	"3.62386E-15", "%1G"},
+  {__LINE__, 3.627346251764432e-22,	"3.627e-22", "%.4g"},
+  {__LINE__, 3.652610391698086e-16,	"0.000000", "%3f"},
+  {__LINE__, 3.657463146689917e-19,	"   0", "%4.0f"},
+  {__LINE__, 3.658538858712938e-15,	"4E-15", "%5.G"},
+  {__LINE__, 3.660337267266058e+16,	"+36603372672660579.034698", "%+f"},
+  {__LINE__, 3.661588742065142e-01,	"0.366159", "%g"},
+  {__LINE__, 3.662296387211376e-25,	"0.000000", "%f"},
+  {__LINE__, 3.668511100303393e-29,	"0.000000", "%7f"},
+  {__LINE__, 3.669499303661920e+06,	"3.6695e+06", "%1.5g"},
+  {__LINE__, 3.676856420121343e-23,	"3.6769e-23", "%0.4e"},
+  {__LINE__, 3.677197473476901e-19,	"+3.6772e-19", "%+g"},
+  {__LINE__, 3.677281754506453e+12,	"+3677281754506.452671", "%+f"},
+  {__LINE__, 3.678420802401506e-19,	"3.67842E-19", "%G"},
+  {__LINE__, 3.679970245325769e+07,	"3.67997e+07", "%g"},
+  {__LINE__, 3.682528947621349e+05,	"4.e+05", "%#5.e"},
+  {__LINE__, 3.688257471304210e+22,	"36882574713042104441740.320908", "%f"},
+  {__LINE__, 3.689129734472166e-01,	"0.368913", "%0.6G"},
+  {__LINE__, 3.693483801463324e+12,	"4E+12", "%3.E"},
+  {__LINE__, 3.694612396584729e-21,	"+3.69461E-21", "%+G"},
+  {__LINE__, 3.706150073392112e-19,	"0.000000", "%2f"},
+  {__LINE__, 3.706824819530577e+21,	"3706824819530576853310.321894", "%f"},
+  {__LINE__, 3.709583789659276e+19,	"+3.709584E+19", "%+#E"},
+  {__LINE__, 3.711137503697284e+22,	"3.7111E+22", "%.5G"},
+  {__LINE__, 3.717307412969522e-22,	"3.717307E-22", "%#E"},
+  {__LINE__, 3.717434999853808e+24,	" 4E+24", "%6.G"},
+  {__LINE__, 3.720761662524312e+14,	"+372076166252431.2285", "%+1.4f"},
+  {__LINE__, 3.721613815237707e-10,	"3.72161e-10", "%g"},
+  {__LINE__, 3.725086467464346e+14,	"3.72509E+14", "%G"},
+  {__LINE__, 3.727427083626536e-15,	"+4E-15", "%+.0G"},
+  {__LINE__, 3.731138322599465e-13,	"3.73114e-13", "%5g"},
+  {__LINE__, 3.732248129614146e-04,	"  4E-04", "%7.E"},
+  {__LINE__, 3.744422223926118e-24,	"3.744422E-24", "%E"},
+  {__LINE__, 3.745595428897916e+21,	"+3745595428897916079336.027906", "%+f"},
+  {__LINE__, 3.751308304055989e-08,	"+3.751308e-08", "%+e"},
+  {__LINE__, 3.755395417696132e-02,	"0.037554", "%f"},
+  {__LINE__, 3.769103881505159e+09,	"3.7691e+09", "%g"},
+  {__LINE__, 3.769535572757430e+00,	"3.769536", "%6.7G"},
+  {__LINE__, 3.770823872348274e-28,	"+0.000000", "%+f"},
+  {__LINE__, 3.771160653578178e+29,	"3.77116e+29", "%g"},
+  {__LINE__, 3.776563752716444e-12,	"4E-12", "%.0E"},
+  {__LINE__, 3.777953798674786e-28,	"3.77795e-28", "%g"},
+  {__LINE__, 3.785994690686598e+28,	"4E+28", "%5.G"},
+  {__LINE__, 3.787487488835162e+01,	"+37.874875", "%+5f"},
+  {__LINE__, 3.788249311173359e-18,	"3.788249E-18", "%E"},
+  {__LINE__, 3.798728360791314e-08,	"3.798728E-08", "%2E"},
+  {__LINE__, 3.799038238867092e+05,	"3.79904E+05", "%.5E"},
+  {__LINE__, 3.799822564549600e+06,	"3.79982E+06", "%.5E"},
+  {__LINE__, 3.804862840499834e-16,	"0", "%1.f"},
+  {__LINE__, 3.805375156822481e+12,	"3805375156822.4814861", "%.7f"},
+  {__LINE__, 3.821612790153376e-17,	"3.821613e-17", "%e"},
+  {__LINE__, 3.825193659558693e+14,	"3.82519E+14", "%#G"},
+  {__LINE__, 3.834180638680996e+17,	"+383418063868099565.638659", "%+f"},
+  {__LINE__, 3.834759760605814e-12,	"3.83476E-12", "%G"},
+  {__LINE__, 3.839786235582770e+16,	"+3.84e+16", "%+0.3g"},
+  {__LINE__, 3.843164462248778e+28,	"3.84316e+28", "%#g"},
+  {__LINE__, 3.845599697858050e+22,	"3.8456E+22", "%G"},
+  {__LINE__, 3.850147271017228e-21,	"3.85e-21", "%.4g"},
+  {__LINE__, 3.850283557812101e+07,	"3.85028E+07", "%G"},
+  {__LINE__, 3.854235609725703e+03,	"3854.24", "%G"},
+  {__LINE__, 3.864901885489405e-15,	"3.8649E-15", "%G"},
+  {__LINE__, 3.868630187629983e-24,	"3.868630e-24", "%e"},
+  {__LINE__, 3.876764606134972e-03,	"+3.8767646e-03", "%+#0.7e"},
+  {__LINE__, 3.884553592855422e+08,	"+3.8845536e+08", "%+4.7e"},
+  {__LINE__, 3.887417494351062e+03,	"3887.42", "%0g"},
+  {__LINE__, 3.887561018972304e+03,	"3887.56", "%G"},
+  {__LINE__, 3.888554801724658e-24,	"3.888555e-24", "%e"},
+  {__LINE__, 3.892806891909861e-01,	"0.389281", "%f"},
+  {__LINE__, 3.914459791345755e+15,	"+3.914460E+15", "%+E"},
+  {__LINE__, 3.918383209642759e+01,	"39.1838", "%#G"},
+  {__LINE__, 3.923970658741865e-10,	"3.92397E-10", "%G"},
+  {__LINE__, 3.928163650272335e+18,	"3928163650272335161.162118", "%f"},
+  {__LINE__, 3.933053127721002e-20,	"3.933053e-20", "%e"},
+  {__LINE__, 3.939306552155218e-29,	"3.93931E-29", "%G"},
+  {__LINE__, 3.953007066379472e+07,	"3.953007E+07", "%E"},
+  {__LINE__, 3.954924824986267e-01,	"3.954925E-01", "%E"},
+  {__LINE__, 3.956156072067987e+15,	"3.956E+15", "%0.4G"},
+  {__LINE__, 3.957756196797224e+22,	"4.0E+22", "%4.1E"},
+  {__LINE__, 3.960011413261009e+27,	"+3960011413261008783592842519.283295", "%+f"},
+  {__LINE__, 3.961789076323378e+20,	"396178907632337828914.614875", "%f"},
+  {__LINE__, 3.961985468081708e-28,	"3.96199E-28", "%1G"},
+  {__LINE__, 3.975007582283812e-27,	"0.000000", "%0.6f"},
+  {__LINE__, 3.987586813142132e+15,	"+3.98759e+15", "%+g"},
+  {__LINE__, 3.992250836957379e+21,	"3.99225E+21", "%0G"},
+  {__LINE__, 3.992985048620057e+00,	"3.9930", "%.4f"},
+  {__LINE__, 4.000000000000000e+02,	"400.00", "%.2f"},
+  {__LINE__, 4.000145414240556e+14,	"4.00015e+14", "%#6g"},
+  {__LINE__, 4.000774453529974e-25,	"4E-25", "%.0E"},
+  {__LINE__, 4.002041494804383e+17,	"4.002041E+17", "%E"},
+  {__LINE__, 4.005505415013214e+17,	" 4E+17", "%6.2G"},
+  {__LINE__, 4.008960306876491e-28,	"0.000", "%.3f"},
+  {__LINE__, 4.032337828117640e+16,	"4.03234E+16", "%G"},
+  {__LINE__, 4.035414597530057e+26,	"403541459753005682387083652.429283", "%f"},
+  {__LINE__, 4.037065874793069e-01,	"0.403707", "%f"},
+  {__LINE__, 4.047856284449970e-14,	"4.04786E-14", "%#G"},
+  {__LINE__, 4.049037221323070e-04,	"4.049037e-04", "%e"},
+  {__LINE__, 4.053458853142009e-07,	"4E-07", "%2.0E"},
+  {__LINE__, 4.056455443275955e-22,	"4.056455e-22", "%e"},
+  {__LINE__, 4.058158020771355e-22,	"4.05816e-22", "%#2g"},
+  {__LINE__, 4.067283508945137e+02,	"+4.07e+02", "%+5.2e"},
+  {__LINE__, 4.072155715199509e+11,	"4.072e+11", "%.4g"},
+  {__LINE__, 4.074643403755990e-22,	"4e-22", "%0.g"},
+  {__LINE__, 4.077450352325251e+08,	"4.1e+08", "%3.2g"},
+  {__LINE__, 4.081492619284916e-08,	"4.081493E-08", "%E"},
+  {__LINE__, 4.083271801996951e-10,	"4.083272E-10", "%#E"},
+  {__LINE__, 4.090188547940879e-15,	"4.090189E-15", "%#E"},
+  {__LINE__, 4.091167728938537e-11,	"4e-11", "%1.g"},
+  {__LINE__, 4.091916745541154e+15,	"4091916745541153.588306", "%f"},
+  {__LINE__, 4.092366122921161e+23,	"4E+23", "%0.E"},
+  {__LINE__, 4.094638368212577e-11,	"4.09464E-11", "%#G"},
+  {__LINE__, 4.097148443124199e-16,	"0.000000", "%f"},
+  {__LINE__, 4.101057893946401e+06,	"4e+06", "%4.g"},
+  {__LINE__, 4.101209521231476e+28,	"41012095212314756409455185348.633677", "%f"},
+  {__LINE__, 4.105683659045903e+05,	"+4.E+05", "%+#1.G"},
+  {__LINE__, 4.111553717385758e-16,	"4.11155e-16", "%g"},
+  {__LINE__, 4.112186409918593e+14,	"+4.11219e+14", "%+g"},
+  {__LINE__, 4.117782144860865e+25,	"4.117782E+25", "%5E"},
+  {__LINE__, 4.119420921722146e-27,	"4.11942e-27", "%g"},
+  {__LINE__, 4.134953783635018e+14,	"+4.1349538e+14", "%+.7e"},
+  {__LINE__, 4.136990822648468e+11,	"4.136991E+11", "%E"},
+  {__LINE__, 4.140475788523046e+14,	"+4E+14", "%+5.G"},
+  {__LINE__, 4.149589679915584e+24,	"4.14959E+24", "%2G"},
+  {__LINE__, 4.151240342256744e-22,	" 0", "%2.f"},
+  {__LINE__, 4.155533104307272e-04,	"+0.000416", "%+f"},
+  {__LINE__, 4.155890511880097e+25,	"4.155891e+25", "%e"},
+  {__LINE__, 4.159907901074450e-19,	"4.159908E-19", "%7E"},
+  {__LINE__, 4.171899783464252e+18,	"4E+18", "%.0E"},
+  {__LINE__, 4.177920266276382e-17,	"+0.0000", "%+1.4f"},
+  {__LINE__, 4.181728014477237e-20,	"4.18173e-20", "%.6g"},
+  {__LINE__, 4.203600495086497e-30,	" 4E-30", "%6.G"},
+  {__LINE__, 4.211166112605717e-08,	"4E-08", "%5.1G"},
+  {__LINE__, 4.219513437404614e+18,	"+4E+18", "%+.0E"},
+  {__LINE__, 4.221426315236785e+08,	"4.221426E+08", "%#E"},
+  {__LINE__, 4.226224756005934e-13,	" 4.e-13", "%#7.g"},
+  {__LINE__, 4.226979046489921e-01,	"4.226979e-01", "%#.6e"},
+  {__LINE__, 4.236283521629158e-08,	"+4.23628E-08", "%+G"},
+  {__LINE__, 4.239850628514233e-07,	"4.23985E-07", "%.6G"},
+  {__LINE__, 4.241177358638621e+04,	"42411.773586", "%2f"},
+  {__LINE__, 4.245306724398964e-13,	"0.000000", "%#f"},
+  {__LINE__, 4.246194290300334e+16,	"42461942903003340.177293", "%2f"},
+  {__LINE__, 4.251238996137952e-05,	"4.25124E-05", "%3G"},
+  {__LINE__, 4.262432542017438e+13,	"42624325420174.375978", "%1f"},
+  {__LINE__, 4.266383084300715e+16,	"4E+16", "%4.G"},
+  {__LINE__, 4.292963398931474e-11,	"4.292963E-11", "%E"},
+  {__LINE__, 4.296530271399131e-29,	"0.000000", "%6f"},
+  {__LINE__, 4.303753949741171e+19,	"4.30375E+19", "%2G"},
+  {__LINE__, 4.303767633827431e-28,	"4.30377e-28", "%g"},
+  {__LINE__, 4.316181911403991e-30,	"4.3162e-30", "%#7.5g"},
+  {__LINE__, 4.318654697213126e-18,	"4.31865e-18", "%g"},
+  {__LINE__, 4.320618603119499e+05,	"432061.860312", "%3f"},
+  {__LINE__, 4.322443609118441e+21,	"4.32244E+21", "%7.5E"},
+  {__LINE__, 4.322522446810708e-15,	"4.32252e-15", "%.6g"},
+  {__LINE__, 4.334728493589115e-18,	"0.000000", "%f"},
+  {__LINE__, 4.335342531476346e-19,	"4.33534E-19", "%G"},
+  {__LINE__, 4.340579325084176e-30,	"4.34058e-30", "%#0.6g"},
+  {__LINE__, 4.340775659883185e+04,	"43407.756599", "%6f"},
+  {__LINE__, 4.361131891528634e-14,	" 4E-14", "%6.G"},
+  {__LINE__, 4.366662624371249e-02,	"+0.04", "%+4.g"},
+  {__LINE__, 4.369919308458348e+28,	"+4.36992e+28", "%+2g"},
+  {__LINE__, 4.369930393192433e-24,	"4.369930e-24", "%e"},
+  {__LINE__, 4.376283118322521e-01,	"0.437628", "%g"},
+  {__LINE__, 4.386868840825930e+19,	"4.3869E+19", "%.5G"},
+  {__LINE__, 4.389349113395235e+05,	"+4.389349e+05", "%+e"},
+  {__LINE__, 4.392447466753053e-08,	"+4.392E-08", "%+.4G"},
+  {__LINE__, 4.394068619246889e-13,	"4.39407e-13", "%6g"},
+  {__LINE__, 4.404889573700147e-09,	"4.404890E-09", "%E"},
+  {__LINE__, 4.410531039373014e+05,	"+4.41e+05", "%+.2e"},
+  {__LINE__, 4.412466606726400e-08,	"   0.0", "%6.1f"},
+  {__LINE__, 4.414693719279123e+17,	"4.414694e+17", "%e"},
+  {__LINE__, 4.417050329080679e-01,	"+0.441705", "%+g"},
+  {__LINE__, 4.419509841929196e-10,	"4.4195098E-10", "%.7E"},
+  {__LINE__, 4.421012777695611e+07,	"+4.42101E+07", "%+0.6G"},
+  {__LINE__, 4.426387732151208e+11,	"4.42639e+11", "%g"},
+  {__LINE__, 4.439567017550398e+26,	"4.439567E+26", "%E"},
+  {__LINE__, 4.446479816166258e-21,	"4.446480e-21", "%0e"},
+  {__LINE__, 4.453486178424380e+05,	"445348.617842", "%f"},
+  {__LINE__, 4.455733696043438e+06,	"4.45573e+06", "%3g"},
+  {__LINE__, 4.455870606312063e+16,	"4.45587e+16", "%g"},
+  {__LINE__, 4.458776435431700e+22,	"4e+22", "%1.g"},
+  {__LINE__, 4.466448605584151e-30,	"0.000000", "%f"},
+  {__LINE__, 4.471063097005706e+16,	"4.47106E+16", "%G"},
+  {__LINE__, 4.482001890035190e-22,	"+4.482E-22", "%+G"},
+  {__LINE__, 4.493246870093631e+05,	"449325", "%1G"},
+  {__LINE__, 4.496089639281023e+17,	"4.49609e+17", "%g"},
+  {__LINE__, 4.515066070117557e+15,	"4.51507e+15", "%g"},
+  {__LINE__, 4.518296460916194e+24,	"+4.5183E+24", "%+G"},
+  {__LINE__, 4.526548719445596e+02,	"452.655", "%6.3f"},
+  {__LINE__, 4.532756455106440e-26,	"4.53e-26", "%4.2e"},
+  {__LINE__, 4.534466782633055e-14,	"4.53447E-14", "%G"},
+  {__LINE__, 4.541313061854649e-14,	"4.54131E-14", "%G"},
+  {__LINE__, 4.541848265404338e+02,	"  5E+02", "%7.G"},
+  {__LINE__, 4.546603085406363e-26,	"5E-26", "%3.G"},
+  {__LINE__, 4.557349604829375e+28,	"+45573496048293753446500886639.", "%+#1.f"},
+  {__LINE__, 4.560736449944898e-27,	"4.56074e-27", "%g"},
+  {__LINE__, 4.563726230559341e-15,	"+0.0", "%+2.1f"},
+  {__LINE__, 4.572650965532532e-26,	"+5E-26", "%+4.G"},
+  {__LINE__, 4.574369572115099e-10,	"+0.000000", "%+2.6f"},
+  {__LINE__, 4.576480601519729e+28,	"+4.576481e+28", "%+e"},
+  {__LINE__, 4.587487640650499e+02,	"+458.75", "%+3.2f"},
+  {__LINE__, 4.598365231538559e-27,	"4.59837E-27", "%G"},
+  {__LINE__, 4.599348244725009e-28,	"+4.5993482e-28", "%+#3.7e"},
+  {__LINE__, 4.599897524047587e+22,	"45998975240475870052136.997401", "%#f"},
+  {__LINE__, 4.605415604725077e-25,	"0.000000", "%f"},
+  {__LINE__, 4.613055015797716e+28,	"4.613055E+28", "%E"},
+  {__LINE__, 4.618715275814238e-10,	"4.618715E-10", "%E"},
+  {__LINE__, 4.619044579489540e-14,	"0.00", "%.2f"},
+  {__LINE__, 4.633693310095410e-20,	"+0.000000", "%+f"},
+  {__LINE__, 4.648505395281916e-28,	"0.000000", "%f"},
+  {__LINE__, 4.651232770446398e+21,	"4.65e+21", "%.2e"},
+  {__LINE__, 4.659743589975352e+28,	"+4.65974e+28", "%+g"},
+  {__LINE__, 4.660181457075208e-13,	"4.66018e-13", "%g"},
+  {__LINE__, 4.669787018529686e+20,	"4.66979e+20", "%g"},
+  {__LINE__, 4.672649286126732e-21,	"4.6726E-21", "%4.5G"},
+  {__LINE__, 4.675431901120643e-11,	"  0", "%3.f"},
+  {__LINE__, 4.684404068169945e+26,	"468440406816994503458317922.2", "%6.1f"},
+  {__LINE__, 4.685438834234642e+19,	"5.E+19", "%#6.G"},
+  {__LINE__, 4.688915890732712e+00,	"+5e+00", "%+2.e"},
+  {__LINE__, 4.692999432046297e+00,	"4.692999E+00", "%E"},
+  {__LINE__, 4.708690772584701e+11,	"4.70869e+11", "%g"},
+  {__LINE__, 4.711821455782105e-11,	"+4.71182e-11", "%+1g"},
+  {__LINE__, 4.712413965116830e-01,	"4.712414E-01", "%E"},
+  {__LINE__, 4.719504715401049e-08,	"0.000000", "%f"},
+  {__LINE__, 4.719767896031655e+27,	"4.71977e+27", "%#g"},
+  {__LINE__, 4.722493017411588e-05,	"0.000047", "%4f"},
+  {__LINE__, 4.729482386761477e+08,	"4.72948e+08", "%1g"},
+  {__LINE__, 4.730102169800602e-06,	"0.000005", "%f"},
+  {__LINE__, 4.743951614209393e+24,	"4.743952E+24", "%#E"},
+  {__LINE__, 4.746077075605921e-16,	"4.746E-16", "%.3E"},
+  {__LINE__, 4.747802537919248e+24,	"4747802537919247889419694", "%4.f"},
+  {__LINE__, 4.754727690703025e-26,	"0", "%0.f"},
+  {__LINE__, 4.756952432926979e-29,	" 0.", "%#3.f"},
+  {__LINE__, 4.758335147956709e+03,	"4758.335148", "%f"},
+  {__LINE__, 4.760141880810268e-25,	"4.760142e-25", "%e"},
+  {__LINE__, 4.767079423650815e-07,	"5.E-07", "%#0.G"},
+  {__LINE__, 4.785662728343338e-28,	"4.78566e-28", "%g"},
+  {__LINE__, 4.787146245774150e-13,	"+4.78715E-13", "%+G"},
+  {__LINE__, 4.787415449888824e-17,	"4.78742e-17", "%3g"},
+  {__LINE__, 4.794589807429657e-05,	"4.79459E-05", "%6G"},
+  {__LINE__, 4.794948299666205e+08,	"4.79495e+08", "%g"},
+  {__LINE__, 4.802292865915992e-04,	"4.802293e-04", "%e"},
+  {__LINE__, 4.802513688198601e+07,	"+4.8e+07", "%+2.3g"},
+  {__LINE__, 4.810456746192536e+06,	"5E+06", "%0.0G"},
+  {__LINE__, 4.820631660081696e+20,	"+4.82063E+20", "%+G"},
+  {__LINE__, 4.827865857270075e-20,	"4.82787e-20", "%g"},
+  {__LINE__, 4.835054268490970e+21,	"4835054268490970308391.752042", "%#f"},
+  {__LINE__, 4.838136770808465e-18,	"4.83814E-18", "%G"},
+  {__LINE__, 4.839342397882353e-26,	"4.839342E-26", "%E"},
+  {__LINE__, 4.845130210072029e-16,	"0", "%1.f"},
+  {__LINE__, 4.845161043167169e-12,	"+4.845e-12", "%+.4g"},
+  {__LINE__, 4.857425142494964e+01,	"48.574251", "%f"},
+  {__LINE__, 4.858118337285513e-10,	"+4.8581e-10", "%+.5g"},
+  {__LINE__, 4.867478343525339e-15,	"+4.867478E-15", "%+E"},
+  {__LINE__, 4.886137001331278e-11,	"0.000000", "%f"},
+  {__LINE__, 4.886835850687998e-20,	"     0", "%6.0f"},
+  {__LINE__, 4.886880737482383e+26,	"488688073748238327453918827.814050", "%4f"},
+  {__LINE__, 4.888812049144075e-22,	"4.888812E-22", "%E"},
+  {__LINE__, 4.895869618002905e+02,	"+489.587", "%+.7g"},
+  {__LINE__, 4.902046593298549e+09,	"  5e+09", "%7.g"},
+  {__LINE__, 4.907918627564751e-05,	"4.91e-05", "%.3g"},
+  {__LINE__, 4.916048355579009e+19,	"49160483555790088772", "%2.f"},
+  {__LINE__, 4.917197806128638e+14,	"+5e+14", "%+5.g"},
+  {__LINE__, 4.918303274189911e+13,	"4.918303e+13", "%e"},
+  {__LINE__, 4.922687970321108e+26,	"492268797032110771993984599.2485", "%0.4f"},
+  {__LINE__, 4.929263362431195e+14,	"4.92926e+14", "%g"},
+  {__LINE__, 4.933385398543267e-17,	"0.000000", "%#f"},
+  {__LINE__, 4.942367126455025e+00,	"    +5", "%+6.f"},
+  {__LINE__, 4.947687486717652e-04,	"0.000495", "%.6f"},
+  {__LINE__, 4.960855200003128e-08,	"+4.960855e-08", "%+e"},
+  {__LINE__, 4.968485435774085e-21,	"0.0000", "%#2.4f"},
+  {__LINE__, 4.972088381506133e+01,	"49.7", "%.1f"},
+  {__LINE__, 4.977561524480392e-15,	"4.977562E-15", "%7E"},
+  {__LINE__, 4.984592111249502e-13,	"5.0e-13", "%.1e"},
+  {__LINE__, 4.997502335602838e-14,	"4.998e-14", "%6.4g"},
+  {__LINE__, 5.001731554335935e-09,	"5.00173e-09", "%g"},
+  {__LINE__, 5.006231697107042e-17,	"5.0062e-17", "%1.5g"},
+  {__LINE__, 5.008035801093423e+24,	"5.008036E+24", "%#E"},
+  {__LINE__, 5.008756965733827e-28,	"5.009E-28", "%.4G"},
+  {__LINE__, 5.009774027622812e+20,	"+5.00977E+20", "%+G"},
+  {__LINE__, 5.010576312346293e+29,	"5.01058E+29", "%G"},
+  {__LINE__, 5.012335250996786e+29,	"5.012335e+29", "%.7g"},
+  {__LINE__, 5.012404365186907e+20,	"5E+20", "%3.2G"},
+  {__LINE__, 5.024670103250229e-01,	"+5.024670E-01", "%+E"},
+  {__LINE__, 5.025765369164560e+03,	"5025.77", "%g"},
+  {__LINE__, 5.027173841003918e+11,	"+5.02717E+11", "%+G"},
+  {__LINE__, 5.032093817639893e-26,	"5e-26", "%3.e"},
+  {__LINE__, 5.039636818525848e-02,	"0.050396", "%#f"},
+  {__LINE__, 5.040626671307691e+23,	"5.040627E+23", "%E"},
+  {__LINE__, 5.040788233368296e-11,	"+5.04079e-11", "%+g"},
+  {__LINE__, 5.040903321336150e-28,	"5.0409E-28", "%G"},
+  {__LINE__, 5.042078512958994e+12,	"5.04208E+12", "%G"},
+  {__LINE__, 5.045957900223303e+15,	"5045957900223303", "%0.f"},
+  {__LINE__, 5.048298764352134e-14,	"5.048299e-14", "%1e"},
+  {__LINE__, 5.048827326763192e+28,	"50488273267631917917697137454.524636", "%f"},
+  {__LINE__, 5.049714558347361e-23,	"5e-23", "%5.0g"},
+  {__LINE__, 5.051509904923853e+16,	"50515099049238534", "%5.f"},
+  {__LINE__, 5.052789863743305e-10,	"5.05279E-10", "%6G"},
+  {__LINE__, 5.057429728861999e-29,	"0.000", "%#1.3f"},
+  {__LINE__, 5.075313093968501e-13,	"+5.07531e-13", "%+g"},
+  {__LINE__, 5.075874503501582e+29,	"5e+29", "%2.e"},
+  {__LINE__, 5.079468079020803e+01,	"50.795", "%.5G"},
+  {__LINE__, 5.086214826494080e-28,	" 0.0", "%4.1f"},
+  {__LINE__, 5.096054881114421e+13,	"5.096e+13", "%.4g"},
+  {__LINE__, 5.099045274853458e-23,	"5.09905E-23", "%0G"},
+  {__LINE__, 5.100248195124433e+00,	"5.100248", "%f"},
+  {__LINE__, 5.101016114276598e-20,	"5e-20", "%4.1g"},
+  {__LINE__, 5.103213528670269e+07,	"51032135.286703", "%6f"},
+  {__LINE__, 5.108373625126768e+08,	"+510837362.512677", "%+f"},
+  {__LINE__, 5.113097157183416e+07,	"5.1131E+07", "%#.4E"},
+  {__LINE__, 5.114452611789777e+08,	"+5.11445E+08", "%+G"},
+  {__LINE__, 5.117099184715288e-16,	"5.1171E-16", "%G"},
+  {__LINE__, 5.119910534665511e-13,	"+5.11991E-13", "%+G"},
+  {__LINE__, 5.121320931953720e+23,	"+5.121321e+23", "%+#e"},
+  {__LINE__, 5.121900318443998e+06,	"5.121900e+06", "%e"},
+  {__LINE__, 5.135698679084286e+00,	"5.1357", "%2g"},
+  {__LINE__, 5.146355903104154e-10,	"+5.14636E-10", "%+.6G"},
+  {__LINE__, 5.148754210958986e-24,	"+5.148754e-24", "%+e"},
+  {__LINE__, 5.156238368448428e+26,	"5e+26", "%5.g"},
+  {__LINE__, 5.159924520667922e-19,	"+5E-19", "%+0.1G"},
+  {__LINE__, 5.159938266135425e-27,	"0.000000", "%f"},
+  {__LINE__, 5.165915205175676e-01,	"5.165915e-01", "%e"},
+  {__LINE__, 5.190205499401547e-11,	"5e-11", "%2.1g"},
+  {__LINE__, 5.193260005542003e+26,	"5.19326e+26", "%#g"},
+  {__LINE__, 5.194732077318269e+08,	"519473207.731827", "%f"},
+  {__LINE__, 5.196394616633798e-19,	"0", "%.0f"},
+  {__LINE__, 5.206753628035638e+19,	"5.20675e+19", "%6.6g"},
+  {__LINE__, 5.207364136540851e-23,	" 0.000", "%6.3f"},
+  {__LINE__, 5.210672737132108e-09,	"5.21067E-09", "%G"},
+  {__LINE__, 5.211423933057123e-20,	"+5.21142E-20", "%+G"},
+  {__LINE__, 5.219749528363367e-27,	"5.219750e-27", "%e"},
+  {__LINE__, 5.228031587478653e-06,	"+5.2E-06", "%+3.1E"},
+  {__LINE__, 5.229303095005359e-25,	"+0.000000", "%+#f"},
+  {__LINE__, 5.234703511938320e-06,	"      0", "%7.f"},
+  {__LINE__, 5.235655046937822e-20,	"5.235655E-20", "%.6E"},
+  {__LINE__, 5.237924986002288e-01,	"+0.52379", "%+.5f"},
+  {__LINE__, 5.249148093603826e+20,	"5.24915E+20", "%0G"},
+  {__LINE__, 5.262680920244596e+16,	"5.26268E+16", "%G"},
+  {__LINE__, 5.267944704715845e-06,	"5.e-06", "%#3.g"},
+  {__LINE__, 5.268543533730505e-08,	"5.26854E-08", "%G"},
+  {__LINE__, 5.275727269515247e-02,	"0.0527573", "%.6g"},
+  {__LINE__, 5.279215316873723e+24,	"5279215316873722585455652.733799", "%f"},
+  {__LINE__, 5.284326985680811e+16,	"52843269856808108.286828", "%6f"},
+  {__LINE__, 5.286192957344040e-10,	"5.3E-10", "%.1E"},
+  {__LINE__, 5.289451976001091e-23,	"5.28945E-23", "%G"},
+  {__LINE__, 5.289512908209300e+09,	"+5.289513e+09", "%+e"},
+  {__LINE__, 5.295696957972123e+11,	"5.296E+11", "%#.3E"},
+  {__LINE__, 5.303584684011050e+16,	"53035846840110503.208621", "%f"},
+  {__LINE__, 5.310315581980172e+23,	"531031558198017172855998", "%4.f"},
+  {__LINE__, 5.317492728410062e-14,	"5.31749e-14", "%7g"},
+  {__LINE__, 5.324506949499409e+18,	"5.3245E+18", "%.5G"},
+  {__LINE__, 5.329238068668336e-20,	"5e-20", "%4.g"},
+  {__LINE__, 5.336050125161774e+14,	"5.33605e+14", "%g"},
+  {__LINE__, 5.349921315003169e-17,	"5.34992E-17", "%.6G"},
+  {__LINE__, 5.355648481782587e-20,	"5.355648e-20", "%e"},
+  {__LINE__, 5.358945557589489e-26,	"+5e-26", "%+0.g"},
+  {__LINE__, 5.359638846465574e+21,	"5.359639E+21", "%E"},
+  {__LINE__, 5.377048469393900e+14,	"5.377E+14", "%.5G"},
+  {__LINE__, 5.387471194156434e+23,	"5.387471E+23", "%.7G"},
+  {__LINE__, 5.401622578962497e-03,	"+0.0054", "%+5.2g"},
+  {__LINE__, 5.406882732497444e-16,	"5.406883E-16", "%E"},
+  {__LINE__, 5.421474560523198e-11,	"+5.42147e-11", "%+g"},
+  {__LINE__, 5.440249323479418e-26,	"5.44025E-26", "%7G"},
+  {__LINE__, 5.440922682921101e-05,	"5e-05", "%.1g"},
+  {__LINE__, 5.444400103673185e-01,	"0.54444", "%G"},
+  {__LINE__, 5.449339470916152e+09,	"5449339470.9162", "%.4f"},
+  {__LINE__, 5.451583259558706e-15,	"5.e-15", "%#4.e"},
+  {__LINE__, 5.460153018660573e+26,	"+546015301866057267687892817.775719", "%+f"},
+  {__LINE__, 5.477591210511918e+08,	"+5.47759E+08", "%+0.5E"},
+  {__LINE__, 5.481665401407188e-02,	"5.481665e-02", "%e"},
+  {__LINE__, 5.482670784411319e-16,	"5E-16", "%4.G"},
+  {__LINE__, 5.487494580636099e+12,	"5.48749e+12", "%g"},
+  {__LINE__, 5.508630369473937e-10,	"5.508630e-10", "%e"},
+  {__LINE__, 5.528898001438273e+20,	"6e+20", "%4.g"},
+  {__LINE__, 5.530331734443152e-24,	" 6e-24", "%6.g"},
+  {__LINE__, 5.531704398969656e-24,	"0.000000", "%f"},
+  {__LINE__, 5.539906569043238e+05,	"+553990.656904", "%+f"},
+  {__LINE__, 5.554571854756323e-08,	"+0.00000", "%+4.5f"},
+  {__LINE__, 5.555155069925145e-28,	"5.55516e-28", "%g"},
+  {__LINE__, 5.555302705075539e-08,	"+5.5553e-08", "%+g"},
+  {__LINE__, 5.563805076159055e-05,	"5.563805e-05", "%e"},
+  {__LINE__, 5.565063508995002e+07,	"5.565E+07", "%.3E"},
+  {__LINE__, 5.566281664807526e-08,	"5.56628E-08", "%G"},
+  {__LINE__, 5.575245679736338e-08,	"5.575246e-08", "%e"},
+  {__LINE__, 5.578254777281501e-21,	"0.", "%#.0f"},
+  {__LINE__, 5.582389275770848e-01,	"  0.6", "%5.G"},
+  {__LINE__, 5.592215029176133e-04,	"0.00056", "%.2g"},
+  {__LINE__, 5.593536789867047e-25,	"5.59354e-25", "%g"},
+  {__LINE__, 5.605652054074862e-03,	"   0.006", "%8.G"},
+  {__LINE__, 5.606982382643258e+20,	"+5.60698E+20", "%+G"},
+  {__LINE__, 5.614646821116853e-18,	"5.6E-18", "%.2G"},
+  {__LINE__, 5.625586848606565e-11,	"+5.62559E-11", "%+G"},
+  {__LINE__, 5.626300428046732e+26,	"  6e+26", "%7.g"},
+  {__LINE__, 5.638236626881086e-17,	" 6E-17", "%6.G"},
+  {__LINE__, 5.645744817075691e+04,	"5.645745E+04", "%E"},
+  {__LINE__, 5.651410004691736e+06,	"6.E+06", "%#3.E"},
+  {__LINE__, 5.659582345929256e-11,	"+0.000000", "%+f"},
+  {__LINE__, 5.670968861413510e+16,	"+5.67097E+16", "%+G"},
+  {__LINE__, 5.672476851235796e+01,	"+56.724769", "%+0f"},
+  {__LINE__, 5.674563779921248e+28,	" 6E+28", "%6.0G"},
+  {__LINE__, 5.675558529939025e+19,	"5.67556e+19", "%3g"},
+  {__LINE__, 5.676326888314589e-08,	"  6e-08", "%7.g"},
+  {__LINE__, 5.677928507840897e-30,	"5.67793e-30", "%0g"},
+  {__LINE__, 5.686622552402630e-15,	"5.69E-15", "%1.3G"},
+  {__LINE__, 5.710441686922142e-14,	"5.710442E-14", "%E"},
+  {__LINE__, 5.713234603280163e-21,	"0.00000", "%0.5f"},
+  {__LINE__, 5.714968959046963e+12,	"5.71497e+12", "%g"},
+  {__LINE__, 5.722025141555638e-23,	"5.72e-23", "%.2e"},
+  {__LINE__, 5.725398571007033e-09,	"5.7254E-09", "%.6G"},
+  {__LINE__, 5.751604813862738e+18,	"6E+18", "%.1G"},
+  {__LINE__, 5.761025444751985e+20,	"5.76103e+20", "%g"},
+  {__LINE__, 5.762315767948593e+15,	"5.76232e+15", "%4g"},
+  {__LINE__, 5.764528858586032e-15,	"5.764529E-15", "%6.7G"},
+  {__LINE__, 5.766408541535810e-07,	" 6E-07", "%6.1G"},
+  {__LINE__, 5.771831571087174e-01,	"0.577183", "%f"},
+  {__LINE__, 5.790102497364865e-15,	"+5.790102e-15", "%+e"},
+  {__LINE__, 5.790222335547785e-08,	"5.79022e-08", "%0.6g"},
+  {__LINE__, 5.794082127091130e+21,	"5794082127091130018925.468903", "%f"},
+  {__LINE__, 5.804568463644165e+28,	"5.80457e+28", "%g"},
+  {__LINE__, 5.827356651901066e+20,	"582735665190106555400.006982", "%f"},
+  {__LINE__, 5.837553387436408e+18,	"5.837553E+18", "%3E"},
+  {__LINE__, 5.844458110907209e+22,	"5.84446e+22", "%g"},
+  {__LINE__, 5.851672125746866e-19,	"5.85167e-19", "%g"},
+  {__LINE__, 5.868843476784172e-12,	"5.868843e-12", "%1.7g"},
+  {__LINE__, 5.870854146748864e-04,	"0.000587", "%2.3g"},
+  {__LINE__, 5.877787821470433e+01,	"+58.77788", "%+#3.5f"},
+  {__LINE__, 5.881333514866498e+04,	"5.881334E+04", "%E"},
+  {__LINE__, 5.908427816128965e+28,	"+5.908428E+28", "%+E"},
+  {__LINE__, 5.918139800007388e+07,	"59181398.000074", "%f"},
+  {__LINE__, 5.925587467475260e+21,	"5925587467475259551008.548442", "%f"},
+  {__LINE__, 5.930403502679683e-22,	"5.9304E-22", "%.6G"},
+  {__LINE__, 5.961572644847521e+02,	"+596.157", "%+G"},
+  {__LINE__, 5.968917715225198e-21,	"5.96892e-21", "%4g"},
+  {__LINE__, 5.982184454670110e-08,	"0", "%0.f"},
+  {__LINE__, 5.988414319040855e+09,	"6E+09", "%0.G"},
+  {__LINE__, 5.996263783103995e-10,	"5.996264e-10", "%e"},
+  {__LINE__, 6.004634162276014e-18,	"6.00463e-18", "%g"},
+  {__LINE__, 6.018734975519166e-08,	"6.01873E-08", "%G"},
+  {__LINE__, 6.029071822986717e-14,	"0.0000000", "%.7f"},
+  {__LINE__, 6.030392278117406e+23,	"6.030392e+23", "%e"},
+  {__LINE__, 6.034553399237175e-27,	"+6.03455e-27", "%+g"},
+  {__LINE__, 6.034938873443862e+24,	"6034938873443861595546877.651941", "%f"},
+  {__LINE__, 6.038929148003457e-16,	"6.03893e-16", "%g"},
+  {__LINE__, 6.039149626573702e-13,	"6.0391E-13", "%3.5G"},
+  {__LINE__, 6.041247664739301e+29,	"6.041248E+29", "%3E"},
+  {__LINE__, 6.044220746789781e+20,	"+6.04422e+20", "%+g"},
+  {__LINE__, 6.045775647107433e+19,	"6E+19", "%2.G"},
+  {__LINE__, 6.051917010461611e-05,	"6.05192E-05", "%G"},
+  {__LINE__, 6.059773181566425e+17,	"+605977318156642486", "%+5.f"},
+  {__LINE__, 6.082239575475813e+01,	"+6E+01", "%+.1G"},
+  {__LINE__, 6.093984174629151e+18,	"6.093984e+18", "%e"},
+  {__LINE__, 6.102368380479137e+22,	"6.1E+22", "%.2G"},
+  {__LINE__, 6.103097446204007e+25,	"61030974462040070704915706.301108", "%#0f"},
+  {__LINE__, 6.105244994410556e-24,	"0.0000000", "%2.7f"},
+  {__LINE__, 6.110828906801633e-14,	"+6.110829e-14", "%+3e"},
+  {__LINE__, 6.124439072468681e-30,	"6.12444e-30", "%g"},
+  {__LINE__, 6.127714703273447e-15,	"0", "%0.f"},
+  {__LINE__, 6.128539582408870e-15,	"6.12854e-15", "%g"},
+  {__LINE__, 6.145470264744349e+24,	"6145470264744348654062378.045637", "%f"},
+  {__LINE__, 6.159177701667455e+26,	"615917770166745537352426254.074089", "%#f"},
+  {__LINE__, 6.159348213337442e+17,	"6.15935e+17", "%g"},
+  {__LINE__, 6.161953891020492e-21,	"0.000000", "%f"},
+  {__LINE__, 6.169474192777305e+29,	"+6.169E+29", "%+.4G"},
+  {__LINE__, 6.198519761010651e-15,	"+0", "%+1.f"},
+  {__LINE__, 6.201381824304919e-27,	"    0", "%5.f"},
+  {__LINE__, 6.204387065736372e-18,	"6.204387E-18", "%7E"},
+  {__LINE__, 6.209270088144063e-24,	"0.000000", "%f"},
+  {__LINE__, 6.209871738353546e-20,	"6.20987E-20", "%G"},
+  {__LINE__, 6.222733191871026e+14,	"+6.22273e+14", "%+g"},
+  {__LINE__, 6.234670085354310e+04,	"+62346.700854", "%+f"},
+  {__LINE__, 6.258389346602224e-09,	"6E-09", "%.0G"},
+  {__LINE__, 6.263326582587503e+12,	"6263326582588.", "%#5.f"},
+  {__LINE__, 6.272768026763922e+03,	"+6272.77", "%+g"},
+  {__LINE__, 6.287747868625765e+00,	"6E+00", "%.0E"},
+  {__LINE__, 6.297724027388795e-17,	"+6E-17", "%+3.G"},
+  {__LINE__, 6.309940679156400e+27,	"6.30994e+27", "%6.5e"},
+  {__LINE__, 6.312960327030170e+06,	"+6.312960E+06", "%+E"},
+  {__LINE__, 6.317658179632976e+02,	"+631.766", "%+g"},
+  {__LINE__, 6.321255960699571e-27,	"0.000000", "%f"},
+  {__LINE__, 6.323069932833900e+03,	"6323", "%.4G"},
+  {__LINE__, 6.337027835933034e+21,	"6.33703e+21", "%#g"},
+  {__LINE__, 6.343583177899838e-03,	"0.00634358", "%7G"},
+  {__LINE__, 6.347464241733904e-03,	"6.e-03", "%#0.e"},
+  {__LINE__, 6.352038720353924e+07,	"63520387.203539", "%f"},
+  {__LINE__, 6.355292378565109e+23,	"+635529237856510942350496.407016", "%+f"},
+  {__LINE__, 6.377901944439164e-29,	"0.000", "%2.3f"},
+  {__LINE__, 6.378660255554053e-04,	"6.37866E-04", "%.5E"},
+  {__LINE__, 6.382838195255167e-18,	"0.000000", "%f"},
+  {__LINE__, 6.391046303581911e+22,	"6E+22", "%.0G"},
+  {__LINE__, 6.404812348309621e+22,	"6.404812E+22", "%.7G"},
+  {__LINE__, 6.406154091357119e+16,	"6.40615E+16", "%G"},
+  {__LINE__, 6.419414726557980e+21,	"+6.41941e+21", "%+g"},
+  {__LINE__, 6.432166563008504e+10,	" +6e+10", "%+7.g"},
+  {__LINE__, 6.438463704193190e+19,	"6.438464e+19", "%e"},
+  {__LINE__, 6.445270237908565e+15,	"+6.445270E+15", "%+E"},
+  {__LINE__, 6.445536770502964e+09,	"6.446e+09", "%.3e"},
+  {__LINE__, 6.446614224811444e+28,	"64466142248114444157636171439.662576", "%f"},
+  {__LINE__, 6.457046289718297e+18,	"6457046289718297416.015957", "%4f"},
+  {__LINE__, 6.457682856890173e+01,	"6.457683E+01", "%2E"},
+  {__LINE__, 6.471026352792729e-16,	"+6.47103e-16", "%+g"},
+  {__LINE__, 6.474527749567342e+19,	"6E+19", "%.1G"},
+  {__LINE__, 6.481178401781131e-24,	"+6.48E-24", "%+6.3G"},
+  {__LINE__, 6.490736647261461e-15,	"+6.49074e-15", "%+g"},
+  {__LINE__, 6.493196535069719e+23,	"+6.4932E+23", "%+G"},
+  {__LINE__, 6.500296992935538e-20,	"+0.0", "%+.1f"},
+  {__LINE__, 6.502867735895890e-19,	"+0.000000", "%+6f"},
+  {__LINE__, 6.506627529164683e+14,	"650662752916468", "%5.f"},
+  {__LINE__, 6.511909298966434e-15,	"+6.51191E-15", "%+G"},
+  {__LINE__, 6.514463062693312e+01,	"65.1446", "%G"},
+  {__LINE__, 6.520721469484543e+16,	"6.52072E+16", "%G"},
+  {__LINE__, 6.528064508731680e-05,	"6.528065E-05", "%7E"},
+  {__LINE__, 6.529007214194039e-24,	"0.000000", "%f"},
+  {__LINE__, 6.537822760557410e-23,	"0.000000", "%f"},
+  {__LINE__, 6.552222096390805e+29,	"+6.55222E+29", "%+G"},
+  {__LINE__, 6.554569862717104e+12,	"6.55457E+12", "%G"},
+  {__LINE__, 6.563440840359989e-30,	"7E-30", "%4.G"},
+  {__LINE__, 6.586246985535526e+17,	"6.58625E+17", "%#4G"},
+  {__LINE__, 6.593339522442827e+16,	"6.6E+16", "%#4.1E"},
+  {__LINE__, 6.611179030024350e+02,	"7E+02", "%4.E"},
+  {__LINE__, 6.617541638586767e-10,	"6.617542E-10", "%E"},
+  {__LINE__, 6.619147920886991e-28,	"7e-28", "%.1g"},
+  {__LINE__, 6.622304444772819e-21,	"6.62230E-21", "%#4G"},
+  {__LINE__, 6.634766655157910e+12,	"6634766655158", "%2.f"},
+  {__LINE__, 6.635639771921218e+25,	"+6.63564E+25", "%+G"},
+  {__LINE__, 6.644575305929087e+17,	"+6.64458e+17", "%+g"},
+  {__LINE__, 6.648697591328432e+04,	"6.648698E+04", "%3E"},
+  {__LINE__, 6.665426012448100e+09,	"6.66543E+09", "%G"},
+  {__LINE__, 6.675222780441723e-23,	"6.67522e-23", "%1g"},
+  {__LINE__, 6.689765053880623e+00,	"6.6898", "%.5g"},
+  {__LINE__, 6.693874943680238e+25,	"7.e+25", "%#1.g"},
+  {__LINE__, 6.695033453546435e+19,	"6.695033E+19", "%E"},
+  {__LINE__, 6.720131534244976e+03,	"+6720.132", "%+.3f"},
+  {__LINE__, 6.725287004784564e+19,	"+6.72529e+19", "%+g"},
+  {__LINE__, 6.743599626906313e-18,	"0.0000000", "%7.7f"},
+  {__LINE__, 6.755534260704152e+29,	"7.e+29", "%#5.e"},
+  {__LINE__, 6.761855244766418e-18,	"6.8E-18", "%.2G"},
+  {__LINE__, 6.764974143681080e-02,	"6.765E-02", "%2.3E"},
+  {__LINE__, 6.766924477711975e-17,	"0.000000", "%4f"},
+  {__LINE__, 6.772195434106330e-19,	"6.7722E-19", "%G"},
+  {__LINE__, 6.779433073319225e-23,	"0.00", "%.2f"},
+  {__LINE__, 6.790317710068964e+05,	"6.8e+05", "%.1e"},
+  {__LINE__, 6.791378160292960e+02,	"679.137816", "%f"},
+  {__LINE__, 6.798381262104190e-27,	"0.000000", "%f"},
+  {__LINE__, 6.804165939424860e-14,	"7e-14", "%4.g"},
+  {__LINE__, 6.810668670623699e+11,	"681066867062.369852", "%f"},
+  {__LINE__, 6.838942637635821e-17,	"+6.84e-17", "%+.2e"},
+  {__LINE__, 6.868523988329111e-09,	"+6.868524e-09", "%+e"},
+  {__LINE__, 6.873228061403223e-15,	"6.873228E-15", "%3E"},
+  {__LINE__, 6.879370500093334e-12,	"+0.000000", "%+f"},
+  {__LINE__, 6.891525498686674e-10,	"7e-10", "%0.g"},
+  {__LINE__, 6.923027319286220e+21,	"7.e+21", "%#1.g"},
+  {__LINE__, 6.923565533024560e-11,	"+6.92357e-11", "%+g"},
+  {__LINE__, 6.931415640770737e-24,	"+6.93142e-24", "%+g"},
+  {__LINE__, 6.936582619246057e+09,	"6.936583e+09", "%7e"},
+  {__LINE__, 6.938661496670582e+05,	"693866.1496671", "%2.7f"},
+  {__LINE__, 6.946115378286550e-25,	"0.000000", "%f"},
+  {__LINE__, 6.955823211921219e-09,	"6.95582e-09", "%g"},
+  {__LINE__, 6.962365243425770e+29,	"696236524342577034474288666388.019919", "%7f"},
+  {__LINE__, 6.970432274812882e+05,	"+7e+05", "%+1.0e"},
+  {__LINE__, 6.975784942897122e-13,	"6.975785e-13", "%e"},
+  {__LINE__, 6.976786489904214e-07,	"6.97679E-07", "%3G"},
+  {__LINE__, 6.985245976357042e-05,	"0.00", "%.2f"},
+  {__LINE__, 6.993402879410720e-21,	"6.9934e-21", "%g"},
+  {__LINE__, 7.012183985341519e+28,	"+70121839853415188770213717362", "%+2.f"},
+  {__LINE__, 7.028670648856025e-15,	"7.028671e-15", "%.7g"},
+  {__LINE__, 7.034042985683665e-03,	" 0", "%2.f"},
+  {__LINE__, 7.044054273278726e+18,	"7.044e+18", "%7.4g"},
+  {__LINE__, 7.049706744250734e-06,	"7E-06", "%0.E"},
+  {__LINE__, 7.061982657056197e+13,	"+7.061983e+13", "%+e"},
+  {__LINE__, 7.066873668945899e+21,	"7.06687E+21", "%G"},
+  {__LINE__, 7.087941418633258e+26,	"7.08794E+26", "%G"},
+  {__LINE__, 7.108268134631547e+22,	"7.108268E+22", "%E"},
+  {__LINE__, 7.112095848565475e-19,	"7.1121e-19", "%g"},
+  {__LINE__, 7.116326241291862e+16,	"7.116326e+16", "%e"},
+  {__LINE__, 7.118854843597607e-22,	"0.000000", "%f"},
+  {__LINE__, 7.121423043456375e-27,	"0.000000", "%f"},
+  {__LINE__, 7.131415427096460e-03,	"0.007131", "%3f"},
+  {__LINE__, 7.132023279679892e+22,	"7.e+22", "%#3.e"},
+  {__LINE__, 7.146250280189992e-18,	"0.000000", "%f"},
+  {__LINE__, 7.150059058390724e+03,	"7150.06", "%g"},
+  {__LINE__, 7.161081578177381e-02,	"+0.0716108", "%+G"},
+  {__LINE__, 7.164935125149336e-27,	"7.2E-27", "%#6.2G"},
+  {__LINE__, 7.173125717489549e-10,	"7.173126e-10", "%e"},
+  {__LINE__, 7.174199549624193e+00,	"7.1741995", "%.7f"},
+  {__LINE__, 7.192493588077649e+27,	"7.19249e+27", "%g"},
+  {__LINE__, 7.215209568601445e-06,	"7.215210e-06", "%e"},
+  {__LINE__, 7.238322284100497e+03,	"7238.3", "%.1f"},
+  {__LINE__, 7.239203871123613e+06,	"7239204", "%4.f"},
+  {__LINE__, 7.245809072577019e-09,	"+7.245809E-09", "%+E"},
+  {__LINE__, 7.256275686433336e+03,	"7.256276e+03", "%e"},
+  {__LINE__, 7.265774291605193e+27,	"+7.26577E+27", "%+G"},
+  {__LINE__, 7.287968172227119e-21,	"+7.287968e-21", "%+e"},
+  {__LINE__, 7.306020169678527e+12,	"7E+12", "%2.E"},
+  {__LINE__, 7.315587463572568e-04,	"0.", "%#.0f"},
+  {__LINE__, 7.324627764547963e+09,	"7.324628E+09", "%#E"},
+  {__LINE__, 7.331904966719081e-06,	"+7.3319E-06", "%+G"},
+  {__LINE__, 7.334448152798243e-02,	"0.07", "%0.g"},
+  {__LINE__, 7.334487195961240e-01,	"+0.733449", "%+#g"},
+  {__LINE__, 7.381283575515707e+13,	"7.381284E+13", "%E"},
+  {__LINE__, 7.394854567245476e-11,	"0.000000", "%7f"},
+  {__LINE__, 7.401950211415377e-08,	" 7e-08", "%6.e"},
+  {__LINE__, 7.409023867864680e+03,	"7409.023868", "%#3f"},
+  {__LINE__, 7.411912956257733e-20,	"7e-20", "%0.g"},
+  {__LINE__, 7.445275019272160e+11,	"744527501927.2159511", "%.7f"},
+  {__LINE__, 7.450279765616891e-16,	"7.45028e-16", "%.6g"},
+  {__LINE__, 7.467047411334495e+14,	"7.46705E+14", "%G"},
+  {__LINE__, 7.485628870972725e+28,	"7E+28", "%.0G"},
+  {__LINE__, 7.495391782588563e+11,	"749539178258.856253", "%f"},
+  {__LINE__, 7.495824101611911e+06,	"7.49582e+06", "%.6g"},
+  {__LINE__, 7.499759867592402e+20,	"+749975986759240154100.3", "%+.1f"},
+  {__LINE__, 7.508983397140368e+04,	"75089.8", "%g"},
+  {__LINE__, 7.512585199581016e-27,	"7.512585E-27", "%.6E"},
+  {__LINE__, 7.516831372212545e-29,	"+7.516831e-29", "%+e"},
+  {__LINE__, 7.525789465978582e+00,	"7.52579", "%G"},
+  {__LINE__, 7.528655653725963e+06,	"7.5287e+06", "%3.4e"},
+  {__LINE__, 7.533217421035612e+28,	"75332174210356122046050586504.861712", "%f"},
+  {__LINE__, 7.534147071756384e+03,	"7534.15", "%g"},
+  {__LINE__, 7.542648637430919e-25,	"+0.000000", "%+#f"},
+  {__LINE__, 7.554380140947798e-15,	"  8e-15", "%7.g"},
+  {__LINE__, 7.557366996007743e+25,	"  8E+25", "%7.G"},
+  {__LINE__, 7.579228950138068e+08,	"8e+08", "%3.e"},
+  {__LINE__, 7.579773904052487e-13,	"0.000000", "%3f"},
+  {__LINE__, 7.580377544554059e+27,	"7.58038e+27", "%#g"},
+  {__LINE__, 7.589615147875915e-15,	"7.59E-15", "%.3G"},
+  {__LINE__, 7.593317194045158e-12,	"+0.", "%+#1.f"},
+  {__LINE__, 7.605535657484387e-07,	"7.60554E-07", "%G"},
+  {__LINE__, 7.609171121278006e-08,	"    0", "%5.f"},
+  {__LINE__, 7.612033900317304e-14,	"7.61203e-14", "%g"},
+  {__LINE__, 7.628040858080326e+23,	"+7.62804e+23", "%+g"},
+  {__LINE__, 7.632109382948695e-01,	"0.763211", "%#f"},
+  {__LINE__, 7.633415922627254e+28,	"76334159226272539910951309138.908982", "%#f"},
+  {__LINE__, 7.636190400774419e+22,	"+7.636190E+22", "%+E"},
+  {__LINE__, 7.636228368661314e-23,	"0.000000", "%f"},
+  {__LINE__, 7.653292362739654e-17,	"7.65329E-17", "%#G"},
+  {__LINE__, 7.664044705231460e+03,	"7.664045E+03", "%5E"},
+  {__LINE__, 7.664257283149626e-05,	"7.66426E-05", "%0G"},
+  {__LINE__, 7.668996632821614e-19,	" 0.0", "%4.1f"},
+  {__LINE__, 7.674502669497263e-24,	"7.6745e-24", "%g"},
+  {__LINE__, 7.681870119755193e+12,	"+7.68187e+12", "%+#g"},
+  {__LINE__, 7.693453198401315e+02,	"769.3453198", "%5.7f"},
+  {__LINE__, 7.705080073293603e-29,	"7.705080E-29", "%1E"},
+  {__LINE__, 7.707244083934683e-07,	"7.71E-07", "%2.3G"},
+  {__LINE__, 7.749445584970652e-17,	"7.75E-17", "%6.3G"},
+  {__LINE__, 7.755369447889403e+09,	"7.8e+09", "%#4.2g"},
+  {__LINE__, 7.760378169707072e-06,	"7.76038e-06", "%g"},
+  {__LINE__, 7.763518882114968e-10,	"0.000000", "%f"},
+  {__LINE__, 7.764720069569677e-18,	"0.000000", "%0f"},
+  {__LINE__, 7.768821339438552e-03,	"0.00776882", "%g"},
+  {__LINE__, 7.774767835990679e-29,	"7.774768E-29", "%7E"},
+  {__LINE__, 7.805567188246987e-04,	"0.000780557", "%2G"},
+  {__LINE__, 7.825157442935941e-26,	"0.000000", "%f"},
+  {__LINE__, 7.833373563161910e+29,	"+783337356316190991378789476584.643126", "%+f"},
+  {__LINE__, 7.875872661746674e-16,	"7.875873E-16", "%E"},
+  {__LINE__, 7.880664458920439e-28,	"7.881E-28", "%#0.3E"},
+  {__LINE__, 7.893084198630288e+18,	"7893084198630288206", "%1.f"},
+  {__LINE__, 7.912222737877417e+04,	"79122.2", "%G"},
+  {__LINE__, 7.913004582748724e-26,	"0.000000", "%f"},
+  {__LINE__, 7.913749944463836e+17,	"791374994446383617.230367", "%f"},
+  {__LINE__, 7.923881665760883e-24,	"0.000000", "%f"},
+  {__LINE__, 7.926699779993694e-03,	"0.007927", "%5.6f"},
+  {__LINE__, 7.941991860623354e-20,	"7.941992e-20", "%e"},
+  {__LINE__, 7.942700358097138e+17,	"794270035809713803.587329", "%2f"},
+  {__LINE__, 7.945451569935757e-16,	"7.94545E-16", "%#4.6G"},
+  {__LINE__, 7.948277588625241e-04,	"0", "%.0f"},
+  {__LINE__, 7.952265062569124e+21,	"+7.95227e+21", "%+#g"},
+  {__LINE__, 7.959953534668040e+11,	"8e+11", "%2.e"},
+  {__LINE__, 7.962059154424500e-22,	"7.96206E-22", "%G"},
+  {__LINE__, 7.962856142535673e-26,	"7.9629E-26", "%#.5G"},
+  {__LINE__, 7.966528574505771e+12,	"7.96653e+12", "%g"},
+  {__LINE__, 8.006496880305429e-21,	"8.0065E-21", "%G"},
+  {__LINE__, 8.023374861440542e+06,	"+8023375", "%+6.f"},
+  {__LINE__, 8.041139717082990e-20,	"8.04114e-20", "%g"},
+  {__LINE__, 8.044201752824126e+15,	"8.04420E+15", "%.5E"},
+  {__LINE__, 8.044262927409321e-10,	"+8E-10", "%+2.2G"},
+  {__LINE__, 8.058285708061202e+02,	"+8.058286e+02", "%+e"},
+  {__LINE__, 8.104422320765144e+10,	"8.10442e+10", "%#4g"},
+  {__LINE__, 8.104572628022330e-11,	"0.000000", "%f"},
+  {__LINE__, 8.112156369917432e+15,	"+8.11216E+15", "%+G"},
+  {__LINE__, 8.114566569709531e-18,	"8.11457E-18", "%G"},
+  {__LINE__, 8.114795069552519e+13,	"8.114795E+13", "%E"},
+  {__LINE__, 8.121382719830660e+03,	"8121.382720", "%f"},
+  {__LINE__, 8.125179335533733e-12,	"+8.125179e-12", "%+e"},
+  {__LINE__, 8.126383949107055e+19,	"81263839491070548604.056967", "%f"},
+  {__LINE__, 8.129961701307842e-04,	"+0.00081", "%+5.2g"},
+  {__LINE__, 8.143780077390936e+15,	"8.14378E+15", "%G"},
+  {__LINE__, 8.149891507777399e+16,	"+8E+16", "%+1.G"},
+  {__LINE__, 8.167395708830107e+03,	"8167", "%3.f"},
+  {__LINE__, 8.167703619221975e+01,	"81.677", "%G"},
+  {__LINE__, 8.178463030771759e+06,	"+8.17846E+06", "%+G"},
+  {__LINE__, 8.188188531273697e+12,	"8.18819E+12", "%G"},
+  {__LINE__, 8.189094866416537e+11,	"+8E+11", "%+.1G"},
+  {__LINE__, 8.205086844365809e-18,	"+8.205087E-18", "%+#E"},
+  {__LINE__, 8.205762333408320e-26,	"0.000000", "%f"},
+  {__LINE__, 8.212370598174696e-10,	"8.2124E-10", "%.5G"},
+  {__LINE__, 8.228054316085489e-14,	"0.000000", "%3f"},
+  {__LINE__, 8.244313484402404e-16,	"8.24431e-16", "%g"},
+  {__LINE__, 8.244472235472472e+19,	"8.24447E+19", "%G"},
+  {__LINE__, 8.245421473302411e-09,	"+8.2454e-09", "%+1.5g"},
+  {__LINE__, 8.252286626634840e-22,	"8E-22", "%3.G"},
+  {__LINE__, 8.259969177912707e-19,	"0.000000", "%f"},
+  {__LINE__, 8.265769991725211e+18,	"8.26577e+18", "%.5e"},
+  {__LINE__, 8.293986939496488e+25,	"8.3E+25", "%.1E"},
+  {__LINE__, 8.310348813512608e-23,	"+8.31035e-23", "%+g"},
+  {__LINE__, 8.316951996533247e-20,	"0.000000", "%f"},
+  {__LINE__, 8.318818016883803e+05,	" 8e+05", "%6.1g"},
+  {__LINE__, 8.324896920131877e-13,	"+8.324897e-13", "%+e"},
+  {__LINE__, 8.325228630004624e-03,	"0.0083252", "%5.7f"},
+  {__LINE__, 8.332538660129034e+14,	"8.3e+14", "%5.2g"},
+  {__LINE__, 8.343325212751775e+07,	"8.34333e+07", "%#4g"},
+  {__LINE__, 8.363117398136236e+20,	"+8.36e+20", "%+.3g"},
+  {__LINE__, 8.364181324448165e+27,	"8.36418e+27", "%#g"},
+  {__LINE__, 8.372159259848738e+10,	"8.37216e+10", "%4g"},
+  {__LINE__, 8.379252006152759e-26,	"8.37925e-26", "%g"},
+  {__LINE__, 8.392670395720252e+09,	"8392670395.720252", "%f"},
+  {__LINE__, 8.423360059147756e+05,	"+842336.", "%+#G"},
+  {__LINE__, 8.425921213167943e+09,	"8.425921e+09", "%1.7g"},
+  {__LINE__, 8.431664412515776e-16,	"8.43166E-16", "%#G"},
+  {__LINE__, 8.448608859842500e+02,	"844.861", "%1.3f"},
+  {__LINE__, 8.456292247478771e-14,	"8.45629E-14", "%G"},
+  {__LINE__, 8.460077225296853e-04,	"0.000846008", "%G"},
+  {__LINE__, 8.478635925746218e-10,	"0.000000", "%f"},
+  {__LINE__, 8.492455774427448e+06,	"8.49246e+06", "%g"},
+  {__LINE__, 8.494450528380746e-07,	"8.494451e-07", "%e"},
+  {__LINE__, 8.516435842947605e-23,	"+0.000000", "%+1f"},
+  {__LINE__, 8.519057789029134e-18,	"0.000000", "%0f"},
+  {__LINE__, 8.522602111109066e+18,	" 9.e+18", "%#7.g"},
+  {__LINE__, 8.529176788022152e-24,	"8.529E-24", "%0.4G"},
+  {__LINE__, 8.534979605642793e-07,	"0.000001", "%f"},
+  {__LINE__, 8.546859563634342e-07,	"8.546860E-07", "%E"},
+  {__LINE__, 8.552370027054106e+12,	"9e+12", "%.0g"},
+  {__LINE__, 8.561781328234041e+10,	"8.56178e+10", "%4g"},
+  {__LINE__, 8.562688793145107e-20,	"8.562689e-20", "%1.7g"},
+  {__LINE__, 8.573130147270046e-07,	"  9E-07", "%7.G"},
+  {__LINE__, 8.584571984387802e-18,	"8.5846e-18", "%.5g"},
+  {__LINE__, 8.596407996491291e+11,	"8.596408E+11", "%#E"},
+  {__LINE__, 8.604843726850381e+10,	" 9E+10", "%6.G"},
+  {__LINE__, 8.626884271938994e-23,	"8.62688e-23", "%g"},
+  {__LINE__, 8.631140282429168e+24,	"8631140282429168308908629.", "%#.0f"},
+  {__LINE__, 8.635194331917948e-16,	"8.63519E-16", "%G"},
+  {__LINE__, 8.641417311588688e-24,	"+0.000000", "%+f"},
+  {__LINE__, 8.649120264278466e+26,	"8.65E+26", "%1.3G"},
+  {__LINE__, 8.649745523383894e+06,	"8.649746e+06", "%e"},
+  {__LINE__, 8.654720740091021e+16,	"8.65472e+16", "%g"},
+  {__LINE__, 8.655445556834509e-08,	"9e-08", "%4.g"},
+  {__LINE__, 8.658954696751902e+06,	"8.65895E+06", "%G"},
+  {__LINE__, 8.665712368800818e-10,	"+8.66571E-10", "%+G"},
+  {__LINE__, 8.666937057116442e-10,	"8.666937e-10", "%e"},
+  {__LINE__, 8.670981239765155e+05,	"867098", "%G"},
+  {__LINE__, 8.679631934294932e-25,	"+9.E-25", "%+#0.G"},
+  {__LINE__, 8.683595173050962e-21,	"8.68360E-21", "%#G"},
+  {__LINE__, 8.684938704958039e+25,	"8.684939E+25", "%E"},
+  {__LINE__, 8.686745463281227e-12,	"8.686745E-12", "%5.7G"},
+  {__LINE__, 8.700227628706534e-12,	"8.700228e-12", "%#e"},
+  {__LINE__, 8.705101179577200e+04,	"87051.011796", "%#2f"},
+  {__LINE__, 8.707824829984700e-24,	"9e-24", "%.1g"},
+  {__LINE__, 8.717654041009233e+21,	"+9E+21", "%+6.0E"},
+  {__LINE__, 8.741736299906572e-11,	"8.74174E-11", "%#0G"},
+  {__LINE__, 8.742228350419966e+18,	"+8742228350419965821.060941", "%+f"},
+  {__LINE__, 8.743045146087558e-17,	"+8.74305E-17", "%+2G"},
+  {__LINE__, 8.747820269457588e+18,	"8.74782E+18", "%G"},
+  {__LINE__, 8.756274717008537e-28,	"8.756275E-28", "%E"},
+  {__LINE__, 8.769782309254687e-24,	"+8.769782E-24", "%+2.6E"},
+  {__LINE__, 8.788151659193398e-16,	" 9E-16", "%6.E"},
+  {__LINE__, 8.789514812202340e-07,	"9E-07", "%0.G"},
+  {__LINE__, 8.792657843164822e-07,	"8.79266e-07", "%0g"},
+  {__LINE__, 8.810976223440985e+05,	"881097.622344", "%f"},
+  {__LINE__, 8.822553973113614e+10,	"8.82255E+10", "%G"},
+  {__LINE__, 8.839440421530611e-04,	"0.000883944", "%G"},
+  {__LINE__, 8.842539073558434e-12,	"0", "%1.f"},
+  {__LINE__, 8.882818021261782e-13,	"+8.9e-13", "%+4.2g"},
+  {__LINE__, 8.899833909201039e+05,	"8.8998E+05", "%.5G"},
+  {__LINE__, 8.903167498000181e-13,	"9e-13", "%0.g"},
+  {__LINE__, 8.933727737932164e+09,	"+8933727738", "%+4.f"},
+  {__LINE__, 8.946226267100711e+06,	"8.946E+06", "%1.4G"},
+  {__LINE__, 8.953203780849794e-21,	"8.9532E-21", "%G"},
+  {__LINE__, 8.959934262635649e+28,	"+8.959934e+28", "%+e"},
+  {__LINE__, 8.969485341781558e-25,	"0.000000", "%#f"},
+  {__LINE__, 8.970058187654221e+02,	"897.005819", "%f"},
+  {__LINE__, 8.979846508565979e+02,	"8.979847E+02", "%E"},
+  {__LINE__, 8.984561117901212e+01,	"8.984561E+01", "%E"},
+  {__LINE__, 8.992157765875611e-12,	"8.99216e-12", "%g"},
+  {__LINE__, 9.004487016708012e+01,	"9.004487e+01", "%#e"},
+  {__LINE__, 9.007306978283218e-24,	"9.007307e-24", "%e"},
+  {__LINE__, 9.014546375043562e+17,	"901454637504356171.007203", "%#3f"},
+  {__LINE__, 9.028177786002161e-12,	"9.02818E-12", "%G"},
+  {__LINE__, 9.029635986381795e-02,	"0.09", "%.1g"},
+  {__LINE__, 9.032389962233431e-07,	"+0.000001", "%+f"},
+  {__LINE__, 9.038466945070887e+10,	"+9.038467E+10", "%+E"},
+  {__LINE__, 9.040166964322772e-27,	"9.04017e-27", "%g"},
+  {__LINE__, 9.044627673694681e-11,	"9.04463E-11", "%G"},
+  {__LINE__, 9.045906217628948e+17,	"904590621762894819.823941", "%1f"},
+  {__LINE__, 9.051764975661710e+11,	"9.05176e+11", "%#g"},
+  {__LINE__, 9.053142913711405e+29,	"9.053143e+29", "%#e"},
+  {__LINE__, 9.073185209160657e-19,	"+9.07319e-19", "%+g"},
+  {__LINE__, 9.074372574441451e+02,	"907.437", "%g"},
+  {__LINE__, 9.084624602048136e+08,	"9.084625E+08", "%E"},
+  {__LINE__, 9.088839346363631e+18,	"9.09e+18", "%.2e"},
+  {__LINE__, 9.091945159170871e-15,	"9.09195e-15", "%5g"},
+  {__LINE__, 9.115304318083716e+10,	"9.115304e+10", "%e"},
+  {__LINE__, 9.115978352902710e+28,	"9.11598E+28", "%G"},
+  {__LINE__, 9.121415008221017e-17,	"9.E-17", "%#6.G"},
+  {__LINE__, 9.127270978060388e+18,	"9.E+18", "%#5.G"},
+  {__LINE__, 9.143941729069086e+08,	"9.143942E+08", "%#E"},
+  {__LINE__, 9.162740105978580e-19,	" 9.E-19", "%#7.G"},
+  {__LINE__, 9.221509957559626e-18,	"9.22151e-18", "%g"},
+  {__LINE__, 9.227419774250317e-28,	" 0.", "%#3.f"},
+  {__LINE__, 9.230846660807540e-21,	"0.000000", "%f"},
+  {__LINE__, 9.238091727277130e-06,	"+0.00001", "%+.5f"},
+  {__LINE__, 9.244337357684406e+10,	"9E+10", "%5.G"},
+  {__LINE__, 9.259179793993285e-19,	"  9E-19", "%7.0G"},
+  {__LINE__, 9.274068541525759e-17,	"9.274069e-17", "%e"},
+  {__LINE__, 9.283833535882367e+16,	"9.28383e+16", "%#g"},
+  {__LINE__, 9.295693096364605e+11,	"+9.295693E+11", "%+E"},
+  {__LINE__, 9.301820438602407e+05,	"930182", "%G"},
+  {__LINE__, 9.322805251555376e-29,	"9e-29", "%1.e"},
+  {__LINE__, 9.358443042421307e-27,	"9.35844e-27", "%g"},
+  {__LINE__, 9.372658444745124e-23,	"9.372658e-23", "%e"},
+  {__LINE__, 9.380302971355292e+05,	"938030.3", "%.7g"},
+  {__LINE__, 9.381976354968076e-26,	"+9.382E-26", "%+5.4G"},
+  {__LINE__, 9.391072061980585e-15,	"9.391072E-15", "%E"},
+  {__LINE__, 9.403554117166546e-06,	"0.000009", "%f"},
+  {__LINE__, 9.403712900426614e-28,	"9.40371e-28", "%g"},
+  {__LINE__, 9.419046629820578e+03,	"9419.046630", "%f"},
+  {__LINE__, 9.422344695378412e+22,	"94223446953784115720509.362291", "%f"},
+  {__LINE__, 9.433327680467576e+01,	"9.433328e+01", "%e"},
+  {__LINE__, 9.443975205260596e+20,	"9.44398e+20", "%g"},
+  {__LINE__, 9.445134851965593e-04,	"+9.445135E-04", "%+E"},
+  {__LINE__, 9.448403585149890e+24,	"9e+24", "%0.g"},
+  {__LINE__, 9.463149430113036e+18,	"9.46315e+18", "%g"},
+  {__LINE__, 9.465735160722534e+27,	"+9465735160722534402566452627.070248", "%+f"},
+  {__LINE__, 9.495210794344892e-04,	"0.000950", "%f"},
+  {__LINE__, 9.501916506373814e-25,	"9.50192E-25", "%#G"},
+  {__LINE__, 9.514641335897739e+29,	"9.51464E+29", "%G"},
+  {__LINE__, 9.524633436992819e-04,	" 0.001", "%6.G"},
+  {__LINE__, 9.530925101873022e-18,	"9.530925e-18", "%2e"},
+  {__LINE__, 9.557903833216979e-22,	"9.557904E-22", "%E"},
+  {__LINE__, 9.587709102390903e-01,	" 1", "%2.f"},
+  {__LINE__, 9.592723000828453e-02,	"9.592723E-02", "%5E"},
+  {__LINE__, 9.603430008794172e+27,	"9.60343e+27", "%g"},
+  {__LINE__, 9.622648414989433e-18,	"9.622648e-18", "%1e"},
+  {__LINE__, 9.633326171289319e-23,	"9.633326e-23", "%e"},
+  {__LINE__, 9.662064616152408e+19,	"96620646161524081918.5146393", "%1.7f"},
+  {__LINE__, 9.668544846563163e-23,	"9.668545e-23", "%e"},
+  {__LINE__, 9.691014191346685e+28,	"9.69101E+28", "%G"},
+  {__LINE__, 9.693075414840598e+02,	"+969.308", "%+G"},
+  {__LINE__, 9.695013453291907e-30,	"9.695013e-30", "%5e"},
+  {__LINE__, 9.705983477801926e-24,	"9.70598e-24", "%g"},
+  {__LINE__, 9.709022568030226e-17,	"0.000000", "%f"},
+  {__LINE__, 9.715194901854826e+20,	"9.715195e+20", "%e"},
+  {__LINE__, 9.721011821337717e+16,	"1E+17", "%0.G"},
+  {__LINE__, 9.734895542899672e+14,	"9.734896e+14", "%e"},
+  {__LINE__, 9.741486438769710e-29,	" 1e-28", "%6.g"},
+  {__LINE__, 9.766657482315475e-24,	"9.76666E-24", "%7G"},
+  {__LINE__, 9.767283293054552e-02,	"0.09767", "%5.5f"},
+  {__LINE__, 9.769553159146005e-20,	"9.76955E-20", "%G"},
+  {__LINE__, 9.777220880605434e-10,	"0.00", "%4.2f"},
+  {__LINE__, 9.790290569034575e+20,	"979029056903457473027.", "%#6.f"},
+  {__LINE__, 9.793128245822718e-01,	"0.979313", "%G"},
+  {__LINE__, 9.804758536498200e+08,	"980475853.650", "%.3f"},
+  {__LINE__, 9.816883664191066e-02,	"0.1", "%.0g"},
+  {__LINE__, 9.836109821010300e+25,	"9.83611e+25", "%g"},
+  {__LINE__, 9.846197559631225e+03,	"1E+04", "%2.G"},
+  {__LINE__, 9.863289416819924e+12,	"9.86329e+12", "%g"},
+  {__LINE__, 9.865893798657353e+12,	"9.866e+12", "%0.4g"},
+  {__LINE__, 9.868248446640862e-15,	"0.000000", "%#f"},
+  {__LINE__, 9.869973080775134e+04,	"98699.7", "%G"},
+  {__LINE__, 9.899444006312953e+20,	"1E+21", "%.1G"},
+  {__LINE__, 9.904083146074285e-08,	"9.904083e-08", "%6e"},
+  {__LINE__, 9.909790408255471e+15,	"9909790408255471.305665", "%f"},
+  {__LINE__, 9.930297455798394e-13,	"+9.930297E-13", "%+5.6E"},
+  {__LINE__, 9.933314448709083e-15,	"9.93331E-15", "%#.6G"},
+  {__LINE__, 9.938714530509870e+29,	"9.938715e+29", "%e"},
+  {__LINE__, 9.953892603540162e+07,	"9.95389E+07", "%G"},
+  {__LINE__, 9.962084643867200e+14,	"+996208464386720.038419", "%+f"},
+  {__LINE__, 9.977706708809947e-09,	"9.9777E-09", "%#.4E"},
+#endif
+  {__LINE__, 9.978034352999867e+15,	"9.978034e+15", "%2.6e"},
+  {__LINE__, 9.998315286730175e-30,	"9.998315e-30", "%6e"},
+  {__LINE__, 1.25,			"1.2", "%.1f"},
+  {__LINE__, 11.25,			"11.2", "%.1f"},
+  {__LINE__, 1.75,			"1.8", "%.1f"},
+  {__LINE__, 11.75,			"11.8", "%.1f"},
+  {__LINE__, 16,			"0x1.0p+4", "%.1a"},
+  {__LINE__, 16,			"0x1.00000000000000000000p+4", "%.20a"},
+  {__LINE__, 4444.88888888,		"4445", "%2.F"},
+  {__LINE__, 0.956,			"1", "%.0g"},
+  {__LINE__, 1.0956,			"1.", "%#.0g"},
+  {__LINE__, 0.956,			"1.", "%#.0g"},
+  {__LINE__, 0.0956,			"0.1", "%#.0g"},
+  {__LINE__, 0.00956,			"0.01", "%#.0g"},
+  {__LINE__, 0.000956,			"0.001", "%#.0g"},
+  {__LINE__, 0.000098,			"0.0001", "%#.0g"},
+  {__LINE__, 0.0000996,			"0.00010", "%#.2g"},
+  {__LINE__, 9.999999999999999e-05,	"0.0001", "%g"},
+  {__LINE__, 1.0,			"1.000000e+00", "%e"},
+  {__LINE__, .9999999999999999,		"1.000000e+00", "%e"},
+
+  {__LINE__, 912.98,			"913.0", "%#.4g"},
+  {__LINE__, 50.999999,			"51.000", "%#.5g"},
+  {__LINE__, 0.956,			"1", "%.1g"},
+  {__LINE__, 0.956,			"1.", "%#.1g"},
+  {__LINE__, 0.996,			"1", "%.2g"},
+  {__LINE__, 0.996,			"1.0", "%#.2g"},
+  {__LINE__, 999.98,			"1000", "%.4g"},
+  {__LINE__, 999.98,			"1000.", "%#.4g"},
+  {__LINE__, 999.998,			"1000", "%.5g"},
+  {__LINE__, 999.998,			"1000.0", "%#.5g"},
+  {__LINE__, 999.9998,			"1000", "%g"},
+  {__LINE__, 999.9998,			"1000.00", "%#g"},
+  {__LINE__, 912.98,			"913", "%.4g"},
+  {__LINE__, 50.999999,			"51", "%.5g"},
+
+  {0 }
+
+};
+
+/* matches(s1, s2) is true if s1 is "approximately" equal to s2.
+   Any digits after the first required_precision digits do not have to match.
+ */
+
+int required_precision = 13;
+
+static int
+matches (char *result, const char *desired)
+{
+    int digits_seen = 0;
+    for (;; result++, desired++) {
+	if (*result == *desired) {
+	    if (*result == 0)
+		return 1;
+	    else if (*result >= '0' && *result <= '9')
+		digits_seen++;
+	}
+	else if (digits_seen >= required_precision
+		 && *result >= '0' && *result <= '9'
+		 && *desired >= '0' && *desired <= '9')
+	    continue;
+	else
+	    return 0;
+    }
+}
+
+int main(int argc, char *argv[])
+{
+  int errcount = 0;
+  int testcount = 0;
+  double d;
+#define BSIZE 1024
+  char buffer[BSIZE];
+  sprint_double_type *dptr;
+  for (dptr = sprint_doubles; dptr->line; dptr++)
+    {
+      sprintf (buffer, dptr->format_string, dptr->value);
+      if (!matches(buffer, dptr->result))
+	{
+	  errcount++;
+	  printf(
+   "Error in line %d using \"%s\".  Result is \"%s\"; should be: \"%s\".\n",
+		  dptr->line, dptr->format_string, buffer, dptr->result);
+	}
+
+      sprintf (buffer, "%.999g", dptr->value);
+      sscanf (buffer, "%lg", &d);
+      if (dptr->value != d)
+	{
+	  errcount++;
+	  printf ("Error in line %d.  String is \"%s\", value is %g.\n",
+		  dptr->line, buffer, d);
+	}
+      testcount++;
+    }
+
+  /* And one special test.  */
+  {
+    static const char ref[] = "1.7763568394002504646778106689453125e-15";
+    int i;
+    d = 1.0;
+    for (i = 1; i < 50; ++i)
+      d /= 2;
+    sprintf (buffer, "%.100g", d);
+    if (!matches (buffer, ref))
+      {
+	++errcount;
+	printf (
+    "Error in line %d using \"%s\".  Result is \"%s\"; should be: \"%s\".\n",
+		__LINE__, "%.100g", buffer, ref);
+      }
+  }
+
+  if (errcount == 0)
+    {
+      printf("Encountered no errors in %d tests.\n", testcount);
+      return 0;
+    }
+  else
+    {
+      printf("Encountered %d errors in %d tests.\n",
+	      errcount, testcount);
+      return 1;
+    }
+}
diff --git a/REORG.TODO/stdio-common/tiformat.c b/REORG.TODO/stdio-common/tiformat.c
new file mode 100644
index 0000000000..4d2eeb3002
--- /dev/null
+++ b/REORG.TODO/stdio-common/tiformat.c
@@ -0,0 +1,5070 @@
+#include <stdio.h>
+#include <string.h>
+
+/* Tests taken from Cygnus C library. */
+typedef struct {
+  int line;
+  long value;
+  const char *result;
+  const char *format_string;
+} sprint_int_type;
+
+sprint_int_type sprint_ints[] =
+{
+  {__LINE__, 0x000838d2,	"838d2", "%.4x"},
+  {__LINE__, 0x0063be46,	"63BE46", "%-6X"},
+  {__LINE__, -0x1b236c0,	"-28456640", "%#0.d"},
+  {__LINE__, -0x0000003,	"-3", "% 0d"},
+  {__LINE__, 0x0000ed51,	"ed51", "%2.x"},
+  {__LINE__, -0x00001f2,	"-498", "%1ld"},
+  {__LINE__, 0x0ea3e927,	"EA3E927", "%+X"},
+  {__LINE__, 0xffbef8da,	"FFBEF8DA", "%5X"},
+  {__LINE__, 0x62ff9f56,	"62ff9f56", "%0x"},
+  {__LINE__, 0x00000ad2,	"AD2", "%.0X"},
+  {__LINE__, 0x00000000,	"      ", "% 6.ld"},
+  {__LINE__, 0xffffffff,	"FFFFFFFF", "%1.4X"},
+  {__LINE__, 0x0000208c,	" 208C", "%5X"},
+  {__LINE__, 0x0000003c,	"3c", "%x"},
+  {__LINE__, 0xffff6177,	"0xffff6177", "%+#x"},
+  {__LINE__, 0xffffdc8d,	"ffffdc8d", "%+x"},
+  {__LINE__, 0x00000000,	"0", "%X"},
+  {__LINE__, 0x00002434,	"9268", "%0d"},
+  {__LINE__, 0xd2c72cdb,	"d2c72cdb", "%-x"},
+  {__LINE__, 0xfe38012b,	"0xfe38012b", "%+#7x"},
+  {__LINE__, 0x00000001,	"0001", "%#.4d"},
+  {__LINE__, -0x008525a,	"-0545370", "%06.7ld"},
+  {__LINE__, 0xffffffac,	"ffffffac", "%3.7x"},
+  {__LINE__, 0x007424d2,	"+7611602", "%+ld"},
+  {__LINE__, 0x00001a85,	"1A85", "%.4X"},
+  {__LINE__, -0x0000019,	"-25", "%3.d"},
+  {__LINE__, 0xfffffffe,	"fffffffe", "%-x"},
+  {__LINE__, -0x34473b2,	"-54817714", "% d"},
+  {__LINE__, 0x000000ea,	"234", "%1.ld"},
+  {__LINE__, -0x0000004,	"-4     ", "%-7.ld"},
+  {__LINE__, 0x00006c94,	"27796", "%0d"},
+  {__LINE__, 0x00000001,	"1", "%ld"},
+  {__LINE__, 0x00000619,	"619", "%1x"},
+  {__LINE__, 0x0000209c,	"8348", "%ld"},
+  {__LINE__, -0x327f8ff,	"-52951295", "%-0ld"},
+  {__LINE__, 0xffffff0b,	"FFFFFF0B", "%2.X"},
+  {__LINE__, 0xf199d6ae,	"F199D6AE", "%X"},
+  {__LINE__, 0x3ca5602e,	"1017471022", "%-1.ld"},
+  {__LINE__, -0xfb2080b,	"-263325707", "%3.5d"},
+  {__LINE__, 0x00001cb8,	"7352", "%d"},
+  {__LINE__, 0x00000000,	"0000000", "%3.7d"},
+  {__LINE__, 0xffffff40,	"FFFFFF40", "%+X"},
+  {__LINE__, 0x14664450,	"0x14664450", "%#x"},
+  {__LINE__, 0x0000002e,	"2e", "%1x"},
+  {__LINE__, 0xffffffff,	"ffffffff", "%x"},
+  {__LINE__, 0xffff606a,	"0XFFFF606A", "%#X"},
+  {__LINE__, 0xffffff33,	"0XFFFFFF33", "%#X"},
+  {__LINE__, 0x00000000,	"0", "%d"},
+  {__LINE__, -0x0000012,	"-00018", "%-2.5d"},
+  {__LINE__, 0x0001fbe6,	"130022", "%1.d"},
+  {__LINE__, 0xfff59dd9,	"fff59dd9", "%+x"},
+  {__LINE__, 0x00000002,	"2", "%0.0d"},
+  {__LINE__, 0x00000fe1,	"fe1    ", "%-7.x"},
+  {__LINE__, 0x001f8f6a,	"1F8F6A", "%1.X"},
+  {__LINE__, 0x0000001b,	"000001B", "%04.7X"},
+  {__LINE__, 0x126a2609,	" 308946441", "% 4d"},
+  {__LINE__, 0xffffffe3,	"0XFFFFFFE3", "%+#.1X"},
+  {__LINE__, 0x1858f1c9,	"1858f1c9", "%.3x"},
+  {__LINE__, 0x003fc672,	"3fc672", "%1x"},
+  {__LINE__, 0x00c0bddc,	"12631516", "%#d"},
+  {__LINE__, 0x000006d6,	"1750", "%#d"},
+  {__LINE__, 0x000006a0,	"6A0", "%X"},
+  {__LINE__, 0x000007be,	"7BE", "%X"},
+  {__LINE__, -0x1c7cd1a,	"-29871386", "%ld"},
+  {__LINE__, 0x000000cc,	"204", "%ld"},
+  {__LINE__, 0x000002db,	"731  ", "%-#5d"},
+  {__LINE__, 0xffff67ad,	"FFFF67AD", "% X"},
+  {__LINE__, 0x00000008,	"8", "%d"},
+  {__LINE__, 0xffe07007,	"FFE07007", "%5X"},
+  {__LINE__, -0x0000001,	"     -1", "% 7d"},
+  {__LINE__, 0xfffffffe,	"fffffffe", "%x"},
+  {__LINE__, 0x00027b68,	"+162664", "%+ld"},
+  {__LINE__, 0x0a7c1997,	"+175905175", "%+2ld"},
+  {__LINE__, 0xfe300896,	"fe300896", "%.4x"},
+  {__LINE__, 0x00000537,	"537", "%-0.x"},
+  {__LINE__, 0x3e981779,	"3e981779", "%.6x"},
+  {__LINE__, 0xfffff05e,	"FFFFF05E", "%1.0X"},
+  {__LINE__, -0x07bc0cf,	"-8110287", "%-7d"},
+  {__LINE__, -0x01371bc,	"-1274300", "%.7ld"},
+  {__LINE__, -0x0000013,	"-19", "%.2ld"},
+  {__LINE__, 0x000000d1,	"0xd1", "%#x"},
+  {__LINE__, -0x0000003,	"-3", "%-ld"},
+  {__LINE__, 0xfffffffc,	"FFFFFFFC", "%4.1X"},
+  {__LINE__, 0x00000000,	"0", "%ld"},
+  {__LINE__, 0x0001c8af,	"116911", "%d"},
+  {__LINE__, 0x000048c3,	"48C3", "%X"},
+  {__LINE__, 0x00000079,	"0x0000079", "%-#0.7x"},
+  {__LINE__, 0x0000615a,	" 24922", "% d"},
+  {__LINE__, 0xfffffff5,	"fffffff5", "%x"},
+  {__LINE__, 0x00000308,	"0000308", "%+07.7x"},
+  {__LINE__, 0xfcadc983,	"fcadc983", "%x"},
+  {__LINE__, 0x00000097,	"151", "%#d"},
+  {__LINE__, 0x000001c5,	"453", "%0.2ld"},
+  {__LINE__, 0x00000000,	"00", "%-1.2x"},
+  {__LINE__, 0x00000001,	"+1", "%+02.d"},
+  {__LINE__, 0x01eb4354,	"1EB4354", "% X"},
+  {__LINE__, 0xffffa7d1,	"ffffa7d1", "%5.x"},
+  {__LINE__, 0x0003170e,	"0x3170e", "%#x"},
+  {__LINE__, 0x000001ce,	"1CE", "% .2X"},
+  {__LINE__, 0x3a2991fb,	"975802875", "%d"},
+  {__LINE__, -0xcdad8e2,	"-215668962", "%-d"},
+  {__LINE__, 0xfe0261c3,	"fe0261c3", "%x"},
+  {__LINE__, -0x0006ea7,	"-28327", "% ld"},
+  {__LINE__, 0x032854a3,	"0X32854A3", "% #6X"},
+  {__LINE__, 0x0000004b,	"4b", "%x"},
+  {__LINE__, 0xffff6ca3,	"FFFF6CA3", "%4.X"},
+  {__LINE__, 0x00000000,	"0", "%X"},
+  {__LINE__, 0x00611f04,	"611F04", "%.1X"},
+  {__LINE__, 0x00000000,	"     0", "%#6d"},
+  {__LINE__, 0x0002c711,	"2c711", "%-02.x"},
+  {__LINE__, -0x07a2fe4,	"-8007652", "%d"},
+  {__LINE__, -0x0000547,	"-1351", "%ld"},
+  {__LINE__, 0x00013954,	"0x13954", "%#x"},
+  {__LINE__, -0x00523b7,	"-336823", "%ld"},
+  {__LINE__, -0x00f6c6e,	"-1010798", "%6.ld"},
+  {__LINE__, 0xffea6427,	"FFEA6427", "%3X"},
+  {__LINE__, -0x0000005,	"-5", "%d"},
+  {__LINE__, -0x04fe618,	"-5236248", "% .7d"},
+  {__LINE__, 0xffa80a28,	"ffa80a28", "%-0x"},
+  {__LINE__, 0x00000047,	"71", "%ld"},
+  {__LINE__, 0x001dc6bb,	"1951419", "%#4ld"},
+  {__LINE__, 0x00000868,	"  2152", "%#6d"},
+  {__LINE__, 0x000002fb,	"2fb", "%x"},
+  {__LINE__, 0x00607fa0,	"6324128", "%4d"},
+  {__LINE__, 0xfffed161,	"fffed161", "%x"},
+  {__LINE__, 0x0001c6e4,	" 116452", "% 2.5d"},
+  {__LINE__, 0x0003dda8,	"3DDA8", "%4X"},
+  {__LINE__, 0xfffffff8,	"fffffff8", "%x"},
+  {__LINE__, 0xfacf664a,	"facf664a", "%x"},
+  {__LINE__, 0x000000c1,	"C1", "% 1X"},
+  {__LINE__, 0x0000839c,	"  839C", "%6X"},
+  {__LINE__, 0xfffff69a,	"FFFFF69A", "%X"},
+  {__LINE__, 0x000e5c2e,	"+941102", "%+d"},
+  {__LINE__, -0x0000004,	"-4", "%#d"},
+  {__LINE__, 0x00000000,	"00000", "%#.5ld"},
+  {__LINE__, 0xfffffffe,	"fffffffe", "%3.1x"},
+  {__LINE__, 0x0010ed68,	"1109352", "%-ld"},
+  {__LINE__, 0xffffffe9,	"ffffffe9", "%.6x"},
+  {__LINE__, 0x00000007,	"   7", "% 4.ld"},
+  {__LINE__, 0x0000caba,	"51898", "%ld"},
+  {__LINE__, -0x0000119,	"-281", "% d"},
+  {__LINE__, 0x0c3012a9,	"204477097", "%03.6ld"},
+  {__LINE__, -0x001c98f,	"-117135", "%ld"},
+  {__LINE__, 0x000017b1,	"+6065", "%+d"},
+  {__LINE__, 0x00000001,	"1", "%ld"},
+  {__LINE__, -0x0000019,	"-25", "% .2d"},
+  {__LINE__, 0x0009ae28,	"9AE28", "%X"},
+  {__LINE__, 0xe861c4fe,	"e861c4fe", "%7.x"},
+  {__LINE__, 0xffac88d3,	"FFAC88D3", "%X"},
+  {__LINE__, -0x00005df,	"-01503", "%-5.5ld"},
+  {__LINE__, 0x0000013e,	"318", "%-0d"},
+  {__LINE__, 0x04b6f58f,	"4b6f58f", "%x"},
+  {__LINE__, 0xfffe3978,	"fffe3978", "%+0.6x"},
+  {__LINE__, 0x57ee5244,	"57ee5244", "%+7.4x"},
+  {__LINE__, 0xfffb5610,	"fffb5610", "% 6x"},
+  {__LINE__, 0x00000006,	"      6", "%#7d"},
+  {__LINE__, 0x0000000c,	"0x0000c", "%#.5x"},
+  {__LINE__, -0xec59362,	"-247829346", "%1.7d"},
+  {__LINE__, -0x0000001,	"-1", "%ld"},
+  {__LINE__, -0x0007e4b,	"-32331", "% d"},
+  {__LINE__, 0x0ececa6f,	"248433263", "%0d"},
+  {__LINE__, 0x00000578,	"   578", "%+6.x"},
+  {__LINE__, -0x0000003,	"-3", "%ld"},
+  {__LINE__, 0x000002bb,	"2bb", "% 0x"},
+  {__LINE__, -0x0000006,	"-6", "%-ld"},
+  {__LINE__, 0x000002f9,	"761", "%d"},
+  {__LINE__, 0xffffd736,	"ffffd736", "%3.4x"},
+  {__LINE__, 0x0010ba79,	"1096313", "%7.4d"},
+  {__LINE__, -0x0001244,	"-4676", "%#.1d"},
+  {__LINE__, 0x00000dbe,	"DBE", "%1X"},
+  {__LINE__, -0x0000015,	"-21", "%-0.d"},
+  {__LINE__, 0xffffffff,	"0xffffffff", "%#x"},
+  {__LINE__, -0x6cdf4a3,	"-114160803", "%ld"},
+  {__LINE__, 0x00008ac9,	"8AC9", "%1X"},
+  {__LINE__, 0x00000000,	"00", "%.2X"},
+  {__LINE__, -0x2263dba,	"-36060602", "%5.5d"},
+  {__LINE__, 0x00007da9,	"32169", "%0d"},
+  {__LINE__, 0xfffffff7,	"FFFFFFF7", "% 4.X"},
+  {__LINE__, 0xfbf36cca,	"FBF36CCA", "%.1X"},
+  {__LINE__, 0x00000040,	"64", "%.0ld"},
+  {__LINE__, 0x0000001c,	" 28", "% d"},
+  {__LINE__, 0xfffffadb,	"0xfffffadb", "%#.5x"},
+  {__LINE__, 0x0eb95847,	"247027783", "%d"},
+  {__LINE__, 0xfffd7030,	"FFFD7030", "%+02X"},
+  {__LINE__, 0x00000005,	"00005", "%.5x"},
+  {__LINE__, 0xfffffffd,	"FFFFFFFD", "%X"},
+  {__LINE__, 0x98975b15,	"98975B15", "%02X"},
+  {__LINE__, -0x0000034,	"   -52", "%6ld"},
+  {__LINE__, 0xffd7d0cc,	"ffd7d0cc", "% 5.6x"},
+  {__LINE__, 0xffffffa6,	"FFFFFFA6", "%X"},
+  {__LINE__, 0xfff27132,	"fff27132", "%x"},
+  {__LINE__, -0x065b74d,	"-6666061", "%+6ld"},
+  {__LINE__, 0xf6ac99d6,	"0XF6AC99D6", "%#X"},
+  {__LINE__, 0xfffff4bd,	"FFFFF4BD", "%X"},
+  {__LINE__, 0xfffffb62,	"FFFFFB62", "%6X"},
+  {__LINE__, 0xf8434543,	"f8434543", "%-0x"},
+  {__LINE__, 0x0002b374,	"0x2b374", "%-#6x"},
+  {__LINE__, 0x00000000,	"0", "%x"},
+  {__LINE__, 0xffb5751d,	"ffb5751d", "%-3.x"},
+  {__LINE__, 0x34ea7347,	"887780167", "%d"},
+  {__LINE__, -0x008f457,	"-586839", "%0ld"},
+  {__LINE__, 0x00000001,	"   1", "%#4d"},
+  {__LINE__, 0xc32d7ad4,	"c32d7ad4", "%0x"},
+  {__LINE__, 0xfffffb80,	"FFFFFB80", "%-.2X"},
+  {__LINE__, 0x00000756,	"756   ", "%-6x"},
+  {__LINE__, 0xfffb020f,	"FFFB020F", "%+.2X"},
+  {__LINE__, -0xe68619f,	"-241721759", "%#1.6ld"},
+  {__LINE__, 0x180166cd,	"402745037", "%3.7ld"},
+  {__LINE__, -0x0000001,	"-1", "%+00d"},
+  {__LINE__, 0xfdbc3611,	"fdbc3611", "%x"},
+  {__LINE__, -0x000005b,	"-91", "%d"},
+  {__LINE__, 0xffffe77f,	"ffffe77f", "%x"},
+  {__LINE__, -0x0000019,	"-25", "%ld"},
+  {__LINE__, 0x00000016,	"22", "%#d"},
+  {__LINE__, -0x0000025,	"-37", "%ld"},
+  {__LINE__, 0xffffe43f,	"ffffe43f", "%x"},
+  {__LINE__, 0x000050a5,	"00050a5", "%.7x"},
+  {__LINE__, 0x0000000c,	"   12", "% 5.ld"},
+  {__LINE__, -0x001faff,	"-129791", "%4d"},
+  {__LINE__, 0x239d7cf2,	"597523698", "%0.7ld"},
+  {__LINE__, 0x04092183,	"4092183", "% 7X"},
+  {__LINE__, -0x0043498,	"-275608", "%-ld"},
+  {__LINE__, -0x0018dbe,	"-101822", "%d"},
+  {__LINE__, 0xff3e09c3,	"FF3E09C3", "%X"},
+  {__LINE__, 0x00000000,	"0", "%d"},
+  {__LINE__, -0x15d57558,	"-366310744", "%+0.7ld"},
+  {__LINE__, 0x0004fb06,	"326406", "%0.0d"},
+  {__LINE__, 0x00000119,	"0X119", "%#X"},
+  {__LINE__, -0x14c53e19,	"-348470809", "%d"},
+  {__LINE__, 0x00000019,	"0000019", "% .7X"},
+  {__LINE__, -0x0000654,	"-1620", "%0.4ld"},
+  {__LINE__, -0xde5899b,	"-233146779", "%#.1d"},
+  {__LINE__, 0x0013c1f0,	"1294832", "%4.ld"},
+  {__LINE__, 0x0a9fe761,	"A9FE761", "%X"},
+  {__LINE__, -0x00000e5,	"-229", "%1ld"},
+  {__LINE__, 0x00000161,	"000353", "%.6ld"},
+  {__LINE__, 0x6b04e4bd,	"0x6b04e4bd", "%#7.0x"},
+  {__LINE__, -0x0000ef0,	"-3824 ", "%-6.ld"},
+  {__LINE__, -0x026306e,	"-2502766", "%ld"},
+  {__LINE__, 0x00000000,	"0", "%-X"},
+  {__LINE__, 0xfffffe1f,	"fffffe1f", "%-x"},
+  {__LINE__, 0x0003aecf,	" 241359", "% 2.1ld"},
+  {__LINE__, -0x0000014,	"-20", "%d"},
+  {__LINE__, 0x00000002,	"0002", "%-.4ld"},
+  {__LINE__, 0xfffff662,	"0XFFFFF662", "% #.6X"},
+  {__LINE__, 0x00000006,	"6", "%0x"},
+  {__LINE__, 0x0001f4c4,	" 128196", "% 0d"},
+  {__LINE__, 0xffffffff,	"FFFFFFFF", "%5X"},
+  {__LINE__, 0x05605e38,	"90201656", "%ld"},
+  {__LINE__, 0xffffffde,	"0XFFFFFFDE", "% #X"},
+  {__LINE__, 0x000001e0,	"    1e0", "%7.x"},
+  {__LINE__, 0x00000007,	"7", "%X"},
+  {__LINE__, 0x00000001,	"+1", "%+d"},
+  {__LINE__, 0xffffffe0,	"FFFFFFE0", "% X"},
+  {__LINE__, 0xffd7f77a,	"FFD7F77A", "%+00.1X"},
+  {__LINE__, 0xfffffffe,	"0xfffffffe", "%-#x"},
+  {__LINE__, 0x01b0a63b,	"1b0a63b", "%x"},
+  {__LINE__, -0x06554b7,	"-6640823", "%d"},
+  {__LINE__, 0xfffffff8,	"fffffff8", "%x"},
+  {__LINE__, 0x00000b2d,	"b2d", "%x"},
+  {__LINE__, -0x2664ba2,	"-40258466", "%-d"},
+  {__LINE__, 0xfffffffe,	"FFFFFFFE", "%X"},
+  {__LINE__, -0x0000552,	" -1362", "%6.2ld"},
+  {__LINE__, 0x00000009,	" 00009", "%6.5x"},
+  {__LINE__, 0x00035c72,	"220274", "%05.ld"},
+  {__LINE__, -0x014d09d,	"-1364125", "%d"},
+  {__LINE__, -0x0000002,	"  -2", "% 4d"},
+  {__LINE__, 0x00000001,	"1", "%+X"},
+  {__LINE__, 0x00000028,	"28", "%X"},
+  {__LINE__, 0xf25c9eb2,	"F25C9EB2", "%7.X"},
+  {__LINE__, -0x7ae4b62,	"-128863074", "%d"},
+  {__LINE__, 0x00630d87,	"630D87", "%2X"},
+  {__LINE__, 0x000000f8,	"F8", "%-X"},
+  {__LINE__, 0xfffffff9,	"FFFFFFF9", "%X"},
+  {__LINE__, -0x0000007,	"-7", "%0d"},
+  {__LINE__, -0x2518fcd,	"-38899661", "% 3ld"},
+  {__LINE__, 0xfffff4b4,	"FFFFF4B4", "%-5X"},
+  {__LINE__, 0x01cc36c8,	"30160584", "%ld"},
+  {__LINE__, 0xffffffff,	"ffffffff", "%-x"},
+  {__LINE__, 0x0000000b,	"    11", "%6.ld"},
+  {__LINE__, 0x00010d55,	" 68949", "% d"},
+  {__LINE__, -0x0c01306,	"-12587782", "% 6.1ld"},
+  {__LINE__, 0x001719d7,	"1513943", "%.1ld"},
+  {__LINE__, -0x0000002,	" -2", "%+3.ld"},
+  {__LINE__, 0x0000018e,	"398", "%d"},
+  {__LINE__, 0x000000a6,	"0xa6", "%-#3x"},
+  {__LINE__, 0x00006f66,	" 28518", "% #d"},
+  {__LINE__, 0x0000032a,	"32A", "%X"},
+  {__LINE__, -0x0000145,	"-325", "%0d"},
+  {__LINE__, 0xffffffff,	"ffffffff", "%2.x"},
+  {__LINE__, 0x00287171,	"2650481", "%ld"},
+  {__LINE__, 0x0000004b,	"+75", "%+02.ld"},
+  {__LINE__, 0xfffffff8,	"fffffff8", "%-0x"},
+  {__LINE__, 0x00000064,	"64", "% X"},
+  {__LINE__, 0xfffffca2,	"fffffca2", "%0x"},
+  {__LINE__, 0x000010b6,	"10b6", "% .0x"},
+  {__LINE__, -0x003806f,	"-229487", "%7d"},
+  {__LINE__, -0x00000b7,	"-183", "%3ld"},
+  {__LINE__, 0xffffe5ba,	"FFFFE5BA", "%0X"},
+  {__LINE__, 0x001f0da8,	"1f0da8", "%+x"},
+  {__LINE__, 0x000ce185,	"844165", "%0ld"},
+  {__LINE__, 0x00000c96,	"3222", "%0d"},
+  {__LINE__, -0x0013099,	"-77977", "%1.ld"},
+  {__LINE__, -0x5f3c47a,	"-99861626", "%.6ld"},
+  {__LINE__, 0x00000cbf,	"  CBF", "%+5.X"},
+  {__LINE__, -0x0000001,	"-1", "%+ld"},
+  {__LINE__, 0x0d793bc3,	"d793bc3", "%6.x"},
+  {__LINE__, 0xfffffffd,	"0xfffffffd", "%+#x"},
+  {__LINE__, -0x0000070,	"  -112", "%6.d"},
+  {__LINE__, 0xfffffb3f,	"FFFFFB3F", "%.7X"},
+  {__LINE__, 0x037dfc78,	"0X37DFC78", "%#X"},
+  {__LINE__, 0x00009ba5,	"39845", "%3ld"},
+  {__LINE__, 0x0000004a,	"4a", "%0x"},
+  {__LINE__, 0xffffff81,	"ffffff81", "%5.5x"},
+  {__LINE__, -0x86ef222,	"-141488674", "%ld"},
+  {__LINE__, -0xac5531e,	"-180704030", "% 4ld"},
+  {__LINE__, 0x00002493,	"2493", "%+X"},
+  {__LINE__, 0xffffffff,	"FFFFFFFF", "%1.3X"},
+  {__LINE__, 0x0005c875,	"378997", "%.0ld"},
+  {__LINE__, 0x0301d345,	"50451269", "%d"},
+  {__LINE__, 0xfff6b589,	"fff6b589", "%2.4x"},
+  {__LINE__, -0x00001db,	"-475   ", "%-7.0d"},
+  {__LINE__, 0x0000d1e7,	"0x000d1e7", "%#2.7x"},
+  {__LINE__, 0xf4c4d2bb,	"f4c4d2bb", "%.6x"},
+  {__LINE__, 0x00c89f54,	"13147988", "%ld"},
+  {__LINE__, -0x6599253c,	"-1704535356", "%+ld"},
+  {__LINE__, 0xab7d61ea,	"ab7d61ea", "% x"},
+  {__LINE__, 0x00000006,	"6", "%1ld"},
+  {__LINE__, 0xffff5ab7,	"ffff5ab7", "%0x"},
+  {__LINE__, -0x1cfeca5b,	"-486459995", "%#ld"},
+  {__LINE__, 0x000000f3,	"    f3", "% 6.x"},
+  {__LINE__, -0x0000021,	"-33", "%d"},
+  {__LINE__, 0xfe7246ac,	"fe7246ac", "%-5.x"},
+  {__LINE__, 0x00000017,	"00017", "%-.5X"},
+  {__LINE__, -0x0cc250a,	"-13378826", "%0.0d"},
+  {__LINE__, -0x00010ae,	"-04270", "%#.5ld"},
+  {__LINE__, -0x7952c8b,	"-127216779", "% ld"},
+  {__LINE__, 0x0002a53e,	"173374", "%4.0d"},
+  {__LINE__, 0x03801bbf,	"3801BBF", "%0X"},
+  {__LINE__, 0x0368645f,	"+57173087", "%+#0.6ld"},
+  {__LINE__, 0x0000002f,	"47", "%d"},
+  {__LINE__, 0x00000003,	"3", "%x"},
+  {__LINE__, 0x000005f7,	"5F7", "%0X"},
+  {__LINE__, -0x06e5e76,	"-7233142", "% 0.1ld"},
+  {__LINE__, 0x053da936,	"53da936", "%1.4x"},
+  {__LINE__, -0x0df0c2f,	"-14617647", "%.5ld"},
+  {__LINE__, 0xfffffffd,	"FFFFFFFD", "%-0X"},
+  {__LINE__, 0x000104bf,	"104BF", "%X"},
+  {__LINE__, 0x000353fc,	"353FC", "%X"},
+  {__LINE__, 0x182a18dc,	"+405412060", "%+ld"},
+  {__LINE__, 0x0000000e,	" 14", "% 2d"},
+  {__LINE__, -0x0000091,	"-145", "%+ld"},
+  {__LINE__, 0x0029a9d6,	"2730454", "%d"},
+  {__LINE__, 0x00009d57,	"009d57", "% .6x"},
+  {__LINE__, 0x4c4d4f79,	"1280135033", "%5.ld"},
+  {__LINE__, -0x000075b,	"-1883", "% 03d"},
+  {__LINE__, -0x001b718,	"-112408", "%+d"},
+  {__LINE__, 0xfffaaf57,	"FFFAAF57", "%+1X"},
+  {__LINE__, 0x00f44e52,	"F44E52", "% 4X"},
+  {__LINE__, 0x00000002,	"0X2", "%#X"},
+  {__LINE__, 0x000a85e9,	"A85E9", "%+0X"},
+  {__LINE__, 0xffff70bb,	"ffff70bb", "%6x"},
+  {__LINE__, 0x00004e15,	"4e15", "%x"},
+  {__LINE__, 0x000eeb60,	" 977760", "% ld"},
+  {__LINE__, 0xfffffff1,	"fffffff1", "%0x"},
+  {__LINE__, -0x294d7e2,	"-43309026", "% 02.d"},
+  {__LINE__, 0x0001aaeb,	"0109291", "%02.7ld"},
+  {__LINE__, 0x000a01fc,	"0xa01fc", "%-#.5x"},
+  {__LINE__, 0x002c3c30,	"+2898992", "%+#d"},
+  {__LINE__, 0x015667ae,	"+22439854", "%+5ld"},
+  {__LINE__, -0x05af42b,	"-5960747", "%+d"},
+  {__LINE__, 0x0000be36,	"be36", "%+2x"},
+  {__LINE__, 0x005e3f67,	"5e3f67", "% x"},
+  {__LINE__, -0x0000020,	"-32", "% ld"},
+  {__LINE__, -0x0003617,	"-13847", "% d"},
+  {__LINE__, 0x00000014,	"14  ", "%-4.X"},
+  {__LINE__, 0x00000001,	"001", "%0.3d"},
+  {__LINE__, 0xfffffea9,	"fffffea9", "%3.x"},
+  {__LINE__, 0xe447099e,	"E447099E", "%0X"},
+  {__LINE__, 0x00049c71,	"302193", "%d"},
+  {__LINE__, 0x76356ed3,	"0x76356ed3", "%#4.1x"},
+  {__LINE__, 0x00000005,	"  0X5", "%#5X"},
+  {__LINE__, 0x00004da2,	"0x004da2", "%#1.6x"},
+  {__LINE__, 0xffdfb36c,	"FFDFB36C", "%4X"},
+  {__LINE__, 0xffffe3c5,	"FFFFE3C5", "%+4.X"},
+  {__LINE__, 0x00000006,	"6", "%0x"},
+  {__LINE__, -0x914ff17,	"-152370967", "% .5ld"},
+  {__LINE__, -0x0000002,	"-2", "%0ld"},
+  {__LINE__, 0xffffff36,	"FFFFFF36", "% 2X"},
+  {__LINE__, -0x0bb1598,	"-12260760", "%-ld"},
+  {__LINE__, 0x00006db5,	"28085", "%0.5ld"},
+  {__LINE__, 0xffffffff,	"ffffffff", "%x"},
+  {__LINE__, -0x0000001,	"-1", "%0ld"},
+  {__LINE__, 0x0fa37e79,	"FA37E79", "%1.X"},
+  {__LINE__, -0x00000ac,	"-172", "%.2d"},
+  {__LINE__, 0xffffffd8,	"ffffffd8", "%.7x"},
+  {__LINE__, -0x000a513,	"-42259", "%ld"},
+  {__LINE__, 0x00001294,	"4756", "%2ld"},
+  {__LINE__, -0x56bae0b4,	"-1455087796", "%.1ld"},
+  {__LINE__, 0x3b26d5fa,	"3b26d5fa", "%x"},
+  {__LINE__, 0xff657013,	"ff657013", "%x"},
+  {__LINE__, -0x00005f5,	"-1525", "%0.0ld"},
+  {__LINE__, -0x0000001,	"     -1", "% 7d"},
+  {__LINE__, -0x02396b2,	"-2332338", "%d"},
+  {__LINE__, -0x0000003,	"-000003", "%+7.6d"},
+  {__LINE__, 0xfd3ec7c1,	"fd3ec7c1", "% 3.4x"},
+  {__LINE__, -0x076e338,	"-7791416", "%0.d"},
+  {__LINE__, -0x000015e,	"-350", "%3ld"},
+  {__LINE__, 0x0a0f0b71,	"a0f0b71", "%x"},
+  {__LINE__, 0xfffe00ba,	"FFFE00BA", "%X"},
+  {__LINE__, 0x00036bd8,	" 36bd8", "% 06.x"},
+  {__LINE__, 0xfffff2df,	"0XFFFFF2DF", "%#2.6X"},
+  {__LINE__, 0x004687fb,	"4622331", "%ld"},
+  {__LINE__, -0x0000331,	"  -817", "%+6.d"},
+  {__LINE__, 0xfcd5b090,	"fcd5b090", "%+0x"},
+  {__LINE__, 0x0334f94c,	"334F94C", "%.6X"},
+  {__LINE__, 0x00000bce,	"3022", "%.3ld"},
+  {__LINE__, 0xf28d9ddd,	"f28d9ddd", "%x"},
+  {__LINE__, 0x00003a79,	" 14969", "% ld"},
+  {__LINE__, 0xfffffffe,	"FFFFFFFE", "%.7X"},
+  {__LINE__, 0x0043d7fe,	"43D7FE", "%X"},
+  {__LINE__, -0x0000b82,	"-2946", "%-ld"},
+  {__LINE__, -0x00e29d8,	"-928216", "%d"},
+  {__LINE__, 0xffffffec,	"ffffffec", "%-x"},
+  {__LINE__, 0x0aeaf557,	"0xaeaf557", "%-#x"},
+  {__LINE__, 0x00c07fe6,	"C07FE6", "%X"},
+  {__LINE__, 0x307414d8,	"307414d8", "% 0x"},
+  {__LINE__, -0x045ef67,	"-4583271", "%d"},
+  {__LINE__, 0x0000024a,	" 0000586", "% .7d"},
+  {__LINE__, 0xfffffc42,	"fffffc42", "%x"},
+  {__LINE__, 0xfc38c249,	"fc38c249", "%5.x"},
+  {__LINE__, -0x000d096,	"-53398", "%-d"},
+  {__LINE__, -0x213a345,	"-34841413", "%ld"},
+  {__LINE__, -0x0000130,	"-304", "%ld"},
+  {__LINE__, -0x000efd1,	"-61393", "%ld"},
+  {__LINE__, 0xfffff867,	"FFFFF867", "%2X"},
+  {__LINE__, 0x00113ed0,	"0x113ed0", "%-#7x"},
+  {__LINE__, 0x00000677,	" 1655", "% 3.ld"},
+  {__LINE__, 0x0000002f,	"2f", "%x"},
+  {__LINE__, 0xfffffd38,	"fffffd38", "%-4x"},
+  {__LINE__, -0x000b3cc,	"-46028", "%1.2d"},
+  {__LINE__, 0x45da719b,	"45DA719B", "%+0X"},
+  {__LINE__, -0x000a454,	" -42068", "%7.3ld"},
+  {__LINE__, 0x01cc7c30,	" 30178352", "% d"},
+  {__LINE__, -0x05ae80e,	"-5957646", "%#.4ld"},
+  {__LINE__, 0x000000b9,	"185", "%d"},
+  {__LINE__, 0x003fcaf4,	"4180724", "%1.ld"},
+  {__LINE__, 0x02da1b74,	"2DA1B74", "%X"},
+  {__LINE__, 0xffffffd9,	"FFFFFFD9", "%X"},
+  {__LINE__, 0x00064359,	"64359 ", "%-6X"},
+  {__LINE__, 0x000000f0,	"240", "%ld"},
+  {__LINE__, -0x01715e5,	"-1512933", "%ld"},
+  {__LINE__, 0xc8f6e118,	"0XC8F6E118", "%#X"},
+  {__LINE__, 0xfffffd8f,	"FFFFFD8F", "%X"},
+  {__LINE__, 0x0000176d,	"5997  ", "%-6d"},
+  {__LINE__, 0x00003cab,	"0x3cab", "%#0.3x"},
+  {__LINE__, 0x00000001,	" 1", "% d"},
+  {__LINE__, 0xfffff610,	"0XFFFFF610", "%#X"},
+  {__LINE__, 0xfffffffe,	"FFFFFFFE", "%5.7X"},
+  {__LINE__, 0x00000001,	"1", "%0x"},
+  {__LINE__, 0x00000001,	"00001", "%.5ld"},
+  {__LINE__, -0x0000d51,	"-3409", "%d"},
+  {__LINE__, -0x08639ee,	"-8796654", "%ld"},
+  {__LINE__, 0x00003121,	"12577", "%#1.2ld"},
+  {__LINE__, 0x0000004e,	"78", "%d"},
+  {__LINE__, 0xfffff64f,	"fffff64f", "%-x"},
+  {__LINE__, 0x0000002a,	"2a", "%0x"},
+  {__LINE__, 0x00000020,	"20", "%x"},
+  {__LINE__, -0x00000b8,	"-184", "%#ld"},
+  {__LINE__, 0x0000000a,	"10", "%-#d"},
+  {__LINE__, 0x00000364,	"868", "%.1ld"},
+  {__LINE__, 0x00d1f9b6,	"D1F9B6", "%0.X"},
+  {__LINE__, 0x008cfda1,	"8CFDA1", "% 6.X"},
+  {__LINE__, 0xffd58cce,	"FFD58CCE", "%X"},
+  {__LINE__, 0x00000008,	"0000008", "%6.7ld"},
+  {__LINE__, 0x00000318,	" 318", "%4X"},
+  {__LINE__, 0x000172d8,	"94936", "%2ld"},
+  {__LINE__, -0x056ccbf,	"-5688511", "%ld"},
+  {__LINE__, 0x000000c7,	"+000199", "%+0.6d"},
+  {__LINE__, 0x00000002,	"0X2", "%-#X"},
+  {__LINE__, 0xfffff634,	"FFFFF634", "%.1X"},
+  {__LINE__, -0x00001f3,	"-499", "%-ld"},
+  {__LINE__, -0x000081b,	"-2075", "%-d"},
+  {__LINE__, 0x000000b5,	"181", "%0d"},
+  {__LINE__, 0xfe961ee8,	"fe961ee8", "%0x"},
+  {__LINE__, 0x000028a2,	"10402", "%d"},
+  {__LINE__, 0xffffffff,	"FFFFFFFF", "%.4X"},
+  {__LINE__, -0x000058a,	"-1418", "%.3ld"},
+  {__LINE__, 0x00001ceb,	"1CEB", "%X"},
+  {__LINE__, 0x00000021,	"21", "% X"},
+  {__LINE__, 0x00000002,	"2", "%0d"},
+  {__LINE__, -0x2f9bbf5,	"-49921013", "%.4ld"},
+  {__LINE__, 0x00000e91,	"03729", "%#.5ld"},
+  {__LINE__, 0xf1116740,	"f1116740", "%2x"},
+  {__LINE__, 0x00014f72,	"14F72", "%X"},
+  {__LINE__, 0xfffffced,	"FFFFFCED", "%X"},
+  {__LINE__, 0xffffffff,	"ffffffff", "%.5x"},
+  {__LINE__, 0x0017cf0c,	" 1560332", "% 0ld"},
+  {__LINE__, 0x0000000a,	"A", "% X"},
+  {__LINE__, 0xff3a39d4,	"ff3a39d4", "%x"},
+  {__LINE__, 0xfffef05f,	"FFFEF05F", "%X"},
+  {__LINE__, 0xfedfe708,	"fedfe708", "%03.0x"},
+  {__LINE__, 0x000345a0,	"345A0", "% X"},
+  {__LINE__, -0x1ed5b6f7,	"-517322487", "%d"},
+  {__LINE__, 0xd2d56c22,	"D2D56C22", "%0.X"},
+  {__LINE__, 0x00002cbf,	"2CBF", "%.2X"},
+  {__LINE__, 0x00000db4,	"db4", "%3x"},
+  {__LINE__, -0x000b154,	"-45396", "%d"},
+  {__LINE__, 0x002bf4c7,	"2BF4C7", "%X"},
+  {__LINE__, 0x6954abf4,	"+1767156724", "%+d"},
+  {__LINE__, 0xfffffffb,	"fffffffb", "%x"},
+  {__LINE__, -0x29e0050e,	"-702547214", "%-0ld"},
+  {__LINE__, -0x0014989,	"-84361", "%-#0.3ld"},
+  {__LINE__, 0x001a557c,	"+1725820", "%+6.5d"},
+  {__LINE__, -0x56689a81,	"-1449695873", "%.2d"},
+  {__LINE__, 0x00000016,	"   16", "%05.X"},
+  {__LINE__, 0x0001da1e,	" 121374", "% d"},
+  {__LINE__, -0x04deac7,	"-5106375", "%03.4d"},
+  {__LINE__, 0x000012b1,	"4785", "%d"},
+  {__LINE__, 0x0009a116,	"9a116", "%-x"},
+  {__LINE__, -0x0000003,	"-000003", "%4.6ld"},
+  {__LINE__, 0x00000000,	"", "%.0x"},
+  {__LINE__, 0x0000000a,	"  A", "% 3X"},
+  {__LINE__, 0xfffffff0,	"0xfffffff0", "%-#0.1x"},
+  {__LINE__, 0x00000086,	"86", "%0X"},
+  {__LINE__, 0x0000001f,	"31", "%-d"},
+  {__LINE__, 0x0386f706,	"59176710", "%3.6ld"},
+  {__LINE__, 0xffe437ae,	"0XFFE437AE", "%#X"},
+  {__LINE__, 0x0e5405c6,	"e5405c6", "%-x"},
+  {__LINE__, 0xfffdee46,	"FFFDEE46", "%+X"},
+  {__LINE__, 0xff861e9d,	"FF861E9D", "%5.X"},
+  {__LINE__, 0xfffff570,	"FFFFF570", "%-X"},
+  {__LINE__, 0x045c90bd,	"45c90bd", "%0x"},
+  {__LINE__, 0x000000aa,	"AA", "%+X"},
+  {__LINE__, -0x747262e,	"-122103342", "%0ld"},
+  {__LINE__, 0xffffad89,	"FFFFAD89", "%X"},
+  {__LINE__, 0x00000018,	"18", "%0.2X"},
+  {__LINE__, 0x00057a2d,	" 358957", "% #7.d"},
+  {__LINE__, 0x73a0e21d,	"1939923485", "%ld"},
+  {__LINE__, -0x00021e1,	"-8673", "%0d"},
+  {__LINE__, 0x000000e9,	"   233", "% 06.3ld"},
+  {__LINE__, 0xffffcc0d,	"ffffcc0d", "%x"},
+  {__LINE__, 0x00000052,	"52", "%x"},
+  {__LINE__, 0x01c155af,	"1C155AF", "%.5X"},
+  {__LINE__, 0xffffffff,	"ffffffff", "%0.x"},
+  {__LINE__, -0x00400a4,	"-262308", "%-d"},
+  {__LINE__, -0x0000001,	"-0000001", "%#.7ld"},
+  {__LINE__, 0x01fb9c99,	"1fb9c99", "% 03.5x"},
+  {__LINE__, 0xffffffff,	"ffffffff", "%6.x"},
+  {__LINE__, 0xff5e5eea,	"FF5E5EEA", "%X"},
+  {__LINE__, 0x0000000f,	"F", "%+0X"},
+  {__LINE__, 0xfffffe3a,	"fffffe3a", "% x"},
+  {__LINE__, 0xfffffffe,	"FFFFFFFE", "%-X"},
+  {__LINE__, -0x0000007,	"-7", "%0ld"},
+  {__LINE__, -0x002f635,	"-194101", "%d"},
+  {__LINE__, -0x0000005,	"-5", "%ld"},
+  {__LINE__, -0x0000059,	"-89", "%0ld"},
+  {__LINE__, -0x1ccda96,	"-30202518", "%d"},
+  {__LINE__, -0x0000002,	"-2", "%-d"},
+  {__LINE__, 0xffffffda,	"0XFFFFFFDA", "%#X"},
+  {__LINE__, 0x00036cc5,	"224453", "%#d"},
+  {__LINE__, 0x00000010,	"+16", "%+ld"},
+  {__LINE__, 0x0b6039c7,	"190855623", "%d"},
+  {__LINE__, -0x0000002,	"-002", "%#.3d"},
+  {__LINE__, 0xfff3e746,	"FFF3E746", "%-4X"},
+  {__LINE__, 0x0361b3de,	"361B3DE", "% 04X"},
+  {__LINE__, 0xffffe6a2,	"ffffe6a2", "%-x"},
+  {__LINE__, 0x00032790,	"0x0032790", "%#7.7x"},
+  {__LINE__, 0xffe33b4e,	"ffe33b4e", "%-0x"},
+  {__LINE__, -0x0094663,	"-607843", "%.3ld"},
+  {__LINE__, -0x00a3efa,	"-671482", "%4d"},
+  {__LINE__, 0x000000e6,	"   00E6", "%7.4X"},
+  {__LINE__, 0x000125cb,	"125CB", "%+X"},
+  {__LINE__, 0x0000b97e,	"b97e", "%x"},
+  {__LINE__, -0x0000039,	"-57", "%+ld"},
+  {__LINE__, 0xffffe39a,	"ffffe39a", "%5.4x"},
+  {__LINE__, 0xffffffff,	"ffffffff", "%6.1x"},
+  {__LINE__, -0xdee910c,	"-233738508", "%-#2d"},
+  {__LINE__, -0x14044930,	"-335825200", "%6.ld"},
+  {__LINE__, 0x00a81259,	"a81259", "%x"},
+  {__LINE__, 0x020e74c6,	"20E74C6", "%X"},
+  {__LINE__, -0x00000fb,	"-251", "%01.d"},
+  {__LINE__, 0x034ceb45,	"34CEB45", "%5.X"},
+  {__LINE__, 0xfeacb66a,	"feacb66a", "% x"},
+  {__LINE__, 0x00003eb6,	"3EB6", "% X"},
+  {__LINE__, 0x000009ef,	"9ef", "% x"},
+  {__LINE__, 0xf9d9dd07,	"F9D9DD07", "%0X"},
+#ifndef __PCCNECV70__
+
+  {__LINE__, 0x000154d7,	"087255", "%.6ld"},
+  {__LINE__, -0x000036e,	"-878", "%-ld"},
+  {__LINE__, -0x0007dcc,	"-32204", "% d"},
+  {__LINE__, 0x000019dc,	"6620", "%d"},
+  {__LINE__, 0xffffff6e,	"FFFFFF6E", "%2X"},
+  {__LINE__, 0x00000016,	"0x16", "%-#x"},
+  {__LINE__, 0xffdb3e96,	"ffdb3e96", "%+.5x"},
+  {__LINE__, 0xffffffef,	"FFFFFFEF", "% 04.X"},
+  {__LINE__, 0xffffffff,	"FFFFFFFF", "%5X"},
+  {__LINE__, 0x000c08cd,	"C08CD", "%-X"},
+  {__LINE__, 0x18de71ee,	"18de71ee", "%x"},
+  {__LINE__, 0xffffffff,	"ffffffff", "% x"},
+  {__LINE__, -0x00025bd,	"-009661", "%#.6d"},
+  {__LINE__, 0x2f05de14,	" 788913684", "% 6.4ld"},
+  {__LINE__, 0x0c99cf86,	"211406726", "%.5d"},
+  {__LINE__, 0x09e6a21d,	" 166109725", "% 0d"},
+  {__LINE__, -0x013da65,	"-1301093", "%+ld"},
+  {__LINE__, 0x000003d0,	" 976", "% 4.2d"},
+  {__LINE__, -0xef9e3cc,	"-251257804", "%-7.0d"},
+  {__LINE__, 0x0000000c,	"+12", "%+00ld"},
+  {__LINE__, 0xffffffe2,	"ffffffe2", "%x"},
+  {__LINE__, 0x000000fe,	"fe", "%-x"},
+  {__LINE__, 0xfffffc5f,	"fffffc5f", "%x"},
+  {__LINE__, -0x0005c55,	"-23637", "%d"},
+  {__LINE__, -0x0111ff2,	"-1122290", "% 7.d"},
+  {__LINE__, -0x1a1746e5,	"-437733093", "%.4ld"},
+  {__LINE__, 0x00001007,	"004103", "%00.6d"},
+  {__LINE__, 0xffffffe1,	"ffffffe1", "%x"},
+  {__LINE__, 0x0000d80f,	"55311", "%d"},
+  {__LINE__, 0x00000004,	"4", "%+X"},
+  {__LINE__, 0xfffffffd,	"fffffffd", "%6x"},
+  {__LINE__, -0x2afbcc3c,	"-721144892", "%4.6ld"},
+  {__LINE__, 0x00377f96,	"377F96", "%6.X"},
+  {__LINE__, 0xffffffc8,	"FFFFFFC8", "%0X"},
+  {__LINE__, 0x007ed9d1,	"8313297", "%-3d"},
+  {__LINE__, 0x00000000,	"0", "%-X"},
+  {__LINE__, 0x001e122d,	"1970733", "%01.d"},
+  {__LINE__, -0x000029b,	"-667", "%ld"},
+  {__LINE__, -0x002f563,	"-193891", "% 2.5d"},
+  {__LINE__, 0xfffffffe,	"fffffffe", "%+3.7x"},
+  {__LINE__, 0xfff7658c,	"fff7658c", "%x"},
+  {__LINE__, -0x0006d08,	"-0027912", "%7.7ld"},
+  {__LINE__, 0x00000080,	"80", "%X"},
+  {__LINE__, 0x0000078f,	"  1935", "% 6ld"},
+  {__LINE__, 0xfffffffb,	"FFFFFFFB", "% X"},
+  {__LINE__, 0x000000ae,	"     AE", "%7.X"},
+  {__LINE__, -0x000d6aa,	"-54954", "%-ld"},
+  {__LINE__, 0xfffffffe,	"FFFFFFFE", "%6.X"},
+  {__LINE__, 0x000003bf,	"+959", "%+d"},
+  {__LINE__, -0x7242d04b,	"-1916981323", "% ld"},
+  {__LINE__, 0xf0e6546f,	"F0E6546F", "% .7X"},
+  {__LINE__, 0x047e196a,	"75372906", "%ld"},
+  {__LINE__, 0x0240174e,	"240174E", "%+0X"},
+  {__LINE__, -0x0000006,	"-006", "%.3ld"},
+  {__LINE__, 0x00068aac,	"428716", "%#ld"},
+  {__LINE__, 0xffffffa1,	"ffffffa1", "%0x"},
+  {__LINE__, 0x000adab3,	"adab3", "%x"},
+  {__LINE__, -0x00000ae,	"-0000174", "%7.7ld"},
+  {__LINE__, 0x0f0a8f4b,	"f0a8f4b", "% x"},
+  {__LINE__, 0xfee229bc,	"fee229bc", "%x"},
+  {__LINE__, -0x275b8455,	"-660309077", "%.2ld"},
+  {__LINE__, -0xca4b2a5,	"-212120229", "%d"},
+  {__LINE__, 0x000000b5,	" 181", "%04.d"},
+  {__LINE__, 0xfff213f2,	"FFF213F2", "%X"},
+  {__LINE__, 0x00000003,	"3", "%-X"},
+  {__LINE__, 0x0ebb978b,	"247175051", "%.6ld"},
+  {__LINE__, 0xffffffca,	"FFFFFFCA", "%X"},
+  {__LINE__, -0x0000003,	"-03", "%+0.2d"},
+  {__LINE__, -0x178ff86,	"-24706950", "%+d"},
+  {__LINE__, 0x0000003c,	"     60", "%7.ld"},
+  {__LINE__, -0x001012d,	"-65837", "%.5d"},
+  {__LINE__, 0x03673fd2,	"3673fd2", "%.5x"},
+  {__LINE__, -0x001fe74,	"-130676", "%#0.6ld"},
+  {__LINE__, 0x004f6226,	"4f6226", "%-0x"},
+  {__LINE__, 0xfffffa0f,	"fffffa0f", "%7x"},
+  {__LINE__, 0xfffffff8,	"fffffff8", "%-.6x"},
+  {__LINE__, -0x0000001,	"-1", "%#d"},
+  {__LINE__, 0xffffe43d,	"ffffe43d", "%7x"},
+  {__LINE__, 0x00009d47,	"0040263", "%7.7ld"},
+  {__LINE__, 0xff0fc79f,	"FF0FC79F", "%-4.X"},
+  {__LINE__, 0x2d610907,	"2d610907", "%x"},
+  {__LINE__, -0x00002de,	"-734", "%04d"},
+  {__LINE__, 0x0000036b,	"    36B", "%7.1X"},
+  {__LINE__, 0x00000002,	"2", "%.0x"},
+  {__LINE__, -0x1f577b3e,	"-525826878", "%d"},
+  {__LINE__, 0x0000002d,	"45", "%#ld"},
+  {__LINE__, 0xfffffffb,	"fffffffb", "%x"},
+  {__LINE__, -0x0000004,	"-4", "%-.0d"},
+  {__LINE__, 0x00016ba4,	"16ba4", "%x"},
+  {__LINE__, -0x1ad853d5,	"-450384853", "% 0ld"},
+  {__LINE__, 0x00366899,	"366899", "%2.x"},
+  {__LINE__, 0x1659158b,	"1659158B", "%X"},
+  {__LINE__, 0x000076c7,	"76c7", "%x"},
+  {__LINE__, 0x00000674,	"674", "%0x"},
+  {__LINE__, 0x016c9d8a,	"+23895434", "%+ld"},
+  {__LINE__, 0xfffffc43,	"FFFFFC43", "%0X"},
+  {__LINE__, 0xfff249d2,	"fff249d2", "%-2.x"},
+  {__LINE__, 0xffffffdd,	"ffffffdd", "%5x"},
+  {__LINE__, 0xffffa7ef,	"FFFFA7EF", "%0.3X"},
+  {__LINE__, 0x030d4d06,	"30d4d06", "%x"},
+  {__LINE__, -0x0e4694b,	"-14969163", "%d"},
+  {__LINE__, 0x00000078,	"120", "%.3ld"},
+  {__LINE__, -0x16c1273e,	"-381757246", "%0d"},
+  {__LINE__, 0xffffd183,	"FFFFD183", "% 0X"},
+  {__LINE__, -0x2dfdadd,	"-48224989", "%ld"},
+  {__LINE__, -0x5767fe5c,	"-1466433116", "%ld"},
+  {__LINE__, 0x01bea036,	"29270070", "%#4.3d"},
+  {__LINE__, 0x00000027,	"27", "%-x"},
+  {__LINE__, 0x0004d183,	"4D183", "%X"},
+  {__LINE__, 0xffdaf9c8,	"FFDAF9C8", "%.7X"},
+  {__LINE__, 0xfffffd95,	"fffffd95", "%x"},
+  {__LINE__, -0x0059acb,	"-367307", "%00.d"},
+  {__LINE__, 0x017d8db4,	"17d8db4", "% 05.x"},
+  {__LINE__, 0x0001f084,	"001F084", "%5.7X"},
+  {__LINE__, 0x00000006,	" 6", "% ld"},
+  {__LINE__, 0x011b0802,	"18548738", "%.3ld"},
+  {__LINE__, 0x00000006,	"  6", "%#3.d"},
+  {__LINE__, 0xffffffff,	"ffffffff", "%6x"},
+  {__LINE__, 0x00000001,	"1", "% x"},
+  {__LINE__, 0x00000750,	" 01872", "% .5d"},
+  {__LINE__, 0xfffffff9,	"fffffff9", "%x"},
+  {__LINE__, -0x00f842c,	"-1016876", "%+d"},
+  {__LINE__, -0x001dcf0,	"-122096", "%-0d"},
+  {__LINE__, 0x000000c9,	"0XC9", "% #3X"},
+  {__LINE__, 0x1e368e86,	"1e368e86", "%7x"},
+  {__LINE__, -0x0001157,	"-4439", "% 03.4d"},
+  {__LINE__, 0xfff91e87,	"FFF91E87", "%3.5X"},
+  {__LINE__, 0x00000006,	"6", "%x"},
+  {__LINE__, 0x00000bca,	"3018", "%ld"},
+  {__LINE__, 0x00495ff6,	"495ff6", "%01.0x"},
+  {__LINE__, -0x0267f7a,	"-2523002", "% #5d"},
+  {__LINE__, 0x00000060,	"96", "%-d"},
+  {__LINE__, 0x000850c6,	"544966", "%#.1d"},
+  {__LINE__, 0x00231457,	"231457", "%-6.4X"},
+  {__LINE__, 0x0000000b,	"11", "%-d"},
+  {__LINE__, 0x000003bd,	"957", "%#d"},
+  {__LINE__, 0xfd51d970,	"FD51D970", "%+.7X"},
+  {__LINE__, 0x000007bf,	"1983", "%-ld"},
+  {__LINE__, 0x000034b2,	"34B2", "%0.X"},
+  {__LINE__, 0x0000c18d,	"C18D", "%0.X"},
+  {__LINE__, 0xffffbb83,	"ffffbb83", "% 3x"},
+  {__LINE__, 0x000001d0,	"0x1d0", "%#x"},
+  {__LINE__, -0x003c784,	"-247684", "%#ld"},
+  {__LINE__, 0x0210cffa,	"210CFFA", "%X"},
+  {__LINE__, -0x33093a1,	"-53515169", "% 0d"},
+  {__LINE__, 0x00000001,	" 1", "% #ld"},
+  {__LINE__, 0xffffaa53,	"ffffaa53", "%-4.5x"},
+  {__LINE__, 0x2935c056,	"691388502", "%1.d"},
+  {__LINE__, -0x0000001,	"-1", "%ld"},
+  {__LINE__, 0x000013d1,	"0X013D1", "%+#2.5X"},
+  {__LINE__, -0x000035c,	"-860", "%-.2d"},
+  {__LINE__, 0x00000000,	"    ", "%-4.X"},
+  {__LINE__, -0x0000147,	"-327", "%d"},
+  {__LINE__, 0x0a317eb0,	"171015856", "%.7d"},
+  {__LINE__, 0x00000003,	"3", "%ld"},
+  {__LINE__, 0x000001d6,	"1d6", "%-x"},
+  {__LINE__, 0x18185214,	"404247060", "%-.2ld"},
+  {__LINE__, 0x00574140,	"0574140", "%.7X"},
+  {__LINE__, 0x00002ea5,	"02ea5", "%.5x"},
+  {__LINE__, 0x00000005,	"5", "% x"},
+  {__LINE__, 0xffc47ed6,	"ffc47ed6", "%-x"},
+  {__LINE__, 0x0001f5da,	"0X1F5DA", "%#X"},
+  {__LINE__, 0xfffffcc9,	"fffffcc9", "% x"},
+  {__LINE__, 0x02586c98,	"2586C98", "%X"},
+  {__LINE__, -0x0000036,	"-54", "% ld"},
+  {__LINE__, 0x00064b57,	"412503", "%1.5d"},
+  {__LINE__, -0x0000007,	"-7", "%#0.0ld"},
+  {__LINE__, 0x00023a03,	"145923", "%ld"},
+  {__LINE__, -0x0000065,	"-101", "%+#d"},
+  {__LINE__, 0x00000208,	"208", "%X"},
+  {__LINE__, 0x00e97728,	"15300392", "%-ld"},
+  {__LINE__, 0x0000030a,	"+778", "%+d"},
+  {__LINE__, 0xf4d7deee,	"F4D7DEEE", "%+X"},
+  {__LINE__, -0x000009a,	"-154", "%+.3ld"},
+  {__LINE__, 0x000002c0,	"+704", "%+ld"},
+  {__LINE__, 0x0067ec23,	"67ec23", "%x"},
+  {__LINE__, 0x005ca7fc,	"+6072316", "%+d"},
+  {__LINE__, 0xfffff5f1,	"fffff5f1", "%x"},
+  {__LINE__, 0x00000601,	"  0X601", "%#7.2X"},
+  {__LINE__, -0x0000057,	"-87", "% ld"},
+  {__LINE__, -0x0000078,	"   -120", "%7.d"},
+  {__LINE__, -0x000001f,	"-31   ", "%-6d"},
+  {__LINE__, 0x0160c000,	"23117824", "%ld"},
+  {__LINE__, -0x0000007,	"-7", "%0ld"},
+  {__LINE__, 0xfffffffe,	"fffffffe", "%+x"},
+  {__LINE__, 0x5b6ef898,	"5b6ef898", "%+0x"},
+  {__LINE__, 0x0009bfb6,	"638902", "%d"},
+  {__LINE__, -0x0000145,	"  -325", "%#6.0d"},
+  {__LINE__, -0x508c048,	"-84459592", "%-5.ld"},
+  {__LINE__, 0x00000002,	" 0x2", "% #4x"},
+  {__LINE__, 0x0001486e,	"84078", "%#d"},
+  {__LINE__, 0x006ac76a,	"6997866", "%.6d"},
+  {__LINE__, 0xffffff98,	"FFFFFF98", "%X"},
+  {__LINE__, 0xfffffe08,	"fffffe08", "%6.x"},
+  {__LINE__, -0x24ef47e,	"-38728830", "%1.6ld"},
+  {__LINE__, 0x39d1b2db,	"39D1B2DB", "% X"},
+  {__LINE__, 0xfffc9ce2,	"0xfffc9ce2", "%#x"},
+  {__LINE__, 0x59485e14,	"1497914900", "%#4ld"},
+  {__LINE__, 0x000022eb,	"22EB", "%3.X"},
+  {__LINE__, 0xfa410352,	"FA410352", "%-X"},
+  {__LINE__, -0x4a342f0,	"-77808368", "% ld"},
+  {__LINE__, 0xef5825a4,	"EF5825A4", "%.6X"},
+  {__LINE__, 0x01b0185a,	"0x1b0185a", "% #x"},
+  {__LINE__, -0x0004290,	"-17040", "%.3d"},
+  {__LINE__, -0x10f88659,	"-284722777", "%+6.2ld"},
+  {__LINE__, 0x00003216,	"12822", "%-d"},
+  {__LINE__, 0x4a31a219,	"1244766745", "%d"},
+  {__LINE__, 0xffffffb5,	"FFFFFFB5", "%-X"},
+  {__LINE__, 0x0000d586,	"D586", "%-2.X"},
+  {__LINE__, 0x00008496,	"33942", "%1.d"},
+  {__LINE__, -0x0000011,	"-17", "%1ld"},
+  {__LINE__, 0x0000003c,	"3C", "%2.X"},
+  {__LINE__, 0xfffffffe,	"FFFFFFFE", "%.3X"},
+  {__LINE__, 0x0000152a,	"152A", "%X"},
+  {__LINE__, 0xfffe876e,	"FFFE876E", "%X"},
+  {__LINE__, -0x0003874,	"-14452", "%-ld"},
+  {__LINE__, -0x004918a,	"-299402", "%#.6d"},
+  {__LINE__, -0x000000c,	"-12", "%-d"},
+  {__LINE__, 0xffffd812,	"FFFFD812", "%+X"},
+  {__LINE__, -0x000000c,	"-12", "%0d"},
+  {__LINE__, -0x0000229,	"-553", "%0d"},
+  {__LINE__, 0x00002ab8,	"2AB8", "%4.X"},
+  {__LINE__, 0x0000004b,	"+75", "%+ld"},
+  {__LINE__, 0x001c3178,	" 1847672", "% ld"},
+  {__LINE__, -0x0000006,	"-6", "%.0ld"},
+  {__LINE__, 0x0003be65,	"245349", "%ld"},
+  {__LINE__, -0x0000001,	"-1", "%#1ld"},
+  {__LINE__, 0x0000007f,	"+127", "%+ld"},
+  {__LINE__, 0x0000020e,	"526  ", "%-5ld"},
+  {__LINE__, 0x00000002,	"2", "%d"},
+  {__LINE__, 0x03bd0873,	"0X3BD0873", "%#X"},
+  {__LINE__, 0x00093a52,	"604754", "%-2d"},
+  {__LINE__, -0x00823fc,	"-0533500", "%+.7ld"},
+  {__LINE__, 0x00000000,	"    ", "%4.X"},
+  {__LINE__, -0x0000001,	"-1", "%ld"},
+  {__LINE__, 0xfff09ede,	"fff09ede", "%-x"},
+  {__LINE__, 0x01e28c24,	"31624228", "%ld"},
+  {__LINE__, 0x00001dcc,	"1DCC", "%X"},
+  {__LINE__, -0x0f0ea0d,	"-15788557", "%-00.ld"},
+  {__LINE__, 0xffff73a1,	"FFFF73A1", "%X"},
+  {__LINE__, -0x0004040,	"-16448", "%+#d"},
+  {__LINE__, 0x0073b158,	"0x73b158", "%#7x"},
+  {__LINE__, 0xfffff8ff,	"FFFFF8FF", "% 5X"},
+  {__LINE__, -0x0000004,	"-4", "%0d"},
+  {__LINE__, 0xffff56a3,	"ffff56a3", "%1.6x"},
+  {__LINE__, -0x0000041,	"-65", "%0d"},
+  {__LINE__, 0x00000009,	"+0000009", "%+2.7d"},
+  {__LINE__, 0xffffe13d,	"0XFFFFE13D", "%+#2.X"},
+  {__LINE__, -0x00002ce,	"-00718", "%.5ld"},
+  {__LINE__, 0xffc53e28,	"ffc53e28", "%03.4x"},
+  {__LINE__, 0x00000005,	"0X5", "%#X"},
+  {__LINE__, 0x00000004,	"4", "%x"},
+  {__LINE__, 0xe21b35eb,	"e21b35eb", "%-x"},
+  {__LINE__, -0x0000098,	"-152", "%-ld"},
+  {__LINE__, 0xffffff81,	"FFFFFF81", "%2X"},
+  {__LINE__, 0x00000003,	"00003", "%.5ld"},
+  {__LINE__, 0xfffffffc,	"fffffffc", "%+x"},
+  {__LINE__, 0x000491f5,	"299509", "%1.ld"},
+  {__LINE__, 0xf06bfd7d,	"F06BFD7D", "%X"},
+  {__LINE__, -0x0000006,	"-6", "%0d"},
+  {__LINE__, -0x0a4af7d,	"-10792829", "%-0d"},
+  {__LINE__, -0x11a74ef,	"-18511087", "%ld"},
+  {__LINE__, 0x2dc95e17,	"768171543", "%-1.d"},
+  {__LINE__, -0x0000001,	"-1", "%#ld"},
+  {__LINE__, 0x00000033,	"51", "%-#d"},
+  {__LINE__, 0x002d0219,	"2949657", "%ld"},
+  {__LINE__, 0xfffffffd,	"FFFFFFFD", "%2.4X"},
+  {__LINE__, 0x00000f20,	"+3872", "%+ld"},
+  {__LINE__, -0x0000047,	"-071", "%4.3ld"},
+  {__LINE__, 0x00000010,	"    16", "%6d"},
+  {__LINE__, 0x00000000,	"0", "%0d"},
+  {__LINE__, 0xffffff57,	"FFFFFF57", "%X"},
+  {__LINE__, -0x0000700,	"-1792", "%-#d"},
+  {__LINE__, -0x0000064,	"-100", "%-ld"},
+  {__LINE__, 0xff26d49a,	"FF26D49A", "%-0X"},
+  {__LINE__, -0x0000006,	"-6", "%.1ld"},
+  {__LINE__, 0x1391edc5,	"1391edc5", "%.1x"},
+  {__LINE__, 0x0000014a,	"330", "%-#ld"},
+  {__LINE__, 0x07ecd1e1,	"7ecd1e1", "%6x"},
+  {__LINE__, -0xa2b8898,	"-170625176", "%3.d"},
+  {__LINE__, 0x00035287,	"0x35287", "%#.0x"},
+  {__LINE__, 0x00000000,	"00000", "%0.5X"},
+  {__LINE__, -0x0000153,	"-339", "%d"},
+  {__LINE__, 0x0000ad6e,	" 44398", "% 0.d"},
+  {__LINE__, 0x00000001,	"1", "%-X"},
+  {__LINE__, -0x000000d,	"-13   ", "%-6.2d"},
+  {__LINE__, -0x01bff8a,	"-1834890", "%d"},
+  {__LINE__, 0x000a0fa8,	"+659368", "%+ld"},
+  {__LINE__, 0xac044dc0,	"ac044dc0", "%.0x"},
+  {__LINE__, 0x0003a729,	"239401", "%ld"},
+  {__LINE__, -0x00004f0,	"-1264", "%+ld"},
+  {__LINE__, 0x00000000,	"0", "%x"},
+  {__LINE__, 0x00000012,	"12", "% x"},
+  {__LINE__, 0xffff770b,	"ffff770b", "%7.1x"},
+  {__LINE__, 0xd7458572,	"d7458572", "%x"},
+  {__LINE__, 0x01f1b4f9,	"1f1b4f9", "% 0x"},
+  {__LINE__, 0xfffb2198,	"0XFFFB2198", "% #1.X"},
+  {__LINE__, 0x00ef6189,	" 15688073", "% ld"},
+  {__LINE__, -0x3f0ae63,	"-66104931", "% #d"},
+  {__LINE__, -0x0006075,	"-24693", "%ld"},
+  {__LINE__, 0x000000a1,	"161", "%d"},
+  {__LINE__, 0xfffffffc,	"fffffffc", "%3.2x"},
+  {__LINE__, 0xff6b4125,	"FF6B4125", "%+5.X"},
+  {__LINE__, 0x00000001,	"     1", "%6.d"},
+  {__LINE__, -0x0000001,	"-1", "%+0d"},
+  {__LINE__, -0x000096c,	"-2412", "%0.4d"},
+  {__LINE__, 0x00039c6f,	"236655", "%.0d"},
+  {__LINE__, 0x3625286c,	"908404844", "%.1d"},
+  {__LINE__, 0xfffffffa,	"fffffffa", "%x"},
+  {__LINE__, 0x00000000,	"0", "%X"},
+  {__LINE__, 0x00c34353,	"12796755", "%#.4d"},
+  {__LINE__, 0x000002df,	"735", "%ld"},
+  {__LINE__, 0xffff38fa,	"FFFF38FA", "%5.1X"},
+  {__LINE__, -0x000002a,	"-42", "%0.d"},
+  {__LINE__, 0x0000077e,	"1918", "%ld"},
+  {__LINE__, 0x000001f7,	"503", "%ld"},
+  {__LINE__, 0x00000004,	"4", "%ld"},
+  {__LINE__, 0x0021fb02,	"2226946", "%d"},
+  {__LINE__, 0x007c858d,	"8160653", "%-0d"},
+  {__LINE__, -0x0000109,	"-265", "%.0d"},
+  {__LINE__, 0xfffffffa,	"fffffffa", "% x"},
+  {__LINE__, 0x0097932d,	"97932d", "%+x"},
+  {__LINE__, 0xfffbbd03,	"fffbbd03", "%-.5x"},
+  {__LINE__, -0x0000005,	"-5", "%0d"},
+  {__LINE__, 0x03ee3a95,	"65944213", "%ld"},
+  {__LINE__, -0x0000002,	" -00002", "%7.5d"},
+  {__LINE__, 0xea1a4e54,	"EA1A4E54", "%X"},
+  {__LINE__, -0x000a9d6,	"-43478", "%+d"},
+  {__LINE__, -0x0fd8d65,	"-16616805", "%5ld"},
+  {__LINE__, 0x00000001,	"1", "%-d"},
+  {__LINE__, 0x00000072,	"72", "%2.X"},
+  {__LINE__, 0xffffff94,	"FFFFFF94", "%X"},
+  {__LINE__, 0x00000d2a,	"D2A", "%+X"},
+  {__LINE__, 0xffff614f,	"ffff614f", "%x"},
+  {__LINE__, -0x0000018,	"-24", "%ld"},
+  {__LINE__, 0x0000003b,	"059", "%2.3d"},
+  {__LINE__, 0x0000001a,	"1A", "%0X"},
+  {__LINE__, -0x0000109,	"-265", "%02ld"},
+  {__LINE__, 0x00000f9d,	"3997", "%#1d"},
+  {__LINE__, 0x0000001b,	"1b", "%x"},
+  {__LINE__, 0xffffff07,	"ffffff07", "%x"},
+  {__LINE__, 0xfff1a425,	"0xfff1a425", "%#x"},
+  {__LINE__, 0x00000005,	"5", "%-1d"},
+  {__LINE__, -0x53a6efd,	"-87715581", "%ld"},
+  {__LINE__, 0x042f37db,	"42F37DB", "%6.X"},
+  {__LINE__, 0x00053bd5,	"+342997", "%+5ld"},
+  {__LINE__, 0xffffffff,	"ffffffff", "% x"},
+  {__LINE__, 0xffffffef,	"FFFFFFEF", "%6.X"},
+  {__LINE__, -0x10ec29a,	"-17744538", "%+2.d"},
+  {__LINE__, 0x01dcc901,	"1dcc901", "%x"},
+  {__LINE__, 0x0007dc68,	"515176", "%-3.d"},
+  {__LINE__, -0x0000062,	"-0098", "%#2.4d"},
+  {__LINE__, 0x00000000,	"   ", "%3.0X"},
+  {__LINE__, -0x00000de,	"-222", "%ld"},
+  {__LINE__, 0x000c1fb8,	"C1FB8", "%0X"},
+  {__LINE__, 0x0005bf58,	"5BF58", "%X"},
+  {__LINE__, -0x000dd1b,	"-56603", "%-03.1d"},
+  {__LINE__, 0x00000b14,	"B14", "%+3.X"},
+  {__LINE__, 0x00000799,	"799", "%-x"},
+  {__LINE__, 0xfffffffa,	"fffffffa", "%x"},
+  {__LINE__, 0x00000003,	"0x00003", "% #7.5x"},
+  {__LINE__, -0x002b9f1,	"-178673", "%+d"},
+  {__LINE__, -0x001b817,	"-112663", "%0d"},
+  {__LINE__, 0xf6f98533,	"f6f98533", "%.1x"},
+  {__LINE__, 0x00338ffc,	"3379196", "%d"},
+  {__LINE__, 0x0409e9b5,	"0X409E9B5", "%#X"},
+  {__LINE__, 0x00b8e98e,	" 12118414", "% 0d"},
+  {__LINE__, -0x002a8f6,	"-174326", "%ld"},
+  {__LINE__, 0x13bb9722,	"331061026", "%0d"},
+  {__LINE__, 0x00063c71,	"63c71", "%x"},
+  {__LINE__, 0xfffffe37,	"FFFFFE37", "%.1X"},
+  {__LINE__, 0xffff7b3e,	"ffff7b3e", "%+.1x"},
+  {__LINE__, 0x005eeab1,	"5eeab1", "%+x"},
+  {__LINE__, 0xffc69e99,	"ffc69e99", "%x"},
+  {__LINE__, -0x000005c,	"  -92", "%5ld"},
+  {__LINE__, 0x07d8fa8a,	"7d8fa8a", "%x"},
+  {__LINE__, 0x00030e0a,	"200202", "%-4.1d"},
+  {__LINE__, 0x00001dc1,	"1DC1", "%.0X"},
+  {__LINE__, 0x00000008,	"8", "%0ld"},
+  {__LINE__, -0x01b5397,	"-1790871", "%3.d"},
+  {__LINE__, 0x27fbb4b5,	"27fbb4b5", "%x"},
+  {__LINE__, -0xe3fdcfc,	"-239066364", "%4ld"},
+  {__LINE__, 0x0008bcb1,	"8bcb1", "%0x"},
+  {__LINE__, 0xffff039e,	"ffff039e", "%.6x"},
+  {__LINE__, 0x000d0bd4,	"d0bd4", "%-x"},
+  {__LINE__, 0x00000000,	"+0", "%+d"},
+  {__LINE__, -0x2a49ea4,	"-44342948", "%1d"},
+  {__LINE__, -0x0000055,	"-85", "%0d"},
+  {__LINE__, -0x0000a05,	"-2565", "%3.3ld"},
+  {__LINE__, -0x000000b,	"-11 ", "%-4d"},
+  {__LINE__, 0xfff30444,	"FFF30444", "%7.X"},
+  {__LINE__, 0x0000003f,	"63", "%-0d"},
+  {__LINE__, 0x00046779,	"46779", "%X"},
+  {__LINE__, 0x000028d7,	" 0X28D7", "%#7.X"},
+  {__LINE__, 0x00000019,	"   19", "%5x"},
+  {__LINE__, 0x0032291d,	"3287325", "%2.ld"},
+  {__LINE__, 0x00057afa,	"57AFA", "%X"},
+  {__LINE__, 0xfffe8c64,	"fffe8c64", "%3.4x"},
+  {__LINE__, -0x624110d6,	"-1648431318", "%+6d"},
+  {__LINE__, 0x0000001a,	"   26", "% 5.d"},
+  {__LINE__, 0xfffffffd,	"FFFFFFFD", "%6.X"},
+  {__LINE__, 0x00199490,	"1676432", "%-1d"},
+  {__LINE__, -0xfff8265,	"-268403301", "%-0ld"},
+  {__LINE__, 0x0000000e,	"e", "%-x"},
+  {__LINE__, 0x00c38aec,	"c38aec", "%x"},
+  {__LINE__, -0x00658f4,	"-415988", "%#ld"},
+  {__LINE__, 0x0066ac4e,	"6728782", "%0d"},
+  {__LINE__, 0xc4a808d5,	"c4a808d5", "%x"},
+  {__LINE__, 0x00000000,	"     0", "%6.1x"},
+  {__LINE__, 0x00066d24,	"66d24", "%x"},
+  {__LINE__, 0x00002117,	"2117", "%X"},
+  {__LINE__, 0xfe06fdf4,	"FE06FDF4", "%0X"},
+  {__LINE__, 0xfffffff9,	"fffffff9", "%x"},
+  {__LINE__, 0x1c6bb795,	"+476821397", "%+d"},
+  {__LINE__, 0xfffffba4,	"FFFFFBA4", "%X"},
+  {__LINE__, 0xfffd7d44,	"fffd7d44", "%0x"},
+  {__LINE__, 0x0019dd17,	"1694999", "%d"},
+  {__LINE__, 0x6475851e,	"0x6475851e", "% #7.x"},
+  {__LINE__, -0x00330d5,	"-209109", "%0ld"},
+  {__LINE__, 0x009f53f7,	"09F53F7", "%+6.7X"},
+  {__LINE__, -0x00172f9,	" -94969", "%7.5ld"},
+  {__LINE__, 0xffffffdc,	"FFFFFFDC", "%X"},
+  {__LINE__, -0x013bdec,	"-1293804", "%+#2ld"},
+  {__LINE__, 0xfff845c0,	"fff845c0", "%+7.x"},
+  {__LINE__, -0x0fbe712,	"-16508690", "%.7d"},
+  {__LINE__, 0xffffe13f,	"ffffe13f", "%x"},
+  {__LINE__, 0xbbc19951,	"BBC19951", "%-4X"},
+  {__LINE__, -0x28d6d1b,	"-42822939", "%#d"},
+  {__LINE__, -0x93cda6b,	"-154983019", "%-d"},
+  {__LINE__, 0xffc93342,	"FFC93342", "%7.X"},
+  {__LINE__, 0x072ac8b3,	" 120244403", "% ld"},
+  {__LINE__, 0xfff8d17b,	"FFF8D17B", "% X"},
+  {__LINE__, 0x00000da5,	"DA5", "%0.X"},
+  {__LINE__, 0x055ad3ac,	"0x55ad3ac", "%#1x"},
+  {__LINE__, 0x00000e5a,	" 3674", "% .4ld"},
+  {__LINE__, 0xffffff79,	"FFFFFF79", "%+X"},
+  {__LINE__, 0xffffe167,	"ffffe167", "%+5x"},
+  {__LINE__, 0x0000fa50,	"0064080", "%.7ld"},
+  {__LINE__, 0x00000001,	"1", "%-d"},
+  {__LINE__, 0xfffffffe,	"fffffffe", "%x"},
+  {__LINE__, 0x000009ac,	" 2476", "% #2.ld"},
+  {__LINE__, 0x00000e78,	"0003704", "%.7ld"},
+  {__LINE__, -0x000dfc3,	"-57283", "%6.d"},
+  {__LINE__, 0x00000ee0,	"EE0", "%0X"},
+  {__LINE__, -0x293703b3,	"-691471283", "%ld"},
+  {__LINE__, 0x000073e8,	"  73e8", "%6x"},
+  {__LINE__, 0xffffdffd,	"ffffdffd", "%5.5x"},
+  {__LINE__, 0x00000004,	"4", "%+00.x"},
+  {__LINE__, 0x00000008,	"0X8", "%#X"},
+  {__LINE__, 0x0003044c,	"3044c", "%0x"},
+  {__LINE__, 0xffc2095e,	"FFC2095E", "%0X"},
+  {__LINE__, 0x00000aac,	"0002732", "%-.7ld"},
+  {__LINE__, 0xffffff79,	"FFFFFF79", "%+1.X"},
+  {__LINE__, 0x53a0f94a,	" 1403058506", "% 2.4ld"},
+  {__LINE__, 0x000e928d,	"e928d", "%x"},
+  {__LINE__, 0x0024127a,	"2364026", "%5.d"},
+  {__LINE__, 0x000f7c1c,	" 1014812", "% 2.d"},
+  {__LINE__, -0x000003d,	"-61 ", "%-#4ld"},
+  {__LINE__, -0x0000122,	"-290", "%+ld"},
+  {__LINE__, 0x00000006,	"+6", "%+0d"},
+  {__LINE__, 0x00000129,	" 000129", "%7.6X"},
+  {__LINE__, 0x15d873e5,	" 366506981", "% 5.7d"},
+  {__LINE__, 0x00000001,	"1", "%d"},
+  {__LINE__, 0x038d6110,	"+59597072", "%+d"},
+  {__LINE__, 0x0f46ccc3,	"256298179", "%-1.4d"},
+  {__LINE__, 0xfe434d21,	"fe434d21", "%x"},
+  {__LINE__, -0x179797d7,	"-395810775", "%d"},
+  {__LINE__, 0xe35807bf,	"e35807bf", "%x"},
+  {__LINE__, 0x00000003,	"     +3", "%+7d"},
+  {__LINE__, 0x017e699e,	"25061790", "%#ld"},
+  {__LINE__, -0x0000029,	"-41", "%d"},
+  {__LINE__, 0xffffff11,	"ffffff11", "%1.x"},
+  {__LINE__, -0x0001bf6,	"-7158", "%+0ld"},
+  {__LINE__, 0xffffff4b,	"FFFFFF4B", "%4X"},
+  {__LINE__, -0x0000040,	"-64", "%ld"},
+  {__LINE__, 0x000034d6,	"+13526", "%+ld"},
+  {__LINE__, 0xffffffa7,	"ffffffa7", "%x"},
+  {__LINE__, 0xfffffe8e,	"fffffe8e", "%+.3x"},
+  {__LINE__, 0x00000000,	"0", "%0.1d"},
+  {__LINE__, -0x007cdf1,	"-511473", "%ld"},
+  {__LINE__, 0xfffffeef,	"FFFFFEEF", "%-X"},
+  {__LINE__, 0x00002d91,	"2d91", "%x"},
+  {__LINE__, -0x000025b,	"-603", "%#ld"},
+  {__LINE__, -0x000001b,	"-27", "%-ld"},
+  {__LINE__, 0x042b6752,	"42B6752", "%+X"},
+  {__LINE__, -0x75afb0a6,	"-1974448294", "% ld"},
+  {__LINE__, -0x0000001,	"-1", "%ld"},
+  {__LINE__, 0x00000542,	"  1346", "%6d"},
+  {__LINE__, -0x0000010,	"-16", "%+0d"},
+  {__LINE__, 0xfffed8f7,	"FFFED8F7", "%5.X"},
+  {__LINE__, 0x0541852e,	"541852e", "% 2.x"},
+  {__LINE__, 0xff22aec3,	"ff22aec3", "% .1x"},
+  {__LINE__, 0x5e34b745,	"1580513093", "%ld"},
+  {__LINE__, 0xfffffff3,	"fffffff3", "%x"},
+  {__LINE__, 0x0eda7b86,	"+249199494", "%+.3d"},
+  {__LINE__, 0xffffe40f,	"ffffe40f", "%+x"},
+  {__LINE__, -0x0003484,	"-13444", "%-1.5ld"},
+  {__LINE__, 0x0000334b,	" 13131", "%6.ld"},
+  {__LINE__, -0x0000149,	"-329", "%ld"},
+  {__LINE__, 0x00000001,	"  001", "% 5.3x"},
+  {__LINE__, 0xffeaa035,	"ffeaa035", "%+3.5x"},
+  {__LINE__, 0x00211dff,	"2170367", "%ld"},
+  {__LINE__, 0x007e91f4,	"7e91f4", "%x"},
+  {__LINE__, 0xfffffffc,	"0xfffffffc", "%+#5x"},
+  {__LINE__, 0xfffffffc,	"FFFFFFFC", "%6.X"},
+  {__LINE__, 0x0156a9b5,	"156a9b5", "%x"},
+  {__LINE__, 0xfffffe58,	"fffffe58", "%+x"},
+  {__LINE__, 0xffff8c66,	"FFFF8C66", "%.0X"},
+  {__LINE__, 0x00000000,	"0", "%d"},
+  {__LINE__, 0x00000005,	"      5", "%7.d"},
+  {__LINE__, -0x0000002,	"-2", "%ld"},
+  {__LINE__, 0x000076b9,	" 30393", "% ld"},
+  {__LINE__, 0x00003824,	"3824", "%4X"},
+  {__LINE__, 0x00000cdf,	"    CDF", "% 7X"},
+  {__LINE__, 0x017c9e8f,	"17C9E8F", "%-X"},
+  {__LINE__, -0x20f582d,	"-34560045", "%-.5d"},
+  {__LINE__, 0x0000732e,	"  29486", "% 7.ld"},
+  {__LINE__, 0xffffffff,	"FFFFFFFF", "%+0X"},
+  {__LINE__, 0xf379a4a2,	"F379A4A2", "% .7X"},
+  {__LINE__, -0x0000028,	"-40", "%-d"},
+  {__LINE__, 0xe73cf79e,	"e73cf79e", "%x"},
+  {__LINE__, 0x00000002,	"      2", "%7ld"},
+  {__LINE__, -0x00029b1,	"-10673", "%-#1.ld"},
+  {__LINE__, -0x0002a58,	"-10840", "%3.d"},
+  {__LINE__, 0x00000002,	"2", "%-X"},
+  {__LINE__, 0xfffffffc,	"FFFFFFFC", "%X"},
+  {__LINE__, -0x000003a,	"  -58", "%5ld"},
+  {__LINE__, 0x0245ef3b,	"245ef3b", "%.3x"},
+  {__LINE__, 0x00026cca,	"158922", "%-06.3ld"},
+  {__LINE__, 0x01016fd3,	"16871379", "%-d"},
+  {__LINE__, 0x000016fc,	"5884", "%0ld"},
+  {__LINE__, -0x00007fb,	"  -2043", "%7.3d"},
+  {__LINE__, 0xfff73d3c,	"fff73d3c", "%0x"},
+  {__LINE__, -0x0000110,	"-272", "% 04.3d"},
+  {__LINE__, 0x0000000e,	" 014", "% 04ld"},
+  {__LINE__, -0x0000039,	"-57", "%.0ld"},
+  {__LINE__, 0x00000c95,	"c95", "%0x"},
+  {__LINE__, 0xffff3b2e,	"ffff3b2e", "%x"},
+  {__LINE__, 0xfffffffe,	"FFFFFFFE", "%X"},
+  {__LINE__, 0x00000015,	"21", "%.1d"},
+  {__LINE__, 0x0000000c,	"+12", "%+ld"},
+  {__LINE__, 0x00000000,	"0", "%+X"},
+  {__LINE__, 0xfffc9a14,	"fffc9a14", "%-.5x"},
+  {__LINE__, 0x0000003c,	"60", "%.2ld"},
+  {__LINE__, -0x0000023,	"   -35", "%6.d"},
+  {__LINE__, 0x00000740,	"1856", "%ld"},
+  {__LINE__, 0x00000160,	"160", "% 3.X"},
+  {__LINE__, 0x00000006,	"    6", "%5.X"},
+  {__LINE__, -0x0000677,	"-1655", "%.3ld"},
+  {__LINE__, 0x12709c7e,	"12709C7E", "%.7X"},
+  {__LINE__, 0x0000090f,	"+2319", "%+#d"},
+  {__LINE__, 0xffffffe0,	"0xffffffe0", "%#4.1x"},
+  {__LINE__, 0x00132ce0,	"1256672", "%ld"},
+  {__LINE__, 0x00000059,	"59", "%+X"},
+  {__LINE__, -0x0000017,	"-23", "%0d"},
+  {__LINE__, -0x01fade6,	"-2076134", "%-4.3ld"},
+  {__LINE__, 0x000df3fa,	"914426", "%.5ld"},
+  {__LINE__, 0xfffffd0f,	"fffffd0f", "%7x"},
+  {__LINE__, -0x000c212,	"-49682", "%0.1ld"},
+  {__LINE__, 0xffff8bcb,	"FFFF8BCB", "%.3X"},
+  {__LINE__, 0x0000000a,	"a", "% x"},
+  {__LINE__, 0x00000021,	"21", "%x"},
+  {__LINE__, -0x0000040,	"-64", "% 1ld"},
+  {__LINE__, 0x00000009,	"     9", "%6.ld"},
+  {__LINE__, -0x0000d67,	"-3431", "% 5.3d"},
+  {__LINE__, 0x03a85f1b,	"61366043", "%ld"},
+  {__LINE__, 0x00000035,	"000053", "%0.6d"},
+  {__LINE__, 0xfffda5cb,	"fffda5cb", "%+x"},
+  {__LINE__, 0xffffff78,	"FFFFFF78", "%-7.0X"},
+  {__LINE__, 0xfffffd6d,	"fffffd6d", "%7.x"},
+  {__LINE__, 0xfffffc08,	"fffffc08", "%7.3x"},
+  {__LINE__, 0x00003335,	" 13109", "% #d"},
+  {__LINE__, -0x0000002,	"   -2", "%5.d"},
+  {__LINE__, -0x13767a48,	"-326531656", "%+ld"},
+  {__LINE__, 0x00000be5,	"3045", "%4.0ld"},
+  {__LINE__, 0xfffdb28c,	"FFFDB28C", "%X"},
+  {__LINE__, 0x00127118,	"1208600", "%ld"},
+  {__LINE__, 0x00000086,	" 134", "% ld"},
+  {__LINE__, 0x0002214c,	"2214c", "%+x"},
+  {__LINE__, 0x0000a0c2,	" a0c2", "%5.0x"},
+  {__LINE__, -0x000007c,	"-124", "%ld"},
+  {__LINE__, 0x0000012a,	"00298", "%3.5d"},
+  {__LINE__, 0xfd4f1257,	"FD4F1257", "%+2.X"},
+  {__LINE__, 0xffffd8aa,	"ffffd8aa", "%5x"},
+  {__LINE__, -0x00000a7,	"-167", "%+ld"},
+  {__LINE__, -0x0009c69,	"-40041", "%0.0ld"},
+  {__LINE__, 0x02230418,	"35849240", "%-0.6ld"},
+  {__LINE__, 0x00000000,	"     0", "%6x"},
+  {__LINE__, 0xfffff184,	"fffff184", "%02.5x"},
+  {__LINE__, -0x0ae967b,	"-11441787", "%d"},
+  {__LINE__, 0x0015de3a,	"1433146", "%-5.3d"},
+  {__LINE__, -0x0071e93,	"-466579", "%1.ld"},
+  {__LINE__, 0xfffff8bd,	"fffff8bd", "%+x"},
+  {__LINE__, -0x00000e4,	"-228", "%+ld"},
+  {__LINE__, 0x000001d8,	" 472", "% .3ld"},
+  {__LINE__, 0x00315faa,	"315faa", "%-0x"},
+  {__LINE__, 0x00000e59,	"e59", "%0x"},
+  {__LINE__, -0x0000005,	"-5", "%ld"},
+  {__LINE__, 0x000018ec,	"6380", "%ld"},
+  {__LINE__, 0xfffffff9,	"fffffff9", "%5.2x"},
+  {__LINE__, -0xe7cfd39,	"-243072313", "%-d"},
+  {__LINE__, 0x0002c30b,	"2C30B", "%1.2X"},
+  {__LINE__, 0x0000007a,	"7A", "%X"},
+  {__LINE__, 0xf604ecb2,	"F604ECB2", "%2X"},
+  {__LINE__, -0x05f602c,	"-6250540", "%d"},
+  {__LINE__, 0xffff9c86,	"ffff9c86", "%2.x"},
+  {__LINE__, -0x00d7f55,	"-884565", "%#d"},
+  {__LINE__, 0xd2a37824,	"D2A37824", "%4X"},
+  {__LINE__, 0x00000000,	"", "%-.0x"},
+  {__LINE__, 0x000d4b51,	"0d4b51", "%3.6x"},
+  {__LINE__, 0x000ecd97,	"ecd97", "% x"},
+  {__LINE__, -0x0000018,	"-024", "%+04ld"},
+  {__LINE__, -0x009f292,	"-651922", "%ld"},
+  {__LINE__, -0x0002da9,	"-11689", "%-0ld"},
+  {__LINE__, -0x000a218,	"-41496", "%4.5d"},
+  {__LINE__, 0xffff85ac,	"FFFF85AC", "% 04.X"},
+  {__LINE__, -0x0d9ffbe,	"-14286782", "%0d"},
+  {__LINE__, 0xfb18cc8e,	"fb18cc8e", "%x"},
+  {__LINE__, 0xffffe5d3,	"FFFFE5D3", "%-X"},
+  {__LINE__, 0x00000000,	"0", "%x"},
+  {__LINE__, -0x0000006,	"-6", "% d"},
+  {__LINE__, 0x0002fc62,	"2fc62", "% 03.x"},
+  {__LINE__, 0x00000000,	"00", "%.2d"},
+  {__LINE__, -0x00000fd,	"  -253", "%6ld"},
+  {__LINE__, -0x000000b,	"-11", "%d"},
+  {__LINE__, -0x00042a3,	"-17059", "% 6d"},
+  {__LINE__, 0x00000002,	"2", "% X"},
+  {__LINE__, -0x61ead93e,	"-1642780990", "%-0d"},
+  {__LINE__, 0xf2e61f6d,	"f2e61f6d", "%-.4x"},
+  {__LINE__, 0xffd31b93,	"ffd31b93", "%x"},
+  {__LINE__, -0x0000008,	"-8", "%ld"},
+  {__LINE__, 0xffffffff,	"ffffffff", "%00x"},
+  {__LINE__, 0x000000fb,	"+000251", "%+2.6d"},
+  {__LINE__, 0x00000015,	"  15", "%4.X"},
+  {__LINE__, 0x06ec6d96,	"6EC6D96", "%+2.X"},
+  {__LINE__, 0xffff1df7,	"0xffff1df7", "% #1x"},
+  {__LINE__, -0x000004b,	"-75", "%-ld"},
+  {__LINE__, 0x00000008,	"8", "%#.0d"},
+  {__LINE__, 0x00001355,	"4949", "%3.4ld"},
+  {__LINE__, -0x00000f7,	"-247", "%d"},
+  {__LINE__, 0x0000001f,	"31", "%.2ld"},
+  {__LINE__, 0x0000d556,	"D556", "%-X"},
+  {__LINE__, 0xffffd5a5,	"ffffd5a5", "% x"},
+  {__LINE__, -0x0000e34,	"-3636", "%#d"},
+  {__LINE__, -0x0000007,	"-7", "%d"},
+  {__LINE__, 0x01ba10a4,	"1ba10a4", "%x"},
+  {__LINE__, 0xfffff759,	"FFFFF759", "% X"},
+  {__LINE__, -0x80d0adb,	"-135072475", "%d"},
+  {__LINE__, 0x0002bf61,	"2bf61", "%x"},
+  {__LINE__, 0xffff008b,	"FFFF008B", "%-7X"},
+  {__LINE__, 0x00000e72,	"E72", "%X"},
+  {__LINE__, -0x00000ea,	"-234", "%0ld"},
+  {__LINE__, -0x0007b9d,	"-0031645", "%0.7ld"},
+  {__LINE__, 0x0001baaa,	"0X1BAAA", "%#4X"},
+  {__LINE__, 0x0000a57f,	"  a57f", "%6.x"},
+  {__LINE__, -0x21a73726,	"-564606758", "%ld"},
+  {__LINE__, 0x06f45c9f,	"0x6f45c9f", "%#.3x"},
+  {__LINE__, 0x00018e5d,	"101981", "%-d"},
+  {__LINE__, 0x0001e69a,	"124570", "%-d"},
+  {__LINE__, -0x0000d26,	"  -3366", "% 07.d"},
+  {__LINE__, 0x00000000,	"+", "%+0.ld"},
+  {__LINE__, 0x00003916,	"14614", "%ld"},
+  {__LINE__, 0xfffffd8f,	"fffffd8f", "%-3.x"},
+  {__LINE__, 0x00000011,	"11", "%x"},
+  {__LINE__, 0x000000e7,	"E7", "%X"},
+  {__LINE__, 0xfdf9d89b,	"FDF9D89B", "%X"},
+  {__LINE__, 0x00000a7c,	"a7c", "%x"},
+  {__LINE__, 0x0000003f,	"00003F", "%.6X"},
+  {__LINE__, 0xffffe729,	"FFFFE729", "%X"},
+  {__LINE__, 0xfffffffe,	"fffffffe", "% .6x"},
+  {__LINE__, -0x0000a4b,	"-2635", "%+d"},
+  {__LINE__, 0xffffff50,	"ffffff50", "%0.7x"},
+  {__LINE__, 0xfaf57e8b,	"faf57e8b", "% 4.x"},
+  {__LINE__, -0x0000056,	"-86", "%ld"},
+  {__LINE__, 0x08ed2a4d,	"8ed2a4d", "%4x"},
+  {__LINE__, 0xff8d9081,	"FF8D9081", "%+0.X"},
+  {__LINE__, 0x002730a1,	"2568353", "%4d"},
+  {__LINE__, 0xffff9564,	"ffff9564", "%x"},
+  {__LINE__, -0x0000006,	"  -6", "%4ld"},
+  {__LINE__, -0x19890310,	"-428409616", "%0ld"},
+  {__LINE__, 0xd2ce636c,	"d2ce636c", "%+x"},
+  {__LINE__, -0x00001fe,	"-510", "%d"},
+  {__LINE__, 0x00000006,	"0000006", "%+0.7x"},
+  {__LINE__, 0xffffffc2,	"0XFFFFFFC2", "%-#.5X"},
+  {__LINE__, -0x00000fd,	"-253", "%+d"},
+  {__LINE__, 0x000216aa,	"0x216aa", "%#x"},
+  {__LINE__, 0xffe36c66,	"ffe36c66", "%x"},
+  {__LINE__, 0x00000002,	"2", "%x"},
+  {__LINE__, -0x0000025,	"-37", "% d"},
+  {__LINE__, 0x0000007e,	"126", "%d"},
+  {__LINE__, 0x0003c1f9,	"+246265", "%+ld"},
+  {__LINE__, 0x00000001,	"1", "%ld"},
+  {__LINE__, -0x0000001,	"-1", "%ld"},
+  {__LINE__, -0x00539e7,	"-342503", "%06.ld"},
+  {__LINE__, 0x00000d42,	"  3394", "%#6.ld"},
+  {__LINE__, 0xf73b7c4e,	"F73B7C4E", "%X"},
+  {__LINE__, 0x00000022,	"22", "%.1x"},
+  {__LINE__, 0xffffa883,	"FFFFA883", "%X"},
+  {__LINE__, 0x016ec247,	"16ec247", "%x"},
+  {__LINE__, 0x00000019,	"19", "%+X"},
+  {__LINE__, 0x0000665a,	"665A", "% 2.X"},
+  {__LINE__, 0xfffffffc,	"FFFFFFFC", "%-5.X"},
+  {__LINE__, 0x008e3fbc,	"8E3FBC", "%X"},
+  {__LINE__, 0xfffffffa,	"FFFFFFFA", "%X"},
+  {__LINE__, 0x1b806597,	"461399447", "%.2d"},
+  {__LINE__, 0x00000366,	"0000870", "%#1.7ld"},
+  {__LINE__, 0x0001d92e,	"1d92e", "%x"},
+  {__LINE__, 0x000104ce,	"104CE", "%-X"},
+  {__LINE__, 0xfffffe4c,	"fffffe4c", "%x"},
+  {__LINE__, 0x000000e9,	"E9", "%X"},
+  {__LINE__, 0x000a855c,	" 689500", "% d"},
+  {__LINE__, 0x00000075,	"75", "% X"},
+  {__LINE__, -0x0000026,	"-38", "%ld"},
+  {__LINE__, 0xfffff169,	"fffff169", "%-04.2x"},
+  {__LINE__, 0xffffff6f,	"ffffff6f", "%x"},
+  {__LINE__, 0x00000003,	"0x3", "%#x"},
+  {__LINE__, 0x00623bab,	"6437803", "%.0d"},
+  {__LINE__, -0x2260224c,	"-576725580", "%ld"},
+  {__LINE__, 0xe7e7a998,	"E7E7A998", "%.1X"},
+  {__LINE__, 0x00000005,	"5", "%X"},
+  {__LINE__, 0x0000b560,	"0xb560", "%#x"},
+  {__LINE__, 0xfe11854d,	"fe11854d", "%-.5x"},
+  {__LINE__, 0x00190014,	"1638420", "%ld"},
+  {__LINE__, 0x0001d22a,	"0X1D22A", "%-#X"},
+  {__LINE__, 0x00000c16,	"c16", "%2x"},
+  {__LINE__, 0x00000d1a,	"3354", "%#d"},
+  {__LINE__, 0x000165f6,	"91638", "%d"},
+  {__LINE__, 0xfffff557,	"0XFFFFF557", "%#X"},
+  {__LINE__, 0x00000588,	"    588", "%07.X"},
+  {__LINE__, 0xf4a72708,	"f4a72708", "%x"},
+  {__LINE__, 0xfff1cba9,	"0xfff1cba9", "% #2.5x"},
+  {__LINE__, 0x000333a4,	"209828", "%d"},
+  {__LINE__, 0x0000179b,	"179B", "% 2.X"},
+  {__LINE__, 0x00000460,	"1120", "%0ld"},
+  {__LINE__, 0xffffff89,	"FFFFFF89", "%X"},
+  {__LINE__, -0x0000012,	"-18", "%ld"},
+  {__LINE__, 0x00004fe0,	"20448", "%0.d"},
+  {__LINE__, 0x00532e77,	"532e77", "%00.x"},
+  {__LINE__, 0xf7b92efe,	"f7b92efe", "%0x"},
+  {__LINE__, -0x0000243,	"-579", "%+1.d"},
+  {__LINE__, 0x34894bb7,	"+881413047", "%+d"},
+  {__LINE__, 0xfffaa189,	"FFFAA189", "% 6X"},
+  {__LINE__, -0x0000579,	"-1401", "%+ld"},
+  {__LINE__, 0x005acb12,	"5acb12", "%5.0x"},
+  {__LINE__, 0xffff890a,	"FFFF890A", "%X"},
+  {__LINE__, 0x010dff2f,	"10DFF2F", "%.7X"},
+  {__LINE__, 0x00005a7f,	"23167", "%#ld"},
+  {__LINE__, 0x000005e3,	"1507", "%#3d"},
+  {__LINE__, -0xa815bcb,	"-176249803", "%d"},
+  {__LINE__, 0xffffffff,	"ffffffff", "%+x"},
+  {__LINE__, 0xfffe0ff7,	"fffe0ff7", "%3x"},
+  {__LINE__, 0xffffffff,	"0XFFFFFFFF", "%#2.1X"},
+  {__LINE__, -0x1cc5ea52,	"-482732626", "%6.d"},
+  {__LINE__, 0x000425ed,	"+0271853", "%+.7d"},
+  {__LINE__, 0x00000001,	"1", "%+x"},
+  {__LINE__, -0x48f2a72,	"-76491378", "%7.0d"},
+  {__LINE__, 0xfffffff7,	"FFFFFFF7", "% 0X"},
+  {__LINE__, 0xfd8ffc0a,	"fd8ffc0a", "%.1x"},
+  {__LINE__, 0x0001f56d,	"  1F56D", "%+7.2X"},
+  {__LINE__, 0x000000db,	"    DB", "%6.X"},
+  {__LINE__, 0xffffffc2,	"ffffffc2", "%x"},
+  {__LINE__, 0x00000001,	"001", "%03ld"},
+  {__LINE__, 0xffd89f58,	"ffd89f58", "% 0.x"},
+  {__LINE__, 0xfe1a72fc,	"fe1a72fc", "%x"},
+  {__LINE__, 0xfffff9b6,	"FFFFF9B6", "%X"},
+  {__LINE__, 0x00243633,	"243633", "%X"},
+  {__LINE__, 0x00821bc7,	"+8526791", "%+#0ld"},
+  {__LINE__, 0xfe63f348,	"0XFE63F348", "%#3X"},
+  {__LINE__, 0xff729f19,	"ff729f19", "%4x"},
+  {__LINE__, 0xffff570f,	"FFFF570F", "%+X"},
+  {__LINE__, 0x00a57a42,	"10844738", "%6.3d"},
+  {__LINE__, 0xfe4a3ed0,	"FE4A3ED0", "%6.X"},
+  {__LINE__, 0x00000000,	"0", "%d"},
+  {__LINE__, 0x000001bb,	"01bb", "% .4x"},
+  {__LINE__, 0x02b4a1e9,	"2b4a1e9", "%-7.x"},
+  {__LINE__, 0x31750683,	"31750683", "%x"},
+  {__LINE__, 0x00001cd7,	"7383", "%#ld"},
+  {__LINE__, 0x0000079d,	"1949", "%d"},
+  {__LINE__, 0xffb8ff3b,	"FFB8FF3B", "%X"},
+  {__LINE__, 0x00a768b6,	"0A768B6", "%-6.7X"},
+  {__LINE__, 0x1c665b48,	"0X1C665B48", "% #X"},
+  {__LINE__, -0x000037d,	"-000893", "%3.6d"},
+  {__LINE__, 0x29890443,	"29890443", "%+0x"},
+  {__LINE__, 0x000000e5,	"e5  ", "%-4x"},
+  {__LINE__, 0xfff2b5fa,	"FFF2B5FA", "%X"},
+  {__LINE__, -0x5d32c2b,	"-97725483", "%05ld"},
+  {__LINE__, -0x00016c5,	" -05829", "%+#7.5ld"},
+  {__LINE__, 0x00000644,	"644", "%X"},
+  {__LINE__, -0x018c027,	"-1622055", "%+.1d"},
+  {__LINE__, 0x0000013c,	"0x13c", "%#x"},
+  {__LINE__, 0x00000009,	"+9", "%+#ld"},
+  {__LINE__, 0x00000000,	"0", "%ld"},
+  {__LINE__, -0x018eb19,	"-1633049", "%4.3ld"},
+  {__LINE__, 0xfffff429,	"FFFFF429", "% X"},
+  {__LINE__, 0x0032de67,	"32DE67", "%X"},
+  {__LINE__, 0x0016bdfa,	" 1490426", "% .2ld"},
+  {__LINE__, 0x00000065,	"65", "%+.0X"},
+  {__LINE__, 0x00000072,	"  72", "%+4.2X"},
+  {__LINE__, 0x00075119,	"75119", "%2x"},
+  {__LINE__, 0x000000b8,	"b8", "%x"},
+  {__LINE__, 0x000000d0,	"d0", "%x"},
+  {__LINE__, 0x000000b9,	"b9", "%x"},
+  {__LINE__, 0x003fda9d,	" 4184733", "% #3.d"},
+  {__LINE__, 0x00029a24,	"170532", "%4.d"},
+  {__LINE__, -0x132a337d,	"-321532797", "% ld"},
+  {__LINE__, 0x0000047a,	"0X47A", "%-#X"},
+  {__LINE__, 0x00000000,	"0", "%-ld"},
+  {__LINE__, -0x0d9750b,	"-14251275", "% ld"},
+  {__LINE__, 0x00029d6c,	"29d6c", "%x"},
+  {__LINE__, 0xfb060cc0,	"fb060cc0", "%x"},
+  {__LINE__, 0xffffd524,	"0XFFFFD524", "%#X"},
+  {__LINE__, 0xffffff30,	"ffffff30", "%-5x"},
+  {__LINE__, 0x00001650,	"0005712", "%#0.7d"},
+  {__LINE__, 0x0000b702,	"0B702", "%03.5X"},
+  {__LINE__, 0x000003c1,	"3c1", "% .1x"},
+  {__LINE__, -0x0290412,	"-2688018", "%d"},
+  {__LINE__, -0x00008bf,	"-2239", "%#d"},
+  {__LINE__, -0x0000001,	"-1", "%d"},
+  {__LINE__, 0x0001d750,	"1D750", "%-X"},
+  {__LINE__, 0x006eee92,	"6EEE92", "%-X"},
+  {__LINE__, 0xff812b02,	"ff812b02", "%0x"},
+  {__LINE__, 0xfffffeac,	"FFFFFEAC", "%+0X"},
+  {__LINE__, 0x000003a5,	"3a5", "%x"},
+  {__LINE__, -0x15270cee,	"-354880750", "%2.ld"},
+  {__LINE__, 0x06b686d2,	"6b686d2", "%0x"},
+  {__LINE__, 0xffe9cdcc,	"ffe9cdcc", "%x"},
+  {__LINE__, 0x0ecb168e,	"ecb168e", "%x"},
+  {__LINE__, 0x00000051,	"51", "%-X"},
+  {__LINE__, -0x0018860,	"-100448", "%-0d"},
+  {__LINE__, 0x8f08b82b,	"0x8f08b82b", "%-#.5x"},
+  {__LINE__, 0xffffffff,	"ffffffff", "%x"},
+  {__LINE__, 0x0000000e,	"e", "%+01x"},
+  {__LINE__, 0x04cf15bc,	" 80680380", "% #ld"},
+  {__LINE__, 0x50006e8a,	"50006e8a", "%x"},
+  {__LINE__, 0x0002f669,	"194153", "%0d"},
+  {__LINE__, 0x000000a6,	"  166", "% 5.ld"},
+  {__LINE__, -0x04036bb,	"-4208315", "%7.5d"},
+  {__LINE__, 0x00070dea,	"70DEA", "%+X"},
+  {__LINE__, 0x00000964,	"0x964", "%#x"},
+  {__LINE__, 0x0000004d,	"0x4d", "% #3.x"},
+  {__LINE__, -0x0000001,	"-1", "%-0d"},
+  {__LINE__, 0x0000043e,	"1086", "%ld"},
+  {__LINE__, -0x0000001,	"-1", "%-d"},
+  {__LINE__, 0x00000000,	"+0", "%+d"},
+  {__LINE__, 0xfffe68d9,	"FFFE68D9", "%7.X"},
+  {__LINE__, -0x0169199,	"-1479065", "%#.5ld"},
+  {__LINE__, -0x000003d,	"-61", "%ld"},
+  {__LINE__, 0x00000001,	"+1", "%+.1d"},
+  {__LINE__, 0x0001a65d,	"1a65d", "%.5x"},
+  {__LINE__, 0x00000141,	"+000321", "%+#5.6ld"},
+  {__LINE__, 0x00000000,	"   0", "%4x"},
+  {__LINE__, 0x00000408,	"1032", "%-2.3ld"},
+  {__LINE__, 0xffffffed,	"FFFFFFED", "%-X"},
+  {__LINE__, 0xfe832351,	"FE832351", "% .4X"},
+  {__LINE__, 0x003a421b,	"3A421B", "%-X"},
+  {__LINE__, -0x53ed7f25,	"-1408073509", "%ld"},
+  {__LINE__, -0x0000003,	"-0003", "%-5.4ld"},
+  {__LINE__, 0x00000ad0,	"   2768", "%7d"},
+  {__LINE__, 0xfffaf30b,	"FFFAF30B", "%X"},
+  {__LINE__, 0x006349d3,	" 6506963", "% 6.2ld"},
+  {__LINE__, 0x07f0146a,	"7f0146a", "%+3.4x"},
+  {__LINE__, -0x0000002,	" -2", "% 3.ld"},
+  {__LINE__, -0x26e94f3,	"-40801523", "%-#ld"},
+  {__LINE__, -0x0000004,	"   -004", "%7.3d"},
+  {__LINE__, 0xfffe8cc9,	"FFFE8CC9", "%0X"},
+  {__LINE__, 0x00000018,	"   18", "%5.x"},
+  {__LINE__, -0x4941de83,	"-1229053571", "% 0.5ld"},
+  {__LINE__, 0x00000000,	"     0", "%6ld"},
+  {__LINE__, 0xfffffffe,	"0XFFFFFFFE", "%-#X"},
+  {__LINE__, -0x0142ae1,	"-1321697", "%4.ld"},
+  {__LINE__, -0x0319e7f,	"-3251839", "%0ld"},
+  {__LINE__, 0x000004ff,	"    4FF", "%7.2X"},
+  {__LINE__, -0x0001c3e,	"-7230", "%#.2ld"},
+  {__LINE__, 0xffffe522,	"ffffe522", "%x"},
+  {__LINE__, 0x0001d1cb,	"+119243", "%+.3ld"},
+  {__LINE__, 0xfad19d52,	"FAD19D52", "%+X"},
+  {__LINE__, 0x00002a7c,	" 10876", "% 0.ld"},
+  {__LINE__, 0x00001449,	"1449", "%X"},
+  {__LINE__, 0x000732b8,	"471736", "%d"},
+  {__LINE__, -0x211a496e,	"-555370862", "%ld"},
+  {__LINE__, -0x0000004,	"-4", "%1.d"},
+  {__LINE__, 0x0295c03d,	"43368509", "%5.ld"},
+  {__LINE__, 0x01fa5722,	"33183522", "%0ld"},
+  {__LINE__, 0xfffbff62,	"0xfffbff62", "%#x"},
+  {__LINE__, 0x000000f5,	" 245", "% 2.d"},
+  {__LINE__, 0x000000a0,	"160", "%-d"},
+  {__LINE__, 0x0000000f,	"15", "%.2ld"},
+  {__LINE__, 0x0bf5f077,	"+200667255", "%+ld"},
+  {__LINE__, -0x14d3e5a,	"-21839450", "%#2.3d"},
+  {__LINE__, -0x21cbe656,	"-567010902", "%ld"},
+  {__LINE__, 0x000002b9,	"697", "%ld"},
+  {__LINE__, 0xfffff9b0,	"FFFFF9B0", "%X"},
+  {__LINE__, 0x007fd9c7,	"8378823", "%3.4d"},
+  {__LINE__, 0x00036d06,	"36d06", "%x"},
+  {__LINE__, 0xffde8052,	"FFDE8052", "%4.6X"},
+  {__LINE__, 0x0000000d,	"13", "%#d"},
+  {__LINE__, 0x68157d93,	"68157d93", "%x"},
+  {__LINE__, 0x00000005,	"5", "%1x"},
+  {__LINE__, 0xfffffff4,	"FFFFFFF4", "%X"},
+  {__LINE__, 0xf5bbf7e9,	"f5bbf7e9", "%+.1x"},
+  {__LINE__, 0x0be98f98,	"BE98F98", "%X"},
+  {__LINE__, 0x00000122,	"00122", "%.5X"},
+  {__LINE__, -0x0000936,	"-2358", "%+#3.0ld"},
+  {__LINE__, 0xfd230f09,	"FD230F09", "%-7X"},
+  {__LINE__, 0x00000089,	"137", "%ld"},
+  {__LINE__, 0x00000078,	"    120", "%7d"},
+  {__LINE__, -0x68ef2b6b,	"-1760504683", "%-ld"},
+  {__LINE__, 0xc24480bb,	"C24480BB", "%+4X"},
+  {__LINE__, 0xfefe36a2,	"FEFE36A2", "%0X"},
+  {__LINE__, -0x35344ba,	"-55788730", "%7.d"},
+  {__LINE__, 0xffffffff,	"FFFFFFFF", "%+.6X"},
+  {__LINE__, -0x0000f40,	"-3904", "% ld"},
+  {__LINE__, 0xfffffffb,	"FFFFFFFB", "%X"},
+  {__LINE__, 0x58b37c4b,	"58b37c4b", "%2.2x"},
+  {__LINE__, 0x000000e2,	"226", "%#ld"},
+  {__LINE__, 0xfff5ebde,	"fff5ebde", "%-7.1x"},
+  {__LINE__, 0x0c6ea9be,	"208579006", "%-ld"},
+  {__LINE__, 0xff708c74,	"FF708C74", "% 4.X"},
+  {__LINE__, 0x00000000,	"  0", "% 3X"},
+  {__LINE__, 0x00000004,	"  4", "%03.d"},
+  {__LINE__, 0x0919be7c,	"+152682108", "%+6.d"},
+  {__LINE__, 0x00d4fd1e,	"13958430", "%0d"},
+  {__LINE__, 0xfe77a69e,	"fe77a69e", "%-7.x"},
+  {__LINE__, 0x284ded44,	"676195652", "%-#2ld"},
+  {__LINE__, -0x00006e6,	"-1766", "% ld"},
+  {__LINE__, -0x7dac7ea,	"-131778538", "%.0ld"},
+  {__LINE__, 0x0003c50f,	"247055", "%#d"},
+  {__LINE__, 0xfffffffc,	"fffffffc", "%-x"},
+  {__LINE__, 0xfe0f0d1f,	"fe0f0d1f", "% 5.1x"},
+  {__LINE__, 0x00000009,	"9", "%0ld"},
+  {__LINE__, -0x0175cc1,	"-1531073", "%-04.d"},
+  {__LINE__, 0x000e4da2,	" 937378", "% 4.ld"},
+  {__LINE__, 0x00000762,	"762", "%-0.X"},
+  {__LINE__, 0x005211bf,	"5211bf", "%-x"},
+  {__LINE__, 0xfffffffb,	"fffffffb", "%+2.6x"},
+  {__LINE__, 0x00008862,	"34914", "%ld"},
+  {__LINE__, 0xfffc9754,	"fffc9754", "%+x"},
+  {__LINE__, 0x0000716e,	"716E", "%X"},
+  {__LINE__, 0x000000a8,	"a8", "%x"},
+  {__LINE__, 0xffff84f5,	"ffff84f5", "%0x"},
+  {__LINE__, 0x00005032,	"5032", "%x"},
+  {__LINE__, 0xffe242b4,	"ffe242b4", "%6x"},
+  {__LINE__, 0x002df9bd,	"3013053", "%ld"},
+  {__LINE__, 0xffffe267,	"FFFFE267", "%.5X"},
+  {__LINE__, 0xffffffc7,	"0xffffffc7", "%#x"},
+  {__LINE__, -0x1727c38,	"-24280120", "%d"},
+  {__LINE__, 0x01308072,	"1308072", "%x"},
+  {__LINE__, -0x5883c7c,	"-92814460", "%+ld"},
+  {__LINE__, 0x000030ad,	"30ad", "%x"},
+  {__LINE__, 0xffffffff,	"FFFFFFFF", "%X"},
+  {__LINE__, -0x2090a708,	"-546350856", "% d"},
+  {__LINE__, 0x0024e6b4,	"2418356", "%#ld"},
+  {__LINE__, 0x02db71ac,	"2DB71AC", "% 6.3X"},
+  {__LINE__, 0xfffffffc,	"FFFFFFFC", "%2.7X"},
+  {__LINE__, -0x000074e,	"  -1870", "%7.ld"},
+  {__LINE__, -0x0011d84,	"-73092", "%d"},
+  {__LINE__, 0x00160723,	"160723", "%1.3x"},
+  {__LINE__, 0x00412929,	"4270377", "%-d"},
+  {__LINE__, -0x0008fc6,	"-36806", "% d"},
+  {__LINE__, 0x00000002,	"2", "%d"},
+  {__LINE__, 0x0eb67ffa,	"eb67ffa", "%.4x"},
+  {__LINE__, 0x05b86c3c,	"95972412", "%4.4d"},
+  {__LINE__, 0xffffca9c,	"FFFFCA9C", "% 4.X"},
+  {__LINE__, 0x0007d571,	"7d571", "%-0x"},
+  {__LINE__, -0x000239b,	"-09115", "%5.5d"},
+  {__LINE__, -0x0000155,	" -341", "%5.3ld"},
+  {__LINE__, 0x00000034,	"34", "%x"},
+  {__LINE__, -0x0000051,	"-81", "%.1ld"},
+  {__LINE__, 0x309bbbe0,	"309bbbe0", "%x"},
+  {__LINE__, 0x0075be1e,	" 7716382", "% #ld"},
+  {__LINE__, 0x000002d5,	"2d5", "%x"},
+  {__LINE__, 0x006b466d,	"6B466D", "%-0X"},
+  {__LINE__, 0x01d6c30f,	"1D6C30F", "%4.X"},
+  {__LINE__, 0x00000003,	"      3", "%07.x"},
+  {__LINE__, 0xfffcc102,	"FFFCC102", "%6.X"},
+  {__LINE__, 0xffffffff,	"0XFFFFFFFF", "%#X"},
+  {__LINE__, 0xfffffffe,	"fffffffe", "%+x"},
+  {__LINE__, 0x00000005,	"5", "%ld"},
+  {__LINE__, 0xff060284,	"ff060284", "%x"},
+  {__LINE__, 0x007a3325,	"7A3325", "%-X"},
+  {__LINE__, 0xf5f595bd,	"F5F595BD", "%0X"},
+  {__LINE__, 0xfffa3a10,	"FFFA3A10", "%0X"},
+  {__LINE__, 0x00000000,	"0", "%x"},
+  {__LINE__, -0x15078f9,	"-22051065", "%7d"},
+  {__LINE__, -0x0000002,	"-000002", "%.6d"},
+  {__LINE__, 0x00000036,	"54", "%1.1ld"},
+  {__LINE__, -0xbbecf6a,	"-197054314", "%ld"},
+  {__LINE__, 0x0000043d,	"43D", "%X"},
+  {__LINE__, 0xfffffffa,	"0xfffffffa", "% #6.x"},
+  {__LINE__, 0x016759f8,	"23550456", "%0.ld"},
+  {__LINE__, 0x000052d2,	"+21202", "%+6.2d"},
+  {__LINE__, -0x007d232,	"-512562", "%ld"},
+  {__LINE__, 0x00240be0,	"2362336", "%.1d"},
+  {__LINE__, -0x0000001,	"-1", "%0d"},
+  {__LINE__, 0xfffffffa,	"FFFFFFFA", "%X"},
+  {__LINE__, -0x0000e88,	"-3720", "%ld"},
+  {__LINE__, 0xfffffa9b,	"FFFFFA9B", "%.5X"},
+  {__LINE__, 0x09296eeb,	"153710315", "%-1.0d"},
+  {__LINE__, 0x001f46fc,	"0X1F46FC", "%#X"},
+  {__LINE__, 0x00000006,	"6", "%X"},
+  {__LINE__, 0xffffff87,	"0XFFFFFF87", "%+#X"},
+  {__LINE__, 0x00000469,	"0469", "%04X"},
+  {__LINE__, -0x0000001,	"-1", "%ld"},
+  {__LINE__, 0x00000000,	"", "%.0ld"},
+  {__LINE__, -0x52bc137,	"-86753591", "%-#3ld"},
+  {__LINE__, -0x2bddb08,	"-45996808", "%-3.d"},
+  {__LINE__, 0x041367f7,	"41367F7", "%+X"},
+  {__LINE__, -0x0018eb5,	"-102069", "%+ld"},
+  {__LINE__, -0x0000537,	"-1335", "%#ld"},
+  {__LINE__, -0x6f159ff4,	"-1863688180", "%+1.d"},
+  {__LINE__, 0x00112ac8,	"0X112AC8", "%#6.3X"},
+  {__LINE__, 0x00000000,	"   ", "%3.d"},
+  {__LINE__, 0x0008afe8,	"08afe8", "%+3.6x"},
+  {__LINE__, 0x00000015,	"21", "%ld"},
+  {__LINE__, -0x02b7130,	"-2847024", "% #2.4d"},
+  {__LINE__, 0xffffffd0,	"FFFFFFD0", "%X"},
+  {__LINE__, -0x6970fa1,	"-110563233", "%+#.4ld"},
+  {__LINE__, 0x06387dcc,	"0X6387DCC", "%-#X"},
+  {__LINE__, 0xffffd506,	"ffffd506", "%+6x"},
+  {__LINE__, -0x00fe5cd,	"-1041869", "%-#7d"},
+  {__LINE__, -0x0c35bf6,	"-12803062", "%-03d"},
+  {__LINE__, -0x0020d89,	"-134537", "%#d"},
+  {__LINE__, -0x0c7aed3,	"-13086419", "%-ld"},
+  {__LINE__, -0x000362a,	"-13866", "%#.4ld"},
+  {__LINE__, -0x02d05f0,	"-2950640", "%#ld"},
+  {__LINE__, 0x02de1321,	"0x2de1321", "%#7.x"},
+  {__LINE__, 0xffb56428,	"0xffb56428", "%#x"},
+  {__LINE__, 0xfffffffe,	"FFFFFFFE", "%X"},
+  {__LINE__, 0xf072292d,	"F072292D", "%.5X"},
+  {__LINE__, -0x0f4b0f2,	"-16036082", "%.5ld"},
+  {__LINE__, 0x01b81885,	"28842117", "%5d"},
+  {__LINE__, -0x009cfa6,	"-642982", "%d"},
+  {__LINE__, 0xfffffffd,	"0XFFFFFFFD", "%-#.5X"},
+  {__LINE__, 0x0dc97a66,	"DC97A66", "%2.X"},
+  {__LINE__, 0x000000be,	"190", "%.0d"},
+  {__LINE__, 0xffffe1c7,	"FFFFE1C7", "% X"},
+  {__LINE__, 0x01883b9a,	"1883b9a", "%3x"},
+  {__LINE__, 0xffffdde1,	"ffffdde1", "%+x"},
+  {__LINE__, 0x2f1b4e32,	"+790318642", "%+ld"},
+  {__LINE__, 0x000129aa,	"129aa", "%x"},
+  {__LINE__, -0x00092c2,	"-37570", "%d"},
+  {__LINE__, 0x00070fbd,	"70fbd", "%x"},
+  {__LINE__, -0x00000ea,	"-234", "%+4ld"},
+  {__LINE__, 0xfffffffe,	"fffffffe", "%x"},
+  {__LINE__, 0x0091c7f7,	"91C7F7", "% .3X"},
+  {__LINE__, -0x0c14fe2,	"-12668898", "%d"},
+  {__LINE__, -0x0017c15,	"-97301", "%d"},
+  {__LINE__, -0x00005d0,	"-0001488", "%5.7d"},
+  {__LINE__, 0x0114c36e,	"18137966", "%0d"},
+  {__LINE__, 0xffffffff,	"ffffffff", "%+x"},
+  {__LINE__, 0x0ac76e78,	"180842104", "%d"},
+  {__LINE__, 0x001976cd,	" 1668813", "% 4.ld"},
+  {__LINE__, -0x0642319,	"-6562585", "% d"},
+  {__LINE__, 0xffffffff,	"FFFFFFFF", "%X"},
+  {__LINE__, -0x035019d,	"-3473821", "%.7d"},
+  {__LINE__, -0x0000061,	"-97", "%#3.d"},
+  {__LINE__, 0x0000001f,	"    31", "% 6.1ld"},
+  {__LINE__, -0x0000024,	"-36", "%d"},
+  {__LINE__, 0x000b3785,	"735109", "%ld"},
+  {__LINE__, 0xfffffda9,	"fffffda9", "%-x"},
+  {__LINE__, 0x00254832,	"2443314", "%-ld"},
+  {__LINE__, 0xfffffd40,	"FFFFFD40", "%0X"},
+  {__LINE__, -0x0006105,	"-24837", "%+#d"},
+  {__LINE__, 0x00000006,	"+6", "%+d"},
+  {__LINE__, 0xffd40fd8,	"ffd40fd8", "%3.x"},
+  {__LINE__, -0x000988e,	"-39054", "%03d"},
+  {__LINE__, 0x0005ad8b,	"5AD8B", "%0.0X"},
+  {__LINE__, 0x00000001,	"1", "%d"},
+  {__LINE__, 0xfe1f59b7,	"fe1f59b7", "%4.x"},
+  {__LINE__, -0x0000022,	"-34", "%#d"},
+  {__LINE__, 0x0018e3e9,	"18E3E9", "% X"},
+  {__LINE__, 0xffffff25,	"FFFFFF25", "%2.X"},
+  {__LINE__, -0x00002c6,	"-710", "%1.ld"},
+  {__LINE__, 0x00009765,	"38757", "%5ld"},
+  {__LINE__, 0xfe197646,	"FE197646", "%-X"},
+  {__LINE__, 0x00000001,	"    1", "%+5.x"},
+  {__LINE__, -0x0000002,	"-2", "%#ld"},
+  {__LINE__, 0x0072f6be,	"72F6BE", "%1X"},
+  {__LINE__, -0x000f06d,	"-61549", "%-d"},
+  {__LINE__, 0x00000001,	"    1", "%5X"},
+  {__LINE__, 0x328cba28,	" 848083496", "% 2.ld"},
+  {__LINE__, 0x0000cddc,	"cddc", "%.1x"},
+  {__LINE__, 0xfffffff9,	"fffffff9", "%7x"},
+  {__LINE__, 0x00baf511,	"BAF511", "%-5.6X"},
+  {__LINE__, 0x00000001,	"   1", "%4.ld"},
+  {__LINE__, 0x0001e4b0,	"+124080", "%+ld"},
+  {__LINE__, -0x07548f3,	"-7686387", "% 6.d"},
+  {__LINE__, -0x01b14ea,	"-1774826", "% #0d"},
+  {__LINE__, -0x000005c,	"-92 ", "%-04ld"},
+  {__LINE__, -0x00000ae,	"-174", "%+.3ld"},
+  {__LINE__, 0x0000008c,	"0X8C", "%+#X"},
+  {__LINE__, 0x14c02360,	"14C02360", "%.6X"},
+  {__LINE__, 0xfffffff6,	"FFFFFFF6", "%X"},
+  {__LINE__, 0x009f4ee5,	"9f4ee5", "%x"},
+  {__LINE__, 0x00000035,	"35", "%X"},
+  {__LINE__, -0x00000eb,	"-235", "%ld"},
+  {__LINE__, 0x1552ced8,	"1552CED8", "%04X"},
+  {__LINE__, 0x0000002a,	"   2A", "%5X"},
+  {__LINE__, 0xffffffff,	"ffffffff", "% x"},
+  {__LINE__, -0xdec0db2,	"-233573810", "%d"},
+  {__LINE__, 0x001e2ef0,	"1978096", "%2.d"},
+  {__LINE__, 0xffffef24,	"ffffef24", "%.5x"},
+  {__LINE__, 0xfffe6a6c,	"fffe6a6c", "%+x"},
+  {__LINE__, -0x0000004,	"-4", "% ld"},
+  {__LINE__, 0xfe3c6743,	"fe3c6743", "%.1x"},
+  {__LINE__, 0x0000033d,	"829", "%0ld"},
+  {__LINE__, -0x00006a0,	"  -1696", "% 7.ld"},
+  {__LINE__, 0xffffffdb,	"ffffffdb", "%0.0x"},
+  {__LINE__, 0xfffffffc,	"FFFFFFFC", "%3.3X"},
+  {__LINE__, -0x0000004,	"-4", "%#ld"},
+  {__LINE__, 0x00b32b56,	"B32B56", "%X"},
+  {__LINE__, 0xffffffff,	"0xffffffff", "%+#x"},
+  {__LINE__, 0x01cd1a48,	"1cd1a48", "%+7x"},
+  {__LINE__, 0xffffffda,	"ffffffda", "%x"},
+  {__LINE__, 0x1886509e,	"1886509E", "% X"},
+  {__LINE__, 0x000000eb,	"235", "%0d"},
+  {__LINE__, 0xfffffff4,	"fffffff4", "%0x"},
+  {__LINE__, 0x00000547,	"547", "% X"},
+  {__LINE__, 0x000017e6,	"17e6", "%-2.x"},
+  {__LINE__, 0x00001dc4,	"7620", "%d"},
+  {__LINE__, 0xffffffff,	"FFFFFFFF", "%3.0X"},
+  {__LINE__, 0xffff93fa,	"0XFFFF93FA", "%#X"},
+  {__LINE__, 0xfffffe1c,	"FFFFFE1C", "%-X"},
+  {__LINE__, 0x00000000,	"", "% .0x"},
+  {__LINE__, 0x000000a1,	"A1", "%X"},
+  {__LINE__, 0xffffffff,	"0xffffffff", "%#x"},
+  {__LINE__, -0x0001460,	"-05216", "%+#.5d"},
+  {__LINE__, 0x00000001,	"1     ", "%-6.x"},
+  {__LINE__, 0xfffd5324,	"FFFD5324", "%+2.6X"},
+  {__LINE__, 0x00000007,	"    07", "%06.2d"},
+  {__LINE__, 0x00000003,	"3", "%-X"},
+  {__LINE__, 0xfffffdb7,	"0XFFFFFDB7", "%+#X"},
+  {__LINE__, 0xfffff4cc,	"fffff4cc", "%0x"},
+  {__LINE__, 0x00000000,	"0    ", "%-5X"},
+  {__LINE__, 0x00758c96,	"758C96", "%X"},
+  {__LINE__, -0x0000001,	"-1", "%-ld"},
+  {__LINE__, 0x00000001,	"1", "%ld"},
+  {__LINE__, 0x03f03caf,	"66075823", "%.2ld"},
+  {__LINE__, 0x0000a87c,	"a87c", "%1.x"},
+  {__LINE__, 0x00000034,	"34", "%X"},
+  {__LINE__, 0x00000000,	"0", "%x"},
+  {__LINE__, 0x00010167,	"10167", "%x"},
+  {__LINE__, -0x00007ce,	"-1998 ", "%-6ld"},
+  {__LINE__, 0x00000001,	"1", "%.0d"},
+  {__LINE__, 0x00d94cee,	"14241006", "%ld"},
+  {__LINE__, -0x0000008,	"-8", "% d"},
+  {__LINE__, -0x71520839,	"-1901201465", "%+0d"},
+  {__LINE__, 0x0000035a,	"35a", "%-x"},
+  {__LINE__, 0xfffd2f68,	"FFFD2F68", "%-X"},
+  {__LINE__, 0x0006ea53,	"453203", "%1d"},
+  {__LINE__, 0x000000df,	"DF", "% 1X"},
+  {__LINE__, 0xfffffffe,	"fffffffe", "% 7x"},
+  {__LINE__, 0x00000156,	"156", "% X"},
+  {__LINE__, 0x00037ac9,	" 228041", "% ld"},
+  {__LINE__, 0xffffffde,	"FFFFFFDE", "%0.5X"},
+  {__LINE__, 0x00000025,	"37", "%-0.ld"},
+  {__LINE__, -0x4133686,	"-68368006", "%2ld"},
+  {__LINE__, -0x000003b,	"-59", "%.2ld"},
+  {__LINE__, 0xfffff910,	"fffff910", "% 00.0x"},
+  {__LINE__, 0xff9ec802,	"FF9EC802", "%2.6X"},
+  {__LINE__, 0x00000008,	"0X8", "%#1X"},
+  {__LINE__, 0xfffffff7,	"FFFFFFF7", "%-X"},
+  {__LINE__, 0x0029a4da,	"2729178", "%04.ld"},
+  {__LINE__, 0x007d1588,	"8197512", "%#d"},
+  {__LINE__, 0x0007e86d,	"518253", "%0d"},
+  {__LINE__, 0xfffffff9,	"fffffff9", "%x"},
+  {__LINE__, 0x00000002,	"002", "%.3d"},
+  {__LINE__, 0x00006ec1,	"6EC1", "%2X"},
+  {__LINE__, 0x0000300c,	"12300", "%-d"},
+  {__LINE__, -0x0000002,	"-2", "%+ld"},
+  {__LINE__, -0x0000002,	"-2", "%ld"},
+  {__LINE__, -0x00015d5,	"-005589", "%#.6ld"},
+  {__LINE__, 0x00000041,	"65", "%d"},
+  {__LINE__, 0x00000229,	"0000229", "% 0.7x"},
+  {__LINE__, 0xfffffffb,	"fffffffb", "%03.x"},
+  {__LINE__, 0x00093262,	"0602722", "%.7d"},
+  {__LINE__, -0x00037b4,	"-14260", "%-0ld"},
+  {__LINE__, 0xfffffffc,	"fffffffc", "%-x"},
+  {__LINE__, 0xf24cb3e6,	"f24cb3e6", "%1x"},
+  {__LINE__, 0x00000000,	"0", "%x"},
+  {__LINE__, 0xfffffffb,	"FFFFFFFB", "%0X"},
+  {__LINE__, 0x00000031,	"0000049", "%00.7ld"},
+  {__LINE__, 0x00000bb3,	"BB3", "%.1X"},
+  {__LINE__, -0x0000001,	"-0001", "%+#4.4ld"},
+  {__LINE__, -0x0000001,	"-1", "% d"},
+  {__LINE__, 0x00022c0c,	"22c0c", "%-x"},
+  {__LINE__, 0xffffffd4,	"ffffffd4", "%x"},
+  {__LINE__, 0x000729c6,	"469446", "%3.d"},
+  {__LINE__, 0xb180feae,	"b180feae", "%3.x"},
+  {__LINE__, 0x124fac15,	"307211285", "%-0ld"},
+  {__LINE__, -0x0000004,	"-4", "%ld"},
+  {__LINE__, 0x0000006a,	"106", "%#d"},
+  {__LINE__, 0x0000297f,	"297F", "%+3X"},
+  {__LINE__, 0x0000000e,	"14", "%0ld"},
+  {__LINE__, 0x00000027,	"27", "%0.1X"},
+  {__LINE__, 0xffeb98eb,	"ffeb98eb", "% 05.2x"},
+  {__LINE__, 0xfffff19b,	"FFFFF19B", "%+X"},
+  {__LINE__, 0x00025992,	"154002", "%6.6d"},
+  {__LINE__, 0x00000040,	"   040", "%6.3X"},
+  {__LINE__, 0x00000a9e,	" 0a9e", "%5.4x"},
+  {__LINE__, 0x00c7f2cc,	"c7f2cc", "%x"},
+  {__LINE__, 0x000325e6,	" 325E6", "%6.X"},
+  {__LINE__, -0x69faad3,	"-111127251", "%d"},
+  {__LINE__, -0x059a307,	"-5874439", "% ld"},
+  {__LINE__, 0xfffffff6,	"0xfffffff6", "%#0.0x"},
+  {__LINE__, 0x0030fdf3,	"30fdf3", "%x"},
+  {__LINE__, 0x00007343,	"+29507", "%+#2d"},
+  {__LINE__, 0x0003cf4b,	"0X3CF4B", "% #.2X"},
+  {__LINE__, 0x00000433,	"+1075", "%+0ld"},
+  {__LINE__, 0xfffffffd,	"fffffffd", "%+.3x"},
+  {__LINE__, 0x0ae30c4e,	"ae30c4e", "%+00x"},
+  {__LINE__, 0x0002540f,	"02540f", "%-.6x"},
+  {__LINE__, -0x0000001,	"  -01", "% #5.2ld"},
+  {__LINE__, 0xffffffe7,	"0xffffffe7", "% #5.x"},
+  {__LINE__, 0x0000005b,	"91", "%d"},
+  {__LINE__, 0x00001f9b,	"8091", "%.4ld"},
+  {__LINE__, 0xfffff315,	"fffff315", "%4.x"},
+  {__LINE__, -0x130eec41,	"-319745089", "% ld"},
+  {__LINE__, 0xfff8fe13,	"FFF8FE13", "%X"},
+  {__LINE__, -0x0000004,	"-00004", "%5.5d"},
+  {__LINE__, 0x00000669,	"669", "%0X"},
+  {__LINE__, -0x0000004,	"-4", "%d"},
+  {__LINE__, 0xf5e81496,	"F5E81496", "% 6X"},
+  {__LINE__, -0x0000001,	"-1", "% 0d"},
+  {__LINE__, 0xfffffff7,	"fffffff7", "%x"},
+  {__LINE__, 0x000001de,	"478", "%d"},
+  {__LINE__, 0x0000623e,	"25150", "%5.0d"},
+  {__LINE__, 0xffffffa8,	"FFFFFFA8", "%+X"},
+  {__LINE__, -0x0000117,	"-279", "% ld"},
+  {__LINE__, -0x0000517,	"-1303", "%d"},
+  {__LINE__, 0xfffff9d5,	"fffff9d5", "% x"},
+  {__LINE__, 0x000001cc,	"1CC", "%-X"},
+  {__LINE__, 0x0000019a,	"0000410", "%.7d"},
+  {__LINE__, 0x00000003,	"3     ", "%-06X"},
+  {__LINE__, 0x00000009,	"0x9", "%#0x"},
+  {__LINE__, 0xfd544610,	"0XFD544610", "% #X"},
+  {__LINE__, 0xfffffffc,	"fffffffc", "%+x"},
+  {__LINE__, 0x00009437,	"37943", "%ld"},
+  {__LINE__, -0x00b5ea6,	"-745126", "%d"},
+  {__LINE__, 0xffffffd8,	"ffffffd8", "%6x"},
+  {__LINE__, 0x00002a2d,	"10797", "%.3ld"},
+  {__LINE__, 0x00275238,	"2576952", "%0ld"},
+  {__LINE__, 0xfff90a34,	"FFF90A34", "%-7X"},
+  {__LINE__, 0xfffffffe,	"FFFFFFFE", "% .7X"},
+  {__LINE__, -0xb3b673e,	"-188442430", "% ld"},
+  {__LINE__, 0xfffff67a,	"0xfffff67a", "%#0.x"},
+  {__LINE__, 0x0000dff6,	"   dff6", "%+7.x"},
+  {__LINE__, 0xffee46e3,	"ffee46e3", "%x"},
+  {__LINE__, 0x00001a66,	" 0006758", "% 7.7d"},
+  {__LINE__, 0x0002b475,	"2B475", "%.4X"},
+  {__LINE__, 0x0002090d,	"002090d", "%.7x"},
+  {__LINE__, -0x0057838,	"-358456", "%#ld"},
+  {__LINE__, 0x00000004,	"0x4", "%#x"},
+  {__LINE__, 0x0574cb62,	"91540322", "%#7d"},
+  {__LINE__, -0x0054388,	"-344968", "% #d"},
+  {__LINE__, 0x000421c2,	"421C2", "% X"},
+  {__LINE__, 0x00000003,	"3", "%0d"},
+  {__LINE__, 0xffffe2e2,	"ffffe2e2", "% 5.x"},
+  {__LINE__, 0x00000021,	"+33", "%+d"},
+  {__LINE__, -0x0020033,	"-131123", "%ld"},
+  {__LINE__, -0x0000001,	"  -1", "%4.ld"},
+  {__LINE__, 0x000000fd,	"000fd", "%3.5x"},
+  {__LINE__, 0x023e4337,	"37634871", "%1d"},
+  {__LINE__, 0x6e823d96,	"6E823D96", "% X"},
+  {__LINE__, 0xfff0e133,	"fff0e133", "%x"},
+  {__LINE__, -0x000decc,	"-57036", "%3d"},
+  {__LINE__, 0x004397b8,	"4429752", "%0d"},
+  {__LINE__, -0x0000023,	"   -35", "%6d"},
+  {__LINE__, 0xffe701ca,	"FFE701CA", "%3X"},
+  {__LINE__, 0x000c0319,	"+787225", "%+.6d"},
+  {__LINE__, 0x00000000,	"0", "%x"},
+  {__LINE__, 0xfffffe1d,	"FFFFFE1D", "%X"},
+  {__LINE__, 0xfffffb33,	"fffffb33", "%x"},
+  {__LINE__, 0x02b5e30a,	"45474570", "%d"},
+  {__LINE__, 0x000074eb,	"29931", "%03.ld"},
+  {__LINE__, -0x4e42e310,	"-1313006352", "%-0.d"},
+  {__LINE__, -0x000007b,	"-123", "%d"},
+  {__LINE__, 0x00000160,	" 352", "% d"},
+  {__LINE__, -0x16af31ec,	"-380580332", "%#ld"},
+  {__LINE__, -0x000006e,	"-000110", "%07ld"},
+  {__LINE__, 0x232699a0,	"232699a0", "%7.x"},
+  {__LINE__, 0x00f9b8e5,	"+16365797", "%+0d"},
+  {__LINE__, 0x0000000c,	"C", "%X"},
+  {__LINE__, 0xfffffd4f,	"FFFFFD4F", "%X"},
+  {__LINE__, 0xffffe7bb,	"FFFFE7BB", "%.7X"},
+  {__LINE__, -0x0000163,	"-355", "%d"},
+  {__LINE__, 0x00070315,	" 459541", "% #2.d"},
+  {__LINE__, -0x7d5c12a,	"-131449130", "% 6.ld"},
+  {__LINE__, 0xffffffb2,	"FFFFFFB2", "%X"},
+  {__LINE__, -0x0004aad,	"-19117", "%+6.4ld"},
+  {__LINE__, 0x00115586,	"1136006", "%0d"},
+  {__LINE__, -0x0000021,	"-33", "%d"},
+  {__LINE__, 0x093ce01e,	"93ce01e", "% 5x"},
+  {__LINE__, 0x00672135,	"672135", "% x"},
+  {__LINE__, 0x05f4abd5,	"0x5f4abd5", "%+#6.x"},
+  {__LINE__, -0x0448b03,	"-4492035", "%-0.2ld"},
+  {__LINE__, 0x00000000,	"0", "%#x"},
+  {__LINE__, 0x1987217e,	"428286334", "%d"},
+  {__LINE__, 0x000010f6,	"10f6", "%-x"},
+  {__LINE__, 0x0000177a,	"177a", "%1x"},
+  {__LINE__, 0xfffffefd,	"FFFFFEFD", "%7X"},
+  {__LINE__, -0x095cbf8,	"-9817080", "%-5ld"},
+  {__LINE__, 0x0000008a,	"138", "%2.0ld"},
+  {__LINE__, 0xfffe80ad,	"fffe80ad", "%0x"},
+  {__LINE__, -0x1a4c8f7,	"-27576567", "%d"},
+  {__LINE__, 0x00000000,	"0", "%-x"},
+  {__LINE__, 0x0000a82b,	"43051", "%-ld"},
+  {__LINE__, 0x000000eb,	"235", "%2.3ld"},
+  {__LINE__, -0x0002747,	"-10055", "%d"},
+  {__LINE__, 0x00000319,	"0X319", "%#X"},
+  {__LINE__, 0xfffffcfe,	"FFFFFCFE", "% X"},
+  {__LINE__, 0x00050f0e,	"50f0e", "%-1x"},
+  {__LINE__, -0x398e09e,	"-60350622", "%0.7ld"},
+  {__LINE__, 0x00000000,	"  ", "%2.ld"},
+  {__LINE__, 0x00000049,	"00049", "% .5X"},
+  {__LINE__, -0x00000dd,	" -221", "%+#5ld"},
+  {__LINE__, 0xf6db2fac,	"f6db2fac", "%-07x"},
+  {__LINE__, 0x0000004f,	"4F", "% .0X"},
+  {__LINE__, 0x00000000,	"0", "%x"},
+  {__LINE__, 0xfd07f692,	"fd07f692", "%x"},
+  {__LINE__, 0xdb98bde0,	"db98bde0", "%x"},
+  {__LINE__, 0x00000271,	"0271", "% 3.4x"},
+  {__LINE__, -0x000115a,	"-4442", "%#1.ld"},
+  {__LINE__, 0x0002f5f2,	"194034", "%ld"},
+  {__LINE__, -0x0000152,	"   -338", "%+7ld"},
+  {__LINE__, 0x00059336,	"365366", "%d"},
+  {__LINE__, 0xfffffff6,	"fffffff6", "%-7x"},
+  {__LINE__, 0xfb916c51,	"fb916c51", "%-x"},
+  {__LINE__, 0xffff413d,	"FFFF413D", "%-X"},
+  {__LINE__, 0xf2576910,	"F2576910", "%-4.X"},
+  {__LINE__, 0xfffc7730,	"fffc7730", "%5.x"},
+  {__LINE__, 0x000002e6,	"+742", "%+1d"},
+  {__LINE__, -0x00001bf,	"-447", "%3d"},
+  {__LINE__, 0x000002e1,	"2E1", "%-X"},
+  {__LINE__, 0x00000096,	"150", "%#0ld"},
+  {__LINE__, 0x000002bd,	"701", "%d"},
+  {__LINE__, -0x0053386,	"-340870", "%#d"},
+  {__LINE__, 0xfffdb076,	"FFFDB076", "%X"},
+  {__LINE__, 0x00004dc5,	" +19909", "%+07.ld"},
+  {__LINE__, 0x00000f7a,	" F7A", "%4X"},
+  {__LINE__, 0x02405000,	" 37769216", "% ld"},
+  {__LINE__, 0xfffce68d,	"fffce68d", "%0x"},
+  {__LINE__, -0x35b3af2,	"-56310514", "%-ld"},
+  {__LINE__, -0x0238631,	"-2328113", "%.4d"},
+  {__LINE__, -0x000001e,	"-030", "%.3ld"},
+  {__LINE__, 0xffffffdd,	"FFFFFFDD", "%.4X"},
+  {__LINE__, 0x0013f6ac,	"13f6ac", "%02.x"},
+  {__LINE__, 0xfffffffa,	"fffffffa", "%+07.x"},
+  {__LINE__, -0x000192b,	" -6443", "%6.d"},
+  {__LINE__, 0x0000058b,	"+1419", "%+d"},
+  {__LINE__, 0x00001391,	"5009", "%ld"},
+  {__LINE__, -0x0041a57,	"-268887", "%1ld"},
+  {__LINE__, -0x0041a57,	"-268887", "%1ld"},
+  {__LINE__, 0xfffff266,	"0xfffff266", "%+#6.6x"},
+  {__LINE__, 0x0000018b,	"   395", "%6.ld"},
+  {__LINE__, 0x009ae24d,	"+10150477", "%+ld"},
+  {__LINE__, 0x0000007e,	"7E", "%X"},
+  {__LINE__, 0xfffffd53,	"FFFFFD53", "% 0X"},
+  {__LINE__, 0x000002fa,	"2FA", "%-1.3X"},
+  {__LINE__, 0x000000a4,	"164", "%0d"},
+  {__LINE__, 0x00001833,	"6195", "%ld"},
+  {__LINE__, -0x0000001,	"-1", "%d"},
+  {__LINE__, 0xf2fcbd9b,	"F2FCBD9B", "%+0.2X"},
+  {__LINE__, 0x00004a8a,	"4A8A", "%X"},
+  {__LINE__, -0x10695cda,	"-275340506", "%d"},
+  {__LINE__, 0x00000037,	"37", "%X"},
+  {__LINE__, 0x00082d5c,	"82D5C", "%+0.5X"},
+  {__LINE__, 0xfffffe01,	"fffffe01", "% 5.3x"},
+  {__LINE__, 0x000005ea,	"05EA", "% 1.4X"},
+  {__LINE__, 0x0e0b8826,	"e0b8826", "%2x"},
+  {__LINE__, -0x0000161,	"-353", "%+d"},
+  {__LINE__, 0x19e3014a,	"19E3014A", "%+5X"},
+  {__LINE__, 0x00000140,	"140", "%x"},
+  {__LINE__, 0xffff84b9,	"FFFF84B9", "%X"},
+  {__LINE__, -0x0005776,	"-22390", "%+5ld"},
+  {__LINE__, 0x0162ad61,	"162AD61", "% X"},
+  {__LINE__, 0x00002395,	"2395", "%X"},
+  {__LINE__, 0x003702ec,	"3605228", "%5.2d"},
+  {__LINE__, 0xffffffff,	"FFFFFFFF", "%7X"},
+  {__LINE__, 0x00001778,	"0x1778", "%#5.x"},
+  {__LINE__, 0xc52bef7f,	"C52BEF7F", "%X"},
+  {__LINE__, 0xfffffec4,	"FFFFFEC4", "%X"},
+  {__LINE__, 0x00000006,	"6", "%X"},
+  {__LINE__, 0x00000000,	"000", "%03.3x"},
+  {__LINE__, 0x00000000,	"0", "%x"},
+  {__LINE__, 0xffff6c46,	"FFFF6C46", "% 2.2X"},
+  {__LINE__, -0x1506098,	"-22044824", "%01.d"},
+  {__LINE__, 0x03415caf,	"3415caf", "%x"},
+  {__LINE__, -0x00007b4,	"-1972", "%#4.4d"},
+  {__LINE__, -0x00158c9,	"-88265", "%03.4d"},
+  {__LINE__, 0x6947c336,	"1766310710", "%.6d"},
+  {__LINE__, 0x0000017c,	"17C", "% 0X"},
+  {__LINE__, -0x00001b7,	"-439", "% 0ld"},
+  {__LINE__, 0x06a7575a,	"6A7575A", "%-.0X"},
+  {__LINE__, 0x000b3459,	"734297", "%ld"},
+  {__LINE__, -0x395d8dd,	"-60152029", "%ld"},
+  {__LINE__, 0x00036bb3,	"224179", "%-6.d"},
+  {__LINE__, 0xffff14ff,	"FFFF14FF", "%X"},
+  {__LINE__, -0x15910e4f,	"-361827919", "%-0d"},
+  {__LINE__, -0x0000004,	"-4", "%#d"},
+  {__LINE__, 0xf7f7adac,	"F7F7ADAC", "% 3.X"},
+  {__LINE__, 0xffffff74,	"FFFFFF74", "%0X"},
+  {__LINE__, 0x00000000,	"0", "%d"},
+  {__LINE__, -0x000007b,	"-123   ", "%-7.d"},
+  {__LINE__, -0x000002c,	"-44", "%d"},
+  {__LINE__, -0x000002b,	"  -43", "%5d"},
+  {__LINE__, 0x0000ae5f,	"44639", "%d"},
+  {__LINE__, 0x003cbc63,	"3CBC63", "%X"},
+  {__LINE__, 0xfffffffc,	"0XFFFFFFFC", "%#5.7X"},
+  {__LINE__, 0x0003e044,	"3E044", "%X"},
+  {__LINE__, -0x0000c46,	"-3142", "%.1d"},
+  {__LINE__, 0xff18f4bb,	"FF18F4BB", "%0X"},
+  {__LINE__, 0xfffffffd,	"FFFFFFFD", "%.1X"},
+  {__LINE__, -0x01c0f27,	"-1838887", "%0d"},
+  {__LINE__, -0x1242901f,	"-306352159", "%.4ld"},
+  {__LINE__, 0x1775c10a,	"393593098", "%6.ld"},
+  {__LINE__, 0x00000001,	"  1", "%03.d"},
+  {__LINE__, 0xfff1fd30,	"0xfff1fd30", "%#x"},
+  {__LINE__, 0x00000191,	"191", "%0.X"},
+  {__LINE__, 0x2e597178,	"777613688", "%2.ld"},
+  {__LINE__, -0x4ef0cf3,	"-82775283", "%+.6ld"},
+  {__LINE__, -0x0000085,	"  -133", "%6.d"},
+  {__LINE__, 0x0000014d,	"333  ", "%-5ld"},
+  {__LINE__, -0xc03bd74,	"-201571700", "%07.6ld"},
+  {__LINE__, -0x000000a,	"-10", "%d"},
+  {__LINE__, 0x01f5e86e,	"32893038", "%#2.ld"},
+  {__LINE__, 0x00000033,	"0X33", "% #X"},
+  {__LINE__, 0x0087c797,	" 8898455", "% 7.d"},
+  {__LINE__, -0x0001205,	"-4613", "%5d"},
+  {__LINE__, 0x00000192,	"    192", "%7.X"},
+  {__LINE__, 0x000e6c00,	"945152", "%6.1ld"},
+  {__LINE__, 0x00018629,	" 99881", "% d"},
+  {__LINE__, -0x04739c6,	"-4667846", "%-01.3ld"},
+  {__LINE__, 0x00001f42,	"8002", "%d"},
+  {__LINE__, 0x00000caf,	"3247", "%d"},
+  {__LINE__, -0x4992e24,	"-77147684", "%#.6d"},
+  {__LINE__, 0x0000001d,	"1d", "%-0x"},
+  {__LINE__, 0x14d79f03,	"349675267", "%0ld"},
+  {__LINE__, 0x00000dd4,	" 03540", "%#6.5ld"},
+  {__LINE__, 0x0005f30e,	"0X5F30E", "%#X"},
+  {__LINE__, 0x00000157,	"157", "%X"},
+  {__LINE__, -0x9281698,	"-153622168", "%d"},
+  {__LINE__, -0x000004a,	"-74", "%d"},
+  {__LINE__, -0x0010c9e,	"-68766", "%-0d"},
+  {__LINE__, 0x00000059,	"00089", "%.5ld"},
+  {__LINE__, -0x06959e3,	"-6904291", "% 4.d"},
+  {__LINE__, 0xfbea12b1,	"0XFBEA12B1", "%+#X"},
+  {__LINE__, 0xffffdfb1,	"FFFFDFB1", "%2.6X"},
+  {__LINE__, 0x0434faac,	"434faac", "%.5x"},
+  {__LINE__, 0xffffffff,	"ffffffff", "% x"},
+  {__LINE__, 0x00000b32,	"B32", "%0X"},
+  {__LINE__, 0x00000047,	"71", "%.1d"},
+  {__LINE__, 0x00070bef,	" 0461807", "% .7d"},
+  {__LINE__, 0x00000038,	"38", "% 0x"},
+  {__LINE__, 0x00000000,	"     0", "%6X"},
+  {__LINE__, 0xfff9c011,	"FFF9C011", "%2X"},
+  {__LINE__, 0xfffffffe,	"fffffffe", "%7x"},
+  {__LINE__, 0xfffffff9,	"FFFFFFF9", "%X"},
+  {__LINE__, -0x016a095,	"-1482901", "%4.0ld"},
+  {__LINE__, -0x000001c,	"-28", "% ld"},
+  {__LINE__, 0xfffd6133,	"0xfffd6133", "%#x"},
+  {__LINE__, 0x000004a4,	"0x4a4", "%#x"},
+  {__LINE__, 0x000003c2,	"0962", "%.4d"},
+  {__LINE__, -0x000323b,	"-12859", "%+#d"},
+  {__LINE__, 0x0f620237,	"F620237", "%X"},
+  {__LINE__, 0x00007863,	"007863", "%.6X"},
+  {__LINE__, 0x0000002c,	" 44", "% #ld"},
+  {__LINE__, 0xfffffff0,	"fffffff0", "%03.6x"},
+  {__LINE__, 0xffff6346,	"FFFF6346", "%1.X"},
+  {__LINE__, 0x00063188,	"63188", "% x"},
+  {__LINE__, 0xfffff91c,	"fffff91c", "%-.3x"},
+  {__LINE__, 0x004cd0b4,	"4CD0B4", "%-2.X"},
+  {__LINE__, 0x06b4d739,	"112514873", "%0.1d"},
+  {__LINE__, -0x0009beb,	"-39915", "%.2d"},
+  {__LINE__, 0x0000831b,	"33563", "%d"},
+  {__LINE__, 0x00000001,	"1", "%X"},
+  {__LINE__, -0x942d76b,	"-155375467", "% #0ld"},
+  {__LINE__, 0xffff2a95,	"FFFF2A95", "%2X"},
+  {__LINE__, 0x00548d5e,	"5541214", "%.3ld"},
+  {__LINE__, 0x0b5e1a01,	"B5E1A01", "% .7X"},
+  {__LINE__, 0xfffffc22,	"fffffc22", "%6x"},
+  {__LINE__, -0x0000dd7,	"-3543", "%-.3ld"},
+  {__LINE__, 0xfffff834,	"FFFFF834", "%X"},
+  {__LINE__, 0x0365f762,	"57014114", "%ld"},
+  {__LINE__, -0x0000003,	"-3", "%d"},
+  {__LINE__, 0x3bd998a3,	"1004116131", "%d"},
+  {__LINE__, 0xfffff6c9,	"FFFFF6C9", "%+X"},
+  {__LINE__, 0xffffded9,	"FFFFDED9", "%-.1X"},
+  {__LINE__, -0x00fbb5a,	"-1031002", "% 1.0d"},
+  {__LINE__, 0xffffffb7,	"ffffffb7", "%6.x"},
+  {__LINE__, 0xff1b8ac3,	"FF1B8AC3", "%-X"},
+  {__LINE__, 0xfffffff2,	"FFFFFFF2", "%00.X"},
+  {__LINE__, -0x000013d,	" -317", "%05.d"},
+  {__LINE__, 0x0000f5e2,	"+62946", "%+0.2ld"},
+  {__LINE__, 0x16ac6358,	"16ac6358", "%x"},
+  {__LINE__, 0xffff8728,	"FFFF8728", "%+X"},
+  {__LINE__, -0x0014a6d,	"-084589", "%0.6ld"},
+  {__LINE__, 0xfc904514,	"FC904514", "%+0X"},
+  {__LINE__, 0x00000004,	"4", "%ld"},
+  {__LINE__, 0xffffffe0,	"ffffffe0", "%+x"},
+  {__LINE__, -0x0a0ffdd,	"-10551261", "%+02d"},
+  {__LINE__, -0x0000bbc,	"-3004", "%+d"},
+  {__LINE__, 0x00000006,	"     +6", "%+7ld"},
+  {__LINE__, 0x17afa6e5,	"397387493", "%ld"},
+  {__LINE__, 0xfffff6bf,	"fffff6bf", "%+04.4x"},
+  {__LINE__, 0x000001dc,	"01dc", "% 02.4x"},
+  {__LINE__, 0x0000000e,	" 14", "% d"},
+  {__LINE__, 0xfffffff9,	"0XFFFFFFF9", "%#4.X"},
+  {__LINE__, 0x0000005d,	"93", "%0d"},
+  {__LINE__, -0x004fa05,	"-0326149", "%.7d"},
+  {__LINE__, -0x0000018,	"-24", "%ld"},
+  {__LINE__, 0xfffff7eb,	"FFFFF7EB", "%X"},
+  {__LINE__, 0x0072b044,	" 7516228", "% .7ld"},
+  {__LINE__, 0xffffffed,	"0xffffffed", "%#x"},
+  {__LINE__, 0x0010364d,	"10364D", "%X"},
+  {__LINE__, 0xfff90469,	"0XFFF90469", "%#X"},
+  {__LINE__, 0x000001b4,	" 436", "% 0d"},
+  {__LINE__, 0x00000000,	"0", "% X"},
+  {__LINE__, 0xfffffff3,	"fffffff3", "%x"},
+  {__LINE__, 0x19335d40,	"19335d40", "%6x"},
+  {__LINE__, 0x00039c24,	"236580", "%ld"},
+  {__LINE__, 0x000021f7,	"8695", "%0.4ld"},
+  {__LINE__, -0x057b406,	"-5747718", "%d"},
+  {__LINE__, -0x017b371,	"-1553265", "%#ld"},
+  {__LINE__, 0x0003e405,	"254981", "%2.d"},
+  {__LINE__, 0x00000001,	"1", "%-.1x"},
+  {__LINE__, 0x000000ae,	"AE", "%.1X"},
+  {__LINE__, 0xffd85825,	"ffd85825", "%-7.x"},
+  {__LINE__, 0xfffad763,	"fffad763", "%x"},
+  {__LINE__, 0x002431d4,	"2372052", "%6.ld"},
+  {__LINE__, 0x00000003,	"000003", "%-05.6d"},
+  {__LINE__, 0xffffffeb,	"0xffffffeb", "%#x"},
+  {__LINE__, 0xff8cf3b0,	"ff8cf3b0", "%x"},
+  {__LINE__, 0xfe88d2ff,	"0xfe88d2ff", "%+#.2x"},
+  {__LINE__, 0xffffff6b,	"ffffff6b", "%6.3x"},
+  {__LINE__, 0xfffffffe,	"fffffffe", "%-x"},
+  {__LINE__, 0xe998945a,	"e998945a", "%2.x"},
+  {__LINE__, 0x03b9c50f,	"3B9C50F", "%+X"},
+  {__LINE__, 0xffffffff,	"FFFFFFFF", "%3.7X"},
+  {__LINE__, 0x000024ef,	"24ef", "%+x"},
+  {__LINE__, 0xfffffc04,	"FFFFFC04", "%X"},
+  {__LINE__, 0x0d4bef7c,	" 223080316", "% .1ld"},
+  {__LINE__, -0xc33f3bc,	"-204731324", "%.5ld"},
+  {__LINE__, 0xffffffff,	"0XFFFFFFFF", "%#2X"},
+  {__LINE__, 0x0000e493,	"e493", "%x"},
+  {__LINE__, 0x000001b4,	"1b4", "%x"},
+  {__LINE__, 0xffffffd6,	"0xffffffd6", "% #1x"},
+  {__LINE__, 0x00000001,	"1", "%d"},
+  {__LINE__, -0x0000f28,	"-3880", "%ld"},
+  {__LINE__, 0x00000277,	"631", "%-1ld"},
+  {__LINE__, 0x00000001,	" 1", "%2x"},
+  {__LINE__, -0x0ff4d2c,	"-16731436", "%#ld"},
+  {__LINE__, 0x0bb80344,	"196608836", "%00ld"},
+  {__LINE__, 0xffffffdc,	"FFFFFFDC", "%X"},
+  {__LINE__, 0x00000484,	"1156", "%ld"},
+  {__LINE__, 0x00000341,	"341", "%-.2x"},
+  {__LINE__, 0x0000ee62,	"ee62", "%x"},
+  {__LINE__, 0xfffffe20,	"fffffe20", "%+x"},
+  {__LINE__, -0x00076eb,	"-30443", "%.2d"},
+  {__LINE__, 0x2c4a7407,	"2c4a7407", "% x"},
+  {__LINE__, 0x00000000,	"   ", "%3.X"},
+  {__LINE__, 0xffffff60,	"ffffff60", "% 4.x"},
+  {__LINE__, 0x000e4cf2,	"+937202", "%+.5ld"},
+  {__LINE__, 0x00000008,	" 00008", "%06.5X"},
+  {__LINE__, 0x0002f612,	"194066", "%d"},
+  {__LINE__, 0xfffffc96,	"fffffc96", "%-3.3x"},
+  {__LINE__, -0x0000001,	"-1", "% ld"},
+  {__LINE__, 0x00000000,	"      ", "% 6.0X"},
+  {__LINE__, 0xfffffff5,	"fffffff5", "%3.x"},
+  {__LINE__, 0x0bfd63a1,	"201155489", "%d"},
+  {__LINE__, -0x1547c214,	"-357024276", "%ld"},
+  {__LINE__, 0x00000004,	"4", "%#0.d"},
+  {__LINE__, -0x000f2f3,	"-62195", "%.2d"},
+  {__LINE__, 0xfff843dd,	"FFF843DD", "%X"},
+  {__LINE__, 0x00966e36,	"9858614", "%.0ld"},
+  {__LINE__, 0x0000782e,	"0X782E", "% #X"},
+  {__LINE__, 0x00bd36c0,	"12400320", "%ld"},
+  {__LINE__, 0x00000000,	"00", "% .2X"},
+  {__LINE__, 0x00000000,	"0", "%1X"},
+  {__LINE__, 0x0003f416,	"3f416 ", "%-6.x"},
+  {__LINE__, -0x00b74bd,	"-750781", "% ld"},
+  {__LINE__, 0x0000138a,	"138a", "% x"},
+  {__LINE__, 0x024df7f0,	"24DF7F0", "% 0.6X"},
+  {__LINE__, 0xfffffffc,	"FFFFFFFC", "%X"},
+  {__LINE__, -0x0003284,	"-12932 ", "%-07.ld"},
+  {__LINE__, 0x000094d3,	"94d3", "%x"},
+  {__LINE__, 0x000000bf,	"bf", "%.2x"},
+  {__LINE__, 0x00000000,	"00000", "%-1.5X"},
+  {__LINE__, -0x04899b8,	"-4757944", "%d"},
+  {__LINE__, 0x2b51bf20,	"+726777632", "%+d"},
+  {__LINE__, -0x000000d,	"-13", "%.2d"},
+  {__LINE__, 0x04f78fbd,	"4F78FBD", "% 7.X"},
+  {__LINE__, 0x00011684,	"71300", "%5.d"},
+  {__LINE__, 0x0000539d,	"21405", "%0d"},
+  {__LINE__, 0x00000008,	"000008", "%-3.6X"},
+  {__LINE__, 0xfc7a2cdc,	"fc7a2cdc", "%2.3x"},
+  {__LINE__, 0xffc21da1,	"ffc21da1", "%x"},
+  {__LINE__, 0x00000273,	"273", "%x"},
+  {__LINE__, 0x00000000,	"0", "%#X"},
+  {__LINE__, -0x31cd6b9,	"-52221625", "% d"},
+  {__LINE__, 0xfffffff8,	"FFFFFFF8", "%.0X"},
+  {__LINE__, 0x00000002,	"2", "%#ld"},
+  {__LINE__, 0x00e8922c,	"15241772", "%d"},
+  {__LINE__, 0xfeb19ea7,	"FEB19EA7", "%0.1X"},
+  {__LINE__, 0x00003931,	"014641", "%06ld"},
+  {__LINE__, 0x00000015,	"0X00015", "%#.5X"},
+  {__LINE__, 0xfffffffe,	"FFFFFFFE", "%1.X"},
+  {__LINE__, 0xfff17103,	"0XFFF17103", "% #X"},
+  {__LINE__, 0xfffffffc,	"FFFFFFFC", "%+X"},
+  {__LINE__, 0x00000002,	"00002", "%.5x"},
+  {__LINE__, 0x00001617,	"   5655", "% 7.d"},
+  {__LINE__, -0x0000010,	"-000016", "%00.6d"},
+  {__LINE__, 0x000000b0,	"B0", "% X"},
+  {__LINE__, 0xfc9362b2,	"FC9362B2", "%-X"},
+  {__LINE__, 0xfc3d8276,	"fc3d8276", "% 1x"},
+  {__LINE__, 0x00001405,	"5125", "%#d"},
+  {__LINE__, 0x02250183,	" 35979651", "% ld"},
+  {__LINE__, 0xffc9b007,	"ffc9b007", "% 4.x"},
+  {__LINE__, 0x00000311,	"785", "%0d"},
+  {__LINE__, 0x0004d273,	" 316019", "% d"},
+  {__LINE__, 0x00000001,	"1", "%1.x"},
+  {__LINE__, 0xffff240f,	"FFFF240F", "%4.X"},
+  {__LINE__, 0x0049cfda,	"+4837338", "%+ld"},
+  {__LINE__, 0x012f6dd5,	"12F6DD5", "% 6.2X"},
+  {__LINE__, 0x00000002,	"0x2", "%#2.0x"},
+  {__LINE__, 0xfffd834a,	"FFFD834A", "%.6X"},
+  {__LINE__, 0xfe2a40f8,	"0XFE2A40F8", "%#X"},
+  {__LINE__, 0xffffffeb,	"ffffffeb", "%x"},
+  {__LINE__, -0x00ac5cb,	"-705995", "%d"},
+  {__LINE__, -0x3021108c,	"-807473292", "% .4d"},
+  {__LINE__, -0x0000035,	"-53", "%-ld"},
+  {__LINE__, -0x1a36475,	"-27485301", "% d"},
+  {__LINE__, -0x0000011,	"-17", "%d"},
+  {__LINE__, 0x000001a3,	"000419", "%.6ld"},
+  {__LINE__, 0x0030a0a8,	"3186856", "%.5ld"},
+  {__LINE__, 0x00000019,	"25", "%d"},
+  {__LINE__, 0xf32deac1,	"F32DEAC1", "%06.2X"},
+  {__LINE__, -0x0000004,	" -00004", "%7.5ld"},
+  {__LINE__, 0x00000000,	"0", "%ld"},
+  {__LINE__, 0x0006bf19,	"442137", "%#0.d"},
+  {__LINE__, 0x566f6c44,	"1450142788", "%1.6d"},
+  {__LINE__, 0xfffffc10,	"fffffc10", "%.2x"},
+  {__LINE__, -0x000e04d,	"-57421", "%+0d"},
+  {__LINE__, 0x00000000,	"0000000", "%+.7X"},
+  {__LINE__, 0x00b5c74d,	" 11913037", "% ld"},
+  {__LINE__, -0x028dfe2,	"-2678754", "%05.1d"},
+  {__LINE__, 0xfffffee0,	"fffffee0", "%0x"},
+  {__LINE__, -0x030c077,	"-3194999", "%-.6d"},
+  {__LINE__, 0x00055ca1,	"055ca1", "%-.6x"},
+  {__LINE__, 0x00000000,	"       ", "%7.X"},
+  {__LINE__, 0xfffffe3b,	"FFFFFE3B", "%X"},
+  {__LINE__, 0xffffffff,	"FFFFFFFF", "% 3X"},
+  {__LINE__, 0x00000857,	"2135", "%-#1.d"},
+  {__LINE__, -0x00546a2,	"-345762", "%0.5d"},
+  {__LINE__, 0x0000000b,	"0xb   ", "%-#6x"},
+  {__LINE__, 0x00000d2b,	"d2b ", "%-4.0x"},
+  {__LINE__, 0x0ae02b9e,	"AE02B9E", "%X"},
+  {__LINE__, 0xfffffa7b,	"fffffa7b", "%-2.x"},
+  {__LINE__, 0x00000001,	"1", "%X"},
+  {__LINE__, 0x000006ad,	"01709", "%05.5ld"},
+  {__LINE__, -0x0000102,	"-258", "%-0.ld"},
+  {__LINE__, 0x00000000,	"0", "%.1X"},
+  {__LINE__, -0x01daa95,	"-1944213", "%-1ld"},
+  {__LINE__, 0x02b99040,	"2B99040", "%2.X"},
+  {__LINE__, 0x1b3d5621,	"1B3D5621", "%X"},
+  {__LINE__, 0x0312d16b,	"51564907", "%-1.7ld"},
+  {__LINE__, 0x000aa76c,	" 698220", "% 2d"},
+  {__LINE__, 0x00000000,	"0", "%ld"},
+  {__LINE__, 0xfff8a4ec,	"FFF8A4EC", "%-X"},
+  {__LINE__, 0xffffe06d,	"ffffe06d", "%x"},
+  {__LINE__, 0x00000003,	"3", "% x"},
+  {__LINE__, 0x00000000,	"0", "%x"},
+  {__LINE__, 0xd3e244dd,	"D3E244DD", "%+5X"},
+  {__LINE__, 0x000028b3,	" 28b3", "% 5.x"},
+  {__LINE__, 0x0001aceb,	"109803", "%6d"},
+  {__LINE__, 0xfffbc5ca,	"0xfffbc5ca", "%-#5x"},
+  {__LINE__, 0x00000097,	"    151", "% 7ld"},
+  {__LINE__, 0x00001fcc,	"+8140", "%+d"},
+  {__LINE__, 0xffffffff,	"ffffffff", "%0x"},
+  {__LINE__, -0x00052a9,	"-21161", "%ld"},
+  {__LINE__, 0xfffffc76,	"FFFFFC76", "%.1X"},
+  {__LINE__, -0x2acb012,	"-44871698", "%0.1ld"},
+  {__LINE__, 0xffffff81,	"ffffff81", "%x"},
+  {__LINE__, -0x0018394,	"-99220", "%-ld"},
+  {__LINE__, 0x0000001b,	"1B", "%X"},
+  {__LINE__, 0x00000033,	"51", "%1d"},
+  {__LINE__, 0xffec37e5,	"FFEC37E5", "%-1X"},
+  {__LINE__, -0x000000a,	"  -10", "%#5.d"},
+  {__LINE__, -0x0000412,	"-1042", "%ld"},
+  {__LINE__, 0x000cd0b1,	"cd0b1  ", "%-7.5x"},
+  {__LINE__, 0x0b445370,	"B445370", "%+2.0X"},
+  {__LINE__, 0xfffffff3,	"0XFFFFFFF3", "%-#X"},
+  {__LINE__, 0xffff9f33,	"FFFF9F33", "%5.X"},
+  {__LINE__, 0x00010a1e,	"10A1E", "%-2X"},
+  {__LINE__, -0xede156f,	"-249435503", "% 7.1ld"},
+  {__LINE__, 0xfc6d63aa,	"fc6d63aa", "% .6x"},
+  {__LINE__, 0x0000311c,	" 12572", "% ld"},
+  {__LINE__, 0x00001f8a,	"8074", "%00.d"},
+  {__LINE__, 0x00000199,	"199", "%-X"},
+  {__LINE__, 0xfffffc60,	"FFFFFC60", "%+3X"},
+  {__LINE__, -0x000022c,	"-556", "%+0ld"},
+  {__LINE__, 0x021d8407,	"35488775", "%-#.7ld"},
+  {__LINE__, 0x0000020f,	"527", "%d"},
+  {__LINE__, -0x000064b,	"-1611", "%#ld"},
+  {__LINE__, -0x0c15aef,	"-12671727", "%d"},
+  {__LINE__, -0x1f1a6881,	"-521824385", "%ld"},
+  {__LINE__, 0xffffc115,	"ffffc115", "% x"},
+  {__LINE__, 0x00000017,	" 23", "% #ld"},
+  {__LINE__, 0x00000dc1,	"DC1 ", "%-4X"},
+  {__LINE__, 0x000002ca,	"2CA", "%X"},
+  {__LINE__, 0x000f052c,	" 984364", "%7.d"},
+  {__LINE__, 0x0000005a,	"0090", "%0.4d"},
+  {__LINE__, -0x001e463,	"-124003", "% 4.ld"},
+  {__LINE__, 0x00000001,	"0000001", "%+.7X"},
+  {__LINE__, 0x00000bfb,	"0000bfb", "%5.7x"},
+  {__LINE__, 0x0002484b,	"149579", "%#1d"},
+  {__LINE__, 0x0043ba18,	"4438552", "%-ld"},
+  {__LINE__, 0x000078f8,	"0X78F8", "%#X"},
+  {__LINE__, 0x00000001,	"   1", "%4d"},
+  {__LINE__, 0x0cedaeed,	"CEDAEED", "%X"},
+  {__LINE__, 0x00000003,	"+3", "%+ld"},
+  {__LINE__, 0xfffffffb,	"FFFFFFFB", "%7.4X"},
+  {__LINE__, 0x00000169,	"361", "%ld"},
+  {__LINE__, 0x00003c7a,	"+15482", "%+ld"},
+  {__LINE__, -0x0159d93,	"-1416595", "% 0.0d"},
+  {__LINE__, 0x0000775c,	"+30556", "%+3.d"},
+  {__LINE__, 0x10284768,	"+271075176", "%+0.0ld"},
+  {__LINE__, -0xf8b610e,	"-260792590", "%0d"},
+  {__LINE__, 0xfdd8d369,	"fdd8d369", "%-.3x"},
+  {__LINE__, 0x000c9495,	"+824469", "%+ld"},
+  {__LINE__, -0x000003f,	"   -063", "%7.3d"},
+  {__LINE__, -0x000073b,	"-1851", "%+03.ld"},
+  {__LINE__, 0xfffe4e23,	"0xfffe4e23", "%#.5x"},
+  {__LINE__, 0x0081788c,	"81788c", "%5x"},
+  {__LINE__, -0x015f888,	"-1439880", "%+1d"},
+  {__LINE__, -0x31d64b4,	"-52257972", "%0.2d"},
+  {__LINE__, 0xffffffff,	"FFFFFFFF", "%6.5X"},
+  {__LINE__, -0x0000072,	"-114", "%+.1d"},
+  {__LINE__, -0x00000e1,	"-225", "%ld"},
+  {__LINE__, 0x000006a8,	"0x6a8", "%+#x"},
+  {__LINE__, 0xfffe673a,	"fffe673a", "%01.x"},
+  {__LINE__, 0xfff2ee0d,	"FFF2EE0D", "%-X"},
+  {__LINE__, 0x0290320a,	"43004426", "%0ld"},
+  {__LINE__, -0xeb7a832,	"-246917170", "% ld"},
+  {__LINE__, 0x02ae9265,	"2ae9265", "%1.x"},
+  {__LINE__, 0xffffffd2,	"ffffffd2", "%+2.x"},
+  {__LINE__, 0x00e6e858,	"0xe6e858", "%#0.x"},
+  {__LINE__, 0x00000c4a,	"+3146", "%+3.1d"},
+  {__LINE__, -0x6943c1a,	"-110378010", "% 0ld"},
+  {__LINE__, 0x0167b119,	"167b119", "%0x"},
+  {__LINE__, 0xfffffffe,	"fffffffe", "%+x"},
+  {__LINE__, 0xfffffffe,	"FFFFFFFE", "%X"},
+  {__LINE__, 0x000b861e,	"755230", "%ld"},
+  {__LINE__, 0x0000015b,	"347", "%-#ld"},
+  {__LINE__, 0xfffffffa,	"0XFFFFFFFA", "%#X"},
+  {__LINE__, 0x000de9e5,	"911845", "%d"},
+  {__LINE__, 0x00000001,	"01", "%.2d"},
+  {__LINE__, 0x000007a5,	"1957", "%0d"},
+  {__LINE__, 0x0000000f,	"f", "%x"},
+  {__LINE__, 0x00c38cbf,	" 12815551", "% .2d"},
+  {__LINE__, -0x7bd1b6e,	"-129833838", "% d"},
+  {__LINE__, -0x000013c,	"-316", "%0d"},
+  {__LINE__, 0x00001aad,	"1AAD", "%-0X"},
+  {__LINE__, 0x0034f903,	"3471619", "%00d"},
+  {__LINE__, 0xff925717,	"ff925717", "%4x"},
+  {__LINE__, 0x00000002,	"02", "%.2d"},
+  {__LINE__, 0x00000f34,	"F34", "%+X"},
+  {__LINE__, 0xffffeefe,	"FFFFEEFE", "%X"},
+  {__LINE__, 0xfffeecb4,	"FFFEECB4", "% 2.X"},
+  {__LINE__, 0x00034421,	"214049", "%0ld"},
+  {__LINE__, 0x00000000,	"     0", "%+6X"},
+  {__LINE__, -0x0000062,	"-98", "%-#2d"},
+  {__LINE__, -0x0000557,	"-1367", "%-4.4d"},
+  {__LINE__, 0xffffe17c,	"FFFFE17C", "%X"},
+  {__LINE__, 0x00000097,	"00097", "%.5X"},
+  {__LINE__, 0xfffcb278,	"FFFCB278", "%0.7X"},
+  {__LINE__, -0x0000001,	"-0001  ", "%-7.4d"},
+  {__LINE__, -0x0000001,	"-1", "%ld"},
+  {__LINE__, 0x000002c4,	"708", "%d"},
+  {__LINE__, 0x04946f45,	"4946F45", "%-2.X"},
+  {__LINE__, 0x000000ff,	"00ff", "% 2.4x"},
+  {__LINE__, 0x00073307,	"471815", "%3ld"},
+  {__LINE__, 0x0085b7b6,	"+8763318", "%+ld"},
+  {__LINE__, -0x0000002,	"-2", "%1ld"},
+  {__LINE__, -0x0000001,	"-1", "%-2d"},
+  {__LINE__, -0x00000b5,	"   -181", "%7ld"},
+  {__LINE__, -0x0412486,	"-4269190", "%+2.1ld"},
+  {__LINE__, 0xffffffff,	"ffffffff", "%0x"},
+  {__LINE__, 0x0000006d,	"6d", "%x"},
+  {__LINE__, 0x000000da,	"218", "%-.3ld"},
+  {__LINE__, 0xfffffcfe,	"fffffcfe", "%x"},
+  {__LINE__, 0x652e60c7,	"652E60C7", "%7.7X"},
+  {__LINE__, 0x00000035,	" 53", "% #2d"},
+  {__LINE__, 0x000000fc,	"FC", "%-X"},
+  {__LINE__, 0x00000019,	" 25", "% ld"},
+  {__LINE__, 0xfffffcf4,	"fffffcf4", "%6x"},
+  {__LINE__, 0xffffff41,	"ffffff41", "%x"},
+  {__LINE__, 0x00000034,	" 52", "%3.ld"},
+  {__LINE__, 0xffffffb2,	"ffffffb2", "%-x"},
+  {__LINE__, -0x6dc43e7c,	"-1841577596", "% .2ld"},
+  {__LINE__, 0x00000004,	"4", "%d"},
+  {__LINE__, -0x000023b,	"-571", "%ld"},
+  {__LINE__, -0x000004d,	"-77", "%ld"},
+  {__LINE__, 0x0000e3ba,	"58298", "%.0ld"},
+  {__LINE__, 0xfffffff2,	"fffffff2", "%0.0x"},
+  {__LINE__, -0x0000020,	"-32", "%ld"},
+  {__LINE__, 0xffffb33e,	"0XFFFFB33E", "%-#X"},
+  {__LINE__, 0x00000000,	"    ", "% 4.x"},
+  {__LINE__, 0xffd96f92,	"FFD96F92", "%X"},
+  {__LINE__, 0x0000002e,	" 46", "% 0ld"},
+  {__LINE__, 0xffffffff,	"ffffffff", "%x"},
+  {__LINE__, -0x5008ba3,	"-83921827", "%+d"},
+  {__LINE__, 0xfdc1df3d,	"FDC1DF3D", "%0X"},
+  {__LINE__, 0xfc7410e5,	"fc7410e5", "%7x"},
+  {__LINE__, 0xfffffffa,	"FFFFFFFA", "% 6.X"},
+  {__LINE__, 0x00000000,	"0", "%X"},
+  {__LINE__, -0x040fd4e,	"-4259150", "% 05.d"},
+  {__LINE__, 0x0000003b,	" 59", "%3.2d"},
+  {__LINE__, 0xff776dd8,	"ff776dd8", "%x"},
+  {__LINE__, 0x0000055b,	"+1371", "%+#2d"},
+  {__LINE__, 0x00004841,	"4841", "%.1x"},
+  {__LINE__, 0x0229d710,	"36296464", "%-.2ld"},
+  {__LINE__, 0x00000000,	"0", "%x"},
+  {__LINE__, 0xfffe8376,	"fffe8376", "%0x"},
+  {__LINE__, 0x000a7b83,	"a7b83", "%x"},
+  {__LINE__, 0x0000000d,	"    013", "%#7.3d"},
+  {__LINE__, 0xffffffff,	"FFFFFFFF", "%5.0X"},
+  {__LINE__, 0x00000704,	"  0x704", "%#7.0x"},
+  {__LINE__, 0xfff970b9,	"FFF970B9", "%.1X"},
+  {__LINE__, -0x000b60a,	"-46602", "%+d"},
+  {__LINE__, 0x00000000,	" 00000", "%6.5x"},
+  {__LINE__, 0x00000003,	"3", "%X"},
+  {__LINE__, 0x0000c14b,	"c14b", "%0x"},
+  {__LINE__, 0x066d7860,	"107837536", "%-d"},
+  {__LINE__, 0x00000013,	"  13", "%4.x"},
+  {__LINE__, 0xfff96f18,	"FFF96F18", "%4X"},
+  {__LINE__, 0xffffff30,	"FFFFFF30", "%X"},
+  {__LINE__, 0xffffffff,	"FFFFFFFF", "% .7X"},
+  {__LINE__, -0x72a9e985,	"-1923737989", "%2.d"},
+  {__LINE__, 0x00000002,	"0x2", "%#x"},
+  {__LINE__, 0x0000050e,	"50e", "%2.3x"},
+  {__LINE__, 0x0000605c,	"24668", "%4.1d"},
+  {__LINE__, 0xffffff3e,	"ffffff3e", "%x"},
+  {__LINE__, -0x0000010,	"-16", "%-2d"},
+  {__LINE__, 0x000061aa,	"61AA", "%X"},
+  {__LINE__, 0x000c2ec3,	"C2EC3", "%0X"},
+  {__LINE__, -0x0000001,	"-1", "%-0d"},
+  {__LINE__, 0x00130e17,	"+1248791", "%+.6ld"},
+  {__LINE__, 0x000000ef,	"EF", "%-X"},
+  {__LINE__, -0x0000001,	"   -1", "%+5ld"},
+  {__LINE__, 0x0000989d,	"39069", "%d"},
+  {__LINE__, 0x00000000,	"0", "%-x"},
+  {__LINE__, 0x00000417,	"417", "%X"},
+  {__LINE__, 0x00005e86,	"5E86", "%+X"},
+  {__LINE__, -0x0007c08,	"-31752", "%ld"},
+  {__LINE__, 0x00da8e0f,	"DA8E0F", "%2.2X"},
+  {__LINE__, -0x3ee095ec,	"-1054905836", "% 0d"},
+  {__LINE__, 0xfffdb5a3,	"fffdb5a3", "%x"},
+  {__LINE__, 0xffffff83,	"FFFFFF83", "%X"},
+  {__LINE__, 0xfff8efd7,	"0xfff8efd7", "%#x"},
+  {__LINE__, 0x00000020,	" 32", "% d"},
+  {__LINE__, 0xfff7c002,	"fff7c002", "%.7x"},
+  {__LINE__, -0x0000001,	"-1", "%ld"},
+  {__LINE__, 0x00000000,	"  000", "%05.3X"},
+  {__LINE__, 0xfff190ee,	"FFF190EE", "%X"},
+  {__LINE__, 0x00000a6c,	"  2668", "%#6.ld"},
+  {__LINE__, 0x00037024,	"37024", "%x"},
+  {__LINE__, 0xfffec37f,	"FFFEC37F", "%X"},
+  {__LINE__, 0x007ee9bb,	"8317371", "%#0.ld"},
+  {__LINE__, 0x00000122,	"290", "%ld"},
+  {__LINE__, -0x0013b5f,	"-80735", "%ld"},
+  {__LINE__, 0xfffffff6,	"FFFFFFF6", "%X"},
+  {__LINE__, -0x0000c16,	"-0003094", "%-00.7d"},
+  {__LINE__, -0x00010ed,	"-4333", "%ld"},
+  {__LINE__, 0x00000007,	" 0X007", "%#6.3X"},
+  {__LINE__, 0x0053781e,	" 5470238", "% 2d"},
+  {__LINE__, 0xffff03e9,	"0XFFFF03E9", "%+#7.3X"},
+  {__LINE__, 0xfffffdc2,	"0xfffffdc2", "% #4.x"},
+  {__LINE__, -0x00018e1,	"-6369", "%d"},
+  {__LINE__, 0xf3a4abc6,	"F3A4ABC6", "%-.2X"},
+  {__LINE__, 0xfff64a27,	"FFF64A27", "%7.7X"},
+  {__LINE__, 0x00195ae5,	"195AE5", "%+03.X"},
+  {__LINE__, 0xfff8849a,	"fff8849a", "%.1x"},
+  {__LINE__, -0x001b045,	"-110661", "%+ld"},
+  {__LINE__, 0x01e8a106,	"32022790", "%7.ld"},
+  {__LINE__, 0x0008ee94,	"8EE94", "%X"},
+  {__LINE__, 0xfffcdabc,	"FFFCDABC", "%X"},
+  {__LINE__, 0xfda75cd2,	"fda75cd2", "%x"},
+  {__LINE__, 0x00fd505a,	"fd505a", "%x"},
+  {__LINE__, 0x00003748,	"3748", "%+x"},
+  {__LINE__, 0xffffffe5,	"ffffffe5", "% 3.6x"},
+  {__LINE__, -0x1d1c4045,	"-488390725", "%d"},
+  {__LINE__, 0xfffffff9,	"0xfffffff9", "%#x"},
+  {__LINE__, -0x0000001,	"-1", "%-#ld"},
+  {__LINE__, 0x00000191,	"191", "%X"},
+  {__LINE__, 0xfffffffe,	"FFFFFFFE", "%-X"},
+  {__LINE__, -0x0000006,	"-6", "%ld"},
+  {__LINE__, 0x00000033,	"  33", "% 4x"},
+  {__LINE__, -0x0159a14,	"-1415700", "% ld"},
+  {__LINE__, 0x000001c3,	"00001c3", "%07x"},
+  {__LINE__, 0xffffe9e2,	"ffffe9e2", "%-x"},
+  {__LINE__, 0x5b19abd9,	"0x5b19abd9", "%-#x"},
+  {__LINE__, 0xffff1bae,	"0xffff1bae", "%#x"},
+  {__LINE__, 0x00000001,	"+1", "%+d"},
+  {__LINE__, 0x006a23c7,	"6A23C7", "%2.X"},
+  {__LINE__, 0x000008a4,	" 8a4", "% 4.1x"},
+  {__LINE__, 0xfffffcd9,	"fffffcd9", "%.1x"},
+  {__LINE__, 0x0000121b,	"121B", "%X"},
+  {__LINE__, 0x001231aa,	"1192362", "%7.d"},
+  {__LINE__, -0x008026d,	"-524909", "%4.2d"},
+  {__LINE__, 0x192ea594,	"422487444", "%ld"},
+  {__LINE__, 0x0001a800,	"108544", "%0d"},
+  {__LINE__, 0x000062f1,	"62f1", "%.4x"},
+  {__LINE__, 0xff8b39b0,	"ff8b39b0", "% x"},
+  {__LINE__, 0x00000001,	"0x1", "%+#x"},
+  {__LINE__, 0x0000144a,	"5194", "%ld"},
+  {__LINE__, 0x00002599,	"9625", "%d"},
+  {__LINE__, 0xffa0a2ef,	"ffa0a2ef", "%0x"},
+  {__LINE__, 0xff6712e1,	"FF6712E1", "%0X"},
+  {__LINE__, 0x0007ebb3,	"519091", "%1ld"},
+  {__LINE__, 0x0000000f,	"15  ", "%-4.ld"},
+  {__LINE__, -0x0000096,	"-150", "%2.ld"},
+  {__LINE__, 0x0000004f,	"4F", "%.2X"},
+  {__LINE__, 0xfffffc29,	"fffffc29", "%-4.x"},
+  {__LINE__, 0x00000019,	"19", "%x"},
+  {__LINE__, 0x00000c4e,	"c4e", "%x"},
+  {__LINE__, 0x0000006b,	" 0006B", "%6.5X"},
+  {__LINE__, 0x00c8d2c6,	"c8d2c6", "%.0x"},
+  {__LINE__, -0x256fb8de,	"-628078814", "%ld"},
+  {__LINE__, 0x4f51fcf4,	"4F51FCF4", "%+X"},
+  {__LINE__, 0x000f000e,	"983054", "%1.ld"},
+  {__LINE__, 0xfffff03f,	"fffff03f", "%x"},
+  {__LINE__, 0x0000001d,	"   1D", "%05.X"},
+  {__LINE__, 0x0072ea14,	"72ea14", "%x"},
+  {__LINE__, -0xc6098b9,	"-207657145", "%-7d"},
+  {__LINE__, 0x00000a76,	"2678", "%3ld"},
+  {__LINE__, 0xfff84db3,	"FFF84DB3", "%X"},
+  {__LINE__, 0x0fb52870,	"fb52870", "%+x"},
+  {__LINE__, 0x08bc170a,	"0x8bc170a", "%#x"},
+  {__LINE__, 0xfffeeb00,	"fffeeb00", "%0.5x"},
+  {__LINE__, 0x000ece95,	"970389", "%d"},
+  {__LINE__, 0x00000000,	"0", "%0X"},
+  {__LINE__, 0x07f98e8a,	"7f98e8a", "% x"},
+  {__LINE__, 0x000499eb,	" 499eb", "% 6.x"},
+  {__LINE__, 0xffffffff,	"FFFFFFFF", "%-X"},
+  {__LINE__, 0x0aa45e86,	"178544262", "%#.2d"},
+  {__LINE__, 0xff73387d,	"FF73387D", "%03.X"},
+  {__LINE__, 0xfffffb51,	"FFFFFB51", "%.3X"},
+  {__LINE__, 0xffffffdc,	"ffffffdc", "%6.x"},
+  {__LINE__, 0xffffffed,	"FFFFFFED", "%-X"},
+  {__LINE__, 0x0001c4c2,	"1c4c2", "%0.3x"},
+  {__LINE__, -0x0000001,	"-0000001", "%-#.7d"},
+  {__LINE__, 0x00000007,	"7", "%0.x"},
+  {__LINE__, 0x00000001,	"1", "%ld"},
+  {__LINE__, 0xffffd000,	"ffffd000", "%4.3x"},
+  {__LINE__, 0x00000030,	"48", "%2.d"},
+  {__LINE__, -0x6c121ce,	"-113320398", "%.5ld"},
+  {__LINE__, 0x000001ed,	"1ED", "% 3.X"},
+  {__LINE__, 0xfffff0f3,	"FFFFF0F3", "%+.6X"},
+  {__LINE__, 0xffffffec,	"ffffffec", "%x"},
+  {__LINE__, 0x002d5ab8,	"0x2d5ab8", "%-#x"},
+  {__LINE__, 0x0026acff,	"2534655", "%0ld"},
+  {__LINE__, 0x01d90cd7,	"+31001815", "%+.2ld"},
+  {__LINE__, -0x1f7abc0,	"-33008576", "%7.6d"},
+  {__LINE__, 0xfc5babcc,	"fc5babcc", "%x"},
+  {__LINE__, -0x9b74892,	"-163006610", "% .6d"},
+  {__LINE__, 0x03931d84,	"59972996", "%0.d"},
+  {__LINE__, 0x07d261ce,	"131228110", "%#ld"},
+  {__LINE__, 0x00000000,	"0", "%x"},
+  {__LINE__, 0x00000002,	"2", "%+X"},
+  {__LINE__, -0x0000604,	"-1540", "%+d"},
+  {__LINE__, 0x00000000,	"       ", "%7.x"},
+  {__LINE__, 0x00000001,	"1", "%.0X"},
+  {__LINE__, -0x0005a8e,	"-23182", "% d"},
+  {__LINE__, 0x03fb2730,	"3fb2730", "%7.x"},
+  {__LINE__, 0xffffff03,	"ffffff03", "%x"},
+  {__LINE__, 0x00000000,	"   ", "%-#3.d"},
+  {__LINE__, 0x04025a4b,	"0X4025A4B", "%+#X"},
+  {__LINE__, -0x0000001,	"  -1", "%4.d"},
+  {__LINE__, 0xfffe00a3,	"FFFE00A3", "%+X"},
+  {__LINE__, -0x1b26e3c8,	"-455533512", "% ld"},
+  {__LINE__, 0x000017e5,	"6117", "%d"},
+  {__LINE__, -0x0e4f3b6,	"-15004598", "%0ld"},
+  {__LINE__, 0x00000034,	"52", "%ld"},
+  {__LINE__, 0x0000024c,	" 24C", "%4X"},
+  {__LINE__, 0xfffedf65,	"FFFEDF65", "%-0X"},
+  {__LINE__, -0x000ff1f,	"-65311", "%+#d"},
+  {__LINE__, 0x00000007,	"      7", "%7.x"},
+  {__LINE__, 0x018656ae,	"18656ae", "%3.7x"},
+  {__LINE__, -0x0000004,	"-4", "%d"},
+  {__LINE__, 0x7081292d,	"1887512877", "%d"},
+  {__LINE__, 0x87d3e48c,	"87d3e48c", "%-x"},
+  {__LINE__, 0xf99c516e,	"0xf99c516e", "% #7.4x"},
+  {__LINE__, 0xfffffffa,	"FFFFFFFA", "%-1X"},
+  {__LINE__, -0x000001d,	"-29", "%#ld"},
+  {__LINE__, -0x0000001,	"-1", "%+ld"},
+  {__LINE__, 0x28ab3350,	" 682308432", "% 1d"},
+  {__LINE__, -0x0000006,	"-6", "%ld"},
+  {__LINE__, 0xfffffffb,	"FFFFFFFB", "%.5X"},
+  {__LINE__, -0x0000007,	"-7", "%#d"},
+  {__LINE__, -0x0000328,	"  -808", "%6.ld"},
+  {__LINE__, -0x29386f00,	"-691564288", "%.3d"},
+  {__LINE__, -0x059f38a,	"-5895050", "%.4ld"},
+  {__LINE__, 0xfffff888,	"FFFFF888", "%3X"},
+  {__LINE__, 0xffffffdf,	"ffffffdf", "%0.0x"},
+  {__LINE__, -0xb4fc354,	"-189776724", "%2d"},
+  {__LINE__, 0x00058c07,	"363527", "%1.d"},
+  {__LINE__, 0x0a256162,	"a256162", "%x"},
+  {__LINE__, -0x05c87b0,	"-6064048", "%0ld"},
+  {__LINE__, 0xfffffda1,	"fffffda1", "%x"},
+  {__LINE__, 0x000034b7,	"13495", "%d"},
+  {__LINE__, -0x6d1a8918,	"-1830455576", "%.1d"},
+  {__LINE__, 0x00022290,	"139920", "%05ld"},
+  {__LINE__, 0x00000000,	"0", "%-x"},
+  {__LINE__, -0x1f8eafce,	"-529444814", "%4.d"},
+  {__LINE__, -0x7bf32808,	"-2079533064", "% ld"},
+  {__LINE__, 0x0000023c,	"23c", "% x"},
+  {__LINE__, 0x00000039,	"39", "%X"},
+  {__LINE__, -0x000556d,	"-21869", "%ld"},
+  {__LINE__, -0x00000ca,	"-202", "%ld"},
+  {__LINE__, 0x00002e28,	"11816", "%-d"},
+  {__LINE__, 0x00000011,	"17", "%-ld"},
+  {__LINE__, 0xfffffffb,	"FFFFFFFB", "%-X"},
+  {__LINE__, 0xfffdd67f,	"0XFFFDD67F", "%#X"},
+  {__LINE__, -0x000003d,	"-61", "%d"},
+  {__LINE__, 0x0000bfce,	"0XBFCE", "%-#5.2X"},
+  {__LINE__, 0xfffffffc,	"fffffffc", "%x"},
+  {__LINE__, -0x00aea17,	"-715287", "%.5d"},
+  {__LINE__, -0x02fce89,	"-3133065", "%0d"},
+  {__LINE__, 0x007f6ed1,	"7F6ED1", "%6X"},
+  {__LINE__, 0xffffffff,	"FFFFFFFF", "%X"},
+  {__LINE__, -0x0002761,	"-10081", "%#6.2d"},
+  {__LINE__, 0x003be8d8,	"3BE8D8", "%-X"},
+  {__LINE__, 0x00000901,	"  2305", "%6.d"},
+  {__LINE__, 0x00049916,	"0301334", "%3.7ld"},
+  {__LINE__, 0x0678ffea,	"0X678FFEA", "%#4X"},
+  {__LINE__, 0xffffffff,	"ffffffff", "%+.0x"},
+  {__LINE__, -0x31d2ec61,	"-835906657", "%.0d"},
+  {__LINE__, 0xfffffffc,	"FFFFFFFC", "%0X"},
+  {__LINE__, -0x0015588,	"-87432", "%d"},
+  {__LINE__, 0xffffff3e,	"ffffff3e", "%.4x"},
+  {__LINE__, 0x0000000a,	"10", "%d"},
+  {__LINE__, -0x0000003,	"-3", "%2.1ld"},
+  {__LINE__, -0x000d29a,	"-53914", "%ld"},
+  {__LINE__, -0x04ccbe0,	"-5032928", "%2.2ld"},
+  {__LINE__, 0x0357c2a5,	"357c2a5", "% 7.x"},
+  {__LINE__, 0x00000009,	" 9", "% 1.ld"},
+  {__LINE__, -0x005908d,	"-364685", "%0d"},
+  {__LINE__, -0x0000de6,	"-3558", "%0ld"},
+  {__LINE__, 0x2d395e6b,	"+758734443", "%+6d"},
+  {__LINE__, 0x001aba58,	"1ABA58", "% X"},
+  {__LINE__, 0x0ceba5ab,	"0XCEBA5AB", "%#.1X"},
+  {__LINE__, -0x01a8575,	"-1738101", "% 2ld"},
+  {__LINE__, 0x0000000d,	"13", "%#ld"},
+  {__LINE__, 0x00000000,	"0", "%d"},
+  {__LINE__, 0x4b856407,	"4b856407", "%5x"},
+  {__LINE__, 0x006f333c,	"6F333C", "%-X"},
+  {__LINE__, 0x000000d0,	"d0", "%x"},
+  {__LINE__, 0x2ecf0d4e,	"2ecf0d4e", "%0x"},
+  {__LINE__, -0x0000188,	"-0000392", "%#1.7ld"},
+  {__LINE__, -0x0000037,	"-55", "%d"},
+  {__LINE__, 0xfffffff1,	"FFFFFFF1", "% .1X"},
+  {__LINE__, 0x00000001,	"0x1", "%#3x"},
+  {__LINE__, 0x000005ed,	"5ED", "%3X"},
+  {__LINE__, 0x031183a3,	"31183A3", "%X"},
+  {__LINE__, 0xffffffff,	"ffffffff", "%x"},
+  {__LINE__, -0x0018695,	"-99989", "%-0.5ld"},
+  {__LINE__, -0x0000001,	"-01", "%0.2ld"},
+  {__LINE__, 0x00007822,	"7822", "%+x"},
+  {__LINE__, 0x00000000,	"0", "% x"},
+  {__LINE__, 0xfda2461a,	"FDA2461A", "%X"},
+  {__LINE__, 0x065c50ef,	"106713327", "%2.ld"},
+  {__LINE__, 0x00000a81,	"a81", "% 0x"},
+  {__LINE__, -0x000022e,	"-558", "%.0ld"},
+  {__LINE__, 0x00013d2f,	"81199", "%.2ld"},
+  {__LINE__, 0xfffffffe,	"FFFFFFFE", "%+X"},
+  {__LINE__, 0x000015f9,	"5625", "%04.ld"},
+  {__LINE__, 0x0ab575a2,	"179664290", "%0d"},
+  {__LINE__, 0x0024d07f,	"0X24D07F", "%#X"},
+  {__LINE__, 0x07ee35e1,	"7EE35E1", "%+X"},
+  {__LINE__, -0x00c114c,	"-790860", "%#ld"},
+  {__LINE__, 0x00003be3,	"  15331", "%07.d"},
+  {__LINE__, 0xfff87570,	"FFF87570", "%4.0X"},
+  {__LINE__, -0x14eab419,	"-350925849", "%-ld"},
+  {__LINE__, -0x000001b,	"-27", "%ld"},
+  {__LINE__, 0x167ce2ea,	"0x167ce2ea", "%#0.x"},
+  {__LINE__, -0x00009bc,	"-002492", "% 3.6d"},
+  {__LINE__, 0xfffffdb9,	"0XFFFFFDB9", "%#7.X"},
+  {__LINE__, 0x008b2b9d,	"8B2B9D", "% X"},
+  {__LINE__, 0x000cfec3,	"CFEC3", "% 05X"},
+  {__LINE__, 0x05970be6,	"5970be6", "%x"},
+  {__LINE__, 0x00002780,	"010112", "%2.6d"},
+  {__LINE__, 0x00000005,	"+5", "%+d"},
+  {__LINE__, 0xfffffffb,	"0xfffffffb", "%#3.x"},
+  {__LINE__, 0x00000001,	"1    ", "%-#5.ld"},
+  {__LINE__, -0x0000017,	"-23", "%ld"},
+  {__LINE__, -0x023b943,	"-2341187", "%d"},
+  {__LINE__, 0x0000000d,	"13", "%ld"},
+  {__LINE__, 0x00025a03,	"25a03", "% .5x"},
+  {__LINE__, 0x3e1ebe24,	"3e1ebe24", "% x"},
+  {__LINE__, 0x0000013a,	"0x13a", "%#5.0x"},
+  {__LINE__, 0xfff6f5b3,	"FFF6F5B3", "%4.X"},
+  {__LINE__, -0x0000a8a,	"-2698", "%.3d"},
+  {__LINE__, 0x0009dd5f,	"9dd5f", "%x"},
+  {__LINE__, 0x000003c7,	" 3C7", "%04.2X"},
+  {__LINE__, 0x1bcfa2f2,	"1bcfa2f2", "%+1.x"},
+  {__LINE__, 0x0001b4f4,	"1b4f4", "%+1.x"},
+  {__LINE__, 0x1bc19a90,	"465672848", "%#d"},
+  {__LINE__, 0xffffffff,	"ffffffff", "%+06x"},
+  {__LINE__, -0x0000a88,	"-2696", "%3.d"},
+  {__LINE__, 0x00084a19,	"84A19", "%-X"},
+  {__LINE__, 0xffe1fc8f,	"FFE1FC8F", "%0.1X"},
+  {__LINE__, -0x0000a3a,	"-2618", "%5d"},
+  {__LINE__, -0x0000001,	"-1", "%ld"},
+  {__LINE__, -0x5c6183d,	"-96868413", "%+ld"},
+  {__LINE__, -0x0000001,	"-1", "%-d"},
+  {__LINE__, 0x0000faa8,	"64168", "%05.d"},
+  {__LINE__, 0x003913ef,	"3740655", "%ld"},
+  {__LINE__, 0x0dde330a,	"232665866", "%#ld"},
+  {__LINE__, 0xfcfb1a7b,	"FCFB1A7B", "%+X"},
+  {__LINE__, 0x07b1a81f,	" 129083423", "% 0d"},
+  {__LINE__, 0x00000001,	"1", "%d"},
+  {__LINE__, 0x00000070,	"  112", "%5ld"},
+  {__LINE__, 0xffff74d9,	"ffff74d9", "%x"},
+  {__LINE__, -0x001ab93,	"-109459", "%03.d"},
+  {__LINE__, 0x0eb6b497,	"EB6B497", "%+X"},
+  {__LINE__, 0x07adbac2,	"128826050", "%#0.4d"},
+  {__LINE__, 0xff747068,	"FF747068", "%6.X"},
+  {__LINE__, -0x190ce98f,	"-420276623", "%06.6ld"},
+  {__LINE__, -0x0000007,	"-7", "%.0d"},
+  {__LINE__, 0x0001240f,	"1240f", "% 3x"},
+  {__LINE__, 0x267ae4a0,	"645588128", "%-#ld"},
+  {__LINE__, -0x0000001,	"-1", "% ld"},
+  {__LINE__, -0x0000066,	"-00102", "%.5ld"},
+  {__LINE__, 0x868fa035,	"868fa035", "%x"},
+  {__LINE__, 0x00000000,	"    ", "%-4.ld"},
+  {__LINE__, 0xfffffe72,	"FFFFFE72", "%4.4X"},
+  {__LINE__, 0x00a6b4f4,	"10925300", "%#ld"},
+  {__LINE__, -0x0000002,	"-2", "%00.1d"},
+  {__LINE__, -0x00000a3,	"-163", "%ld"},
+  {__LINE__, 0xfffffffe,	"fffffffe", "% 3.x"},
+  {__LINE__, 0xffe25941,	"ffe25941", "% x"},
+  {__LINE__, 0x0000a20f,	"41487", "%ld"},
+  {__LINE__, -0x000009b,	"-155", "%#.3ld"},
+  {__LINE__, 0x000c5dc1,	"810433", "%4.ld"},
+  {__LINE__, 0x00003ec4,	"16068", "%ld"},
+  {__LINE__, 0x000002f3,	"0755", "%04ld"},
+  {__LINE__, 0xffffff28,	"FFFFFF28", "%.5X"},
+  {__LINE__, -0x08450ff,	"-8671487", "%-3.0ld"},
+  {__LINE__, 0x00000092,	"92", "%x"},
+  {__LINE__, -0x0000317,	"-791", "%d"},
+  {__LINE__, 0x0000000d,	"d", "%x"},
+  {__LINE__, 0x00000036,	"36", "%x"},
+  {__LINE__, -0x112693f,	"-17983807", "%ld"},
+  {__LINE__, 0x00004226,	"16934", "%0.d"},
+  {__LINE__, 0x000001ba,	" 442", "% ld"},
+  {__LINE__, 0xfffffffc,	"0XFFFFFFFC", "%#4X"},
+  {__LINE__, 0xffdb3d23,	"0xffdb3d23", "% #x"},
+  {__LINE__, 0x039eb84d,	"39EB84D", "%+.6X"},
+  {__LINE__, 0xffffc7da,	"ffffc7da", "%0x"},
+  {__LINE__, 0xfffffdb6,	"FFFFFDB6", "%6X"},
+  {__LINE__, 0x001b75b0,	"1799600", "%ld"},
+  {__LINE__, 0xfffffca2,	"FFFFFCA2", "%-X"},
+  {__LINE__, 0xffffffba,	"ffffffba", "%7.4x"},
+  {__LINE__, -0x000124e,	"-4686", "%3.ld"},
+  {__LINE__, -0x000bec0,	"-48832", "% 0d"},
+  {__LINE__, 0xfffffca0,	"fffffca0", "%2.x"},
+  {__LINE__, 0x00b2a462,	"11707490", "%ld"},
+  {__LINE__, 0x0745a647,	"745a647", "%+4.x"},
+  {__LINE__, 0xfffffbac,	"0XFFFFFBAC", "%#3.X"},
+  {__LINE__, -0x0000002,	"-2", "%-0.1d"},
+  {__LINE__, 0x0006cfdb,	"446427", "%#5.d"},
+  {__LINE__, -0x0000001,	"-1", "%d"},
+  {__LINE__, 0x043b134e,	"43B134E", "%X"},
+  {__LINE__, -0x0000015,	"-21", "%ld"},
+  {__LINE__, -0x0000114,	"-276", "%0d"},
+  {__LINE__, -0x0004d4a,	"-19786", "%-d"},
+  {__LINE__, -0x000001c,	"-28", "%ld"},
+  {__LINE__, -0x0cb89fc,	"-13339132", "%ld"},
+  {__LINE__, 0xffffffcf,	"ffffffcf", "%x"},
+  {__LINE__, 0xf6d2387a,	"f6d2387a", "%-x"},
+  {__LINE__, -0x00000cd,	"-205", "%#ld"},
+  {__LINE__, 0x00000000,	"0", "%#x"},
+  {__LINE__, 0xfffffc81,	"fffffc81", "%x"},
+  {__LINE__, 0x00000000,	" 0", "% ld"},
+  {__LINE__, 0x00024fb5,	"24fb5", "%x"},
+  {__LINE__, 0x000012fa,	"12FA", "%X"},
+  {__LINE__, 0x0318ce7c,	"51957372", "%0d"},
+  {__LINE__, 0x02280a99,	"2280a99", "%-x"},
+  {__LINE__, 0xffffff5c,	"FFFFFF5C", "%2.X"},
+  {__LINE__, -0x000002e,	"    -46", "%7ld"},
+  {__LINE__, -0x04a73e8,	"-4879336", "%4ld"},
+  {__LINE__, 0x000007f3,	"7f3", "% 1.3x"},
+  {__LINE__, 0x00000114,	"0x114", "%#x"},
+  {__LINE__, 0x0000030c,	"30c", "%-x"},
+  {__LINE__, 0x001dd0dd,	"0x1dd0dd", "%+#5.5x"},
+  {__LINE__, 0xfff23de3,	"fff23de3", "%-x"},
+  {__LINE__, -0x0178f9c,	"-1544092", "%d"},
+  {__LINE__, 0x02ded8da,	"2DED8DA", "%X"},
+  {__LINE__, -0x0991672,	"-10032754", "%3.d"},
+  {__LINE__, 0x6943c150,	"6943c150", "%x"},
+  {__LINE__, 0xffffc25d,	"FFFFC25D", "%4X"},
+  {__LINE__, 0x00000c9c,	" 0003228", "% .7d"},
+  {__LINE__, 0xffffffdf,	"FFFFFFDF", "% 6.X"},
+  {__LINE__, 0x0001a145,	" 1a145", "%6.0x"},
+  {__LINE__, 0xffdc832f,	"0xffdc832f", "%#.1x"},
+  {__LINE__, 0x00699f7b,	"699f7b", "%x"},
+  {__LINE__, 0xf9575268,	"F9575268", "%+0X"},
+  {__LINE__, 0x04eb4783,	"82528131", "%-ld"},
+  {__LINE__, -0x0000023,	"-35", "%0ld"},
+  {__LINE__, -0x012b08a,	"-1224842", "%0d"},
+  {__LINE__, 0xffffb587,	"FFFFB587", "%X"},
+  {__LINE__, 0xffffffe9,	"ffffffe9", "%x"},
+  {__LINE__, 0x006b5596,	" 7034262", "% 0d"},
+  {__LINE__, 0x004d0d2a,	"+5049642", "%+ld"},
+  {__LINE__, -0x002a099,	"-172185", "%d"},
+  {__LINE__, 0x00000224,	"548", "%ld"},
+  {__LINE__, 0x03e0cca8,	"65064104", "%d"},
+  {__LINE__, -0x7bb389d,	"-129710237", "%.3ld"},
+  {__LINE__, 0xffc630f5,	"ffc630f5", "%-07.0x"},
+  {__LINE__, 0xfffffff8,	"FFFFFFF8", "%X"},
+  {__LINE__, 0x0030225b,	"3154523", "%#d"},
+  {__LINE__, 0xff7f4e28,	"ff7f4e28", "%+4.x"},
+  {__LINE__, 0x14ee154d,	"+351147341", "%+ld"},
+  {__LINE__, 0x00000003,	"03", "%.2d"},
+  {__LINE__, 0xfe0359d6,	"fe0359d6", "%x"},
+  {__LINE__, 0x002b71c3,	"2847171", "%d"},
+  {__LINE__, 0x055c4d4a,	"55C4D4A", "%-X"},
+  {__LINE__, 0xfffb17d2,	"fffb17d2", "% .0x"},
+  {__LINE__, 0x00000002,	"2", "%x"},
+  {__LINE__, 0x000018e1,	"18E1", "%1.1X"},
+  {__LINE__, 0x00000331,	"817", "%0d"},
+  {__LINE__, -0x0000982,	"-2434 ", "%-06.ld"},
+  {__LINE__, -0x0000168,	"-0000360", "%.7ld"},
+  {__LINE__, 0xffffffe9,	"FFFFFFE9", "%-0.4X"},
+  {__LINE__, 0xe42084ef,	"E42084EF", "%X"},
+  {__LINE__, 0x000000aa,	"aa", "%x"},
+  {__LINE__, -0xe8b98b5,	"-244029621", "%+d"},
+  {__LINE__, -0x00000d9,	"-217", "%+2.d"},
+  {__LINE__, 0x0000027b,	"27B", "%+.0X"},
+  {__LINE__, 0x002e52db,	"3035867", "%-ld"},
+  {__LINE__, -0x00e2ba8,	"-928680", "%0.2ld"},
+  {__LINE__, 0x003b74d8,	"3B74D8", "%X"},
+  {__LINE__, -0x000006f,	"-111", "%+ld"},
+  {__LINE__, 0xf8507e22,	"0XF8507E22", "%-#X"},
+  {__LINE__, 0x0629f4c0,	"103412928", "%-ld"},
+  {__LINE__, -0x000002d,	"-45", "%0d"},
+  {__LINE__, -0x0001db0,	"-7600", "%d"},
+  {__LINE__, -0x00001bb,	" -443", "%5.ld"},
+  {__LINE__, 0xffffd2b9,	"ffffd2b9", "%+x"},
+  {__LINE__, 0xffffe685,	"0XFFFFE685", "%#0.7X"},
+  {__LINE__, 0x0000a4ce,	"A4CE", "% X"},
+  {__LINE__, 0xffffffff,	"FFFFFFFF", "%X"},
+  {__LINE__, 0x0000000c,	"C", "% X"},
+  {__LINE__, 0xfff59369,	"FFF59369", "%7X"},
+  {__LINE__, 0x00000156,	"  156", "%5.X"},
+  {__LINE__, 0x02833aa9,	"+42154665", "%+2d"},
+  {__LINE__, 0x0004a8f3,	"+305395", "%+d"},
+  {__LINE__, 0x01a09267,	"1A09267", "%0.3X"},
+  {__LINE__, 0x000004f1,	"4f1", "%x"},
+  {__LINE__, 0x00000005,	"5", "%x"},
+  {__LINE__, 0x00000119,	" 0281", "% #2.4ld"},
+  {__LINE__, -0x0001a2a,	"-6698", "%ld"},
+  {__LINE__, 0xa3633a57,	"A3633A57", "%7X"},
+  {__LINE__, -0x10bd2970,	"-280832368", "%-d"},
+  {__LINE__, 0xffff9c38,	"ffff9c38", "%x"},
+  {__LINE__, 0xffdbe81e,	"ffdbe81e", "%+6.7x"},
+  {__LINE__, 0xffffffe7,	"FFFFFFE7", "%-3.0X"},
+  {__LINE__, 0x0002f6d6,	"2f6d6", "%5.x"},
+  {__LINE__, 0xffffffff,	"ffffffff", "% x"},
+  {__LINE__, 0xffc2c07a,	"ffc2c07a", "%0.x"},
+  {__LINE__, 0xfcc0e13a,	"FCC0E13A", "%X"},
+  {__LINE__, 0x0000000d,	"d", "% x"},
+  {__LINE__, 0x0016cac8,	"16CAC8", "%-0.3X"},
+  {__LINE__, 0x00945dc1,	"9723329", "%2d"},
+  {__LINE__, 0xf19a1cd1,	"F19A1CD1", "%-X"},
+  {__LINE__, 0x00000003,	"+3", "%+ld"},
+  {__LINE__, 0x00000773,	"1907", "%ld"},
+  {__LINE__, 0x000263e6,	"263e6", "%-x"},
+  {__LINE__, -0x0238b55,	"-2329429", "%d"},
+  {__LINE__, 0x00006c56,	"6C56", "%X"},
+  {__LINE__, 0x0000f34b,	"62283", "%#.0ld"},
+  {__LINE__, -0x1620e21,	"-23203361", "%0ld"},
+  {__LINE__, 0xf9257d6a,	"f9257d6a", "%2x"},
+  {__LINE__, -0x00ed463,	"-971875", "%03.d"},
+  {__LINE__, 0x02bb94c6,	"45847750", "%d"},
+  {__LINE__, 0xffffd20c,	"0XFFFFD20C", "%#X"},
+  {__LINE__, 0x000087d8,	"34776", "%.0d"},
+  {__LINE__, 0xfffffffc,	"FFFFFFFC", "%+7.X"},
+  {__LINE__, -0x0009cd5,	"-40149", "%-ld"},
+  {__LINE__, 0xfffff85e,	"FFFFF85E", "% 0.7X"},
+  {__LINE__, -0x0000006,	"    -6", "%+#6.ld"},
+  {__LINE__, 0x007ff453,	"0x7ff453", "%-#1.x"},
+  {__LINE__, 0xffffffe6,	"FFFFFFE6", "%2X"},
+  {__LINE__, 0x0000001f,	"0X1F", "%#4X"},
+  {__LINE__, -0x001c157,	"-115031", "%.3ld"},
+  {__LINE__, 0x00096e06,	"617990", "%3.1ld"},
+  {__LINE__, 0x0f77271d,	"259467037", "%d"},
+  {__LINE__, -0x0001403,	"-5123", "%d"},
+  {__LINE__, 0xffffff8a,	"ffffff8a", "%x"},
+  {__LINE__, -0x000010f,	"-271", "%1.ld"},
+  {__LINE__, 0xe573cc4a,	"E573CC4A", "%0X"},
+  {__LINE__, -0x0000d88,	"-3464", "%-d"},
+  {__LINE__, 0x0000000e,	"14", "%#ld"},
+  {__LINE__, -0x000345b,	"-13403", "%#d"},
+  {__LINE__, 0x00000602,	"602", "%+x"},
+  {__LINE__, 0x00000011,	"17", "%#d"},
+  {__LINE__, -0x0000002,	"-2", "%+d"},
+  {__LINE__, 0x030fe6e6,	"51373798", "%d"},
+  {__LINE__, 0x00000007,	"007", "%.3X"},
+  {__LINE__, 0x0001abe0,	"0X1ABE0", "%+#.4X"},
+  {__LINE__, 0xfffffdb7,	"fffffdb7", "%-6x"},
+  {__LINE__, 0xffffff8d,	"FFFFFF8D", "% 02.2X"},
+  {__LINE__, 0xfff12126,	"FFF12126", "%X"},
+  {__LINE__, 0x0208e32d,	"34136877", "%.2d"},
+  {__LINE__, 0x11c04b55,	"297814869", "%ld"},
+  {__LINE__, 0xff1e5ca3,	"0xff1e5ca3", "%#x"},
+  {__LINE__, 0xf9643f09,	"f9643f09", "%x"},
+  {__LINE__, -0x003c6da,	"-247514", "%4d"},
+  {__LINE__, 0xff69d0e7,	"FF69D0E7", "%-X"},
+  {__LINE__, 0x00006ae9,	"0x6ae9", "%#x"},
+  {__LINE__, -0x005aefe,	"-372478", "%d"},
+  {__LINE__, 0x0000000d,	"00013", "%3.5ld"},
+  {__LINE__, 0x00cc185c,	"CC185C", "%X"},
+  {__LINE__, 0x3dd14d9f,	"3DD14D9F", "%1.4X"},
+  {__LINE__, -0x4cc2ad3,	"-80489171", "%1.d"},
+  {__LINE__, 0xfffff79e,	"fffff79e", "%x"},
+  {__LINE__, 0xfffeeb03,	"fffeeb03", "%-1x"},
+  {__LINE__, -0x0b1b15c,	"-11645276", "%0ld"},
+  {__LINE__, -0x06b558d,	"-7034253", "%ld"},
+  {__LINE__, 0xfffffe61,	"fffffe61", "%x"},
+  {__LINE__, -0x0000002,	"-2", "%d"},
+  {__LINE__, -0x0000162,	"-000354", "%-5.6d"},
+  {__LINE__, 0x01a23780,	"27408256", "%d"},
+  {__LINE__, 0xffff3a9b,	"ffff3a9b", "% x"},
+  {__LINE__, 0xfffffdc7,	"0xfffffdc7", "%#4.5x"},
+  {__LINE__, 0x00000000,	"00", "%.2X"},
+  {__LINE__, -0x0000006,	"-6", "%0ld"},
+  {__LINE__, -0x16072c6,	"-23098054", "%#5ld"},
+  {__LINE__, -0x07152b8,	"-7426744", "%01ld"},
+  {__LINE__, 0x0000d6c6,	"0x0d6c6", "%#1.5x"},
+  {__LINE__, 0x00000f7c,	"000f7c", "%+04.6x"},
+  {__LINE__, 0x00000bd0,	"3024", "%4ld"},
+  {__LINE__, 0x0000295e,	"0x295e", "%#x"},
+  {__LINE__, 0x00002e38,	"11832", "%.5d"},
+  {__LINE__, -0xa2f5de4,	"-170876388", "%#d"},
+  {__LINE__, -0x001aa36,	"-109110", "%-#d"},
+  {__LINE__, 0x03012091,	"3012091", "%+2.5X"},
+  {__LINE__, -0x00009ed,	"-002541", "%-0.6ld"},
+  {__LINE__, 0x0000001d,	"1d", "%x"},
+  {__LINE__, 0xffffe315,	"FFFFE315", "%+4X"},
+  {__LINE__, 0x0000716b,	"716B", "%X"},
+  {__LINE__, 0xfffb8315,	"0xfffb8315", "%+#x"},
+  {__LINE__, 0x00000132,	"132    ", "%-7.3x"},
+  {__LINE__, 0x00000000,	"+0000000", "%+1.7d"},
+  {__LINE__, 0xe16d27ab,	"E16D27AB", "%X"},
+  {__LINE__, 0xffffffe5,	"ffffffe5", "%+x"},
+  {__LINE__, -0x000ab9d,	"-43933", "%ld"},
+  {__LINE__, 0xffd042d6,	"ffd042d6", "%2x"},
+  {__LINE__, 0xffffff9b,	"ffffff9b", "%x"},
+  {__LINE__, 0x000000fb,	"0xfb", "% #1.x"},
+  {__LINE__, 0x0000000f,	" 15", "%#3ld"},
+  {__LINE__, 0xfffba2d8,	"0XFFFBA2D8", "%-#0.X"},
+  {__LINE__, 0xfffffff8,	"0XFFFFFFF8", "% #X"},
+  {__LINE__, 0x00000000,	"    ", "%4.ld"},
+  {__LINE__, 0x00000002,	"2", "%+x"},
+  {__LINE__, 0xfffff314,	"FFFFF314", "%-X"},
+  {__LINE__, 0x00000000,	" 0", "% ld"},
+  {__LINE__, -0x0000007,	"-07", "%3.2ld"},
+  {__LINE__, 0xffffdd80,	"FFFFDD80", "%.6X"},
+  {__LINE__, -0x000001b,	"-27", "%-ld"},
+  {__LINE__, -0x0000258,	"-600", "%-0d"},
+  {__LINE__, 0x00016377,	"16377", "%3X"},
+  {__LINE__, 0x00000001,	"1", "%X"},
+  {__LINE__, -0xac5d314,	"-180736788", "%d"},
+  {__LINE__, -0x000036e,	"-878", "% ld"},
+  {__LINE__, 0xfe346af4,	"fe346af4", "%.5x"},
+  {__LINE__, 0xffffffe1,	"ffffffe1", "%-7.6x"},
+  {__LINE__, -0x0a1df07,	"-10608391", "%#.5d"},
+  {__LINE__, 0x000000c9,	" 0XC9", "%+#5.X"},
+  {__LINE__, 0xfffffffe,	"fffffffe", "%x"},
+  {__LINE__, 0xfffffff8,	"fffffff8", "%+x"},
+  {__LINE__, -0x4517255,	"-72446549", "%.6ld"},
+  {__LINE__, 0xfffa3670,	"FFFA3670", "%-6X"},
+  {__LINE__, 0xffffffe0,	"ffffffe0", "%2.x"},
+  {__LINE__, 0xffffffff,	"ffffffff", "%0x"},
+  {__LINE__, 0x0000230d,	"8973", "%#.1d"},
+  {__LINE__, 0x00000238,	"238", "%0X"},
+  {__LINE__, 0xfffce5ab,	"FFFCE5AB", "%-X"},
+  {__LINE__, 0x0000002c,	"2C", "%X"},
+  {__LINE__, 0x00000001,	"   1", "%4.ld"},
+  {__LINE__, 0xffffff8d,	"FFFFFF8D", "%-X"},
+  {__LINE__, 0x00069c69,	"433257", "%06d"},
+  {__LINE__, 0xfffffb8d,	"0xfffffb8d", "%#x"},
+  {__LINE__, 0x000d6a2d,	"879149", "%5.5d"},
+  {__LINE__, -0x0001fcb,	"  -8139", "%7.ld"},
+  {__LINE__, 0xfff86937,	"fff86937", "%-0x"},
+  {__LINE__, 0x00059cf9,	"367865", "%#.0ld"},
+  {__LINE__, 0x02c5d87a,	"46520442", "%3.ld"},
+  {__LINE__, 0x00000571,	"1393", "%ld"},
+  {__LINE__, 0x0003c73f,	"+247615", "%+4ld"},
+  {__LINE__, 0x0000004f,	"4f", "% 0x"},
+  {__LINE__, 0x00000000,	"0", "%-ld"},
+  {__LINE__, -0x0e5850f,	"-15041807", "% ld"},
+  {__LINE__, -0x0000002,	"  -0002", "%7.4d"},
+  {__LINE__, 0xfffffd1b,	"fffffd1b", "%05x"},
+  {__LINE__, 0x0000041c,	" 1052", "% #0.ld"},
+  {__LINE__, -0x0000030,	"-48", "%d"},
+  {__LINE__, -0x0013593,	"-79251", "% #d"},
+  {__LINE__, 0x00000001,	"1", "%+X"},
+  {__LINE__, 0x0000056b,	" 56b", "%4.x"},
+  {__LINE__, -0x0000004,	"-4 ", "%-3d"},
+  {__LINE__, -0x0000003,	"-3", "% ld"},
+  {__LINE__, 0xffff7c14,	"0XFFFF7C14", "%#X"},
+  {__LINE__, 0x02f63dd8,	"49692120", "%.7ld"},
+  {__LINE__, -0x03c51c9,	"-3953097", "%+d"},
+  {__LINE__, 0x00ded685,	"14603909", "%5.ld"},
+  {__LINE__, 0xffffffba,	"ffffffba", "%x"},
+  {__LINE__, 0x000370e8,	"225512", "%#ld"},
+  {__LINE__, 0x00000003,	"3", "%X"},
+  {__LINE__, -0x0024a64,	"-150116", "%7.d"},
+  {__LINE__, 0xff486ca1,	"ff486ca1", "%x"},
+  {__LINE__, 0x000001cf,	"1CF", "% X"},
+  {__LINE__, -0x0002d7e,	"-11646", "%-0d"},
+  {__LINE__, 0x0a594c65,	"a594c65", "%.4x"},
+  {__LINE__, -0x0000002,	"-0002", "%-5.4ld"},
+  {__LINE__, 0x00000000,	"", "%00.ld"},
+  {__LINE__, 0x00058bc4,	"58BC4", "%3X"},
+  {__LINE__, 0x0002cf8e,	" 184206", "% 0ld"},
+  {__LINE__, 0x000009c7,	"+2503", "%+4.ld"},
+  {__LINE__, 0xed0c984d,	"ED0C984D", "%X"},
+  {__LINE__, -0x0000058,	"-088", "%#.3ld"},
+  {__LINE__, 0x0076083d,	"0X76083D", "%#6X"},
+  {__LINE__, -0x0000001,	"-1", "%#d"},
+  {__LINE__, -0x6bf1777,	"-113186679", "%#ld"},
+  {__LINE__, -0x000011f,	"-287", "%ld"},
+  {__LINE__, 0x001b0e7d,	"1B0E7D", "%-4X"},
+  {__LINE__, 0x000007ac,	" 1964", "%5.ld"},
+  {__LINE__, 0x00000005,	"5", "%0.d"},
+  {__LINE__, -0x00003ba,	"-954", "%4.0ld"},
+  {__LINE__, 0xfffffffe,	"FFFFFFFE", "%X"},
+  {__LINE__, 0x00000019,	"19", "%x"},
+  {__LINE__, 0xffffffe0,	"ffffffe0", "%-.6x"},
+  {__LINE__, 0x0000012a,	" 298", "% d"},
+  {__LINE__, 0x00002c74,	"2c74", "% 4.3x"},
+  {__LINE__, 0x000002d5,	"725", "%d"},
+  {__LINE__, 0x0001c9a9,	"1c9a9", "%-02x"},
+  {__LINE__, 0xffc928c8,	"ffc928c8", "%x"},
+  {__LINE__, -0x03ae51f,	"-3859743", "% #ld"},
+  {__LINE__, 0x0000526d,	"526d", "%x"},
+  {__LINE__, -0x00028f0,	"-10480", "%5ld"},
+  {__LINE__, -0x49b4262,	"-77283938", "%+02.0d"},
+  {__LINE__, 0x028d37f0,	"0x28d37f0", "%+#x"},
+  {__LINE__, 0xd66e0af9,	"D66E0AF9", "%03.X"},
+  {__LINE__, -0x00c7707,	"-816903", "%0d"},
+  {__LINE__, -0x00000d0,	"-208", "%-.1ld"},
+  {__LINE__, 0x0000c328,	"49960", "%d"},
+  {__LINE__, 0x34cb86f1,	"34CB86F1", "%X"},
+  {__LINE__, 0x000000f6,	"F6", "%+X"},
+  {__LINE__, 0x0a3407ec,	"0xa3407ec", "%-#x"},
+  {__LINE__, 0x00007ebc,	"32444", "%#3.d"},
+  {__LINE__, 0xfffd3d65,	"fffd3d65", "%x"},
+  {__LINE__, 0x0007bc82,	"0507010", "%0.7d"},
+  {__LINE__, 0x0005bb93,	"375699", "%ld"},
+  {__LINE__, 0x0ec11cc8,	"0XEC11CC8", "%+#6.2X"},
+  {__LINE__, 0xfffff9c6,	"fffff9c6", "%.5x"},
+  {__LINE__, 0xff05ab70,	"0XFF05AB70", "%-#.3X"},
+  {__LINE__, 0x2328b716,	"589870870", "%d"},
+  {__LINE__, 0x00001a79,	"6777", "%.1d"},
+  {__LINE__, 0xfffee573,	"fffee573", "%0.1x"},
+  {__LINE__, -0x0000929,	"  -2345", "%7.d"},
+  {__LINE__, 0xffffff9a,	"FFFFFF9A", "%2.X"},
+  {__LINE__, 0xfffffe60,	"fffffe60", "%.5x"},
+  {__LINE__, 0xfffffcd2,	"fffffcd2", "%.7x"},
+  {__LINE__, 0x00000001,	"   001", "%6.3X"},
+  {__LINE__, 0x00011e9c,	"+73372", "%+0ld"},
+  {__LINE__, 0x0000002a,	"2a", "% x"},
+  {__LINE__, 0xffffffff,	"ffffffff", "%.7x"},
+  {__LINE__, -0x0008ee8,	"-36584", "%ld"},
+  {__LINE__, 0x0000001c,	"28", "%-d"},
+  {__LINE__, 0x000abeda,	"704218", "%d"},
+  {__LINE__, 0x001347f7,	"1347f7", "%3.0x"},
+  {__LINE__, 0x0000023e,	"574", "%3.3ld"},
+  {__LINE__, 0x00000000,	"0", "%-ld"},
+  {__LINE__, -0x0016de0,	"-93664", "%0ld"},
+  {__LINE__, 0xffffff45,	"FFFFFF45", "% X"},
+  {__LINE__, 0x02dfb08c,	"48214156", "%#ld"},
+  {__LINE__, 0x003d73a2,	"3d73a2", "%6.x"},
+  {__LINE__, 0x00147da7,	"1342887", "%#d"},
+  {__LINE__, -0x5ff0f1e,	"-100601630", "%-01ld"},
+  {__LINE__, -0x000000b,	"-11", "%ld"},
+  {__LINE__, 0x00000168,	"   168", "%+6.x"},
+  {__LINE__, 0xffffc28e,	"ffffc28e", "%0x"},
+  {__LINE__, -0x00003a2,	"-930", "%ld"},
+  {__LINE__, 0x0002e56f,	" 189807", "% 1.ld"},
+  {__LINE__, 0x51abf44f,	"0x51abf44f", "%#.7x"},
+  {__LINE__, 0x00000000,	"0", "%d"},
+  {__LINE__, 0x9581268f,	"9581268F", "%+X"},
+  {__LINE__, 0xffffff3b,	"FFFFFF3B", "%X"},
+  {__LINE__, 0x000083d4,	" 33748", "% #d"},
+  {__LINE__, 0x00000001,	"1", "%x"},
+  {__LINE__, -0x000e51f,	"-58655", "%.0ld"},
+  {__LINE__, 0x0003eacb,	"256715", "%6ld"},
+  {__LINE__, 0x02be09db,	" 46008795", "% 0.ld"},
+  {__LINE__, 0xfffffffb,	"FFFFFFFB", "% X"},
+  {__LINE__, 0x000084f5,	" 34037", "%6ld"},
+  {__LINE__, -0x1127f99,	"-17989529", "%#d"},
+  {__LINE__, 0x5f6512de,	"5f6512de", "%.7x"},
+  {__LINE__, 0x00000001,	"1", "%x"},
+  {__LINE__, 0xfff74ab5,	"fff74ab5", "%x"},
+  {__LINE__, 0x0eebeb94,	"250342292", "%4.ld"},
+  {__LINE__, 0x0001b846,	"0x1b846", "%#1x"},
+  {__LINE__, 0x001e8c32,	"1E8C32", "%2X"},
+  {__LINE__, -0x0dae932,	"-14346546", "%5.1d"},
+  {__LINE__, 0x00000001,	"1", "%ld"},
+  {__LINE__, -0x0000042,	"-66", "%ld"},
+  {__LINE__, 0xffffff51,	"FFFFFF51", "%0.1X"},
+  {__LINE__, 0x00000043,	"43", "%x"},
+  {__LINE__, 0x04c21f39,	" 79830841", "% 0ld"},
+  {__LINE__, 0x0000061e,	"1566", "%03.3d"},
+  {__LINE__, -0x0000003,	"-3", "%+d"},
+  {__LINE__, 0x015b32db,	" 22754011", "% .4d"},
+  {__LINE__, 0xfffff181,	"FFFFF181", "%-X"},
+  {__LINE__, 0x000017ec,	"0X17EC", "%#X"},
+  {__LINE__, 0x000d703e,	"880702", "%#ld"},
+  {__LINE__, -0x6d7533a0,	"-1836397472", "%ld"},
+  {__LINE__, 0x0000008a,	" 138", "% d"},
+  {__LINE__, -0x7368794b,	"-1936226635", "%+#d"},
+  {__LINE__, 0x0000000d,	"0XD", "%#X"},
+  {__LINE__, 0x0000030d,	"30D", "% X"},
+  {__LINE__, 0xfffff9fe,	"FFFFF9FE", "%5X"},
+  {__LINE__, 0x00001bb2,	"7090", "%d"},
+  {__LINE__, 0x041d2a0c,	"41D2A0C", "%0X"},
+  {__LINE__, 0x00012aee,	" 76526", "% d"},
+  {__LINE__, 0x0000055f,	"55f", "%.1x"},
+  {__LINE__, 0xffffffff,	"0XFFFFFFFF", "%#1X"},
+  {__LINE__, 0x07b0a971,	"+129018225", "%+.2ld"},
+  {__LINE__, 0xfffffff8,	"FFFFFFF8", "%4X"},
+  {__LINE__, 0x00000001,	"1", "%d"},
+  {__LINE__, 0x00000038,	"+56", "%+2ld"},
+  {__LINE__, 0xfffffc2f,	"fffffc2f", "%+7.x"},
+  {__LINE__, 0x00004477,	"0x4477", "% #x"},
+  {__LINE__, 0x0000000d,	"0XD", "%+#3X"},
+  {__LINE__, 0xf5bf37b1,	"F5BF37B1", "%1.X"},
+  {__LINE__, 0x1a96f431,	"446100529", "%d"},
+  {__LINE__, 0x0037edf3,	"+3665395", "%+#4.5ld"},
+  {__LINE__, 0x0007f2aa,	"520874", "%0ld"},
+  {__LINE__, -0x00051a3,	"-20899", "%+#1.ld"},
+  {__LINE__, 0x0000037f,	"37F", "%0X"},
+  {__LINE__, 0xffffffb4,	"ffffffb4", "%x"},
+  {__LINE__, -0xd984c00,	"-228084736", "%+06ld"},
+  {__LINE__, 0xffffe1be,	"FFFFE1BE", "%X"},
+  {__LINE__, 0xfff20d48,	"FFF20D48", "%+6.0X"},
+  {__LINE__, 0x000028b7,	"0x028b7", "%-#7.5x"},
+  {__LINE__, -0x0000001,	"-1", "%ld"},
+  {__LINE__, 0x03f37945,	"66287941", "%d"},
+  {__LINE__, 0xffffffed,	"0XFFFFFFED", "%+#6.4X"},
+  {__LINE__, 0x0000f046,	"f046", "%x"},
+  {__LINE__, 0xe9772b51,	"E9772B51", "%-1.X"},
+  {__LINE__, 0xfffffffe,	"fffffffe", "% x"},
+  {__LINE__, 0xfffffffa,	"0xfffffffa", "%#x"},
+  {__LINE__, 0x00000015,	"15", "%-X"},
+  {__LINE__, 0x0000003c,	"60", "%#ld"},
+  {__LINE__, 0x3103952d,	"822318381", "%0.ld"},
+  {__LINE__, 0x17ba68bb,	"398092475", "%2d"},
+  {__LINE__, 0x000006c4,	"+1732", "%+.2d"},
+  {__LINE__, 0x00000043,	"67", "%#d"},
+  {__LINE__, 0x0043fb55,	"4455253", "%.1ld"},
+  {__LINE__, 0x00004b76,	"4b76", "% 0x"},
+  {__LINE__, 0xfff4c56b,	"FFF4C56B", "%7X"},
+  {__LINE__, 0x00766055,	"766055", "%+5x"},
+  {__LINE__, -0x000009f,	"-159", "%+d"},
+  {__LINE__, 0xffff063f,	"ffff063f", "%-2x"},
+  {__LINE__, 0x00808fc8,	"808fc8", "%x"},
+  {__LINE__, 0xffffffff,	"ffffffff", "%x"},
+  {__LINE__, 0x000000f1,	"00000f1", "%+02.7x"},
+  {__LINE__, 0x00000002,	"2", "%X"},
+  {__LINE__, 0x00000000,	"000", "%03d"},
+  {__LINE__, 0xe63f73b2,	"E63F73B2", "% 1X"},
+  {__LINE__, 0xfffffffe,	"FFFFFFFE", "%5.1X"},
+  {__LINE__, 0x0d3fa38b,	"222274443", "%1d"},
+  {__LINE__, 0x00000000,	"0", "% X"},
+  {__LINE__, 0x00000001,	"   1", "%04.ld"},
+  {__LINE__, 0x00000046,	"46", "%0X"},
+  {__LINE__, 0x0000761f,	" 30239", "% ld"},
+  {__LINE__, -0x0002517,	"-9495", "%+d"},
+  {__LINE__, 0x00000156,	"156", "% 0x"},
+  {__LINE__, 0x1c55eba2,	"1c55eba2", "%.6x"},
+  {__LINE__, 0x005af80d,	"5af80d", "%.6x"},
+  {__LINE__, 0x0000002e,	"46", "%d"},
+  {__LINE__, -0x0007c0f,	"-31759", "%ld"},
+  {__LINE__, 0xffffe924,	"FFFFE924", "%7X"},
+  {__LINE__, 0x00000174,	"372", "%ld"},
+  {__LINE__, 0xffffffc9,	"0xffffffc9", "%-#x"},
+  {__LINE__, 0x00000020,	"+000032", "%+07d"},
+  {__LINE__, 0xffffe5d9,	"FFFFE5D9", "%4.5X"},
+  {__LINE__, 0xffffffa3,	"FFFFFFA3", "%+.3X"},
+  {__LINE__, 0x00000a03,	"+2563", "%+2d"},
+  {__LINE__, 0x001b58ca,	"+1792202", "%+4d"},
+  {__LINE__, 0xffffffc9,	"0xffffffc9", "%+#5x"},
+  {__LINE__, -0x0000003,	"-3", "% d"},
+  {__LINE__, 0xfffffffc,	"fffffffc", "%+0x"},
+  {__LINE__, -0x0000002,	"-02", "%.2d"},
+  {__LINE__, 0x000243fb,	"148475", "%-ld"},
+  {__LINE__, 0x00000001,	"1", "%0d"},
+  {__LINE__, -0x0000672,	"-1650", "%ld"},
+  {__LINE__, -0x0005413,	"-0021523", "% 7.7d"},
+  {__LINE__, 0x00000017,	"0X17", "%#X"},
+  {__LINE__, 0x00000e48,	"3656", "%0d"},
+  {__LINE__, 0xffe79b38,	"ffe79b38", "%-x"},
+  {__LINE__, 0xffffff15,	"FFFFFF15", "%+6.1X"},
+  {__LINE__, 0xfff0272c,	"fff0272c", "%-.5x"},
+  {__LINE__, -0x00b706f,	"-749679", "%1.ld"},
+  {__LINE__, 0x0176aeec,	"176AEEC", "%.1X"},
+  {__LINE__, -0x00005a1,	"-1441", "% 0ld"},
+  {__LINE__, -0x0000002,	"-00002", "%.5d"},
+  {__LINE__, -0xd2e6f5d,	"-221146973", "%1ld"},
+  {__LINE__, -0x0000001,	" -001", "%5.3ld"},
+  {__LINE__, 0x00000001,	"    1", "%05.ld"},
+  {__LINE__, 0x0000749e,	"+29854", "%+#d"},
+  {__LINE__, 0x00000005,	"5", "%d"},
+  {__LINE__, 0xfa7128b0,	"fa7128b0", "%1.x"},
+  {__LINE__, 0xffffbbb4,	"0XFFFFBBB4", "%#.1X"},
+  {__LINE__, 0x0006862f,	"427567", "%d"},
+  {__LINE__, 0x00000002,	"2", "%X"},
+  {__LINE__, 0x000005d4,	"5d4", "% x"},
+  {__LINE__, 0x001387e1,	"1279969", "%-05.0ld"},
+  {__LINE__, -0x0035a56,	"-219734", "%ld"},
+  {__LINE__, -0x4064ecc6,	"-1080356038", "%ld"},
+  {__LINE__, 0x0000360d,	"13837", "%0ld"},
+  {__LINE__, -0xea1a85b,	"-245475419", "%-.2ld"},
+  {__LINE__, 0xffffff2d,	"FFFFFF2D", "%X"},
+  {__LINE__, 0x00000004,	"   0004", "%7.4x"},
+  {__LINE__, 0x00f72ffd,	"F72FFD", "%-X"},
+  {__LINE__, 0x00000fa2,	"fa2  ", "%-5x"},
+  {__LINE__, 0x05ae1f9a,	"95297434", "%#ld"},
+  {__LINE__, 0x0000bf2e,	"48942", "%3.d"},
+  {__LINE__, 0x00000000,	" ", "%1.X"},
+  {__LINE__, 0x01bcb097,	"29143191", "%ld"},
+  {__LINE__, 0x0000009c,	"156 ", "%-4.0d"},
+  {__LINE__, 0xfffffffe,	"fffffffe", "% x"},
+  {__LINE__, 0x00000001,	"1     ", "%-6.d"},
+  {__LINE__, 0xffffffef,	"ffffffef", "%7.x"},
+  {__LINE__, 0xfffffec1,	"fffffec1", "%.5x"},
+  {__LINE__, -0x000000f,	"-15", "%-1d"},
+  {__LINE__, -0x0008426,	"-33830", "%0ld"},
+  {__LINE__, 0x005be0ae,	"5BE0AE", "% X"},
+  {__LINE__, 0x00000009,	"      9", "%+7X"},
+  {__LINE__, -0x0007e18,	"-32280", "%+0.d"},
+  {__LINE__, 0x01697ba1,	" 23690145", "% 5.ld"},
+  {__LINE__, -0x0012042,	"-073794", "%7.6d"},
+  {__LINE__, 0x04e9bd0d,	"4e9bd0d", "%-2x"},
+  {__LINE__, 0xffffffd9,	"FFFFFFD9", "%.2X"},
+  {__LINE__, -0x01b9632,	"-1807922", "%.6ld"},
+  {__LINE__, 0x000000cd,	"205", "%1.ld"},
+  {__LINE__, 0x00000000,	" ", "% .0d"},
+  {__LINE__, 0xff17bbb1,	"ff17bbb1", "%x"},
+  {__LINE__, -0x00146d7,	"-83671", "%+1.ld"},
+  {__LINE__, 0xfffff144,	"fffff144", "%x"},
+  {__LINE__, 0x000f8dbe,	"F8DBE", "%3.X"},
+  {__LINE__, -0x000381c,	"-14364", "%d"},
+  {__LINE__, 0x0000001e,	"  30", "%4.1d"},
+  {__LINE__, 0x00000016,	"22", "%-0d"},
+  {__LINE__, 0x00000002,	"+02", "%+1.2ld"},
+  {__LINE__, 0x0000e803,	"59395", "%d"},
+  {__LINE__, 0xb4c2448d,	"b4c2448d", "%-7x"},
+  {__LINE__, 0x000e697d,	"944509", "%ld"},
+  {__LINE__, 0xfffe6e32,	"0XFFFE6E32", "%#X"},
+  {__LINE__, 0x00000190,	"  190", "%+5.X"},
+  {__LINE__, -0x03a2219,	"-3809817", "%#6.ld"},
+  {__LINE__, -0x000003c,	"-60 ", "%-#4.ld"},
+  {__LINE__, 0x00000000,	"   ", "% 03.ld"},
+  {__LINE__, -0x074f922,	"-7665954", "%ld"},
+  {__LINE__, -0x00000f0,	"-240", "%-ld"},
+  {__LINE__, 0xfffe42d2,	"0XFFFE42D2", "%#X"},
+  {__LINE__, 0x000000dd,	"DD", "%X"},
+  {__LINE__, 0x00359abe,	"359ABE", "%.1X"},
+  {__LINE__, 0xffec7bdf,	"FFEC7BDF", "%0.1X"},
+  {__LINE__, 0x0ecddcba,	"248372410", "%-#3.d"},
+  {__LINE__, 0x00ad0dbc,	"11341244", "%ld"},
+  {__LINE__, -0x0000001,	"-1", "%-d"},
+  {__LINE__, 0x00050841,	"50841", "% .5x"},
+  {__LINE__, 0x01d359e7,	"1d359e7", "%1.x"},
+  {__LINE__, 0xff9efaa3,	"FF9EFAA3", "%X"},
+  {__LINE__, 0x0007ea10,	"+518672", "%+ld"},
+  {__LINE__, -0x000671c,	"-26396", "%1d"},
+  {__LINE__, 0xffffff91,	"0xffffff91", "%#4.4x"},
+  {__LINE__, 0x00000000,	"+", "%+0.0ld"},
+  {__LINE__, -0x002c53e,	"-181566", "%3.d"},
+  {__LINE__, 0xffffff56,	"ffffff56", "%x"},
+  {__LINE__, 0xfffff589,	"FFFFF589", "%+X"},
+  {__LINE__, 0x00024d13,	"24D13", "%-5.2X"},
+  {__LINE__, 0x00000000,	"     0", "%6.1d"},
+  {__LINE__, 0x00a64f33,	"A64F33", "%4.4X"},
+  {__LINE__, 0xffebb57a,	"FFEBB57A", "%5.4X"},
+  {__LINE__, 0xfff3b4a0,	"fff3b4a0", "%2.x"},
+  {__LINE__, 0xffffffd9,	"FFFFFFD9", "%.2X"},
+  {__LINE__, 0x00d37b84,	"13859716", "%d"},
+  {__LINE__, 0x00001e85,	"0001E85", "%0.7X"},
+  {__LINE__, -0x756148f,	"-123081871", "% 7.d"},
+  {__LINE__, -0x0319339,	"-3248953", "%+#.4d"},
+  {__LINE__, -0x00798b8,	"-497848", "%#5ld"},
+  {__LINE__, -0x0000039,	"-57", "%0d"},
+  {__LINE__, -0x000b1d7,	"-45527", "%+0.ld"},
+  {__LINE__, 0xff811fba,	"FF811FBA", "%+X"},
+  {__LINE__, 0x00000042,	" 66", "% ld"},
+  {__LINE__, 0xfffffe31,	"0XFFFFFE31", "%#X"},
+  {__LINE__, 0x00000073,	"115", "%ld"},
+  {__LINE__, 0x45091a39,	"0x45091a39", "%+#3.x"},
+  {__LINE__, 0x001270f5,	"1270f5", "%-5.6x"},
+  {__LINE__, 0xfffd91fd,	"fffd91fd", "%x"},
+  {__LINE__, -0x0817bad,	"-8485805", "%#ld"},
+  {__LINE__, -0x32ad55f,	"-53138783", "%0d"},
+  {__LINE__, 0x00003e57,	"15959", "%0ld"},
+  {__LINE__, -0x0048756,	"-296790", "%2.6d"},
+  {__LINE__, 0xff90f45f,	"FF90F45F", "% X"},
+  {__LINE__, 0x0000e454,	"0e454", "% .5x"},
+  {__LINE__, 0xfffffffc,	"fffffffc", "%x"},
+  {__LINE__, 0xfffffff7,	"FFFFFFF7", "%-2X"},
+  {__LINE__, 0xffdabf0e,	"FFDABF0E", "%+X"},
+  {__LINE__, 0xffffffff,	"0XFFFFFFFF", "%#1X"},
+  {__LINE__, 0x01516650,	"1516650", "% x"},
+  {__LINE__, 0xffffff51,	"FFFFFF51", "%X"},
+  {__LINE__, 0x000000ea,	"234", "%00.d"},
+  {__LINE__, 0x06db60ca,	"115040458", "%5.d"},
+  {__LINE__, 0x00000f01,	" 3841", "% d"},
+  {__LINE__, 0x00000009,	"9", "%x"},
+  {__LINE__, 0x299b3ba0,	"299b3ba0", "%6.7x"},
+  {__LINE__, 0x0067f298,	"67f298", "%-2.6x"},
+  {__LINE__, 0xfffffff5,	"FFFFFFF5", "% 2X"},
+  {__LINE__, 0x00102ff9,	"102FF9", "%-.0X"},
+  {__LINE__, 0xffc22393,	"0xffc22393", "% #6x"},
+  {__LINE__, 0x00007db5,	"32181", "%-2ld"},
+  {__LINE__, 0x0000b0a3,	"0xb0a3", "%#0x"},
+  {__LINE__, 0x001ceebb,	"1CEEBB", "%-3.4X"},
+  {__LINE__, 0x00025101,	"0x25101", "%#x"},
+  {__LINE__, -0x0000001,	"-1", "%0ld"},
+  {__LINE__, 0xffffd846,	"FFFFD846", "%+2.3X"},
+  {__LINE__, 0x00001d79,	" 7545", "% 0.1ld"},
+  {__LINE__, -0x0000002,	"   -2", "%5d"},
+  {__LINE__, 0xf93b9fdc,	"f93b9fdc", "%5x"},
+  {__LINE__, 0xffff0021,	"FFFF0021", "%6X"},
+  {__LINE__, 0x00007cf9,	"7cf9", "%3.1x"},
+  {__LINE__, -0x0000002,	"-2", "%d"},
+  {__LINE__, 0x00001d84,	"1d84", "%0x"},
+  {__LINE__, -0x033201e,	"-3350558", "%-2.0d"},
+  {__LINE__, 0xfff8a6fb,	"FFF8A6FB", "%+.7X"},
+  {__LINE__, 0x00006fff,	" 28671", "% ld"},
+  {__LINE__, -0x02a274a,	"-2762570", "%d"},
+  {__LINE__, -0x0006628,	"-26152", "%00ld"},
+  {__LINE__, 0x00000011,	"11", "%-x"},
+  {__LINE__, -0x0000ed9,	"-3801", "%0.ld"},
+  {__LINE__, 0xfc5b725d,	"FC5B725D", "%X"},
+  {__LINE__, 0x3530bd4e,	"892386638", "%7.d"},
+  {__LINE__, 0x03bb4ff7,	"62607351", "%#4.7ld"},
+  {__LINE__, 0x00009f86,	"9f86", "%x"},
+  {__LINE__, 0x0000e727,	"59175", "%1d"},
+  {__LINE__, 0xfffffdf2,	"0XFFFFFDF2", "%#X"},
+  {__LINE__, 0x00e60dbf,	"0XE60DBF", "% #1.X"},
+  {__LINE__, 0xffffffff,	"FFFFFFFF", "%+X"},
+  {__LINE__, 0x0a16f44e,	"0XA16F44E", "%#.0X"},
+  {__LINE__, 0x0001f97c,	"1f97c", "% x"},
+  {__LINE__, 0x0000000d,	"13", "%#0ld"},
+  {__LINE__, 0x0000002a,	"42", "%0ld"},
+  {__LINE__, 0x00000007,	"   +7", "%+5ld"},
+  {__LINE__, 0xffffff7f,	"FFFFFF7F", "%-X"},
+  {__LINE__, 0x000006a6,	"1702", "%ld"},
+  {__LINE__, 0xfaff2fb1,	"faff2fb1", "% x"},
+  {__LINE__, 0xffff94ab,	"ffff94ab", "%x"},
+  {__LINE__, 0x011d611b,	"0X11D611B", "%#2.3X"},
+  {__LINE__, 0x00000000,	" +000", "%+#5.3ld"},
+  {__LINE__, -0x87fcc37,	"-142593079", "%+d"},
+  {__LINE__, -0x0417424,	"-4289572", "%+d"},
+  {__LINE__, 0x03fabc0c,	"3fabc0c", "%x"},
+  {__LINE__, 0xfffff880,	"fffff880", "%-x"},
+  {__LINE__, 0x000002d7,	"2d7", "%-02.x"},
+  {__LINE__, 0x00003e82,	"16002", "%#d"},
+  {__LINE__, -0x0003713,	"-14099", "% 5d"},
+  {__LINE__, -0x0000027,	"-39", "%ld"},
+  {__LINE__, 0x00013098,	"0077976", "%01.7d"},
+  {__LINE__, -0x000000c,	"-12", "%ld"},
+  {__LINE__, -0x00000c0,	"-192", "% ld"},
+  {__LINE__, 0xffbe9285,	"FFBE9285", "%3.X"},
+  {__LINE__, 0x00000046,	"46", "%x"},
+  {__LINE__, 0x00000000,	"    ", "%+4.x"},
+  {__LINE__, 0x00011e72,	"73330", "%2.3d"},
+  {__LINE__, -0x5276dd7,	"-86470103", "%d"},
+  {__LINE__, 0x00000013,	"19", "%-02.ld"},
+  {__LINE__, 0x384118a7,	"0X384118A7", "%-#X"},
+  {__LINE__, 0x00000000,	"0", "% #X"},
+  {__LINE__, 0x00000009,	"9", "%#ld"},
+  {__LINE__, 0x00021145,	"135493", "%-ld"},
+  {__LINE__, 0xff188a0c,	"FF188A0C", "%1.X"},
+  {__LINE__, 0xffffffd5,	"ffffffd5", "%0x"},
+  {__LINE__, 0xfffffffe,	"FFFFFFFE", "% 0X"},
+  {__LINE__, 0xffff74a3,	"ffff74a3", "%x"},
+  {__LINE__, 0x01d5a2f8,	"1d5a2f8", "%-0.x"},
+  {__LINE__, 0xfffffef6,	"fffffef6", "%+06.x"},
+  {__LINE__, 0x00000001,	"1", "%ld"},
+  {__LINE__, 0x00000000,	"+0", "%+ld"},
+  {__LINE__, 0xfffffffc,	"fffffffc", "%4.x"},
+  {__LINE__, -0x0000344,	"-0836", "% .4d"},
+  {__LINE__, 0xfffffffd,	"FFFFFFFD", "%0X"},
+  {__LINE__, 0x000a3121,	"667937", "%#4.4ld"},
+  {__LINE__, 0x0001e211,	"0X1E211", "%#X"},
+  {__LINE__, 0x00000c8b,	"00C8B", "%05X"},
+  {__LINE__, 0xfffffffe,	"fffffffe", "%+0x"},
+  {__LINE__, 0x001a53ce,	"1725390", "%d"},
+  {__LINE__, 0x0000057f,	"57f    ", "%-7.x"},
+  {__LINE__, -0x0073e4d,	"-474701", "%#ld"},
+  {__LINE__, -0x0000002,	" -2", "% 3.d"},
+  {__LINE__, 0x482dc404,	"482DC404", "%X"},
+  {__LINE__, 0x0000011c,	"11c", "%-.1x"},
+  {__LINE__, 0x00000c12,	" 3090", "%5.3ld"},
+  {__LINE__, 0xfffe1068,	"FFFE1068", "%-.4X"},
+  {__LINE__, -0x0055e88,	"-351880", "%ld"},
+  {__LINE__, 0x000c9cef,	"+826607", "%+d"},
+  {__LINE__, 0xffffffe3,	"ffffffe3", "%0x"},
+  {__LINE__, -0x0000ee9,	"-3817", "%#ld"},
+  {__LINE__, 0xff1f6daa,	"FF1F6DAA", "%X"},
+  {__LINE__, 0xfffffc4e,	"FFFFFC4E", "%5.2X"},
+  {__LINE__, -0x000040a,	"-1034", "%d"},
+  {__LINE__, -0x0000085,	"-00133", "% 01.5d"},
+  {__LINE__, -0x126c797c,	"-309098876", "%5.ld"},
+  {__LINE__, 0x00000039,	" 57", "% d"},
+  {__LINE__, 0xfffffff6,	"0xfffffff6", "%#5.x"},
+  {__LINE__, 0xfffffff4,	"fffffff4", "%7.6x"},
+  {__LINE__, 0x00000003,	"3", "%ld"},
+  {__LINE__, 0x0000f8ae,	"f8ae", "%.0x"},
+  {__LINE__, 0x003ca1cf,	"3973583", "%#3.7d"},
+  {__LINE__, 0x14687009,	"0x14687009", "%+#3x"},
+  {__LINE__, 0xfffff1f7,	"0xfffff1f7", "%#4.5x"},
+  {__LINE__, 0xfffff17a,	"fffff17a", "%3.x"},
+  {__LINE__, 0x0011ea18,	"1174040", "%ld"},
+  {__LINE__, -0x0000019,	"-25", "%03.d"},
+  {__LINE__, 0x00015d72,	"0X15D72", "%-#X"},
+  {__LINE__, 0xffde4a41,	"ffde4a41", "%x"},
+  {__LINE__, 0x00006f1f,	"28447", "%d"},
+  {__LINE__, 0xffffffbd,	"0xffffffbd", "%#.1x"},
+  {__LINE__, 0x000013b9,	"13B9", "%0X"},
+  {__LINE__, -0x00001b9,	"-00441", "%1.5d"},
+  {__LINE__, 0x00000001,	"000001", "%-.6d"},
+  {__LINE__, 0x7b602d8f,	"+2069900687", "%+0ld"},
+  {__LINE__, 0x0005e323,	"+385827", "%+ld"},
+  {__LINE__, 0x00002fce,	"2FCE", "%+0X"},
+  {__LINE__, 0x0000000e,	"0014", "%.4d"},
+  {__LINE__, 0xffffffd6,	"0XFFFFFFD6", "%#4.X"},
+  {__LINE__, 0x037bf361,	"58454881", "%5.ld"},
+  {__LINE__, 0xffffffff,	"FFFFFFFF", "%-7.5X"},
+  {__LINE__, -0x016d4dc,	"-1496284", "%6ld"},
+  {__LINE__, 0x0005be9a,	"0x5be9a", "%-#.5x"},
+  {__LINE__, 0xffffffff,	"ffffffff", "%1x"},
+  {__LINE__, 0x00000055,	"     85", "% 7.d"},
+  {__LINE__, 0xffffffff,	"ffffffff", "%x"},
+  {__LINE__, -0x0135392,	"-1266578", "% ld"},
+  {__LINE__, 0x00850f26,	"8720166", "%d"},
+  {__LINE__, 0xffffee39,	"ffffee39", "%0x"},
+  {__LINE__, 0x000000dd,	"221", "%ld"},
+  {__LINE__, 0x00000000,	"      ", "%6.d"},
+  {__LINE__, 0x000000d8,	"d8", "%x"},
+  {__LINE__, 0x000007ec,	"002028", "%4.6ld"},
+  {__LINE__, 0x0dab4e67,	"0XDAB4E67", "%#X"},
+  {__LINE__, 0xfffd7c95,	"FFFD7C95", "% 4X"},
+  {__LINE__, 0x0009302d,	"9302D", "%3.1X"},
+  {__LINE__, 0x00000003,	" 3", "% d"},
+  {__LINE__, 0x0000082f,	"82f", "%-x"},
+  {__LINE__, 0x0652517f,	"652517F", "%-.2X"},
+  {__LINE__, -0x1fd8f4e3,	"-534312163", "%d"},
+  {__LINE__, 0x00000176,	"176", "%-x"},
+  {__LINE__, 0x00000001,	"1", "%ld"},
+  {__LINE__, 0x0000001a,	"1A", "%X"},
+  {__LINE__, -0x0005740,	"-22336", "% 0ld"},
+  {__LINE__, 0xffffffff,	"ffffffff", "%6x"},
+  {__LINE__, 0x1b273b80,	"0x1b273b80", "%#x"},
+  {__LINE__, 0x00000065,	"65", "%X"},
+  {__LINE__, 0x6a62138a,	"1784812426", "%2ld"},
+  {__LINE__, 0x000001a2,	"1A2", "%X"},
+  {__LINE__, -0x002aafd,	"-174845", "%02.ld"},
+  {__LINE__, 0x00000014,	"20", "%d"},
+  {__LINE__, -0x00000c7,	"   -199", "%7.0ld"},
+  {__LINE__, 0xff545bfd,	"ff545bfd", "%-x"},
+  {__LINE__, -0x002beb9,	"-179897", "%02.2ld"},
+  {__LINE__, -0x00000df,	"-223", "% 02.d"},
+  {__LINE__, -0x000d569,	"-54633", "%1.ld"},
+  {__LINE__, 0x0000000e,	"14", "%d"},
+  {__LINE__, -0x0077407,	"-488455", "% ld"},
+  {__LINE__, 0x0001be09,	"114185", "%ld"},
+  {__LINE__, -0x0000514,	"-01300", "%+05.5d"},
+  {__LINE__, 0xf1fb397f,	"f1fb397f", "%+x"},
+  {__LINE__, 0xfdb6707c,	"FDB6707C", "%X"},
+  {__LINE__, 0x03cad111,	"3cad111", "%5.x"},
+  {__LINE__, -0x022e72f,	"-2287407", "%d"},
+  {__LINE__, -0xda35f48,	"-228810568", "%d"},
+  {__LINE__, -0x02d1fd4,	"-2957268", "%1.3d"},
+  {__LINE__, 0x0000005f,	"+95", "%+2d"},
+  {__LINE__, 0xfffbf8a1,	"FFFBF8A1", "%4.2X"},
+  {__LINE__, 0x0000071e,	"   71e", "%6.x"},
+  {__LINE__, 0x000cc8a5,	"+837797", "%+03ld"},
+  {__LINE__, 0x000eebe9,	" EEBE9", "%6.X"},
+  {__LINE__, -0x2896b204,	"-680964612", "%d"},
+  {__LINE__, -0x09553f8,	"-9786360", "%d"},
+  {__LINE__, 0x000015d3,	"5587", "%0d"},
+  {__LINE__, 0x0000056d,	" 56d", "%+4.x"},
+  {__LINE__, -0x00624ad,	"-402605", "% ld"},
+  {__LINE__, 0xfea64ba5,	"0xfea64ba5", "%#1x"},
+  {__LINE__, 0x004f35c6,	"5191110", "%-ld"},
+  {__LINE__, -0x1441fe4,	"-21241828", "%d"},
+  {__LINE__, 0xffffff95,	"FFFFFF95", "%X"},
+  {__LINE__, 0xfffecf81,	"FFFECF81", "%-2.X"},
+  {__LINE__, -0x00002bb,	"-699", "%-d"},
+  {__LINE__, -0x0000c29,	"-3113", "% 02ld"},
+  {__LINE__, 0x000026a3,	" 9891", "% .4d"},
+  {__LINE__, 0x00000003,	"3", "%-x"},
+  {__LINE__, 0x000007db,	"+02011", "%+.5ld"},
+  {__LINE__, 0xfff99558,	"FFF99558", "%.1X"},
+  {__LINE__, 0x0000fce6,	"64742", "%4.0d"},
+  {__LINE__, 0x000b7ea2,	"753314", "%ld"},
+  {__LINE__, 0x13e5df30,	"0X13E5DF30", "%#2.X"},
+  {__LINE__, 0x006761c4,	"06761C4", "%6.7X"},
+  {__LINE__, 0xffffff78,	"FFFFFF78", "%0.X"},
+  {__LINE__, 0xfffff1c0,	"0xfffff1c0", "% #x"},
+  {__LINE__, -0x034af1c,	"-3452700", "% 06.1d"},
+  {__LINE__, 0x000000de,	"0000222", "%2.7ld"},
+  {__LINE__, 0x000003d8,	"0x3d8", "%#4.x"},
+  {__LINE__, -0x001a1d1,	"-106961", "%3.1d"},
+  {__LINE__, -0x0000002,	"-2", "% d"},
+  {__LINE__, 0x00001de6,	"+7654", "%+0ld"},
+  {__LINE__, 0x00000001,	"001", "%#.3d"},
+  {__LINE__, -0x53dacf9f,	"-1406848927", "%ld"},
+  {__LINE__, 0xfffffffc,	"fffffffc", "%3.3x"},
+  {__LINE__, -0x00950e8,	"-610536", "%3.6ld"},
+  {__LINE__, 0xff14ade9,	"FF14ADE9", "%6X"},
+  {__LINE__, 0x012f5284,	"0X12F5284", "% #5X"},
+  {__LINE__, 0x00005a21,	" 5a21", "%5x"},
+  {__LINE__, 0x00000638,	"1592", "%2.4ld"},
+  {__LINE__, -0x063017b,	"-6488443", "%ld"},
+  {__LINE__, 0x00000000,	"0", "% X"},
+  {__LINE__, 0xfffe8ef2,	"FFFE8EF2", "%+0X"},
+  {__LINE__, -0x0001c96,	"-7318", "%.3d"},
+  {__LINE__, 0x0000ca7d,	"51837", "%ld"},
+  {__LINE__, 0x00000001,	"1", "%+1x"},
+  {__LINE__, 0xfffff7bc,	"FFFFF7BC", "%X"},
+  {__LINE__, -0x03d15e2,	"-4003298", "%ld"},
+  {__LINE__, 0xfffffffe,	"fffffffe", "% x"},
+  {__LINE__, 0x00066183,	"+418179", "%+7.1ld"},
+  {__LINE__, 0xffffef2e,	"ffffef2e", "%-2.x"},
+  {__LINE__, 0x00000000,	" 000", "%04.3x"},
+  {__LINE__, -0x000000f,	"-15", "% d"},
+  {__LINE__, -0x00001f5,	"-501", "%d"},
+  {__LINE__, 0x0c67f159,	"c67f159", "%6.2x"},
+  {__LINE__, -0x0000006,	"-6", "%.1d"},
+  {__LINE__, 0x00000005,	"0X5", "%+#1X"},
+  {__LINE__, -0x0000002,	"    -2", "%6.ld"},
+  {__LINE__, 0xeb2183ec,	"eb2183ec", "% x"},
+  {__LINE__, -0x5e12a322,	"-1578279714", "%d"},
+  {__LINE__, 0x00000001,	"0x1", "%#x"},
+  {__LINE__, -0x0001ea4,	"-7844", "%0d"},
+  {__LINE__, -0x19955a3,	"-26826147", "%d"},
+  {__LINE__, 0x000002a6,	"2A6", "%2.X"},
+  {__LINE__, 0x00000002,	"2", "%X"},
+  {__LINE__, 0xfffffeec,	"fffffeec", "%0.4x"},
+  {__LINE__, 0xfffffffc,	"fffffffc", "%0x"},
+  {__LINE__, 0xffdfe740,	"FFDFE740", "% X"},
+  {__LINE__, -0x0b0b3e7,	"-11580391", "%.1d"},
+  {__LINE__, 0x8e01077c,	"8E01077C", "%5.7X"},
+  {__LINE__, 0x3b6b6d55,	"996896085", "%1.1d"},
+  {__LINE__, 0x000016af,	"5807", "%ld"},
+  {__LINE__, -0x0004900,	"-18688", "%d"},
+  {__LINE__, 0xfffd77bc,	"FFFD77BC", "%X"},
+  {__LINE__, 0x004cbd74,	"5029236", "%0d"},
+  {__LINE__, 0x00000003,	" 00003", "%6.5d"},
+  {__LINE__, 0x0004720f,	"4720f", "% x"},
+  {__LINE__, 0x0e44535d,	"e44535d", "%4x"},
+  {__LINE__, 0xfffffff9,	"FFFFFFF9", "%3.3X"},
+  {__LINE__, -0x0000005,	"-5", "%-d"},
+  {__LINE__, 0x000001a6,	"00001A6", "%1.7X"},
+  {__LINE__, 0x0000004a,	"4A", "%-2.X"},
+  {__LINE__, 0xfffff249,	"FFFFF249", "%X"},
+  {__LINE__, 0x00004345,	"4345", "%x"},
+  {__LINE__, 0x0197041d,	"197041d", "%+0x"},
+  {__LINE__, 0x0000019a,	"   19a", "% 6.x"},
+  {__LINE__, 0xfff98376,	"FFF98376", "%X"},
+  {__LINE__, 0xfc536c41,	"FC536C41", "%X"},
+  {__LINE__, -0x0008d91,	"-36241", "% d"},
+  {__LINE__, 0xf058d69d,	"f058d69d", "%4.x"},
+  {__LINE__, -0x00013ef,	"-5103", "%d"},
+  {__LINE__, -0x0000003,	"-3", "%00ld"},
+  {__LINE__, -0x09e80f0,	"-10387696", "%+07ld"},
+  {__LINE__, -0x0222c15,	"-2239509", "%#0.4ld"},
+  {__LINE__, 0x00000004,	"4", "%0ld"},
+  {__LINE__, -0x02c6b0d,	"-2910989", "% 0ld"},
+  {__LINE__, 0xfffffffe,	"FFFFFFFE", "%-4X"},
+  {__LINE__, 0xffffff3d,	"FFFFFF3D", "%-.0X"},
+  {__LINE__, -0x0000015,	"-21", "%0d"},
+  {__LINE__, 0x131dfc90,	"+320732304", "%+d"},
+  {__LINE__, 0xffffffff,	"ffffffff", "%+x"},
+  {__LINE__, 0x000035c8,	"13768", "%0ld"},
+  {__LINE__, 0x00000033,	"0x0033", "%#.4x"},
+  {__LINE__, 0x0ce7e8c1,	"0xce7e8c1", "%#.7x"},
+  {__LINE__, 0xfc18b5d2,	"FC18B5D2", "%+.3X"},
+  {__LINE__, 0x00000015,	"21", "%d"},
+  {__LINE__, 0x001a5e7c,	"1a5e7c", "%05x"},
+  {__LINE__, -0x000fbf0,	"-64496", "%ld"},
+  {__LINE__, -0x000a4f7,	"-042231", "%+2.6d"},
+  {__LINE__, -0x0000002,	"-002", "%3.3ld"},
+  {__LINE__, 0x00728878,	"728878", "%0X"},
+  {__LINE__, -0x0000002,	"-2", "%#.1ld"},
+  {__LINE__, -0x00002ef,	"-751", "%-0ld"},
+  {__LINE__, 0xfffffff7,	"fffffff7", "%.3x"},
+  {__LINE__, 0x00491867,	"0491867", "%.7X"},
+  {__LINE__, 0x00000d4d,	"3405", "%-ld"},
+  {__LINE__, 0x00234e86,	"234E86", "%0X"},
+  {__LINE__, -0x000001b,	"-27", "%ld"},
+  {__LINE__, 0x00275255,	"2576981", "%.5ld"},
+  {__LINE__, 0xfeacc214,	"0XFEACC214", "%-#3.X"},
+  {__LINE__, -0x0001ce5,	"-7397", "%+#2.2ld"},
+  {__LINE__, 0x089ddb6a,	"144563050", "%d"},
+  {__LINE__, 0x003d5a95,	"3D5A95", "%1X"},
+  {__LINE__, 0x002f0b6d,	"3083117", "%d"},
+  {__LINE__, 0x1e79e228,	"511304232", "%ld"},
+  {__LINE__, 0xfffffe6b,	"FFFFFE6B", "%+0X"},
+  {__LINE__, -0x5104ff3,	"-84955123", "%.4ld"},
+  {__LINE__, 0xfffff1de,	"FFFFF1DE", "%X"},
+  {__LINE__, 0x000000cf,	"+207", "%+.1ld"},
+  {__LINE__, -0x16ad0164,	"-380436836", "%+5.d"},
+  {__LINE__, 0x001fefa6,	"2092966", "%ld"},
+  {__LINE__, 0x00000000,	"00", "%-.2d"},
+  {__LINE__, 0x00195f45,	"195f45", "%+0x"},
+  {__LINE__, 0x00000001,	"  1", "%3.ld"},
+  {__LINE__, -0x00001c9,	"-457", "% ld"},
+  {__LINE__, 0x0002479e,	"149406", "%#ld"},
+  {__LINE__, 0x001ab18b,	"1749387", "%04d"},
+  {__LINE__, 0x00000045,	"69", "%ld"},
+  {__LINE__, 0xfbb13f7d,	"fbb13f7d", "%.2x"},
+  {__LINE__, 0x03ddc208,	"3ddc208", "%x"},
+  {__LINE__, 0x00000007,	"000007", "%#.6d"},
+  {__LINE__, 0x00000000,	"0", "%01X"},
+  {__LINE__, -0x0023110,	"-143632", "%+0.3d"},
+  {__LINE__, 0x00000006,	"06", "%#.2d"},
+  {__LINE__, 0xffff9ec9,	"ffff9ec9", "%7x"},
+  {__LINE__, -0x08afb12,	"-9108242", "% #0.ld"},
+  {__LINE__, 0x00000004,	"4", "%X"},
+  {__LINE__, 0x00059684,	"59684", "%x"},
+  {__LINE__, 0xfff8d8f5,	"FFF8D8F5", "%X"},
+  {__LINE__, 0x00b7027d,	"+11993725", "%+0.7ld"},
+  {__LINE__, 0x0000d814,	"55316", "%0ld"},
+  {__LINE__, 0x03c95a08,	"3c95a08", "%3x"},
+  {__LINE__, -0x0b65f9a,	"-11952026", "%d"},
+  {__LINE__, 0xfd956021,	"fd956021", "%0x"},
+  {__LINE__, 0x000000ed,	"ed", "%0x"},
+  {__LINE__, -0x006a80c,	"-436236", "%.6ld"},
+  {__LINE__, 0xfedb109d,	"fedb109d", "%x"},
+  {__LINE__, 0x00000001,	"1", "%X"},
+  {__LINE__, 0x00b3eb71,	" 11791217", "% d"},
+  {__LINE__, 0x00000016,	"16", "%0X"},
+  {__LINE__, 0x000001db,	" 475", "% ld"},
+  {__LINE__, 0x00465eaf,	"4611759", "%0d"},
+  {__LINE__, 0x0001b423,	"1B423", "%0X"},
+  {__LINE__, 0x05df95ea,	"5df95ea", "%+.5x"},
+  {__LINE__, 0x0000000e,	"     14", "%7ld"},
+  {__LINE__, 0xffffb89e,	"ffffb89e", "%+x"},
+  {__LINE__, 0x01259918,	" 19241240", "% d"},
+  {__LINE__, -0x0000f8d,	"-003981", "%+#.6d"},
+  {__LINE__, 0x00054ae0,	"54AE0", "%X"},
+  {__LINE__, -0x4589ed4,	"-72916692", "% ld"},
+  {__LINE__, 0x01017516,	"1017516", "%6X"},
+  {__LINE__, 0xfffb9f15,	"FFFB9F15", "%.2X"},
+  {__LINE__, 0x005f8394,	"5F8394", "%.2X"},
+  {__LINE__, 0xffffffff,	"ffffffff", "%x"},
+  {__LINE__, -0x0000001,	"     -1", "%7.1ld"},
+  {__LINE__, 0x004367af,	"4417455", "%4.ld"},
+  {__LINE__, 0xffffff86,	"ffffff86", "%4.5x"},
+  {__LINE__, -0x0000d17,	"-3351", "%2.0ld"},
+  {__LINE__, 0xffffff31,	"ffffff31", "%.6x"},
+  {__LINE__, -0x0000001,	"-1", "%ld"},
+  {__LINE__, -0x3d785fab,	"-1031298987", "%d"},
+  {__LINE__, -0x0000002,	"-2", "%-0ld"},
+  {__LINE__, 0x0000019c,	"412", "%d"},
+  {__LINE__, -0x0006f54,	"-28500", "%d"},
+  {__LINE__, 0xfffe3524,	"FFFE3524", "% 6.2X"},
+  {__LINE__, -0x128d3c00,	"-311245824", "%2d"},
+  {__LINE__, -0x3be71293,	"-1004999315", "%d"},
+  {__LINE__, 0x0000659d,	"26013", "%d"},
+  {__LINE__, 0x2d947538,	"+764704056", "%+5d"},
+  {__LINE__, 0xffa2a420,	"FFA2A420", "%0X"},
+  {__LINE__, 0x00000001,	"1", "%d"},
+  {__LINE__, 0x04477c14,	"4477c14", "%.6x"},
+  {__LINE__, -0x06e145b,	"-7214171", "%d"},
+  {__LINE__, 0x00009c01,	"39937", "%-.1d"},
+  {__LINE__, 0xffde174b,	"ffde174b", "% 0x"},
+  {__LINE__, 0x0001fbae,	"1FBAE", "%01.X"},
+  {__LINE__, -0x06b8406,	"-7046150", "%d"},
+  {__LINE__, 0x000005b8,	"005b8", "%05x"},
+  {__LINE__, -0x02d780b,	"-2979851", "%1d"},
+  {__LINE__, 0x00209e26,	"2137638", "%2d"},
+  {__LINE__, 0x0000041a,	"41A", "%0X"},
+  {__LINE__, 0x2a77f42c,	"2A77F42C", "%02X"},
+  {__LINE__, 0x13b6ee14,	"+330755604", "%+0d"},
+  {__LINE__, -0x0000002,	"-2    ", "%-6.d"},
+  {__LINE__, -0x0001eee,	"-7918", "% #2.ld"},
+  {__LINE__, 0xffffffff,	"FFFFFFFF", "% .5X"},
+  {__LINE__, 0x20d11927,	"20d11927", "% 0.x"},
+  {__LINE__, -0x0018690,	"-99984", "% ld"},
+  {__LINE__, 0x000002a0,	"2A0", "%-0X"},
+  {__LINE__, -0x0000511,	"-1297", "%+d"},
+  {__LINE__, 0x0e782f31,	"242757425", "%-0.ld"},
+  {__LINE__, 0x2ce06da0,	"752905632", "%#0ld"},
+  {__LINE__, 0x00000062,	"62     ", "%-07x"},
+  {__LINE__, -0x015d9d8,	"-1432024", "% 7d"},
+  {__LINE__, 0xc9125ea8,	"c9125ea8", "%x"},
+  {__LINE__, 0x00000006,	"6", "%.0ld"},
+  {__LINE__, 0x0000019c,	"19c", "%x"},
+  {__LINE__, 0x00000000,	"      ", "%6.d"},
+  {__LINE__, 0x00043e89,	"278153", "%0ld"},
+  {__LINE__, 0x3e422abd,	"1044523709", "%ld"},
+  {__LINE__, 0x0220a75d,	"35694429", "%#7.6d"},
+  {__LINE__, 0x0000c21c,	"C21C", "% X"},
+  {__LINE__, 0x000074ab,	"29867", "%d"},
+  {__LINE__, 0x056b22aa,	"56B22AA", "%+0.X"},
+  {__LINE__, 0xfffffff9,	"FFFFFFF9", "%X"},
+  {__LINE__, 0x00000000,	"0", "%X"},
+  {__LINE__, 0xf094a4f4,	"f094a4f4", "%+4.x"},
+  {__LINE__, -0x1dad0244,	"-497877572", "%d"},
+  {__LINE__, 0xffffffff,	"FFFFFFFF", "%.1X"},
+  {__LINE__, 0xfffffe2d,	"fffffe2d", "%7.x"},
+  {__LINE__, 0x0000042b,	"0x42b", "%#x"},
+  {__LINE__, -0x0000001,	"-1", "% d"},
+  {__LINE__, 0x00e77ef5,	" 15171317", "% 7.ld"},
+  {__LINE__, 0x00006210,	" 25104", "% 06d"},
+  {__LINE__, 0x0011187a,	"1120378", "%-ld"},
+  {__LINE__, -0x000000b,	"-11", "% #ld"},
+  {__LINE__, 0x14cfaff0,	"14cfaff0", "%-2.3x"},
+  {__LINE__, 0xffff74ea,	"FFFF74EA", "%3.X"},
+  {__LINE__, 0x000bfb9d,	"bfb9d", "%x"},
+  {__LINE__, 0xfffffffe,	"FFFFFFFE", "%X"},
+  {__LINE__, 0x00014500,	"0X14500", "%#4.X"},
+  {__LINE__, -0x0000001,	"-1", "%#1d"},
+  {__LINE__, -0x0000024,	"-36", "%-0d"},
+  {__LINE__, -0x6528828,	"-106072104", "%d"},
+  {__LINE__, 0x00000075,	" 117", "% #d"},
+  {__LINE__, 0xff027d67,	"ff027d67", "%0x"},
+  {__LINE__, 0x0012b8b3,	"12b8b3", "%0.1x"},
+  {__LINE__, 0x1070147b,	"275780731", "%.6ld"},
+  {__LINE__, 0xffffe88e,	"FFFFE88E", "%1.3X"},
+  {__LINE__, 0xfffffc0d,	"fffffc0d", "%00.6x"},
+  {__LINE__, 0xffd889f5,	"ffd889f5", "%x"},
+  {__LINE__, 0x00000470,	"1136", "%0ld"},
+  {__LINE__, 0x000297f8,	"169976", "%ld"},
+  {__LINE__, 0xfffffffe,	"fffffffe", "%+1x"},
+  {__LINE__, 0x0000064a,	"64a", "%x"},
+  {__LINE__, -0x3d71e43b,	"-1030874171", "%1.d"},
+  {__LINE__, -0x0000004,	"-4 ", "%-3.d"},
+  {__LINE__, 0xfffff132,	"FFFFF132", "%0.0X"},
+  {__LINE__, 0x37b6356f,	"37b6356f", "%-x"},
+  {__LINE__, 0xffffff7a,	"FFFFFF7A", "%.0X"},
+  {__LINE__, 0x00023553,	"23553", "%x"},
+  {__LINE__, 0x39a4c29f,	"39a4c29f", "%+5.x"},
+  {__LINE__, 0xffffffcc,	"ffffffcc", "%x"},
+  {__LINE__, 0x0003a83b,	"239675", "%#6ld"},
+  {__LINE__, 0x00000002,	"2", "%0x"},
+  {__LINE__, -0x09b4e8c,	"-10178188", "%+03.ld"},
+  {__LINE__, 0x00000002,	"0000002", "%-#.7ld"},
+  {__LINE__, 0x00000b5e,	"2910", "%-04ld"},
+  {__LINE__, -0x0000254,	"-596", "%+0d"},
+  {__LINE__, 0x00000001,	"1", "%+1.x"},
+  {__LINE__, 0xf8290d3e,	"0XF8290D3E", "% #X"},
+  {__LINE__, 0x00000035,	"035", "%3.3X"},
+  {__LINE__, 0x00131d7d,	"131D7D ", "%-7.6X"},
+  {__LINE__, 0xffdbb36a,	"0xffdbb36a", "%#.6x"},
+  {__LINE__, 0xc7275816,	"c7275816", "%04.x"},
+  {__LINE__, 0x00bae994,	"12249492", "%0ld"},
+  {__LINE__, 0x00000002,	"+2", "%+0.0ld"},
+  {__LINE__, 0xffffffff,	"ffffffff", "%0x"},
+  {__LINE__, 0xffffffe0,	"ffffffe0", "%x"},
+  {__LINE__, 0x00000036,	"36", "%.0X"},
+  {__LINE__, 0xfffffffd,	"FFFFFFFD", "%1X"},
+  {__LINE__, 0xffffffc8,	"ffffffc8", "%+x"},
+  {__LINE__, 0xe71c3689,	"e71c3689", "%x"},
+  {__LINE__, 0x00000007,	"7  ", "%-3.ld"},
+  {__LINE__, 0xffffffff,	"ffffffff", "%x"},
+  {__LINE__, 0x00030400,	"030400", "%-4.6x"},
+  {__LINE__, 0xbd8c6fa7,	"BD8C6FA7", "%-6X"},
+  {__LINE__, 0x00000233,	"0000563", "%.7ld"},
+  {__LINE__, 0xfef92e35,	"fef92e35", "%x"},
+  {__LINE__, 0xffff2172,	"ffff2172", "%3x"},
+  {__LINE__, 0x00001233,	"1233", "% X"},
+  {__LINE__, -0x000d2e1,	"-53985", "%-0d"},
+  {__LINE__, -0x3ba8cb5b,	"-1000917851", "%0d"},
+  {__LINE__, -0x4fefb9a,	"-83819418", "%5.ld"},
+  {__LINE__, 0xffffe9eb,	"FFFFE9EB", "%X"},
+  {__LINE__, 0x1e472dc3,	"507981251", "%ld"},
+  {__LINE__, -0x0077046,	"-487494", "%0d"},
+  {__LINE__, 0x0002c4c9,	"+181449", "%+7.d"},
+  {__LINE__, 0xfffffe63,	"fffffe63", "%x"},
+  {__LINE__, 0xfff5a6db,	"FFF5A6DB", "%X"},
+  {__LINE__, 0x00174442,	"174442", "%-5.0X"},
+  {__LINE__, 0x017891d9,	"17891D9", "%+5.X"},
+  {__LINE__, 0x0261966b,	"261966B", "%-X"},
+  {__LINE__, -0x3e58614d,	"-1045979469", "%ld"},
+  {__LINE__, 0x002c4c41,	"+2903105", "%+01ld"},
+  {__LINE__, 0x0000000c,	"012", "%#.3d"},
+  {__LINE__, 0x0380f73a,	"58783546", "%ld"},
+  {__LINE__, 0x000002c7,	"0000711", "%2.7ld"},
+  {__LINE__, 0x00000002,	" 002", "% 04ld"},
+  {__LINE__, 0x00687ca0,	"687CA0", "%X"},
+  {__LINE__, 0x0000058a,	"1418", "%0ld"},
+  {__LINE__, -0x0000642,	"-1602", "% ld"},
+  {__LINE__, 0x0001f4f1,	"1F4F1", "%X"},
+  {__LINE__, 0x0026d6fc,	"+2545404", "%+4.ld"},
+  {__LINE__, 0x05dd423c,	"+98386492", "%+#ld"},
+  {__LINE__, 0x0000782c,	"0782C", "%3.5X"},
+  {__LINE__, 0xf67d91f8,	"f67d91f8", "%-x"},
+  {__LINE__, 0xffffcf2d,	"ffffcf2d", "%+0x"},
+  {__LINE__, -0x00af8a6,	"-719014", "%0ld"},
+  {__LINE__, -0xe606ef9,	"-241200889", "%ld"},
+  {__LINE__, 0xfe9d87f7,	"fe9d87f7", "%+x"},
+  {__LINE__, 0x00000d44,	"d44", "% 1.x"},
+  {__LINE__, 0x008716f5,	"8716f5", "%2x"},
+  {__LINE__, 0x000027d4,	"27D4", "% X"},
+  {__LINE__, 0xfdfd92ea,	"FDFD92EA", "%-.4X"},
+  {__LINE__, 0xfffe764f,	"FFFE764F", "%X"},
+  {__LINE__, 0xff699032,	"ff699032", "%3.x"},
+  {__LINE__, 0xffffffff,	"FFFFFFFF", "%-3X"},
+  {__LINE__, -0x368ba995,	"-915122581", "%+#.6ld"},
+  {__LINE__, 0xffffffff,	"ffffffff", "%0x"},
+  {__LINE__, 0x0000035e,	" 862", "% 1d"},
+  {__LINE__, 0xfe703e67,	"fe703e67", "%07.0x"},
+  {__LINE__, 0xfffffffe,	"fffffffe", "%4.x"},
+  {__LINE__, 0x000e20cf,	"e20cf", "%0x"},
+  {__LINE__, 0x000063b5,	"0X63B5", "%-#X"},
+  {__LINE__, 0xfffffffa,	"fffffffa", "%+2.x"},
+  {__LINE__, 0xffffffff,	"FFFFFFFF", "%2.X"},
+  {__LINE__, 0xfdfd69da,	"FDFD69DA", "%.0X"},
+  {__LINE__, 0x00002f61,	"0x2f61", "%#3.x"},
+  {__LINE__, 0x00000009,	"9", "%x"},
+  {__LINE__, 0xffffff86,	"ffffff86", "%6x"},
+  {__LINE__, 0xffffffe4,	"ffffffe4", "%0x"},
+  {__LINE__, 0x0062e73b,	"+6481723", "%+0ld"},
+  {__LINE__, -0x2b059130,	"-721785136", "%+d"},
+  {__LINE__, -0x0000073,	"-115", "%d"},
+  {__LINE__, 0xf596efcf,	"f596efcf", "%x"},
+  {__LINE__, 0x0002f1cb,	"2F1CB", "%0X"},
+  {__LINE__, -0x0000635,	"-01589", "%.5ld"},
+  {__LINE__, 0xfffa011a,	"FFFA011A", "%0X"},
+  {__LINE__, 0x00000047,	"  47", "%4X"},
+  {__LINE__, 0xfffffbc0,	"FFFFFBC0", "%5.2X"},
+  {__LINE__, 0x00000015,	"15", "% X"},
+  {__LINE__, 0x002a87a6,	"2a87a6", "%.1x"},
+  {__LINE__, -0x000069c,	"-1692", "%+ld"},
+  {__LINE__, 0xfffffffd,	"fffffffd", "%+x"},
+  {__LINE__, 0xfeda51f5,	"FEDA51F5", "%0X"},
+  {__LINE__, 0x001781a4,	"1781a4", "%-0x"},
+  {__LINE__, 0xe77358d4,	"e77358d4", "%+0x"},
+  {__LINE__, 0x00000084,	" 84", "%3.x"},
+  {__LINE__, 0xffff0cb2,	"FFFF0CB2", "%+5.X"},
+  {__LINE__, 0x0009fa17,	"653847", "%0.0ld"},
+  {__LINE__, -0x0000c92,	"-3218", "%d"},
+  {__LINE__, 0x0004ebbb,	"4ebbb", "%x"},
+  {__LINE__, 0x2e72568c,	"+779245196", "%+#ld"},
+  {__LINE__, 0xffae86a7,	"ffae86a7", "%.7x"},
+  {__LINE__, 0xffdf3f04,	"ffdf3f04", "%x"},
+  {__LINE__, 0x000000c7,	"199", "%2.d"},
+  {__LINE__, -0x0004a55,	"-19029", "%ld"},
+  {__LINE__, 0x00564ef9,	"5656313", "%.6ld"},
+  {__LINE__, 0xffffc205,	"ffffc205", "%+.0x"},
+  {__LINE__, -0x135085d0,	"-324044240", "%#.5d"},
+  {__LINE__, 0xfffffffe,	"fffffffe", "%-7x"},
+  {__LINE__, -0x0000003,	"-3", "%.1ld"},
+  {__LINE__, 0xffda9e0b,	"ffda9e0b", "%+0x"},
+  {__LINE__, 0x00000001,	"1", "%d"},
+  {__LINE__, 0xffffffda,	"ffffffda", "%.6x"},
+  {__LINE__, 0x5efdb3d1,	"+1593684945", "%+0d"},
+  {__LINE__, -0x00000ca,	"-202", "% 4.d"},
+  {__LINE__, -0x0014433,	"-82995", "%.3d"},
+  {__LINE__, -0x0000002,	"-000002", "% .6ld"},
+  {__LINE__, 0x24aac879,	"615172217", "%.7d"},
+  {__LINE__, -0x1db3c1d,	"-31144989", "%+#4ld"},
+  {__LINE__, 0x000945ad,	"0x945ad", "%#1x"},
+  {__LINE__, 0x0000000a,	"10", "%#.1ld"},
+  {__LINE__, -0x002a2e5,	"-172773", "%d"},
+  {__LINE__, 0xfffffff3,	"FFFFFFF3", "%5X"},
+  {__LINE__, 0x0000000e,	"e", "%+x"},
+  {__LINE__, 0x335333dc,	"861090780", "%6.d"},
+  {__LINE__, 0xfffa16f4,	"FFFA16F4", "%6X"},
+  {__LINE__, 0xffffc727,	"ffffc727", "%+2.x"},
+  {__LINE__, 0x00000273,	"273", "%x"},
+  {__LINE__, -0x000000f,	"-15", "%-0d"},
+  {__LINE__, 0x00065fbd,	"417725", "%5.1d"},
+  {__LINE__, 0x00000ed5,	"3797", "%d"},
+  {__LINE__, 0x30a40024,	"30A40024", "%3.7X"},
+  {__LINE__, 0x00000054,	"84", "%ld"},
+  {__LINE__, 0x00000515,	"01301", "%.5ld"},
+  {__LINE__, 0x00000897,	"+02199", "%+.5d"},
+  {__LINE__, -0x0001bcc,	"-7116", "% ld"},
+  {__LINE__, 0xfffffffe,	"FFFFFFFE", "%7X"},
+  {__LINE__, 0x00000013,	"0X13", "%#X"},
+  {__LINE__, 0xffffffff,	"0xffffffff", "% #x"},
+  {__LINE__, 0x00000006,	"6", "%ld"},
+  {__LINE__, -0x00000c3,	"-195", "%1.ld"},
+  {__LINE__, -0x005291e,	"-338206", "%+d"},
+  {__LINE__, 0xffb437a7,	"FFB437A7", "%-0X"},
+  {__LINE__, 0xff8335cb,	"ff8335cb", "%x"},
+  {__LINE__, 0x0000006a,	"6A", "%2X"},
+  {__LINE__, -0x004f629,	"-325161", "% .4d"},
+  {__LINE__, 0x003698ef,	"3578095", "%0ld"},
+  {__LINE__, 0x6b5cdf3a,	"6b5cdf3a", "%-x"},
+  {__LINE__, 0xe9bc5c21,	"e9bc5c21", "%+x"},
+  {__LINE__, -0x0000001,	"    -1", "%+6.ld"},
+  {__LINE__, 0xfffeffc8,	"FFFEFFC8", "%6.X"},
+  {__LINE__, 0xff070a73,	"ff070a73", "%+.7x"},
+  {__LINE__, 0x0023f8ae,	"2357422", "%07.4ld"},
+  {__LINE__, 0x00000000,	"0", "%X"},
+  {__LINE__, 0x00000016,	"16", "%0X"},
+  {__LINE__, -0x000005a,	" -90", "%4d"},
+  {__LINE__, 0x00000116,	"116", "% .3x"},
+  {__LINE__, 0xfffed024,	"fffed024", "%-x"},
+  {__LINE__, 0xfb907950,	"fb907950", "%.0x"},
+  {__LINE__, 0x0101a1e5,	"101a1e5", "%x"},
+  {__LINE__, -0x09e7684,	"-10385028", "%-#ld"},
+  {__LINE__, 0xffffffff,	"ffffffff", "%1x"},
+  {__LINE__, 0xfffffff6,	"fffffff6", "%x"},
+  {__LINE__, 0x00000078,	"78", "%x"},
+  {__LINE__, 0xe6bca9c9,	"0XE6BCA9C9", "%#.5X"},
+  {__LINE__, -0x0000010,	"-16", "%d"},
+  {__LINE__, -0x1348f685,	"-323548805", "%d"},
+  {__LINE__, 0x4dd85797,	"1306023831", "%ld"},
+  {__LINE__, -0x0000080,	"-128", "%.2d"},
+  {__LINE__, -0xaed13a7,	"-183309223", "%+ld"},
+  {__LINE__, -0x000002f,	"-47", "% d"},
+  {__LINE__, -0x679911f,	"-108630303", "%ld"},
+  {__LINE__, 0xfffff221,	"FFFFF221", "% .7X"},
+  {__LINE__, 0x0007476c,	"7476c", "%x"},
+  {__LINE__, 0xffffe02a,	"0xffffe02a", "%#7x"},
+  {__LINE__, 0x00000ebb,	"0XEBB", "%#X"},
+  {__LINE__, 0xffffffff,	"0XFFFFFFFF", "%-#X"},
+  {__LINE__, 0x00281896,	"281896", "%+1.x"},
+  {__LINE__, 0x0000085d,	" 0X85D", "%#6.3X"},
+  {__LINE__, 0x000112bf,	"112BF", "%X"},
+  {__LINE__, 0xf5518fbf,	"F5518FBF", "% X"},
+  {__LINE__, -0x00c945b,	"-824411", "%ld"},
+  {__LINE__, 0x00001b43,	"0x1b43", "%-#x"},
+  {__LINE__, -0x5872a246,	"-1483907654", "%#7.7ld"},
+  {__LINE__, 0x00001f96,	"8086", "%#d"},
+  {__LINE__, 0xfffffff9,	"FFFFFFF9", "%X"},
+  {__LINE__, -0x006e244,	"-451140", "% .3d"},
+  {__LINE__, -0x0382188,	"-3678600", "%0.2ld"},
+  {__LINE__, 0x00000006,	"6", "%-x"},
+  {__LINE__, 0x00000036,	"54   ", "%-5.d"},
+  {__LINE__, -0x0000439,	" -1081", "%#6.3ld"},
+  {__LINE__, 0xfff911c6,	"FFF911C6", "%X"},
+  {__LINE__, -0x03454dc,	"-3429596", "%d"},
+  {__LINE__, -0x0363e8d,	"-3554957", "%-.2ld"},
+  {__LINE__, 0x00000000,	"000", "%.3X"},
+  {__LINE__, -0x59bb030f,	"-1505428239", "%0ld"},
+  {__LINE__, 0x073c94d8,	"121410776", "%-d"},
+  {__LINE__, -0x001ef94,	"-126868", "%5.1ld"},
+  {__LINE__, 0xfff65fc5,	"FFF65FC5", "%0X"},
+  {__LINE__, 0xfffffff4,	"fffffff4", "%-x"},
+  {__LINE__, 0x00001d83,	"07555", "%5.5d"},
+  {__LINE__, 0x0012b40a,	"1225738", "%ld"},
+  {__LINE__, -0x0000006,	"-6", "%0ld"},
+  {__LINE__, 0xfffffffc,	"fffffffc", "%06.0x"},
+  {__LINE__, -0x0000002,	"-00002", "%#.5ld"},
+  {__LINE__, 0xf9932c1d,	"f9932c1d", "%-x"},
+  {__LINE__, -0x46a31d9,	"-74068441", "%.3ld"},
+  {__LINE__, 0x000987e9,	"987E9", "%1X"},
+  {__LINE__, 0x0000000f,	"15", "%-ld"},
+  {__LINE__, -0x0001c4d,	"-7245", "%ld"},
+  {__LINE__, -0x007deee,	"-515822", "%2.6d"},
+  {__LINE__, 0xffffffa2,	"FFFFFFA2", "%.6X"},
+  {__LINE__, 0x00000001,	"1", "%-ld"},
+  {__LINE__, 0xfc106bde,	"fc106bde", "%.4x"},
+  {__LINE__, 0x0002f1f8,	"0x2f1f8", "%#7.x"},
+  {__LINE__, -0x06a290b,	"-6957323", "%-ld"},
+  {__LINE__, -0x0000037,	" -55", "%4ld"},
+  {__LINE__, 0x0000152e,	"5422", "%2.d"},
+  {__LINE__, 0xfffffcb2,	"0XFFFFFCB2", "%#3.X"},
+  {__LINE__, 0x1b7ca086,	"1b7ca086", "%+x"},
+  {__LINE__, 0x00000001,	"1", "%ld"},
+  {__LINE__, 0x006775fc,	"6775fc", "%3.2x"},
+  {__LINE__, 0x0000000e,	"0XE", "%#3.X"},
+  {__LINE__, 0xffffffff,	"0xffffffff", "%+#4.x"},
+  {__LINE__, 0x00001246,	"1246", "%X"},
+  {__LINE__, 0xffffaed6,	"ffffaed6", "%2x"},
+  {__LINE__, -0x3a2dec78,	"-976088184", "% 0ld"},
+  {__LINE__, 0x0001423b,	"1423b", "%01x"},
+  {__LINE__, 0x00000007,	" 0X7", "%#4.X"},
+  {__LINE__, 0x01a7ff5a,	"27787098", "%.4ld"},
+  {__LINE__, -0x0020d05,	"-134405", "%-d"},
+  {__LINE__, 0xffffff9a,	"ffffff9a", "%-.1x"},
+  {__LINE__, 0xffff3557,	"ffff3557", "%x"},
+  {__LINE__, 0x08828e35,	"8828e35", "%+.1x"},
+  {__LINE__, 0x000006b2,	"001714", "%04.6ld"},
+  {__LINE__, 0x00000013,	"19", "%.0ld"},
+  {__LINE__, -0x00341a5,	"-213413", "%#d"},
+  {__LINE__, -0x0000043,	"-67", "%d"},
+  {__LINE__, -0x074dce3,	"-7658723", "%.1d"},
+  {__LINE__, -0x16de2df3,	"-383659507", "% ld"},
+  {__LINE__, 0x00000000,	"0", "%x"},
+  {__LINE__, 0x00000ce7,	"ce7", "% 2.1x"},
+  {__LINE__, 0xffecd377,	"ffecd377", "% 0x"},
+  {__LINE__, 0xa4e8465c,	"a4e8465c", "% x"},
+  {__LINE__, 0x000005e8,	"1512", "%d"},
+  {__LINE__, 0x00000513,	"1299", "%d"},
+  {__LINE__, 0xffffffb8,	"FFFFFFB8", "%X"},
+  {__LINE__, 0x00000003,	"00003", "%3.5x"},
+  {__LINE__, -0x0000003,	"-3 ", "%-3.ld"},
+  {__LINE__, 0xad53f01d,	"ad53f01d", "%0x"},
+  {__LINE__, 0x0f1c1dae,	"253500846", "%-#.0d"},
+  {__LINE__, 0xff1753c0,	"0xff1753c0", "%#3.x"},
+  {__LINE__, -0x00389c5,	"-231877", "%d"},
+  {__LINE__, 0x0000016e,	"00016E", "%.6X"},
+  {__LINE__, -0x54d3310f,	"-1423126799", "%-d"},
+  {__LINE__, 0x00000005,	"0X5", "%#.1X"},
+  {__LINE__, 0xfffffffd,	"0XFFFFFFFD", "%#5.3X"},
+  {__LINE__, 0xfffffe0e,	"fffffe0e", "%-x"},
+  {__LINE__, 0xa3c02157,	"a3c02157", "%.5x"},
+  {__LINE__, 0x00005765,	"22373", "%d"},
+  {__LINE__, -0x12668cd,	"-19294413", "%+ld"},
+  {__LINE__, -0x66544da,	"-107300058", "%2d"},
+  {__LINE__, 0x8646c605,	"0X8646C605", "% #X"},
+  {__LINE__, 0x000001f5,	"1F5", "%X"},
+  {__LINE__, 0x01b33ae4,	"28523236", "%5ld"},
+  {__LINE__, 0x000007ce,	"7ce", "%3.x"},
+  {__LINE__, 0x00000355,	"355", "%X"},
+  {__LINE__, 0x000001ce,	"1CE", "% X"},
+  {__LINE__, 0xfffffccd,	"fffffccd", "%7.0x"},
+  {__LINE__, -0x0000001,	"-1", "%0ld"},
+  {__LINE__, 0x000640b6,	"640b6", "%5.x"},
+  {__LINE__, 0x0038c4ec,	"3720428", "%5.4d"},
+  {__LINE__, -0x0f10b5e,	"-15797086", "%2ld"},
+  {__LINE__, 0x256c815f,	"256c815f", "%4.x"},
+  {__LINE__, 0x00000682,	"  1666", "%6ld"},
+  {__LINE__, -0x00000ab,	"-171", "%2ld"},
+  {__LINE__, 0x00000003,	"3", "%0d"},
+  {__LINE__, 0x063f5075,	"63F5075", "%X"},
+  {__LINE__, 0xff83b5d0,	"FF83B5D0", "%7.X"},
+  {__LINE__, 0xffffffec,	"ffffffec", "%x"},
+  {__LINE__, 0xffb551c4,	"0XFFB551C4", "% #4.X"},
+  {__LINE__, -0x071f057,	"-7467095", "%3.7d"},
+  {__LINE__, 0x00634879,	"6506617", "%#ld"},
+  {__LINE__, 0x000001d7,	"471", "%d"},
+  {__LINE__, 0x00a7da92,	"A7DA92", "% .4X"},
+  {__LINE__, 0x00000003,	"3 ", "%-2.ld"},
+  {__LINE__, -0x0000004,	"-0004", "%.4d"},
+  {__LINE__, -0x01dea32,	"-1960498", "% #7.d"},
+  {__LINE__, 0x53c4159f,	"53C4159F", "%1.7X"},
+  {__LINE__, -0x1ad7904,	"-28145924", "%#d"},
+  {__LINE__, -0x0000a85,	"-2693", "%ld"},
+  {__LINE__, -0x0000c7d,	"-3197", "%d"},
+  {__LINE__, 0xfffffffc,	"FFFFFFFC", "%+0X"},
+  {__LINE__, 0x00000004,	"00004", "%1.5d"},
+  {__LINE__, 0x0000b761,	"46945", "%5ld"},
+  {__LINE__, -0x0ee3b2c,	"-15612716", "%.6d"},
+  {__LINE__, 0x0677a73d,	"677a73d", "% x"},
+  {__LINE__, -0x5f96020,	"-100229152", "% d"},
+  {__LINE__, 0x00000000,	"      0", "%#7X"},
+  {__LINE__, -0x5d1cb5b,	"-97635163", "% ld"},
+  {__LINE__, -0x00a8d8b,	"-691595", "%-0ld"},
+  {__LINE__, 0xffffffa2,	"FFFFFFA2", "%X"},
+  {__LINE__, 0xffffffc9,	"FFFFFFC9", "%X"},
+  {__LINE__, 0x0b180d35,	"B180D35", "%X"},
+  {__LINE__, 0xfc0b94ce,	"fc0b94ce", "%.1x"},
+  {__LINE__, 0x0012cd7b,	"12CD7B", "% X"},
+  {__LINE__, -0x02f1da8,	"-3087784", "%ld"},
+  {__LINE__, -0x000a6f9,	"-42745", "%-ld"},
+  {__LINE__, -0x000006d,	"-109  ", "%-6d"},
+  {__LINE__, 0x00000001,	"+1", "%+0d"},
+  {__LINE__, 0x00000001,	"1", "%1d"},
+  {__LINE__, 0xfffffff8,	"fffffff8", "%5.x"},
+  {__LINE__, -0x00fc4d7,	"-1033431", "%+0.5ld"},
+  {__LINE__, 0xffff41b4,	"0xffff41b4", "%#x"},
+  {__LINE__, -0x0000d37,	"-3383", "%ld"},
+  {__LINE__, 0xffc4e405,	"ffc4e405", "%7x"},
+  {__LINE__, 0xffffffb0,	"FFFFFFB0", "%04X"},
+  {__LINE__, -0x0054477,	"-345207", "%01.ld"},
+  {__LINE__, 0x00512778,	"0x512778", "%#3.0x"},
+  {__LINE__, 0x00000007,	"      7", "%7.d"},
+  {__LINE__, 0x00000008,	" 00008", "% .5ld"},
+  {__LINE__, 0x000053fd,	"21501", "%.4ld"},
+  {__LINE__, 0x0000370c,	"370c", "%2x"},
+  {__LINE__, -0x44670a7,	"-71725223", "%3d"},
+  {__LINE__, 0x00000064,	"   64", "%+5x"},
+  {__LINE__, 0xfffffffc,	"FFFFFFFC", "%X"},
+  {__LINE__, 0xf7bbf094,	"f7bbf094", "%3x"},
+  {__LINE__, 0xfffeb268,	"FFFEB268", "%X"},
+  {__LINE__, 0x00001ef0,	"1ef0", "%4.x"},
+  {__LINE__, 0x05ad9aa4,	" 95263396", "% 0.ld"},
+  {__LINE__, 0xf294dca7,	"F294DCA7", "% 4.X"},
+  {__LINE__, -0x0000003,	"-000003", "%.6d"},
+  {__LINE__, 0xfff57471,	"fff57471", "% x"},
+  {__LINE__, 0x0a848cfd,	"176459005", "%d"},
+  {__LINE__, -0x000002e,	"-46", "%.0d"},
+  {__LINE__, 0x00000051,	"  +81", "%+5d"},
+  {__LINE__, -0x000072b,	"-0001835", "%06.7d"},
+  {__LINE__, -0x0000002,	"    -2", "%+#6ld"},
+  {__LINE__, 0x00000003,	"3", "%x"},
+  {__LINE__, 0xfffd1799,	"FFFD1799", "%6.X"},
+  {__LINE__, 0x00000005,	"5", "%ld"},
+  {__LINE__, 0x0052138b,	"5378955", "%#7.7ld"},
+  {__LINE__, 0x000000c0,	"    192", "% 7ld"},
+  {__LINE__, 0x005b26cd,	"5B26CD", "%X"},
+  {__LINE__, -0x008df17,	"-581399", "%.4ld"},
+  {__LINE__, 0xfffffad8,	"fffffad8", "%-x"},
+  {__LINE__, 0x000006a9,	"6a9", "%.0x"},
+  {__LINE__, -0x003b7f9,	"-243705", "%+0ld"},
+  {__LINE__, 0x005d7ea4,	"6127268", "%ld"},
+  {__LINE__, -0x003ccea,	"-249066", "%+.0ld"},
+  {__LINE__, 0x0000846f,	"846F", "%X"},
+  {__LINE__, 0x00004f79,	"4F79", "%4.X"},
+  {__LINE__, 0xe3e1409c,	"E3E1409C", "%-X"},
+  {__LINE__, 0x07cce2f4,	"7CCE2F4", "%2.X"},
+  {__LINE__, 0x004bcc8b,	"4967563", "%-.5ld"},
+  {__LINE__, 0x7d49665e,	"2101962334", "%ld"},
+  {__LINE__, 0xfffffffc,	"FFFFFFFC", "%.5X"},
+  {__LINE__, 0x0000019e,	"+000414", "%+.6d"},
+  {__LINE__, 0x000027ef,	"10223", "%d"},
+  {__LINE__, -0x0000261,	"-609", "%3ld"},
+  {__LINE__, -0x000000e,	"-14", "% 2.ld"},
+  {__LINE__, 0xff3ba3c7,	"ff3ba3c7", "%+5.7x"},
+  {__LINE__, 0xffffffc4,	"FFFFFFC4", "%-1.X"},
+  {__LINE__, 0xfffc5a70,	"0xfffc5a70", "%#4.4x"},
+  {__LINE__, 0x0000d156,	" 53590", "% d"},
+  {__LINE__, -0x0486258,	"-4743768", "%0ld"},
+  {__LINE__, 0x00000000,	"  ", "% 2.d"},
+  {__LINE__, 0x04a0ef9f,	"77655967", "%0.6ld"},
+  {__LINE__, 0xffffffff,	"FFFFFFFF", "%X"},
+  {__LINE__, 0x00000019,	"0000019", "%.7x"},
+  {__LINE__, -0x0058d3a,	"-363834", "%ld"},
+  {__LINE__, 0xfffff6b3,	"fffff6b3", "%x"},
+  {__LINE__, 0xfffffff5,	"FFFFFFF5", "%.0X"},
+  {__LINE__, 0x005e1fcb,	"5E1FCB", "%+6X"},
+  {__LINE__, 0xffc3c866,	"0xffc3c866", "%-#.4x"},
+  {__LINE__, 0x00000003,	"3", "%X"},
+  {__LINE__, 0xffa2e961,	"FFA2E961", "%7.4X"},
+  {__LINE__, 0x00000029,	"41", "%d"},
+  {__LINE__, -0x0000035,	"-53", "%d"},
+  {__LINE__, 0x0001b033,	"110643", "%ld"},
+  {__LINE__, 0x004dd51b,	"5100827", "%-2ld"},
+  {__LINE__, -0x000252d,	"-9517", "% d"},
+  {__LINE__, 0xffffdeb2,	"ffffdeb2", "%4.x"},
+  {__LINE__, 0xffe94eab,	"0xffe94eab", "%#x"},
+  {__LINE__, 0xf921edf6,	"f921edf6", "%4.2x"},
+  {__LINE__, 0x0007df97,	"515991", "%4.ld"},
+  {__LINE__, 0x00709bc5,	"709BC5", "%0X"},
+  {__LINE__, -0x0000001,	"-1", "%d"},
+  {__LINE__, 0xfffffffb,	"FFFFFFFB", "%7.3X"},
+  {__LINE__, -0x0063f74,	"-409460", "%+05.0d"},
+  {__LINE__, 0xfffffe9a,	"FFFFFE9A", "%.2X"},
+  {__LINE__, -0x0001ce2,	"-7394", "%.4d"},
+  {__LINE__, 0x000038c5,	"14533", "%ld"},
+  {__LINE__, 0x000000ad,	"000ad", "% 5.5x"},
+  {__LINE__, 0xffffbcc4,	"ffffbcc4", "%-5x"},
+  {__LINE__, 0x00000000,	"0", "% X"},
+  {__LINE__, 0x00372877,	"372877", "%.6X"},
+  {__LINE__, 0xffffffd7,	"FFFFFFD7", "%1.X"},
+  {__LINE__, 0xfa58b14b,	"fa58b14b", "%x"},
+  {__LINE__, 0xfffffd9f,	"FFFFFD9F", "%0.7X"},
+  {__LINE__, 0x00000710,	"+1808", "%+#.2ld"},
+  {__LINE__, 0x00000006,	"    6", "%5.0ld"},
+  {__LINE__, 0x0fba9706,	"263886598", "%-6.3d"},
+  {__LINE__, 0xffff420a,	"ffff420a", "%-2x"},
+  {__LINE__, 0x14b9a825,	"14b9a825", "%x"},
+  {__LINE__, 0x0077ffe4,	"77FFE4", "%+.2X"},
+  {__LINE__, 0x00067108,	"422152 ", "%-7.ld"},
+  {__LINE__, 0x00000001,	" 00001", "%6.5X"},
+  {__LINE__, 0x00000000,	"0", "%ld"},
+  {__LINE__, -0x0000001,	"     -1", "% 7ld"},
+  {__LINE__, 0x01ddc7a3,	"31311779", "%d"},
+  {__LINE__, -0x2a92f9b,	"-44642203", "% 3ld"},
+  {__LINE__, 0xfffffff9,	"fffffff9", "%4.6x"},
+  {__LINE__, 0x0279a274,	"279a274", "%x"},
+  {__LINE__, 0x2e37ed8e,	"775417230", "%d"},
+  {__LINE__, 0x5ba59f58,	"1537580888", "%-ld"},
+  {__LINE__, 0xffffffe0,	"ffffffe0", "%x"},
+  {__LINE__, 0x3110ae47,	"0X3110AE47", "%+#X"},
+  {__LINE__, 0x000e00b9,	"917689", "%d"},
+  {__LINE__, 0x0000002e,	"   0046", "% 7.4d"},
+  {__LINE__, 0x00000363,	"    867", "%7.d"},
+  {__LINE__, -0x000000b,	"-0011", "% 0.4d"},
+  {__LINE__, 0x000349c8,	"  349C8", "% 7.X"},
+  {__LINE__, -0x01358f1,	"-1267953", "%d"},
+  {__LINE__, -0x0039d3c,	"-236860", "%-.3d"},
+  {__LINE__, 0xffd6de19,	"ffd6de19", "%04.0x"},
+  {__LINE__, -0x0003c54,	"-0015444", "%1.7d"},
+  {__LINE__, -0x0000e17,	"-3607", "%d"},
+  {__LINE__, 0xff0fa3a9,	"ff0fa3a9", "%+3x"},
+  {__LINE__, 0x00000009,	"0000009", "%1.7x"},
+  {__LINE__, 0xfffffc81,	"FFFFFC81", "% X"},
+  {__LINE__, -0x4ef2df5,	"-82783733", "%ld"},
+  {__LINE__, 0x00000013,	"19", "%-ld"},
+  {__LINE__, 0x00000000,	"      0", "%#7x"},
+  {__LINE__, -0x3b9485fd,	"-999589373", "%1.d"},
+  {__LINE__, -0x0000006,	"-00006", "%6.5d"},
+  {__LINE__, 0x0000003f,	"+63", "%+ld"},
+  {__LINE__, 0x000004c5,	"1221", "%1.d"},
+  {__LINE__, 0x003f8a8c,	"4164236", "%d"},
+  {__LINE__, -0x000001e,	"-30", "%-#3d"},
+  {__LINE__, 0xfff9d230,	"FFF9D230", "%+07.3X"},
+  {__LINE__, 0x0147cf17,	"147cf17", "% x"},
+  {__LINE__, 0xffffffeb,	"ffffffeb", "%x"},
+  {__LINE__, 0x0000007d,	"00125", "%.5ld"},
+  {__LINE__, 0x000fff56,	"1048406", "%#3d"},
+  {__LINE__, 0x064307a0,	" 105056160", "% 0.3ld"},
+  {__LINE__, 0x007d2860,	"8202336", "%-.2d"},
+  {__LINE__, 0x00a05711,	"a05711", "%x"},
+  {__LINE__, 0x179a7f9e,	"0x179a7f9e", "%+#.3x"},
+  {__LINE__, 0x00000003,	"3", "%X"},
+  {__LINE__, -0x0001d7d,	"-7549", "%#5d"},
+  {__LINE__, 0x0025d3f2,	"+2479090", "%+2.d"},
+  {__LINE__, -0x0000001,	"-1", "%#ld"},
+  {__LINE__, 0xfffffdd5,	"fffffdd5", "%.7x"},
+  {__LINE__, 0x003462b9,	"3433145", "%d"},
+  {__LINE__, 0x00005a81,	"23169", "%d"},
+  {__LINE__, 0xfffffcdb,	"fffffcdb", "%-x"},
+  {__LINE__, 0x00000000,	"0", "%d"},
+  {__LINE__, 0xfff22085,	"fff22085", "%x"},
+  {__LINE__, 0x00016d72,	" 93554", "% d"},
+  {__LINE__, -0x0000002,	"-2", "%0ld"},
+  {__LINE__, 0xfffffd21,	"fffffd21", "% 0x"},
+  {__LINE__, 0x00000931,	"2353", "%ld"},
+  {__LINE__, 0x00010021,	"10021", "%5.1X"},
+  {__LINE__, -0x000007e,	"-126", "%1.0ld"},
+  {__LINE__, 0xfffffff8,	"fffffff8", "%01.x"},
+  {__LINE__, -0x001d148,	"-119112", "%d"},
+  {__LINE__, -0x0000008,	"-8", "%ld"},
+  {__LINE__, -0x000038e,	"-910", "% ld"},
+  {__LINE__, 0x0039e3e5,	"3793893", "%0.1d"},
+  {__LINE__, 0x0038fb8e,	"38FB8E", "%.2X"},
+  {__LINE__, -0x002dafa,	"-187130", "%ld"},
+  {__LINE__, -0xbec275b,	"-200025947", "%ld"},
+  {__LINE__, 0x1a32f999,	"1A32F999", "%05.4X"},
+  {__LINE__, 0x0000002f,	"2f", "%x"},
+  {__LINE__, -0x0001a5b,	"-6747", "%+3.ld"},
+  {__LINE__, 0x00000762,	"   1890", "%7.ld"},
+  {__LINE__, 0x000000c2,	"000194", "%0.6ld"},
+  {__LINE__, 0xffff002b,	"FFFF002B", "%.4X"},
+  {__LINE__, -0x0019dae,	"-105902", "% .2d"},
+  {__LINE__, 0x0000125f,	"125f", "%+1x"},
+  {__LINE__, -0x000b688,	" -46728", "%#7.d"},
+  {__LINE__, 0x000401ca,	"401ca", "%0x"},
+  {__LINE__, 0x00000192,	"402", "%#ld"},
+  {__LINE__, 0xffffffff,	"ffffffff", "%x"},
+  {__LINE__, 0x1e505a0c,	"0X1E505A0C", "%#1.3X"},
+  {__LINE__, 0x000f8f6c,	"1019756", "%d"},
+  {__LINE__, 0x0004a296,	"4a296", "%5.2x"},
+  {__LINE__, 0x00000003,	"3", "% x"},
+  {__LINE__, -0x000d44c,	"-54348", "%#ld"},
+  {__LINE__, 0x00009ae2,	"39650", "%-d"},
+  {__LINE__, 0xffffff3a,	"FFFFFF3A", "% .7X"},
+  {__LINE__, 0x0042350b,	"4338955", "%d"},
+  {__LINE__, 0x000071af,	"71af", "%+.4x"},
+  {__LINE__, 0x00000001,	"0x1", "%#0x"},
+  {__LINE__, 0x00000033,	"00051", "%3.5d"},
+  {__LINE__, 0x00000001,	"1", "%X"},
+  {__LINE__, -0xebfb0e7,	"-247443687", "%+3ld"},
+  {__LINE__, 0x00000027,	"27     ", "%-07.X"},
+  {__LINE__, -0x0004837,	"-18487", "%01d"},
+  {__LINE__, 0x1a8c53da,	"1A8C53DA", "%X"},
+  {__LINE__, -0x0bdb8a9,	"-12433577", "%d"},
+  {__LINE__, -0x0000098,	"-152", "%#ld"},
+  {__LINE__, -0x003b554,	"-243028", "%d"},
+  {__LINE__, 0x000000cb,	"00000CB", "%+.7X"},
+  {__LINE__, 0xfffffeda,	"FFFFFEDA", "%X"},
+  {__LINE__, -0x0000010,	"-16", "%-#d"},
+  {__LINE__, 0x00000006,	"+6", "%+d"},
+  {__LINE__, 0x003c294a,	"+3942730", "%+4.ld"},
+  {__LINE__, 0x00000009,	"9", "%ld"},
+  {__LINE__, 0xfbbdd2bc,	"FBBDD2BC", "% X"},
+  {__LINE__, 0x71c86678,	"+1908958840", "%+0.6ld"},
+  {__LINE__, -0x0b49bff,	"-11836415", "% 6.ld"},
+  {__LINE__, 0xfff416be,	"fff416be", "%3.x"},
+  {__LINE__, 0x00000077,	"+119", "%+d"},
+  {__LINE__, 0xfff1cfaa,	"FFF1CFAA", "% 0.2X"},
+  {__LINE__, 0xfffffffb,	"fffffffb", "% x"},
+  {__LINE__, 0x0000127e,	"4734", "%d"},
+  {__LINE__, 0x00107ad2,	"107ad2", "%+2.6x"},
+  {__LINE__, 0x0006b8e9,	"440553", "%-#d"},
+  {__LINE__, 0x0000eb6f,	"eb6f", "% x"},
+  {__LINE__, 0x00001f18,	"7960", "%0d"},
+  {__LINE__, 0xfffff225,	"fffff225", "%1.5x"},
+  {__LINE__, 0xfffffff9,	"fffffff9", "%+6.x"},
+  {__LINE__, 0x000005b9,	"01465", "%.5ld"},
+  {__LINE__, 0xfffc26b8,	"FFFC26B8", "% X"},
+  {__LINE__, 0x540d580d,	"0X540D580D", "%+#X"},
+  {__LINE__, 0x05ad7094,	"5AD7094", "% 4.7X"},
+  {__LINE__, -0x000019b,	"-411", "% d"},
+  {__LINE__, 0x00000006,	"000006", "%6.6ld"},
+  {__LINE__, 0x0000026a,	"+618", "%+ld"},
+  {__LINE__, 0x0000000b,	"11", "%ld"},
+  {__LINE__, -0x26985d5,	"-40469973", "%#.0ld"},
+  {__LINE__, 0x0000007d,	"7D", "%+02.0X"},
+  {__LINE__, -0x0079ddf,	"-0499167", "%+.7ld"},
+  {__LINE__, 0x0000375f,	"14175", "%0d"},
+  {__LINE__, -0x18de7f99,	"-417234841", "%ld"},
+  {__LINE__, -0x00507cc,	"-329676", "%.0d"},
+  {__LINE__, 0x000029d5,	"29D5", "%-2.1X"},
+  {__LINE__, 0x0000328c,	"328C", "%-3.X"},
+  {__LINE__, 0x016f6234,	"24076852", "%3.ld"},
+  {__LINE__, 0xfffffffc,	"0XFFFFFFFC", "%#.5X"},
+  {__LINE__, 0xfe6163ca,	"FE6163CA", "%5.X"},
+  {__LINE__, 0xffffffc2,	"FFFFFFC2", "%X"},
+  {__LINE__, 0x00000087,	"+135", "%+ld"},
+  {__LINE__, 0x00310166,	"310166", "% x"},
+  {__LINE__, 0x00e8c871,	"15255665", "%d"},
+  {__LINE__, 0x000005ee,	"1518", "%ld"},
+  {__LINE__, 0xfcb24306,	"FCB24306", "%X"},
+  {__LINE__, 0x0000000b,	"   11", "%5ld"},
+  {__LINE__, 0x006d11d0,	"0x6d11d0", "%#.0x"},
+  {__LINE__, 0x0010d416,	"1102870", "%#6.5d"},
+  {__LINE__, -0x0047cb3,	"-294067", "%.3d"},
+  {__LINE__, 0x000000c0,	"c0", "%x"},
+  {__LINE__, 0xffffffff,	"FFFFFFFF", "%+X"},
+  {__LINE__, -0x000000a,	"-10", "%d"},
+  {__LINE__, -0x0000007,	"-7", "% ld"},
+  {__LINE__, 0xfffffffe,	"FFFFFFFE", "%-X"},
+  {__LINE__, 0x00000014,	"0x14", "%-#3.1x"},
+  {__LINE__, 0x00003319,	"3319", "% x"},
+  {__LINE__, 0x00000000,	"00", "%+#.2X"},
+  {__LINE__, -0x0000009,	"-9", "% ld"},
+  {__LINE__, -0x0000001,	"-1 ", "%-3ld"},
+  {__LINE__, 0x00262909,	"2500873", "%.5ld"},
+  {__LINE__, 0x33e76560,	"33e76560", "%7.0x"},
+  {__LINE__, -0x0000002,	"-2", "%ld"},
+  {__LINE__, 0x00035ee9,	"35EE9", "%-3.X"},
+  {__LINE__, -0x0000235,	"-565", "%+4.ld"},
+  {__LINE__, -0x3ea63c5,	"-65692613", "%d"},
+  {__LINE__, 0x00000003,	"3", "%ld"},
+  {__LINE__, -0x003362f,	"-210479", "% d"},
+  {__LINE__, -0x1a819f8a,	"-444702602", "%.7d"},
+  {__LINE__, 0x027a4668,	"41567848", "%d"},
+  {__LINE__, 0x0002b025,	"2b025", "%x"},
+  {__LINE__, -0x0000001,	"-001", "%.3ld"},
+  {__LINE__, 0xfffffff0,	"fffffff0", "%-0x"},
+  {__LINE__, -0x0000d4f,	"-3407", "%-ld"},
+  {__LINE__, 0x00000146,	" 326", "% 1.d"},
+  {__LINE__, -0x0000006,	"-6", "%d"},
+  {__LINE__, 0xffffffff,	"FFFFFFFF", "%06.4X"},
+  {__LINE__, 0x376fddae,	"+930078126", "%+#0ld"},
+  {__LINE__, 0x006d9da3,	"6d9da3", "%1.x"},
+  {__LINE__, -0x0000f28,	"-3880", "%3.2ld"},
+  {__LINE__, 0x0006962c,	" 431660", "% 5d"},
+  {__LINE__, 0x000011db,	"  4571", "%6.ld"},
+  {__LINE__, 0xffffffa8,	"ffffffa8", "%+x"},
+  {__LINE__, 0x0d886db3,	"D886DB3", "%.7X"},
+  {__LINE__, 0x00000000,	"000000", "%2.6ld"},
+  {__LINE__, 0xfffff6b6,	"FFFFF6B6", "% X"},
+  {__LINE__, -0x0739068,	"-7573608", "%+6.ld"},
+  {__LINE__, 0xfba62553,	"0XFBA62553", "%#X"},
+  {__LINE__, -0x4474bc5,	"-71781317", "%-2ld"},
+  {__LINE__, 0xffffff95,	"FFFFFF95", "% 2.X"},
+  {__LINE__, -0x1d0e1ca,	"-30466506", "%+.0d"},
+  {__LINE__, -0x000f3aa,	"-62378", "%ld"},
+  {__LINE__, 0x00000026,	"26", "%1x"},
+  {__LINE__, 0x001c5400,	"1856512", "%-#d"},
+  {__LINE__, 0x03808442,	"3808442", "%X"},
+  {__LINE__, -0x0000081,	"-129", "%+#ld"},
+  {__LINE__, 0x000004ae,	" 1198", "% 3.4d"},
+  {__LINE__, -0x7f4ed54,	"-133492052", "%d"},
+  {__LINE__, 0x00000000,	"+0", "%+ld"},
+  {__LINE__, 0x00000000,	"0", "%+x"},
+  {__LINE__, 0x004c7e46,	"5013062", "%.0d"},
+  {__LINE__, -0x647d7a65,	"-1685944933", "%0.2d"},
+  {__LINE__, 0x00003b59,	"15193", "%-#1d"},
+  {__LINE__, 0xfff3e64d,	"FFF3E64D", "%-X"},
+  {__LINE__, 0x00007022,	"28706", "%-d"},
+  {__LINE__, 0xc28d0ad8,	"c28d0ad8", "%+x"},
+  {__LINE__, -0x005c208,	"-377352", "% ld"},
+  {__LINE__, 0x00cfbadc,	"13613788", "%d"},
+  {__LINE__, 0x000016ea,	"5866", "%0d"},
+  {__LINE__, 0x00000029,	"29", "%X"},
+  {__LINE__, 0xffe16813,	"0XFFE16813", "%+#X"},
+  {__LINE__, 0x00000004,	"4", "%0X"},
+  {__LINE__, -0x0000096,	" -150", "%5d"},
+  {__LINE__, 0x00027ac7,	"162503", "%ld"},
+  {__LINE__, -0x0075de0,	"-482784", "%d"},
+  {__LINE__, 0x005fcff6,	"6279158", "%d"},
+  {__LINE__, 0xffffffef,	"FFFFFFEF", "%3X"},
+  {__LINE__, 0x267b05ec,	"645596652", "%4ld"},
+  {__LINE__, 0xa487b724,	"a487b724", "%x"},
+  {__LINE__, 0x01da2a11,	"31074833", "%-.0ld"},
+  {__LINE__, 0xffffffff,	"FFFFFFFF", "%X"},
+  {__LINE__, 0x0000037a,	"37a", "%x"},
+  {__LINE__, 0x003d0314,	"+3998484", "%+#1d"},
+  {__LINE__, 0x0000011b,	"  283", "%5.2d"},
+  {__LINE__, 0x094f6066,	"94f6066", "%x"},
+  {__LINE__, 0x00000004,	"4", "%X"},
+  {__LINE__, -0x102e14bd,	"-271455421", "% 7.ld"},
+  {__LINE__, 0x000048da,	"0018650", "%07ld"},
+  {__LINE__, -0x24ae0390,	"-615383952", "%0.6d"},
+  {__LINE__, 0xffff5159,	"0XFFFF5159", "%#0X"},
+  {__LINE__, 0xfffd38c3,	"fffd38c3", "%x"},
+  {__LINE__, 0xfffff9ea,	"FFFFF9EA", "%-X"},
+  {__LINE__, -0x000fd28,	"-64808", "% ld"},
+  {__LINE__, 0x002c1bf4,	"2890740", "%-.1d"},
+  {__LINE__, 0x00d00ee7,	"D00EE7", "%0.4X"},
+  {__LINE__, 0x00000cf9,	"3321", "%0d"},
+  {__LINE__, -0x0000001,	"-1", "%-#ld"},
+  {__LINE__, 0xfffffd75,	"FFFFFD75", "%.2X"},
+  {__LINE__, 0x00000012,	"18", "%-d"},
+  {__LINE__, 0xfd44b4b2,	"fd44b4b2", "%+5.x"},
+  {__LINE__, -0x001c53f,	"-116031", "%-#6.d"},
+  {__LINE__, 0x000ff6fd,	"ff6fd", "%2x"},
+  {__LINE__, 0x00000001,	"1", "%0d"},
+  {__LINE__, 0x0120b478,	"120B478", "%.7X"},
+  {__LINE__, 0x0145591e,	"145591E", "%1.4X"},
+  {__LINE__, 0x001f99b9,	"1F99B9", "%.1X"},
+  {__LINE__, 0xffffd078,	"ffffd078", "%-1.5x"},
+  {__LINE__, 0xffffff1a,	"FFFFFF1A", "%-4.6X"},
+  {__LINE__, 0xfffffffa,	"fffffffa", "%x"},
+  {__LINE__, -0x00000b9,	"-185", "%3ld"},
+  {__LINE__, 0x00001cf0,	"7408", "%-ld"},
+  {__LINE__, 0xffffffff,	"FFFFFFFF", "%X"},
+  {__LINE__, 0x00151f30,	"151F30", "%X"},
+  {__LINE__, -0x0000103,	"-259", "%d"},
+  {__LINE__, -0x000303f,	"-12351", "%d"},
+  {__LINE__, 0x000002ca,	"714", "%ld"},
+  {__LINE__, -0x0000c55,	"-3157", "%1d"},
+  {__LINE__, 0x00000691,	"01681", "%#.5ld"},
+  {__LINE__, 0x00230537,	"2295095", "%#d"},
+  {__LINE__, 0x032a1faa,	"53092266", "%.4d"},
+  {__LINE__, 0x000050d7,	"20695", "%d"},
+  {__LINE__, -0x0c7ad4c,	"-13086028", "%#.4ld"},
+  {__LINE__, -0x00009d9,	"-2521", "%+d"},
+  {__LINE__, 0xfffffffe,	"fffffffe", "%0x"},
+  {__LINE__, 0xffdec2d9,	"FFDEC2D9", "%5.1X"},
+  {__LINE__, -0x000563c,	"-22076", "%-.2ld"},
+  {__LINE__, 0x0073b36a,	"0x73b36a", "%-#x"},
+  {__LINE__, 0xfffffffd,	"fffffffd", "%x"},
+  {__LINE__, 0x0193ba5a,	"193ba5a", "%1.x"},
+  {__LINE__, 0x00d147b5,	"13715381", "%2.d"},
+  {__LINE__, 0xffffff10,	"ffffff10", "%4x"},
+  {__LINE__, 0x000648d5,	"648d5", "%1.3x"},
+  {__LINE__, 0x00000011,	"11", "%X"},
+  {__LINE__, 0xff259f5b,	"0xff259f5b", "% #.1x"},
+  {__LINE__, 0x00000175,	"175", "%x"},
+  {__LINE__, 0x00000000,	"0", "%ld"},
+  {__LINE__, 0x00000015,	"21", "%#ld"},
+  {__LINE__, 0xfffffffe,	"fffffffe", "%-x"},
+  {__LINE__, 0x00000013,	" 19", "% 0ld"},
+  {__LINE__, -0x0000001,	"-0000001", "% 5.7ld"},
+  {__LINE__, 0x0000139d,	"139D", "%X"},
+  {__LINE__, 0x0041ad18,	"41ad18", "%-.6x"},
+  {__LINE__, -0x00000f9,	"-249", "% 3.d"},
+  {__LINE__, 0x00000076,	"118", "%ld"},
+  {__LINE__, 0x000006f8,	"1784", "%d"},
+  {__LINE__, -0x0000005,	"-5", "%ld"},
+  {__LINE__, -0x00008e7,	"-2279", "%+ld"},
+  {__LINE__, 0x00003f77,	"3F77", "%+0X"},
+  {__LINE__, 0x000ca3f8,	"0XCA3F8", "%+#X"},
+  {__LINE__, -0x00004bf,	"-001215", "%#5.6ld"},
+  {__LINE__, 0x319129ab,	"0x319129ab", "%+#x"},
+  {__LINE__, -0x0000002,	"-2", "%ld"},
+  {__LINE__, -0x0f6686e,	"-16148590", "%.6ld"},
+  {__LINE__, 0x0329576b,	"53041003", "%2.d"},
+  {__LINE__, -0x000179e,	"-6046", "%d"},
+  {__LINE__, 0x000002cc,	"+716", "%+1.3ld"},
+  {__LINE__, 0xfffffff7,	"0xfffffff7", "% #x"},
+  {__LINE__, 0x0016eb40,	"1502016", "%ld"},
+  {__LINE__, 0x00000003,	"3", "%-0ld"},
+  {__LINE__, 0x0023e0d6,	"23E0D6", "%-05.X"},
+  {__LINE__, 0xffffa6a4,	"0XFFFFA6A4", "%#X"},
+  {__LINE__, 0x00087664,	"87664", "% .2x"},
+  {__LINE__, -0x0000002,	" -2", "%3.ld"},
+  {__LINE__, 0x003ad85d,	"3AD85D", "%X"},
+  {__LINE__, 0x00002f20,	"12064", "%ld"},
+  {__LINE__, 0x02030bfc,	"2030BFC", "%02.3X"},
+  {__LINE__, 0xfffff36a,	"FFFFF36A", "%X"},
+  {__LINE__, 0xfe0729ff,	"0xfe0729ff", "% #.0x"},
+  {__LINE__, 0xfec15164,	"FEC15164", "%0.2X"},
+  {__LINE__, -0x00169ec,	"-92652", "%+d"},
+  {__LINE__, 0x006d7990,	"0x6d7990", "%#x"},
+  {__LINE__, 0xffcc89e6,	"ffcc89e6", "%x"},
+  {__LINE__, 0x002d7cca,	"2981066", "%7.7ld"},
+  {__LINE__, -0x1649692b,	"-373909803", "%#ld"},
+  {__LINE__, 0x00664f47,	"664f47", "%+6.x"},
+  {__LINE__, 0x00000000,	"0", "% X"},
+  {__LINE__, 0x00000047,	"000047", "%.6X"},
+  {__LINE__, 0x00000007,	"0000007", "%.7ld"},
+  {__LINE__, 0x00000030,	"30", "%-x"},
+  {__LINE__, -0x25bcbabb,	"-633125563", "% ld"},
+  {__LINE__, 0xfe11c031,	"FE11C031", "%4.6X"},
+  {__LINE__, -0x0000001,	"-0000001", "%.7d"},
+  {__LINE__, 0x00b56d84,	"11890052", "%ld"},
+  {__LINE__, -0x0000b01,	"-0002817", "%+07.7ld"},
+  {__LINE__, 0xffffe4ad,	"ffffe4ad", "% 0.0x"},
+  {__LINE__, 0x007760fc,	"7760fc", "%+x"},
+  {__LINE__, 0xffef44d8,	"FFEF44D8", "%X"},
+  {__LINE__, 0xfcb6862e,	"fcb6862e", "%+x"},
+  {__LINE__, -0x0000001,	"-1", "%0d"},
+  {__LINE__, 0xffffffe6,	"FFFFFFE6", "%3.1X"},
+  {__LINE__, 0xff816e27,	"FF816E27", "% 6.X"},
+  {__LINE__, 0x00006415,	"25621", "%ld"},
+  {__LINE__, -0xfae5449,	"-263083081", "%0ld"},
+  {__LINE__, 0x00000001,	" 1", "% 0d"},
+  {__LINE__, 0x00000009,	" 9", "%2.X"},
+  {__LINE__, 0x002d7e18,	"2981400", "%7d"},
+  {__LINE__, -0x00000fc,	"-0000252", "%-#.7d"},
+  {__LINE__, 0x00000003,	"3", "%0x"},
+  {__LINE__, 0x0d46e47f,	"222749823", "%ld"},
+  {__LINE__, 0xfffcbc52,	"FFFCBC52", "%+X"},
+  {__LINE__, 0x00000000,	"0", "%-X"},
+  {__LINE__, 0xfffff0e5,	"fffff0e5", "%x"},
+  {__LINE__, 0xffffffd9,	"FFFFFFD9", "%07X"},
+  {__LINE__, 0x000004ee,	"4ee", "%0x"},
+  {__LINE__, 0xffffffff,	"ffffffff", "%0x"},
+  {__LINE__, -0x0008cb4,	"-036020", "%+3.6ld"},
+  {__LINE__, 0x0000dada,	"0xdada", "%#0.x"},
+  {__LINE__, 0x0000001a,	"26  ", "%-4d"},
+  {__LINE__, -0x000000c,	" -12", "%04.d"},
+  {__LINE__, 0x0000025c,	"    25c", "%7.x"},
+  {__LINE__, 0xfe9b091e,	"FE9B091E", "%X"},
+  {__LINE__, 0x00000002,	"      2", "%07.ld"},
+  {__LINE__, -0x0004930,	"-18736", "% 6.d"},
+  {__LINE__, 0xffffffe9,	"FFFFFFE9", "%X"},
+  {__LINE__, 0x00000003,	" 3", "%2.ld"},
+  {__LINE__, 0x00000e00,	"3584", "%.4d"},
+  {__LINE__, 0xffff38c2,	"ffff38c2", "%0.x"},
+  {__LINE__, 0xffffffff,	"FFFFFFFF", "% .3X"},
+  {__LINE__, 0xff7c1b2f,	"FF7C1B2F", "%-3.2X"},
+  {__LINE__, -0x0000005,	"-5", "%2d"},
+  {__LINE__, 0x00098775,	"98775", "%x"},
+  {__LINE__, 0x000015ff,	"  15FF", "%6.X"},
+  {__LINE__, 0xfffbe3ef,	"FFFBE3EF", "%0.3X"},
+  {__LINE__, -0x0000048,	"-72", "%ld"},
+  {__LINE__, 0x0001488a,	"84106", "%d"},
+  {__LINE__, 0x00000001,	"1", "%x"},
+  {__LINE__, -0x0000002,	"-2", "%-0.0ld"},
+  {__LINE__, -0x0000001,	"-1", "%-d"},
+  {__LINE__, 0x0006616f,	"6616f", "%x"},
+  {__LINE__, 0x3657856d,	"911705453", "%6.d"},
+  {__LINE__, -0x0007222,	"-0029218", "%.7d"},
+  {__LINE__, 0x00041606,	"267782", "%04.5d"},
+  {__LINE__, 0x00000001,	" 1", "%2.ld"},
+  {__LINE__, 0x00000219,	"219", "%0x"},
+  {__LINE__, 0x0ae0184c,	"ae0184c", "%x"},
+  {__LINE__, 0x00003a7d,	"  14973", "%7.ld"},
+  {__LINE__, 0xffffffff,	"0XFFFFFFFF", "%#X"},
+  {__LINE__, -0x0000002,	"-2", "%0ld"},
+  {__LINE__, 0x00002cdf,	"11487", "%0ld"},
+  {__LINE__, -0x000000c,	"-12", "%d"},
+  {__LINE__, -0x000000e,	"-14", "%-#2d"},
+  {__LINE__, 0x00000371,	"881", "%#ld"},
+  {__LINE__, 0x000015be,	" 5566", "%5.ld"},
+  {__LINE__, 0x01525b91,	"22174609", "%#0.0ld"},
+  {__LINE__, 0xff8fc22f,	"FF8FC22F", "% X"},
+  {__LINE__, -0x0007f7b,	"-32635", "%4.ld"},
+  {__LINE__, 0x00007bca,	"7bca", "%x"},
+  {__LINE__, -0x0000582,	"-1410", "%ld"},
+  {__LINE__, 0x00000047,	" +71", "%+04.2d"},
+  {__LINE__, 0xf8a8dce2,	"f8a8dce2", "%+.6x"},
+  {__LINE__, -0x000de2e,	"-56878", "%.0d"},
+  {__LINE__, 0x019c03c1,	"0X19C03C1", "%#X"},
+  {__LINE__, -0x0f3a43e,	"-15967294", "%ld"},
+  {__LINE__, 0x00009e87,	"40583", "%#5.1d"},
+  {__LINE__, 0x000000b8,	"184", "%0ld"},
+  {__LINE__, -0x000befe,	"-48894", "%2ld"},
+  {__LINE__, -0x002ee1a,	"-192026", "%.2d"},
+  {__LINE__, 0x00004fd8,	"4fd8", "%x"},
+  {__LINE__, 0x0006d57b,	"447867", "%2d"},
+  {__LINE__, 0xfffffa9c,	"FFFFFA9C", "%-X"},
+  {__LINE__, 0x0000000f,	"15", "%ld"},
+  {__LINE__, 0x0005deb2,	"5DEB2", "% X"},
+  {__LINE__, 0x00000007,	"7", "%X"},
+  {__LINE__, 0xffffffc8,	"0XFFFFFFC8", "% #.1X"},
+  {__LINE__, 0xfffff62f,	"FFFFF62F", "%X"},
+  {__LINE__, -0x1a935bba,	"-445864890", "% 3.5d"},
+  {__LINE__, 0x000b34b4,	"0x0b34b4", "%-#3.6x"},
+  {__LINE__, 0xfffff430,	"FFFFF430", "%X"},
+  {__LINE__, 0x00000b5f,	"+0002911", "%+#.7d"},
+  {__LINE__, 0x00000007,	"  7", "%3ld"},
+  {__LINE__, 0xffffffd8,	"FFFFFFD8", "% .7X"},
+  {__LINE__, 0xfffff544,	"FFFFF544", "%0X"},
+  {__LINE__, -0x353667b9,	"-892757945", "%d"},
+  {__LINE__, 0x00000058,	"0x00058", "%+#.5x"},
+  {__LINE__, 0x39dbcc4a,	"+970705994", "%+0.6ld"},
+  {__LINE__, 0xfffffffd,	"fffffffd", "% 01x"},
+  {__LINE__, 0x00b1c28e,	"+11649678", "%+0ld"},
+  {__LINE__, 0x000066c2,	"0X66C2", "%-#4X"},
+  {__LINE__, 0x007171a2,	"+7434658", "%+07.ld"},
+  {__LINE__, -0x0000001,	"-1", "%-d"},
+  {__LINE__, 0x00000ae0,	"+2784", "%+0d"},
+  {__LINE__, 0x13786a57,	"326658647", "%#5d"},
+  {__LINE__, -0x0000001,	"-1", "%2.ld"},
+  {__LINE__, -0x0168a16,	"-1477142", "%d"},
+  {__LINE__, 0x12df7dd6,	"316636630", "%ld"},
+  {__LINE__, 0x00000000,	"000000", "%1.6d"},
+  {__LINE__, 0x266da2a9,	"644719273", "%ld"},
+  {__LINE__, 0x0000004a,	"74", "%d"},
+  {__LINE__, 0x000102ff,	"00102FF", "%+06.7X"},
+  {__LINE__, 0x17916237,	"0x17916237", "%#5x"},
+  {__LINE__, -0x0003cbb,	"-0015547", "%-.7d"},
+  {__LINE__, 0xe7da2010,	"e7da2010", "%2.4x"},
+  {__LINE__, 0xfffffff3,	"fffffff3", "% .7x"},
+  {__LINE__, 0xfc9b64f8,	"FC9B64F8", "% 7.X"},
+  {__LINE__, 0x000001af,	"431", "%0d"},
+  {__LINE__, 0xffc81796,	"0xffc81796", "%#.5x"},
+  {__LINE__, 0x057a1fbc,	"+91889596", "%+04d"},
+  {__LINE__, 0x00001ae1,	"6881", "%ld"},
+  {__LINE__, 0xfffffff6,	"fffffff6", "%3.0x"},
+  {__LINE__, -0x6b7d5db,	"-112711131", "%-06.1d"},
+  {__LINE__, 0x008e8a5c,	" 8e8a5c", "%7.0x"},
+  {__LINE__, 0xfe07a9bd,	"fe07a9bd", "%.1x"},
+  {__LINE__, -0x00278e6,	"-162022", "%0ld"},
+  {__LINE__, 0xf98709f5,	"F98709F5", "%X"},
+  {__LINE__, -0x00000c9,	"-201", "% 1.d"},
+  {__LINE__, -0x000001d,	"-00029", "%+2.5ld"},
+  {__LINE__, 0x00000030,	" 48", "% d"},
+  {__LINE__, 0xffd753f4,	"FFD753F4", "%0X"},
+  {__LINE__, 0xfffffffd,	"FFFFFFFD", "%X"},
+  {__LINE__, 0x0000a765,	"a765", "%x"},
+  {__LINE__, 0x0026e2c8,	"26E2C8", "%-0X"},
+  {__LINE__, -0x00003eb,	"-1003", "%3.1ld"},
+  {__LINE__, 0x015d53ca,	"22893514", "%0ld"},
+  {__LINE__, -0x0000020,	"-32", "%ld"},
+  {__LINE__, -0x03558dd,	"-3496157", "%1.0ld"},
+  {__LINE__, -0x000007f,	"-127", "%1.d"},
+  {__LINE__, 0xffffc737,	"0xffffc737", "%+#x"},
+  {__LINE__, 0x0000a70d,	"  a70d", "%6.x"},
+  {__LINE__, 0x01ea0e31,	"0X1EA0E31", "% #1.X"},
+  {__LINE__, 0x00b5f406,	"0X0B5F406", "%-#.7X"},
+  {__LINE__, 0x0e58fa9a,	"240712346", "%.2d"},
+  {__LINE__, 0xf43ff8a9,	"f43ff8a9", "%+0.6x"},
+  {__LINE__, -0x5d0d3d3,	"-97571795", "%.3ld"},
+  {__LINE__, -0x000027a,	"-634", "%0d"},
+  {__LINE__, 0xffcef248,	"FFCEF248", "%07.X"},
+  {__LINE__, 0x000002dc,	"2dc", "%0x"},
+  {__LINE__, -0x31fa6c1,	"-52405953", "%.2d"},
+  {__LINE__, 0x00000014,	"14", "%X"},
+  {__LINE__, -0x0282f98,	"-2633624", "%ld"},
+  {__LINE__, 0x00005f55,	"24405", "%#d"},
+  {__LINE__, -0x0000004,	"-4", "%d"},
+  {__LINE__, 0x00000001,	"1", "%+x"},
+  {__LINE__, 0x013f47ce,	"13f47ce", "%0.x"},
+  {__LINE__, 0x00143fce,	"1327054", "%.3d"},
+  {__LINE__, 0x00000000,	"0", "%d"},
+  {__LINE__, 0x00001f9a,	"1F9A", "% X"},
+  {__LINE__, 0x00000cf5,	"cf5", "%x"},
+  {__LINE__, 0xffea9c24,	"ffea9c24", "%x"},
+  {__LINE__, 0xf09f85a7,	"F09F85A7", "%X"},
+  {__LINE__, 0x00001e04,	"7684", "%ld"},
+  {__LINE__, 0xffffc82a,	"ffffc82a", "%7x"},
+  {__LINE__, -0x0000a77,	"-2679", "% d"},
+  {__LINE__, 0x0019a859,	"+1681497", "%+2.6ld"},
+  {__LINE__, -0x00002d7,	"-727", "%ld"},
+  {__LINE__, 0x00011b82,	"72578", "%-#ld"},
+  {__LINE__, 0x00000c32,	"3122", "%ld"},
+  {__LINE__, -0x0000337,	"-823", "%1.d"},
+  {__LINE__, 0x00000004,	"4", "%1ld"},
+  {__LINE__, 0x0000062c,	"1580", "%.1ld"},
+  {__LINE__, 0xffffffd3,	"FFFFFFD3", "% X"},
+  {__LINE__, -0x07b1bf8,	"-8068088", "%#d"},
+  {__LINE__, 0xfffffff9,	"fffffff9", "%x"},
+  {__LINE__, 0x159e6cfb,	"159e6cfb", "%0.x"},
+  {__LINE__, 0x0001148d,	"1148d", "%-.1x"},
+  {__LINE__, 0x003373b7,	"3371959", "%#.0d"},
+  {__LINE__, 0x00001af2,	"1af2", "%.4x"},
+  {__LINE__, -0x0000001,	"-000001", "%+.6ld"},
+  {__LINE__, -0x00001a3,	"-419", "%d"},
+  {__LINE__, 0xfdb232e7,	"fdb232e7", "%5.4x"},
+  {__LINE__, -0x000000d,	"-13", "%d"},
+  {__LINE__, 0x98ec1c74,	"98ec1c74", "% 3x"},
+  {__LINE__, 0xfffffff8,	"fffffff8", "%+1.4x"},
+  {__LINE__, -0x0000d58,	"-3416", "%+#0ld"},
+  {__LINE__, -0x65d1973,	"-106764659", "%.6d"},
+  {__LINE__, -0x0737641,	"-7566913", "%-d"},
+  {__LINE__, 0x0000037c,	"37c", "%+0x"},
+  {__LINE__, 0x0000012c,	"0000300", "%#3.7d"},
+  {__LINE__, 0x00c12d9b,	"12660123", "%1.5ld"},
+  {__LINE__, 0xe7e5e77d,	"e7e5e77d", "%6x"},
+  {__LINE__, 0x1fe0e820,	"1FE0E820", "%-4X"},
+  {__LINE__, 0xc85a793a,	"C85A793A", "%X"},
+  {__LINE__, 0x05f9fe2c,	"100269612", "%#ld"},
+  {__LINE__, 0x00000032,	"0X32", "%+#4.1X"},
+  {__LINE__, 0xfab4ce81,	"fab4ce81", "%3.x"},
+  {__LINE__, -0x0000009,	"-9", "%2.d"},
+  {__LINE__, 0xffff8d2e,	"ffff8d2e", "% 6x"},
+  {__LINE__, 0xfffffffe,	"0xfffffffe", "%#x"},
+  {__LINE__, 0x02960f60,	"2960f60", "%1.x"},
+  {__LINE__, 0x34cf3cbc,	" 885996732", "% 5ld"},
+  {__LINE__, -0x000006e,	"-110", "% d"},
+  {__LINE__, -0x0000001,	"-1", "%-.0d"},
+  {__LINE__, 0x000000b1,	"     B1", "%+7X"},
+  {__LINE__, 0xfffff5b4,	"FFFFF5B4", "%01.7X"},
+  {__LINE__, 0x00000086,	"86", "%0X"},
+  {__LINE__, 0x00074367,	" 74367", "% 6x"},
+  {__LINE__, 0x001000d7,	"+1048791", "%+ld"},
+  {__LINE__, 0x00000f35,	" 3893", "% d"},
+  {__LINE__, -0x00000e1,	"-225", "%d"},
+  {__LINE__, 0xffff6694,	"FFFF6694", "%6.X"},
+  {__LINE__, 0x00019cf7,	"19cf7", "%0.x"},
+  {__LINE__, 0x00000046,	"0046", "%+.4X"},
+  {__LINE__, -0x000001f,	"-31", "%ld"},
+  {__LINE__, 0xfff25859,	"fff25859", "%6x"},
+  {__LINE__, 0x21884061,	"562577505", "%#ld"},
+  {__LINE__, 0x01448b7a,	"1448B7A", "%0.1X"},
+  {__LINE__, 0xffffffc0,	"ffffffc0", "%x"},
+  {__LINE__, 0xfffffed5,	"fffffed5", "% 1.0x"},
+  {__LINE__, 0x0e349767,	"E349767", "%.5X"},
+  {__LINE__, 0x00000330,	"816", "%0d"},
+  {__LINE__, -0x0000016,	"-22", "%d"},
+  {__LINE__, 0xffff9bab,	"FFFF9BAB", "%X"},
+  {__LINE__, 0xffffee4e,	"ffffee4e", "%x"},
+  {__LINE__, 0x0026beeb,	"2539243", "%6.d"},
+  {__LINE__, 0x00002c6c,	"11372", "%.2d"},
+  {__LINE__, -0x000002c,	"-44", "%ld"},
+  {__LINE__, -0x001dcfa,	"-122106", "% d"},
+  {__LINE__, 0x0001683c,	"92220", "%#4.ld"},
+  {__LINE__, 0x09b51fc9,	"9b51fc9", "%+.7x"},
+  {__LINE__, 0x0000001d,	"29", "%0ld"},
+  {__LINE__, -0x83f17e5,	"-138352613", "%ld"},
+  {__LINE__, 0xfa4e2c1b,	"fa4e2c1b", "%x"},
+  {__LINE__, 0x000001f3,	"499", "%0ld"},
+  {__LINE__, 0xffff03e4,	"ffff03e4", "%x"},
+  {__LINE__, 0x000000ac,	"+0172", "%+.4ld"},
+  {__LINE__, 0x03c3903b,	"63148091", "%00d"},
+  {__LINE__, 0x0000000d,	"13", "%#d"},
+  {__LINE__, 0x0000002e,	"0X2E", "%#X"},
+  {__LINE__, 0x00006b2d,	"6B2D", "%X"},
+  {__LINE__, 0x0000010b,	"  0010b", "%7.5x"},
+  {__LINE__, 0x0000017a,	" 17a", "%4x"},
+  {__LINE__, 0xfffffffb,	"fffffffb", "%+x"},
+  {__LINE__, 0xffffac6a,	"ffffac6a", "%-.3x"},
+  {__LINE__, -0x0005870,	"-22640", "%0d"},
+  {__LINE__, 0x189c17bc,	"189c17bc", "%x"},
+  {__LINE__, -0x01bbc38,	"-1817656", "%#6.ld"},
+  {__LINE__, -0x3382b55,	"-54012757", "%d"},
+  {__LINE__, -0x0000007,	"-7", "%-ld"},
+  {__LINE__, -0x000c74b,	"-51019", "%ld"},
+  {__LINE__, 0x0001a6f2,	"+108274", "%+#1.ld"},
+  {__LINE__, 0x00077448,	"77448", "%x"},
+  {__LINE__, 0x00000000,	"0", "%x"},
+  {__LINE__, 0xfffff056,	"FFFFF056", "%.3X"},
+  {__LINE__, -0x6f3f9451,	"-1866437713", "%-#3.0ld"},
+  {__LINE__, 0x000000ac,	"AC", "%X"},
+  {__LINE__, 0xffc8752f,	"ffc8752f", "%-x"},
+  {__LINE__, 0xfffffe6d,	"FFFFFE6D", "%2.X"},
+  {__LINE__, -0x377f1a5,	"-58192293", "% .2d"},
+  {__LINE__, -0x0000294,	"-660", "%d"},
+  {__LINE__, 0xfffffffe,	"fffffffe", "%-x"},
+  {__LINE__, 0xfffcbbe8,	"0xfffcbbe8", "%-#4.x"},
+  {__LINE__, 0x0022e510,	"+2286864", "%+ld"},
+  {__LINE__, 0xfffffe2a,	"FFFFFE2A", "%0.3X"},
+  {__LINE__, 0xfe29f7c0,	"fe29f7c0", "%x"},
+  {__LINE__, 0xfffe957e,	"FFFE957E", "%X"},
+  {__LINE__, 0x000080f8,	"33016", "%ld"},
+  {__LINE__, 0x0003ee2c,	" 257580", "%7d"},
+  {__LINE__, 0x000003a1,	"929", "%d"},
+  {__LINE__, 0x0000021f,	"21f", "%+x"},
+  {__LINE__, 0xffffffff,	"ffffffff", "%.5x"},
+  {__LINE__, -0x040a988,	"-4237704", "%-d"},
+  {__LINE__, 0x027c8b69,	"41716585", "%ld"},
+  {__LINE__, 0x00000003,	"3", "%-X"},
+  {__LINE__, -0x0000368,	"   -872", "%7.d"},
+  {__LINE__, 0x00000d3c,	"3388", "%0.2d"},
+  {__LINE__, -0x33734cc,	"-53949644", "%2ld"},
+  {__LINE__, 0x000003db,	"3DB", "%X"},
+  {__LINE__, -0x00f154d,	"-988493", "%5d"},
+  {__LINE__, 0x0000000b,	"  11", "%4.ld"},
+  {__LINE__, 0x00000067,	"103", "%-ld"},
+  {__LINE__, -0x0199fce,	"-1679310", "%4d"},
+  {__LINE__, 0x02b6266b,	"2b6266b", "% x"},
+  {__LINE__, -0x006b39d,	"-439197", "%+d"},
+  {__LINE__, 0x00000007,	"7", "%ld"},
+  {__LINE__, 0x0141fc98,	"21101720", "%0ld"},
+  {__LINE__, -0x0008420,	"-33824", "%d"},
+  {__LINE__, 0x0011622b,	"1139243", "%6ld"},
+  {__LINE__, 0x0000001b,	"27", "%-d"},
+  {__LINE__, -0x0030935,	"-198965", "%3d"},
+  {__LINE__, 0x0000001f,	"  1f", "%4.x"},
+  {__LINE__, -0x10782a19,	"-276310553", "%#ld"},
+  {__LINE__, -0x007eac4,	"-518852", "%06.ld"},
+  {__LINE__, 0x0bc4c681,	"197445249", "%6ld"},
+  {__LINE__, 0x000000f5,	"245", "%.3ld"},
+  {__LINE__, 0x00000197,	"197", "%X"},
+  {__LINE__, 0xfffffeab,	"FFFFFEAB", "% X"},
+  {__LINE__, 0x00000f05,	"F05", "%+X"},
+  {__LINE__, 0xffe1b785,	"0xffe1b785", "%#x"},
+  {__LINE__, -0x02d3581,	"-2962817", "%05d"},
+  {__LINE__, 0xffffb994,	"FFFFB994", "%X"},
+  {__LINE__, 0x03d139a3,	"64043427", "%ld"},
+  {__LINE__, -0x0000002,	"  -2", "%+4.d"},
+  {__LINE__, -0x043da83,	"-4446851", "%#ld"},
+  {__LINE__, -0x6aad891,	"-111859857", "%7.ld"},
+  {__LINE__, 0x00003e68,	"15976", "%-4.5ld"},
+  {__LINE__, 0xffe4d3ee,	"FFE4D3EE", "%X"},
+  {__LINE__, 0x00000002,	"000002", "%4.6ld"},
+  {__LINE__, 0xffffee32,	"ffffee32", "%4x"},
+  {__LINE__, 0x0cb7dd25,	"cb7dd25", "%3x"},
+  {__LINE__, 0xf773d422,	"F773D422", "%X"},
+  {__LINE__, -0x0b590f7,	"-11899127", "%#d"},
+  {__LINE__, -0x0002c45,	"-11333", "%-#5ld"},
+  {__LINE__, -0x1efc9e4,	"-32492004", "%ld"},
+  {__LINE__, -0x0003b9c,	"-15260", "%d"},
+  {__LINE__, 0x000001b6,	"0X1B6", "%#4X"},
+  {__LINE__, 0x3ce93ec3,	"1021918915", "%.6d"},
+  {__LINE__, 0xffffffff,	"ffffffff", "%-x"},
+  {__LINE__, 0xfffaf0e4,	"fffaf0e4", "%2.x"},
+  {__LINE__, 0x00000002,	"0x2", "%#x"},
+  {__LINE__, 0x0000e806,	"e806", "%4x"},
+  {__LINE__, 0xfffffff0,	"fffffff0", "% 2.x"},
+  {__LINE__, 0xfffffc0e,	"fffffc0e", "%+.4x"},
+  {__LINE__, 0xfd45716e,	"FD45716E", "%.4X"},
+  {__LINE__, 0xfff96fda,	"FFF96FDA", "%-X"},
+  {__LINE__, 0xff99d08a,	"FF99D08A", "%.5X"},
+  {__LINE__, 0x00000002,	"2", "%-00.d"},
+  {__LINE__, -0x000000f,	"   -15", "%6.ld"},
+  {__LINE__, -0x00d321c,	"-864796", "%#1ld"},
+  {__LINE__, 0xff19ff8d,	"ff19ff8d", "%1.5x"},
+  {__LINE__, 0x00000000,	"0000000", "%-.7x"},
+  {__LINE__, 0x0000f50d,	" F50D", "%5X"},
+  {__LINE__, 0x00001688,	"   5768", "%7.ld"},
+  {__LINE__, 0x00000157,	"343", "%2ld"},
+  {__LINE__, 0xfffffffd,	"0xfffffffd", "%+#3x"},
+  {__LINE__, 0x00000d52,	"3410", "%ld"},
+  {__LINE__, 0x00000003,	"3", "%d"},
+  {__LINE__, 0x0001c6d2,	"01c6d2", "%.6x"},
+  {__LINE__, 0x242d65d2,	"606954962", "%#7.ld"},
+  {__LINE__, 0x00000e9f,	"0000E9F", "%5.7X"},
+  {__LINE__, 0x0002d785,	"2D785", "%0X"},
+  {__LINE__, 0x00000167,	"167", "%0X"},
+  {__LINE__, 0xfffff5e5,	"fffff5e5", "% x"},
+  {__LINE__, 0xffb69a04,	"0xffb69a04", "%#0.x"},
+  {__LINE__, 0xfffa012e,	"FFFA012E", "%X"},
+  {__LINE__, 0x0000001a,	"0x1a", "% #x"},
+  {__LINE__, 0xfffb26d3,	"fffb26d3", "%+x"},
+  {__LINE__, -0x00003e6,	"   -998", "%7ld"},
+  {__LINE__, 0x00000004,	"4", "%-d"},
+  {__LINE__, 0xfffffd76,	"0XFFFFFD76", "%#7X"},
+  {__LINE__, 0x00000035,	"53", "%ld"},
+  {__LINE__, 0xffc6c190,	"0XFFC6C190", "%#X"},
+  {__LINE__, 0xffffffe2,	"ffffffe2", "%7.0x"},
+  {__LINE__, 0x03ff1b87,	"67050375", "%2.d"},
+  {__LINE__, 0x00020c47,	"0X20C47", "%#X"},
+  {__LINE__, 0x00000000,	"0", "%d"},
+  {__LINE__, 0x0000000e,	"0X000E", "% #.4X"},
+  {__LINE__, -0x00035cd,	"-13773", "%+2.d"},
+  {__LINE__, 0x00005eec,	"5eec", "%1x"},
+  {__LINE__, 0x001da0ff,	"1941759", "%0d"},
+  {__LINE__, 0xf8a9e96a,	"f8a9e96a", "%+x"},
+  {__LINE__, -0x0000120,	"-288  ", "%-#6.d"},
+  {__LINE__, 0x00000000,	"0", "%-X"},
+  {__LINE__, 0x0000152e,	"152E", "%+X"},
+  {__LINE__, -0x0001077,	"-4215", "% 0d"},
+  {__LINE__, 0xffffffd7,	"FFFFFFD7", "%0X"},
+  {__LINE__, 0xfffe097d,	"FFFE097D", "%2X"},
+  {__LINE__, 0xcb982712,	"cb982712", "%x"},
+  {__LINE__, 0xfff39f2e,	"FFF39F2E", "%.5X"},
+  {__LINE__, -0x0058cae,	"-363694", "%+.1d"},
+  {__LINE__, -0x000002b,	"-043", "%#1.3d"},
+  {__LINE__, -0x001e989,	"-125321", "%1d"},
+  {__LINE__, 0x00959ecd,	"9805517", "%d"},
+  {__LINE__, 0xf49df846,	"F49DF846", "%+3X"},
+  {__LINE__, 0xfffffffd,	"fffffffd", "%+.5x"},
+  {__LINE__, -0x000ac76,	"-44150", "%3.ld"},
+  {__LINE__, 0x00000028,	"  0028", "%06.4x"},
+  {__LINE__, 0x000003e8,	"3E8", "%-02X"},
+  {__LINE__, 0x00000012,	"012", "%.3X"},
+  {__LINE__, 0x00000006,	"0X6", "%#X"},
+  {__LINE__, 0x00ef8479,	"+15697017", "%+0.6d"},
+  {__LINE__, 0xffffffe8,	"FFFFFFE8", "%-X"},
+  {__LINE__, 0x773a90f7,	"773a90f7", "%3.5x"},
+  {__LINE__, 0x00096d44,	"96D44", "%-X"},
+  {__LINE__, -0x08a3d96,	"-9059734", "%ld"},
+  {__LINE__, -0x000001a,	"-26", "%00.ld"},
+  {__LINE__, 0x32f57585,	"32f57585", "% x"},
+  {__LINE__, 0x2825f175,	"2825F175", "%X"},
+  {__LINE__, 0x000054ff,	"21759", "%-2d"},
+  {__LINE__, -0x0266cdc,	"-2518236", "%ld"},
+  {__LINE__, 0x0000031d,	"0X31D", "%+#4X"},
+  {__LINE__, 0x0003fc99,	"3fc99", "%x"},
+  {__LINE__, -0x0064624,	"-411172", "%-#d"},
+  {__LINE__, 0x0001b2d9,	"111321", "%-ld"},
+  {__LINE__, -0x000007c,	"-124", "%#d"},
+  {__LINE__, 0xfffffffa,	"FFFFFFFA", "%+X"},
+  {__LINE__, -0x007a5b8,	"-501176", "%+ld"},
+  {__LINE__, 0x0213b583,	"213B583", "%2.X"},
+  {__LINE__, 0xfff12e51,	"FFF12E51", "%+X"},
+  {__LINE__, 0x00052403,	"0336899", "%-0.7d"},
+  {__LINE__, 0xffffffff,	"ffffffff", "%-04.4x"},
+  {__LINE__, 0x00000010,	"0010", "%0.4X"},
+  {__LINE__, 0xffffffb5,	"FFFFFFB5", "%-1.3X"},
+  {__LINE__, -0x0000001,	"-1", "%d"},
+  {__LINE__, 0x0003a2d1,	"3a2d1", "% x"},
+  {__LINE__, 0x00000424,	"1060", "%0ld"},
+  {__LINE__, -0x0000078,	"-120", "%1d"},
+  {__LINE__, 0x00000000,	"0", "%ld"},
+  {__LINE__, 0x00000414,	"1044", "%ld"},
+  {__LINE__, 0x00000072,	"0x072", "%#5.3x"},
+  {__LINE__, 0x0000007a,	"7A", "% X"},
+  {__LINE__, 0x081542a3,	"135611043", "%0d"},
+  {__LINE__, 0xfffb4ce6,	"fffb4ce6", "%4.6x"},
+  {__LINE__, 0x00002ab2,	"2ab2", "%-1x"},
+  {__LINE__, 0x00000000,	" 0", "% 2x"},
+  {__LINE__, 0xfffffa59,	"FFFFFA59", "%2.X"},
+  {__LINE__, 0xffffe22b,	"ffffe22b", "%-x"},
+  {__LINE__, 0xfffffd52,	"FFFFFD52", "%+.2X"},
+  {__LINE__, 0x0000039f,	"927", "%-d"},
+  {__LINE__, 0x0002dea6,	"2dea6", "%0x"},
+  {__LINE__, 0x000216db,	"136923", "%ld"},
+  {__LINE__, 0x00000013,	"19", "%0d"},
+  {__LINE__, 0x000047cc,	"18380", "%2.2ld"},
+  {__LINE__, -0x0007d10,	"-32016", "%d"},
+  {__LINE__, 0xff9af906,	"FF9AF906", "%0X"},
+  {__LINE__, 0x02cfa224,	"+47161892", "%+0.7d"},
+  {__LINE__, -0x0000022,	"-34", "%1.d"},
+  {__LINE__, 0xfffffff0,	"FFFFFFF0", "%-4X"},
+  {__LINE__, 0x00000029,	"    41", "%6.ld"},
+  {__LINE__, 0xffffff76,	"ffffff76", "%x"},
+  {__LINE__, 0x00000000,	"0", "%+X"},
+  {__LINE__, 0x00000001,	"1", "%d"},
+  {__LINE__, 0xfff6de5a,	"FFF6DE5A", "%X"},
+  {__LINE__, 0x00000002,	"2", "%ld"},
+  {__LINE__, 0x00000025,	"25", "%+x"},
+  {__LINE__, 0xfffffffb,	"FFFFFFFB", "%5.0X"},
+  {__LINE__, 0x0011bbb5,	"1162165", "%0.0ld"},
+  {__LINE__, 0xfffcdc96,	"0XFFFCDC96", "%#X"},
+  {__LINE__, 0x00008f5f,	"8f5f", "%3.1x"},
+  {__LINE__, 0xffa0fa5d,	"0XFFA0FA5D", "%#X"},
+  {__LINE__, 0x00004534,	"4534", "% 0X"},
+  {__LINE__, 0xfffffff9,	"fffffff9", "%.2x"},
+  {__LINE__, 0xffeeae50,	"ffeeae50", "%-x"},
+  {__LINE__, 0x00002964,	" 0010596", "% 0.7d"},
+  {__LINE__, 0x000021c9,	"  21c9", "%6x"},
+  {__LINE__, 0x00000001,	" 1", "% d"},
+  {__LINE__, 0x0002abd8,	"+175064", "%+d"},
+  {__LINE__, 0xffffffad,	"FFFFFFAD", "%+0X"},
+  {__LINE__, 0x00000003,	"3", "%ld"},
+  {__LINE__, 0x0c036da3,	" 201551267", "% .3d"},
+  {__LINE__, -0x004343c,	"-275516", "%+ld"},
+  {__LINE__, 0x00000003,	"003", "% .3x"},
+  {__LINE__, 0xffffe34e,	"ffffe34e", "%x"},
+  {__LINE__, 0x0000e118,	"e118", "%x"},
+  {__LINE__, -0x007d945,	"-514373", "%+#0ld"},
+  {__LINE__, 0x277f1cc5,	"277f1cc5", "% x"},
+  {__LINE__, 0x00003bef,	"03bef", "% 0.5x"},
+  {__LINE__, 0xfffffcb9,	"fffffcb9", "%x"},
+  {__LINE__, 0x0003311a,	"209178", "%ld"},
+  {__LINE__, 0x00000000,	"   ", "%3.ld"},
+  {__LINE__, 0x05942225,	"5942225", "%x"},
+  {__LINE__, 0xfffceb4c,	"FFFCEB4C", "%-X"},
+  {__LINE__, 0xffd08633,	"ffd08633", "%2.x"},
+  {__LINE__, -0x0000001,	"    -1", "%6d"},
+  {__LINE__, 0x000fdb12,	"1039122", "%d"},
+  {__LINE__, 0x00000003,	"3", "% 0X"},
+  {__LINE__, -0x2fd5bf1,	"-50158577", "% 5.ld"},
+  {__LINE__, -0x0089a03,	"-563715", "%-d"},
+  {__LINE__, 0xfffffffe,	"FFFFFFFE", "% X"},
+  {__LINE__, 0x29fdb2ba,	"29fdb2ba", "% 0x"},
+  {__LINE__, 0x0000008f,	"8F", "% X"},
+  {__LINE__, 0x00000003,	"3", "%ld"},
+  {__LINE__, 0xffc58445,	"FFC58445", "%.2X"},
+  {__LINE__, -0x00023f6,	"-9206", "%+d"},
+  {__LINE__, 0x00000011,	"11", "%X"},
+  {__LINE__, -0x0000003,	"-0000003", "%-.7d"},
+  {__LINE__, -0x0000003,	"-3", "%#ld"},
+  {__LINE__, 0x001242d9,	"1242D9", "%X"},
+  {__LINE__, -0x48d0c81,	"-76352641", "%7.d"},
+  {__LINE__, -0x001b675,	"-112245", "%#ld"},
+  {__LINE__, 0x00000003,	"3", "%-d"},
+  {__LINE__, 0xfff93fdf,	"0XFFF93FDF", "% #X"},
+  {__LINE__, 0x001a9414,	"1741844", "%#ld"},
+  {__LINE__, 0x0001fd86,	"130438", "%ld"},
+  {__LINE__, 0x010f37a8,	"17774504", "%4.7d"},
+  {__LINE__, 0x00382838,	"0382838", "%3.7X"},
+  {__LINE__, -0x47fd56c2,	"-1207785154", "%ld"},
+  {__LINE__, 0x001981dd,	"1981dd", "%x"},
+  {__LINE__, 0xffffefba,	"ffffefba", "% 06.x"},
+  {__LINE__, -0x3f402b29,	"-1061169961", "%+#ld"},
+  {__LINE__, -0x395aae44,	"-962244164", "%-1d"},
+  {__LINE__, 0x1fa39f42,	"530816834", "%#d"},
+  {__LINE__, -0x000358d,	"-13709", "%d"},
+  {__LINE__, -0xdc17b8f,	"-230783887", "%ld"},
+  {__LINE__, -0x23c41583,	"-600053123", "%+3.d"},
+  {__LINE__, 0xfffffc16,	"fffffc16", "%x"},
+  {__LINE__, 0x003f1364,	"4133732", "%7.ld"},
+  {__LINE__, 0xffffe691,	"FFFFE691", "%07X"},
+  {__LINE__, 0x07b31d71,	"129178993", "%.7d"},
+  {__LINE__, -0x0019732,	"-104242", "% ld"},
+  {__LINE__, 0x02428167,	"0x2428167", "%#x"},
+  {__LINE__, -0x06c1ecd,	"-7085773", "%.7ld"},
+  {__LINE__, 0xfb01cb4e,	"fb01cb4e", "%x"},
+  {__LINE__, 0x00005a41,	"+23105", "%+ld"},
+  {__LINE__, 0xfffffff4,	"FFFFFFF4", "%-5.X"},
+  {__LINE__, 0x00000005,	"   5", "%4.ld"},
+  {__LINE__, 0xf4ab4b2d,	"F4AB4B2D", "%0.X"},
+  {__LINE__, -0x000fce3,	"-64739", "%+#3.ld"},
+  {__LINE__, 0x000076ea,	" 30442", "%6.2ld"},
+  {__LINE__, 0x00000cb9,	" cb9", "%4.x"},
+  {__LINE__, 0x002f43ef,	"3097583", "%1.1ld"},
+  {__LINE__, 0xf5bd0105,	"F5BD0105", "%+X"},
+  {__LINE__, 0x0037954a,	"3642698", "%d"},
+  {__LINE__, 0xfffffff7,	"0XFFFFFFF7", "%-#X"},
+  {__LINE__, 0xffffcedf,	"0xffffcedf", "%#6.7x"},
+  {__LINE__, 0xfffffde4,	"FFFFFDE4", "%2.4X"},
+  {__LINE__, 0x01a6f103,	"1a6f103", "%5.x"},
+  {__LINE__, 0x00000191,	"    191", "%7.0X"},
+  {__LINE__, 0x00000003,	"03", "% .2X"},
+  {__LINE__, -0xd4e3219,	"-223228441", "%6.ld"},
+  {__LINE__, 0x00b0efbd,	"11595709", "%d"},
+  {__LINE__, -0x00000ea,	"-234", "%#3d"},
+  {__LINE__, 0x00000be8,	"BE8  ", "%-5X"},
+  {__LINE__, 0xffffffff,	"ffffffff", "%5.3x"},
+  {__LINE__, -0x267f8c6,	"-40368326", "%d"},
+  {__LINE__, 0x000006ed,	"6ED", "%X"},
+  {__LINE__, 0xfdd6c9b6,	"FDD6C9B6", "%X"},
+  {__LINE__, 0x0007ac29,	"7ac29", "%-x"},
+  {__LINE__, 0x00000014,	"14", "%2x"},
+  {__LINE__, 0x123ca563,	"+305964387", "%+ld"},
+  {__LINE__, 0x00000004,	"    4", "%5.d"},
+  {__LINE__, 0xffff877a,	"ffff877a", "%x"},
+  {__LINE__, -0x00003e7,	"-999", "%+0.3d"},
+  {__LINE__, 0x0a68ba6e,	"a68ba6e", "%3.1x"},
+  {__LINE__, 0xfe29c810,	"FE29C810", "%+X"},
+#endif
+
+  {__LINE__, 0x00000000,	"0", "%o"},
+  {__LINE__, 0000000123,	"123", "%o"},
+  {__LINE__, 0000123456,	"0123456", "%#o"},
+  {__LINE__, 0000123456,	"00123456", "%#.8o"},
+  {__LINE__, 0000123456,	"  00123456", "%#10.8o"},
+  {__LINE__, 0x00000123,	"0x00123", "%#07x"},
+  {__LINE__, 0x00000000,	"", "%#.0d"},
+  {__LINE__, 0x00000000,	"", "%#.0x"},
+  {__LINE__, 0x00000000,	"0", "%#.0o"},
+
+  {__LINE__, 0x00000000,	"0", "%Id"},
+  {__LINE__, 0x0000000a,	"10", "%Id"},
+  {__LINE__, 0x000000d2,	"210", "%Id"},
+  {__LINE__, 0x00000c8a,	"3210", "%Id"},
+  {__LINE__, 0x0000a8ca,	"43210", "%Id"},
+  {__LINE__, 0x000849ea,	"543210", "%Id"},
+  {__LINE__, 0x0063d76a,	"6543210", "%Id"},
+  {__LINE__, 0x048ff4ea,	"76543210", "%Id"},
+  {__LINE__, 0x343efcea,	"876543210", "%Id"},
+
+  {0},
+};
+
+int
+main(int argc, char *argv[])
+{
+    int errcount = 0;
+    int testcount = 0;
+#define BSIZE 1024
+    char buffer[BSIZE];
+    sprint_int_type *iptr;
+    for (iptr = sprint_ints; iptr->line; iptr++) {
+	sprintf(buffer, iptr->format_string, iptr->value);
+	if (strcmp(buffer, iptr->result) != 0) {
+	    errcount++;
+	    printf(
+    "Error in line %d using \"%s\".  Result is \"%s\"; should be: \"%s\".\n",
+		    iptr->line, iptr->format_string, buffer, iptr->result);
+	}
+	testcount++;
+    }
+
+    if (errcount == 0) {
+	printf ("Encountered no errors in %d tests.\n", testcount);
+	return 0;
+    }
+    else {
+	printf ("Encountered %d errors in %d tests.\n",
+		errcount, testcount);
+	return 1;
+    }
+}
diff --git a/REORG.TODO/stdio-common/tllformat.c b/REORG.TODO/stdio-common/tllformat.c
new file mode 100644
index 0000000000..b53b825836
--- /dev/null
+++ b/REORG.TODO/stdio-common/tllformat.c
@@ -0,0 +1,59 @@
+#include <stdio.h>
+#include <string.h>
+
+/* The original file was tiformat.c and it has been changed for long long tests\
+. */
+typedef struct
+{
+  int line;
+  long long int value;
+  const char *result;
+  const char *format_string;
+} sprint_int_type;
+
+sprint_int_type sprint_ints[] =
+{
+  {__LINE__, 0x00000000ULL,             "0", "%llx"},
+  {__LINE__, 0xffff00000000208bULL,     "ffff00000000208b", "%llx"},
+  {__LINE__, 0xffff00000000208bULL,     "18446462598732849291", "%llu"},
+  {__LINE__, 18446462598732849291ULL,   "ffff00000000208b", "%llx"},
+  {__LINE__, 18446462598732849291ULL,   "18446462598732849291", "%llu"},
+  {__LINE__, 18359476226655002763ULL,   "fec9f65b0000208b", "%llx"},
+  {__LINE__, 18359476226655002763ULL,   "18359476226655002763", "%llu"},
+
+  {0},
+};
+
+int
+main (void)
+{
+  int errcount = 0;
+  int testcount = 0;
+#define BSIZE 1024
+  char buffer[BSIZE];
+  sprint_int_type *iptr;
+  for (iptr = sprint_ints; iptr->line; iptr++)
+    {
+      sprintf (buffer, iptr->format_string, iptr->value);
+      if (strcmp (buffer, iptr->result) != 0)
+	{
+	  ++errcount;
+	  printf ("\
+Error in line %d using \"%s\".  Result is \"%s\"; should be: \"%s\".\n",
+		  iptr->line, iptr->format_string, buffer, iptr->result);
+        }
+      ++testcount;
+    }
+
+  if (errcount == 0)
+    {
+      printf ("Encountered no errors in %d tests.\n", testcount);
+      return 0;
+    }
+  else
+    {
+      printf ("Encountered %d errors in %d tests.\n",
+	      errcount, testcount);
+      return 1;
+    }
+}
diff --git a/REORG.TODO/stdio-common/tmpfile.c b/REORG.TODO/stdio-common/tmpfile.c
new file mode 100644
index 0000000000..e6030be0af
--- /dev/null
+++ b/REORG.TODO/stdio-common/tmpfile.c
@@ -0,0 +1,69 @@
+/* Open a stdio stream on an anonymous temporary file.  Generic/POSIX version.
+   Copyright (C) 1991-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <fcntl.h>
+#include <stdio.h>
+#include <unistd.h>
+
+#include <iolibio.h>
+#define __fdopen _IO_fdopen
+#ifndef tmpfile
+# define tmpfile __new_tmpfile
+#endif
+
+
+/* This returns a new stream opened on a temporary file (generated
+   by tmpnam).  The file is opened with mode "w+b" (binary read/write).
+   If we couldn't generate a unique filename or the file couldn't
+   be opened, NULL is returned.  */
+FILE *
+tmpfile (void)
+{
+  char buf[FILENAME_MAX];
+  int fd;
+  FILE *f;
+
+  if (__path_search (buf, FILENAME_MAX, NULL, "tmpf", 0))
+    return NULL;
+  int flags = 0;
+#ifdef FLAGS
+  flags = FLAGS;
+#endif
+  fd = __gen_tempname (buf, 0, flags, __GT_FILE);
+  if (fd < 0)
+    return NULL;
+
+  /* Note that this relies on the Unix semantics that
+     a file is not really removed until it is closed.  */
+  (void) __unlink (buf);
+
+  if ((f = __fdopen (fd, "w+b")) == NULL)
+    __close (fd);
+
+  return f;
+}
+
+#if !defined O_LARGEFILE || O_LARGEFILE == 0
+weak_alias (__new_tmpfile, tmpfile64)
+#endif
+
+#ifndef FLAGS /* Not for tmpfile64.  */
+# undef tmpfile
+# include <shlib-compat.h>
+versioned_symbol (libc, __new_tmpfile, tmpfile, GLIBC_2_1);
+#endif
diff --git a/REORG.TODO/stdio-common/tmpfile64.c b/REORG.TODO/stdio-common/tmpfile64.c
new file mode 100644
index 0000000000..19a170f3f7
--- /dev/null
+++ b/REORG.TODO/stdio-common/tmpfile64.c
@@ -0,0 +1,28 @@
+/* Open a stdio stream on an anonymous, large temporary file.  Generic version.
+   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <fcntl.h>
+
+/* If there is no O_LARGEFILE, then the plain tmpfile definition
+   does the job and it gets tmpfile64 as an alias.  */
+
+#if defined O_LARGEFILE && O_LARGEFILE != 0
+# define FLAGS		O_LARGEFILE
+# define tmpfile	tmpfile64
+# include <tmpfile.c>
+#endif
diff --git a/REORG.TODO/stdio-common/tmpnam.c b/REORG.TODO/stdio-common/tmpnam.c
new file mode 100644
index 0000000000..0ecc69ca04
--- /dev/null
+++ b/REORG.TODO/stdio-common/tmpnam.c
@@ -0,0 +1,51 @@
+/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <stdio.h>
+#include <string.h>
+
+static char tmpnam_buffer[L_tmpnam];
+
+/* Generate a unique filename in P_tmpdir.
+
+   This function is *not* thread safe!  */
+char *
+tmpnam (char *s)
+{
+  /* By using two buffers we manage to be thread safe in the case
+     where S != NULL.  */
+  char tmpbufmem[L_tmpnam];
+  char *tmpbuf = s ?: tmpbufmem;
+
+  /* In the following call we use the buffer pointed to by S if
+     non-NULL although we don't know the size.  But we limit the size
+     to L_tmpnam characters in any case.  */
+  if (__builtin_expect (__path_search (tmpbuf, L_tmpnam, NULL, NULL, 0),
+			0))
+    return NULL;
+
+  if (__glibc_unlikely (__gen_tempname (tmpbuf, 0, 0, __GT_NOCREATE)))
+    return NULL;
+
+  if (s == NULL)
+    return (char *) memcpy (tmpnam_buffer, tmpbuf, L_tmpnam);
+
+  return s;
+}
+
+link_warning (tmpnam,
+	      "the use of `tmpnam' is dangerous, better use `mkstemp'")
diff --git a/REORG.TODO/stdio-common/tmpnam_r.c b/REORG.TODO/stdio-common/tmpnam_r.c
new file mode 100644
index 0000000000..93de0403a4
--- /dev/null
+++ b/REORG.TODO/stdio-common/tmpnam_r.c
@@ -0,0 +1,37 @@
+/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <stdio.h>
+
+/* Generate a unique filename in P_tmpdir.  If S is NULL return NULL.
+   This makes this function thread safe.  */
+char *
+tmpnam_r (char *s)
+{
+  if (s == NULL)
+    return NULL;
+
+  if (__path_search (s, L_tmpnam, NULL, NULL, 0))
+    return NULL;
+  if (__gen_tempname (s, 0, 0, __GT_NOCREATE))
+    return NULL;
+
+  return s;
+}
+
+link_warning (tmpnam_r,
+	      "the use of `tmpnam_r' is dangerous, better use `mkstemp'")
diff --git a/REORG.TODO/stdio-common/tst-cookie.c b/REORG.TODO/stdio-common/tst-cookie.c
new file mode 100644
index 0000000000..030e684562
--- /dev/null
+++ b/REORG.TODO/stdio-common/tst-cookie.c
@@ -0,0 +1,95 @@
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <errno.h>
+
+#include <stdio.h>
+
+
+#define THE_COOKIE ((void *) 0xdeadbeeful)
+
+static int errors;
+
+
+static int cookieread_called;
+static ssize_t
+cookieread (void *cookie, char *buf, size_t count)
+{
+  printf ("`%s' called with cookie %#lx\n", __FUNCTION__,
+	  (unsigned long int) cookie);
+  if (cookie != THE_COOKIE)
+    ++errors;
+  cookieread_called = 1;
+  return 42;
+}
+
+
+static int cookiewrite_called;
+static ssize_t
+cookiewrite (void *cookie, const char *buf, size_t count)
+{
+  printf ("`%s' called with cookie %#lx\n", __FUNCTION__,
+	  (unsigned long int) cookie);
+  if (cookie != THE_COOKIE)
+    ++errors;
+  cookiewrite_called = 1;
+  return 43;
+}
+
+
+static int cookieseek_called;
+static int
+cookieseek (void *cookie, off64_t *offset, int whence)
+{
+  printf ("`%s' called with cookie %#lx\n", __FUNCTION__,
+	  (unsigned long int) cookie);
+  if (cookie != THE_COOKIE)
+    ++errors;
+  cookieseek_called = 1;
+  return 44;
+}
+
+
+static int cookieclose_called;
+static int
+cookieclose (void *cookie)
+{
+  printf ("`%s' called with cookie %#lx\n", __FUNCTION__,
+	  (unsigned long int) cookie);
+  if (cookie != THE_COOKIE)
+    ++errors;
+  cookieclose_called = 1;
+  return 45;
+}
+
+
+static int
+do_test (void)
+{
+  cookie_io_functions_t fcts;
+  char buf[1];
+  FILE *f;
+
+  fcts.read = cookieread;
+  fcts.seek = cookieseek;
+  fcts.close = cookieclose;
+  fcts.write = cookiewrite;
+
+  f = fopencookie (THE_COOKIE, "r+", fcts);
+
+  fread (buf, 1, 1, f);
+  fwrite (buf, 1, 1, f);
+  fseek (f, 0, SEEK_CUR);
+  fclose (f);
+
+  if (cookieread_called == 0
+      || cookiewrite_called == 0
+      || cookieseek_called == 0
+      || cookieclose_called == 0)
+    ++errors;
+
+  return errors != 0;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/stdio-common/tst-fdopen.c b/REORG.TODO/stdio-common/tst-fdopen.c
new file mode 100644
index 0000000000..e70a0cd6a5
--- /dev/null
+++ b/REORG.TODO/stdio-common/tst-fdopen.c
@@ -0,0 +1,50 @@
+/* Test for fdopen bugs.  */
+
+#include <stdio.h>
+#include <unistd.h>
+#include <fcntl.h>
+
+#undef assert
+#define assert(x) \
+  if (!(x)) \
+    { \
+      fputs ("test failed: " #x "\n", stderr); \
+      retval = 1; \
+      goto the_end; \
+    }
+
+char buffer[256];
+
+int
+main (int argc, char *argv[])
+{
+  char *name;
+  FILE *fp = NULL;
+  int retval = 0;
+  int fd;
+
+  name = tmpnam (NULL);
+  fp = fopen (name, "w");
+  assert (fp != NULL)
+  fputs ("foobar and baz", fp);
+  fclose (fp);
+  fp = NULL;
+
+  fd = open (name, O_RDONLY);
+  assert (fd != -1);
+  assert (lseek (fd, 5, SEEK_SET) == 5);
+  /* The file position indicator associated with the new stream is set to
+     the position indicated by the file offset associated with the file
+     descriptor.  */
+  fp = fdopen (fd, "r");
+  assert (fp != NULL);
+  assert (getc (fp) == 'r');
+  assert (getc (fp) == ' ');
+
+the_end:
+  if (fp != NULL)
+    fclose (fp);
+  unlink (name);
+
+  return retval;
+}
diff --git a/REORG.TODO/stdio-common/tst-ferror.c b/REORG.TODO/stdio-common/tst-ferror.c
new file mode 100644
index 0000000000..69592df048
--- /dev/null
+++ b/REORG.TODO/stdio-common/tst-ferror.c
@@ -0,0 +1,44 @@
+#include <stdio.h>
+
+static int
+do_test (void)
+{
+  char buf[100];
+  int result = 0;
+
+  if (ferror (stdin) != 0)
+    {
+      fputs ("error bit set for stdin at startup\n", stdout);
+      result = 1;
+    }
+  if (fgets (buf, sizeof buf, stdin) != buf)
+    {
+      fputs ("fgets with existing input has problem\n", stdout);
+      result = 1;
+    }
+  if (ferror (stdin) != 0)
+    {
+      fputs ("error bit set for stdin after setup\n", stdout);
+      result = 1;
+    }
+  if (fputc ('a', stdin) != EOF)
+    {
+      fputs ("fputc to stdin does not terminate with an error\n", stdout);
+      result = 1;
+    }
+  if (ferror (stdin) == 0)
+    {
+      fputs ("error bit not set for stdin after fputc\n", stdout);
+      result = 1;
+    }
+  clearerr (stdin);
+  if (ferror (stdin) != 0)
+    {
+      fputs ("error bit set for stdin after clearerr\n", stdout);
+      result = 1;
+    }
+  return result;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/stdio-common/tst-ferror.input b/REORG.TODO/stdio-common/tst-ferror.input
new file mode 100644
index 0000000000..484ba93ef5
--- /dev/null
+++ b/REORG.TODO/stdio-common/tst-ferror.input
@@ -0,0 +1 @@
+This is a test.
diff --git a/REORG.TODO/stdio-common/tst-fgets.c b/REORG.TODO/stdio-common/tst-fgets.c
new file mode 100644
index 0000000000..0aa9030e3a
--- /dev/null
+++ b/REORG.TODO/stdio-common/tst-fgets.c
@@ -0,0 +1,20 @@
+/* Derived from the test case in
+   http://sourceware.org/bugzilla/show_bug.cgi?id=713.  */
+#include <stdio.h>
+
+static int
+do_test (void)
+{
+  FILE *fp = fmemopen ((char *) "hello", 5, "r");
+  char buf[2];
+  char *bp = fgets (buf, sizeof (buf), fp);
+  printf ("fgets: %s\n", bp == buf ? "OK" : "ERROR");
+  int res = bp != buf;
+  bp = fgets_unlocked (buf, sizeof (buf), fp);
+  printf ("fgets_unlocked: %s\n", bp == buf ? "OK" : "ERROR");
+  res |= bp != buf;
+  return res;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/stdio-common/tst-fileno.c b/REORG.TODO/stdio-common/tst-fileno.c
new file mode 100644
index 0000000000..9a828f389f
--- /dev/null
+++ b/REORG.TODO/stdio-common/tst-fileno.c
@@ -0,0 +1,40 @@
+/* Copyright (C) 1994-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+static int
+check (const char *name, FILE *stream, int fd)
+{
+  int sfd = fileno (stream);
+  printf ("(fileno (%s) = %d) %c= %d\n", name, sfd,
+	  sfd == fd ? '=' : '!', fd);
+  return sfd != fd;
+}
+
+static int
+do_test (void)
+{
+  return (check ("stdin", stdin, STDIN_FILENO) ||
+	  check ("stdout", stdout, STDOUT_FILENO) ||
+	  check ("stderr", stderr, STDERR_FILENO));
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/stdio-common/tst-fmemopen.c b/REORG.TODO/stdio-common/tst-fmemopen.c
new file mode 100644
index 0000000000..0f90f40bdb
--- /dev/null
+++ b/REORG.TODO/stdio-common/tst-fmemopen.c
@@ -0,0 +1,165 @@
+/* basic fmemopen interface testing.
+   Copyright (C) 2014-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <sys/mman.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+
+static char *test_file;
+
+static void
+do_prepare (int argc, char *argv[])
+{
+  /* Construct the test file name based on ARGV[0], which will be
+     an absolute file name in the build directory.  Don't touch the
+     source directory, which might be read-only.  */
+  if (asprintf (&test_file, "%s.test", argv[0]) < 0)
+    {
+      puts ("asprintf failed\n");
+      exit (EXIT_FAILURE);
+    }
+}
+
+static int
+do_test (void)
+{
+  const char blah[] = "BLAH";
+  FILE *fp;
+  char *mmap_data;
+  int ch, fd;
+  struct stat fs;
+  const char *cp;
+
+  /* setup the physical file, and use it */
+  if ((fp = fopen (test_file, "w+")) == NULL)
+    return 1;
+  if (fwrite (blah, 1, strlen (blah), fp) != strlen (blah))
+    {
+      fclose (fp);
+      return 2;
+    }
+
+  rewind (fp);
+  printf ("file: ");
+  cp = blah;
+  while ((ch = getc (fp)) != EOF)
+    {
+      fputc (ch, stdout);
+      if (ch != *cp)
+	{
+	  printf ("\ncharacter %td: '%c' instead of '%c'\n",
+		  cp - blah, ch, *cp);
+	  fclose (fp);
+	  return 1;
+	}
+      ++cp;
+    }
+  fputc ('\n', stdout);
+  if (ferror (fp))
+    {
+      puts ("fp: error");
+      fclose (fp);
+      return 1;
+    }
+  if (feof (fp))
+    printf ("fp: EOF\n");
+  else
+    {
+      puts ("not EOF");
+      fclose (fp);
+      return 1;
+    }
+  fclose (fp);
+
+  /* Now, mmap the file into a buffer, and do that too */
+  if ((fd = open (test_file, O_RDONLY)) == -1)
+    {
+      printf ("open (%s, O_RDONLY) failed\n", test_file);
+      return 3;
+    }
+  if (fstat (fd, &fs) == -1)
+    {
+      printf ("stat (%i)\n", fd);
+      return 4;
+    }
+
+  if ((mmap_data = (char *) mmap (NULL, fs.st_size, PROT_READ,
+				  MAP_SHARED, fd, 0)) == MAP_FAILED)
+    {
+      printf ("mmap (NULL, %zu, PROT_READ, MAP_SHARED, %i, 0) failed\n",
+	      (size_t) fs.st_size, fd);
+      return 5;
+    }
+
+  if ((fp = fmemopen (mmap_data, fs.st_size, "r")) == NULL)
+    {
+      printf ("fmemopen (%p, %zu) failed\n", mmap_data, (size_t) fs.st_size);
+      return 1;
+    }
+
+  printf ("mem: ");
+  cp = blah;
+  while ((ch = getc (fp)) != EOF)
+    {
+      fputc (ch, stdout);
+      if (ch != *cp)
+	{
+	  printf ("%td character: '%c' instead of '%c'\n",
+		  cp - blah, ch, *cp);
+	  fclose (fp);
+	  return 1;
+	}
+      ++cp;
+    }
+
+  fputc ('\n', stdout);
+
+  if (ferror (fp))
+    {
+      puts ("fp: error");
+      fclose (fp);
+      return 1;
+    }
+  if (feof (fp))
+    printf ("fp: EOF\n");
+  else
+    {
+      puts ("not EOF");
+      fclose (fp);
+      return 1;
+    }
+
+  fclose (fp);
+
+  munmap (mmap_data, fs.st_size);
+
+  unlink (test_file);
+  free (test_file);
+
+  return 0;
+}
+
+#define PREPARE(argc, argv) do_prepare (argc, argv)
+#define TEST_FUNCTION       do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/stdio-common/tst-fmemopen2.c b/REORG.TODO/stdio-common/tst-fmemopen2.c
new file mode 100644
index 0000000000..891b7ca111
--- /dev/null
+++ b/REORG.TODO/stdio-common/tst-fmemopen2.c
@@ -0,0 +1,262 @@
+/* fmemopen tests.
+   Copyright (C) 2015-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+
+#include <assert.h>
+#include <stdio.h>
+#include <string.h>
+#include <sys/types.h>
+#include <stdint.h>
+#include <errno.h>
+
+/* Check fmemopen with user provided buffer open for write.  */
+static int
+do_test_with_buffer (void)
+{
+  int result = 0;
+  char buf[100];
+  const size_t nbuf = sizeof (buf);
+
+  FILE *fp = fmemopen (buf, nbuf, "w");
+  if (fp == NULL)
+    {
+      printf ("FAIL: fmemopen failed (%s)\n", __FUNCTION__);
+      return 1;
+    }
+
+  /* Default write operation, check if file position is correct after it.  */
+  static const char str[] = "hello world";
+  const size_t nstr = sizeof (str) - 1;
+  fputs (str, fp);
+  off_t o = ftello (fp);
+  if (o != nstr)
+    {
+      printf ("FAIL: first ftello returned %jd, expected %zu\n",
+	      (intmax_t)o, nstr);
+      result = 1;
+    }
+
+  /* Rewind stream and seek tests, the position size should be equal to
+     buffer size provided in open function.  */
+  rewind (fp);
+  o = ftello (fp);
+  if (o != 0)
+    {
+      printf ("FAIL: second ftello returned %jd, expected 0\n",
+	      (intmax_t)o);
+      result = 1;
+    }
+  if (fseeko (fp, 0, SEEK_END) != 0)
+    {
+      printf ("FAIL: fseeko failed\n");
+      result = 1;
+    }
+  o = ftello (fp);
+  if (o != nstr)
+    {
+      printf ("FAIL: third ftello returned %jd, expected %zu\n",
+	      (intmax_t)o, nstr);
+      result = 1;
+    }
+
+  /* Rewind the stream and recheck by using a shorter string.  */
+  rewind (fp);
+  static const char str2[] = "just hello";
+  const size_t nstr2 = sizeof (str2) - 1;
+  assert (nstr2 < nstr);
+  fputs (str2, fp);
+  o = ftello (fp);
+  if (o != nstr2)
+    {
+      printf ("FAIL: fourth ftello returned %jd, expected %zu\n",
+	      (intmax_t)o, nstr2);
+      result = 1;
+    }
+  fclose (fp);
+
+  /* Again, but now with a larger string.  */
+  static const char str3[] = "just hellod";
+  if (strcmp (buf, str3) != 0)
+    {
+      printf ("FAIL: final string is \"%s\", expected \"%s\"\n",
+              buf, str3);
+      result = 1;
+    }
+  return result;
+}
+
+/* Check fmemopen without user provided buffer open for write.  */
+static int
+do_test_without_buffer (void)
+{
+  int result = 0;
+  const size_t nbuf = 100;
+
+  FILE *fp = fmemopen (NULL, nbuf, "w");
+  if (fp == NULL)
+    {
+      printf ("FAIL: fmemopen failed (%s)\n", __FUNCTION__);
+      return 1;
+    }
+
+  static const char str[] = "hello world";
+  const size_t nstr = sizeof (str) - 1;
+
+  /* Default write operation, check if file position is correct after it.  */
+  fputs (str, fp);
+  off_t o = ftello (fp);
+  if (o != nstr)
+    {
+      printf ("FAIL: first ftello returned %jd, expected %zu\n",
+	      (intmax_t) o, nstr);
+      result = 1;
+    }
+  if (fseeko (fp, 0, SEEK_END) != 0)
+    {
+      printf ("FAIL: fseeko failed\n");
+      result = 1;
+    }
+  o = ftello (fp);
+  if (o != nstr)
+    {
+      printf ("FAIL: second ftello returned %jd, expected %zu\n",
+	      (intmax_t) o, nbuf);
+      result = 1;
+    }
+
+  /* Rewind the stream and recheck by using a shorter string.  */
+  rewind (fp);
+  static const char str2[] = "just hello";
+  const size_t nstr2 = sizeof (str2) - 1;
+  assert (nstr2 < nstr);
+  fputs (str2, fp);
+  o = ftello (fp);
+  if (o != nstr2)
+    {
+      printf ("FAIL: third ftello returned %jd, expected %zu\n",
+	      (intmax_t) o, nstr2);
+      result = 1;
+    }
+  fclose (fp);
+
+  return result;
+}
+
+/* Check fmemopen with a buffer lenght of zero.  */
+static int
+do_test_length_zero (void)
+{
+  int result = 0;
+  FILE *fp;
+#define BUFCONTENTS "testing buffer"
+  char buf[100] = BUFCONTENTS;
+  const size_t nbuf = 0;
+  int r;
+
+  fp = fmemopen (buf, nbuf, "r");
+  if (fp == NULL)
+    {
+      printf ("FAIL: fmemopen failed (%s)\n", __FUNCTION__);
+      return 1;
+    }
+
+  /* Reading any data on a zero-length buffer should return EOF.  */
+  if ((r = fgetc (fp)) != EOF)
+    {
+      printf ("FAIL: fgetc on a zero-length returned: %d\n", r);
+      result = 1;
+    }
+  off_t o = ftello (fp);
+  if (o != 0)
+    {
+      printf ("FAIL: first ftello returned %jd, expected 0\n",
+	      (intmax_t) o);
+      result = 1;
+    }
+  fclose (fp);
+
+  /* Writing any data shall start at current position and shall not pass
+     current buffer size beyond the size in fmemopen call.  */
+  fp = fmemopen (buf, nbuf, "w");
+  if (fp == NULL)
+    {
+      printf ("FAIL: second fmemopen failed (%s)\n", __FUNCTION__);
+      return 1;
+    }
+
+  static const char str[] = "hello world";
+  /* Because of buffering, the fputs call itself will not fail. However the
+     final buffer should be not changed because length 0 was passed to the
+     fmemopen call.  */
+  fputs (str, fp);
+  r = 0;
+  errno = 0;
+  if (fflush (fp) != EOF)
+    {
+      printf ("FAIL: fflush did not return EOF\n");
+      fclose (fp);
+      return 1;
+    }
+  if (errno != ENOSPC)
+    {
+      printf ("FAIL: errno is %i (expected ENOSPC)\n", errno);
+      fclose (fp);
+      return 1;
+    }
+
+  fclose (fp);
+
+  if (strcmp (buf, BUFCONTENTS) != 0)
+    {
+      printf ("FAIL: strcmp (%s, %s) failed\n", buf, BUFCONTENTS);
+      return 1;
+    }
+
+  /* Different than 'w' mode, 'w+' truncates the buffer.  */
+  fp = fmemopen (buf, nbuf, "w+");
+  if (fp == NULL)
+    {
+      printf ("FAIL: third fmemopen failed (%s)\n", __FUNCTION__);
+      return 1;
+    }
+
+  fclose (fp);
+
+  if (strcmp (buf, "") != 0)
+    {
+      printf ("FAIL: strcmp (%s, \"\") failed\n", buf);
+      return 1;
+    }
+
+  return result;
+}
+
+static int
+do_test (void)
+{
+  int ret = 0;
+
+  ret += do_test_with_buffer ();
+  ret += do_test_without_buffer ();
+  ret += do_test_length_zero ();
+
+  return ret;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/stdio-common/tst-fmemopen3.c b/REORG.TODO/stdio-common/tst-fmemopen3.c
new file mode 100644
index 0000000000..f38b288137
--- /dev/null
+++ b/REORG.TODO/stdio-common/tst-fmemopen3.c
@@ -0,0 +1,322 @@
+/* fmemopen tests for append and read mode.
+   Copyright (C) 2015-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <assert.h>
+#include <stdio.h>
+#include <string.h>
+#include <sys/types.h>
+
+static void
+print_buffer (const char *s, size_t n)
+{
+  size_t i;
+  printf ("{");
+  for (i=0; i<n; ++i)
+    {
+      printf ("0x%02X (%c)", s[i], s[i]);
+      if (i != n)
+	printf (", ");
+    }
+}
+
+/* This test check append mode initial position (a/a+) based on POSIX defition
+   (BZ#6544 and BZ#13151).  */
+static int
+do_test_write_append (const char *mode)
+{
+  char buf[32] = "testing buffer";
+  char exp[32] = "testing bufferXX";
+
+  FILE *fp = fmemopen (buf, sizeof (buf), mode);
+
+  fflush (fp);
+  fprintf (fp, "X");
+  fseek (fp, 0, SEEK_SET);
+  fprintf (fp, "X");
+  fclose (fp);
+
+  if (strcmp (buf, exp) != 0)
+    {
+      printf ("%s: check failed: %s != %s\n", __FUNCTION__, buf, exp);
+      return 1;
+    }
+
+  return 0;
+}
+
+/* This test check append mode initial position (a/a+) based on POSIX defition
+   (BZ#6544 and BZ#13151) for buffer without null byte end.  */
+static int
+do_test_write_append_without_null (const char *mode)
+{
+  char buf[] = { 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55 };
+  char exp[] = { 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55 };
+
+  /* If '\0' is not found in buffer, POSIX states that SEEK_SET should be
+     the size argument.  */
+  FILE *fp = fmemopen (buf, sizeof (buf) - 2, "a");
+
+  fflush (fp);
+  fputc (0x70, fp);
+  fseek (fp, 0, SEEK_SET);
+  fputc (0x70, fp);
+  fputc (0x70, fp);
+  fclose (fp);
+
+  /* POSIX also states that a write operation on the stream shall not advance
+     the current buffer size beyond the size given in fmemopen, so the string
+     should be same.  */
+  if (memcmp (buf, exp, sizeof (buf)) != 0)
+    {
+      printf ("%s: check failed: ", __FUNCTION__);
+      print_buffer (buf, sizeof (buf));
+      printf ("!= ");
+      print_buffer (exp, sizeof (exp));
+      printf ("\n");
+      return 1;
+    }
+
+  return 0;
+}
+
+/* This test check for initial position and feek value for fmemopen objects
+   opened with append mode.  */
+static int
+do_test_read_append (void)
+{
+  char buf[32] = "testing buffer";
+  size_t buflen = strlen (buf);
+  long fpos;
+
+  /* POSIX defines for 'a+' the initial position is the first null byte.  */
+  FILE *fp = fmemopen (buf, sizeof (buf), "a+");
+
+  fpos = ftell (fp);
+  if (fpos != buflen)
+    {
+      printf ("%s: ftell|SEEK_SET (fp) %li != strlen (%s) %zu\n",
+	      __FUNCTION__, fpos, buf, buflen);
+      fclose (fp);
+      return 1;
+    }
+
+  fseek (fp, 0, SEEK_END);
+
+  if (fpos != buflen)
+    {
+      printf ("%s: ftell|SEEK_END (fp) %li != strlen (%s) %zu\n",
+	      __FUNCTION__, fpos, buf, buflen);
+      fclose (fp);
+      return 1;
+    }
+  fclose (fp);
+
+  /* Check if attempting to read past the current size, defined as strlen (buf)
+     yield an EOF.  */
+  fp = fmemopen (buf, sizeof (buf), "a+");
+  if (getc(fp) != EOF)
+    {
+      printf ("%s: getc(fp) != EOF\n", __FUNCTION__);
+      fclose (fp);
+      return -1;
+    }
+
+  fclose (fp);
+
+  return 0;
+}
+
+/* This test check for fseek (SEEK_END) using negative offsets (BZ#14292).  The
+   starting position of descriptor is different base on the opening mode.  */
+static int
+do_test_read_seek_neg (const char *mode, const char *expected)
+{
+  char buf[] = "abcdefghijklmnopqrstuvxz0123456789";
+  char tmp[10];
+  size_t tmps = sizeof (tmps);
+  long offset = -11;
+
+  FILE *fp = fmemopen (buf, sizeof (buf), mode);
+  fseek (fp, offset, SEEK_END);
+  fread (tmp, tmps, 1, fp);
+
+  if (memcmp (tmp, expected, tmps) != 0)
+    {
+      printf ("%s: fmemopen(%s) - fseek (fp, %li, SEEK_END):\n",
+	      __FUNCTION__, mode, offset);
+      printf ("  returned: ");
+      print_buffer (tmp, tmps);
+      printf ("\n");
+      printf ("  expected: ");
+      print_buffer (expected, tmps);
+      printf ("\n");
+      return 1;
+    }
+
+  fclose (fp);
+
+  return 0;
+}
+
+static int
+do_test_read_seek_negative (void)
+{
+  int ret = 0;
+
+  /* 'r' and 'w' modes defines the initial position at the buffer start and
+     seek with SEEK_END shall seek relative to its size give in fmemopen
+     call.  The expected tmp result is 0 to 9 *without* the ending null  */
+  ret += do_test_read_seek_neg ("r", "0123456789");
+  /* 'a+' mode sets the initial position at the first null byte in buffer and
+    SEEK_END shall seek relative to its size as well.  The expected result is
+    z012345678, since SEEK_END plus a+ start at '\0', not size.  */
+  ret += do_test_read_seek_neg ("a+", "z012345678");
+
+  return ret;
+}
+
+static int
+do_test_write_append_2 (const char *str)
+{
+  char buf[10];
+  size_t strn = strlen (str);
+  strcpy (buf, str);
+
+  FILE *fp = fmemopen (buf, sizeof (buf), "a+");
+  size_t r = ftell (fp);
+  size_t e = strlen (buf);
+  if (r != e)
+    {
+      printf ("%s: ftell returned %zu, expected %zu\n", __FUNCTION__, r, e);
+      return 1;
+    }
+
+  if (fseek (fp, 0, SEEK_SET) == -1)
+    {
+      printf ("%s: fseek returned -1\n", __FUNCTION__);
+      return 1;
+    }
+
+  int gr;
+  for (int i=0; i<strn; ++i)
+    {
+      if ((gr = getc (fp)) != str[i])
+	{
+	  printf ("%s: getc failed returned %d, expected %d\n", __FUNCTION__,
+		  gr, str[i]);
+	  return 1;
+        }
+    }
+  if ((gr = getc (fp)) != EOF)
+    {
+      printf ("%s: getc failed returned %d, expected EOF\n", __FUNCTION__,
+	      gr);
+      return 1;
+    }
+
+  if (fseek (fp, e+1, SEEK_SET) == -1)
+    {
+      printf ("%s: fseek returned -1\n", __FUNCTION__);
+      return 1;
+    }
+
+  if ((r = ftell (fp)) != e+1)
+    {
+      printf ("%s: ftell returned %zu, expected %zu\n", __FUNCTION__, r, e+1);
+      return 1;
+    }
+
+  if ((gr = getc (fp)) != EOF)
+    {
+      printf ("%s: getc failed returned %i\n", __FUNCTION__, gr);
+      return 1;
+    }
+
+  /* Check if internal position is not changed with a getc returning EOF.  */
+  if ((r = ftell (fp)) != e+1)
+    {
+      printf ("%s: ftell returned %zu, expected %zu\n", __FUNCTION__, r, e+1);
+      return 1;
+    }
+
+  if (fseek (fp, 0, SEEK_CUR) == -1)
+    {
+      printf ("%s: fseek returned -1\n", __FUNCTION__);
+      return 1;
+    }
+
+  /* This should be overwritten by fprintf + fflush.  */
+  buf[e+2] = 'X';
+
+  if ((r = fprintf (fp, "%d", 101)) != 3)
+    {
+      printf ("%s: fprintf returned %zu, expected %d\n", __FUNCTION__, r, 3);
+      return 1;
+    }
+
+  fflush (fp);
+
+  /* Check if internal position is changed by 3 (strlen of '101').  */
+  if ((r = ftell (fp)) != e+3)
+    {
+      printf ("%s: ftell returned %zu, expected %zu\n", __FUNCTION__, r, e+3);
+      return 1;
+    }
+
+  char exp[20];
+  sprintf (exp, "%s%d", str,  101);
+  if (memcmp (buf, exp, strlen (exp)) != 0)
+    {
+      printf ("%s: check failed:", __FUNCTION__);
+      printf ("\nexpected: ");
+      print_buffer (buf, sizeof (buf));
+      printf ("\nbuffer:   ");
+      print_buffer (exp, sizeof (exp));
+      printf ("\n");
+      return 1;
+    }
+
+  fclose(fp);
+
+  return 0;
+}
+
+static int
+do_test (void)
+{
+  int ret = 0;
+
+  ret += do_test_write_append ("a");
+  ret += do_test_write_append_without_null ("a");
+  ret += do_test_write_append ("a+");
+  ret += do_test_write_append_without_null ("a+");
+
+  ret += do_test_read_append ();
+
+  ret += do_test_read_seek_negative ();
+
+  /* First test plus addend will fit in the define buffer of size 10.  */
+  ret += do_test_write_append_2 ("test");
+  /* The second test will also fit, but not the final '\0'.  */
+  ret += do_test_write_append_2 ("testing");
+
+  return ret;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/stdio-common/tst-fmemopen4.c b/REORG.TODO/stdio-common/tst-fmemopen4.c
new file mode 100644
index 0000000000..a25c8c0c17
--- /dev/null
+++ b/REORG.TODO/stdio-common/tst-fmemopen4.c
@@ -0,0 +1,71 @@
+/* fmemopen tests for BZ#1930 and BZ#20005.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <assert.h>
+#include <stdio.h>
+#include <string.h>
+#include <sys/types.h>
+
+
+/* Check if fflush does not reset the file position.  */
+static int
+do_test (void)
+{
+  char buffer[500] = "x";
+
+  FILE *stream = fmemopen (buffer, sizeof (buffer), "r+");
+  if (stream == NULL)
+    {
+      printf ("error: fmemopen could not open stream\n");
+      return 1;
+    }
+
+  const char test[] = "test";
+
+  size_t r = fwrite (test, sizeof (char), sizeof (test), stream);
+  if (r != sizeof (test))
+    {
+      printf ("error: fwrite returned %zu, expected %zu\n", r, sizeof(test));
+      return 1;
+    }
+
+  r = ftell (stream);
+  if (r != sizeof (test))
+    {
+      printf ("error: ftell return %zu, expected %zu\n", r, sizeof(test));
+      return 1;
+    }
+
+  if (fflush (stream) != 0)
+    {
+      printf ("error: fflush failed\n");
+      return 1;
+    }
+
+  r = ftell (stream);
+  if (r != sizeof (test))
+    {
+      printf ("error: ftell return %zu, expected %zu\n", r, sizeof(test));
+      return 1;
+    }
+
+  return 0;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/stdio-common/tst-fphex-wide.c b/REORG.TODO/stdio-common/tst-fphex-wide.c
new file mode 100644
index 0000000000..ff63c1dac7
--- /dev/null
+++ b/REORG.TODO/stdio-common/tst-fphex-wide.c
@@ -0,0 +1,24 @@
+/* Test program for %a wprintf formats.
+   This file is part of the GNU C Library.
+   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Contributed by Marek Polacek <polacek@redhat.com>, 2012.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <wchar.h>
+
+#define WIDE 1
+
+#include "tst-fphex.c"
diff --git a/REORG.TODO/stdio-common/tst-fphex.c b/REORG.TODO/stdio-common/tst-fphex.c
new file mode 100644
index 0000000000..c2e8961d62
--- /dev/null
+++ b/REORG.TODO/stdio-common/tst-fphex.c
@@ -0,0 +1,72 @@
+/* Test program for %a printf formats.  */
+
+#include <stdio.h>
+#include <string.h>
+
+#ifndef WIDE
+# define STR_LEN strlen
+# define STR_CMP strcmp
+# define SPRINT snprintf
+# define CHAR_T char
+# define PRINT printf
+# define L_(Str) Str
+# define S "%s"
+#else
+# define STR_LEN wcslen
+# define SPRINT swprintf
+# define STR_CMP wcscmp
+# define CHAR_T wchar_t
+# define PRINT wprintf
+# define L_(Str) L##Str
+# define S "%ls"
+#endif
+
+struct testcase
+{
+  double value;
+  const CHAR_T *fmt;
+  const CHAR_T *expect;
+};
+
+static const struct testcase testcases[] =
+  {
+    { 0x0.0030p+0, L_("%a"),		L_("0x1.8p-11") },
+    { 0x0.0040p+0, L_("%a"),		L_("0x1p-10") },
+    { 0x0.0030p+0, L_("%040a"),		L_("0x00000000000000000000000000000001.8p-11") },
+    { 0x0.0040p+0, L_("%040a"),		L_("0x0000000000000000000000000000000001p-10") },
+    { 0x0.0040p+0, L_("%40a"),		L_("                                 0x1p-10") },
+    { 0x0.0040p+0, L_("%#40a"),		L_("                                0x1.p-10") },
+    { 0x0.0040p+0, L_("%-40a"),		L_("0x1p-10                                 ") },
+    { 0x0.0040p+0, L_("%#-40a"),	L_("0x1.p-10                                ") },
+    { 0x0.0030p+0, L_("%040e"),		L_("00000000000000000000000000007.324219e-04") },
+    { 0x0.0040p+0, L_("%040e"),		L_("00000000000000000000000000009.765625e-04") },
+  };
+
+
+static int
+do_test (void)
+{
+  const struct testcase *t;
+  int result = 0;
+
+  for (t = testcases;
+       t < &testcases[sizeof testcases / sizeof testcases[0]];
+       ++t)
+    {
+      CHAR_T buf[1024];
+      int n = SPRINT (buf, sizeof buf / sizeof (buf[0]), t->fmt, t->value);
+      if (n != STR_LEN (t->expect) || STR_CMP (buf, t->expect) != 0)
+	{
+	  PRINT (L_("" S "\tExpected \"" S "\" (%Zu)\n\tGot      \""
+		    S "\" (%d, %Zu)\n"),
+		 t->fmt, t->expect, STR_LEN (t->expect),
+		 buf, n, STR_LEN (buf));
+	  result = 1;
+	}
+    }
+
+  return result;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/stdio-common/tst-fseek.c b/REORG.TODO/stdio-common/tst-fseek.c
new file mode 100644
index 0000000000..92fe06f6d4
--- /dev/null
+++ b/REORG.TODO/stdio-common/tst-fseek.c
@@ -0,0 +1,482 @@
+/* Tests of fseek and fseeko.
+   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@redhat.com>, 2000.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <error.h>
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <time.h>
+#include <sys/stat.h>
+
+
+static int
+do_test (void)
+{
+  const char *tmpdir;
+  char *fname;
+  int fd;
+  FILE *fp;
+  const char outstr[] = "hello world!\n";
+  char strbuf[sizeof outstr];
+  char buf[200];
+  struct stat64 st1;
+  struct stat64 st2;
+  int result = 0;
+
+  tmpdir = getenv ("TMPDIR");
+  if (tmpdir == NULL || tmpdir[0] == '\0')
+    tmpdir = "/tmp";
+
+  asprintf (&fname, "%s/tst-fseek.XXXXXX", tmpdir);
+  if (fname == NULL)
+    error (EXIT_FAILURE, errno, "cannot generate name for temporary file");
+
+  /* Create a temporary file.   */
+  fd = mkstemp (fname);
+  if (fd == -1)
+    error (EXIT_FAILURE, errno, "cannot open temporary file");
+
+  fp = fdopen (fd, "w+");
+  if (fp == NULL)
+    error (EXIT_FAILURE, errno, "cannot get FILE for temporary file");
+
+  setbuffer (fp, strbuf, sizeof (outstr) -1);
+
+  if (fwrite (outstr, sizeof (outstr) - 1, 1, fp) != 1)
+    {
+      printf ("%d: write error\n", __LINE__);
+      result = 1;
+      goto out;
+    }
+
+  /* The EOF flag must be reset.  */
+  if (fgetc (fp) != EOF)
+    {
+      printf ("%d: managed to read at end of file\n", __LINE__);
+      result = 1;
+    }
+  else if (! feof (fp))
+    {
+      printf ("%d: EOF flag not set\n", __LINE__);
+      result = 1;
+    }
+  if (fseek (fp, 0, SEEK_CUR) != 0)
+    {
+      printf ("%d: fseek(fp, 0, SEEK_CUR) failed\n", __LINE__);
+      result = 1;
+    }
+  else if (feof (fp))
+    {
+      printf ("%d: fseek() didn't reset EOF flag\n", __LINE__);
+      result = 1;
+    }
+
+  /* Do the same for fseeko().  */
+    if (fgetc (fp) != EOF)
+    {
+      printf ("%d: managed to read at end of file\n", __LINE__);
+      result = 1;
+    }
+  else if (! feof (fp))
+    {
+      printf ("%d: EOF flag not set\n", __LINE__);
+      result = 1;
+    }
+  if (fseeko (fp, 0, SEEK_CUR) != 0)
+    {
+      printf ("%d: fseek(fp, 0, SEEK_CUR) failed\n", __LINE__);
+      result = 1;
+    }
+  else if (feof (fp))
+    {
+      printf ("%d: fseek() didn't reset EOF flag\n", __LINE__);
+      result = 1;
+    }
+
+  /* Go back to the beginning of the file: absolute.  */
+  if (fseek (fp, 0, SEEK_SET) != 0)
+    {
+      printf ("%d: fseek(fp, 0, SEEK_SET) failed\n", __LINE__);
+      result = 1;
+    }
+  else if (fflush (fp) != 0)
+    {
+      printf ("%d: fflush() failed\n", __LINE__);
+      result = 1;
+    }
+  else if (lseek (fd, 0, SEEK_CUR) != 0)
+    {
+      printf ("%d: lseek() returned different position\n", __LINE__);
+      result = 1;
+    }
+  else if (fread (buf, sizeof (outstr) - 1, 1, fp) != 1)
+    {
+      printf ("%d: fread() failed\n", __LINE__);
+      result = 1;
+    }
+  else if (memcmp (buf, outstr, sizeof (outstr) - 1) != 0)
+    {
+      printf ("%d: content after fseek(,,SEEK_SET) wrong\n", __LINE__);
+      result = 1;
+    }
+
+  /* Now with fseeko.  */
+  if (fseeko (fp, 0, SEEK_SET) != 0)
+    {
+      printf ("%d: fseeko(fp, 0, SEEK_SET) failed\n", __LINE__);
+      result = 1;
+    }
+  else if (fflush (fp) != 0)
+    {
+      printf ("%d: fflush() failed\n", __LINE__);
+      result = 1;
+    }
+  else if (lseek (fd, 0, SEEK_CUR) != 0)
+    {
+      printf ("%d: lseek() returned different position\n", __LINE__);
+      result = 1;
+    }
+  else if (fread (buf, sizeof (outstr) - 1, 1, fp) != 1)
+    {
+      printf ("%d: fread() failed\n", __LINE__);
+      result = 1;
+    }
+  else if (memcmp (buf, outstr, sizeof (outstr) - 1) != 0)
+    {
+      printf ("%d: content after fseeko(,,SEEK_SET) wrong\n", __LINE__);
+      result = 1;
+    }
+
+  /* Go back to the beginning of the file: relative.  */
+  if (fseek (fp, -((int) sizeof (outstr) - 1), SEEK_CUR) != 0)
+    {
+      printf ("%d: fseek(fp, 0, SEEK_SET) failed\n", __LINE__);
+      result = 1;
+    }
+  else if (fflush (fp) != 0)
+    {
+      printf ("%d: fflush() failed\n", __LINE__);
+      result = 1;
+    }
+  else if (lseek (fd, 0, SEEK_CUR) != 0)
+    {
+      printf ("%d: lseek() returned different position\n", __LINE__);
+      result = 1;
+    }
+  else if (fread (buf, sizeof (outstr) - 1, 1, fp) != 1)
+    {
+      printf ("%d: fread() failed\n", __LINE__);
+      result = 1;
+    }
+  else if (memcmp (buf, outstr, sizeof (outstr) - 1) != 0)
+    {
+      printf ("%d: content after fseek(,,SEEK_SET) wrong\n", __LINE__);
+      result = 1;
+    }
+
+  /* Now with fseeko.  */
+  if (fseeko (fp, -((int) sizeof (outstr) - 1), SEEK_CUR) != 0)
+    {
+      printf ("%d: fseeko(fp, 0, SEEK_SET) failed\n", __LINE__);
+      result = 1;
+    }
+  else if (fflush (fp) != 0)
+    {
+      printf ("%d: fflush() failed\n", __LINE__);
+      result = 1;
+    }
+  else if (lseek (fd, 0, SEEK_CUR) != 0)
+    {
+      printf ("%d: lseek() returned different position\n", __LINE__);
+      result = 1;
+    }
+  else if (fread (buf, sizeof (outstr) - 1, 1, fp) != 1)
+    {
+      printf ("%d: fread() failed\n", __LINE__);
+      result = 1;
+    }
+  else if (memcmp (buf, outstr, sizeof (outstr) - 1) != 0)
+    {
+      printf ("%d: content after fseeko(,,SEEK_SET) wrong\n", __LINE__);
+      result = 1;
+    }
+
+  /* Go back to the beginning of the file: from the end.  */
+  if (fseek (fp, -((int) sizeof (outstr) - 1), SEEK_END) != 0)
+    {
+      printf ("%d: fseek(fp, 0, SEEK_SET) failed\n", __LINE__);
+      result = 1;
+    }
+  else if (fflush (fp) != 0)
+    {
+      printf ("%d: fflush() failed\n", __LINE__);
+      result = 1;
+    }
+  else if (lseek (fd, 0, SEEK_CUR) != 0)
+    {
+      printf ("%d: lseek() returned different position\n", __LINE__);
+      result = 1;
+    }
+  else if (fread (buf, sizeof (outstr) - 1, 1, fp) != 1)
+    {
+      printf ("%d: fread() failed\n", __LINE__);
+      result = 1;
+    }
+  else if (memcmp (buf, outstr, sizeof (outstr) - 1) != 0)
+    {
+      printf ("%d: content after fseek(,,SEEK_SET) wrong\n", __LINE__);
+      result = 1;
+    }
+
+  /* Now with fseeko.  */
+  if (fseeko (fp, -((int) sizeof (outstr) - 1), SEEK_END) != 0)
+    {
+      printf ("%d: fseeko(fp, 0, SEEK_SET) failed\n", __LINE__);
+      result = 1;
+    }
+  else if (fflush (fp) != 0)
+    {
+      printf ("%d: fflush() failed\n", __LINE__);
+      result = 1;
+    }
+  else if (lseek (fd, 0, SEEK_CUR) != 0)
+    {
+      printf ("%d: lseek() returned different position\n", __LINE__);
+      result = 1;
+    }
+  else if (fread (buf, sizeof (outstr) - 1, 1, fp) != 1)
+    {
+      printf ("%d: fread() failed\n", __LINE__);
+      result = 1;
+    }
+  else if (memcmp (buf, outstr, sizeof (outstr) - 1) != 0)
+    {
+      printf ("%d: content after fseeko(,,SEEK_SET) wrong\n", __LINE__);
+      result = 1;
+    }
+
+  if (fwrite (outstr, sizeof (outstr) - 1, 1, fp) != 1)
+    {
+      printf ("%d: write error 2\n", __LINE__);
+      result = 1;
+      goto out;
+    }
+
+  if (fwrite (outstr, sizeof (outstr) - 1, 1, fp) != 1)
+    {
+      printf ("%d: write error 3\n", __LINE__);
+      result = 1;
+      goto out;
+    }
+
+  if (fwrite (outstr, sizeof (outstr) - 1, 1, fp) != 1)
+    {
+      printf ("%d: write error 4\n", __LINE__);
+      result = 1;
+      goto out;
+    }
+
+  if (fwrite (outstr, sizeof (outstr) - 1, 1, fp) != 1)
+    {
+      printf ("%d: write error 5\n", __LINE__);
+      result = 1;
+      goto out;
+    }
+
+  if (fputc ('1', fp) == EOF || fputc ('2', fp) == EOF)
+    {
+      printf ("%d: cannot add characters at the end\n", __LINE__);
+      result = 1;
+      goto out;
+    }
+
+  /* Check the access time.  */
+  if (fstat64 (fd, &st1) < 0)
+    {
+      printf ("%d: fstat64() before fseeko() failed\n\n", __LINE__);
+      result = 1;
+    }
+  else
+    {
+      sleep (1);
+
+      if (fseek (fp, -(2 + 2 * (sizeof (outstr) - 1)), SEEK_CUR) != 0)
+	{
+	  printf ("%d: fseek() after write characters failed\n", __LINE__);
+	  result = 1;
+	  goto out;
+	}
+      else
+	{
+
+	  time_t t;
+	  /* Make sure the timestamp actually can be different.  */
+	  sleep (1);
+	  t = time (NULL);
+
+	  if (fstat64 (fd, &st2) < 0)
+	    {
+	      printf ("%d: fstat64() after fseeko() failed\n\n", __LINE__);
+	      result = 1;
+	    }
+	  if (st1.st_ctime >= t)
+	    {
+	      printf ("%d: st_ctime not updated\n", __LINE__);
+	      result = 1;
+	    }
+	  if (st1.st_mtime >= t)
+	    {
+	      printf ("%d: st_mtime not updated\n", __LINE__);
+	      result = 1;
+	    }
+	  if (st1.st_ctime >= st2.st_ctime)
+	    {
+	      printf ("%d: st_ctime not changed\n", __LINE__);
+	      result = 1;
+	    }
+	  if (st1.st_mtime >= st2.st_mtime)
+	    {
+	      printf ("%d: st_mtime not changed\n", __LINE__);
+	      result = 1;
+	    }
+	}
+    }
+
+  if (fread (buf, 1, 2 + 2 * (sizeof (outstr) - 1), fp)
+      != 2 + 2 * (sizeof (outstr) - 1))
+    {
+      printf ("%d: reading 2 records plus bits failed\n", __LINE__);
+      result = 1;
+    }
+  else if (memcmp (buf, outstr, sizeof (outstr) - 1) != 0
+	   || memcmp (&buf[sizeof (outstr) - 1], outstr,
+		      sizeof (outstr) - 1) != 0
+	   || buf[2 * (sizeof (outstr) - 1)] != '1'
+	   || buf[2 * (sizeof (outstr) - 1) + 1] != '2')
+    {
+      printf ("%d: reading records failed\n", __LINE__);
+      result = 1;
+    }
+  else if (ungetc ('9', fp) == EOF)
+    {
+      printf ("%d: ungetc() failed\n", __LINE__);
+      result = 1;
+    }
+  else if (fseek (fp, -(2 + 2 * (sizeof (outstr) - 1)), SEEK_END) != 0)
+    {
+      printf ("%d: fseek after ungetc failed\n", __LINE__);
+      result = 1;
+    }
+  else if (fread (buf, 1, 2 + 2 * (sizeof (outstr) - 1), fp)
+      != 2 + 2 * (sizeof (outstr) - 1))
+    {
+      printf ("%d: reading 2 records plus bits failed\n", __LINE__);
+      result = 1;
+    }
+  else if (memcmp (buf, outstr, sizeof (outstr) - 1) != 0
+	   || memcmp (&buf[sizeof (outstr) - 1], outstr,
+		      sizeof (outstr) - 1) != 0
+	   || buf[2 * (sizeof (outstr) - 1)] != '1')
+    {
+      printf ("%d: reading records for the second time failed\n", __LINE__);
+      result = 1;
+    }
+  else if (buf[2 * (sizeof (outstr) - 1) + 1] == '9')
+    {
+      printf ("%d: unget character not ignored\n", __LINE__);
+      result = 1;
+    }
+  else if (buf[2 * (sizeof (outstr) - 1) + 1] != '2')
+    {
+      printf ("%d: unget somehow changed character\n", __LINE__);
+      result = 1;
+    }
+
+  fclose (fp);
+
+  fp = fopen (fname, "r");
+  if (fp == NULL)
+    {
+      printf ("%d: fopen() failed\n\n", __LINE__);
+      result = 1;
+    }
+  else if (fstat64 (fileno (fp), &st1) < 0)
+    {
+      printf ("%d: fstat64() before fseeko() failed\n\n", __LINE__);
+      result = 1;
+    }
+  else if (fseeko (fp, 0, SEEK_END) != 0)
+    {
+      printf ("%d: fseeko(fp, 0, SEEK_END) failed\n", __LINE__);
+      result = 1;
+    }
+  else if (ftello (fp) != st1.st_size)
+    {
+      printf ("%d: fstat64 st_size %zd ftello %zd\n", __LINE__,
+	      (size_t) st1.st_size, (size_t) ftello (fp));
+      result = 1;
+    }
+  else
+    printf ("%d: SEEK_END works\n", __LINE__);
+  if (fp != NULL)
+    fclose (fp);
+
+  fp = fopen (fname, "r");
+  if (fp == NULL)
+    {
+      printf ("%d: fopen() failed\n\n", __LINE__);
+      result = 1;
+    }
+  else if (fstat64 (fileno (fp), &st1) < 0)
+    {
+      printf ("%d: fstat64() before fgetc() failed\n\n", __LINE__);
+      result = 1;
+    }
+  else if (fgetc (fp) == EOF)
+    {
+      printf ("%d: fgetc() before fseeko() failed\n\n", __LINE__);
+      result = 1;
+    }
+  else if (fseeko (fp, 0, SEEK_END) != 0)
+    {
+      printf ("%d: fseeko(fp, 0, SEEK_END) failed\n", __LINE__);
+      result = 1;
+    }
+  else if (ftello (fp) != st1.st_size)
+    {
+      printf ("%d: fstat64 st_size %zd ftello %zd\n", __LINE__,
+	      (size_t) st1.st_size, (size_t) ftello (fp));
+      result = 1;
+    }
+  else
+    printf ("%d: SEEK_END works\n", __LINE__);
+  if (fp != NULL)
+    fclose (fp);
+
+ out:
+  unlink (fname);
+
+  return result;
+}
+
+#define TIMEOUT 3
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/stdio-common/tst-fwrite.c b/REORG.TODO/stdio-common/tst-fwrite.c
new file mode 100644
index 0000000000..2986c8932a
--- /dev/null
+++ b/REORG.TODO/stdio-common/tst-fwrite.c
@@ -0,0 +1,70 @@
+/* Derived from the test case in
+   http://sourceware.org/bugzilla/show_bug.cgi?id=1078.  */
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+#define OUT_SIZE 10000
+
+
+static int fd;
+
+static void prepare (void);
+#define PREPARE(argc, argv) prepare ()
+
+static int do_test (void);
+#define TEST_FUNCTION do_test ()
+
+#include "../test-skeleton.c"
+
+
+static void
+prepare (void)
+{
+  fd = create_temp_file ("tst-fwrite.", NULL);
+  if (fd == -1)
+    {
+      puts ("cannot create temporary file");
+      exit (1);
+    }
+}
+
+
+static int
+do_test (void)
+{
+  FILE* f = fdopen (fd, "w+");
+  if (f == NULL) {
+    puts ("cannot create stream");
+    return 1;
+  }
+  puts ("Opened temp file");
+
+  if (fwrite ("a", 1, 1, f) != 1)
+    {
+      puts ("1st fwrite failed");
+      return 1;
+    }
+  puts ("Wrote a byte");
+  fflush (f);
+
+  char buffer[10000];
+  size_t i = fread (buffer, 1, sizeof (buffer), f);
+  printf ("Read %zu bytes\n", i);
+
+  for (i = 0; i < OUT_SIZE; i++)
+    {
+      if (fwrite ("n", 1, 1, f) != 1)
+	{
+	  printf ("fwrite in loop round %zu failed\n", i);
+	  return 1;
+	}
+
+      if ((i + 1) % 1000 == 0)
+	printf ("wrote %zu bytes ...\n", i + 1);
+    }
+
+  printf ("Wrote %i bytes [done]\n", OUT_SIZE);
+
+  return 0;
+}
diff --git a/REORG.TODO/stdio-common/tst-gets.c b/REORG.TODO/stdio-common/tst-gets.c
new file mode 100644
index 0000000000..9340c76f8a
--- /dev/null
+++ b/REORG.TODO/stdio-common/tst-gets.c
@@ -0,0 +1,71 @@
+/* Tests for gets.
+   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@redhat.com>, 2001.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+/* This file tests gets.  Force it to be declared.  */
+#include <features.h>
+#undef __GLIBC_USE_DEPRECATED_GETS
+#define __GLIBC_USE_DEPRECATED_GETS 1
+
+#include <stdio.h>
+#include <string.h>
+
+
+static int
+do_test (void)
+{
+  char buf[100];
+  int result = 0;
+
+  if (gets (buf) != buf)
+    {
+      printf ("gets: read error: %m\n");
+      result = 1;
+    }
+  else if (strchr (buf, '\n') != NULL)
+    {
+      printf ("newline not stripped: \"%s\"\n", buf);
+      result = 1;
+    }
+  else if (strcmp (buf, "foo") != 0)
+    {
+      printf ("read mismatch: expected \"%s\", got \"%s\"\n", "foo", buf);
+      result = 1;
+    }
+
+  if (gets (buf) != buf)
+    {
+      printf ("gets: read error: %m\n");
+      result = 1;
+    }
+  else if (strchr (buf, '\n') != NULL)
+    {
+      printf ("newline not stripped: \"%s\"\n", buf);
+      result = 1;
+    }
+  else if (strcmp (buf, "bar") != 0)
+    {
+      printf ("read mismatch: expected \"%s\", got \"%s\"\n", "bar", buf);
+      result = 1;
+    }
+
+  return result;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/stdio-common/tst-gets.input b/REORG.TODO/stdio-common/tst-gets.input
new file mode 100644
index 0000000000..3bd1f0e297
--- /dev/null
+++ b/REORG.TODO/stdio-common/tst-gets.input
@@ -0,0 +1,2 @@
+foo
+bar
diff --git a/REORG.TODO/stdio-common/tst-grouping.c b/REORG.TODO/stdio-common/tst-grouping.c
new file mode 100644
index 0000000000..e8f4b8c4db
--- /dev/null
+++ b/REORG.TODO/stdio-common/tst-grouping.c
@@ -0,0 +1,83 @@
+/* BZ 12394, test by Bruno Haible.  */
+#include <locale.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+
+static int
+do_test (void)
+{
+  char buf1[1000];
+  char buf2[1000];
+  int result = 0;
+
+  if (setlocale (LC_NUMERIC, "de_DE.UTF-8") == NULL)
+    return 1;
+
+  sprintf (buf1, "%'.2f",  999.996);
+  sprintf (buf2, "%'.2f", 1000.004);
+  printf ("%d: \"%s\" vs \"%s\"\n", __LINE__, buf1, buf2);
+  if (strcmp (buf1, buf2) != 0)
+    result |= 2;
+
+  sprintf (buf1, "%'.2f",  999999.996);
+  sprintf (buf2, "%'.2f", 1000000.004);
+  printf ("%d: \"%s\" vs \"%s\"\n", __LINE__, buf1, buf2);
+  if (strcmp (buf1, buf2) != 0)
+    result |= 2;
+
+  sprintf (buf1, "%'.2f",  999999999.996);
+  sprintf (buf2, "%'.2f", 1000000000.004);
+  printf ("%d: \"%s\" vs \"%s\"\n", __LINE__, buf1, buf2);
+  if (strcmp (buf1, buf2) != 0)
+    result |= 2;
+
+  sprintf (buf1, "%'.2f",  999999999999.996);
+  sprintf (buf2, "%'.2f", 1000000000000.004);
+  printf ("%d: \"%s\" vs \"%s\"\n", __LINE__, buf1, buf2);
+  if (strcmp (buf1, buf2) != 0)
+    result |= 2;
+
+  sprintf (buf1, "%'.2f",  999999999999999.996);
+  sprintf (buf2, "%'.2f", 1000000000000000.004);
+  printf ("%d: \"%s\" vs \"%s\"\n", __LINE__, buf1, buf2);
+  if (strcmp (buf1, buf2) != 0)
+    result |= 2;
+
+  sprintf (buf1, "%'.5g",  999.996);
+  sprintf (buf2, "%'.5g", 1000.004);
+  printf ("%d: \"%s\" vs \"%s\"\n", __LINE__, buf1, buf2);
+  if (strcmp (buf1, buf2) != 0)
+    result |= 4;
+
+  sprintf (buf1, "%'.4g",  9999.996);
+  sprintf (buf2, "%'.4g", 10000.004);
+  printf ("%d: \"%s\" vs \"%s\"\n", __LINE__, buf1, buf2);
+  if (strcmp (buf1, buf2) != 0)
+    result |= 8;
+
+  sprintf (buf1, "%'.5g",  99999.996);
+  sprintf (buf2, "%'.5g", 100000.004);
+  printf ("%d: \"%s\" vs \"%s\"\n", __LINE__, buf1, buf2);
+  if (strcmp (buf1, buf2) != 0)
+    result |= 8;
+
+  sprintf (buf1, "%'.6g",  999999.996);
+  sprintf (buf2, "%'.6g", 1000000.004);
+  printf ("%d: \"%s\" vs \"%s\"\n", __LINE__, buf1, buf2);
+  if (strcmp (buf1, buf2) != 0)
+    result |= 8;
+
+  sprintf (buf1, "%'.7g",  9999999.996);
+  sprintf (buf2, "%'.7g", 10000000.004);
+  printf ("%d: \"%s\" vs \"%s\"\n", __LINE__, buf1, buf2);
+  if (strcmp (buf1, buf2) != 0)
+    result |= 8;
+
+  return result;
+}
+
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/stdio-common/tst-long-dbl-fphex.c b/REORG.TODO/stdio-common/tst-long-dbl-fphex.c
new file mode 100644
index 0000000000..1170c74c4c
--- /dev/null
+++ b/REORG.TODO/stdio-common/tst-long-dbl-fphex.c
@@ -0,0 +1,53 @@
+/* This file is part of the GNU C Library.
+   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Contributed by Marek Polacek <polacek@redhat.com>, 2012.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <wchar.h>
+
+/* Prototype for our test function.  */
+static int do_test (void);
+
+static int
+do_test (void)
+{
+#ifndef NO_LONG_DOUBLE
+  int result = 0;
+  const long double x = 24.5;
+  wchar_t a[16];
+  swprintf (a, sizeof a / sizeof a[0], L"%La\n", x);
+  wchar_t A[16];
+  swprintf (A, sizeof A / sizeof A[0], L"%LA\n", x);
+
+  /* Here wprintf can return four valid variants.  We must accept all
+     of them.  */
+  result |= (wmemcmp (a, L"0xc.4p+1", 8) == 0
+	     && wmemcmp (A, L"0XC.4P+1", 8) == 0);
+  result |= (wmemcmp (a, L"0x3.1p+3", 8) == 0
+	     && wmemcmp (A, L"0X3.1P+3", 8) == 0);
+  result |= (wmemcmp (a, L"0x6.2p+2", 8) == 0
+	     && wmemcmp (A, L"0X6.2P+2", 8) == 0);
+  result |= (wmemcmp (a, L"0x1.88p+4", 8) == 0
+	     && wmemcmp (A, L"0X1.88P+4", 8) == 0);
+
+  return result != 1;
+#else
+  return 0;
+#endif
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/stdio-common/tst-obprintf.c b/REORG.TODO/stdio-common/tst-obprintf.c
new file mode 100644
index 0000000000..51515932ad
--- /dev/null
+++ b/REORG.TODO/stdio-common/tst-obprintf.c
@@ -0,0 +1,45 @@
+#include <mcheck.h>
+#include <obstack.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+
+static int
+do_test (void)
+{
+  struct obstack ob;
+  int n;
+
+  mcheck_pedantic (NULL);
+
+#define obstack_chunk_alloc malloc
+#define obstack_chunk_free free
+
+  obstack_init (&ob);
+
+  for (n = 0; n < 40000; ++n)
+    {
+      mcheck_check_all ();
+      obstack_printf (&ob, "%.*s%05d", 1 + n % 7, "foobarbaz", n);
+      if (n % 777 == 0)
+	obstack_finish (&ob);
+    }
+
+  /* Another loop where we finish all objects, each of size 1.  This will
+     manage to call `obstack_print' with all possible positions inside
+     an obstack chunk.  */
+  for (n = 0; n < 40000; ++n)
+    {
+      mcheck_check_all ();
+      obstack_printf (&ob, "%c", 'a' + n % 26);
+      obstack_finish (&ob);
+    }
+
+  /* And a final check.  */
+  mcheck_check_all ();
+
+  return 0;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/stdio-common/tst-perror.c b/REORG.TODO/stdio-common/tst-perror.c
new file mode 100644
index 0000000000..416b120b8d
--- /dev/null
+++ b/REORG.TODO/stdio-common/tst-perror.c
@@ -0,0 +1,157 @@
+/* Test of perror.
+   Contributed by Ulrich Drepper <drepper@redhat.com>, 2001.
+   To be used only for testing glibc.  */
+
+#include <errno.h>
+#include <error.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <wchar.h>
+
+
+#define MB_EXP \
+  "null mode test 1: Invalid or incomplete multibyte or wide character\n" \
+  "multibyte string\n" \
+  "<0 mode test: Invalid argument\n"
+#define MB_EXP_LEN (sizeof (MB_EXP) - 1)
+
+#define WC_EXP \
+  "null mode test 2: Invalid or incomplete multibyte or wide character\n" \
+  "wide string\n" \
+  ">0 mode test: Invalid argument\n"
+#define WC_EXP_LEN (sizeof (WC_EXP) - 1)
+
+
+static int
+do_test (void)
+{
+  int fd;
+  char fname[] = "/tmp/tst-perror.XXXXXX";
+  int result = 0;
+  char buf[200];
+  ssize_t n;
+
+  fd = mkstemp (fname);
+  if (fd == -1)
+    error (EXIT_FAILURE, errno, "cannot create temporary file");
+
+  /* Make sure the file gets removed.  */
+  unlink (fname);
+
+  fclose (stderr);
+
+  if (dup2 (fd, 2) == -1)
+    {
+      printf ("cannot create file descriptor 2: %m\n");
+      exit (EXIT_FAILURE);
+    }
+
+  stderr = fdopen (2, "w");
+  if (stderr == NULL)
+    {
+      printf ("fdopen failed: %m\n");
+      exit (EXIT_FAILURE);
+    }
+
+  if (fwide (stderr, 0) != 0)
+    {
+      printf ("stderr not initially in mode 0\n");
+      exit (EXIT_FAILURE);
+    }
+
+  errno = EILSEQ;
+  perror ("null mode test 1");
+
+  if (fwide (stderr, 0) != 0)
+    {
+      puts ("perror changed the mode from 0");
+      result = 1;
+    }
+
+  fputs ("multibyte string\n", stderr);
+
+  if (fwide (stderr, 0) >= 0)
+    {
+      puts ("fputs didn't set orientation to narrow");
+      result = 1;
+    }
+
+  errno = EINVAL;
+  perror ("<0 mode test");
+
+  fclose (stderr);
+
+  lseek (fd, 0, SEEK_SET);
+  n = read (fd, buf, sizeof (buf));
+  if (n != MB_EXP_LEN || memcmp (buf, MB_EXP, MB_EXP_LEN) != 0)
+    {
+      printf ("multibyte test failed.  Expected:\n%s\nGot:\n%.*s\n",
+	      MB_EXP, (int) n, buf);
+      result = 1;
+    }
+  else
+    puts ("multibyte test succeeded");
+
+  lseek (fd, 0, SEEK_SET);
+  ftruncate (fd, 0);
+
+  if (dup2 (fd, 2) == -1)
+    {
+      printf ("cannot create file descriptor 2: %m\n");
+      exit (EXIT_FAILURE);
+    }
+  stderr = fdopen (2, "w");
+  if (stderr == NULL)
+    {
+      printf ("fdopen failed: %m\n");
+      exit (EXIT_FAILURE);
+    }
+
+  if (fwide (stderr, 0) != 0)
+    {
+      printf ("stderr not initially in mode 0\n");
+      exit (EXIT_FAILURE);
+    }
+
+  errno = EILSEQ;
+  perror ("null mode test 2");
+
+  if (fwide (stderr, 0) != 0)
+    {
+      puts ("perror changed the mode from 0");
+      result = 1;
+    }
+
+  fputws (L"wide string\n", stderr);
+
+  if (fwide (stderr, 0) <= 0)
+    {
+      puts ("fputws didn't set orientation to wide");
+      result = 1;
+    }
+
+  errno = EINVAL;
+  perror (">0 mode test");
+
+  fclose (stderr);
+
+  lseek (fd, 0, SEEK_SET);
+  n = read (fd, buf, sizeof (buf));
+  if (n != WC_EXP_LEN || memcmp (buf, WC_EXP, WC_EXP_LEN) != 0)
+    {
+      printf ("wide test failed.  Expected:\n%s\nGot:\n%.*s\n",
+	      WC_EXP, (int) n, buf);
+      result = 1;
+    }
+  else
+    puts ("wide test succeeded");
+
+  close (fd);
+
+  return result;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/stdio-common/tst-popen.c b/REORG.TODO/stdio-common/tst-popen.c
new file mode 100644
index 0000000000..407bb91efd
--- /dev/null
+++ b/REORG.TODO/stdio-common/tst-popen.c
@@ -0,0 +1,72 @@
+/* Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Jakub Jelinek <jakub@redhat.com>, 2004.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <stdio.h>
+#include <string.h>
+#include <wchar.h>
+
+static int
+do_test (void)
+{
+  FILE *f = popen ("echo test", "r");
+  int result = 0, ret;
+  char *line = NULL;
+  size_t len = 0;
+
+  if (f == NULL)
+    {
+      printf ("popen failed %m");
+      return 1;
+    }
+
+  /* POSIX says that pipe streams are byte-oriented.  */
+  if (fwide (f, 0) >= 0)
+    {
+      puts ("popen did not return byte-oriented stream");
+      result = 1;
+    }
+
+  if (getline (&line, &len, f) != 5)
+    {
+      puts ("could not read line from popen");
+      result = 1;
+    }
+  else if (strcmp (line, "test\n") != 0)
+    {
+      printf ("read \"%s\"\n", line);
+      result = 1;
+    }
+
+  if (getline (&line, &len, f) != -1)
+    {
+      puts ("second getline did not return -1");
+      result = 1;
+    }
+
+  ret = pclose (f);
+  if (ret != 0)
+    {
+      printf ("pclose returned %d\n", ret);
+      result = 1;
+    }
+
+  return result;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/stdio-common/tst-popen2.c b/REORG.TODO/stdio-common/tst-popen2.c
new file mode 100644
index 0000000000..0ab151c598
--- /dev/null
+++ b/REORG.TODO/stdio-common/tst-popen2.c
@@ -0,0 +1,92 @@
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+
+static int
+do_test (void)
+{
+  int fd = dup (fileno (stdout));
+  if (fd <= 1)
+    {
+      puts ("dup failed");
+      return 1;
+    }
+
+  FILE *f1 = fdopen (fd, "w");
+  if (f1 == NULL)
+    {
+      printf ("fdopen failed: %m\n");
+      return 1;
+    }
+
+  fclose (stdout);
+
+  FILE *f2 = popen ("echo test1", "r");
+  if (f2 == NULL)
+    {
+      fprintf (f1, "1st popen failed: %m\n");
+      return 1;
+    }
+  FILE *f3 = popen ("echo test2", "r");
+  if (f2 == NULL || f3 == NULL)
+    {
+      fprintf (f1, "2nd popen failed: %m\n");
+      return 1;
+    }
+
+  char *line = NULL;
+  size_t len = 0;
+  int result = 0;
+  if (getline (&line, &len, f2) != 6)
+    {
+      fputs ("could not read line from 1st popen\n", f1);
+      result = 1;
+    }
+  else if (strcmp (line, "test1\n") != 0)
+    {
+      fprintf (f1, "read \"%s\"\n", line);
+      result = 1;
+    }
+
+  if (getline (&line, &len, f2) != -1)
+    {
+      fputs ("second getline did not return -1\n", f1);
+      result = 1;
+    }
+
+  if (getline (&line, &len, f3) != 6)
+    {
+      fputs ("could not read line from 2nd popen\n", f1);
+      result = 1;
+    }
+  else if (strcmp (line, "test2\n") != 0)
+    {
+      fprintf (f1, "read \"%s\"\n", line);
+      result = 1;
+    }
+
+  if (getline (&line, &len, f3) != -1)
+    {
+      fputs ("second getline did not return -1\n", f1);
+      result = 1;
+    }
+
+  int ret = pclose (f2);
+  if (ret != 0)
+    {
+      fprintf (f1, "1st pclose returned %d\n", ret);
+      result = 1;
+    }
+
+  ret = pclose (f3);
+  if (ret != 0)
+    {
+      fprintf (f1, "2nd pclose returned %d\n", ret);
+      result = 1;
+    }
+
+  return result;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/stdio-common/tst-printf-bz18872.sh b/REORG.TODO/stdio-common/tst-printf-bz18872.sh
new file mode 100644
index 0000000000..4e9622c9d0
--- /dev/null
+++ b/REORG.TODO/stdio-common/tst-printf-bz18872.sh
@@ -0,0 +1,68 @@
+#!/bin/bash
+# Copyright (C) 2015-2017 Free Software Foundation, Inc.
+# This file is part of the GNU C Library.
+
+# The GNU C Library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+
+# The GNU C Library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+
+# You should have received a copy of the GNU Lesser General Public
+# License along with the GNU C Library; if not, see
+# <http://www.gnu.org/licenses/>.
+
+# To test BZ #18872, we need a printf() with 10K arguments.
+# Such a printf could be generated with non-trivial macro
+# application, but it's simpler to generate the test source
+# via this script.
+
+n_args=10000
+
+cat <<'EOF'
+#include <stdio.h>
+#include <mcheck.h>
+
+/*
+  Compile do_test without optimization: GCC 4.9/5.0/6.0 takes a long time
+  to build this source. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67396  */
+
+__attribute__ ((optimize ("-O0")))
+int do_test (void)
+{
+    mtrace ();
+    printf (
+EOF
+
+for ((j = 0; j < $n_args / 10; j++)); do
+  for ((k = 0; k < 10; k++)); do
+    printf '"%%%d$s" ' $((10 * $j + $k + 1))
+  done
+  printf "\n"
+done
+
+printf '"%%%d$s",\n' $(($n_args + 1))
+
+for ((j = 0; j < $n_args / 10; j++)); do
+  for ((k = 0; k < 10; k++)); do
+    printf '"a", '
+  done
+  printf "  /* %4d */\n" $((10 * $j + $k))
+done
+
+printf '"\\n");'
+
+
+cat <<'EOF'
+
+  return 0;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
+
+EOF
diff --git a/REORG.TODO/stdio-common/tst-printf-round.c b/REORG.TODO/stdio-common/tst-printf-round.c
new file mode 100644
index 0000000000..e0073f2856
--- /dev/null
+++ b/REORG.TODO/stdio-common/tst-printf-round.c
@@ -0,0 +1,234 @@
+/* Test for correct rounding of printf floating-point output.
+   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <fenv.h>
+#include <stdio.h>
+#include <string.h>
+
+struct dec_test {
+  double d;
+  const char *fmt;
+  const char *rd, *rn, *rz, *ru;
+};
+
+static const struct dec_test dec_tests[] = {
+  { 1.5, "%.0f", "1", "2", "1", "2" },
+  { -1.5, "%.0f", "-2", "-2", "-1", "-1" },
+  { 2.5, "%.0f", "2", "2", "2", "3" },
+  { -2.5, "%.0f", "-3", "-2", "-2", "-2" },
+  { 1.4999, "%.0f", "1", "1", "1", "2" },
+  { -1.4999, "%.0f", "-2", "-1", "-1", "-1" },
+  { 1.5001, "%.0f", "1", "2", "1", "2" },
+  { -1.5001, "%.0f", "-2", "-2", "-1", "-1" },
+  { 2.4999, "%.0f", "2", "2", "2", "3" },
+  { -2.4999, "%.0f", "-3", "-2", "-2", "-2" },
+  { 2.5001, "%.0f", "2", "3", "2", "3" },
+  { -2.5001, "%.0f", "-3", "-3", "-2", "-2" },
+  { 1.0 / 3.0, "%f", "0.333333", "0.333333", "0.333333", "0.333334" },
+  { -1.0 / 3.0, "%f", "-0.333334", "-0.333333", "-0.333333", "-0.333333" },
+  { 0.2500001, "%.2e", "2.50e-01", "2.50e-01", "2.50e-01", "2.51e-01" },
+  { -0.2500001, "%.2e", "-2.51e-01", "-2.50e-01", "-2.50e-01", "-2.50e-01" },
+  { 1000001.0, "%.1e", "1.0e+06", "1.0e+06", "1.0e+06", "1.1e+06" },
+  { -1000001.0, "%.1e", "-1.1e+06", "-1.0e+06", "-1.0e+06", "-1.0e+06" },
+};
+
+static int
+test_dec_in_one_mode (double d, const char *fmt, const char *expected,
+		      const char *mode_name)
+{
+  char buf[100];
+  int ret = snprintf (buf, sizeof buf, fmt, d);
+  if (ret <= 0 || ret >= (int) sizeof buf)
+    {
+      printf ("snprintf for %a returned %d\n", d, ret);
+      return 1;
+    }
+  if (strcmp (buf, expected) == 0)
+    return 0;
+  else
+    {
+      printf ("snprintf (\"%s\", %a) returned \"%s\" not \"%s\" (%s)\n",
+	      fmt, d, buf, expected, mode_name);
+      return 1;
+    }
+}
+
+struct hex_test
+{
+  double d;
+  const char *fmt;
+  const char *rd[4], *rn[4], *rz[4], *ru[4];
+};
+
+static const struct hex_test hex_tests[] =
+  {
+    {
+      0x1.fffffp+4, "%.1a",
+      { "0x1.fp+4", "0x3.fp+3", "0x7.fp+2", "0xf.fp+1" },
+      { "0x2.0p+4", "0x4.0p+3", "0x8.0p+2", "0x1.0p+5" },
+      { "0x1.fp+4", "0x3.fp+3", "0x7.fp+2", "0xf.fp+1" },
+      { "0x2.0p+4", "0x4.0p+3", "0x8.0p+2", "0x1.0p+5" }
+    },
+    {
+      -0x1.fffffp+4, "%.1a",
+      { "-0x2.0p+4", "-0x4.0p+3", "-0x8.0p+2", "-0x1.0p+5" },
+      { "-0x2.0p+4", "-0x4.0p+3", "-0x8.0p+2", "-0x1.0p+5" },
+      { "-0x1.fp+4", "-0x3.fp+3", "-0x7.fp+2", "-0xf.fp+1" },
+      { "-0x1.fp+4", "-0x3.fp+3", "-0x7.fp+2", "-0xf.fp+1" }
+    },
+    {
+      0x1.88p+4, "%.1a",
+      { "0x1.8p+4", "0x3.1p+3", "0x6.2p+2", "0xc.4p+1" },
+      { "0x1.8p+4", "0x3.1p+3", "0x6.2p+2", "0xc.4p+1" },
+      { "0x1.8p+4", "0x3.1p+3", "0x6.2p+2", "0xc.4p+1" },
+      { "0x1.9p+4", "0x3.1p+3", "0x6.2p+2", "0xc.4p+1" }
+    },
+    {
+      -0x1.88p+4, "%.1a",
+      { "-0x1.9p+4", "-0x3.1p+3", "-0x6.2p+2", "-0xc.4p+1" },
+      { "-0x1.8p+4", "-0x3.1p+3", "-0x6.2p+2", "-0xc.4p+1" },
+      { "-0x1.8p+4", "-0x3.1p+3", "-0x6.2p+2", "-0xc.4p+1" },
+      { "-0x1.8p+4", "-0x3.1p+3", "-0x6.2p+2", "-0xc.4p+1" }
+    },
+    {
+      0x1.78p+4, "%.1a",
+      { "0x1.7p+4", "0x2.fp+3", "0x5.ep+2", "0xb.cp+1" },
+      { "0x1.8p+4", "0x2.fp+3", "0x5.ep+2", "0xb.cp+1" },
+      { "0x1.7p+4", "0x2.fp+3", "0x5.ep+2", "0xb.cp+1" },
+      { "0x1.8p+4", "0x2.fp+3", "0x5.ep+2", "0xb.cp+1" }
+    },
+    {
+      -0x1.78p+4, "%.1a",
+      { "-0x1.8p+4", "-0x2.fp+3", "-0x5.ep+2", "-0xb.cp+1" },
+      { "-0x1.8p+4", "-0x2.fp+3", "-0x5.ep+2", "-0xb.cp+1" },
+      { "-0x1.7p+4", "-0x2.fp+3", "-0x5.ep+2", "-0xb.cp+1" },
+      { "-0x1.7p+4", "-0x2.fp+3", "-0x5.ep+2", "-0xb.cp+1" }
+    },
+    {
+      64.0 / 3.0, "%.1a",
+      { "0x1.5p+4", "0x2.ap+3", "0x5.5p+2", "0xa.ap+1" },
+      { "0x1.5p+4", "0x2.bp+3", "0x5.5p+2", "0xa.bp+1" },
+      { "0x1.5p+4", "0x2.ap+3", "0x5.5p+2", "0xa.ap+1" },
+      { "0x1.6p+4", "0x2.bp+3", "0x5.6p+2", "0xa.bp+1" }
+    },
+    {
+      -64.0 / 3.0, "%.1a",
+      { "-0x1.6p+4", "-0x2.bp+3", "-0x5.6p+2", "-0xa.bp+1" },
+      { "-0x1.5p+4", "-0x2.bp+3", "-0x5.5p+2", "-0xa.bp+1" },
+      { "-0x1.5p+4", "-0x2.ap+3", "-0x5.5p+2", "-0xa.ap+1" },
+      { "-0x1.5p+4", "-0x2.ap+3", "-0x5.5p+2", "-0xa.ap+1" }
+    },
+  };
+
+static int
+test_hex_in_one_mode (double d, const char *fmt, const char *const expected[4],
+		      const char *mode_name)
+{
+  char buf[100];
+  int ret = snprintf (buf, sizeof buf, fmt, d);
+  if (ret <= 0 || ret >= (int) sizeof buf)
+    {
+      printf ("snprintf for %a returned %d\n", d, ret);
+      return 1;
+    }
+  if (strcmp (buf, expected[0]) == 0
+      || strcmp (buf, expected[1]) == 0
+      || strcmp (buf, expected[2]) == 0
+      || strcmp (buf, expected[3]) == 0)
+    return 0;
+  else
+    {
+      printf ("snprintf (\"%s\", %a) returned \"%s\" not "
+	      "\"%s\" or \"%s\" or \"%s\" or \"%s\" (%s)\n",
+	      fmt, d, buf, expected[0], expected[1], expected[2], expected[3],
+	      mode_name);
+      return 1;
+    }
+}
+
+static int
+do_test (void)
+{
+  int save_round_mode __attribute__ ((unused)) = fegetround ();
+  int result = 0;
+
+  for (size_t i = 0; i < sizeof (dec_tests) / sizeof (dec_tests[0]); i++)
+    {
+      result |= test_dec_in_one_mode (dec_tests[i].d, dec_tests[i].fmt,
+				      dec_tests[i].rn, "default rounding mode");
+#ifdef FE_DOWNWARD
+      if (!fesetround (FE_DOWNWARD))
+	{
+	  result |= test_dec_in_one_mode (dec_tests[i].d, dec_tests[i].fmt,
+					  dec_tests[i].rd, "FE_DOWNWARD");
+	  fesetround (save_round_mode);
+	}
+#endif
+#ifdef FE_TOWARDZERO
+      if (!fesetround (FE_TOWARDZERO))
+	{
+	  result |= test_dec_in_one_mode (dec_tests[i].d, dec_tests[i].fmt,
+					  dec_tests[i].rz, "FE_TOWARDZERO");
+	  fesetround (save_round_mode);
+	}
+#endif
+#ifdef FE_UPWARD
+      if (!fesetround (FE_UPWARD))
+	{
+	  result |= test_dec_in_one_mode (dec_tests[i].d, dec_tests[i].fmt,
+					  dec_tests[i].ru, "FE_UPWARD");
+	  fesetround (save_round_mode);
+	}
+#endif
+    }
+
+  for (size_t i = 0; i < sizeof (hex_tests) / sizeof (hex_tests[0]); i++)
+    {
+      result |= test_hex_in_one_mode (hex_tests[i].d, hex_tests[i].fmt,
+				      hex_tests[i].rn, "default rounding mode");
+#ifdef FE_DOWNWARD
+      if (!fesetround (FE_DOWNWARD))
+	{
+	  result |= test_hex_in_one_mode (hex_tests[i].d, hex_tests[i].fmt,
+					  hex_tests[i].rd, "FE_DOWNWARD");
+	  fesetround (save_round_mode);
+	}
+#endif
+#ifdef FE_TOWARDZERO
+      if (!fesetround (FE_TOWARDZERO))
+	{
+	  result |= test_hex_in_one_mode (hex_tests[i].d, hex_tests[i].fmt,
+					  hex_tests[i].rz, "FE_TOWARDZERO");
+	  fesetround (save_round_mode);
+	}
+#endif
+#ifdef FE_UPWARD
+      if (!fesetround (FE_UPWARD))
+	{
+	  result |= test_hex_in_one_mode (hex_tests[i].d, hex_tests[i].fmt,
+					  hex_tests[i].ru, "FE_UPWARD");
+	  fesetround (save_round_mode);
+	}
+#endif
+    }
+
+  return result;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/stdio-common/tst-printf.c b/REORG.TODO/stdio-common/tst-printf.c
new file mode 100644
index 0000000000..b6d62a5a2f
--- /dev/null
+++ b/REORG.TODO/stdio-common/tst-printf.c
@@ -0,0 +1,404 @@
+/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#ifdef	BSD
+#include </usr/include/stdio.h>
+#define EXIT_SUCCESS 0
+#else
+#include <limits.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#endif
+
+#include <float.h>
+#include <libc-diag.h>
+
+/* This whole file is picayune tests of corner cases of printf format strings.
+   The compiler warnings are not useful here.  */
+DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wformat");
+
+#if __GNUC_PREREQ (7, 0)
+/* Compiler warnings about snprintf output truncation should also be
+   ignored.  */
+DIAG_IGNORE_NEEDS_COMMENT (7.0, "-Wformat-truncation");
+#endif
+
+static void rfg1 (void);
+static void rfg2 (void);
+static void rfg3 (void);
+
+
+static void
+fmtchk (const char *fmt)
+{
+  (void) fputs(fmt, stdout);
+  (void) printf(":\t`");
+  (void) printf(fmt, 0x12);
+  (void) printf("'\n");
+}
+
+static void
+fmtst1chk (const char *fmt)
+{
+  (void) fputs(fmt, stdout);
+  (void) printf(":\t`");
+  (void) printf(fmt, 4, 0x12);
+  (void) printf("'\n");
+}
+
+static void
+fmtst2chk (const char *fmt)
+{
+  (void) fputs(fmt, stdout);
+  (void) printf(":\t`");
+  (void) printf(fmt, 4, 4, 0x12);
+  (void) printf("'\n");
+}
+
+/* This page is covered by the following copyright: */
+
+/* (C) Copyright C E Chew
+ *
+ * Feel free to copy, use and distribute this software provided:
+ *
+ *	1. you do not pretend that you wrote it
+ *	2. you leave this copyright notice intact.
+ */
+
+/*
+ * Extracted from exercise.c for glibc-1.05 bug report by Bruce Evans.
+ */
+
+#define DEC -123
+#define INT 255
+#define UNS (~0)
+
+/* Formatted Output Test
+ *
+ * This exercises the output formatting code.
+ */
+
+static void
+fp_test (void)
+{
+  int i, j, k, l;
+  char buf[7];
+  char *prefix = buf;
+  char tp[20];
+
+  puts("\nFormatted output test");
+  printf("prefix  6d      6o      6x      6X      6u\n");
+  strcpy(prefix, "%");
+  for (i = 0; i < 2; i++) {
+    for (j = 0; j < 2; j++) {
+      for (k = 0; k < 2; k++) {
+	for (l = 0; l < 2; l++) {
+	  strcpy(prefix, "%");
+	  if (i == 0) strcat(prefix, "-");
+	  if (j == 0) strcat(prefix, "+");
+	  if (k == 0) strcat(prefix, "#");
+	  if (l == 0) strcat(prefix, "0");
+	  printf("%5s |", prefix);
+	  strcpy(tp, prefix);
+	  strcat(tp, "6d |");
+	  printf(tp, DEC);
+	  strcpy(tp, prefix);
+	  strcat(tp, "6o |");
+	  printf(tp, INT);
+	  strcpy(tp, prefix);
+	  strcat(tp, "6x |");
+	  printf(tp, INT);
+	  strcpy(tp, prefix);
+	  strcat(tp, "6X |");
+	  printf(tp, INT);
+	  strcpy(tp, prefix);
+	  strcat(tp, "6u |");
+	  printf(tp, UNS);
+	  printf("\n");
+	}
+      }
+    }
+  }
+  printf("%10s\n", (char *) NULL);
+  printf("%-10s\n", (char *) NULL);
+}
+
+static int
+do_test (void)
+{
+  static char shortstr[] = "Hi, Z.";
+  static char longstr[] = "Good morning, Doctor Chandra.  This is Hal.  \
+I am ready for my first lesson today.";
+  int result = 0;
+
+  fmtchk("%.4x");
+  fmtchk("%04x");
+  fmtchk("%4.4x");
+  fmtchk("%04.4x");
+  fmtchk("%4.3x");
+  fmtchk("%04.3x");
+
+  fmtst1chk("%.*x");
+  fmtst1chk("%0*x");
+  fmtst2chk("%*.*x");
+  fmtst2chk("%0*.*x");
+
+#ifndef	BSD
+  printf("bad format:\t\"%b\"\n");
+  printf("nil pointer (padded):\t\"%10p\"\n", (void *) NULL);
+#endif
+
+  printf("decimal negative:\t\"%d\"\n", -2345);
+  printf("octal negative:\t\"%o\"\n", -2345);
+  printf("hex negative:\t\"%x\"\n", -2345);
+  printf("long decimal number:\t\"%ld\"\n", -123456L);
+  printf("long octal negative:\t\"%lo\"\n", -2345L);
+  printf("long unsigned decimal number:\t\"%lu\"\n", -123456L);
+  printf("zero-padded LDN:\t\"%010ld\"\n", -123456L);
+  printf("left-adjusted ZLDN:\t\"%-010ld\"\n", -123456L);
+  printf("space-padded LDN:\t\"%10ld\"\n", -123456L);
+  printf("left-adjusted SLDN:\t\"%-10ld\"\n", -123456L);
+
+  printf("zero-padded string:\t\"%010s\"\n", shortstr);
+  printf("left-adjusted Z string:\t\"%-010s\"\n", shortstr);
+  printf("space-padded string:\t\"%10s\"\n", shortstr);
+  printf("left-adjusted S string:\t\"%-10s\"\n", shortstr);
+  printf("null string:\t\"%s\"\n", (char *)NULL);
+  printf("limited string:\t\"%.22s\"\n", longstr);
+
+  printf("e-style >= 1:\t\"%e\"\n", 12.34);
+  printf("e-style >= .1:\t\"%e\"\n", 0.1234);
+  printf("e-style < .1:\t\"%e\"\n", 0.001234);
+  printf("e-style big:\t\"%.60e\"\n", 1e20);
+  printf ("e-style == .1:\t\"%e\"\n", 0.1);
+  printf("f-style >= 1:\t\"%f\"\n", 12.34);
+  printf("f-style >= .1:\t\"%f\"\n", 0.1234);
+  printf("f-style < .1:\t\"%f\"\n", 0.001234);
+  printf("g-style >= 1:\t\"%g\"\n", 12.34);
+  printf("g-style >= .1:\t\"%g\"\n", 0.1234);
+  printf("g-style < .1:\t\"%g\"\n", 0.001234);
+  printf("g-style big:\t\"%.60g\"\n", 1e20);
+
+  printf (" %6.5f\n", .099999999860301614);
+  printf (" %6.5f\n", .1);
+  printf ("x%5.4fx\n", .5);
+
+  printf ("%#03x\n", 1);
+
+  printf ("something really insane: %.10000f\n", 1.0);
+
+  {
+    double d = FLT_MIN;
+    int niter = 17;
+
+    while (niter-- != 0)
+      printf ("%.17e\n", d / 2);
+    fflush (stdout);
+  }
+
+  printf ("%15.5e\n", 4.9406564584124654e-324);
+
+#define FORMAT "|%12.4f|%12.4e|%12.4g|\n"
+  printf (FORMAT, 0.0, 0.0, 0.0);
+  printf (FORMAT, 1.0, 1.0, 1.0);
+  printf (FORMAT, -1.0, -1.0, -1.0);
+  printf (FORMAT, 100.0, 100.0, 100.0);
+  printf (FORMAT, 1000.0, 1000.0, 1000.0);
+  printf (FORMAT, 10000.0, 10000.0, 10000.0);
+  printf (FORMAT, 12345.0, 12345.0, 12345.0);
+  printf (FORMAT, 100000.0, 100000.0, 100000.0);
+  printf (FORMAT, 123456.0, 123456.0, 123456.0);
+#undef	FORMAT
+
+  {
+    char buf[20];
+    char buf2[512];
+    printf ("snprintf (\"%%30s\", \"foo\") == %d, \"%.*s\"\n",
+	    snprintf (buf, sizeof (buf), "%30s", "foo"), (int) sizeof (buf),
+	    buf);
+    printf ("snprintf (\"%%.999999u\", 10) == %d\n",
+	    snprintf(buf2, sizeof(buf2), "%.999999u", 10));
+  }
+
+  fp_test ();
+
+  printf ("%e should be 1.234568e+06\n", 1234567.8);
+  printf ("%f should be 1234567.800000\n", 1234567.8);
+  printf ("%g should be 1.23457e+06\n", 1234567.8);
+  printf ("%g should be 123.456\n", 123.456);
+  printf ("%g should be 1e+06\n", 1000000.0);
+  printf ("%g should be 10\n", 10.0);
+  printf ("%g should be 0.02\n", 0.02);
+
+#if 0
+  /* This test rather checks the way the compiler handles constant
+     folding.  gcc behavior wrt to this changed in 3.2 so it is not a
+     portable test.  */
+  {
+    double x=1.0;
+    printf("%.17f\n",(1.0/x/10.0+1.0)*x-x);
+  }
+#endif
+
+  {
+    char buf[200];
+
+    sprintf(buf,"%*s%*s%*s",-1,"one",-20,"two",-30,"three");
+
+    result |= strcmp (buf,
+		      "onetwo                 three                         ");
+
+    puts (result != 0 ? "Test failed!" : "Test ok.");
+  }
+
+  {
+    char buf[200];
+
+    sprintf (buf, "%07Lo", 040000000000ll);
+    printf ("sprintf (buf, \"%%07Lo\", 040000000000ll) = %s", buf);
+
+    if (strcmp (buf, "40000000000") != 0)
+      {
+	result = 1;
+	fputs ("\tFAILED", stdout);
+      }
+    puts ("");
+  }
+
+  printf ("printf (\"%%hhu\", %u) = %hhu\n", UCHAR_MAX + 2, UCHAR_MAX + 2);
+  printf ("printf (\"%%hu\", %u) = %hu\n", USHRT_MAX + 2, USHRT_MAX + 2);
+  printf ("printf (\"%%hhi\", %i) = %hhi\n", UCHAR_MAX + 2, UCHAR_MAX + 2);
+  printf ("printf (\"%%hi\", %i) = %hi\n", USHRT_MAX + 2, USHRT_MAX + 2);
+
+  printf ("printf (\"%%1$hhu\", %2$u) = %1$hhu\n",
+	  UCHAR_MAX + 2, UCHAR_MAX + 2);
+  printf ("printf (\"%%1$hu\", %2$u) = %1$hu\n", USHRT_MAX + 2, USHRT_MAX + 2);
+  printf ("printf (\"%%1$hhi\", %2$i) = %1$hhi\n",
+	  UCHAR_MAX + 2, UCHAR_MAX + 2);
+  printf ("printf (\"%%1$hi\", %2$i) = %1$hi\n", USHRT_MAX + 2, USHRT_MAX + 2);
+
+  puts ("--- Should be no further output. ---");
+  rfg1 ();
+  rfg2 ();
+  rfg3 ();
+
+  {
+    char bytes[7];
+    char buf[20];
+
+    memset (bytes, '\xff', sizeof bytes);
+    sprintf (buf, "foo%hhn\n", &bytes[3]);
+    if (bytes[0] != '\xff' || bytes[1] != '\xff' || bytes[2] != '\xff'
+	|| bytes[4] != '\xff' || bytes[5] != '\xff' || bytes[6] != '\xff')
+      {
+	puts ("%hhn overwrite more bytes");
+	result = 1;
+      }
+    if (bytes[3] != 3)
+      {
+	puts ("%hhn wrote incorrect value");
+	result = 1;
+      }
+  }
+
+  return result != 0;
+}
+
+static void
+rfg1 (void)
+{
+  char buf[100];
+
+  sprintf (buf, "%5.s", "xyz");
+  if (strcmp (buf, "     ") != 0)
+    printf ("got: '%s', expected: '%s'\n", buf, "     ");
+  sprintf (buf, "%5.f", 33.3);
+  if (strcmp (buf, "   33") != 0)
+    printf ("got: '%s', expected: '%s'\n", buf, "   33");
+  sprintf (buf, "%8.e", 33.3e7);
+  if (strcmp (buf, "   3e+08") != 0)
+    printf ("got: '%s', expected: '%s'\n", buf, "   3e+08");
+  sprintf (buf, "%8.E", 33.3e7);
+  if (strcmp (buf, "   3E+08") != 0)
+    printf ("got: '%s', expected: '%s'\n", buf, "   3E+08");
+  sprintf (buf, "%.g", 33.3);
+  if (strcmp (buf, "3e+01") != 0)
+    printf ("got: '%s', expected: '%s'\n", buf, "3e+01");
+  sprintf (buf, "%.G", 33.3);
+  if (strcmp (buf, "3E+01") != 0)
+    printf ("got: '%s', expected: '%s'\n", buf, "3E+01");
+}
+
+static void
+rfg2 (void)
+{
+  int prec;
+  char buf[100];
+
+  prec = 0;
+  sprintf (buf, "%.*g", prec, 3.3);
+  if (strcmp (buf, "3") != 0)
+    printf ("got: '%s', expected: '%s'\n", buf, "3");
+  prec = 0;
+  sprintf (buf, "%.*G", prec, 3.3);
+  if (strcmp (buf, "3") != 0)
+    printf ("got: '%s', expected: '%s'\n", buf, "3");
+  prec = 0;
+  sprintf (buf, "%7.*G", prec, 3.33);
+  if (strcmp (buf, "      3") != 0)
+    printf ("got: '%s', expected: '%s'\n", buf, "      3");
+  prec = 3;
+  sprintf (buf, "%04.*o", prec, 33);
+  if (strcmp (buf, " 041") != 0)
+    printf ("got: '%s', expected: '%s'\n", buf, " 041");
+  prec = 7;
+  sprintf (buf, "%09.*u", prec, 33);
+  if (strcmp (buf, "  0000033") != 0)
+    printf ("got: '%s', expected: '%s'\n", buf, "  0000033");
+  prec = 3;
+  sprintf (buf, "%04.*x", prec, 33);
+  if (strcmp (buf, " 021") != 0)
+    printf ("got: '%s', expected: '%s'\n", buf, " 021");
+  prec = 3;
+  sprintf (buf, "%04.*X", prec, 33);
+  if (strcmp (buf, " 021") != 0)
+    printf ("got: '%s', expected: '%s'\n", buf, " 021");
+}
+
+static void
+rfg3 (void)
+{
+  char buf[100];
+  double g = 5.0000001;
+  unsigned long l = 1234567890;
+  double d = 321.7654321;
+  const char s[] = "test-string";
+  int i = 12345;
+  int h = 1234;
+
+  sprintf (buf,
+	   "%1$*5$d %2$*6$hi %3$*7$lo %4$*8$f %9$*12$e %10$*13$g %11$*14$s",
+	   i, h, l, d, 8, 5, 14, 14, d, g, s, 14, 3, 14);
+  if (strcmp (buf,
+	      "   12345  1234    11145401322     321.765432   3.217654e+02   5    test-string") != 0)
+    printf ("got: '%s', expected: '%s'\n", buf,
+	    "   12345  1234    11145401322     321.765432   3.217654e+02   5    test-string");
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/stdio-common/tst-printf.sh b/REORG.TODO/stdio-common/tst-printf.sh
new file mode 100644
index 0000000000..c413980dd3
--- /dev/null
+++ b/REORG.TODO/stdio-common/tst-printf.sh
@@ -0,0 +1,268 @@
+#!/bin/sh
+# Testing of printf.
+# Copyright (C) 2000-2017 Free Software Foundation, Inc.
+# This file is part of the GNU C Library.
+
+# The GNU C Library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+
+# The GNU C Library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+
+# You should have received a copy of the GNU Lesser General Public
+# License along with the GNU C Library; if not, see
+# <http://www.gnu.org/licenses/>.
+
+set -e
+
+common_objpfx=$1; shift
+test_program_prefix=$1; shift
+
+status=0
+
+${test_program_prefix} \
+  ${common_objpfx}stdio-common/tst-printf \
+  > ${common_objpfx}stdio-common/tst-printf.out || status=1
+
+cat <<'EOF' |
+%.4x:	`0012'
+%04x:	`0012'
+%4.4x:	`0012'
+%04.4x:	`0012'
+%4.3x:	` 012'
+%04.3x:	` 012'
+%.*x:	`0012'
+%0*x:	`0012'
+%*.*x:	`0012'
+%0*.*x:	`0012'
+bad format:	"%b"
+nil pointer (padded):	"     (nil)"
+decimal negative:	"-2345"
+octal negative:	"37777773327"
+hex negative:	"fffff6d7"
+long decimal number:	"-123456"
+long octal negative:	"37777773327"
+long unsigned decimal number:	"4294843840"
+zero-padded LDN:	"-000123456"
+left-adjusted ZLDN:	"-123456   "
+space-padded LDN:	"   -123456"
+left-adjusted SLDN:	"-123456   "
+zero-padded string:	"    Hi, Z."
+left-adjusted Z string:	"Hi, Z.    "
+space-padded string:	"    Hi, Z."
+left-adjusted S string:	"Hi, Z.    "
+null string:	"(null)"
+limited string:	"Good morning, Doctor C"
+e-style >= 1:	"1.234000e+01"
+e-style >= .1:	"1.234000e-01"
+e-style < .1:	"1.234000e-03"
+e-style big:	"1.000000000000000000000000000000000000000000000000000000000000e+20"
+e-style == .1:	"1.000000e-01"
+f-style >= 1:	"12.340000"
+f-style >= .1:	"0.123400"
+f-style < .1:	"0.001234"
+g-style >= 1:	"12.34"
+g-style >= .1:	"0.1234"
+g-style < .1:	"0.001234"
+g-style big:	"100000000000000000000"
+ 0.10000
+ 0.10000
+x0.5000x
+0x1
+something really insane: 1.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+5.87747175411143754e-39
+5.87747175411143754e-39
+5.87747175411143754e-39
+5.87747175411143754e-39
+5.87747175411143754e-39
+5.87747175411143754e-39
+5.87747175411143754e-39
+5.87747175411143754e-39
+5.87747175411143754e-39
+5.87747175411143754e-39
+5.87747175411143754e-39
+5.87747175411143754e-39
+5.87747175411143754e-39
+5.87747175411143754e-39
+5.87747175411143754e-39
+5.87747175411143754e-39
+5.87747175411143754e-39
+   4.94066e-324
+|      0.0000|  0.0000e+00|           0|
+|      1.0000|  1.0000e+00|           1|
+|     -1.0000| -1.0000e+00|          -1|
+|    100.0000|  1.0000e+02|         100|
+|   1000.0000|  1.0000e+03|        1000|
+|  10000.0000|  1.0000e+04|       1e+04|
+|  12345.0000|  1.2345e+04|   1.234e+04|
+| 100000.0000|  1.0000e+05|       1e+05|
+| 123456.0000|  1.2346e+05|   1.235e+05|
+snprintf ("%30s", "foo") == 30, "                   "
+snprintf ("%.999999u", 10) == 999999
+
+Formatted output test
+prefix  6d      6o      6x      6X      6u
+%-+#0 |-123   |0377   |0xff   |0XFF   |4294967295 |
+ %-+# |-123   |0377   |0xff   |0XFF   |4294967295 |
+ %-+0 |-123   |377    |ff     |FF     |4294967295 |
+  %-+ |-123   |377    |ff     |FF     |4294967295 |
+ %-#0 |-123   |0377   |0xff   |0XFF   |4294967295 |
+  %-# |-123   |0377   |0xff   |0XFF   |4294967295 |
+  %-0 |-123   |377    |ff     |FF     |4294967295 |
+   %- |-123   |377    |ff     |FF     |4294967295 |
+ %+#0 |-00123 |000377 |0x00ff |0X00FF |4294967295 |
+  %+# |  -123 |  0377 |  0xff |  0XFF |4294967295 |
+  %+0 |-00123 |000377 |0000ff |0000FF |4294967295 |
+   %+ |  -123 |   377 |    ff |    FF |4294967295 |
+  %#0 |-00123 |000377 |0x00ff |0X00FF |4294967295 |
+   %# |  -123 |  0377 |  0xff |  0XFF |4294967295 |
+   %0 |-00123 |000377 |0000ff |0000FF |4294967295 |
+    % |  -123 |   377 |    ff |    FF |4294967295 |
+    (null)
+(null)    
+1.234568e+06 should be 1.234568e+06
+1234567.800000 should be 1234567.800000
+1.23457e+06 should be 1.23457e+06
+123.456 should be 123.456
+1e+06 should be 1e+06
+10 should be 10
+0.02 should be 0.02
+Test ok.
+sprintf (buf, "%07Lo", 040000000000ll) = 40000000000
+printf ("%hhu", 257) = 1
+printf ("%hu", 65537) = 1
+printf ("%hhi", 257) = 1
+printf ("%hi", 65537) = 1
+printf ("%1$hhu", 257) = 1
+printf ("%1$hu", 65537) = 1
+printf ("%1$hhi", 257) = 1
+printf ("%1$hi", 65537) = 1
+--- Should be no further output. ---
+EOF
+cmp - ${common_objpfx}stdio-common/tst-printf.out > /dev/null 2>&1 ||
+cat <<'EOF' |
+%.4x:	`0012'
+%04x:	`0012'
+%4.4x:	`0012'
+%04.4x:	`0012'
+%4.3x:	` 012'
+%04.3x:	` 012'
+%.*x:	`0012'
+%0*x:	`0012'
+%*.*x:	`0012'
+%0*.*x:	`0012'
+bad format:	"%b"
+nil pointer (padded):	"     (nil)"
+decimal negative:	"-2345"
+octal negative:	"37777773327"
+hex negative:	"fffff6d7"
+long decimal number:	"-123456"
+long octal negative:	"1777777777777777773327"
+long unsigned decimal number:	"18446744073709428160"
+zero-padded LDN:	"-000123456"
+left-adjusted ZLDN:	"-123456   "
+space-padded LDN:	"   -123456"
+left-adjusted SLDN:	"-123456   "
+zero-padded string:	"    Hi, Z."
+left-adjusted Z string:	"Hi, Z.    "
+space-padded string:	"    Hi, Z."
+left-adjusted S string:	"Hi, Z.    "
+null string:	"(null)"
+limited string:	"Good morning, Doctor C"
+e-style >= 1:	"1.234000e+01"
+e-style >= .1:	"1.234000e-01"
+e-style < .1:	"1.234000e-03"
+e-style big:	"1.000000000000000000000000000000000000000000000000000000000000e+20"
+e-style == .1:	"1.000000e-01"
+f-style >= 1:	"12.340000"
+f-style >= .1:	"0.123400"
+f-style < .1:	"0.001234"
+g-style >= 1:	"12.34"
+g-style >= .1:	"0.1234"
+g-style < .1:	"0.001234"
+g-style big:	"100000000000000000000"
+ 0.10000
+ 0.10000
+x0.5000x
+0x1
+something really insane: 1.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+5.87747175411143754e-39
+5.87747175411143754e-39
+5.87747175411143754e-39
+5.87747175411143754e-39
+5.87747175411143754e-39
+5.87747175411143754e-39
+5.87747175411143754e-39
+5.87747175411143754e-39
+5.87747175411143754e-39
+5.87747175411143754e-39
+5.87747175411143754e-39
+5.87747175411143754e-39
+5.87747175411143754e-39
+5.87747175411143754e-39
+5.87747175411143754e-39
+5.87747175411143754e-39
+5.87747175411143754e-39
+   4.94066e-324
+|      0.0000|  0.0000e+00|           0|
+|      1.0000|  1.0000e+00|           1|
+|     -1.0000| -1.0000e+00|          -1|
+|    100.0000|  1.0000e+02|         100|
+|   1000.0000|  1.0000e+03|        1000|
+|  10000.0000|  1.0000e+04|       1e+04|
+|  12345.0000|  1.2345e+04|   1.234e+04|
+| 100000.0000|  1.0000e+05|       1e+05|
+| 123456.0000|  1.2346e+05|   1.235e+05|
+snprintf ("%30s", "foo") == 30, "                   "
+snprintf ("%.999999u", 10) == 999999
+
+Formatted output test
+prefix  6d      6o      6x      6X      6u
+%-+#0 |-123   |0377   |0xff   |0XFF   |4294967295 |
+ %-+# |-123   |0377   |0xff   |0XFF   |4294967295 |
+ %-+0 |-123   |377    |ff     |FF     |4294967295 |
+  %-+ |-123   |377    |ff     |FF     |4294967295 |
+ %-#0 |-123   |0377   |0xff   |0XFF   |4294967295 |
+  %-# |-123   |0377   |0xff   |0XFF   |4294967295 |
+  %-0 |-123   |377    |ff     |FF     |4294967295 |
+   %- |-123   |377    |ff     |FF     |4294967295 |
+ %+#0 |-00123 |000377 |0x00ff |0X00FF |4294967295 |
+  %+# |  -123 |  0377 |  0xff |  0XFF |4294967295 |
+  %+0 |-00123 |000377 |0000ff |0000FF |4294967295 |
+   %+ |  -123 |   377 |    ff |    FF |4294967295 |
+  %#0 |-00123 |000377 |0x00ff |0X00FF |4294967295 |
+   %# |  -123 |  0377 |  0xff |  0XFF |4294967295 |
+   %0 |-00123 |000377 |0000ff |0000FF |4294967295 |
+    % |  -123 |   377 |    ff |    FF |4294967295 |
+    (null)
+(null)    
+1.234568e+06 should be 1.234568e+06
+1234567.800000 should be 1234567.800000
+1.23457e+06 should be 1.23457e+06
+123.456 should be 123.456
+1e+06 should be 1e+06
+10 should be 10
+0.02 should be 0.02
+Test ok.
+sprintf (buf, "%07Lo", 040000000000ll) = 40000000000
+printf ("%hhu", 257) = 1
+printf ("%hu", 65537) = 1
+printf ("%hhi", 257) = 1
+printf ("%hi", 65537) = 1
+printf ("%1$hhu", 257) = 1
+printf ("%1$hu", 65537) = 1
+printf ("%1$hhi", 257) = 1
+printf ("%1$hi", 65537) = 1
+--- Should be no further output. ---
+EOF
+cmp - ${common_objpfx}stdio-common/tst-printf.out > /dev/null 2>&1 ||
+{
+  status=1
+  echo "*** output comparison failed"
+}
+
+exit $status
diff --git a/REORG.TODO/stdio-common/tst-printfsz.c b/REORG.TODO/stdio-common/tst-printfsz.c
new file mode 100644
index 0000000000..47aa8536b3
--- /dev/null
+++ b/REORG.TODO/stdio-common/tst-printfsz.c
@@ -0,0 +1,81 @@
+/* Based on code by Larry McVoy <lm@neteng.engr.sgi.com>.  */
+#include <printf.h>
+#include <stdio.h>
+#include <string.h>
+#include <libc-diag.h>
+
+#define V       12345678.12345678
+
+
+static int
+do_test (void)
+{
+  char buf[1024];
+  int result = 0;
+
+  /* Testing printf_size_info requires using the deprecated
+     register_printf_function, resulting in warnings
+     "'register_printf_function' is deprecated".  */
+  DIAG_PUSH_NEEDS_COMMENT;
+  DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wdeprecated-declarations");
+  /* Register the printf handlers.  */
+  register_printf_function ('b', printf_size, printf_size_info);
+  register_printf_function ('B', printf_size, printf_size_info);
+  DIAG_POP_NEEDS_COMMENT;
+
+  /* All of the formats here use the nonstandard extension specifier
+     just registered, so compiler checking will never grok them.  */
+  DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wformat");
+  DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wformat-extra-args");
+
+  sprintf (buf, "%g %b %B %.0b %.0B %.1b %.1B %8.0b %08.0B",
+	   V, 1025., V, V, V, V, V, V, V, V);
+  fputs (buf, stdout);
+  if (strcmp (buf, "\
+1.23457e+07 1.001k 12.346M 12m 12M 11.8m 12.3M      12m 0000012M"))
+    {
+      result = 1;
+      fputs (" -> WRONG\n", stdout);
+    }
+  else
+    fputs (" -> OK\n", stdout);
+
+  sprintf (buf, "%b|%B|%-20.2b|%-10.0b|%-10.8b|%-10.2B|",
+	   V, V, V, V, V, V, V, V, V, V, V);
+  fputs (buf, stdout);
+  if (strcmp (buf, "\
+11.774m|12.346M|11.77m              |12m       |11.77375614m|12.35M    |"))
+    {
+      result = 1;
+      fputs (" -> WRONG\n", stdout);
+    }
+  else
+    fputs (" -> OK\n", stdout);
+
+  sprintf (buf, "%#.0B %*.0b %10.*b %*.*B %10.2B",
+	   V, 2, V, 2, V, 10, 2, V, V);
+  fputs (buf, stdout);
+  if (strcmp (buf, "12.M 12m     11.77m     12.35M     12.35M"))
+    {
+      result = 1;
+      fputs (" -> WRONG\n", stdout);
+    }
+  else
+    fputs (" -> OK\n", stdout);
+
+  sprintf (buf, "%6B %6.1B %b %B %b %B",
+	   V, V, 1000.0, 1000.0, 1024.0, 1024.0);
+  fputs (buf, stdout);
+  if (strcmp (buf, "12.346M  12.3M 1000.000  1.000K 1.000k 1.024K"))
+    {
+      result = 1;
+      fputs (" -> WRONG\n", stdout);
+    }
+  else
+    fputs (" -> OK\n", stdout);
+
+  return result;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/stdio-common/tst-put-error.c b/REORG.TODO/stdio-common/tst-put-error.c
new file mode 100644
index 0000000000..4f91fb7471
--- /dev/null
+++ b/REORG.TODO/stdio-common/tst-put-error.c
@@ -0,0 +1,69 @@
+/* Verify that print functions return error when there is an I/O error.
+
+   Copyright (C) 2005-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <errno.h>
+#include <error.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+
+static int
+do_test (void)
+{
+  char tmpl[] = "/tmp/tst-put-error.XXXXXX";
+  int fd = mkstemp (tmpl);
+  if (fd == -1)
+    error (EXIT_FAILURE, errno, "cannot create temporary file");
+  FILE *fp = fdopen (fd, "w");
+  if (fp == NULL)
+    error (EXIT_FAILURE, errno, "fdopen");
+
+  /* All of the tests below verify that flushing buffers result in failure of
+     the fprintf calls.  We ensure that the buffer is flushed at the end of
+     each fprintf call by doing two things - setting the file pointer to
+     line-buffered so that it is flushed whenever it encounters a newline and
+     then ensuring that there is a newline in each of the format strings we
+     pass to fprintf.  */
+
+  setlinebuf (fp);
+  close (fd);
+  unlink (tmpl);
+
+  int n = fprintf (fp, "hello world\n");
+  printf ("fprintf = %d\n", n);
+  if (n >= 0)
+    error (EXIT_FAILURE, 0, "first fprintf succeeded");
+
+  n = fprintf (fp, "hello world\n");
+  printf ("fprintf = %d\n", n);
+  if (n >= 0)
+    error (EXIT_FAILURE, 0, "second fprintf succeeded");
+
+  /* Padded printing takes a different code path.  */
+  n = fprintf (fp, "%100s\n", "foo");
+  printf ("fprintf = %d\n", n);
+  if (n >= 0)
+    error (EXIT_FAILURE, 0, "padded fprintf succeeded");
+
+  return 0;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/stdio-common/tst-rndseek.c b/REORG.TODO/stdio-common/tst-rndseek.c
new file mode 100644
index 0000000000..cf53aa48e0
--- /dev/null
+++ b/REORG.TODO/stdio-common/tst-rndseek.c
@@ -0,0 +1,144 @@
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+
+static char fname[] = "/tmp/rndseek.XXXXXX";
+static char tempdata[65 * 1024];
+
+
+static int do_test (void);
+#define TEST_FUNCTION do_test ()
+#define TIMEOUT 10
+
+#include "../test-skeleton.c"
+
+
+static int
+fp_test (const char *name, FILE *fp)
+{
+  int result = 0;
+  int rounds = 10000;
+
+  do
+    {
+      int idx = random () % (sizeof (tempdata) - 2);
+      char ch1;
+      char ch2;
+
+      if (fseek (fp, idx, SEEK_SET) != 0)
+	{
+	  printf ("%s: %d: fseek failed: %m\n", name, rounds);
+	  result = 1;
+	  break;
+	}
+
+      ch1 = fgetc_unlocked (fp);
+      ch2 = tempdata[idx];
+      if (ch1 != ch2)
+	{
+	  printf ("%s: %d: character at index %d not what is expected ('%c' vs '%c')\n",
+		  name, rounds, idx, ch1, ch2);
+	  result = 1;
+	  break;
+	}
+
+      ch1 = fgetc (fp);
+      ch2 = tempdata[idx + 1];
+      if (ch1 != ch2)
+	{
+	  printf ("%s: %d: character at index %d not what is expected ('%c' vs '%c')\n",
+		  name, rounds, idx + 1, ch1, ch2);
+	  result = 1;
+	  break;
+	}
+    }
+  while (--rounds > 0);
+
+  fclose (fp);
+
+  return result;
+}
+
+
+static int
+do_test (void)
+{
+  int fd;
+  FILE *fp;
+  size_t i;
+  int result;
+
+  fd = mkstemp (fname);
+  if (fd == -1)
+    {
+      printf ("cannot open temporary file: %m\n");
+      return 1;
+    }
+  /* Make sure the file gets removed.  */
+  add_temp_file (fname);
+
+  /* Repeatability demands this.  */
+  srandom (42);
+
+  /* First create some temporary data.  */
+  for (i = 0; i < sizeof (tempdata); ++i)
+    tempdata[i] = 'a' + random () % 26;
+
+  /* Write this data to a file.  */
+  if (TEMP_FAILURE_RETRY (write (fd, tempdata, sizeof (tempdata)))
+      != sizeof (tempdata))
+    {
+      printf ("cannot wrote data to temporary file: %m\n");
+      return 1;
+    }
+
+  /* Now try reading the data.  */
+  fp = fdopen (dup (fd), "r");
+  if (fp == NULL)
+    {
+      printf ("cannot duplicate temporary file descriptor: %m\n");
+      return 1;
+    }
+
+  rewind (fp);
+  for (i = 0; i < sizeof (tempdata); ++i)
+    {
+      int ch0 = fgetc (fp);
+      char ch1 = ch0;
+      char ch2 = tempdata[i];
+
+      if (ch0 == EOF)
+	{
+	  puts ("premature end of file while reading data");
+	  return 1;
+	}
+
+      if (ch1 != ch2)
+	{
+	  printf ("%zd: '%c' vs '%c'\n", i, ch1, ch2);
+	  return 1;
+	}
+    }
+
+  result = fp_test ("fdopen(\"r\")", fp);
+
+  fp = fopen (fname, "r");
+  result |= fp_test ("fopen(\"r\")", fp);
+
+  fp = fopen64 (fname, "r");
+  result |= fp_test ("fopen64(\"r\")", fp);
+
+  /* The "rw" mode will prevent the mmap-using code from being used.  */
+  fp = fdopen (fd, "rw");
+  result = fp_test ("fdopen(\"rw\")", fp);
+
+  fp = fopen (fname, "rw");
+  result |= fp_test ("fopen(\"rw\")", fp);
+
+  fp = fopen64 (fname, "rw");
+  result |= fp_test ("fopen64(\"rw\")", fp);
+
+  return result;
+}
diff --git a/REORG.TODO/stdio-common/tst-setvbuf1.c b/REORG.TODO/stdio-common/tst-setvbuf1.c
new file mode 100644
index 0000000000..22410939c9
--- /dev/null
+++ b/REORG.TODO/stdio-common/tst-setvbuf1.c
@@ -0,0 +1,19 @@
+#include <stdio.h>
+
+static int
+do_test (void)
+{
+  if (setvbuf (stderr, NULL, _IOFBF, BUFSIZ) != 0)
+    {
+      puts ("Set full buffer error.");
+      return 1;
+    }
+
+  fprintf (stderr, "Output #1 <stderr>.\n");
+  printf ("Output #2 <stdout>.\n");
+
+  return 0;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/stdio-common/tst-setvbuf1.expect b/REORG.TODO/stdio-common/tst-setvbuf1.expect
new file mode 100644
index 0000000000..281c18ca1e
--- /dev/null
+++ b/REORG.TODO/stdio-common/tst-setvbuf1.expect
@@ -0,0 +1,2 @@
+Output #2 <stdout>.
+Output #1 <stderr>.
diff --git a/REORG.TODO/stdio-common/tst-sprintf.c b/REORG.TODO/stdio-common/tst-sprintf.c
new file mode 100644
index 0000000000..cbd35447a9
--- /dev/null
+++ b/REORG.TODO/stdio-common/tst-sprintf.c
@@ -0,0 +1,90 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <locale.h>
+#include <string.h>
+#include <libc-diag.h>
+
+
+static int
+do_test (void)
+{
+  char buf[100];
+  int result = 0;
+
+  if (sprintf (buf, "%.0ls", L"foo") != 0
+      || strlen (buf) != 0)
+    {
+      puts ("sprintf (buf, \"%.0ls\", L\"foo\") produced some output");
+      result = 1;
+    }
+
+#define SIZE (1024*70000)
+#define STR(x) #x
+
+  char *dst = malloc (SIZE + 1);
+
+  if (dst == NULL)
+    {
+      puts ("memory allocation failure");
+      result = 1;
+    }
+  else
+    {
+      sprintf (dst, "%*s", SIZE, "");
+      if (strnlen (dst, SIZE + 1) != SIZE)
+	{
+	  puts ("sprintf (dst, \"%*s\", " STR(SIZE) ", \"\") did not produce enough output");
+	  result = 1;
+	}
+      free (dst);
+    }
+
+  if (sprintf (buf, "%1$d%3$.*2$s%4$d", 7, 67108863, "x", 8) != 3
+      || strcmp (buf, "7x8") != 0)
+    {
+      printf ("sprintf (buf, \"%%1$d%%3$.*2$s%%4$d\", 7, 67108863, \"x\", 8) produced `%s' output", buf);
+      result = 1;
+    }
+
+  /* We are testing a corner case of the sprintf format string here.  */
+  DIAG_PUSH_NEEDS_COMMENT;
+  DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wformat");
+  int n = sprintf (buf, "%67108863.16\"%d", 7);
+  DIAG_POP_NEEDS_COMMENT;
+
+  if (n != 14 || strcmp (buf, "%67108863.16\"7") != 0)
+    {
+      printf ("sprintf (buf, \"%%67108863.16\\\"%%d\", 7) produced `%s' output",
+              buf);
+      result = 1;
+    }
+
+  /* We are testing a corner case of the sprintf format string here.  */
+  DIAG_PUSH_NEEDS_COMMENT;
+  DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wformat");
+  n = sprintf (buf, "%*\"%d", 0x3ffffff, 7);
+  DIAG_POP_NEEDS_COMMENT;
+
+  if (n != 11 || strcmp (buf, "%67108863\"7") != 0)
+    {
+      printf ("sprintf (buf, \"%%*\\\"%%d\", 0x3ffffff, 7) produced `%s' output", buf);
+      result = 1;
+    }
+
+  if (setlocale (LC_ALL, "de_DE.UTF-8") == NULL)
+    {
+      puts ("cannot set locale");
+      result = 1;
+    }
+  else if (sprintf (buf, "%.8s\n", "Foo: \277") != 7
+	   || strcmp (buf, "Foo: \277\n") != 0)
+    {
+      printf ("sprintf (buf, \"%%.8s\\n\", \"Foo: \\277\") produced '%s' output\n", buf);
+      result = 1;
+    }
+
+  return result;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/stdio-common/tst-sprintf2.c b/REORG.TODO/stdio-common/tst-sprintf2.c
new file mode 100644
index 0000000000..0ddf15ba33
--- /dev/null
+++ b/REORG.TODO/stdio-common/tst-sprintf2.c
@@ -0,0 +1,87 @@
+#include <float.h>
+#include <math.h>
+#include <stdio.h>
+#include <string.h>
+
+static int
+do_test (void)
+{
+#if LDBL_MANT_DIG >= 106
+  volatile union { long double l; long long x[2]; } u, v;
+  char buf[64];
+#endif
+  int result = 0;
+
+#if LDBL_MANT_DIG == 106 || LDBL_MANT_DIG == 113
+# define COMPARE_LDBL(u, v) \
+  ((u).l == (v).l && (u).x[0] == (v).x[0] && (u).x[1] == (v).x[1])
+#else
+# define COMPARE_LDBL(u, v) ((u).l == (v).l)
+#endif
+
+#define TEST(val) \
+  do									   \
+    {									   \
+      u.l = (val);							   \
+      snprintf (buf, sizeof buf, "%LaL", u.l);				   \
+      if (strcmp (buf, #val) != 0)					   \
+	{								   \
+	  printf ("Error on line %d: %s != %s\n", __LINE__, buf, #val);	   \
+	  result = 1;							   \
+	}								   \
+      if (sscanf (#val, "%La", &v.l) != 1 || !COMPARE_LDBL (u, v))	   \
+	{								   \
+	  printf ("Error sscanf on line %d: %La != %La\n", __LINE__,	   \
+		  u.l, v.l);						   \
+	  result = 1;							   \
+	}								   \
+      /* printf ("%s %La %016Lx %016Lx\n", #val, u.l, u.x[0], u.x[1]); */  \
+    }									   \
+  while (0)
+
+#if LDBL_MANT_DIG >= 106
+# if LDBL_MANT_DIG == 106
+  TEST (0x0.ffffffffffffp-1022L);
+  TEST (0x0.ffffffffffff1p-1022L);
+  TEST (0x0.fffffffffffffp-1022L);
+# endif
+  TEST (0x1p-1022L);
+  TEST (0x1.0000000000001p-1022L);
+  TEST (0x1.00000000001e7p-1022L);
+  TEST (0x1.fffffffffffffp-1022L);
+  TEST (0x1p-1021L);
+  TEST (0x1.00000000000008p-1021L);
+  TEST (0x1.0000000000001p-1021L);
+  TEST (0x1.00000000000018p-1021L);
+  TEST (0x1.0000000000000f8p-1017L);
+  TEST (0x1.0000000000001p-1017L);
+  TEST (0x1.000000000000108p-1017L);
+  TEST (0x1.000000000000dcf8p-1013L);
+  TEST (0x1.000000000000ddp-1013L);
+  TEST (0x1.000000000000dd08p-1013L);
+  TEST (0x1.ffffffffffffffffffffffffffp-1L);
+  TEST (0x1.ffffffffffffffffffffffffff8p-1L);
+  TEST (0x1p+0L);
+  TEST (0x1.000000000000000000000000008p+0L);
+  TEST (0x1.00000000000000000000000001p+0L);
+  TEST (0x1.000000000000000000000000018p+0L);
+  TEST (0x1.23456789abcdef123456789abc8p+0L);
+  TEST (0x1.23456789abcde7123456789abc8p+0L);
+  TEST (0x1.23456789abcdef123456789abc8p+64L);
+  TEST (0x1.23456789abcde7123456789abc8p+64L);
+  TEST (0x1.123456789abcdef123456789p-969L);
+# if LDBL_MANT_DIG == 106
+  TEST (-0x1.2d71957cc1263bbbeb1d365f1e8p-969L);
+  TEST (0x1.23456789abcdef0123456789abp-970L);
+  TEST (0x1.579bde02468acp-1001L);
+  TEST (0x0.abcdef0123456p-1022L);
+  TEST (0x1.abcdef0123456p-1022L);
+  TEST (0x1.abcdef012345678p-1014L);
+  TEST (0x1.abcdef0123456f8p-1014L);
+# endif
+#endif
+  return result;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/stdio-common/tst-sprintf3.c b/REORG.TODO/stdio-common/tst-sprintf3.c
new file mode 100644
index 0000000000..bcdd6d25db
--- /dev/null
+++ b/REORG.TODO/stdio-common/tst-sprintf3.c
@@ -0,0 +1,99 @@
+/* Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+/* Test bug #13941.  */
+
+#include <float.h>
+#include <math.h>
+#include <stdio.h>
+#include <string.h>
+
+static int
+do_test (void)
+{
+#if LDBL_MANT_DIG >= 106
+  volatile union { long double l; long long x[2]; } u, v;
+  char buf[64];
+#endif
+  int result = 0;
+
+#if LDBL_MANT_DIG == 106 || LDBL_MANT_DIG == 113
+# define COMPARE_LDBL(u, v) \
+  ((u).l == (v).l && (u).x[0] == (v).x[0] && (u).x[1] == (v).x[1])
+#else
+# define COMPARE_LDBL(u, v) ((u).l == (v).l)
+#endif
+
+#define TEST_N(val, n) \
+  do									   \
+    {									   \
+      u.l = (val);							   \
+      snprintf (buf, sizeof buf, "%." #n "LgL", u.l);			   \
+      if (strcmp (buf, #val) != 0)					   \
+	{								   \
+	  printf ("Error on line %d: %s != %s\n", __LINE__, buf, #val);	   \
+	  result = 1;							   \
+	}								   \
+      if (sscanf (#val, "%Lg", &v.l) != 1 || !COMPARE_LDBL (u, v))	   \
+	{								   \
+	  printf ("Error sscanf on line %d: %." #n "Lg != %." #n "Lg\n",   \
+		  __LINE__, u.l, v.l);					   \
+	  result = 1;							   \
+	}								   \
+      /* printf ("%s %Lg %016Lx %016Lx\n", #val, u.l, u.x[0], u.x[1]); */  \
+    }									   \
+  while (0)
+
+#define TEST(val) TEST_N (val,30)
+
+#if LDBL_MANT_DIG >= 106
+# if LDBL_MANT_DIG == 106
+  TEST (2.22507385850719347803989925739e-308L);
+  TEST (2.22507385850719397210554509863e-308L);
+  TEST (2.22507385850720088902458687609e-308L);
+
+  /* Verify precision is not lost for long doubles
+     of the form +1.pN,-1.pM.  */
+  TEST_N (3.32306998946228968225951765070082e+35L, 34);
+# endif
+  TEST (2.22507385850720138309023271733e-308L);
+  TEST (2.22507385850720187715587855858e-308L);
+  TEST (2.2250738585074419930597574044e-308L);
+  TEST (4.45014771701440227211481959342e-308L);
+  TEST (4.45014771701440276618046543466e-308L);
+  TEST (4.45014771701440375431175711716e-308L);
+  TEST (4.45014771701440474244304879965e-308L);
+  TEST (7.12023634722304600689881138745e-307L);
+  TEST (1.13923781555569064960474854133e-305L);
+  TEST (1.13777777777777776389998996996L);
+  TEST (1.13777777777777765287768750745L);
+  TEST (20988295479420645138.2044444444L);
+  TEST (20988295479420643090.2044444444L);
+  TEST (2.14668699894294423266045294316e-292L);
+# if LDBL_MANT_DIG == 106
+  TEST (-2.35993711055432139266626434123e-292L);
+  TEST (6.26323524637968345414769634658e-302L);
+  TEST (1.49327164802066885331814201989e-308L);
+  TEST (3.71834550652787023640837473722e-308L);
+  TEST (9.51896449671134907001349268087e-306L);
+# endif
+#endif
+  return result;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/stdio-common/tst-sscanf.c b/REORG.TODO/stdio-common/tst-sscanf.c
new file mode 100644
index 0000000000..c070e14cd7
--- /dev/null
+++ b/REORG.TODO/stdio-common/tst-sscanf.c
@@ -0,0 +1,273 @@
+/* Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Jakub Jelinek <jakub@redhat.com>, 2000.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <locale.h>
+
+#ifndef CHAR
+# define CHAR char
+# define L(str) str
+# define SSCANF sscanf
+#endif
+
+const CHAR *str_double[] =
+{
+  L("-.10000E+020.20000E+020.25000E+010.40000E+010.50000E+010.12500E+01"),
+  L("0.10000E+020.20000E+020.25000E+010.40000E+010.50000E+010.12500E+01"),
+  L("-1234567E0198765432E0912345678901987654321091234567890198765432109"),
+  L("-0.1000E+020.20000E+020.25000E+010.40000E+010.50000E+010.12500E+01")
+};
+
+const double val_double[] =
+{
+  -.10000E+02, 0.20000E+02, 0.25000E+01, 0.40000E+01, 0.50000E+01, 0.12500E+01,
+  0.10000E+02, 0.20000E+02, 0.25000E+01, 0.40000E+01, 0.50000E+01, 0.12500E+01,
+  -1234567E01, 98765432E09, 12345678901.0, 98765432109.0, 12345678901.0,
+    98765432109.0,
+  -0.1000E+02, 0.20000E+02, 0.25000E+01, 0.40000E+01, 0.50000E+01, 0.12500E+01
+};
+
+const CHAR *str_long[] =
+{
+  L("-12345678987654321123456789987654321123456789987654321"),
+  L("-12345678987654321123456789987654321123456789987654321"),
+  L("-12,345,678987,654,321123,456,789987,654,321123,456,789987,654,321"),
+  L("-12,345,678987,654,321123,456,789987,654,321123,456,789987,654,321")
+};
+
+const CHAR *fmt_long[] =
+{
+  L("%9ld%9ld%9ld%9ld%9ld%9ld"),
+  L("%I9ld%I9ld%I9ld%I9ld%I9ld%I9ld"),
+  L("%'11ld%'11ld%'11ld%'11ld%'11ld%'11ld"),
+  L("%I'11ld%I'11ld%I'11ld%I'11ld%I'11ld%I'11ld")
+};
+
+const long int val_long[] =
+{
+  -12345678, 987654321, 123456789, 987654321, 123456789, 987654321
+};
+
+struct test
+{
+  const CHAR *str;
+  const CHAR *fmt;
+  int retval;
+} int_tests[] =
+{
+  { L("foo\n"), L("foo\nbar"), -1 },
+  { L("foo\n"), L("foo bar"), -1 },
+  { L("foo\n"), L("foo %d"), -1 },
+  { L("foo\n"), L("foo\n%d"), -1 },
+  { L("foon"), L("foonbar"), -1 },
+  { L("foon"), L("foon%d"), -1 },
+  { L("foo "), L("foo bar"), -1 },
+  { L("foo "), L("foo %d"), -1 },
+  { L("foo\t"), L("foo\tbar"), -1 },
+  { L("foo\t"), L("foo bar"), -1 },
+  { L("foo\t"), L("foo %d"), -1 },
+  { L("foo\t"), L("foo\t%d"), -1 },
+  { L("foo"), L("foo"), 0 },
+  { L("foon"), L("foo bar"), 0 },
+  { L("foon"), L("foo %d"), 0 },
+  { L("foo "), L("fooxbar"), 0 },
+  { L("foo "), L("foox%d"), 0 },
+  { L("foo bar"), L("foon"), 0 },
+  { L("foo bar"), L("foo bar"), 0 },
+  { L("foo bar"), L("foo %d"), 0 },
+  { L("foo bar"), L("foon%d"), 0 },
+  { L("foo (nil)"), L("foo %p"), 1},
+  { L("foo (nil)"), L("foo %4p"), 0},
+  { L("foo "), L("foo %n"), 0 },
+  { L("foo%bar1"), L("foo%%bar%d"), 1 },
+  /* Some OSes skip whitespace here while others don't.  */
+  { L("foo \t %bar1"), L("foo%%bar%d"), 1 }
+};
+
+struct test double_tests[] =
+{
+  { L("-1"), L("%1g"), 0 },
+  { L("-.1"), L("%2g"), 0 },
+  { L("-inf"), L("%3g"), 0 },
+  { L("+0"), L("%1g"),  },
+  { L("-0x1p0"), L("%2g"), 1 },
+  { L("-..1"), L("%g"), 0 },
+  { L("-inf"), L("%g"), 1 }
+};
+
+struct test2
+{
+  const CHAR *str;
+  const CHAR *fmt;
+  int retval;
+  char residual;
+} double_tests2[] =
+{
+  { L("0e+0"), L("%g%c"), 1, 0 },
+  { L("0xe+0"), L("%g%c"), 2, '+' },
+  { L("0x.e+0"), L("%g%c"), 2, '+' },
+};
+
+static int
+do_test (void)
+{
+  double d[6];
+  long l[6];
+  int i, j;
+  int tst_locale;
+  int result = 0;
+
+  tst_locale = 1;
+  if (tst_locale)
+    if (setlocale (LC_ALL, "en_US.ISO-8859-1") == NULL)
+      {
+	puts ("Failed to set en_US locale, skipping locale related tests");
+	tst_locale = 0;
+      }
+
+  for (i = 0; i < 4; ++i)
+    {
+      if (SSCANF (str_double[i], L("%11lf%11lf%11lf%11lf%11lf%11lf"),
+		  &d[0], &d[1], &d[2], &d[3], &d[4], &d[5]) != 6)
+	{
+	  printf ("Double sscanf test %d wrong number of "
+		  "assigned inputs\n", i);
+	  result = 1;
+	}
+      else
+	for (j = 0; j < 6; ++j)
+	  if (d[j] != val_double[6 * i + j])
+	    {
+	      printf ("Double sscanf test %d failed (%g instead of %g)\n",
+		      i, d[j], val_double[6 * i + j]);
+	      result = 1;
+	      break;
+	    }
+    }
+
+  for (i = 0; i < 4; ++i)
+    {
+      if (SSCANF (str_long[i], fmt_long[i],
+		  &l[0], &l[1], &l[2], &l[3], &l[4], &l[5]) != 6)
+	{
+	  printf ("Integer sscanf test %d wrong number of "
+		  "assigned inputs\n", i);
+	  result = 1;
+	}
+      else
+	for (j = 0; j < 6; ++j)
+	  if (l[j] != val_long[j])
+	    {
+	      printf ("Integer sscanf test %d failed (%ld instead %ld)\n",
+		      i, l[j], val_long[j]);
+	      result = 1;
+	      break;
+	    }
+
+      if (! tst_locale)
+	break;
+    }
+
+  for (i = 0; i < sizeof (int_tests) / sizeof (int_tests[0]); ++i)
+    {
+      long dummy;
+      int ret;
+
+      if ((ret = SSCANF (int_tests[i].str, int_tests[i].fmt,
+			 &dummy)) != int_tests[i].retval)
+	{
+	  printf ("int_tests[%d] returned %d != %d\n",
+		  i, ret, int_tests[i].retval);
+	  result = 1;
+	}
+    }
+
+  for (i = 0; i < sizeof (double_tests) / sizeof (double_tests[0]); ++i)
+    {
+      double dummy;
+      int ret;
+
+      if ((ret = SSCANF (double_tests[i].str, double_tests[i].fmt,
+			 &dummy)) != double_tests[i].retval)
+	{
+	  printf ("double_tests[%d] returned %d != %d\n",
+		  i, ret, double_tests[i].retval);
+	  result = 1;
+	}
+    }
+
+  for (i = 0; i < sizeof (double_tests2) / sizeof (double_tests2[0]); ++i)
+    {
+      double dummy;
+      int ret;
+      char c = 0;
+
+      if ((ret = SSCANF (double_tests2[i].str, double_tests2[i].fmt,
+			 &dummy, &c)) != double_tests2[i].retval)
+	{
+	  printf ("double_tests2[%d] returned %d != %d\n",
+		  i, ret, double_tests2[i].retval);
+	  result = 1;
+	}
+      else if (ret == 2 && c != double_tests2[i].residual)
+	{
+	  printf ("double_tests2[%d] stopped at '%c' != '%c'\n",
+		  i, c, double_tests2[i].residual);
+	  result = 1;
+	}
+    }
+
+  /* BZ #16618
+     The test will segfault during SSCANF if the buffer overflow
+     is not fixed.  The size of `s` is such that it forces the use
+     of malloc internally and this triggers the incorrect computation.
+     Thus the value for SIZE is arbitrariy high enough that malloc
+     is used.  */
+  {
+#define SIZE 131072
+    CHAR *s = malloc ((SIZE + 1) * sizeof (*s));
+    if (s == NULL)
+      abort ();
+    for (size_t i = 0; i < SIZE; i++)
+      s[i] = L('0');
+    s[SIZE] = L('\0');
+    int i = 42;
+    /* Scan multi-digit zero into `i`.  */
+    if (SSCANF (s, L("%d"), &i) != 1)
+      {
+	printf ("FAIL: bug16618: SSCANF did not read one input item.\n");
+	result = 1;
+      }
+    if (i != 0)
+      {
+	printf ("FAIL: bug16618: Value of `i` was not zero as expected.\n");
+	result = 1;
+      }
+    free (s);
+    if (result != 1)
+      printf ("PASS: bug16618: Did not crash.\n");
+#undef SIZE
+  }
+
+
+  return result;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/stdio-common/tst-swprintf.c b/REORG.TODO/stdio-common/tst-swprintf.c
new file mode 100644
index 0000000000..ce62c6bf68
--- /dev/null
+++ b/REORG.TODO/stdio-common/tst-swprintf.c
@@ -0,0 +1,59 @@
+#include <locale.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <wchar.h>
+
+/* This is the relevant piece from the charmap:
+<UFF61>     /x8e/xa1     HALFWIDTH IDEOGRAPHIC FULL STOP
+<UFF62>     /x8e/xa2     HALFWIDTH LEFT CORNER BRACKET
+<UFF63>     /x8e/xa3     HALFWIDTH RIGHT CORNER BRACKET
+<UFF64>     /x8e/xa4     HALFWIDTH IDEOGRAPHIC COMMA
+ */
+
+const char input[] = "\x8e\xa1g\x8e\xa2h\x8e\xa3i\x8e\xa4j";
+
+static int
+do_test (void)
+{
+  wchar_t buf[1000];
+#define nbuf (sizeof (buf) / sizeof (buf[0]))
+  int result = 0;
+  ssize_t n;
+
+  if (setlocale (LC_ALL, "ja_JP.EUC-JP") == NULL)
+    {
+      puts ("cannot set locale");
+      exit (1);
+    }
+
+#define CHECK(fmt, nexp, exp) \
+  n = swprintf (buf, nbuf, fmt, input);					      \
+  if (n != nexp)							      \
+    {									      \
+      printf ("swprintf (.., .., L\"%ls\", \"%ls\") return %d, not %d\n",     \
+	      fmt, (wchar_t*) input, (int) n, (int) nexp);		      \
+      result = 1;							      \
+    }									      \
+  else if (wcscmp (buf, exp) != 0)					      \
+    {									      \
+      printf ("\
+swprintf (.., .., L\"%ls\", \"%ls\") produced \"%ls\", not \"%ls\"\n",	      \
+	     fmt, (wchar_t *) input, buf, exp );			      \
+      result = 1;							      \
+    }
+
+  CHECK (L"[%-6.0s]", 8, L"[      ]");
+  CHECK (L"[%-6.1s]", 8, L"[\xff61     ]");
+  CHECK (L"[%-6.2s]", 8, L"[\xff61g    ]");
+  CHECK (L"[%-6.3s]", 8, L"[\xff61g\xff62   ]");
+  CHECK (L"[%-6.4s]", 8, L"[\xff61g\xff62h  ]");
+  CHECK (L"[%-6.5s]", 8, L"[\xff61g\xff62h\xff63 ]");
+  CHECK (L"[%-6.6s]", 8, L"[\xff61g\xff62h\xff63i]");
+  CHECK (L"[%-6.7s]", 9, L"[\xff61g\xff62h\xff63i\xff64]");
+  CHECK (L"[%-6.8s]", 10, L"[\xff61g\xff62h\xff63i\xff64j]");
+
+  return result;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/stdio-common/tst-swscanf.c b/REORG.TODO/stdio-common/tst-swscanf.c
new file mode 100644
index 0000000000..6ec1c8e6c7
--- /dev/null
+++ b/REORG.TODO/stdio-common/tst-swscanf.c
@@ -0,0 +1,5 @@
+#define CHAR wchar_t
+#define L(str) L##str
+#define SSCANF swscanf
+#include <wchar.h>
+#include "tst-sscanf.c"
diff --git a/REORG.TODO/stdio-common/tst-tmpnam.c b/REORG.TODO/stdio-common/tst-tmpnam.c
new file mode 100644
index 0000000000..57e620db06
--- /dev/null
+++ b/REORG.TODO/stdio-common/tst-tmpnam.c
@@ -0,0 +1,53 @@
+/* Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+static int
+do_test (void)
+{
+  const char *name;
+  int retval = 0;
+
+  /* Set TMPDIR to a value other than the traditional /tmp.  */
+  setenv ("TMPDIR", "/usr", 1);
+
+  name = tmpnam (NULL);
+
+  printf ("name = %s\n", name);
+
+  /* Make sure the name is not based on the value in TMPDIR.  */
+  if (strncmp (name, "/usr", 4) == 0)
+    {
+      puts ("error: `tmpnam' used TMPDIR value");
+      retval = 1;
+    }
+
+  /* Test that it is in the directory denoted by P_tmpdir.  */
+  if (strncmp (name, P_tmpdir, sizeof (P_tmpdir) - 1) != 0)
+    {
+      puts ("error: `tmpnam' return value not in P_tmpdir directory");
+      retval = 1;
+    }
+
+  return retval;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/stdio-common/tst-unbputc.c b/REORG.TODO/stdio-common/tst-unbputc.c
new file mode 100644
index 0000000000..7200a82a2a
--- /dev/null
+++ b/REORG.TODO/stdio-common/tst-unbputc.c
@@ -0,0 +1,14 @@
+#include <stdio.h>
+
+
+static int
+do_test (void)
+{
+  putc ('1', stderr);
+  putc ('2', stderr);
+
+  return 0;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/stdio-common/tst-unbputc.sh b/REORG.TODO/stdio-common/tst-unbputc.sh
new file mode 100755
index 0000000000..d75a8bb1af
--- /dev/null
+++ b/REORG.TODO/stdio-common/tst-unbputc.sh
@@ -0,0 +1,33 @@
+#!/bin/sh
+# Testing the stdio implementation
+# Copyright (C) 2000-2017 Free Software Foundation, Inc.
+# This file is part of the GNU C Library.
+
+# The GNU C Library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+
+# The GNU C Library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+
+# You should have received a copy of the GNU Lesser General Public
+# License along with the GNU C Library; if not, see
+# <http://www.gnu.org/licenses/>.
+
+set -e
+
+common_objpfx=$1; shift
+test_program_prefix=$1; shift
+
+status=0
+
+${test_program_prefix} \
+  ${common_objpfx}stdio-common/tst-unbputc \
+    2> ${common_objpfx}stdio-common/tst-unbputc.out || status=1
+
+(printf 12 | cmp ${common_objpfx}stdio-common/tst-unbputc.out -) || status=1
+
+exit $status
diff --git a/REORG.TODO/stdio-common/tst-ungetc.c b/REORG.TODO/stdio-common/tst-ungetc.c
new file mode 100644
index 0000000000..44cf6a6bf6
--- /dev/null
+++ b/REORG.TODO/stdio-common/tst-ungetc.c
@@ -0,0 +1,63 @@
+/* Test for ungetc bugs.  */
+
+#include <stdio.h>
+#include <unistd.h>
+
+#undef assert
+#define assert(x) \
+  if (!(x)) \
+    { \
+      fputs ("test failed: " #x "\n", stderr); \
+      retval = 1; \
+      goto the_end; \
+    }
+
+int
+main (int argc, char *argv[])
+{
+  char *name;
+  FILE *fp = NULL;
+  int retval = 0;
+  int c;
+  char buffer[64];
+
+  name = tmpnam (NULL);
+  fp = fopen (name, "w");
+  assert (fp != NULL)
+  fputs ("bla", fp);
+  fclose (fp);
+  fp = NULL;
+
+  fp = fopen (name, "r");
+  assert (fp != NULL);
+  assert (ungetc ('z', fp) == 'z');
+  assert (getc (fp) == 'z');
+  assert (getc (fp) == 'b');
+  assert (getc (fp) == 'l');
+  assert (ungetc ('m', fp) == 'm');
+  assert (getc (fp) == 'm');
+  assert ((c = getc (fp)) == 'a');
+  assert (getc (fp) == EOF);
+  assert (ungetc (c, fp) == c);
+  assert (feof (fp) == 0);
+  assert (getc (fp) == c);
+  assert (getc (fp) == EOF);
+  fclose (fp);
+  fp = NULL;
+
+  fp = fopen (name, "r");
+  assert (fp != NULL);
+  assert (getc (fp) == 'b');
+  assert (getc (fp) == 'l');
+  assert (ungetc ('b', fp) == 'b');
+  assert (fread (buffer, 1, 64, fp) == 2);
+  assert (buffer[0] == 'b');
+  assert (buffer[1] == 'a');
+
+the_end:
+  if (fp != NULL)
+    fclose (fp);
+  unlink (name);
+
+  return retval;
+}
diff --git a/REORG.TODO/stdio-common/tst-unlockedio.c b/REORG.TODO/stdio-common/tst-unlockedio.c
new file mode 100644
index 0000000000..35652ce772
--- /dev/null
+++ b/REORG.TODO/stdio-common/tst-unlockedio.c
@@ -0,0 +1,169 @@
+/* Test for some *_unlocked stdio interfaces.
+   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Jakub Jelinek <jakub@redhat.com>, 2004.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <libc-diag.h>
+
+int fd;
+static void do_prepare (void);
+static int do_test (void);
+#define PREPARE(argc, argv) do_prepare ()
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
+
+static int
+do_test (void)
+{
+  const char blah[] = "BLAH";
+  char buf[strlen (blah) + 1];
+  FILE *fp, *f;
+  const char *cp;
+  char *wp;
+
+  if ((fp = fdopen (fd, "w+")) == NULL)
+    exit (1);
+
+  flockfile (fp);
+
+  f = fp;
+  cp = blah;
+  /* These tests deliberately use fwrite_unlocked with the size
+     argument specified as 0, which results in "division by zero"
+     warnings from the expansion of that macro (in code that is not
+     evaluated for a size of 0).  This applies to the tests of
+     fread_unlocked below as well.  */
+  DIAG_PUSH_NEEDS_COMMENT;
+  DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wdiv-by-zero");
+  if (ftello (fp) != 0
+      || fwrite_unlocked (blah, blah - blah, strlen (blah), f++) != 0
+      || f != fp + 1
+      || fwrite_unlocked ("", 5.0, 0, --f) != 0
+      || f != fp
+      || fwrite_unlocked (cp++, 16, 0.25, fp) != 0
+      || cp != blah + 1
+      || fwrite_unlocked (--cp, 0.25, 16, fp) != 0
+      || cp != blah
+      || fwrite_unlocked (blah, 0, -0.0, fp) != 0
+      || ftello (fp) != 0)
+    {
+      puts ("One of fwrite_unlocked tests failed");
+      exit (1);
+    }
+  DIAG_POP_NEEDS_COMMENT;
+
+  if (fwrite_unlocked (blah, 1, strlen (blah) - 2, fp) != strlen (blah) - 2)
+    {
+      puts ("Could not write string into file");
+      exit (1);
+    }
+
+  if (putc_unlocked ('A' + 0x1000000, fp) != 'A')
+    {
+      puts ("putc_unlocked failed");
+      exit (1);
+    }
+
+  f = fp;
+  cp = blah + strlen (blah) - 1;
+  if (putc_unlocked (*cp++, f++) != 'H'
+      || f != fp + 1
+      || cp != strchr (blah, '\0'))
+    {
+      puts ("fputc_unlocked failed");
+      exit (1);
+    }
+
+  if (ftello (fp) != (off_t) strlen (blah))
+    {
+      printf ("Failed to write %zd bytes to temporary file", strlen (blah));
+      exit (1);
+    }
+
+  rewind (fp);
+
+  f = fp;
+  wp = buf;
+  memset (buf, ' ', sizeof (buf));
+  /* See explanation above.  */
+  DIAG_PUSH_NEEDS_COMMENT;
+  DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wdiv-by-zero");
+  if (ftello (fp) != 0
+      || fread_unlocked (buf, buf - buf, strlen (blah), f++) != 0
+      || f != fp + 1
+      || fread_unlocked (buf, 5.0, 0, --f) != 0
+      || f != fp
+      || fread_unlocked (wp++, 16, 0.25, fp) != 0
+      || wp != buf + 1
+      || fread_unlocked (--wp, 0.25, 16, fp) != 0
+      || wp != buf
+      || fread_unlocked (buf, 0, -0.0, fp) != 0
+      || ftello (fp) != 0
+      || memcmp (buf, "     ", sizeof (buf)) != 0)
+    {
+      puts ("One of fread_unlocked tests failed");
+      exit (1);
+    }
+  DIAG_POP_NEEDS_COMMENT;
+
+  if (fread_unlocked (buf, 1, strlen (blah) - 2, fp) != strlen (blah) - 2)
+    {
+      puts ("Could not read string from file");
+      exit (1);
+    }
+
+  if (getc_unlocked (fp) != 'A')
+    {
+      puts ("getc_unlocked failed");
+      exit (1);
+    }
+
+  f = fp;
+  if (fgetc_unlocked (f++) != 'H'
+      || f != fp + 1
+      || fgetc_unlocked (--f) != EOF
+      || f != fp)
+    {
+      puts ("fgetc_unlocked failed");
+      exit (1);
+    }
+
+  if (ftello (fp) != (off_t) strlen (blah))
+    {
+      printf ("Failed to read %zd bytes from temporary file", strlen (blah));
+      exit (1);
+    }
+
+  funlockfile (fp);
+  fclose (fp);
+
+  return 0;
+}
+
+static void
+do_prepare (void)
+{
+  fd = create_temp_file ("tst-unlockedio.", NULL);
+  if (fd == -1)
+    {
+      printf ("cannot create temporary file: %m\n");
+      exit (1);
+    }
+}
diff --git a/REORG.TODO/stdio-common/tst-vfprintf-width-prec.c b/REORG.TODO/stdio-common/tst-vfprintf-width-prec.c
new file mode 100644
index 0000000000..c85190275a
--- /dev/null
+++ b/REORG.TODO/stdio-common/tst-vfprintf-width-prec.c
@@ -0,0 +1,108 @@
+/* Test for memory leak with large width and precision.
+   Copyright (C) 1991-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <mcheck.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/resource.h>
+#include <wchar.h>
+
+static int
+do_test (void)
+{
+  mtrace ();
+
+  int ret;
+  {
+    char *result;
+    ret = asprintf (&result, "%133000.133001x", 17);
+    if (ret < 0)
+      {
+        printf ("error: asprintf: %m\n");
+        return 1;
+      }
+    free (result);
+  }
+  {
+    wchar_t *result = calloc (ret + 1, sizeof (wchar_t));
+    if (result == NULL)
+      {
+        printf ("error: calloc (%d, %zu): %m", ret + 1, sizeof (wchar_t));
+        return 1;
+      }
+
+    ret = swprintf (result, ret + 1, L"%133000.133001x", 17);
+    if (ret < 0)
+      {
+        printf ("error: swprintf: %d (%m)\n", ret);
+        return 1;
+      }
+    free (result);
+  }
+
+  /* Limit the size of the process, so that the second allocation will
+     fail.  */
+  {
+    struct rlimit limit;
+    if (getrlimit (RLIMIT_AS, &limit) != 0)
+      {
+        printf ("getrlimit (RLIMIT_AS) failed: %m\n");
+        return 1;
+      }
+    long target = 200 * 1024 * 1024;
+    if (limit.rlim_cur == RLIM_INFINITY || limit.rlim_cur > target)
+      {
+        limit.rlim_cur = target;
+        if (setrlimit (RLIMIT_AS, &limit) != 0)
+          {
+            printf ("setrlimit (RLIMIT_AS) failed: %m\n");
+            return 1;
+          }
+      }
+  }
+
+  {
+    char *result;
+    ret = asprintf (&result, "%133000.999999999x", 17);
+    if (ret >= 0)
+      {
+        printf ("error: asprintf: incorrect result %d\n", ret);
+        return 1;
+      }
+  }
+  {
+    wchar_t result[100];
+    if (result == NULL)
+      {
+        printf ("error: calloc (%d, %zu): %m", ret + 1, sizeof (wchar_t));
+        return 1;
+      }
+
+    ret = swprintf (result, 100, L"%133000.999999999x", 17);
+    if (ret >= 0)
+      {
+        printf ("error: swprintf: incorrect result %d\n", ret);
+        return 1;
+      }
+  }
+
+  return 0;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/stdio-common/tst-wc-printf.c b/REORG.TODO/stdio-common/tst-wc-printf.c
new file mode 100644
index 0000000000..2a2acb5059
--- /dev/null
+++ b/REORG.TODO/stdio-common/tst-wc-printf.c
@@ -0,0 +1,25 @@
+#define _GNU_SOURCE 1
+#include <wchar.h>
+#include <stdio.h>
+#include <string.h>
+#include <wctype.h>
+
+static int
+do_test (void)
+{
+  wchar_t tmp[3];
+  tmp[0] = '8';
+  tmp[1] = '1';
+  tmp[2] = 0;
+
+  printf ("Test for wide character output with printf\n");
+
+  printf ("with %%S: %S\n", tmp);
+
+  printf ("with %%C: %C\n", (wint_t) tmp[0]);
+
+  return 0;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/stdio-common/tstdiomisc.c b/REORG.TODO/stdio-common/tstdiomisc.c
new file mode 100644
index 0000000000..89009e0549
--- /dev/null
+++ b/REORG.TODO/stdio-common/tstdiomisc.c
@@ -0,0 +1,289 @@
+#include <float.h>
+#include <math.h>
+#include <stdio.h>
+#include <string.h>
+#include <wchar.h>
+#include <libc-diag.h>
+
+static int
+t1 (void)
+{
+  int n = -1;
+  sscanf ("abc  ", "abc %n", &n);
+  printf ("t1: count=%d\n", n);
+
+  return n != 5;
+}
+
+static int
+t2 (void)
+{
+  int result = 0;
+  int n;
+  long N;
+  int retval;
+#define SCAN(INPUT, FORMAT, VAR, EXP_RES, EXP_VAL) \
+  VAR = -1; \
+  retval = sscanf (INPUT, FORMAT, &VAR); \
+  printf ("sscanf (\"%s\", \"%s\", &x) => %d, x = %ld\n", \
+	  INPUT, FORMAT, retval, (long int) VAR); \
+  result |= retval != EXP_RES || VAR != EXP_VAL
+
+  /* This function is testing corner cases of the scanf format string,
+     so they do not all conform to -Wformat's expectations.  */
+  DIAG_PUSH_NEEDS_COMMENT;
+  DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wformat");
+  DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wformat-extra-args");
+
+  SCAN ("12345", "%ld", N, 1, 12345);
+  SCAN ("12345", "%llllld", N, 0, -1);
+  SCAN ("12345", "%LLLLLd", N, 0, -1);
+  SCAN ("test ", "%*s%n",  n, 0, 4);
+  SCAN ("test ", "%2*s%n",  n, 0, -1);
+  SCAN ("12 ",   "%l2d",  n, 0, -1);
+  SCAN ("12 ",   "%2ld",  N, 1, 12);
+
+  n = -1;
+  N = -1;
+  retval = sscanf ("1 1", "%d %Z", &n, &N);
+  printf ("sscanf (\"1 1\", \"%%d %%Z\", &n, &N) => %d, n = %d, N = %ld\n", \
+	  retval, n, N); \
+  result |= retval != 1 || n != 1 || N != -1;
+
+  DIAG_POP_NEEDS_COMMENT;
+
+  return result;
+}
+
+static int
+t3 (void)
+{
+  char buf[80];
+  wchar_t wbuf[80];
+  int result = 0;
+  int retval;
+
+  retval = sprintf (buf, "%p", (char *) NULL);
+  result |= retval != 5 || strcmp (buf, "(nil)") != 0;
+
+  retval = swprintf (wbuf, sizeof (wbuf) / sizeof (wbuf[0]),
+		     L"%p", (char *) NULL);
+  result |= retval != 5 || wcscmp (wbuf, L"(nil)") != 0;
+
+  return result;
+}
+
+volatile double qnanval;
+volatile long double lqnanval;
+/* A sNaN is only guaranteed to be representable in variables with static (or
+   thread-local) storage duration.  */
+static volatile double snanval = __builtin_nans ("");
+static volatile double msnanval = -__builtin_nans ("");
+static volatile long double lsnanval = __builtin_nansl ("");
+static volatile long double lmsnanval = -__builtin_nansl ("");
+volatile double infval;
+volatile long double linfval;
+
+
+static int
+F (void)
+{
+  char buf[80];
+  wchar_t wbuf[40];
+  int result = 0;
+
+  qnanval = NAN;
+
+  /* The %f and %F arguments are in fact constants, but GCC is
+     prevented from seeing this (volatile is used) so it cannot tell
+     that the output is not truncated.  */
+  DIAG_PUSH_NEEDS_COMMENT;
+#if __GNUC_PREREQ (7, 0)
+  DIAG_IGNORE_NEEDS_COMMENT (7.0, "-Wformat-truncation");
+#endif
+
+  snprintf (buf, sizeof buf, "%a %A %e %E %f %F %g %G",
+	    qnanval, qnanval, qnanval, qnanval,
+	    qnanval, qnanval, qnanval, qnanval);
+  result |= strcmp (buf, "nan NAN nan NAN nan NAN nan NAN") != 0;
+  printf ("expected \"nan NAN nan NAN nan NAN nan NAN\", got \"%s\"\n", buf);
+
+  snprintf (buf, sizeof buf, "%a %A %e %E %f %F %g %G",
+	    -qnanval, -qnanval, -qnanval, -qnanval,
+	    -qnanval, -qnanval, -qnanval, -qnanval);
+  result |= strcmp (buf, "-nan -NAN -nan -NAN -nan -NAN -nan -NAN") != 0;
+  printf ("expected \"-nan -NAN -nan -NAN -nan -NAN -nan -NAN\", got \"%s\"\n",
+	  buf);
+
+  snprintf (buf, sizeof buf, "%a %A %e %E %f %F %g %G",
+	    snanval, snanval, snanval, snanval,
+	    snanval, snanval, snanval, snanval);
+  result |= strcmp (buf, "nan NAN nan NAN nan NAN nan NAN") != 0;
+  printf ("expected \"nan NAN nan NAN nan NAN nan NAN\", got \"%s\"\n", buf);
+
+  snprintf (buf, sizeof buf, "%a %A %e %E %f %F %g %G",
+	    msnanval, msnanval, msnanval, msnanval,
+	    msnanval, msnanval, msnanval, msnanval);
+  result |= strcmp (buf, "-nan -NAN -nan -NAN -nan -NAN -nan -NAN") != 0;
+  printf ("expected \"-nan -NAN -nan -NAN -nan -NAN -nan -NAN\", got \"%s\"\n",
+	  buf);
+
+  infval = DBL_MAX * DBL_MAX;
+
+  snprintf (buf, sizeof buf, "%a %A %e %E %f %F %g %G",
+	    infval, infval, infval, infval, infval, infval, infval, infval);
+  result |= strcmp (buf, "inf INF inf INF inf INF inf INF") != 0;
+  printf ("expected \"inf INF inf INF inf INF inf INF\", got \"%s\"\n", buf);
+
+  snprintf (buf, sizeof buf, "%a %A %e %E %f %F %g %G",
+	    -infval, -infval, -infval, -infval,
+	    -infval, -infval, -infval, -infval);
+  result |= strcmp (buf, "-inf -INF -inf -INF -inf -INF -inf -INF") != 0;
+  printf ("expected \"-inf -INF -inf -INF -inf -INF -inf -INF\", got \"%s\"\n",
+	  buf);
+
+  swprintf (wbuf, sizeof wbuf / sizeof (wbuf[0]), L"%a %A %e %E %f %F %g %G",
+	    qnanval, qnanval, qnanval, qnanval,
+	    qnanval, qnanval, qnanval, qnanval);
+  result |= wcscmp (wbuf, L"nan NAN nan NAN nan NAN nan NAN") != 0;
+  printf ("expected L\"nan NAN nan NAN nan NAN nan NAN\", got L\"%S\"\n", wbuf);
+
+  swprintf (wbuf, sizeof wbuf / sizeof (wbuf[0]), L"%a %A %e %E %f %F %g %G",
+	    -qnanval, -qnanval, -qnanval, -qnanval,
+	    -qnanval, -qnanval, -qnanval, -qnanval);
+  result |= wcscmp (wbuf, L"-nan -NAN -nan -NAN -nan -NAN -nan -NAN") != 0;
+  printf ("expected L\"-nan -NAN -nan -NAN -nan -NAN -nan -NAN\", got L\"%S\"\n",
+	  wbuf);
+
+  swprintf (wbuf, sizeof wbuf / sizeof (wbuf[0]), L"%a %A %e %E %f %F %g %G",
+	    snanval, snanval, snanval, snanval,
+	    snanval, snanval, snanval, snanval);
+  result |= wcscmp (wbuf, L"nan NAN nan NAN nan NAN nan NAN") != 0;
+  printf ("expected L\"nan NAN nan NAN nan NAN nan NAN\", got L\"%S\"\n", wbuf);
+
+  swprintf (wbuf, sizeof wbuf / sizeof (wbuf[0]), L"%a %A %e %E %f %F %g %G",
+	    msnanval, msnanval, msnanval, msnanval,
+	    msnanval, msnanval, msnanval, msnanval);
+  result |= wcscmp (wbuf, L"-nan -NAN -nan -NAN -nan -NAN -nan -NAN") != 0;
+  printf ("expected L\"-nan -NAN -nan -NAN -nan -NAN -nan -NAN\", got L\"%S\"\n",
+	  wbuf);
+
+  swprintf (wbuf, sizeof wbuf / sizeof (wbuf[0]), L"%a %A %e %E %f %F %g %G",
+	    infval, infval, infval, infval, infval, infval, infval, infval);
+  result |= wcscmp (wbuf, L"inf INF inf INF inf INF inf INF") != 0;
+  printf ("expected L\"inf INF inf INF inf INF inf INF\", got L\"%S\"\n", wbuf);
+
+  swprintf (wbuf, sizeof wbuf / sizeof (wbuf[0]), L"%a %A %e %E %f %F %g %G",
+	    -infval, -infval, -infval, -infval,
+	    -infval, -infval, -infval, -infval);
+  result |= wcscmp (wbuf, L"-inf -INF -inf -INF -inf -INF -inf -INF") != 0;
+  printf ("expected L\"-inf -INF -inf -INF -inf -INF -inf -INF\", got L\"%S\"\n",
+	  wbuf);
+
+  lqnanval = NAN;
+
+  snprintf (buf, sizeof buf, "%La %LA %Le %LE %Lf %LF %Lg %LG",
+	    lqnanval, lqnanval, lqnanval, lqnanval,
+	    lqnanval, lqnanval, lqnanval, lqnanval);
+  result |= strcmp (buf, "nan NAN nan NAN nan NAN nan NAN") != 0;
+  printf ("expected \"nan NAN nan NAN nan NAN nan NAN\", got \"%s\"\n", buf);
+
+  snprintf (buf, sizeof buf, "%La %LA %Le %LE %Lf %LF %Lg %LG",
+	    -lqnanval, -lqnanval, -lqnanval, -lqnanval,
+	    -lqnanval, -lqnanval, -lqnanval, -lqnanval);
+  result |= strcmp (buf, "-nan -NAN -nan -NAN -nan -NAN -nan -NAN") != 0;
+  printf ("expected \"-nan -NAN -nan -NAN -nan -NAN -nan -NAN\", got \"%s\"\n",
+	  buf);
+
+  snprintf (buf, sizeof buf, "%La %LA %Le %LE %Lf %LF %Lg %LG",
+	    lsnanval, lsnanval, lsnanval, lsnanval,
+	    lsnanval, lsnanval, lsnanval, lsnanval);
+  result |= strcmp (buf, "nan NAN nan NAN nan NAN nan NAN") != 0;
+  printf ("expected \"nan NAN nan NAN nan NAN nan NAN\", got \"%s\"\n", buf);
+
+  snprintf (buf, sizeof buf, "%La %LA %Le %LE %Lf %LF %Lg %LG",
+	    lmsnanval, lmsnanval, lmsnanval, lmsnanval,
+	    lmsnanval, lmsnanval, lmsnanval, lmsnanval);
+  result |= strcmp (buf, "-nan -NAN -nan -NAN -nan -NAN -nan -NAN") != 0;
+  printf ("expected \"-nan -NAN -nan -NAN -nan -NAN -nan -NAN\", got \"%s\"\n",
+	  buf);
+
+  linfval = LDBL_MAX * LDBL_MAX;
+
+  snprintf (buf, sizeof buf, "%La %LA %Le %LE %Lf %LF %Lg %LG",
+	    linfval, linfval, linfval, linfval,
+	    linfval, linfval, linfval, linfval);
+  result |= strcmp (buf, "inf INF inf INF inf INF inf INF") != 0;
+  printf ("expected \"inf INF inf INF inf INF inf INF\", got \"%s\"\n", buf);
+
+  snprintf (buf, sizeof buf, "%La %LA %Le %LE %Lf %LF %Lg %LG",
+	    -linfval, -linfval, -linfval, -linfval,
+	    -linfval, -linfval, -linfval, -linfval);
+  result |= strcmp (buf, "-inf -INF -inf -INF -inf -INF -inf -INF") != 0;
+  printf ("expected \"-inf -INF -inf -INF -inf -INF -inf -INF\", got \"%s\"\n",
+	  buf);
+
+  swprintf (wbuf, sizeof wbuf / sizeof (wbuf[0]),
+	    L"%La %LA %Le %LE %Lf %LF %Lg %LG",
+	    lqnanval, lqnanval, lqnanval, lqnanval,
+	    lqnanval, lqnanval, lqnanval, lqnanval);
+  result |= wcscmp (wbuf, L"nan NAN nan NAN nan NAN nan NAN") != 0;
+  printf ("expected L\"nan NAN nan NAN nan NAN nan NAN\", got L\"%S\"\n", wbuf);
+
+  swprintf (wbuf, sizeof wbuf / sizeof (wbuf[0]),
+	    L"%La %LA %Le %LE %Lf %LF %Lg %LG",
+	    -lqnanval, -lqnanval, -lqnanval, -lqnanval,
+	    -lqnanval, -lqnanval, -lqnanval, -lqnanval);
+  result |= wcscmp (wbuf, L"-nan -NAN -nan -NAN -nan -NAN -nan -NAN") != 0;
+  printf ("expected L\"-nan -NAN -nan -NAN -nan -NAN -nan -NAN\", got L\"%S\"\n",
+	  wbuf);
+
+  swprintf (wbuf, sizeof wbuf / sizeof (wbuf[0]),
+	    L"%La %LA %Le %LE %Lf %LF %Lg %LG",
+	    lsnanval, lsnanval, lsnanval, lsnanval,
+	    lsnanval, lsnanval, lsnanval, lsnanval);
+  result |= wcscmp (wbuf, L"nan NAN nan NAN nan NAN nan NAN") != 0;
+  printf ("expected L\"nan NAN nan NAN nan NAN nan NAN\", got L\"%S\"\n", wbuf);
+
+  swprintf (wbuf, sizeof wbuf / sizeof (wbuf[0]),
+	    L"%La %LA %Le %LE %Lf %LF %Lg %LG",
+	    lmsnanval, lmsnanval, lmsnanval, lmsnanval,
+	    lmsnanval, lmsnanval, lmsnanval, lmsnanval);
+  result |= wcscmp (wbuf, L"-nan -NAN -nan -NAN -nan -NAN -nan -NAN") != 0;
+  printf ("expected L\"-nan -NAN -nan -NAN -nan -NAN -nan -NAN\", got L\"%S\"\n",
+	  wbuf);
+
+  swprintf (wbuf, sizeof wbuf / sizeof (wbuf[0]),
+	    L"%La %LA %Le %LE %Lf %LF %Lg %LG",
+	    linfval, linfval, linfval, linfval,
+	    linfval, linfval, linfval, linfval);
+  result |= wcscmp (wbuf, L"inf INF inf INF inf INF inf INF") != 0;
+  printf ("expected L\"inf INF inf INF inf INF inf INF\", got L\"%S\"\n", wbuf);
+
+  swprintf (wbuf, sizeof wbuf / sizeof (wbuf[0]),
+	    L"%La %LA %Le %LE %Lf %LF %Lg %LG",
+	    -linfval, -linfval, -linfval, -linfval,
+	    -linfval, -linfval, -linfval, -linfval);
+  result |= wcscmp (wbuf, L"-inf -INF -inf -INF -inf -INF -inf -INF") != 0;
+  printf ("expected L\"-inf -INF -inf -INF -inf -INF -inf -INF\", got L\"%S\"\n",
+	  wbuf);
+
+  DIAG_POP_NEEDS_COMMENT;
+
+  return result;
+}
+
+int
+main (int argc, char *argv[])
+{
+  int result = 0;
+
+  result |= t1 ();
+  result |= t2 ();
+  result |= t3 ();
+  result |= F ();
+
+  result |= fflush (stdout) == EOF;
+
+  return result;
+}
diff --git a/REORG.TODO/stdio-common/tstgetln.c b/REORG.TODO/stdio-common/tstgetln.c
new file mode 100644
index 0000000000..79ab90c7cc
--- /dev/null
+++ b/REORG.TODO/stdio-common/tstgetln.c
@@ -0,0 +1,46 @@
+/* Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <stdio.h>
+#undef ssize_t
+#define ssize_t _IO_ssize_t
+
+int
+main (int argc, char *argv[])
+{
+  char *buf = NULL;
+  size_t size = 0;
+  ssize_t len;
+
+  while ((len = getline (&buf, &size, stdin)) != -1)
+    {
+      printf ("bufsize %Zu; read %Zd: ", size, len);
+      if (fwrite (buf, len, 1, stdout) != 1)
+	{
+	  perror ("fwrite");
+	  return 1;
+	}
+    }
+
+  if (ferror (stdin))
+    {
+      perror ("getline");
+      return 1;
+    }
+
+  return 0;
+}
diff --git a/REORG.TODO/stdio-common/tstgetln.input b/REORG.TODO/stdio-common/tstgetln.input
new file mode 100644
index 0000000000..d04ed5bf78
--- /dev/null
+++ b/REORG.TODO/stdio-common/tstgetln.input
@@ -0,0 +1,3 @@
+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
+z
diff --git a/REORG.TODO/stdio-common/tstscanf.c b/REORG.TODO/stdio-common/tstscanf.c
new file mode 100644
index 0000000000..50d0f33acf
--- /dev/null
+++ b/REORG.TODO/stdio-common/tstscanf.c
@@ -0,0 +1,355 @@
+/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#ifdef	BSD
+#include </usr/include/stdio.h>
+#else
+#include <stdio.h>
+#endif
+#include <math.h>
+#include <stdlib.h>
+#include <string.h>
+
+
+int
+main (int argc, char **argv)
+{
+  char buf[BUFSIZ];
+  FILE *in = stdin, *out = stdout;
+  int x;
+  int result = 0;
+
+  if (sscanf ("0", "%d", &x) != 1)
+    {
+      fputs ("test failed!\n", stdout);
+      result = 1;
+    }
+
+  if (sscanf ("08905x", "%9[0-9]", buf) != 1
+      || strcmp (buf, "08905") != 0)
+    {
+      fputs ("test failed!\n", stdout);
+      result = 1;
+    }
+
+  if (sscanf ("", "%10[a-z]", buf) != EOF)
+    {
+      fputs ("test failed!\n", stdout);
+      result = 1;
+    }
+
+  sscanf ("conversion] Zero flag Ze]ro#\n", "%*[^]] %[^#]\n", buf);
+  if (strcmp (buf, "] Zero flag Ze]ro") != 0)
+    {
+      fputs ("test failed!\n", stdout);
+      result = 1;
+    }
+
+  if (argc == 2 && !strcmp (argv[1], "-opipe"))
+    {
+      out = popen ("/bin/cat", "w");
+      if (out == NULL)
+	{
+	  perror ("popen: /bin/cat");
+	  result = 1;
+	}
+    }
+  else if (argc == 3 && !strcmp (argv[1], "-ipipe"))
+    {
+      sprintf (buf, "/bin/cat %s", argv[2]);
+      in = popen (buf, "r");
+      if (in == NULL)
+	{
+	  perror ("popen: /bin/cat");
+	  result = 1;
+	}
+    }
+
+  {
+    char name[50];
+    fprintf (out,
+	     "sscanf (\"thompson\", \"%%s\", name) == %d, name == \"%s\"\n",
+	     sscanf ("thompson", "%s", name),
+	     name);
+    if (strcmp (name, "thompson") != 0)
+      {
+	fputs ("test failed!\n", stdout);
+	result = 1;
+      }
+  }
+
+  fputs ("Testing scanf (vfscanf)\n", out);
+
+  fputs ("Test 1:\n", out);
+  {
+    int n, i;
+    float x;
+    char name[50];
+    n = fscanf (in, "%d%f%s", &i, &x, name);
+    fprintf (out, "n = %d, i = %d, x = %f, name = \"%.50s\"\n",
+	     n, i, x, name);
+    if (n != 3 || i != 25 || x != 5.432F || strcmp (name, "thompson"))
+      {
+	fputs ("test failed!\n", stdout);
+	result = 1;
+      }
+  }
+  fprintf (out, "Residual: \"%s\"\n", fgets (buf, sizeof (buf), in));
+  if (strcmp (buf, "\n"))
+    {
+      fputs ("test failed!\n", stdout);
+      result = 1;
+    }
+  fputs ("Test 2:\n", out);
+  {
+    int i;
+    float x;
+    char name[50];
+    (void) fscanf (in, "%2d%f%*d %[0123456789]", &i, &x, name);
+    fprintf (out, "i = %d, x = %f, name = \"%.50s\"\n", i, x, name);
+    if (i != 56 || x != 789.0F || strcmp (name, "56"))
+      {
+	fputs ("test failed!\n", stdout);
+	result = 1;
+      }
+  }
+  fprintf (out, "Residual: \"%s\"\n", fgets (buf, sizeof (buf), in));
+  if (strcmp (buf, "a72\n"))
+    {
+      fputs ("test failed!\n", stdout);
+      result = 1;
+    }
+  fputs ("Test 3:\n", out);
+  {
+    static struct {
+      int count;
+      float quant;
+      const char *units;
+      const char *item;
+    } ok[] = {
+      { 3, 2.0F, "quarts", "oil" },
+      { 2, -12.8F, "degrees", "" },
+      { 0, 0.0F, "", "" },
+      { 3, 10.0F, "LBS", "fertilizer" },
+      { 3, 100.0F, "rgs", "energy" },
+      { -1, 0.0F, "", "" }};
+    size_t rounds = 0;
+    float quant;
+    char units[21], item[21];
+    while (!feof (in) && !ferror (in))
+      {
+	int count;
+
+	if (rounds++ >= sizeof (ok) / sizeof (ok[0]))
+	  {
+	    fputs ("test failed!\n", stdout);
+	    result = 1;
+	  }
+
+	quant = 0.0;
+	units[0] = item[0] = '\0';
+	count = fscanf (in, "%f%20s of %20s", &quant, units, item);
+	(void) fscanf (in, "%*[^\n]");
+	fprintf (out, "count = %d, quant = %f, item = %.21s, units = %.21s\n",
+		 count, quant, item, units);
+	if (count != ok[rounds-1].count || quant != ok[rounds-1].quant
+	    || strcmp (item, ok[rounds-1].item)
+	    || strcmp (units, ok[rounds-1].units))
+	  {
+	    fputs ("test failed!\n", stdout);
+	    result = 1;
+	  }
+      }
+  }
+  buf[0] = '\0';
+  fprintf (out, "Residual: \"%s\"\n", fgets (buf, sizeof (buf), in));
+  if (strcmp (buf, ""))
+    {
+      fputs ("test failed!\n", stdout);
+      result = 1;
+    }
+
+  if (out != stdout)
+    pclose (out);
+
+  fputs ("Test 4:\n", out);
+  {
+    int res, val, n;
+
+    res = sscanf ("-242", "%3o%n", &val, &n);
+    printf ("res = %d, val = %d, n = %d\n", res, val, n);
+    if (res != 1 || val != -20 || n != 3)
+      {
+	fputs ("test failed!\n", stdout);
+	result = 1;
+      }
+  }
+
+  fputs ("Test 5:\n", out);
+  {
+    double a = 0, b = 0;
+    int res, n;
+
+    res = sscanf ("1234567", "%3lg%3lg%n", &a, &b, &n);
+    printf ("res = %d, a = %g, b = %g, n = %d\n", res, a, b, n);
+
+    if (res != 2 || a != 123 || b != 456 || n != 6)
+      {
+	fputs ("test failed!\n", stdout);
+	result = 1;
+      }
+
+    res = sscanf ("0", "%lg", &a);
+    printf ("res = %d, a = %g\n", res, a);
+
+    if (res != 1 || a != 0)
+      {
+	fputs ("test failed!\n", stdout);
+	result = 1;
+      }
+
+    res = sscanf ("1e3", "%lg%n", &a, &n);
+    printf ("res = %d, a = %g, n = %d\n", res, a, n);
+
+    if (res != 1 || a != 1000 || n != 3)
+      {
+	fputs ("test failed!\n", stdout);
+	result = 1;
+      }
+  }
+
+  fputs ("Test 6:\n", stdout);
+  {
+    char *p = (char *) -1;
+    int res;
+
+    sprintf (buf, "%p", NULL);
+    res = sscanf (buf, "%p", &p);
+    printf ("sscanf (\"%s\", \"%%p\", &p) = %d, p == %p\n", buf, res, p);
+
+    if (res != 1 || p != NULL)
+      {
+	fputs ("test failed!\n", stdout);
+	result = 1;
+      }
+  }
+
+  fputs ("Test 7:\n", stdout);
+  {
+    short a[2] = { -1, -1 };
+    int res;
+
+    res = sscanf ("32767 1234", "%hd %hd", &a[0], &a[1]);
+    printf ("res = %d, a[0] = %d, a[1] = %d\n", res, a[0], a[1]);
+
+    if (res != 2 || a[0] != 32767 || a[1] != 1234)
+      {
+	fputs ("test failed!\n", stdout);
+	result = 1;
+      }
+  }
+
+  fputs ("Test 8:\n", stdout);
+  {
+    double d = 123456.789;
+    int res;
+
+    res = sscanf ("0x1234", "%lf", &d);
+    printf ("res = %d, d = %f\n", res, d);
+
+    if (res != 1 || d != 4660)
+      {
+	fputs ("test failed!\n", stdout);
+	result = 1;
+      }
+  }
+
+  fputs ("Test 9:\n", stdout);
+  {
+    /* From PR libc/1313 reported by Ben Caradoc-Davies <bmcd@physics.otago.ac.nz>.  */
+    float value;
+    int res;
+
+    res = sscanf ("0123", "%2f", &value);
+    if (res != 1 || value != 1.0)
+      {
+	fputs ("test failed!\n", stdout);
+	result = 1;
+      }
+  }
+
+  fputs ("Test 10:\n", stdout);
+  {
+    float value;
+    int res;
+
+    res = sscanf ("--", "%f", &value);
+    if (res != 0)
+      {
+	fputs ("test failed!\n", stdout);
+	result = 1;
+      }
+  }
+
+  fputs ("Test 11:\n", stdout);
+  {
+    char uart[50];
+    int res;
+
+    res = sscanf ("uart:16550A tx:0", "uart:%31s tx:%*u", uart);
+    if (res != 1)
+      {
+	fputs ("test failed!\n", stdout);
+	result = 1;
+      }
+  }
+
+  fputs ("Test 12:\n", stdout);
+  {
+    char uart[50];
+    int res;
+
+    res = sscanf ("uart:16550A", "uart:%31s tx:%*u", uart);
+    if (res != 1)
+      {
+	fputs ("test failed!\n", stdout);
+	result = 1;
+      }
+  }
+
+  fputs ("Test 13:\n", stdout);
+  {
+    float value;
+    int res;
+
+    res = sscanf ("-InF", "%f", &value);
+    if (res != 1 || isinf (value) != -1)
+      {
+	fputs ("test failed!\n", stdout);
+	result = 1;
+      }
+
+    res = sscanf ("+InfiNiTY", "%f", &value);
+    if (res != 1 || isinf (value) != 1)
+      {
+	fputs ("test failed!\n", stdout);
+	result = 1;
+      }
+  }
+
+  return result;
+}
diff --git a/REORG.TODO/stdio-common/tstscanf.input b/REORG.TODO/stdio-common/tstscanf.input
new file mode 100644
index 0000000000..26158652dd
--- /dev/null
+++ b/REORG.TODO/stdio-common/tstscanf.input
@@ -0,0 +1,7 @@
+25 54.32E-1 thompson
+56789 0123 56a72
+2 quarts of oil
+-12.8degrees Celsius
+lots of luck
+10.0LBS      of       fertilizer
+100ergs of energy
diff --git a/REORG.TODO/stdio-common/vfprintf.c b/REORG.TODO/stdio-common/vfprintf.c
new file mode 100644
index 0000000000..b8c87a539f
--- /dev/null
+++ b/REORG.TODO/stdio-common/vfprintf.c
@@ -0,0 +1,2375 @@
+/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <ctype.h>
+#include <limits.h>
+#include <printf.h>
+#include <stdarg.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+#include <errno.h>
+#include <wchar.h>
+#include <libc-lock.h>
+#include <sys/param.h>
+#include <_itoa.h>
+#include <locale/localeinfo.h>
+#include <stdio.h>
+#include <scratch_buffer.h>
+
+/* This code is shared between the standard stdio implementation found
+   in GNU C library and the libio implementation originally found in
+   GNU libg++.
+
+   Beside this it is also shared between the normal and wide character
+   implementation as defined in ISO/IEC 9899:1990/Amendment 1:1995.  */
+
+
+#include <libioP.h>
+#define FILE		_IO_FILE
+#undef va_list
+#define va_list	_IO_va_list
+#undef BUFSIZ
+#define BUFSIZ		_IO_BUFSIZ
+/* In some cases we need extra space for all the output which is not
+   counted in the width of the string. We assume 32 characters is
+   enough.  */
+#define EXTSIZ		32
+#define ARGCHECK(S, Format) \
+  do									      \
+    {									      \
+      /* Check file argument for consistence.  */			      \
+      CHECK_FILE (S, -1);						      \
+      if (S->_flags & _IO_NO_WRITES)					      \
+	{								      \
+	  S->_flags |= _IO_ERR_SEEN;					      \
+	  __set_errno (EBADF);						      \
+	  return -1;							      \
+	}								      \
+      if (Format == NULL)						      \
+	{								      \
+	  MAYBE_SET_EINVAL;						      \
+	  return -1;							      \
+	}								      \
+    } while (0)
+#define UNBUFFERED_P(S) ((S)->_IO_file_flags & _IO_UNBUFFERED)
+
+#define done_add(val) \
+  do {									      \
+    unsigned int _val = val;						      \
+    assert ((unsigned int) done < (unsigned int) INT_MAX);		      \
+    if (__glibc_unlikely (INT_MAX - done < _val))			      \
+      {									      \
+	done = -1;							      \
+	 __set_errno (EOVERFLOW);					      \
+	goto all_done;							      \
+      }									      \
+    done += _val;							      \
+  } while (0)
+
+#ifndef COMPILE_WPRINTF
+# define vfprintf	_IO_vfprintf_internal
+# define CHAR_T		char
+# define UCHAR_T	unsigned char
+# define INT_T		int
+typedef const char *THOUSANDS_SEP_T;
+# define L_(Str)	Str
+# define ISDIGIT(Ch)	((unsigned int) ((Ch) - '0') < 10)
+# define STR_LEN(Str)	strlen (Str)
+
+# define PUT(F, S, N)	_IO_sputn ((F), (S), (N))
+# define PAD(Padchar) \
+  do {									      \
+    if (width > 0)							      \
+      {									      \
+	_IO_ssize_t written = _IO_padn (s, (Padchar), width);		      \
+	if (__glibc_unlikely (written != width))			      \
+	  {								      \
+	    done = -1;							      \
+	    goto all_done;						      \
+	  }								      \
+	done_add (written);						      \
+      }									      \
+  } while (0)
+# define PUTC(C, F)	_IO_putc_unlocked (C, F)
+# define ORIENT		if (_IO_vtable_offset (s) == 0 && _IO_fwide (s, -1) != -1)\
+			  return -1
+#else
+# define vfprintf	_IO_vfwprintf
+# define CHAR_T		wchar_t
+/* This is a hack!!!  There should be a type uwchar_t.  */
+# define UCHAR_T	unsigned int /* uwchar_t */
+# define INT_T		wint_t
+typedef wchar_t THOUSANDS_SEP_T;
+# define L_(Str)	L##Str
+# define ISDIGIT(Ch)	((unsigned int) ((Ch) - L'0') < 10)
+# define STR_LEN(Str)	__wcslen (Str)
+
+# include <_itowa.h>
+
+# define PUT(F, S, N)	_IO_sputn ((F), (S), (N))
+# define PAD(Padchar) \
+  do {									      \
+    if (width > 0)							      \
+      {									      \
+	_IO_ssize_t written = _IO_wpadn (s, (Padchar), width);		      \
+	if (__glibc_unlikely (written != width))			      \
+	  {								      \
+	    done = -1;							      \
+	    goto all_done;						      \
+	  }								      \
+	done_add (written);						      \
+      }									      \
+  } while (0)
+# define PUTC(C, F)	_IO_putwc_unlocked (C, F)
+# define ORIENT		if (_IO_fwide (s, 1) != 1) return -1
+
+# undef _itoa
+# define _itoa(Val, Buf, Base, Case) _itowa (Val, Buf, Base, Case)
+# define _itoa_word(Val, Buf, Base, Case) _itowa_word (Val, Buf, Base, Case)
+# undef EOF
+# define EOF WEOF
+#endif
+
+#include "_i18n_number.h"
+
+/* Include the shared code for parsing the format string.  */
+#include "printf-parse.h"
+
+
+#define	outchar(Ch)							      \
+  do									      \
+    {									      \
+      const INT_T outc = (Ch);						      \
+      if (PUTC (outc, s) == EOF || done == INT_MAX)			      \
+	{								      \
+	  done = -1;							      \
+	  goto all_done;						      \
+	}								      \
+      ++done;								      \
+    }									      \
+  while (0)
+
+#define outstring(String, Len)						      \
+  do									      \
+    {									      \
+      assert ((size_t) done <= (size_t) INT_MAX);			      \
+      if ((size_t) PUT (s, (String), (Len)) != (size_t) (Len))		      \
+	{								      \
+	  done = -1;							      \
+	  goto all_done;						      \
+	}								      \
+      if (__glibc_unlikely (INT_MAX - done < (Len)))			      \
+      {									      \
+	done = -1;							      \
+	 __set_errno (EOVERFLOW);					      \
+	goto all_done;							      \
+      }									      \
+      done += (Len);							      \
+    }									      \
+  while (0)
+
+/* For handling long_double and longlong we use the same flag.  If
+   `long' and `long long' are effectively the same type define it to
+   zero.  */
+#if LONG_MAX == LONG_LONG_MAX
+# define is_longlong 0
+#else
+# define is_longlong is_long_double
+#endif
+
+/* If `long' and `int' is effectively the same type we don't have to
+   handle `long separately.  */
+#if INT_MAX == LONG_MAX
+# define is_long_num	0
+#else
+# define is_long_num	is_long
+#endif
+
+
+/* Global constants.  */
+static const CHAR_T null[] = L_("(null)");
+
+/* Size of the work_buffer variable (in characters, not bytes.  */
+enum { WORK_BUFFER_SIZE = 1000 };
+
+/* This table maps a character into a number representing a class.  In
+   each step there is a destination label for each class.  */
+static const uint8_t jump_table[] =
+  {
+    /* ' ' */  1,            0,            0, /* '#' */  4,
+	       0, /* '%' */ 14,            0, /* '\''*/  6,
+	       0,            0, /* '*' */  7, /* '+' */  2,
+	       0, /* '-' */  3, /* '.' */  9,            0,
+    /* '0' */  5, /* '1' */  8, /* '2' */  8, /* '3' */  8,
+    /* '4' */  8, /* '5' */  8, /* '6' */  8, /* '7' */  8,
+    /* '8' */  8, /* '9' */  8,            0,            0,
+	       0,            0,            0,            0,
+	       0, /* 'A' */ 26,            0, /* 'C' */ 25,
+	       0, /* 'E' */ 19, /* F */   19, /* 'G' */ 19,
+	       0, /* 'I' */ 29,            0,            0,
+    /* 'L' */ 12,            0,            0,            0,
+	       0,            0,            0, /* 'S' */ 21,
+	       0,            0,            0,            0,
+    /* 'X' */ 18,            0, /* 'Z' */ 13,            0,
+	       0,            0,            0,            0,
+	       0, /* 'a' */ 26,            0, /* 'c' */ 20,
+    /* 'd' */ 15, /* 'e' */ 19, /* 'f' */ 19, /* 'g' */ 19,
+    /* 'h' */ 10, /* 'i' */ 15, /* 'j' */ 28,            0,
+    /* 'l' */ 11, /* 'm' */ 24, /* 'n' */ 23, /* 'o' */ 17,
+    /* 'p' */ 22, /* 'q' */ 12,            0, /* 's' */ 21,
+    /* 't' */ 27, /* 'u' */ 16,            0,            0,
+    /* 'x' */ 18,            0, /* 'z' */ 13
+  };
+
+#define NOT_IN_JUMP_RANGE(Ch) ((Ch) < L_(' ') || (Ch) > L_('z'))
+#define CHAR_CLASS(Ch) (jump_table[(INT_T) (Ch) - L_(' ')])
+#define LABEL(Name) do_##Name
+#ifdef SHARED
+  /* 'int' is enough and it saves some space on 64 bit systems.  */
+# define JUMP_TABLE_TYPE const int
+# define JUMP_TABLE_BASE_LABEL do_form_unknown
+# define REF(Name) &&do_##Name - &&JUMP_TABLE_BASE_LABEL
+# define JUMP(ChExpr, table)						      \
+      do								      \
+	{								      \
+	  int offset;							      \
+	  void *ptr;							      \
+	  spec = (ChExpr);						      \
+	  offset = NOT_IN_JUMP_RANGE (spec) ? REF (form_unknown)	      \
+	    : table[CHAR_CLASS (spec)];					      \
+	  ptr = &&JUMP_TABLE_BASE_LABEL + offset;			      \
+	  goto *ptr;							      \
+	}								      \
+      while (0)
+#else
+# define JUMP_TABLE_TYPE const void *const
+# define REF(Name) &&do_##Name
+# define JUMP(ChExpr, table)						      \
+      do								      \
+	{								      \
+	  const void *ptr;						      \
+	  spec = (ChExpr);						      \
+	  ptr = NOT_IN_JUMP_RANGE (spec) ? REF (form_unknown)		      \
+	    : table[CHAR_CLASS (spec)];					      \
+	  goto *ptr;							      \
+	}								      \
+      while (0)
+#endif
+
+#define STEP0_3_TABLE							      \
+    /* Step 0: at the beginning.  */					      \
+    static JUMP_TABLE_TYPE step0_jumps[30] =				      \
+    {									      \
+      REF (form_unknown),						      \
+      REF (flag_space),		/* for ' ' */				      \
+      REF (flag_plus),		/* for '+' */				      \
+      REF (flag_minus),		/* for '-' */				      \
+      REF (flag_hash),		/* for '<hash>' */			      \
+      REF (flag_zero),		/* for '0' */				      \
+      REF (flag_quote),		/* for '\'' */				      \
+      REF (width_asterics),	/* for '*' */				      \
+      REF (width),		/* for '1'...'9' */			      \
+      REF (precision),		/* for '.' */				      \
+      REF (mod_half),		/* for 'h' */				      \
+      REF (mod_long),		/* for 'l' */				      \
+      REF (mod_longlong),	/* for 'L', 'q' */			      \
+      REF (mod_size_t),		/* for 'z', 'Z' */			      \
+      REF (form_percent),	/* for '%' */				      \
+      REF (form_integer),	/* for 'd', 'i' */			      \
+      REF (form_unsigned),	/* for 'u' */				      \
+      REF (form_octal),		/* for 'o' */				      \
+      REF (form_hexa),		/* for 'X', 'x' */			      \
+      REF (form_float),		/* for 'E', 'e', 'F', 'f', 'G', 'g' */	      \
+      REF (form_character),	/* for 'c' */				      \
+      REF (form_string),	/* for 's', 'S' */			      \
+      REF (form_pointer),	/* for 'p' */				      \
+      REF (form_number),	/* for 'n' */				      \
+      REF (form_strerror),	/* for 'm' */				      \
+      REF (form_wcharacter),	/* for 'C' */				      \
+      REF (form_floathex),	/* for 'A', 'a' */			      \
+      REF (mod_ptrdiff_t),      /* for 't' */				      \
+      REF (mod_intmax_t),       /* for 'j' */				      \
+      REF (flag_i18n),		/* for 'I' */				      \
+    };									      \
+    /* Step 1: after processing width.  */				      \
+    static JUMP_TABLE_TYPE step1_jumps[30] =				      \
+    {									      \
+      REF (form_unknown),						      \
+      REF (form_unknown),	/* for ' ' */				      \
+      REF (form_unknown),	/* for '+' */				      \
+      REF (form_unknown),	/* for '-' */				      \
+      REF (form_unknown),	/* for '<hash>' */			      \
+      REF (form_unknown),	/* for '0' */				      \
+      REF (form_unknown),	/* for '\'' */				      \
+      REF (form_unknown),	/* for '*' */				      \
+      REF (form_unknown),	/* for '1'...'9' */			      \
+      REF (precision),		/* for '.' */				      \
+      REF (mod_half),		/* for 'h' */				      \
+      REF (mod_long),		/* for 'l' */				      \
+      REF (mod_longlong),	/* for 'L', 'q' */			      \
+      REF (mod_size_t),		/* for 'z', 'Z' */			      \
+      REF (form_percent),	/* for '%' */				      \
+      REF (form_integer),	/* for 'd', 'i' */			      \
+      REF (form_unsigned),	/* for 'u' */				      \
+      REF (form_octal),		/* for 'o' */				      \
+      REF (form_hexa),		/* for 'X', 'x' */			      \
+      REF (form_float),		/* for 'E', 'e', 'F', 'f', 'G', 'g' */	      \
+      REF (form_character),	/* for 'c' */				      \
+      REF (form_string),	/* for 's', 'S' */			      \
+      REF (form_pointer),	/* for 'p' */				      \
+      REF (form_number),	/* for 'n' */				      \
+      REF (form_strerror),	/* for 'm' */				      \
+      REF (form_wcharacter),	/* for 'C' */				      \
+      REF (form_floathex),	/* for 'A', 'a' */			      \
+      REF (mod_ptrdiff_t),      /* for 't' */				      \
+      REF (mod_intmax_t),       /* for 'j' */				      \
+      REF (form_unknown)        /* for 'I' */				      \
+    };									      \
+    /* Step 2: after processing precision.  */				      \
+    static JUMP_TABLE_TYPE step2_jumps[30] =				      \
+    {									      \
+      REF (form_unknown),						      \
+      REF (form_unknown),	/* for ' ' */				      \
+      REF (form_unknown),	/* for '+' */				      \
+      REF (form_unknown),	/* for '-' */				      \
+      REF (form_unknown),	/* for '<hash>' */			      \
+      REF (form_unknown),	/* for '0' */				      \
+      REF (form_unknown),	/* for '\'' */				      \
+      REF (form_unknown),	/* for '*' */				      \
+      REF (form_unknown),	/* for '1'...'9' */			      \
+      REF (form_unknown),	/* for '.' */				      \
+      REF (mod_half),		/* for 'h' */				      \
+      REF (mod_long),		/* for 'l' */				      \
+      REF (mod_longlong),	/* for 'L', 'q' */			      \
+      REF (mod_size_t),		/* for 'z', 'Z' */			      \
+      REF (form_percent),	/* for '%' */				      \
+      REF (form_integer),	/* for 'd', 'i' */			      \
+      REF (form_unsigned),	/* for 'u' */				      \
+      REF (form_octal),		/* for 'o' */				      \
+      REF (form_hexa),		/* for 'X', 'x' */			      \
+      REF (form_float),		/* for 'E', 'e', 'F', 'f', 'G', 'g' */	      \
+      REF (form_character),	/* for 'c' */				      \
+      REF (form_string),	/* for 's', 'S' */			      \
+      REF (form_pointer),	/* for 'p' */				      \
+      REF (form_number),	/* for 'n' */				      \
+      REF (form_strerror),	/* for 'm' */				      \
+      REF (form_wcharacter),	/* for 'C' */				      \
+      REF (form_floathex),	/* for 'A', 'a' */			      \
+      REF (mod_ptrdiff_t),      /* for 't' */				      \
+      REF (mod_intmax_t),       /* for 'j' */				      \
+      REF (form_unknown)        /* for 'I' */				      \
+    };									      \
+    /* Step 3a: after processing first 'h' modifier.  */		      \
+    static JUMP_TABLE_TYPE step3a_jumps[30] =				      \
+    {									      \
+      REF (form_unknown),						      \
+      REF (form_unknown),	/* for ' ' */				      \
+      REF (form_unknown),	/* for '+' */				      \
+      REF (form_unknown),	/* for '-' */				      \
+      REF (form_unknown),	/* for '<hash>' */			      \
+      REF (form_unknown),	/* for '0' */				      \
+      REF (form_unknown),	/* for '\'' */				      \
+      REF (form_unknown),	/* for '*' */				      \
+      REF (form_unknown),	/* for '1'...'9' */			      \
+      REF (form_unknown),	/* for '.' */				      \
+      REF (mod_halfhalf),	/* for 'h' */				      \
+      REF (form_unknown),	/* for 'l' */				      \
+      REF (form_unknown),	/* for 'L', 'q' */			      \
+      REF (form_unknown),	/* for 'z', 'Z' */			      \
+      REF (form_percent),	/* for '%' */				      \
+      REF (form_integer),	/* for 'd', 'i' */			      \
+      REF (form_unsigned),	/* for 'u' */				      \
+      REF (form_octal),		/* for 'o' */				      \
+      REF (form_hexa),		/* for 'X', 'x' */			      \
+      REF (form_unknown),	/* for 'E', 'e', 'F', 'f', 'G', 'g' */	      \
+      REF (form_unknown),	/* for 'c' */				      \
+      REF (form_unknown),	/* for 's', 'S' */			      \
+      REF (form_unknown),	/* for 'p' */				      \
+      REF (form_number),	/* for 'n' */				      \
+      REF (form_unknown),	/* for 'm' */				      \
+      REF (form_unknown),	/* for 'C' */				      \
+      REF (form_unknown),	/* for 'A', 'a' */			      \
+      REF (form_unknown),       /* for 't' */				      \
+      REF (form_unknown),       /* for 'j' */				      \
+      REF (form_unknown)        /* for 'I' */				      \
+    };									      \
+    /* Step 3b: after processing first 'l' modifier.  */		      \
+    static JUMP_TABLE_TYPE step3b_jumps[30] =				      \
+    {									      \
+      REF (form_unknown),						      \
+      REF (form_unknown),	/* for ' ' */				      \
+      REF (form_unknown),	/* for '+' */				      \
+      REF (form_unknown),	/* for '-' */				      \
+      REF (form_unknown),	/* for '<hash>' */			      \
+      REF (form_unknown),	/* for '0' */				      \
+      REF (form_unknown),	/* for '\'' */				      \
+      REF (form_unknown),	/* for '*' */				      \
+      REF (form_unknown),	/* for '1'...'9' */			      \
+      REF (form_unknown),	/* for '.' */				      \
+      REF (form_unknown),	/* for 'h' */				      \
+      REF (mod_longlong),	/* for 'l' */				      \
+      REF (form_unknown),	/* for 'L', 'q' */			      \
+      REF (form_unknown),	/* for 'z', 'Z' */			      \
+      REF (form_percent),	/* for '%' */				      \
+      REF (form_integer),	/* for 'd', 'i' */			      \
+      REF (form_unsigned),	/* for 'u' */				      \
+      REF (form_octal),		/* for 'o' */				      \
+      REF (form_hexa),		/* for 'X', 'x' */			      \
+      REF (form_float),		/* for 'E', 'e', 'F', 'f', 'G', 'g' */	      \
+      REF (form_character),	/* for 'c' */				      \
+      REF (form_string),	/* for 's', 'S' */			      \
+      REF (form_pointer),	/* for 'p' */				      \
+      REF (form_number),	/* for 'n' */				      \
+      REF (form_strerror),	/* for 'm' */				      \
+      REF (form_wcharacter),	/* for 'C' */				      \
+      REF (form_floathex),	/* for 'A', 'a' */			      \
+      REF (form_unknown),       /* for 't' */				      \
+      REF (form_unknown),       /* for 'j' */				      \
+      REF (form_unknown)        /* for 'I' */				      \
+    }
+
+#define STEP4_TABLE							      \
+    /* Step 4: processing format specifier.  */				      \
+    static JUMP_TABLE_TYPE step4_jumps[30] =				      \
+    {									      \
+      REF (form_unknown),						      \
+      REF (form_unknown),	/* for ' ' */				      \
+      REF (form_unknown),	/* for '+' */				      \
+      REF (form_unknown),	/* for '-' */				      \
+      REF (form_unknown),	/* for '<hash>' */			      \
+      REF (form_unknown),	/* for '0' */				      \
+      REF (form_unknown),	/* for '\'' */				      \
+      REF (form_unknown),	/* for '*' */				      \
+      REF (form_unknown),	/* for '1'...'9' */			      \
+      REF (form_unknown),	/* for '.' */				      \
+      REF (form_unknown),	/* for 'h' */				      \
+      REF (form_unknown),	/* for 'l' */				      \
+      REF (form_unknown),	/* for 'L', 'q' */			      \
+      REF (form_unknown),	/* for 'z', 'Z' */			      \
+      REF (form_percent),	/* for '%' */				      \
+      REF (form_integer),	/* for 'd', 'i' */			      \
+      REF (form_unsigned),	/* for 'u' */				      \
+      REF (form_octal),		/* for 'o' */				      \
+      REF (form_hexa),		/* for 'X', 'x' */			      \
+      REF (form_float),		/* for 'E', 'e', 'F', 'f', 'G', 'g' */	      \
+      REF (form_character),	/* for 'c' */				      \
+      REF (form_string),	/* for 's', 'S' */			      \
+      REF (form_pointer),	/* for 'p' */				      \
+      REF (form_number),	/* for 'n' */				      \
+      REF (form_strerror),	/* for 'm' */				      \
+      REF (form_wcharacter),	/* for 'C' */				      \
+      REF (form_floathex),	/* for 'A', 'a' */			      \
+      REF (form_unknown),       /* for 't' */				      \
+      REF (form_unknown),       /* for 'j' */				      \
+      REF (form_unknown)        /* for 'I' */				      \
+    }
+
+
+#define process_arg(fspec)						      \
+      /* Start real work.  We know about all flags and modifiers and	      \
+	 now process the wanted format specifier.  */			      \
+    LABEL (form_percent):						      \
+      /* Write a literal "%".  */					      \
+      outchar (L_('%'));						      \
+      break;								      \
+									      \
+    LABEL (form_integer):						      \
+      /* Signed decimal integer.  */					      \
+      base = 10;							      \
+									      \
+      if (is_longlong)							      \
+	{								      \
+	  long long int signed_number;					      \
+									      \
+	  if (fspec == NULL)						      \
+	    signed_number = va_arg (ap, long long int);			      \
+	  else								      \
+	    signed_number = args_value[fspec->data_arg].pa_long_long_int;     \
+									      \
+	  is_negative = signed_number < 0;				      \
+	  number.longlong = is_negative ? (- signed_number) : signed_number;  \
+									      \
+	  goto LABEL (longlong_number);					      \
+	}								      \
+      else								      \
+	{								      \
+	  long int signed_number;					      \
+									      \
+	  if (fspec == NULL)						      \
+	    {								      \
+	      if (is_long_num)						      \
+		signed_number = va_arg (ap, long int);			      \
+	      else if (is_char)						      \
+		signed_number = (signed char) va_arg (ap, unsigned int);      \
+	      else if (!is_short)					      \
+		signed_number = va_arg (ap, int);			      \
+	      else							      \
+		signed_number = (short int) va_arg (ap, unsigned int);	      \
+	    }								      \
+	  else								      \
+	    if (is_long_num)						      \
+	      signed_number = args_value[fspec->data_arg].pa_long_int;	      \
+	    else if (is_char)						      \
+	      signed_number = (signed char)				      \
+		args_value[fspec->data_arg].pa_u_int;			      \
+	    else if (!is_short)						      \
+	      signed_number = args_value[fspec->data_arg].pa_int;	      \
+	    else							      \
+	      signed_number = (short int)				      \
+		args_value[fspec->data_arg].pa_u_int;			      \
+									      \
+	  is_negative = signed_number < 0;				      \
+	  number.word = is_negative ? (- signed_number) : signed_number;      \
+									      \
+	  goto LABEL (number);						      \
+	}								      \
+      /* NOTREACHED */							      \
+									      \
+    LABEL (form_unsigned):						      \
+      /* Unsigned decimal integer.  */					      \
+      base = 10;							      \
+      goto LABEL (unsigned_number);					      \
+      /* NOTREACHED */							      \
+									      \
+    LABEL (form_octal):							      \
+      /* Unsigned octal integer.  */					      \
+      base = 8;								      \
+      goto LABEL (unsigned_number);					      \
+      /* NOTREACHED */							      \
+									      \
+    LABEL (form_hexa):							      \
+      /* Unsigned hexadecimal integer.  */				      \
+      base = 16;							      \
+									      \
+    LABEL (unsigned_number):	  /* Unsigned number of base BASE.  */	      \
+									      \
+      /* ISO specifies the `+' and ` ' flags only for signed		      \
+	 conversions.  */						      \
+      is_negative = 0;							      \
+      showsign = 0;							      \
+      space = 0;							      \
+									      \
+      if (is_longlong)							      \
+	{								      \
+	  if (fspec == NULL)						      \
+	    number.longlong = va_arg (ap, unsigned long long int);	      \
+	  else								      \
+	    number.longlong = args_value[fspec->data_arg].pa_u_long_long_int; \
+									      \
+	LABEL (longlong_number):					      \
+	  if (prec < 0)							      \
+	    /* Supply a default precision if none was given.  */	      \
+	    prec = 1;							      \
+	  else								      \
+	    /* We have to take care for the '0' flag.  If a precision	      \
+	       is given it must be ignored.  */				      \
+	    pad = L_(' ');						      \
+									      \
+	  /* If the precision is 0 and the number is 0 nothing has to	      \
+	     be written for the number, except for the 'o' format in	      \
+	     alternate form.  */					      \
+	  if (prec == 0 && number.longlong == 0)			      \
+	    {								      \
+	      string = workend;						      \
+	      if (base == 8 && alt)					      \
+		*--string = L_('0');					      \
+	    }								      \
+	  else								      \
+	    {								      \
+	      /* Put the number in WORK.  */				      \
+	      string = _itoa (number.longlong, workend, base,		      \
+			      spec == L_('X'));				      \
+	      if (group && grouping)					      \
+		string = group_number (string, workend, grouping,	      \
+				       thousands_sep);			      \
+									      \
+	      if (use_outdigits && base == 10)				      \
+		string = _i18n_number_rewrite (string, workend, workend);     \
+	    }								      \
+	  /* Simplify further test for num != 0.  */			      \
+	  number.word = number.longlong != 0;				      \
+	}								      \
+      else								      \
+	{								      \
+	  if (fspec == NULL)						      \
+	    {								      \
+	      if (is_long_num)						      \
+		number.word = va_arg (ap, unsigned long int);		      \
+	      else if (is_char)						      \
+		number.word = (unsigned char) va_arg (ap, unsigned int);      \
+	      else if (!is_short)					      \
+		number.word = va_arg (ap, unsigned int);		      \
+	      else							      \
+		number.word = (unsigned short int) va_arg (ap, unsigned int); \
+	    }								      \
+	  else								      \
+	    if (is_long_num)						      \
+	      number.word = args_value[fspec->data_arg].pa_u_long_int;	      \
+	    else if (is_char)						      \
+	      number.word = (unsigned char)				      \
+		args_value[fspec->data_arg].pa_u_int;			      \
+	    else if (!is_short)						      \
+	      number.word = args_value[fspec->data_arg].pa_u_int;	      \
+	    else							      \
+	      number.word = (unsigned short int)			      \
+		args_value[fspec->data_arg].pa_u_int;			      \
+									      \
+	LABEL (number):							      \
+	  if (prec < 0)							      \
+	    /* Supply a default precision if none was given.  */	      \
+	    prec = 1;							      \
+	  else								      \
+	    /* We have to take care for the '0' flag.  If a precision	      \
+	       is given it must be ignored.  */				      \
+	    pad = L_(' ');						      \
+									      \
+	  /* If the precision is 0 and the number is 0 nothing has to	      \
+	     be written for the number, except for the 'o' format in	      \
+	     alternate form.  */					      \
+	  if (prec == 0 && number.word == 0)				      \
+	    {								      \
+	      string = workend;						      \
+	      if (base == 8 && alt)					      \
+		*--string = L_('0');					      \
+	    }								      \
+	  else								      \
+	    {								      \
+	      /* Put the number in WORK.  */				      \
+	      string = _itoa_word (number.word, workend, base,		      \
+				   spec == L_('X'));			      \
+	      if (group && grouping)					      \
+		string = group_number (string, workend, grouping,	      \
+				       thousands_sep);			      \
+									      \
+	      if (use_outdigits && base == 10)				      \
+		string = _i18n_number_rewrite (string, workend, workend);     \
+	    }								      \
+	}								      \
+									      \
+      if (prec <= workend - string && number.word != 0 && alt && base == 8)   \
+	/* Add octal marker.  */					      \
+	*--string = L_('0');						      \
+									      \
+      prec = MAX (0, prec - (workend - string));			      \
+									      \
+      if (!left)							      \
+	{								      \
+	  width -= workend - string + prec;				      \
+									      \
+	  if (number.word != 0 && alt && base == 16)			      \
+	    /* Account for 0X hex marker.  */				      \
+	    width -= 2;							      \
+									      \
+	  if (is_negative || showsign || space)				      \
+	    --width;							      \
+									      \
+	  if (pad == L_(' '))						      \
+	    {								      \
+	      PAD (L_(' '));						      \
+	      width = 0;						      \
+	    }								      \
+									      \
+	  if (is_negative)						      \
+	    outchar (L_('-'));						      \
+	  else if (showsign)						      \
+	    outchar (L_('+'));						      \
+	  else if (space)						      \
+	    outchar (L_(' '));						      \
+									      \
+	  if (number.word != 0 && alt && base == 16)			      \
+	    {								      \
+	      outchar (L_('0'));					      \
+	      outchar (spec);						      \
+	    }								      \
+									      \
+	  width += prec;						      \
+	  PAD (L_('0'));						      \
+									      \
+	  outstring (string, workend - string);				      \
+									      \
+	  break;							      \
+	}								      \
+      else								      \
+	{								      \
+	  if (is_negative)						      \
+	    {								      \
+	      outchar (L_('-'));					      \
+	      --width;							      \
+	    }								      \
+	  else if (showsign)						      \
+	    {								      \
+	      outchar (L_('+'));					      \
+	      --width;							      \
+	    }								      \
+	  else if (space)						      \
+	    {								      \
+	      outchar (L_(' '));					      \
+	      --width;							      \
+	    }								      \
+									      \
+	  if (number.word != 0 && alt && base == 16)			      \
+	    {								      \
+	      outchar (L_('0'));					      \
+	      outchar (spec);						      \
+	      width -= 2;						      \
+	    }								      \
+									      \
+	  width -= workend - string + prec;				      \
+									      \
+	  if (prec > 0)							      \
+	    {								      \
+	      int temp = width;						      \
+	      width = prec;						      \
+	      PAD (L_('0'));						      \
+	      width = temp;						      \
+	    }								      \
+									      \
+	  outstring (string, workend - string);				      \
+									      \
+	  PAD (L_(' '));						      \
+	  break;							      \
+	}								      \
+									      \
+    LABEL (form_float):							      \
+      {									      \
+	/* Floating-point number.  This is handled by printf_fp.c.  */	      \
+	const void *ptr;						      \
+	int function_done;						      \
+									      \
+	if (fspec == NULL)						      \
+	  {								      \
+	    if (__ldbl_is_dbl)						      \
+	      is_long_double = 0;					      \
+									      \
+	    struct printf_info info = { .prec = prec,			      \
+					.width = width,			      \
+					.spec = spec,			      \
+					.is_long_double = is_long_double,     \
+					.is_short = is_short,		      \
+					.is_long = is_long,		      \
+					.alt = alt,			      \
+					.space = space,			      \
+					.left = left,			      \
+					.showsign = showsign,		      \
+					.group = group,			      \
+					.pad = pad,			      \
+					.extra = 0,			      \
+					.i18n = use_outdigits,		      \
+					.wide = sizeof (CHAR_T) != 1,	      \
+					.is_binary128 = 0};		      \
+									      \
+	    if (is_long_double)						      \
+	      the_arg.pa_long_double = va_arg (ap, long double);	      \
+	    else							      \
+	      the_arg.pa_double = va_arg (ap, double);			      \
+	    ptr = (const void *) &the_arg;				      \
+									      \
+	    function_done = __printf_fp (s, &info, &ptr);		      \
+	  }								      \
+	else								      \
+	  {								      \
+	    ptr = (const void *) &args_value[fspec->data_arg];		      \
+	    if (__ldbl_is_dbl)						      \
+	      {								      \
+		fspec->data_arg_type = PA_DOUBLE;			      \
+		fspec->info.is_long_double = 0;				      \
+	      }								      \
+	    /* Not supported by *printf functions.  */			      \
+	    fspec->info.is_binary128 = 0;				      \
+									      \
+	    function_done = __printf_fp (s, &fspec->info, &ptr);	      \
+	  }								      \
+									      \
+	if (function_done < 0)						      \
+	  {								      \
+	    /* Error in print handler; up to handler to set errno.  */	      \
+	    done = -1;							      \
+	    goto all_done;						      \
+	  }								      \
+									      \
+	done_add (function_done);					      \
+      }									      \
+      break;								      \
+									      \
+    LABEL (form_floathex):						      \
+      {									      \
+	/* Floating point number printed as hexadecimal number.  */	      \
+	const void *ptr;						      \
+	int function_done;						      \
+									      \
+	if (fspec == NULL)						      \
+	  {								      \
+	    if (__ldbl_is_dbl)						      \
+	      is_long_double = 0;					      \
+									      \
+	    struct printf_info info = { .prec = prec,			      \
+					.width = width,			      \
+					.spec = spec,			      \
+					.is_long_double = is_long_double,     \
+					.is_short = is_short,		      \
+					.is_long = is_long,		      \
+					.alt = alt,			      \
+					.space = space,			      \
+					.left = left,			      \
+					.showsign = showsign,		      \
+					.group = group,			      \
+					.pad = pad,			      \
+					.extra = 0,			      \
+					.wide = sizeof (CHAR_T) != 1,	      \
+					.is_binary128 = 0};		      \
+									      \
+	    if (is_long_double)						      \
+	      the_arg.pa_long_double = va_arg (ap, long double);	      \
+	    else							      \
+	      the_arg.pa_double = va_arg (ap, double);			      \
+	    ptr = (const void *) &the_arg;				      \
+									      \
+	    function_done = __printf_fphex (s, &info, &ptr);		      \
+	  }								      \
+	else								      \
+	  {								      \
+	    ptr = (const void *) &args_value[fspec->data_arg];		      \
+	    if (__ldbl_is_dbl)						      \
+	      fspec->info.is_long_double = 0;				      \
+	    /* Not supported by *printf functions.  */			      \
+	    fspec->info.is_binary128 = 0;				      \
+									      \
+	    function_done = __printf_fphex (s, &fspec->info, &ptr);	      \
+	  }								      \
+									      \
+	if (function_done < 0)						      \
+	  {								      \
+	    /* Error in print handler; up to handler to set errno.  */	      \
+	    done = -1;							      \
+	    goto all_done;						      \
+	  }								      \
+									      \
+	done_add (function_done);					      \
+      }									      \
+      break;								      \
+									      \
+    LABEL (form_pointer):						      \
+      /* Generic pointer.  */						      \
+      {									      \
+	const void *ptr;						      \
+	if (fspec == NULL)						      \
+	  ptr = va_arg (ap, void *);					      \
+	else								      \
+	  ptr = args_value[fspec->data_arg].pa_pointer;			      \
+	if (ptr != NULL)						      \
+	  {								      \
+	    /* If the pointer is not NULL, write it as a %#x spec.  */	      \
+	    base = 16;							      \
+	    number.word = (unsigned long int) ptr;			      \
+	    is_negative = 0;						      \
+	    alt = 1;							      \
+	    group = 0;							      \
+	    spec = L_('x');						      \
+	    goto LABEL (number);					      \
+	  }								      \
+	else								      \
+	  {								      \
+	    /* Write "(nil)" for a nil pointer.  */			      \
+	    string = (CHAR_T *) L_("(nil)");				      \
+	    /* Make sure the full string "(nil)" is printed.  */	      \
+	    if (prec < 5)						      \
+	      prec = 5;							      \
+	    /* This is a wide string iff compiling wprintf.  */		      \
+	    is_long = sizeof (CHAR_T) > 1;				      \
+	    goto LABEL (print_string);					      \
+	  }								      \
+      }									      \
+      /* NOTREACHED */							      \
+									      \
+    LABEL (form_number):						      \
+      if (s->_flags2 & _IO_FLAGS2_FORTIFY)				      \
+	{								      \
+	  if (! readonly_format)					      \
+	    {								      \
+	      extern int __readonly_area (const void *, size_t)		      \
+		attribute_hidden;					      \
+	      readonly_format						      \
+		= __readonly_area (format, ((STR_LEN (format) + 1)	      \
+					    * sizeof (CHAR_T)));	      \
+	    }								      \
+	  if (readonly_format < 0)					      \
+	    __libc_fatal ("*** %n in writable segment detected ***\n");	      \
+	}								      \
+      /* Answer the count of characters written.  */			      \
+      if (fspec == NULL)						      \
+	{								      \
+	  if (is_longlong)						      \
+	    *(long long int *) va_arg (ap, void *) = done;		      \
+	  else if (is_long_num)						      \
+	    *(long int *) va_arg (ap, void *) = done;			      \
+	  else if (is_char)						      \
+	    *(char *) va_arg (ap, void *) = done;			      \
+	  else if (!is_short)						      \
+	    *(int *) va_arg (ap, void *) = done;			      \
+	  else								      \
+	    *(short int *) va_arg (ap, void *) = done;			      \
+	}								      \
+      else								      \
+	if (is_longlong)						      \
+	  *(long long int *) args_value[fspec->data_arg].pa_pointer = done;   \
+	else if (is_long_num)						      \
+	  *(long int *) args_value[fspec->data_arg].pa_pointer = done;	      \
+	else if (is_char)						      \
+	  *(char *) args_value[fspec->data_arg].pa_pointer = done;	      \
+	else if (!is_short)						      \
+	  *(int *) args_value[fspec->data_arg].pa_pointer = done;	      \
+	else								      \
+	  *(short int *) args_value[fspec->data_arg].pa_pointer = done;	      \
+      break;								      \
+									      \
+    LABEL (form_strerror):						      \
+      /* Print description of error ERRNO.  */				      \
+      string =								      \
+	(CHAR_T *) __strerror_r (save_errno, (char *) work_buffer,	      \
+				 WORK_BUFFER_SIZE * sizeof (CHAR_T));	      \
+      is_long = 0;		/* This is no wide-char string.  */	      \
+      goto LABEL (print_string)
+
+#ifdef COMPILE_WPRINTF
+# define process_string_arg(fspec) \
+    LABEL (form_character):						      \
+      /* Character.  */							      \
+      if (is_long)							      \
+	goto LABEL (form_wcharacter);					      \
+      --width;	/* Account for the character itself.  */		      \
+      if (!left)							      \
+	PAD (L' ');							      \
+      if (fspec == NULL)						      \
+	outchar (__btowc ((unsigned char) va_arg (ap, int))); /* Promoted. */ \
+      else								      \
+	outchar (__btowc ((unsigned char)				      \
+			  args_value[fspec->data_arg].pa_int));		      \
+      if (left)								      \
+	PAD (L' ');							      \
+      break;								      \
+									      \
+    LABEL (form_wcharacter):						      \
+      {									      \
+	/* Wide character.  */						      \
+	--width;							      \
+	if (!left)							      \
+	  PAD (L' ');							      \
+	if (fspec == NULL)						      \
+	  outchar (va_arg (ap, wchar_t));				      \
+	else								      \
+	  outchar (args_value[fspec->data_arg].pa_wchar);		      \
+	if (left)							      \
+	  PAD (L' ');							      \
+      }									      \
+      break;								      \
+									      \
+    LABEL (form_string):						      \
+      {									      \
+	size_t len;							      \
+	int string_malloced;						      \
+									      \
+	/* The string argument could in fact be `char *' or `wchar_t *'.      \
+	   But this should not make a difference here.  */		      \
+	if (fspec == NULL)						      \
+	  string = (CHAR_T *) va_arg (ap, const wchar_t *);		      \
+	else								      \
+	  string = (CHAR_T *) args_value[fspec->data_arg].pa_wstring;	      \
+									      \
+	/* Entry point for printing other strings.  */			      \
+      LABEL (print_string):						      \
+									      \
+	string_malloced = 0;						      \
+	if (string == NULL)						      \
+	  {								      \
+	    /* Write "(null)" if there's space.  */			      \
+	    if (prec == -1						      \
+		|| prec >= (int) (sizeof (null) / sizeof (null[0])) - 1)      \
+	      {								      \
+		string = (CHAR_T *) null;				      \
+		len = (sizeof (null) / sizeof (null[0])) - 1;		      \
+	      }								      \
+	    else							      \
+	      {								      \
+		string = (CHAR_T *) L"";				      \
+		len = 0;						      \
+	      }								      \
+	  }								      \
+	else if (!is_long && spec != L_('S'))				      \
+	  {								      \
+	    /* This is complicated.  We have to transform the multibyte	      \
+	       string into a wide character string.  */			      \
+	    const char *mbs = (const char *) string;			      \
+	    mbstate_t mbstate;						      \
+									      \
+	    len = prec != -1 ? __strnlen (mbs, (size_t) prec) : strlen (mbs); \
+									      \
+	    /* Allocate dynamically an array which definitely is long	      \
+	       enough for the wide character version.  Each byte in the	      \
+	       multi-byte string can produce at most one wide character.  */  \
+	    if (__glibc_unlikely (len > SIZE_MAX / sizeof (wchar_t)))	      \
+	      {								      \
+		__set_errno (EOVERFLOW);				      \
+		done = -1;						      \
+		goto all_done;						      \
+	      }								      \
+	    else if (__libc_use_alloca (len * sizeof (wchar_t)))	      \
+	      string = (CHAR_T *) alloca (len * sizeof (wchar_t));	      \
+	    else if ((string = (CHAR_T *) malloc (len * sizeof (wchar_t)))    \
+		     == NULL)						      \
+	      {								      \
+		done = -1;						      \
+		goto all_done;						      \
+	      }								      \
+	    else							      \
+	      string_malloced = 1;					      \
+									      \
+	    memset (&mbstate, '\0', sizeof (mbstate_t));		      \
+	    len = __mbsrtowcs (string, &mbs, len, &mbstate);		      \
+	    if (len == (size_t) -1)					      \
+	      {								      \
+		/* Illegal multibyte character.  */			      \
+		done = -1;						      \
+		goto all_done;						      \
+	      }								      \
+	  }								      \
+	else								      \
+	  {								      \
+	    if (prec != -1)						      \
+	      /* Search for the end of the string, but don't search past      \
+		 the length specified by the precision.  */		      \
+	      len = __wcsnlen (string, prec);				      \
+	    else							      \
+	      len = __wcslen (string);					      \
+	  }								      \
+									      \
+	if ((width -= len) < 0)						      \
+	  {								      \
+	    outstring (string, len);					      \
+	    break;							      \
+	  }								      \
+									      \
+	if (!left)							      \
+	  PAD (L' ');							      \
+	outstring (string, len);					      \
+	if (left)							      \
+	  PAD (L' ');							      \
+	if (__glibc_unlikely (string_malloced))				      \
+	  free (string);						      \
+      }									      \
+      break;
+#else
+# define process_string_arg(fspec) \
+    LABEL (form_character):						      \
+      /* Character.  */							      \
+      if (is_long)							      \
+	goto LABEL (form_wcharacter);					      \
+      --width;	/* Account for the character itself.  */		      \
+      if (!left)							      \
+	PAD (' ');							      \
+      if (fspec == NULL)						      \
+	outchar ((unsigned char) va_arg (ap, int)); /* Promoted.  */	      \
+      else								      \
+	outchar ((unsigned char) args_value[fspec->data_arg].pa_int);	      \
+      if (left)								      \
+	PAD (' ');							      \
+      break;								      \
+									      \
+    LABEL (form_wcharacter):						      \
+      {									      \
+	/* Wide character.  */						      \
+	char buf[MB_LEN_MAX];						      \
+	mbstate_t mbstate;						      \
+	size_t len;							      \
+									      \
+	memset (&mbstate, '\0', sizeof (mbstate_t));			      \
+	len = __wcrtomb (buf, (fspec == NULL ? va_arg (ap, wchar_t)	      \
+			       : args_value[fspec->data_arg].pa_wchar),	      \
+			 &mbstate);					      \
+	if (len == (size_t) -1)						      \
+	  {								      \
+	    /* Something went wrong during the conversion.  Bail out.  */     \
+	    done = -1;							      \
+	    goto all_done;						      \
+	  }								      \
+	width -= len;							      \
+	if (!left)							      \
+	  PAD (' ');							      \
+	outstring (buf, len);						      \
+	if (left)							      \
+	  PAD (' ');							      \
+      }									      \
+      break;								      \
+									      \
+    LABEL (form_string):						      \
+      {									      \
+	size_t len;							      \
+	int string_malloced;						      \
+									      \
+	/* The string argument could in fact be `char *' or `wchar_t *'.      \
+	   But this should not make a difference here.  */		      \
+	if (fspec == NULL)						      \
+	  string = (char *) va_arg (ap, const char *);			      \
+	else								      \
+	  string = (char *) args_value[fspec->data_arg].pa_string;	      \
+									      \
+	/* Entry point for printing other strings.  */			      \
+      LABEL (print_string):						      \
+									      \
+	string_malloced = 0;						      \
+	if (string == NULL)						      \
+	  {								      \
+	    /* Write "(null)" if there's space.  */			      \
+	    if (prec == -1 || prec >= (int) sizeof (null) - 1)		      \
+	      {								      \
+		string = (char *) null;					      \
+		len = sizeof (null) - 1;				      \
+	      }								      \
+	    else							      \
+	      {								      \
+		string = (char *) "";					      \
+		len = 0;						      \
+	      }								      \
+	  }								      \
+	else if (!is_long && spec != L_('S'))				      \
+	  {								      \
+	    if (prec != -1)						      \
+	      /* Search for the end of the string, but don't search past      \
+		 the length (in bytes) specified by the precision.  */	      \
+	      len = __strnlen (string, prec);				      \
+	    else							      \
+	      len = strlen (string);					      \
+	  }								      \
+	else								      \
+	  {								      \
+	    const wchar_t *s2 = (const wchar_t *) string;		      \
+	    mbstate_t mbstate;						      \
+									      \
+	    memset (&mbstate, '\0', sizeof (mbstate_t));		      \
+									      \
+	    if (prec >= 0)						      \
+	      {								      \
+		/* The string `s2' might not be NUL terminated.  */	      \
+		if (__libc_use_alloca (prec))				      \
+		  string = (char *) alloca (prec);			      \
+		else if ((string = (char *) malloc (prec)) == NULL)	      \
+		  {							      \
+		    done = -1;						      \
+		    goto all_done;					      \
+		  }							      \
+		else							      \
+		  string_malloced = 1;					      \
+		len = __wcsrtombs (string, &s2, prec, &mbstate);	      \
+	      }								      \
+	    else							      \
+	      {								      \
+		len = __wcsrtombs (NULL, &s2, 0, &mbstate);		      \
+		if (len != (size_t) -1)					      \
+		  {							      \
+		    assert (__mbsinit (&mbstate));			      \
+		    s2 = (const wchar_t *) string;			      \
+		    if (__libc_use_alloca (len + 1))			      \
+		      string = (char *) alloca (len + 1);		      \
+		    else if ((string = (char *) malloc (len + 1)) == NULL)    \
+		      {							      \
+			done = -1;					      \
+			goto all_done;					      \
+		      }							      \
+		    else						      \
+		      string_malloced = 1;				      \
+		    (void) __wcsrtombs (string, &s2, len + 1, &mbstate);      \
+		  }							      \
+	      }								      \
+									      \
+	    if (len == (size_t) -1)					      \
+	      {								      \
+		/* Illegal wide-character string.  */			      \
+		done = -1;						      \
+		goto all_done;						      \
+	      }								      \
+	  }								      \
+									      \
+	if ((width -= len) < 0)						      \
+	  {								      \
+	    outstring (string, len);					      \
+	    break;							      \
+	  }								      \
+									      \
+	if (!left)							      \
+	  PAD (' ');							      \
+	outstring (string, len);					      \
+	if (left)							      \
+	  PAD (' ');							      \
+	if (__glibc_unlikely (string_malloced))			              \
+	  free (string);						      \
+      }									      \
+      break;
+#endif
+
+/* Helper function to provide temporary buffering for unbuffered streams.  */
+static int buffered_vfprintf (FILE *stream, const CHAR_T *fmt, va_list)
+     __THROW __attribute__ ((noinline)) internal_function;
+
+/* Handle positional format specifiers.  */
+static int printf_positional (_IO_FILE *s,
+			      const CHAR_T *format, int readonly_format,
+			      va_list ap, va_list *ap_savep, int done,
+			      int nspecs_done, const UCHAR_T *lead_str_end,
+			      CHAR_T *work_buffer, int save_errno,
+			      const char *grouping, THOUSANDS_SEP_T);
+
+/* Handle unknown format specifier.  */
+static int printf_unknown (FILE *, const struct printf_info *,
+			   const void *const *) __THROW;
+
+/* Group digits of number string.  */
+static CHAR_T *group_number (CHAR_T *, CHAR_T *, const char *, THOUSANDS_SEP_T)
+     __THROW internal_function;
+
+/* The function itself.  */
+int
+vfprintf (FILE *s, const CHAR_T *format, va_list ap)
+{
+  /* The character used as thousands separator.  */
+  THOUSANDS_SEP_T thousands_sep = 0;
+
+  /* The string describing the size of groups of digits.  */
+  const char *grouping;
+
+  /* Place to accumulate the result.  */
+  int done;
+
+  /* Current character in format string.  */
+  const UCHAR_T *f;
+
+  /* End of leading constant string.  */
+  const UCHAR_T *lead_str_end;
+
+  /* Points to next format specifier.  */
+  const UCHAR_T *end_of_spec;
+
+  /* Buffer intermediate results.  */
+  CHAR_T work_buffer[WORK_BUFFER_SIZE];
+  CHAR_T *workstart = NULL;
+  CHAR_T *workend;
+
+  /* We have to save the original argument pointer.  */
+  va_list ap_save;
+
+  /* Count number of specifiers we already processed.  */
+  int nspecs_done;
+
+  /* For the %m format we may need the current `errno' value.  */
+  int save_errno = errno;
+
+  /* 1 if format is in read-only memory, -1 if it is in writable memory,
+     0 if unknown.  */
+  int readonly_format = 0;
+
+  /* Orient the stream.  */
+#ifdef ORIENT
+  ORIENT;
+#endif
+
+  /* Sanity check of arguments.  */
+  ARGCHECK (s, format);
+
+#ifdef ORIENT
+  /* Check for correct orientation.  */
+  if (_IO_vtable_offset (s) == 0 &&
+      _IO_fwide (s, sizeof (CHAR_T) == 1 ? -1 : 1)
+      != (sizeof (CHAR_T) == 1 ? -1 : 1))
+    /* The stream is already oriented otherwise.  */
+    return EOF;
+#endif
+
+  if (UNBUFFERED_P (s))
+    /* Use a helper function which will allocate a local temporary buffer
+       for the stream and then call us again.  */
+    return buffered_vfprintf (s, format, ap);
+
+  /* Initialize local variables.  */
+  done = 0;
+  grouping = (const char *) -1;
+#ifdef __va_copy
+  /* This macro will be available soon in gcc's <stdarg.h>.  We need it
+     since on some systems `va_list' is not an integral type.  */
+  __va_copy (ap_save, ap);
+#else
+  ap_save = ap;
+#endif
+  nspecs_done = 0;
+
+#ifdef COMPILE_WPRINTF
+  /* Find the first format specifier.  */
+  f = lead_str_end = __find_specwc ((const UCHAR_T *) format);
+#else
+  /* Find the first format specifier.  */
+  f = lead_str_end = __find_specmb ((const UCHAR_T *) format);
+#endif
+
+  /* Lock stream.  */
+  _IO_cleanup_region_start ((void (*) (void *)) &_IO_funlockfile, s);
+  _IO_flockfile (s);
+
+  /* Write the literal text before the first format.  */
+  outstring ((const UCHAR_T *) format,
+	     lead_str_end - (const UCHAR_T *) format);
+
+  /* If we only have to print a simple string, return now.  */
+  if (*f == L_('\0'))
+    goto all_done;
+
+  /* Use the slow path in case any printf handler is registered.  */
+  if (__glibc_unlikely (__printf_function_table != NULL
+			|| __printf_modifier_table != NULL
+			|| __printf_va_arg_table != NULL))
+    goto do_positional;
+
+  /* Process whole format string.  */
+  do
+    {
+      STEP0_3_TABLE;
+      STEP4_TABLE;
+
+      union printf_arg *args_value;	/* This is not used here but ... */
+      int is_negative;	/* Flag for negative number.  */
+      union
+      {
+	unsigned long long int longlong;
+	unsigned long int word;
+      } number;
+      int base;
+      union printf_arg the_arg;
+      CHAR_T *string;	/* Pointer to argument string.  */
+      int alt = 0;	/* Alternate format.  */
+      int space = 0;	/* Use space prefix if no sign is needed.  */
+      int left = 0;	/* Left-justify output.  */
+      int showsign = 0;	/* Always begin with plus or minus sign.  */
+      int group = 0;	/* Print numbers according grouping rules.  */
+      int is_long_double = 0; /* Argument is long double/ long long int.  */
+      int is_short = 0;	/* Argument is short int.  */
+      int is_long = 0;	/* Argument is long int.  */
+      int is_char = 0;	/* Argument is promoted (unsigned) char.  */
+      int width = 0;	/* Width of output; 0 means none specified.  */
+      int prec = -1;	/* Precision of output; -1 means none specified.  */
+      /* This flag is set by the 'I' modifier and selects the use of the
+	 `outdigits' as determined by the current locale.  */
+      int use_outdigits = 0;
+      UCHAR_T pad = L_(' ');/* Padding character.  */
+      CHAR_T spec;
+
+      workstart = NULL;
+      workend = work_buffer + WORK_BUFFER_SIZE;
+
+      /* Get current character in format string.  */
+      JUMP (*++f, step0_jumps);
+
+      /* ' ' flag.  */
+    LABEL (flag_space):
+      space = 1;
+      JUMP (*++f, step0_jumps);
+
+      /* '+' flag.  */
+    LABEL (flag_plus):
+      showsign = 1;
+      JUMP (*++f, step0_jumps);
+
+      /* The '-' flag.  */
+    LABEL (flag_minus):
+      left = 1;
+      pad = L_(' ');
+      JUMP (*++f, step0_jumps);
+
+      /* The '#' flag.  */
+    LABEL (flag_hash):
+      alt = 1;
+      JUMP (*++f, step0_jumps);
+
+      /* The '0' flag.  */
+    LABEL (flag_zero):
+      if (!left)
+	pad = L_('0');
+      JUMP (*++f, step0_jumps);
+
+      /* The '\'' flag.  */
+    LABEL (flag_quote):
+      group = 1;
+
+      if (grouping == (const char *) -1)
+	{
+#ifdef COMPILE_WPRINTF
+	  thousands_sep = _NL_CURRENT_WORD (LC_NUMERIC,
+					    _NL_NUMERIC_THOUSANDS_SEP_WC);
+#else
+	  thousands_sep = _NL_CURRENT (LC_NUMERIC, THOUSANDS_SEP);
+#endif
+
+	  grouping = _NL_CURRENT (LC_NUMERIC, GROUPING);
+	  if (*grouping == '\0' || *grouping == CHAR_MAX
+#ifdef COMPILE_WPRINTF
+	      || thousands_sep == L'\0'
+#else
+	      || *thousands_sep == '\0'
+#endif
+	      )
+	    grouping = NULL;
+	}
+      JUMP (*++f, step0_jumps);
+
+    LABEL (flag_i18n):
+      use_outdigits = 1;
+      JUMP (*++f, step0_jumps);
+
+      /* Get width from argument.  */
+    LABEL (width_asterics):
+      {
+	const UCHAR_T *tmp;	/* Temporary value.  */
+
+	tmp = ++f;
+	if (ISDIGIT (*tmp))
+	  {
+	    int pos = read_int (&tmp);
+
+	    if (pos == -1)
+	      {
+		__set_errno (EOVERFLOW);
+		done = -1;
+		goto all_done;
+	      }
+
+	    if (pos && *tmp == L_('$'))
+	      /* The width comes from a positional parameter.  */
+	      goto do_positional;
+	  }
+	width = va_arg (ap, int);
+
+	/* Negative width means left justified.  */
+	if (width < 0)
+	  {
+	    width = -width;
+	    pad = L_(' ');
+	    left = 1;
+	  }
+
+	if (__glibc_unlikely (width >= INT_MAX / sizeof (CHAR_T) - EXTSIZ))
+	  {
+	    __set_errno (EOVERFLOW);
+	    done = -1;
+	    goto all_done;
+	  }
+
+	if (width >= WORK_BUFFER_SIZE - EXTSIZ)
+	  {
+	    /* We have to use a special buffer.  */
+	    size_t needed = ((size_t) width + EXTSIZ) * sizeof (CHAR_T);
+	    if (__libc_use_alloca (needed))
+	      workend = (CHAR_T *) alloca (needed) + width + EXTSIZ;
+	    else
+	      {
+		workstart = (CHAR_T *) malloc (needed);
+		if (workstart == NULL)
+		  {
+		    done = -1;
+		    goto all_done;
+		  }
+		workend = workstart + width + EXTSIZ;
+	      }
+	  }
+      }
+      JUMP (*f, step1_jumps);
+
+      /* Given width in format string.  */
+    LABEL (width):
+      width = read_int (&f);
+
+      if (__glibc_unlikely (width == -1
+			    || width >= INT_MAX / sizeof (CHAR_T) - EXTSIZ))
+	{
+	  __set_errno (EOVERFLOW);
+	  done = -1;
+	  goto all_done;
+	}
+
+      if (width >= WORK_BUFFER_SIZE - EXTSIZ)
+	{
+	  /* We have to use a special buffer.  */
+	  size_t needed = ((size_t) width + EXTSIZ) * sizeof (CHAR_T);
+	  if (__libc_use_alloca (needed))
+	    workend = (CHAR_T *) alloca (needed) + width + EXTSIZ;
+	  else
+	    {
+	      workstart = (CHAR_T *) malloc (needed);
+	      if (workstart == NULL)
+		{
+		  done = -1;
+		  goto all_done;
+		}
+	      workend = workstart + width + EXTSIZ;
+	    }
+	}
+      if (*f == L_('$'))
+	/* Oh, oh.  The argument comes from a positional parameter.  */
+	goto do_positional;
+      JUMP (*f, step1_jumps);
+
+    LABEL (precision):
+      ++f;
+      if (*f == L_('*'))
+	{
+	  const UCHAR_T *tmp;	/* Temporary value.  */
+
+	  tmp = ++f;
+	  if (ISDIGIT (*tmp))
+	    {
+	      int pos = read_int (&tmp);
+
+	      if (pos == -1)
+		{
+		  __set_errno (EOVERFLOW);
+		  done = -1;
+		  goto all_done;
+		}
+
+	      if (pos && *tmp == L_('$'))
+		/* The precision comes from a positional parameter.  */
+		goto do_positional;
+	    }
+	  prec = va_arg (ap, int);
+
+	  /* If the precision is negative the precision is omitted.  */
+	  if (prec < 0)
+	    prec = -1;
+	}
+      else if (ISDIGIT (*f))
+	{
+	  prec = read_int (&f);
+
+	  /* The precision was specified in this case as an extremely
+	     large positive value.  */
+	  if (prec == -1)
+	    {
+	      __set_errno (EOVERFLOW);
+	      done = -1;
+	      goto all_done;
+	    }
+	}
+      else
+	prec = 0;
+      if (prec > width && prec > WORK_BUFFER_SIZE - EXTSIZ)
+	{
+	  /* Deallocate any previously allocated buffer because it is
+	     too small.  */
+	  if (__glibc_unlikely (workstart != NULL))
+	    free (workstart);
+	  workstart = NULL;
+	  if (__glibc_unlikely (prec >= INT_MAX / sizeof (CHAR_T) - EXTSIZ))
+	    {
+	      __set_errno (EOVERFLOW);
+	      done = -1;
+	      goto all_done;
+	    }
+	  size_t needed = ((size_t) prec + EXTSIZ) * sizeof (CHAR_T);
+
+	  if (__libc_use_alloca (needed))
+	    workend = (CHAR_T *) alloca (needed) + prec + EXTSIZ;
+	  else
+	    {
+	      workstart = (CHAR_T *) malloc (needed);
+	      if (workstart == NULL)
+		{
+		  done = -1;
+		  goto all_done;
+		}
+	      workend = workstart + prec + EXTSIZ;
+	    }
+	}
+      JUMP (*f, step2_jumps);
+
+      /* Process 'h' modifier.  There might another 'h' following.  */
+    LABEL (mod_half):
+      is_short = 1;
+      JUMP (*++f, step3a_jumps);
+
+      /* Process 'hh' modifier.  */
+    LABEL (mod_halfhalf):
+      is_short = 0;
+      is_char = 1;
+      JUMP (*++f, step4_jumps);
+
+      /* Process 'l' modifier.  There might another 'l' following.  */
+    LABEL (mod_long):
+      is_long = 1;
+      JUMP (*++f, step3b_jumps);
+
+      /* Process 'L', 'q', or 'll' modifier.  No other modifier is
+	 allowed to follow.  */
+    LABEL (mod_longlong):
+      is_long_double = 1;
+      is_long = 1;
+      JUMP (*++f, step4_jumps);
+
+    LABEL (mod_size_t):
+      is_long_double = sizeof (size_t) > sizeof (unsigned long int);
+      is_long = sizeof (size_t) > sizeof (unsigned int);
+      JUMP (*++f, step4_jumps);
+
+    LABEL (mod_ptrdiff_t):
+      is_long_double = sizeof (ptrdiff_t) > sizeof (unsigned long int);
+      is_long = sizeof (ptrdiff_t) > sizeof (unsigned int);
+      JUMP (*++f, step4_jumps);
+
+    LABEL (mod_intmax_t):
+      is_long_double = sizeof (intmax_t) > sizeof (unsigned long int);
+      is_long = sizeof (intmax_t) > sizeof (unsigned int);
+      JUMP (*++f, step4_jumps);
+
+      /* Process current format.  */
+      while (1)
+	{
+	  process_arg (((struct printf_spec *) NULL));
+	  process_string_arg (((struct printf_spec *) NULL));
+
+	LABEL (form_unknown):
+	  if (spec == L_('\0'))
+	    {
+	      /* The format string ended before the specifier is complete.  */
+	      __set_errno (EINVAL);
+	      done = -1;
+	      goto all_done;
+	    }
+
+	  /* If we are in the fast loop force entering the complicated
+	     one.  */
+	  goto do_positional;
+	}
+
+      /* The format is correctly handled.  */
+      ++nspecs_done;
+
+      if (__glibc_unlikely (workstart != NULL))
+	free (workstart);
+      workstart = NULL;
+
+      /* Look for next format specifier.  */
+#ifdef COMPILE_WPRINTF
+      f = __find_specwc ((end_of_spec = ++f));
+#else
+      f = __find_specmb ((end_of_spec = ++f));
+#endif
+
+      /* Write the following constant string.  */
+      outstring (end_of_spec, f - end_of_spec);
+    }
+  while (*f != L_('\0'));
+
+  /* Unlock stream and return.  */
+  goto all_done;
+
+  /* Hand off processing for positional parameters.  */
+do_positional:
+  if (__glibc_unlikely (workstart != NULL))
+    {
+      free (workstart);
+      workstart = NULL;
+    }
+  done = printf_positional (s, format, readonly_format, ap, &ap_save,
+			    done, nspecs_done, lead_str_end, work_buffer,
+			    save_errno, grouping, thousands_sep);
+
+ all_done:
+  if (__glibc_unlikely (workstart != NULL))
+    free (workstart);
+  /* Unlock the stream.  */
+  _IO_funlockfile (s);
+  _IO_cleanup_region_end (0);
+
+  return done;
+}
+
+static int
+printf_positional (_IO_FILE *s, const CHAR_T *format, int readonly_format,
+		   va_list ap, va_list *ap_savep, int done, int nspecs_done,
+		   const UCHAR_T *lead_str_end,
+		   CHAR_T *work_buffer, int save_errno,
+		   const char *grouping, THOUSANDS_SEP_T thousands_sep)
+{
+  /* For the argument descriptions, which may be allocated on the heap.  */
+  void *args_malloced = NULL;
+
+  /* For positional argument handling.  */
+  struct scratch_buffer specsbuf;
+  scratch_buffer_init (&specsbuf);
+  struct printf_spec *specs = specsbuf.data;
+  size_t specs_limit = specsbuf.length / sizeof (specs[0]);
+
+  /* Array with information about the needed arguments.  This has to
+     be dynamically extensible.  */
+  size_t nspecs = 0;
+
+  /* The number of arguments the format string requests.  This will
+     determine the size of the array needed to store the argument
+     attributes.  */
+  size_t nargs = 0;
+  size_t bytes_per_arg;
+  union printf_arg *args_value;
+  int *args_size;
+  int *args_type;
+
+  /* Positional parameters refer to arguments directly.  This could
+     also determine the maximum number of arguments.  Track the
+     maximum number.  */
+  size_t max_ref_arg = 0;
+
+  /* Just a counter.  */
+  size_t cnt;
+
+  CHAR_T *workstart = NULL;
+
+  if (grouping == (const char *) -1)
+    {
+#ifdef COMPILE_WPRINTF
+      thousands_sep = _NL_CURRENT_WORD (LC_NUMERIC,
+					_NL_NUMERIC_THOUSANDS_SEP_WC);
+#else
+      thousands_sep = _NL_CURRENT (LC_NUMERIC, THOUSANDS_SEP);
+#endif
+
+      grouping = _NL_CURRENT (LC_NUMERIC, GROUPING);
+      if (*grouping == '\0' || *grouping == CHAR_MAX)
+	grouping = NULL;
+    }
+
+  for (const UCHAR_T *f = lead_str_end; *f != L_('\0');
+       f = specs[nspecs++].next_fmt)
+    {
+      if (nspecs == specs_limit)
+	{
+	  if (!scratch_buffer_grow_preserve (&specsbuf))
+	    {
+	      done = -1;
+	      goto all_done;
+	    }
+	  specs = specsbuf.data;
+	  specs_limit = specsbuf.length / sizeof (specs[0]);
+	}
+
+      /* Parse the format specifier.  */
+#ifdef COMPILE_WPRINTF
+      nargs += __parse_one_specwc (f, nargs, &specs[nspecs], &max_ref_arg);
+#else
+      nargs += __parse_one_specmb (f, nargs, &specs[nspecs], &max_ref_arg);
+#endif
+    }
+
+  /* Determine the number of arguments the format string consumes.  */
+  nargs = MAX (nargs, max_ref_arg);
+  /* Calculate total size needed to represent a single argument across
+     all three argument-related arrays.  */
+  bytes_per_arg = (sizeof (*args_value) + sizeof (*args_size)
+		   + sizeof (*args_type));
+
+  /* Check for potential integer overflow.  */
+  if (__glibc_unlikely (nargs > INT_MAX / bytes_per_arg))
+    {
+      __set_errno (EOVERFLOW);
+      done = -1;
+      goto all_done;
+    }
+
+  /* Allocate memory for all three argument arrays.  */
+  if (__libc_use_alloca (nargs * bytes_per_arg))
+    args_value = alloca (nargs * bytes_per_arg);
+  else
+    {
+      args_value = args_malloced = malloc (nargs * bytes_per_arg);
+      if (args_value == NULL)
+	{
+	  done = -1;
+	  goto all_done;
+	}
+    }
+
+  /* Set up the remaining two arrays to each point past the end of the
+     prior array, since space for all three has been allocated now.  */
+  args_size = &args_value[nargs].pa_int;
+  args_type = &args_size[nargs];
+  memset (args_type, s->_flags2 & _IO_FLAGS2_FORTIFY ? '\xff' : '\0',
+	  nargs * sizeof (*args_type));
+
+  /* XXX Could do sanity check here: If any element in ARGS_TYPE is
+     still zero after this loop, format is invalid.  For now we
+     simply use 0 as the value.  */
+
+  /* Fill in the types of all the arguments.  */
+  for (cnt = 0; cnt < nspecs; ++cnt)
+    {
+      /* If the width is determined by an argument this is an int.  */
+      if (specs[cnt].width_arg != -1)
+	args_type[specs[cnt].width_arg] = PA_INT;
+
+      /* If the precision is determined by an argument this is an int.  */
+      if (specs[cnt].prec_arg != -1)
+	args_type[specs[cnt].prec_arg] = PA_INT;
+
+      switch (specs[cnt].ndata_args)
+	{
+	case 0:		/* No arguments.  */
+	  break;
+	case 1:		/* One argument; we already have the
+			   type and size.  */
+	  args_type[specs[cnt].data_arg] = specs[cnt].data_arg_type;
+	  args_size[specs[cnt].data_arg] = specs[cnt].size;
+	  break;
+	default:
+	  /* We have more than one argument for this format spec.
+	     We must call the arginfo function again to determine
+	     all the types.  */
+	  (void) (*__printf_arginfo_table[specs[cnt].info.spec])
+	    (&specs[cnt].info,
+	     specs[cnt].ndata_args, &args_type[specs[cnt].data_arg],
+	     &args_size[specs[cnt].data_arg]);
+	  break;
+	}
+    }
+
+  /* Now we know all the types and the order.  Fill in the argument
+     values.  */
+  for (cnt = 0; cnt < nargs; ++cnt)
+    switch (args_type[cnt])
+      {
+#define T(tag, mem, type)				\
+	case tag:					\
+	  args_value[cnt].mem = va_arg (*ap_savep, type); \
+	  break
+
+	T (PA_WCHAR, pa_wchar, wint_t);
+      case PA_CHAR:				/* Promoted.  */
+      case PA_INT|PA_FLAG_SHORT:		/* Promoted.  */
+#if LONG_MAX == INT_MAX
+      case PA_INT|PA_FLAG_LONG:
+#endif
+	T (PA_INT, pa_int, int);
+#if LONG_MAX == LONG_LONG_MAX
+      case PA_INT|PA_FLAG_LONG:
+#endif
+	T (PA_INT|PA_FLAG_LONG_LONG, pa_long_long_int, long long int);
+#if LONG_MAX != INT_MAX && LONG_MAX != LONG_LONG_MAX
+# error "he?"
+#endif
+      case PA_FLOAT:				/* Promoted.  */
+	T (PA_DOUBLE, pa_double, double);
+      case PA_DOUBLE|PA_FLAG_LONG_DOUBLE:
+	if (__ldbl_is_dbl)
+	  {
+	    args_value[cnt].pa_double = va_arg (*ap_savep, double);
+	    args_type[cnt] &= ~PA_FLAG_LONG_DOUBLE;
+	  }
+	else
+	  args_value[cnt].pa_long_double = va_arg (*ap_savep, long double);
+	break;
+      case PA_STRING:				/* All pointers are the same */
+      case PA_WSTRING:			/* All pointers are the same */
+	T (PA_POINTER, pa_pointer, void *);
+#undef T
+      default:
+	if ((args_type[cnt] & PA_FLAG_PTR) != 0)
+	  args_value[cnt].pa_pointer = va_arg (*ap_savep, void *);
+	else if (__glibc_unlikely (__printf_va_arg_table != NULL)
+		 && __printf_va_arg_table[args_type[cnt] - PA_LAST] != NULL)
+	  {
+	    args_value[cnt].pa_user = alloca (args_size[cnt]);
+	    (*__printf_va_arg_table[args_type[cnt] - PA_LAST])
+	      (args_value[cnt].pa_user, ap_savep);
+	  }
+	else
+	  args_value[cnt].pa_long_double = 0.0;
+	break;
+      case -1:
+	/* Error case.  Not all parameters appear in N$ format
+	   strings.  We have no way to determine their type.  */
+	assert (s->_flags2 & _IO_FLAGS2_FORTIFY);
+	__libc_fatal ("*** invalid %N$ use detected ***\n");
+      }
+
+  /* Now walk through all format specifiers and process them.  */
+  for (; (size_t) nspecs_done < nspecs; ++nspecs_done)
+    {
+      STEP4_TABLE;
+
+      int is_negative;
+      union
+      {
+	unsigned long long int longlong;
+	unsigned long int word;
+      } number;
+      int base;
+      union printf_arg the_arg;
+      CHAR_T *string;		/* Pointer to argument string.  */
+
+      /* Fill variables from values in struct.  */
+      int alt = specs[nspecs_done].info.alt;
+      int space = specs[nspecs_done].info.space;
+      int left = specs[nspecs_done].info.left;
+      int showsign = specs[nspecs_done].info.showsign;
+      int group = specs[nspecs_done].info.group;
+      int is_long_double = specs[nspecs_done].info.is_long_double;
+      int is_short = specs[nspecs_done].info.is_short;
+      int is_char = specs[nspecs_done].info.is_char;
+      int is_long = specs[nspecs_done].info.is_long;
+      int width = specs[nspecs_done].info.width;
+      int prec = specs[nspecs_done].info.prec;
+      int use_outdigits = specs[nspecs_done].info.i18n;
+      char pad = specs[nspecs_done].info.pad;
+      CHAR_T spec = specs[nspecs_done].info.spec;
+
+      workstart = NULL;
+      CHAR_T *workend = work_buffer + WORK_BUFFER_SIZE;
+
+      /* Fill in last information.  */
+      if (specs[nspecs_done].width_arg != -1)
+	{
+	  /* Extract the field width from an argument.  */
+	  specs[nspecs_done].info.width =
+	    args_value[specs[nspecs_done].width_arg].pa_int;
+
+	  if (specs[nspecs_done].info.width < 0)
+	    /* If the width value is negative left justification is
+	       selected and the value is taken as being positive.  */
+	    {
+	      specs[nspecs_done].info.width *= -1;
+	      left = specs[nspecs_done].info.left = 1;
+	    }
+	  width = specs[nspecs_done].info.width;
+	}
+
+      if (specs[nspecs_done].prec_arg != -1)
+	{
+	  /* Extract the precision from an argument.  */
+	  specs[nspecs_done].info.prec =
+	    args_value[specs[nspecs_done].prec_arg].pa_int;
+
+	  if (specs[nspecs_done].info.prec < 0)
+	    /* If the precision is negative the precision is
+	       omitted.  */
+	    specs[nspecs_done].info.prec = -1;
+
+	  prec = specs[nspecs_done].info.prec;
+	}
+
+      /* Maybe the buffer is too small.  */
+      if (MAX (prec, width) + EXTSIZ > WORK_BUFFER_SIZE)
+	{
+	  if (__libc_use_alloca ((MAX (prec, width) + EXTSIZ)
+				 * sizeof (CHAR_T)))
+	    workend = ((CHAR_T *) alloca ((MAX (prec, width) + EXTSIZ)
+					  * sizeof (CHAR_T))
+		       + (MAX (prec, width) + EXTSIZ));
+	  else
+	    {
+	      workstart = (CHAR_T *) malloc ((MAX (prec, width) + EXTSIZ)
+					     * sizeof (CHAR_T));
+	      if (workstart == NULL)
+		{
+		  done = -1;
+		  goto all_done;
+		}
+	      workend = workstart + (MAX (prec, width) + EXTSIZ);
+	    }
+	}
+
+      /* Process format specifiers.  */
+      while (1)
+	{
+	  extern printf_function **__printf_function_table;
+	  int function_done;
+
+	  if (spec <= UCHAR_MAX
+	      && __printf_function_table != NULL
+	      && __printf_function_table[(size_t) spec] != NULL)
+	    {
+	      const void **ptr = alloca (specs[nspecs_done].ndata_args
+					 * sizeof (const void *));
+
+	      /* Fill in an array of pointers to the argument values.  */
+	      for (unsigned int i = 0; i < specs[nspecs_done].ndata_args;
+		   ++i)
+		ptr[i] = &args_value[specs[nspecs_done].data_arg + i];
+
+	      /* Call the function.  */
+	      function_done = __printf_function_table[(size_t) spec]
+		(s, &specs[nspecs_done].info, ptr);
+
+	      if (function_done != -2)
+		{
+		  /* If an error occurred we don't have information
+		     about # of chars.  */
+		  if (function_done < 0)
+		    {
+		      /* Function has set errno.  */
+		      done = -1;
+		      goto all_done;
+		    }
+
+		  done_add (function_done);
+		  break;
+		}
+	    }
+
+	  JUMP (spec, step4_jumps);
+
+	  process_arg ((&specs[nspecs_done]));
+	  process_string_arg ((&specs[nspecs_done]));
+
+	  LABEL (form_unknown):
+	  {
+	    unsigned int i;
+	    const void **ptr;
+
+	    ptr = alloca (specs[nspecs_done].ndata_args
+			  * sizeof (const void *));
+
+	    /* Fill in an array of pointers to the argument values.  */
+	    for (i = 0; i < specs[nspecs_done].ndata_args; ++i)
+	      ptr[i] = &args_value[specs[nspecs_done].data_arg + i];
+
+	    /* Call the function.  */
+	    function_done = printf_unknown (s, &specs[nspecs_done].info,
+					    ptr);
+
+	    /* If an error occurred we don't have information about #
+	       of chars.  */
+	    if (function_done < 0)
+	      {
+		/* Function has set errno.  */
+		done = -1;
+		goto all_done;
+	      }
+
+	    done_add (function_done);
+	  }
+	  break;
+	}
+
+      if (__glibc_unlikely (workstart != NULL))
+	free (workstart);
+      workstart = NULL;
+
+      /* Write the following constant string.  */
+      outstring (specs[nspecs_done].end_of_fmt,
+		 specs[nspecs_done].next_fmt
+		 - specs[nspecs_done].end_of_fmt);
+    }
+ all_done:
+  if (__glibc_unlikely (args_malloced != NULL))
+    free (args_malloced);
+  if (__glibc_unlikely (workstart != NULL))
+    free (workstart);
+  scratch_buffer_free (&specsbuf);
+  return done;
+}
+
+/* Handle an unknown format specifier.  This prints out a canonicalized
+   representation of the format spec itself.  */
+static int
+printf_unknown (FILE *s, const struct printf_info *info,
+		const void *const *args)
+
+{
+  int done = 0;
+  CHAR_T work_buffer[MAX (sizeof (info->width), sizeof (info->prec)) * 3];
+  CHAR_T *const workend
+    = &work_buffer[sizeof (work_buffer) / sizeof (CHAR_T)];
+  CHAR_T *w;
+
+  outchar (L_('%'));
+
+  if (info->alt)
+    outchar (L_('#'));
+  if (info->group)
+    outchar (L_('\''));
+  if (info->showsign)
+    outchar (L_('+'));
+  else if (info->space)
+    outchar (L_(' '));
+  if (info->left)
+    outchar (L_('-'));
+  if (info->pad == L_('0'))
+    outchar (L_('0'));
+  if (info->i18n)
+    outchar (L_('I'));
+
+  if (info->width != 0)
+    {
+      w = _itoa_word (info->width, workend, 10, 0);
+      while (w < workend)
+	outchar (*w++);
+    }
+
+  if (info->prec != -1)
+    {
+      outchar (L_('.'));
+      w = _itoa_word (info->prec, workend, 10, 0);
+      while (w < workend)
+	outchar (*w++);
+    }
+
+  if (info->spec != L_('\0'))
+    outchar (info->spec);
+
+ all_done:
+  return done;
+}
+
+/* Group the digits according to the grouping rules of the current locale.
+   The interpretation of GROUPING is as in `struct lconv' from <locale.h>.  */
+static CHAR_T *
+internal_function
+group_number (CHAR_T *w, CHAR_T *rear_ptr, const char *grouping,
+	      THOUSANDS_SEP_T thousands_sep)
+{
+  int len;
+  CHAR_T *src, *s;
+#ifndef COMPILE_WPRINTF
+  int tlen = strlen (thousands_sep);
+#endif
+
+  /* We treat all negative values like CHAR_MAX.  */
+
+  if (*grouping == CHAR_MAX || *grouping <= 0)
+    /* No grouping should be done.  */
+    return w;
+
+  len = *grouping++;
+
+  /* Copy existing string so that nothing gets overwritten.  */
+  src = (CHAR_T *) alloca ((rear_ptr - w) * sizeof (CHAR_T));
+  s = (CHAR_T *) __mempcpy (src, w,
+			    (rear_ptr - w) * sizeof (CHAR_T));
+  w = rear_ptr;
+
+  /* Process all characters in the string.  */
+  while (s > src)
+    {
+      *--w = *--s;
+
+      if (--len == 0 && s > src)
+	{
+	  /* A new group begins.  */
+#ifdef COMPILE_WPRINTF
+	  *--w = thousands_sep;
+#else
+	  int cnt = tlen;
+	  do
+	    *--w = thousands_sep[--cnt];
+	  while (cnt > 0);
+#endif
+
+	  if (*grouping == CHAR_MAX
+#if CHAR_MIN < 0
+		   || *grouping < 0
+#endif
+		   )
+	    {
+	      /* No further grouping to be done.
+		 Copy the rest of the number.  */
+	      do
+		*--w = *--s;
+	      while (s > src);
+	      break;
+	    }
+	  else if (*grouping != '\0')
+	    /* The previous grouping repeats ad infinitum.  */
+	    len = *grouping++;
+	  else
+	    len = grouping[-1];
+	}
+    }
+  return w;
+}
+
+/* Helper "class" for `fprintf to unbuffered': creates a temporary buffer.  */
+struct helper_file
+  {
+    struct _IO_FILE_plus _f;
+#ifdef COMPILE_WPRINTF
+    struct _IO_wide_data _wide_data;
+#endif
+    _IO_FILE *_put_stream;
+#ifdef _IO_MTSAFE_IO
+    _IO_lock_t lock;
+#endif
+  };
+
+static int
+_IO_helper_overflow (_IO_FILE *s, int c)
+{
+  _IO_FILE *target = ((struct helper_file*) s)->_put_stream;
+#ifdef COMPILE_WPRINTF
+  int used = s->_wide_data->_IO_write_ptr - s->_wide_data->_IO_write_base;
+  if (used)
+    {
+      _IO_size_t written = _IO_sputn (target, s->_wide_data->_IO_write_base,
+				      used);
+      if (written == 0 || written == WEOF)
+	return WEOF;
+      __wmemmove (s->_wide_data->_IO_write_base,
+		  s->_wide_data->_IO_write_base + written,
+		  used - written);
+      s->_wide_data->_IO_write_ptr -= written;
+    }
+#else
+  int used = s->_IO_write_ptr - s->_IO_write_base;
+  if (used)
+    {
+      _IO_size_t written = _IO_sputn (target, s->_IO_write_base, used);
+      if (written == 0 || written == EOF)
+	return EOF;
+      memmove (s->_IO_write_base, s->_IO_write_base + written,
+	       used - written);
+      s->_IO_write_ptr -= written;
+    }
+#endif
+  return PUTC (c, s);
+}
+
+#ifdef COMPILE_WPRINTF
+static const struct _IO_jump_t _IO_helper_jumps libio_vtable =
+{
+  JUMP_INIT_DUMMY,
+  JUMP_INIT (finish, _IO_wdefault_finish),
+  JUMP_INIT (overflow, _IO_helper_overflow),
+  JUMP_INIT (underflow, _IO_default_underflow),
+  JUMP_INIT (uflow, _IO_default_uflow),
+  JUMP_INIT (pbackfail, (_IO_pbackfail_t) _IO_wdefault_pbackfail),
+  JUMP_INIT (xsputn, _IO_wdefault_xsputn),
+  JUMP_INIT (xsgetn, _IO_wdefault_xsgetn),
+  JUMP_INIT (seekoff, _IO_default_seekoff),
+  JUMP_INIT (seekpos, _IO_default_seekpos),
+  JUMP_INIT (setbuf, _IO_default_setbuf),
+  JUMP_INIT (sync, _IO_default_sync),
+  JUMP_INIT (doallocate, _IO_wdefault_doallocate),
+  JUMP_INIT (read, _IO_default_read),
+  JUMP_INIT (write, _IO_default_write),
+  JUMP_INIT (seek, _IO_default_seek),
+  JUMP_INIT (close, _IO_default_close),
+  JUMP_INIT (stat, _IO_default_stat)
+};
+#else
+static const struct _IO_jump_t _IO_helper_jumps libio_vtable =
+{
+  JUMP_INIT_DUMMY,
+  JUMP_INIT (finish, _IO_default_finish),
+  JUMP_INIT (overflow, _IO_helper_overflow),
+  JUMP_INIT (underflow, _IO_default_underflow),
+  JUMP_INIT (uflow, _IO_default_uflow),
+  JUMP_INIT (pbackfail, _IO_default_pbackfail),
+  JUMP_INIT (xsputn, _IO_default_xsputn),
+  JUMP_INIT (xsgetn, _IO_default_xsgetn),
+  JUMP_INIT (seekoff, _IO_default_seekoff),
+  JUMP_INIT (seekpos, _IO_default_seekpos),
+  JUMP_INIT (setbuf, _IO_default_setbuf),
+  JUMP_INIT (sync, _IO_default_sync),
+  JUMP_INIT (doallocate, _IO_default_doallocate),
+  JUMP_INIT (read, _IO_default_read),
+  JUMP_INIT (write, _IO_default_write),
+  JUMP_INIT (seek, _IO_default_seek),
+  JUMP_INIT (close, _IO_default_close),
+  JUMP_INIT (stat, _IO_default_stat)
+};
+#endif
+
+static int
+internal_function
+buffered_vfprintf (_IO_FILE *s, const CHAR_T *format,
+		   _IO_va_list args)
+{
+  CHAR_T buf[_IO_BUFSIZ];
+  struct helper_file helper;
+  _IO_FILE *hp = (_IO_FILE *) &helper._f;
+  int result, to_flush;
+
+  /* Orient the stream.  */
+#ifdef ORIENT
+  ORIENT;
+#endif
+
+  /* Initialize helper.  */
+  helper._put_stream = s;
+#ifdef COMPILE_WPRINTF
+  hp->_wide_data = &helper._wide_data;
+  _IO_wsetp (hp, buf, buf + sizeof buf / sizeof (CHAR_T));
+  hp->_mode = 1;
+#else
+  _IO_setp (hp, buf, buf + sizeof buf);
+  hp->_mode = -1;
+#endif
+  hp->_IO_file_flags = _IO_MAGIC|_IO_NO_READS|_IO_USER_LOCK;
+#if _IO_JUMPS_OFFSET
+  hp->_vtable_offset = 0;
+#endif
+#ifdef _IO_MTSAFE_IO
+  hp->_lock = NULL;
+#endif
+  hp->_flags2 = s->_flags2;
+  _IO_JUMPS (&helper._f) = (struct _IO_jump_t *) &_IO_helper_jumps;
+
+  /* Now print to helper instead.  */
+#ifndef COMPILE_WPRINTF
+  result = _IO_vfprintf (hp, format, args);
+#else
+  result = vfprintf (hp, format, args);
+#endif
+
+  /* Lock stream.  */
+  __libc_cleanup_region_start (1, (void (*) (void *)) &_IO_funlockfile, s);
+  _IO_flockfile (s);
+
+  /* Now flush anything from the helper to the S. */
+#ifdef COMPILE_WPRINTF
+  if ((to_flush = (hp->_wide_data->_IO_write_ptr
+		   - hp->_wide_data->_IO_write_base)) > 0)
+    {
+      if ((int) _IO_sputn (s, hp->_wide_data->_IO_write_base, to_flush)
+	  != to_flush)
+	result = -1;
+    }
+#else
+  if ((to_flush = hp->_IO_write_ptr - hp->_IO_write_base) > 0)
+    {
+      if ((int) _IO_sputn (s, hp->_IO_write_base, to_flush) != to_flush)
+	result = -1;
+    }
+#endif
+
+  /* Unlock the stream.  */
+  _IO_funlockfile (s);
+  __libc_cleanup_region_end (0);
+
+  return result;
+}
+
+#undef vfprintf
+#ifdef COMPILE_WPRINTF
+strong_alias (_IO_vfwprintf, __vfwprintf);
+ldbl_weak_alias (_IO_vfwprintf, vfwprintf);
+#else
+ldbl_strong_alias (_IO_vfprintf_internal, vfprintf);
+ldbl_hidden_def (_IO_vfprintf_internal, vfprintf)
+ldbl_strong_alias (_IO_vfprintf_internal, _IO_vfprintf);
+ldbl_hidden_def (_IO_vfprintf_internal, _IO_vfprintf)
+#endif
diff --git a/REORG.TODO/stdio-common/vfscanf.c b/REORG.TODO/stdio-common/vfscanf.c
new file mode 100644
index 0000000000..1adf27e11b
--- /dev/null
+++ b/REORG.TODO/stdio-common/vfscanf.c
@@ -0,0 +1,3070 @@
+/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <assert.h>
+#include <errno.h>
+#include <limits.h>
+#include <ctype.h>
+#include <stdarg.h>
+#include <stdbool.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+#include <wchar.h>
+#include <wctype.h>
+#include <libc-diag.h>
+#include <libc-lock.h>
+#include <locale/localeinfo.h>
+#include <scratch_buffer.h>
+
+#ifdef	__GNUC__
+# define HAVE_LONGLONG
+# define LONGLONG	long long
+#else
+# define LONGLONG	long
+#endif
+
+/* Determine whether we have to handle `long long' at all.  */
+#if LONG_MAX == LONG_LONG_MAX
+# define need_longlong	0
+#else
+# define need_longlong	1
+#endif
+
+/* Determine whether we have to handle `long'.  */
+#if INT_MAX == LONG_MAX
+# define need_long	0
+#else
+# define need_long	1
+#endif
+
+/* Those are flags in the conversion format. */
+#define LONG		0x0001	/* l: long or double */
+#define LONGDBL		0x0002	/* L: long long or long double */
+#define SHORT		0x0004	/* h: short */
+#define SUPPRESS	0x0008	/* *: suppress assignment */
+#define POINTER		0x0010	/* weird %p pointer (`fake hex') */
+#define NOSKIP		0x0020	/* do not skip blanks */
+#define NUMBER_SIGNED	0x0040	/* signed integer */
+#define GROUP		0x0080	/* ': group numbers */
+#define GNU_MALLOC	0x0100	/* a: malloc strings */
+#define CHAR		0x0200	/* hh: char */
+#define I18N		0x0400	/* I: use locale's digits */
+#define HEXA_FLOAT	0x0800	/* hexadecimal float */
+#define READ_POINTER	0x1000	/* this is a pointer value */
+#define POSIX_MALLOC	0x2000	/* m: malloc strings */
+#define MALLOC		(GNU_MALLOC | POSIX_MALLOC)
+
+#include <locale/localeinfo.h>
+#include <libioP.h>
+#include <libio.h>
+
+#undef va_list
+#define va_list	_IO_va_list
+
+#ifdef COMPILE_WSCANF
+# define ungetc(c, s)	((void) (c == WEOF				      \
+				 || (--read_in,				      \
+				     _IO_sputbackwc (s, c))))
+# define ungetc_not_eof(c, s)	((void) (--read_in,			      \
+					 _IO_sputbackwc (s, c)))
+# define inchar()	(c == WEOF ? ((errno = inchar_errno), WEOF)	      \
+			 : ((c = _IO_getwc_unlocked (s)),		      \
+			    (void) (c != WEOF				      \
+				    ? ++read_in				      \
+				    : (size_t) (inchar_errno = errno)), c))
+
+# define ISSPACE(Ch)	  iswspace (Ch)
+# define ISDIGIT(Ch)	  iswdigit (Ch)
+# define ISXDIGIT(Ch)	  iswxdigit (Ch)
+# define TOLOWER(Ch)	  towlower (Ch)
+# define ORIENT	  if (_IO_fwide (s, 1) != 1) return WEOF
+# define __strtoll_internal	__wcstoll_internal
+# define __strtoull_internal	__wcstoull_internal
+# define __strtol_internal	__wcstol_internal
+# define __strtoul_internal	__wcstoul_internal
+# define __strtold_internal	__wcstold_internal
+# define __strtod_internal	__wcstod_internal
+# define __strtof_internal	__wcstof_internal
+
+# define L_(Str)	L##Str
+# define CHAR_T		wchar_t
+# define UCHAR_T	unsigned int
+# define WINT_T		wint_t
+# undef EOF
+# define EOF		WEOF
+#else
+# define ungetc(c, s)	((void) ((int) c == EOF				      \
+				 || (--read_in,				      \
+				     _IO_sputbackc (s, (unsigned char) c))))
+# define ungetc_not_eof(c, s)	((void) (--read_in,			      \
+					 _IO_sputbackc (s, (unsigned char) c)))
+# define inchar()	(c == EOF ? ((errno = inchar_errno), EOF)	      \
+			 : ((c = _IO_getc_unlocked (s)),		      \
+			    (void) (c != EOF				      \
+				    ? ++read_in				      \
+				    : (size_t) (inchar_errno = errno)), c))
+# define ISSPACE(Ch)	  __isspace_l (Ch, loc)
+# define ISDIGIT(Ch)	  __isdigit_l (Ch, loc)
+# define ISXDIGIT(Ch)	  __isxdigit_l (Ch, loc)
+# define TOLOWER(Ch)	  __tolower_l ((unsigned char) (Ch), loc)
+# define ORIENT	  if (_IO_vtable_offset (s) == 0			      \
+			      && _IO_fwide (s, -1) != -1)		      \
+			    return EOF
+
+# define L_(Str)	Str
+# define CHAR_T		char
+# define UCHAR_T	unsigned char
+# define WINT_T		int
+#endif
+
+#include "printf-parse.h" /* Use read_int.  */
+
+#define encode_error() do {						      \
+			  errval = 4;					      \
+			  __set_errno (EILSEQ);				      \
+			  goto errout;					      \
+			} while (0)
+#define conv_error()	do {						      \
+			  errval = 2;					      \
+			  goto errout;					      \
+			} while (0)
+#define input_error()	do {						      \
+			  errval = 1;					      \
+			  if (done == 0) done = EOF;			      \
+			  goto errout;					      \
+			} while (0)
+#define add_ptr_to_free(ptr)						      \
+  do									      \
+    {									      \
+      if (ptrs_to_free == NULL						      \
+	  || ptrs_to_free->count == (sizeof (ptrs_to_free->ptrs)	      \
+				     / sizeof (ptrs_to_free->ptrs[0])))	      \
+	{								      \
+	  struct ptrs_to_free *new_ptrs = alloca (sizeof (*ptrs_to_free));    \
+	  new_ptrs->count = 0;						      \
+	  new_ptrs->next = ptrs_to_free;				      \
+	  ptrs_to_free = new_ptrs;					      \
+	}								      \
+      ptrs_to_free->ptrs[ptrs_to_free->count++] = (ptr);		      \
+    }									      \
+  while (0)
+#define ARGCHECK(s, format)						      \
+  do									      \
+    {									      \
+      /* Check file argument for consistence.  */			      \
+      CHECK_FILE (s, EOF);						      \
+      if (s->_flags & _IO_NO_READS)					      \
+	{								      \
+	  __set_errno (EBADF);						      \
+	  return EOF;							      \
+	}								      \
+      else if (format == NULL)						      \
+	{								      \
+	  MAYBE_SET_EINVAL;						      \
+	  return EOF;							      \
+	}								      \
+    } while (0)
+#define LOCK_STREAM(S)							      \
+  __libc_cleanup_region_start (1, (void (*) (void *)) &_IO_funlockfile, (S)); \
+  _IO_flockfile (S)
+#define UNLOCK_STREAM(S)						      \
+  _IO_funlockfile (S);							      \
+  __libc_cleanup_region_end (0)
+
+struct ptrs_to_free
+{
+  size_t count;
+  struct ptrs_to_free *next;
+  char **ptrs[32];
+};
+
+struct char_buffer {
+  CHAR_T *current;
+  CHAR_T *end;
+  struct scratch_buffer scratch;
+};
+
+/* Returns a pointer to the first CHAR_T object in the buffer.  Only
+   valid if char_buffer_add (BUFFER, CH) has been called and
+   char_buffer_error (BUFFER) is false.  */
+static inline CHAR_T *
+char_buffer_start (const struct char_buffer *buffer)
+{
+  return (CHAR_T *) buffer->scratch.data;
+}
+
+/* Returns the number of CHAR_T objects in the buffer.  Only valid if
+   char_buffer_error (BUFFER) is false.  */
+static inline size_t
+char_buffer_size (const struct char_buffer *buffer)
+{
+  return buffer->current - char_buffer_start (buffer);
+}
+
+/* Reinitializes BUFFER->current and BUFFER->end to cover the entire
+   scratch buffer.  */
+static inline void
+char_buffer_rewind (struct char_buffer *buffer)
+{
+  buffer->current = char_buffer_start (buffer);
+  buffer->end = buffer->current + buffer->scratch.length / sizeof (CHAR_T);
+}
+
+/* Returns true if a previous call to char_buffer_add (BUFFER, CH)
+   failed.  */
+static inline bool
+char_buffer_error (const struct char_buffer *buffer)
+{
+  return __glibc_unlikely (buffer->current == NULL);
+}
+
+/* Slow path for char_buffer_add.  */
+static void
+char_buffer_add_slow (struct char_buffer *buffer, CHAR_T ch)
+{
+  if (char_buffer_error (buffer))
+    return;
+  size_t offset = buffer->end - (CHAR_T *) buffer->scratch.data;
+  if (!scratch_buffer_grow_preserve (&buffer->scratch))
+    {
+      buffer->current = NULL;
+      buffer->end = NULL;
+      return;
+    }
+  char_buffer_rewind (buffer);
+  buffer->current += offset;
+  *buffer->current++ = ch;
+}
+
+/* Adds CH to BUFFER.  This function does not report any errors, check
+   for them with char_buffer_error.  */
+static inline void
+char_buffer_add (struct char_buffer *buffer, CHAR_T ch)
+  __attribute__ ((always_inline));
+static inline void
+char_buffer_add (struct char_buffer *buffer, CHAR_T ch)
+{
+  if (__glibc_unlikely (buffer->current == buffer->end))
+    char_buffer_add_slow (buffer, ch);
+  else
+    *buffer->current++ = ch;
+}
+
+/* Read formatted input from S according to the format string
+   FORMAT, using the argument list in ARG.
+   Return the number of assignments made, or -1 for an input error.  */
+#ifdef COMPILE_WSCANF
+int
+_IO_vfwscanf (_IO_FILE *s, const wchar_t *format, _IO_va_list argptr,
+	      int *errp)
+#else
+int
+_IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr,
+		      int *errp)
+#endif
+{
+  va_list arg;
+  const CHAR_T *f = format;
+  UCHAR_T fc;	/* Current character of the format.  */
+  WINT_T done = 0;	/* Assignments done.  */
+  size_t read_in = 0;	/* Chars read in.  */
+  WINT_T c = 0;	/* Last char read.  */
+  int width;		/* Maximum field width.  */
+  int flags;		/* Modifiers for current format element.  */
+  int errval = 0;
+#ifndef COMPILE_WSCANF
+  __locale_t loc = _NL_CURRENT_LOCALE;
+  struct __locale_data *const curctype = loc->__locales[LC_CTYPE];
+#endif
+
+  /* Errno of last failed inchar call.  */
+  int inchar_errno = 0;
+  /* Status for reading F-P nums.  */
+  char got_digit, got_dot, got_e, negative;
+  /* If a [...] is a [^...].  */
+  CHAR_T not_in;
+#define exp_char not_in
+  /* Base for integral numbers.  */
+  int base;
+  /* Decimal point character.  */
+#ifdef COMPILE_WSCANF
+  wint_t decimal;
+#else
+  const char *decimal;
+#endif
+  /* The thousands character of the current locale.  */
+#ifdef COMPILE_WSCANF
+  wint_t thousands;
+#else
+  const char *thousands;
+#endif
+  struct ptrs_to_free *ptrs_to_free = NULL;
+  /* State for the conversions.  */
+  mbstate_t state;
+  /* Integral holding variables.  */
+  union
+    {
+      long long int q;
+      unsigned long long int uq;
+      long int l;
+      unsigned long int ul;
+    } num;
+  /* Character-buffer pointer.  */
+  char *str = NULL;
+  wchar_t *wstr = NULL;
+  char **strptr = NULL;
+  ssize_t strsize = 0;
+  /* We must not react on white spaces immediately because they can
+     possibly be matched even if in the input stream no character is
+     available anymore.  */
+  int skip_space = 0;
+  /* Workspace.  */
+  CHAR_T *tw;			/* Temporary pointer.  */
+  struct char_buffer charbuf;
+  scratch_buffer_init (&charbuf.scratch);
+
+#ifdef __va_copy
+  __va_copy (arg, argptr);
+#else
+  arg = (va_list) argptr;
+#endif
+
+#ifdef ORIENT
+  ORIENT;
+#endif
+
+  ARGCHECK (s, format);
+
+ {
+#ifndef COMPILE_WSCANF
+   struct __locale_data *const curnumeric = loc->__locales[LC_NUMERIC];
+#endif
+
+   /* Figure out the decimal point character.  */
+#ifdef COMPILE_WSCANF
+   decimal = _NL_CURRENT_WORD (LC_NUMERIC, _NL_NUMERIC_DECIMAL_POINT_WC);
+#else
+   decimal = curnumeric->values[_NL_ITEM_INDEX (DECIMAL_POINT)].string;
+#endif
+   /* Figure out the thousands separator character.  */
+#ifdef COMPILE_WSCANF
+   thousands = _NL_CURRENT_WORD (LC_NUMERIC, _NL_NUMERIC_THOUSANDS_SEP_WC);
+#else
+   thousands = curnumeric->values[_NL_ITEM_INDEX (THOUSANDS_SEP)].string;
+   if (*thousands == '\0')
+     thousands = NULL;
+#endif
+ }
+
+  /* Lock the stream.  */
+  LOCK_STREAM (s);
+
+
+#ifndef COMPILE_WSCANF
+  /* From now on we use `state' to convert the format string.  */
+  memset (&state, '\0', sizeof (state));
+#endif
+
+  /* Run through the format string.  */
+  while (*f != '\0')
+    {
+      unsigned int argpos;
+      /* Extract the next argument, which is of type TYPE.
+	 For a %N$... spec, this is the Nth argument from the beginning;
+	 otherwise it is the next argument after the state now in ARG.  */
+#ifdef __va_copy
+# define ARG(type)	(argpos == 0 ? va_arg (arg, type) :		      \
+			 ({ unsigned int pos = argpos;			      \
+			    va_list arg;				      \
+			    __va_copy (arg, argptr);			      \
+			    while (--pos > 0)				      \
+			      (void) va_arg (arg, void *);		      \
+			    va_arg (arg, type);				      \
+			  }))
+#else
+# if 0
+      /* XXX Possible optimization.  */
+#  define ARG(type)	(argpos == 0 ? va_arg (arg, type) :		      \
+			 ({ va_list arg = (va_list) argptr;		      \
+			    arg = (va_list) ((char *) arg		      \
+					     + (argpos - 1)		      \
+					     * __va_rounded_size (void *));   \
+			    va_arg (arg, type);				      \
+			 }))
+# else
+#  define ARG(type)	(argpos == 0 ? va_arg (arg, type) :		      \
+			 ({ unsigned int pos = argpos;			      \
+			    va_list arg = (va_list) argptr;		      \
+			    while (--pos > 0)				      \
+			      (void) va_arg (arg, void *);		      \
+			    va_arg (arg, type);				      \
+			  }))
+# endif
+#endif
+
+#ifndef COMPILE_WSCANF
+      if (!isascii ((unsigned char) *f))
+	{
+	  /* Non-ASCII, may be a multibyte.  */
+	  int len = __mbrlen (f, strlen (f), &state);
+	  if (len > 0)
+	    {
+	      do
+		{
+		  c = inchar ();
+		  if (__glibc_unlikely (c == EOF))
+		    input_error ();
+		  else if (c != (unsigned char) *f++)
+		    {
+		      ungetc_not_eof (c, s);
+		      conv_error ();
+		    }
+		}
+	      while (--len > 0);
+	      continue;
+	    }
+	}
+#endif
+
+      fc = *f++;
+      if (fc != '%')
+	{
+	  /* Remember to skip spaces.  */
+	  if (ISSPACE (fc))
+	    {
+	      skip_space = 1;
+	      continue;
+	    }
+
+	  /* Read a character.  */
+	  c = inchar ();
+
+	  /* Characters other than format specs must just match.  */
+	  if (__glibc_unlikely (c == EOF))
+	    input_error ();
+
+	  /* We saw white space char as the last character in the format
+	     string.  Now it's time to skip all leading white space.  */
+	  if (skip_space)
+	    {
+	      while (ISSPACE (c))
+		if (__glibc_unlikely (inchar () == EOF))
+		  input_error ();
+	      skip_space = 0;
+	    }
+
+	  if (__glibc_unlikely (c != fc))
+	    {
+	      ungetc (c, s);
+	      conv_error ();
+	    }
+
+	  continue;
+	}
+
+      /* This is the start of the conversion string. */
+      flags = 0;
+
+      /* Initialize state of modifiers.  */
+      argpos = 0;
+
+      /* Prepare temporary buffer.  */
+      char_buffer_rewind (&charbuf);
+
+      /* Check for a positional parameter specification.  */
+      if (ISDIGIT ((UCHAR_T) *f))
+	{
+	  argpos = read_int ((const UCHAR_T **) &f);
+	  if (*f == L_('$'))
+	    ++f;
+	  else
+	    {
+	      /* Oops; that was actually the field width.  */
+	      width = argpos;
+	      argpos = 0;
+	      goto got_width;
+	    }
+	}
+
+      /* Check for the assignment-suppressing, the number grouping flag,
+	 and the signal to use the locale's digit representation.  */
+      while (*f == L_('*') || *f == L_('\'') || *f == L_('I'))
+	switch (*f++)
+	  {
+	  case L_('*'):
+	    flags |= SUPPRESS;
+	    break;
+	  case L_('\''):
+#ifdef COMPILE_WSCANF
+	    if (thousands != L'\0')
+#else
+	    if (thousands != NULL)
+#endif
+	      flags |= GROUP;
+	    break;
+	  case L_('I'):
+	    flags |= I18N;
+	    break;
+	  }
+
+      /* Find the maximum field width.  */
+      width = 0;
+      if (ISDIGIT ((UCHAR_T) *f))
+	width = read_int ((const UCHAR_T **) &f);
+    got_width:
+      if (width == 0)
+	width = -1;
+
+      /* Check for type modifiers.  */
+      switch (*f++)
+	{
+	case L_('h'):
+	  /* ints are short ints or chars.  */
+	  if (*f == L_('h'))
+	    {
+	      ++f;
+	      flags |= CHAR;
+	    }
+	  else
+	    flags |= SHORT;
+	  break;
+	case L_('l'):
+	  if (*f == L_('l'))
+	    {
+	      /* A double `l' is equivalent to an `L'.  */
+	      ++f;
+	      flags |= LONGDBL | LONG;
+	    }
+	  else
+	    /* ints are long ints.  */
+	    flags |= LONG;
+	  break;
+	case L_('q'):
+	case L_('L'):
+	  /* doubles are long doubles, and ints are long long ints.  */
+	  flags |= LONGDBL | LONG;
+	  break;
+	case L_('a'):
+	  /* The `a' is used as a flag only if followed by `s', `S' or
+	     `['.  */
+	  if (*f != L_('s') && *f != L_('S') && *f != L_('['))
+	    {
+	      --f;
+	      break;
+	    }
+	  /* In __isoc99_*scanf %as, %aS and %a[ extension is not
+	     supported at all.  */
+	  if (s->_flags2 & _IO_FLAGS2_SCANF_STD)
+	    {
+	      --f;
+	      break;
+	    }
+	  /* String conversions (%s, %[) take a `char **'
+	     arg and fill it in with a malloc'd pointer.  */
+	  flags |= GNU_MALLOC;
+	  break;
+	case L_('m'):
+	  flags |= POSIX_MALLOC;
+	  if (*f == L_('l'))
+	    {
+	      ++f;
+	      flags |= LONG;
+	    }
+	  break;
+	case L_('z'):
+	  if (need_longlong && sizeof (size_t) > sizeof (unsigned long int))
+	    flags |= LONGDBL;
+	  else if (sizeof (size_t) > sizeof (unsigned int))
+	    flags |= LONG;
+	  break;
+	case L_('j'):
+	  if (need_longlong && sizeof (uintmax_t) > sizeof (unsigned long int))
+	    flags |= LONGDBL;
+	  else if (sizeof (uintmax_t) > sizeof (unsigned int))
+	    flags |= LONG;
+	  break;
+	case L_('t'):
+	  if (need_longlong && sizeof (ptrdiff_t) > sizeof (long int))
+	    flags |= LONGDBL;
+	  else if (sizeof (ptrdiff_t) > sizeof (int))
+	    flags |= LONG;
+	  break;
+	default:
+	  /* Not a recognized modifier.  Backup.  */
+	  --f;
+	  break;
+	}
+
+      /* End of the format string?  */
+      if (__glibc_unlikely (*f == L_('\0')))
+	conv_error ();
+
+      /* Find the conversion specifier.  */
+      fc = *f++;
+      if (skip_space || (fc != L_('[') && fc != L_('c')
+			 && fc != L_('C') && fc != L_('n')))
+	{
+	  /* Eat whitespace.  */
+	  int save_errno = errno;
+	  __set_errno (0);
+	  do
+	    /* We add the additional test for EOF here since otherwise
+	       inchar will restore the old errno value which might be
+	       EINTR but does not indicate an interrupt since nothing
+	       was read at this time.  */
+	    if (__builtin_expect ((c == EOF || inchar () == EOF)
+				  && errno == EINTR, 0))
+	      input_error ();
+	  while (ISSPACE (c));
+	  __set_errno (save_errno);
+	  ungetc (c, s);
+	  skip_space = 0;
+	}
+
+      switch (fc)
+	{
+	case L_('%'):	/* Must match a literal '%'.  */
+	  c = inchar ();
+	  if (__glibc_unlikely (c == EOF))
+	    input_error ();
+	  if (__glibc_unlikely (c != fc))
+	    {
+	      ungetc_not_eof (c, s);
+	      conv_error ();
+	    }
+	  break;
+
+	case L_('n'):	/* Answer number of assignments done.  */
+	  /* Corrigendum 1 to ISO C 1990 describes the allowed flags
+	     with the 'n' conversion specifier.  */
+	  if (!(flags & SUPPRESS))
+	    {
+	      /* Don't count the read-ahead.  */
+	      if (need_longlong && (flags & LONGDBL))
+		*ARG (long long int *) = read_in;
+	      else if (need_long && (flags & LONG))
+		*ARG (long int *) = read_in;
+	      else if (flags & SHORT)
+		*ARG (short int *) = read_in;
+	      else if (!(flags & CHAR))
+		*ARG (int *) = read_in;
+	      else
+		*ARG (char *) = read_in;
+
+#ifdef NO_BUG_IN_ISO_C_CORRIGENDUM_1
+	      /* We have a severe problem here.  The ISO C standard
+		 contradicts itself in explaining the effect of the %n
+		 format in `scanf'.  While in ISO C:1990 and the ISO C
+		 Amendement 1:1995 the result is described as
+
+		   Execution of a %n directive does not effect the
+		   assignment count returned at the completion of
+		   execution of the f(w)scanf function.
+
+		 in ISO C Corrigendum 1:1994 the following was added:
+
+		   Subclause 7.9.6.2
+		   Add the following fourth example:
+		     In:
+		       #include <stdio.h>
+		       int d1, d2, n1, n2, i;
+		       i = sscanf("123", "%d%n%n%d", &d1, &n1, &n2, &d2);
+		     the value 123 is assigned to d1 and the value3 to n1.
+		     Because %n can never get an input failure the value
+		     of 3 is also assigned to n2.  The value of d2 is not
+		     affected.  The value 3 is assigned to i.
+
+		 We go for now with the historically correct code from ISO C,
+		 i.e., we don't count the %n assignments.  When it ever
+		 should proof to be wrong just remove the #ifdef above.  */
+	      ++done;
+#endif
+	    }
+	  break;
+
+	case L_('c'):	/* Match characters.  */
+	  if ((flags & LONG) == 0)
+	    {
+	      if (width == -1)
+		width = 1;
+
+#define STRING_ARG(Str, Type, Width)					      \
+	      do if (!(flags & SUPPRESS))				      \
+		{							      \
+		  if (flags & MALLOC)					      \
+		    {							      \
+		      /* The string is to be stored in a malloc'd buffer.  */ \
+		      /* For %mS using char ** is actually wrong, but	      \
+			 shouldn't make a difference on any arch glibc	      \
+			 supports and would unnecessarily complicate	      \
+			 things. */					      \
+		      strptr = ARG (char **);				      \
+		      if (strptr == NULL)				      \
+			conv_error ();					      \
+		      /* Allocate an initial buffer.  */		      \
+		      strsize = Width;					      \
+		      *strptr = (char *) malloc (strsize * sizeof (Type));    \
+		      Str = (Type *) *strptr;				      \
+		      if (Str != NULL)					      \
+			add_ptr_to_free (strptr);			      \
+		      else if (flags & POSIX_MALLOC)			      \
+			{						      \
+			  done = EOF;					      \
+			  goto errout;					      \
+			}						      \
+		    }							      \
+		  else							      \
+		    Str = ARG (Type *);					      \
+		  if (Str == NULL)					      \
+		    conv_error ();					      \
+		} while (0)
+#ifdef COMPILE_WSCANF
+	      STRING_ARG (str, char, 100);
+#else
+	      STRING_ARG (str, char, (width > 1024 ? 1024 : width));
+#endif
+
+	      c = inchar ();
+	      if (__glibc_unlikely (c == EOF))
+		input_error ();
+
+#ifdef COMPILE_WSCANF
+	      /* We have to convert the wide character(s) into multibyte
+		 characters and store the result.  */
+	      memset (&state, '\0', sizeof (state));
+
+	      do
+		{
+		  size_t n;
+
+		  if (!(flags & SUPPRESS) && (flags & POSIX_MALLOC)
+		      && *strptr + strsize - str <= MB_LEN_MAX)
+		    {
+		      /* We have to enlarge the buffer if the `m' flag
+			 was given.  */
+		      size_t strleng = str - *strptr;
+		      char *newstr;
+
+		      newstr = (char *) realloc (*strptr, strsize * 2);
+		      if (newstr == NULL)
+			{
+			  /* Can't allocate that much.  Last-ditch effort.  */
+			  newstr = (char *) realloc (*strptr,
+						     strleng + MB_LEN_MAX);
+			  if (newstr == NULL)
+			    {
+			      /* c can't have `a' flag, only `m'.  */
+			      done = EOF;
+			      goto errout;
+			    }
+			  else
+			    {
+			      *strptr = newstr;
+			      str = newstr + strleng;
+			      strsize = strleng + MB_LEN_MAX;
+			    }
+			}
+		      else
+			{
+			  *strptr = newstr;
+			  str = newstr + strleng;
+			  strsize *= 2;
+			}
+		    }
+
+		  n = __wcrtomb (!(flags & SUPPRESS) ? str : NULL, c, &state);
+		  if (__glibc_unlikely (n == (size_t) -1))
+		    /* No valid wide character.  */
+		    input_error ();
+
+		  /* Increment the output pointer.  Even if we don't
+		     write anything.  */
+		  str += n;
+		}
+	      while (--width > 0 && inchar () != EOF);
+#else
+	      if (!(flags & SUPPRESS))
+		{
+		  do
+		    {
+		      if ((flags & MALLOC)
+			  && (char *) str == *strptr + strsize)
+			{
+			  /* Enlarge the buffer.  */
+			  size_t newsize
+			    = strsize
+			      + (strsize >= width ? width - 1 : strsize);
+
+			  str = (char *) realloc (*strptr, newsize);
+			  if (str == NULL)
+			    {
+			      /* Can't allocate that much.  Last-ditch
+				 effort.  */
+			      str = (char *) realloc (*strptr, strsize + 1);
+			      if (str == NULL)
+				{
+				  /* c can't have `a' flag, only `m'.  */
+				  done = EOF;
+				  goto errout;
+				}
+			      else
+				{
+				  *strptr = (char *) str;
+				  str += strsize;
+				  ++strsize;
+				}
+			    }
+			  else
+			    {
+			      *strptr = (char *) str;
+			      str += strsize;
+			      strsize = newsize;
+			    }
+			}
+		      *str++ = c;
+		    }
+		  while (--width > 0 && inchar () != EOF);
+		}
+	      else
+		while (--width > 0 && inchar () != EOF);
+#endif
+
+	      if (!(flags & SUPPRESS))
+		{
+		  if ((flags & MALLOC) && str - *strptr != strsize)
+		    {
+		      char *cp = (char *) realloc (*strptr, str - *strptr);
+		      if (cp != NULL)
+			*strptr = cp;
+		    }
+		  strptr = NULL;
+		  ++done;
+		}
+
+	      break;
+	    }
+	  /* FALLTHROUGH */
+	case L_('C'):
+	  if (width == -1)
+	    width = 1;
+
+	  STRING_ARG (wstr, wchar_t, (width > 1024 ? 1024 : width));
+
+	  c = inchar ();
+	  if (__glibc_unlikely (c == EOF))
+	    input_error ();
+
+#ifdef COMPILE_WSCANF
+	  /* Just store the incoming wide characters.  */
+	  if (!(flags & SUPPRESS))
+	    {
+	      do
+		{
+		  if ((flags & MALLOC)
+		      && wstr == (wchar_t *) *strptr + strsize)
+		    {
+		      size_t newsize
+			= strsize + (strsize > width ? width - 1 : strsize);
+		      /* Enlarge the buffer.  */
+		      wstr = (wchar_t *) realloc (*strptr,
+						  newsize * sizeof (wchar_t));
+		      if (wstr == NULL)
+			{
+			  /* Can't allocate that much.  Last-ditch effort.  */
+			  wstr = (wchar_t *) realloc (*strptr,
+						      (strsize + 1)
+						      * sizeof (wchar_t));
+			  if (wstr == NULL)
+			    {
+			      /* C or lc can't have `a' flag, only `m'
+				 flag.  */
+			      done = EOF;
+			      goto errout;
+			    }
+			  else
+			    {
+			      *strptr = (char *) wstr;
+			      wstr += strsize;
+			      ++strsize;
+			    }
+			}
+		      else
+			{
+			  *strptr = (char *) wstr;
+			  wstr += strsize;
+			  strsize = newsize;
+			}
+		    }
+		  *wstr++ = c;
+		}
+	      while (--width > 0 && inchar () != EOF);
+	    }
+	  else
+	    while (--width > 0 && inchar () != EOF);
+#else
+	  {
+	    /* We have to convert the multibyte input sequence to wide
+	       characters.  */
+	    char buf[1];
+	    mbstate_t cstate;
+
+	    memset (&cstate, '\0', sizeof (cstate));
+
+	    do
+	      {
+		/* This is what we present the mbrtowc function first.  */
+		buf[0] = c;
+
+		if (!(flags & SUPPRESS) && (flags & MALLOC)
+		    && wstr == (wchar_t *) *strptr + strsize)
+		  {
+		    size_t newsize
+		      = strsize + (strsize > width ? width - 1 : strsize);
+		    /* Enlarge the buffer.  */
+		    wstr = (wchar_t *) realloc (*strptr,
+						newsize * sizeof (wchar_t));
+		    if (wstr == NULL)
+		      {
+			/* Can't allocate that much.  Last-ditch effort.  */
+			wstr = (wchar_t *) realloc (*strptr,
+						    ((strsize + 1)
+						     * sizeof (wchar_t)));
+			if (wstr == NULL)
+			  {
+			    /* C or lc can't have `a' flag, only `m' flag.  */
+			    done = EOF;
+			    goto errout;
+			  }
+			else
+			  {
+			    *strptr = (char *) wstr;
+			    wstr += strsize;
+			    ++strsize;
+			  }
+		      }
+		    else
+		      {
+			*strptr = (char *) wstr;
+			wstr += strsize;
+			strsize = newsize;
+		      }
+		  }
+
+		while (1)
+		  {
+		    size_t n;
+
+		    n = __mbrtowc (!(flags & SUPPRESS) ? wstr : NULL,
+				   buf, 1, &cstate);
+
+		    if (n == (size_t) -2)
+		      {
+			/* Possibly correct character, just not enough
+			   input.  */
+			if (__glibc_unlikely (inchar () == EOF))
+			  encode_error ();
+
+			buf[0] = c;
+			continue;
+		      }
+
+		    if (__glibc_unlikely (n != 1))
+		      encode_error ();
+
+		    /* We have a match.  */
+		    break;
+		  }
+
+		/* Advance the result pointer.  */
+		++wstr;
+	      }
+	    while (--width > 0 && inchar () != EOF);
+	  }
+#endif
+
+	  if (!(flags & SUPPRESS))
+	    {
+	      if ((flags & MALLOC) && wstr - (wchar_t *) *strptr != strsize)
+		{
+		  wchar_t *cp = (wchar_t *) realloc (*strptr,
+						     ((wstr
+						       - (wchar_t *) *strptr)
+						      * sizeof (wchar_t)));
+		  if (cp != NULL)
+		    *strptr = (char *) cp;
+		}
+	      strptr = NULL;
+
+	      ++done;
+	    }
+
+	  break;
+
+	case L_('s'):		/* Read a string.  */
+	  if (!(flags & LONG))
+	    {
+	      STRING_ARG (str, char, 100);
+
+	      c = inchar ();
+	      if (__glibc_unlikely (c == EOF))
+		input_error ();
+
+#ifdef COMPILE_WSCANF
+	      memset (&state, '\0', sizeof (state));
+#endif
+
+	      do
+		{
+		  if (ISSPACE (c))
+		    {
+		      ungetc_not_eof (c, s);
+		      break;
+		    }
+
+#ifdef COMPILE_WSCANF
+		  /* This is quite complicated.  We have to convert the
+		     wide characters into multibyte characters and then
+		     store them.  */
+		  {
+		    size_t n;
+
+		    if (!(flags & SUPPRESS) && (flags & MALLOC)
+			&& *strptr + strsize - str <= MB_LEN_MAX)
+		      {
+			/* We have to enlarge the buffer if the `a' or `m'
+			   flag was given.  */
+			size_t strleng = str - *strptr;
+			char *newstr;
+
+			newstr = (char *) realloc (*strptr, strsize * 2);
+			if (newstr == NULL)
+			  {
+			    /* Can't allocate that much.  Last-ditch
+			       effort.  */
+			    newstr = (char *) realloc (*strptr,
+						       strleng + MB_LEN_MAX);
+			    if (newstr == NULL)
+			      {
+				if (flags & POSIX_MALLOC)
+				  {
+				    done = EOF;
+				    goto errout;
+				  }
+				/* We lose.  Oh well.  Terminate the
+				   string and stop converting,
+				   so at least we don't skip any input.  */
+				((char *) (*strptr))[strleng] = '\0';
+				strptr = NULL;
+				++done;
+				conv_error ();
+			      }
+			    else
+			      {
+				*strptr = newstr;
+				str = newstr + strleng;
+				strsize = strleng + MB_LEN_MAX;
+			      }
+			  }
+			else
+			  {
+			    *strptr = newstr;
+			    str = newstr + strleng;
+			    strsize *= 2;
+			  }
+		      }
+
+		    n = __wcrtomb (!(flags & SUPPRESS) ? str : NULL, c,
+				   &state);
+		    if (__glibc_unlikely (n == (size_t) -1))
+		      encode_error ();
+
+		    assert (n <= MB_LEN_MAX);
+		    str += n;
+		  }
+#else
+		  /* This is easy.  */
+		  if (!(flags & SUPPRESS))
+		    {
+		      *str++ = c;
+		      if ((flags & MALLOC)
+			  && (char *) str == *strptr + strsize)
+			{
+			  /* Enlarge the buffer.  */
+			  str = (char *) realloc (*strptr, 2 * strsize);
+			  if (str == NULL)
+			    {
+			      /* Can't allocate that much.  Last-ditch
+				 effort.  */
+			      str = (char *) realloc (*strptr, strsize + 1);
+			      if (str == NULL)
+				{
+				  if (flags & POSIX_MALLOC)
+				    {
+				      done = EOF;
+				      goto errout;
+				    }
+				  /* We lose.  Oh well.  Terminate the
+				     string and stop converting,
+				     so at least we don't skip any input.  */
+				  ((char *) (*strptr))[strsize - 1] = '\0';
+				  strptr = NULL;
+				  ++done;
+				  conv_error ();
+				}
+			      else
+				{
+				  *strptr = (char *) str;
+				  str += strsize;
+				  ++strsize;
+				}
+			    }
+			  else
+			    {
+			      *strptr = (char *) str;
+			      str += strsize;
+			      strsize *= 2;
+			    }
+			}
+		    }
+#endif
+		}
+	      while ((width <= 0 || --width > 0) && inchar () != EOF);
+
+	      if (!(flags & SUPPRESS))
+		{
+#ifdef COMPILE_WSCANF
+		  /* We have to emit the code to get into the initial
+		     state.  */
+		  char buf[MB_LEN_MAX];
+		  size_t n = __wcrtomb (buf, L'\0', &state);
+		  if (n > 0 && (flags & MALLOC)
+		      && str + n >= *strptr + strsize)
+		    {
+		      /* Enlarge the buffer.  */
+		      size_t strleng = str - *strptr;
+		      char *newstr;
+
+		      newstr = (char *) realloc (*strptr, strleng + n + 1);
+		      if (newstr == NULL)
+			{
+			  if (flags & POSIX_MALLOC)
+			    {
+			      done = EOF;
+			      goto errout;
+			    }
+			  /* We lose.  Oh well.  Terminate the string
+			     and stop converting, so at least we don't
+			     skip any input.  */
+			  ((char *) (*strptr))[strleng] = '\0';
+			  strptr = NULL;
+			  ++done;
+			  conv_error ();
+			}
+		      else
+			{
+			  *strptr = newstr;
+			  str = newstr + strleng;
+			  strsize = strleng + n + 1;
+			}
+		    }
+
+		  str = __mempcpy (str, buf, n);
+#endif
+		  *str++ = '\0';
+
+		  if ((flags & MALLOC) && str - *strptr != strsize)
+		    {
+		      char *cp = (char *) realloc (*strptr, str - *strptr);
+		      if (cp != NULL)
+			*strptr = cp;
+		    }
+		  strptr = NULL;
+
+		  ++done;
+		}
+	      break;
+	    }
+	  /* FALLTHROUGH */
+
+	case L_('S'):
+	  {
+#ifndef COMPILE_WSCANF
+	    mbstate_t cstate;
+#endif
+
+	    /* Wide character string.  */
+	    STRING_ARG (wstr, wchar_t, 100);
+
+	    c = inchar ();
+	    if (__builtin_expect (c == EOF,  0))
+	      input_error ();
+
+#ifndef COMPILE_WSCANF
+	    memset (&cstate, '\0', sizeof (cstate));
+#endif
+
+	    do
+	      {
+		if (ISSPACE (c))
+		  {
+		    ungetc_not_eof (c, s);
+		    break;
+		  }
+
+#ifdef COMPILE_WSCANF
+		/* This is easy.  */
+		if (!(flags & SUPPRESS))
+		  {
+		    *wstr++ = c;
+		    if ((flags & MALLOC)
+			&& wstr == (wchar_t *) *strptr + strsize)
+		      {
+			/* Enlarge the buffer.  */
+			wstr = (wchar_t *) realloc (*strptr,
+						    (2 * strsize)
+						    * sizeof (wchar_t));
+			if (wstr == NULL)
+			  {
+			    /* Can't allocate that much.  Last-ditch
+			       effort.  */
+			    wstr = (wchar_t *) realloc (*strptr,
+							(strsize + 1)
+							* sizeof (wchar_t));
+			    if (wstr == NULL)
+			      {
+				if (flags & POSIX_MALLOC)
+				  {
+				    done = EOF;
+				    goto errout;
+				  }
+				/* We lose.  Oh well.  Terminate the string
+				   and stop converting, so at least we don't
+				   skip any input.  */
+				((wchar_t *) (*strptr))[strsize - 1] = L'\0';
+				strptr = NULL;
+				++done;
+				conv_error ();
+			      }
+			    else
+			      {
+				*strptr = (char *) wstr;
+				wstr += strsize;
+				++strsize;
+			      }
+			  }
+			else
+			  {
+			    *strptr = (char *) wstr;
+			    wstr += strsize;
+			    strsize *= 2;
+			  }
+		      }
+		  }
+#else
+		{
+		  char buf[1];
+
+		  buf[0] = c;
+
+		  while (1)
+		    {
+		      size_t n;
+
+		      n = __mbrtowc (!(flags & SUPPRESS) ? wstr : NULL,
+				     buf, 1, &cstate);
+
+		      if (n == (size_t) -2)
+			{
+			  /* Possibly correct character, just not enough
+			     input.  */
+			  if (__glibc_unlikely (inchar () == EOF))
+			    encode_error ();
+
+			  buf[0] = c;
+			  continue;
+			}
+
+		      if (__glibc_unlikely (n != 1))
+			encode_error ();
+
+		      /* We have a match.  */
+		      ++wstr;
+		      break;
+		    }
+
+		  if (!(flags & SUPPRESS) && (flags & MALLOC)
+		      && wstr == (wchar_t *) *strptr + strsize)
+		    {
+		      /* Enlarge the buffer.  */
+		      wstr = (wchar_t *) realloc (*strptr,
+						  (2 * strsize
+						   * sizeof (wchar_t)));
+		      if (wstr == NULL)
+			{
+			  /* Can't allocate that much.  Last-ditch effort.  */
+			  wstr = (wchar_t *) realloc (*strptr,
+						      ((strsize + 1)
+						       * sizeof (wchar_t)));
+			  if (wstr == NULL)
+			    {
+			      if (flags & POSIX_MALLOC)
+				{
+				  done = EOF;
+				  goto errout;
+				}
+			      /* We lose.  Oh well.  Terminate the
+				 string and stop converting, so at
+				 least we don't skip any input.  */
+			      ((wchar_t *) (*strptr))[strsize - 1] = L'\0';
+			      strptr = NULL;
+			      ++done;
+			      conv_error ();
+			    }
+			  else
+			    {
+			      *strptr = (char *) wstr;
+			      wstr += strsize;
+			      ++strsize;
+			    }
+			}
+		      else
+			{
+			  *strptr = (char *) wstr;
+			  wstr += strsize;
+			  strsize *= 2;
+			}
+		    }
+		}
+#endif
+	      }
+	    while ((width <= 0 || --width > 0) && inchar () != EOF);
+
+	    if (!(flags & SUPPRESS))
+	      {
+		*wstr++ = L'\0';
+
+		if ((flags & MALLOC) && wstr - (wchar_t *) *strptr != strsize)
+		  {
+		    wchar_t *cp = (wchar_t *) realloc (*strptr,
+						       ((wstr
+							 - (wchar_t *) *strptr)
+							* sizeof(wchar_t)));
+		    if (cp != NULL)
+		      *strptr = (char *) cp;
+		  }
+		strptr = NULL;
+
+		++done;
+	      }
+	  }
+	  break;
+
+	case L_('x'):	/* Hexadecimal integer.  */
+	case L_('X'):	/* Ditto.  */
+	  base = 16;
+	  goto number;
+
+	case L_('o'):	/* Octal integer.  */
+	  base = 8;
+	  goto number;
+
+	case L_('u'):	/* Unsigned decimal integer.  */
+	  base = 10;
+	  goto number;
+
+	case L_('d'):	/* Signed decimal integer.  */
+	  base = 10;
+	  flags |= NUMBER_SIGNED;
+	  goto number;
+
+	case L_('i'):	/* Generic number.  */
+	  base = 0;
+	  flags |= NUMBER_SIGNED;
+
+	number:
+	  c = inchar ();
+	  if (__glibc_unlikely (c == EOF))
+	    input_error ();
+
+	  /* Check for a sign.  */
+	  if (c == L_('-') || c == L_('+'))
+	    {
+	      char_buffer_add (&charbuf, c);
+	      if (width > 0)
+		--width;
+	      c = inchar ();
+	    }
+
+	  /* Look for a leading indication of base.  */
+	  if (width != 0 && c == L_('0'))
+	    {
+	      if (width > 0)
+		--width;
+
+	      char_buffer_add (&charbuf, c);
+	      c = inchar ();
+
+	      if (width != 0 && TOLOWER (c) == L_('x'))
+		{
+		  if (base == 0)
+		    base = 16;
+		  if (base == 16)
+		    {
+		      if (width > 0)
+			--width;
+		      c = inchar ();
+		    }
+		}
+	      else if (base == 0)
+		base = 8;
+	    }
+
+	  if (base == 0)
+	    base = 10;
+
+	  if (base == 10 && __builtin_expect ((flags & I18N) != 0, 0))
+	    {
+	      int from_level;
+	      int to_level;
+	      int level;
+#ifdef COMPILE_WSCANF
+	      const wchar_t *wcdigits[10];
+	      const wchar_t *wcdigits_extended[10];
+#else
+	      const char *mbdigits[10];
+	      const char *mbdigits_extended[10];
+#endif
+	      /*  "to_inpunct" is a map from ASCII digits to their
+		  equivalent in locale. This is defined for locales
+		  which use an extra digits set.  */
+	      wctrans_t map = __wctrans ("to_inpunct");
+	      int n;
+
+	      from_level = 0;
+#ifdef COMPILE_WSCANF
+	      to_level = _NL_CURRENT_WORD (LC_CTYPE,
+					   _NL_CTYPE_INDIGITS_WC_LEN) - 1;
+#else
+	      to_level = (uint32_t) curctype->values[_NL_ITEM_INDEX (_NL_CTYPE_INDIGITS_MB_LEN)].word - 1;
+#endif
+
+	      /* Get the alternative digit forms if there are any.  */
+	      if (__glibc_unlikely (map != NULL))
+		{
+		  /*  Adding new level for extra digits set in locale file.  */
+		  ++to_level;
+
+		  for (n = 0; n < 10; ++n)
+		    {
+#ifdef COMPILE_WSCANF
+		      wcdigits[n] = (const wchar_t *)
+			_NL_CURRENT (LC_CTYPE, _NL_CTYPE_INDIGITS0_WC + n);
+
+		      wchar_t *wc_extended = (wchar_t *)
+			alloca ((to_level + 2) * sizeof (wchar_t));
+		      __wmemcpy (wc_extended, wcdigits[n], to_level);
+		      wc_extended[to_level] = __towctrans (L'0' + n, map);
+		      wc_extended[to_level + 1] = '\0';
+		      wcdigits_extended[n] = wc_extended;
+#else
+		      mbdigits[n]
+			= curctype->values[_NL_CTYPE_INDIGITS0_MB + n].string;
+
+		      /*  Get the equivalent wide char in map.  */
+		      wint_t extra_wcdigit = __towctrans (L'0' + n, map);
+
+		      /*  Convert it to multibyte representation.  */
+		      mbstate_t state;
+		      memset (&state, '\0', sizeof (state));
+
+		      char extra_mbdigit[MB_LEN_MAX];
+		      size_t mblen
+			= __wcrtomb (extra_mbdigit, extra_wcdigit, &state);
+
+		      if (mblen == (size_t) -1)
+			{
+			  /*  Ignore this new level.  */
+			  map = NULL;
+			  break;
+			}
+
+		      /*  Calculate the length of mbdigits[n].  */
+		      const char *last_char = mbdigits[n];
+		      for (level = 0; level < to_level; ++level)
+			last_char = strchr (last_char, '\0') + 1;
+
+		      size_t mbdigits_len = last_char - mbdigits[n];
+
+		      /*  Allocate memory for extended multibyte digit.  */
+		      char *mb_extended;
+		      mb_extended = (char *) alloca (mbdigits_len + mblen + 1);
+
+		      /*  And get the mbdigits + extra_digit string.  */
+		      *(char *) __mempcpy (__mempcpy (mb_extended, mbdigits[n],
+						      mbdigits_len),
+					   extra_mbdigit, mblen) = '\0';
+		      mbdigits_extended[n] = mb_extended;
+#endif
+		    }
+		}
+
+	      /* Read the number into workspace.  */
+	      while (c != EOF && width != 0)
+		{
+		  /* In this round we get the pointer to the digit strings
+		     and also perform the first round of comparisons.  */
+		  for (n = 0; n < 10; ++n)
+		    {
+		      /* Get the string for the digits with value N.  */
+#ifdef COMPILE_WSCANF
+
+		      /* wcdigits_extended[] is fully set in the loop
+			 above, but the test for "map != NULL" is done
+			 inside the loop here and outside the loop there.  */
+		      DIAG_PUSH_NEEDS_COMMENT;
+		      DIAG_IGNORE_NEEDS_COMMENT (4.7, "-Wmaybe-uninitialized");
+
+		      if (__glibc_unlikely (map != NULL))
+			wcdigits[n] = wcdigits_extended[n];
+		      else
+			wcdigits[n] = (const wchar_t *)
+			  _NL_CURRENT (LC_CTYPE, _NL_CTYPE_INDIGITS0_WC + n);
+		      wcdigits[n] += from_level;
+
+		      DIAG_POP_NEEDS_COMMENT;
+
+		      if (c == (wint_t) *wcdigits[n])
+			{
+			  to_level = from_level;
+			  break;
+			}
+
+		      /* Advance the pointer to the next string.  */
+		      ++wcdigits[n];
+#else
+		      const char *cmpp;
+		      int avail = width > 0 ? width : INT_MAX;
+
+		      if (__glibc_unlikely (map != NULL))
+			mbdigits[n] = mbdigits_extended[n];
+		      else
+			mbdigits[n]
+			  = curctype->values[_NL_CTYPE_INDIGITS0_MB + n].string;
+
+		      for (level = 0; level < from_level; level++)
+			mbdigits[n] = strchr (mbdigits[n], '\0') + 1;
+
+		      cmpp = mbdigits[n];
+		      while ((unsigned char) *cmpp == c && avail >= 0)
+			{
+			  if (*++cmpp == '\0')
+			    break;
+			  else
+			    {
+			      if (avail == 0 || inchar () == EOF)
+				break;
+			      --avail;
+			    }
+			}
+
+		      if (*cmpp == '\0')
+			{
+			  if (width > 0)
+			    width = avail;
+			  to_level = from_level;
+			  break;
+			}
+
+		      /* We are pushing all read characters back.  */
+		      if (cmpp > mbdigits[n])
+			{
+			  ungetc (c, s);
+			  while (--cmpp > mbdigits[n])
+			    ungetc_not_eof ((unsigned char) *cmpp, s);
+			  c = (unsigned char) *cmpp;
+			}
+
+		      /* Advance the pointer to the next string.  */
+		      mbdigits[n] = strchr (mbdigits[n], '\0') + 1;
+#endif
+		    }
+
+		  if (n == 10)
+		    {
+		      /* Have not yet found the digit.  */
+		      for (level = from_level + 1; level <= to_level; ++level)
+			{
+			  /* Search all ten digits of this level.  */
+			  for (n = 0; n < 10; ++n)
+			    {
+#ifdef COMPILE_WSCANF
+			      if (c == (wint_t) *wcdigits[n])
+				break;
+
+			      /* Advance the pointer to the next string.  */
+			      ++wcdigits[n];
+#else
+			      const char *cmpp;
+			      int avail = width > 0 ? width : INT_MAX;
+
+			      cmpp = mbdigits[n];
+			      while ((unsigned char) *cmpp == c && avail >= 0)
+				{
+				  if (*++cmpp == '\0')
+				    break;
+				  else
+				    {
+				      if (avail == 0 || inchar () == EOF)
+					break;
+				      --avail;
+				    }
+				}
+
+			      if (*cmpp == '\0')
+				{
+				  if (width > 0)
+				    width = avail;
+				  break;
+				}
+
+			      /* We are pushing all read characters back.  */
+			      if (cmpp > mbdigits[n])
+				{
+				  ungetc (c, s);
+				  while (--cmpp > mbdigits[n])
+				    ungetc_not_eof ((unsigned char) *cmpp, s);
+				  c = (unsigned char) *cmpp;
+				}
+
+			      /* Advance the pointer to the next string.  */
+			      mbdigits[n] = strchr (mbdigits[n], '\0') + 1;
+#endif
+			    }
+
+			  if (n < 10)
+			    {
+			      /* Found it.  */
+			      from_level = level;
+			      to_level = level;
+			      break;
+			    }
+			}
+		    }
+
+		  if (n < 10)
+		    c = L_('0') + n;
+		  else if (flags & GROUP)
+		    {
+		      /* Try matching against the thousands separator.  */
+#ifdef COMPILE_WSCANF
+		      if (c != thousands)
+			  break;
+#else
+		      const char *cmpp = thousands;
+		      int avail = width > 0 ? width : INT_MAX;
+
+		      while ((unsigned char) *cmpp == c && avail >= 0)
+			{
+			  char_buffer_add (&charbuf, c);
+			  if (*++cmpp == '\0')
+			    break;
+			  else
+			    {
+			      if (avail == 0 || inchar () == EOF)
+				break;
+			      --avail;
+			    }
+			}
+
+		      if (char_buffer_error (&charbuf))
+			{
+			  __set_errno (ENOMEM);
+			  done = EOF;
+			  goto errout;
+			}
+
+		      if (*cmpp != '\0')
+			{
+			  /* We are pushing all read characters back.  */
+			  if (cmpp > thousands)
+			    {
+			      charbuf.current -= cmpp - thousands;
+			      ungetc (c, s);
+			      while (--cmpp > thousands)
+				ungetc_not_eof ((unsigned char) *cmpp, s);
+			      c = (unsigned char) *cmpp;
+			    }
+			  break;
+			}
+
+		      if (width > 0)
+			width = avail;
+
+		      /* The last thousands character will be added back by
+			 the char_buffer_add below.  */
+		      --charbuf.current;
+#endif
+		    }
+		  else
+		    break;
+
+		  char_buffer_add (&charbuf, c);
+		  if (width > 0)
+		    --width;
+
+		  c = inchar ();
+		}
+	    }
+	  else
+	    /* Read the number into workspace.  */
+	    while (c != EOF && width != 0)
+	      {
+		if (base == 16)
+		  {
+		    if (!ISXDIGIT (c))
+		      break;
+		  }
+		else if (!ISDIGIT (c) || (int) (c - L_('0')) >= base)
+		  {
+		    if (base == 10 && (flags & GROUP))
+		      {
+			/* Try matching against the thousands separator.  */
+#ifdef COMPILE_WSCANF
+			if (c != thousands)
+			  break;
+#else
+			const char *cmpp = thousands;
+			int avail = width > 0 ? width : INT_MAX;
+
+			while ((unsigned char) *cmpp == c && avail >= 0)
+			  {
+			    char_buffer_add (&charbuf, c);
+			    if (*++cmpp == '\0')
+			      break;
+			    else
+			      {
+				if (avail == 0 || inchar () == EOF)
+				  break;
+				--avail;
+			      }
+			  }
+
+			if (char_buffer_error (&charbuf))
+			  {
+			    __set_errno (ENOMEM);
+			    done = EOF;
+			    goto errout;
+			  }
+
+			if (*cmpp != '\0')
+			  {
+			    /* We are pushing all read characters back.  */
+			    if (cmpp > thousands)
+			      {
+				charbuf.current -= cmpp - thousands;
+				ungetc (c, s);
+				while (--cmpp > thousands)
+				  ungetc_not_eof ((unsigned char) *cmpp, s);
+				c = (unsigned char) *cmpp;
+			      }
+			    break;
+			  }
+
+			if (width > 0)
+			  width = avail;
+
+			/* The last thousands character will be added back by
+			   the char_buffer_add below.  */
+			--charbuf.current;
+#endif
+		      }
+		    else
+		      break;
+		  }
+		char_buffer_add (&charbuf, c);
+		if (width > 0)
+		  --width;
+
+		c = inchar ();
+	      }
+
+	  if (char_buffer_error (&charbuf))
+	    {
+	      __set_errno (ENOMEM);
+	      done = EOF;
+	      goto errout;
+	    }
+
+	  if (char_buffer_size (&charbuf) == 0
+	      || (char_buffer_size (&charbuf) == 1
+		  && (char_buffer_start (&charbuf)[0] == L_('+')
+		      || char_buffer_start (&charbuf)[0] == L_('-'))))
+	    {
+	      /* There was no number.  If we are supposed to read a pointer
+		 we must recognize "(nil)" as well.  */
+	      if (__builtin_expect (char_buffer_size (&charbuf) == 0
+				    && (flags & READ_POINTER)
+				    && (width < 0 || width >= 5)
+				    && c == '('
+				    && TOLOWER (inchar ()) == L_('n')
+				    && TOLOWER (inchar ()) == L_('i')
+				    && TOLOWER (inchar ()) == L_('l')
+				    && inchar () == L_(')'), 1))
+		/* We must produce the value of a NULL pointer.  A single
+		   '0' digit is enough.  */
+		  char_buffer_add (&charbuf, L_('0'));
+	      else
+		{
+		  /* The last read character is not part of the number
+		     anymore.  */
+		  ungetc (c, s);
+
+		  conv_error ();
+		}
+	    }
+	  else
+	    /* The just read character is not part of the number anymore.  */
+	    ungetc (c, s);
+
+	  /* Convert the number.  */
+	  char_buffer_add (&charbuf, L_('\0'));
+	  if (char_buffer_error (&charbuf))
+	    {
+	      __set_errno (ENOMEM);
+	      done = EOF;
+	      goto errout;
+	    }
+	  if (need_longlong && (flags & LONGDBL))
+	    {
+	      if (flags & NUMBER_SIGNED)
+		num.q = __strtoll_internal
+		  (char_buffer_start (&charbuf), &tw, base, flags & GROUP);
+	      else
+		num.uq = __strtoull_internal
+		  (char_buffer_start (&charbuf), &tw, base, flags & GROUP);
+	    }
+	  else
+	    {
+	      if (flags & NUMBER_SIGNED)
+		num.l = __strtol_internal
+		  (char_buffer_start (&charbuf), &tw, base, flags & GROUP);
+	      else
+		num.ul = __strtoul_internal
+		  (char_buffer_start (&charbuf), &tw, base, flags & GROUP);
+	    }
+	  if (__glibc_unlikely (char_buffer_start (&charbuf) == tw))
+	    conv_error ();
+
+	  if (!(flags & SUPPRESS))
+	    {
+	      if (flags & NUMBER_SIGNED)
+		{
+		  if (need_longlong && (flags & LONGDBL))
+		    *ARG (LONGLONG int *) = num.q;
+		  else if (need_long && (flags & LONG))
+		    *ARG (long int *) = num.l;
+		  else if (flags & SHORT)
+		    *ARG (short int *) = (short int) num.l;
+		  else if (!(flags & CHAR))
+		    *ARG (int *) = (int) num.l;
+		  else
+		    *ARG (signed char *) = (signed char) num.ul;
+		}
+	      else
+		{
+		  if (need_longlong && (flags & LONGDBL))
+		    *ARG (unsigned LONGLONG int *) = num.uq;
+		  else if (need_long && (flags & LONG))
+		    *ARG (unsigned long int *) = num.ul;
+		  else if (flags & SHORT)
+		    *ARG (unsigned short int *)
+		      = (unsigned short int) num.ul;
+		  else if (!(flags & CHAR))
+		    *ARG (unsigned int *) = (unsigned int) num.ul;
+		  else
+		    *ARG (unsigned char *) = (unsigned char) num.ul;
+		}
+	      ++done;
+	    }
+	  break;
+
+	case L_('e'):	/* Floating-point numbers.  */
+	case L_('E'):
+	case L_('f'):
+	case L_('F'):
+	case L_('g'):
+	case L_('G'):
+	case L_('a'):
+	case L_('A'):
+	  c = inchar ();
+	  if (width > 0)
+	    --width;
+	  if (__glibc_unlikely (c == EOF))
+	    input_error ();
+
+	  got_digit = got_dot = got_e = 0;
+
+	  /* Check for a sign.  */
+	  if (c == L_('-') || c == L_('+'))
+	    {
+	      negative = c == L_('-');
+	      if (__glibc_unlikely (width == 0 || inchar () == EOF))
+		/* EOF is only an input error before we read any chars.  */
+		conv_error ();
+	      if (width > 0)
+		--width;
+	    }
+	  else
+	    negative = 0;
+
+	  /* Take care for the special arguments "nan" and "inf".  */
+	  if (TOLOWER (c) == L_('n'))
+	    {
+	      /* Maybe "nan".  */
+	      char_buffer_add (&charbuf, c);
+	      if (__builtin_expect (width == 0
+				    || inchar () == EOF
+				    || TOLOWER (c) != L_('a'), 0))
+		conv_error ();
+	      if (width > 0)
+		--width;
+	      char_buffer_add (&charbuf, c);
+	      if (__builtin_expect (width == 0
+				    || inchar () == EOF
+				    || TOLOWER (c) != L_('n'), 0))
+		conv_error ();
+	      if (width > 0)
+		--width;
+	      char_buffer_add (&charbuf, c);
+	      /* It is "nan".  */
+	      goto scan_float;
+	    }
+	  else if (TOLOWER (c) == L_('i'))
+	    {
+	      /* Maybe "inf" or "infinity".  */
+	      char_buffer_add (&charbuf, c);
+	      if (__builtin_expect (width == 0
+				    || inchar () == EOF
+				    || TOLOWER (c) != L_('n'), 0))
+		conv_error ();
+	      if (width > 0)
+		--width;
+	      char_buffer_add (&charbuf, c);
+	      if (__builtin_expect (width == 0
+				    || inchar () == EOF
+				    || TOLOWER (c) != L_('f'), 0))
+		conv_error ();
+	      if (width > 0)
+		--width;
+	      char_buffer_add (&charbuf, c);
+	      /* It is as least "inf".  */
+	      if (width != 0 && inchar () != EOF)
+		{
+		  if (TOLOWER (c) == L_('i'))
+		    {
+		      if (width > 0)
+			--width;
+		      /* Now we have to read the rest as well.  */
+		      char_buffer_add (&charbuf, c);
+		      if (__builtin_expect (width == 0
+					    || inchar () == EOF
+					    || TOLOWER (c) != L_('n'), 0))
+			conv_error ();
+		      if (width > 0)
+			--width;
+		      char_buffer_add (&charbuf, c);
+		      if (__builtin_expect (width == 0
+					    || inchar () == EOF
+					    || TOLOWER (c) != L_('i'), 0))
+			conv_error ();
+		      if (width > 0)
+			--width;
+		      char_buffer_add (&charbuf, c);
+		      if (__builtin_expect (width == 0
+					    || inchar () == EOF
+					    || TOLOWER (c) != L_('t'), 0))
+			conv_error ();
+		      if (width > 0)
+			--width;
+		      char_buffer_add (&charbuf, c);
+		      if (__builtin_expect (width == 0
+					    || inchar () == EOF
+					    || TOLOWER (c) != L_('y'), 0))
+			conv_error ();
+		      if (width > 0)
+			--width;
+		      char_buffer_add (&charbuf, c);
+		    }
+		  else
+		    /* Never mind.  */
+		    ungetc (c, s);
+		}
+	      goto scan_float;
+	    }
+
+	  exp_char = L_('e');
+	  if (width != 0 && c == L_('0'))
+	    {
+	      char_buffer_add (&charbuf, c);
+	      c = inchar ();
+	      if (width > 0)
+		--width;
+	      if (width != 0 && TOLOWER (c) == L_('x'))
+		{
+		  /* It is a number in hexadecimal format.  */
+		  char_buffer_add (&charbuf, c);
+
+		  flags |= HEXA_FLOAT;
+		  exp_char = L_('p');
+
+		  /* Grouping is not allowed.  */
+		  flags &= ~GROUP;
+		  c = inchar ();
+		  if (width > 0)
+		    --width;
+		}
+	      else
+		got_digit = 1;
+	    }
+
+	  while (1)
+	    {
+	      if (char_buffer_error (&charbuf))
+		{
+		  __set_errno (ENOMEM);
+		  done = EOF;
+		  goto errout;
+		}
+	      if (ISDIGIT (c))
+		{
+		  char_buffer_add (&charbuf, c);
+		  got_digit = 1;
+		}
+	      else if (!got_e && (flags & HEXA_FLOAT) && ISXDIGIT (c))
+		{
+		  char_buffer_add (&charbuf, c);
+		  got_digit = 1;
+		}
+	      else if (got_e && charbuf.current[-1] == exp_char
+		       && (c == L_('-') || c == L_('+')))
+		char_buffer_add (&charbuf, c);
+	      else if (got_digit && !got_e
+		       && (CHAR_T) TOLOWER (c) == exp_char)
+		{
+		  char_buffer_add (&charbuf, exp_char);
+		  got_e = got_dot = 1;
+		}
+	      else
+		{
+#ifdef COMPILE_WSCANF
+		  if (! got_dot && c == decimal)
+		    {
+		      char_buffer_add (&charbuf, c);
+		      got_dot = 1;
+		    }
+		  else if ((flags & GROUP) != 0 && ! got_dot && c == thousands)
+		    char_buffer_add (&charbuf, c);
+		  else
+		    {
+		      /* The last read character is not part of the number
+			 anymore.  */
+		      ungetc (c, s);
+		      break;
+		    }
+#else
+		  const char *cmpp = decimal;
+		  int avail = width > 0 ? width : INT_MAX;
+
+		  if (! got_dot)
+		    {
+		      while ((unsigned char) *cmpp == c && avail >= 0)
+			if (*++cmpp == '\0')
+			  break;
+			else
+			  {
+			    if (avail == 0 || inchar () == EOF)
+			      break;
+			    --avail;
+			  }
+		    }
+
+		  if (*cmpp == '\0')
+		    {
+		      /* Add all the characters.  */
+		      for (cmpp = decimal; *cmpp != '\0'; ++cmpp)
+			char_buffer_add (&charbuf, (unsigned char) *cmpp);
+		      if (width > 0)
+			width = avail;
+		      got_dot = 1;
+		    }
+		  else
+		    {
+		      /* Figure out whether it is a thousands separator.
+			 There is one problem: we possibly read more than
+			 one character.  We cannot push them back but since
+			 we know that parts of the `decimal' string matched,
+			 we can compare against it.  */
+		      const char *cmp2p = thousands;
+
+		      if ((flags & GROUP) != 0 && ! got_dot)
+			{
+			  while (cmp2p - thousands < cmpp - decimal
+				 && *cmp2p == decimal[cmp2p - thousands])
+			    ++cmp2p;
+			  if (cmp2p - thousands == cmpp - decimal)
+			    {
+			      while ((unsigned char) *cmp2p == c && avail >= 0)
+				if (*++cmp2p == '\0')
+				  break;
+				else
+				  {
+				    if (avail == 0 || inchar () == EOF)
+				      break;
+				    --avail;
+				  }
+			    }
+			}
+
+		      if (cmp2p != NULL && *cmp2p == '\0')
+			{
+			  /* Add all the characters.  */
+			  for (cmpp = thousands; *cmpp != '\0'; ++cmpp)
+			    char_buffer_add (&charbuf, (unsigned char) *cmpp);
+			  if (width > 0)
+			    width = avail;
+			}
+		      else
+			{
+			  /* The last read character is not part of the number
+			     anymore.  */
+			  ungetc (c, s);
+			  break;
+			}
+		    }
+#endif
+		}
+
+	      if (width == 0 || inchar () == EOF)
+		break;
+
+	      if (width > 0)
+		--width;
+	    }
+
+	  if (char_buffer_error (&charbuf))
+	    {
+	      __set_errno (ENOMEM);
+	      done = EOF;
+	      goto errout;
+	    }
+
+	  wctrans_t map;
+	  if (__builtin_expect ((flags & I18N) != 0, 0)
+	      /* Hexadecimal floats make no sense, fixing localized
+		 digits with ASCII letters.  */
+	      && !(flags & HEXA_FLOAT)
+	      /* Minimum requirement.  */
+	      && (char_buffer_size (&charbuf) == 0 || got_dot)
+	      && (map = __wctrans ("to_inpunct")) != NULL)
+	    {
+	      /* Reget the first character.  */
+	      inchar ();
+
+	      /* Localized digits, decimal points, and thousands
+		 separator.  */
+	      wint_t wcdigits[12];
+
+	      /* First get decimal equivalent to check if we read it
+		 or not.  */
+	      wcdigits[11] = __towctrans (L'.', map);
+
+	      /* If we have not read any character or have just read
+		 locale decimal point which matches the decimal point
+		 for localized FP numbers, then we may have localized
+		 digits.  Note, we test GOT_DOT above.  */
+#ifdef COMPILE_WSCANF
+	      if (char_buffer_size (&charbuf) == 0
+		  || (char_buffer_size (&charbuf) == 1
+		      && wcdigits[11] == decimal))
+#else
+	      char mbdigits[12][MB_LEN_MAX + 1];
+
+	      mbstate_t state;
+	      memset (&state, '\0', sizeof (state));
+
+	      bool match_so_far = char_buffer_size (&charbuf) == 0;
+	      size_t mblen = __wcrtomb (mbdigits[11], wcdigits[11], &state);
+	      if (mblen != (size_t) -1)
+		{
+		  mbdigits[11][mblen] = '\0';
+		  match_so_far |=
+		    (char_buffer_size (&charbuf) == strlen (decimal)
+		     && strcmp (decimal, mbdigits[11]) == 0);
+		}
+	      else
+		{
+		  size_t decimal_len = strlen (decimal);
+		  /* This should always be the case but the data comes
+		     from a file.  */
+		  if (decimal_len <= MB_LEN_MAX)
+		    {
+		      match_so_far |= char_buffer_size (&charbuf) == decimal_len;
+		      memcpy (mbdigits[11], decimal, decimal_len + 1);
+		    }
+		  else
+		    match_so_far = false;
+		}
+
+	      if (match_so_far)
+#endif
+		{
+		  bool have_locthousands = (flags & GROUP) != 0;
+
+		  /* Now get the digits and the thousands-sep equivalents.  */
+		  for (int n = 0; n < 11; ++n)
+		    {
+		      if (n < 10)
+			wcdigits[n] = __towctrans (L'0' + n, map);
+		      else if (n == 10)
+			{
+			  wcdigits[10] = __towctrans (L',', map);
+			  have_locthousands &= wcdigits[10] != L'\0';
+			}
+
+#ifndef COMPILE_WSCANF
+		      memset (&state, '\0', sizeof (state));
+
+		      size_t mblen = __wcrtomb (mbdigits[n], wcdigits[n],
+						&state);
+		      if (mblen == (size_t) -1)
+			{
+			  if (n == 10)
+			    {
+			      if (have_locthousands)
+				{
+				  size_t thousands_len = strlen (thousands);
+				  if (thousands_len <= MB_LEN_MAX)
+				    memcpy (mbdigits[10], thousands,
+					    thousands_len + 1);
+				  else
+				    have_locthousands = false;
+				}
+			    }
+			  else
+			    /* Ignore checking against localized digits.  */
+			    goto no_i18nflt;
+			}
+		      else
+			mbdigits[n][mblen] = '\0';
+#endif
+		    }
+
+		  /* Start checking against localized digits, if
+		     conversion is done correctly. */
+		  while (1)
+		    {
+		      if (char_buffer_error (&charbuf))
+			{
+			  __set_errno (ENOMEM);
+			  done = EOF;
+			  goto errout;
+			}
+		      if (got_e && charbuf.current[-1] == exp_char
+			  && (c == L_('-') || c == L_('+')))
+			char_buffer_add (&charbuf, c);
+		      else if (char_buffer_size (&charbuf) > 0 && !got_e
+			       && (CHAR_T) TOLOWER (c) == exp_char)
+			{
+			  char_buffer_add (&charbuf, exp_char);
+			  got_e = got_dot = 1;
+			}
+		      else
+			{
+			  /* Check against localized digits, decimal point,
+			     and thousands separator.  */
+			  int n;
+			  for (n = 0; n < 12; ++n)
+			    {
+#ifdef COMPILE_WSCANF
+			      if (c == wcdigits[n])
+				{
+				  if (n < 10)
+				    char_buffer_add (&charbuf, L_('0') + n);
+				  else if (n == 11 && !got_dot)
+				    {
+				      char_buffer_add (&charbuf, decimal);
+				      got_dot = 1;
+				    }
+				  else if (n == 10 && have_locthousands
+					   && ! got_dot)
+				    char_buffer_add (&charbuf, thousands);
+				  else
+				    /* The last read character is not part
+				       of the number anymore.  */
+				    n = 12;
+
+				  break;
+				}
+#else
+			      const char *cmpp = mbdigits[n];
+			      int avail = width > 0 ? width : INT_MAX;
+
+			      while ((unsigned char) *cmpp == c && avail >= 0)
+				if (*++cmpp == '\0')
+				  break;
+				else
+				  {
+				    if (avail == 0 || inchar () == EOF)
+				      break;
+				    --avail;
+				  }
+			      if (*cmpp == '\0')
+				{
+				  if (width > 0)
+				    width = avail;
+
+				  if (n < 10)
+				    char_buffer_add (&charbuf, L_('0') + n);
+				  else if (n == 11 && !got_dot)
+				    {
+				      /* Add all the characters.  */
+				      for (cmpp = decimal; *cmpp != '\0';
+					   ++cmpp)
+					char_buffer_add (&charbuf,
+							 (unsigned char) *cmpp);
+
+				      got_dot = 1;
+				    }
+				  else if (n == 10 && (flags & GROUP) != 0
+					   && ! got_dot)
+				    {
+				      /* Add all the characters.  */
+				      for (cmpp = thousands; *cmpp != '\0';
+					   ++cmpp)
+					char_buffer_add (&charbuf,
+							 (unsigned char) *cmpp);
+				    }
+				  else
+				    /* The last read character is not part
+				       of the number anymore.  */
+				      n = 12;
+
+				  break;
+				}
+
+			      /* We are pushing all read characters back.  */
+			      if (cmpp > mbdigits[n])
+				{
+				  ungetc (c, s);
+				  while (--cmpp > mbdigits[n])
+				    ungetc_not_eof ((unsigned char) *cmpp, s);
+				  c = (unsigned char) *cmpp;
+				}
+#endif
+			    }
+
+			  if (n >= 12)
+			    {
+			      /* The last read character is not part
+				 of the number anymore.  */
+			      ungetc (c, s);
+			      break;
+			    }
+			}
+
+		      if (width == 0 || inchar () == EOF)
+			break;
+
+		      if (width > 0)
+			--width;
+		    }
+		}
+
+#ifndef COMPILE_WSCANF
+	    no_i18nflt:
+	      ;
+#endif
+	    }
+
+	  if (char_buffer_error (&charbuf))
+	    {
+	      __set_errno (ENOMEM);
+	      done = EOF;
+	      goto errout;
+	    }
+
+	  /* Have we read any character?  If we try to read a number
+	     in hexadecimal notation and we have read only the `0x'
+	     prefix this is an error.  */
+	  if (__glibc_unlikely (char_buffer_size (&charbuf) == 0
+				|| ((flags & HEXA_FLOAT)
+				    && char_buffer_size (&charbuf) == 2)))
+	    conv_error ();
+
+	scan_float:
+	  /* Convert the number.  */
+	  char_buffer_add (&charbuf, L_('\0'));
+	  if (char_buffer_error (&charbuf))
+	    {
+	      __set_errno (ENOMEM);
+	      done = EOF;
+	      goto errout;
+	    }
+	  if ((flags & LONGDBL) && !__ldbl_is_dbl)
+	    {
+	      long double d = __strtold_internal
+		(char_buffer_start (&charbuf), &tw, flags & GROUP);
+	      if (!(flags & SUPPRESS) && tw != char_buffer_start (&charbuf))
+		*ARG (long double *) = negative ? -d : d;
+	    }
+	  else if (flags & (LONG | LONGDBL))
+	    {
+	      double d = __strtod_internal
+		(char_buffer_start (&charbuf), &tw, flags & GROUP);
+	      if (!(flags & SUPPRESS) && tw != char_buffer_start (&charbuf))
+		*ARG (double *) = negative ? -d : d;
+	    }
+	  else
+	    {
+	      float d = __strtof_internal
+		(char_buffer_start (&charbuf), &tw, flags & GROUP);
+	      if (!(flags & SUPPRESS) && tw != char_buffer_start (&charbuf))
+		*ARG (float *) = negative ? -d : d;
+	    }
+
+	  if (__glibc_unlikely (tw == char_buffer_start (&charbuf)))
+	    conv_error ();
+
+	  if (!(flags & SUPPRESS))
+	    ++done;
+	  break;
+
+	case L_('['):	/* Character class.  */
+	  if (flags & LONG)
+	    STRING_ARG (wstr, wchar_t, 100);
+	  else
+	    STRING_ARG (str, char, 100);
+
+	  if (*f == L_('^'))
+	    {
+	      ++f;
+	      not_in = 1;
+	    }
+	  else
+	    not_in = 0;
+
+	  if (width < 0)
+	    /* There is no width given so there is also no limit on the
+	       number of characters we read.  Therefore we set width to
+	       a very high value to make the algorithm easier.  */
+	    width = INT_MAX;
+
+#ifdef COMPILE_WSCANF
+	  /* Find the beginning and the end of the scanlist.  We are not
+	     creating a lookup table since it would have to be too large.
+	     Instead we search each time through the string.  This is not
+	     a constant lookup time but who uses this feature deserves to
+	     be punished.  */
+	  tw = (wchar_t *) f;	/* Marks the beginning.  */
+
+	  if (*f == L']')
+	    ++f;
+
+	  while ((fc = *f++) != L'\0' && fc != L']');
+
+	  if (__glibc_unlikely (fc == L'\0'))
+	    conv_error ();
+	  wchar_t *twend = (wchar_t *) f - 1;
+#else
+	  /* Fill WP with byte flags indexed by character.
+	     We will use this flag map for matching input characters.  */
+	  if (!scratch_buffer_set_array_size
+	      (&charbuf.scratch, UCHAR_MAX + 1, 1))
+	    {
+	      done = EOF;
+	      goto errout;
+	    }
+	  memset (charbuf.scratch.data, '\0', UCHAR_MAX + 1);
+
+	  fc = *f;
+	  if (fc == ']' || fc == '-')
+	    {
+	      /* If ] or - appears before any char in the set, it is not
+		 the terminator or separator, but the first char in the
+		 set.  */
+	      ((char *)charbuf.scratch.data)[fc] = 1;
+	      ++f;
+	    }
+
+	  while ((fc = *f++) != '\0' && fc != ']')
+	    if (fc == '-' && *f != '\0' && *f != ']'
+		&& (unsigned char) f[-2] <= (unsigned char) *f)
+	      {
+		/* Add all characters from the one before the '-'
+		   up to (but not including) the next format char.  */
+		for (fc = (unsigned char) f[-2]; fc < (unsigned char) *f; ++fc)
+		  ((char *)charbuf.scratch.data)[fc] = 1;
+	      }
+	    else
+	      /* Add the character to the flag map.  */
+	      ((char *)charbuf.scratch.data)[fc] = 1;
+
+	  if (__glibc_unlikely (fc == '\0'))
+	    conv_error();
+#endif
+
+	  if (flags & LONG)
+	    {
+	      size_t now = read_in;
+#ifdef COMPILE_WSCANF
+	      if (__glibc_unlikely (inchar () == WEOF))
+		input_error ();
+
+	      do
+		{
+		  wchar_t *runp;
+
+		  /* Test whether it's in the scanlist.  */
+		  runp = tw;
+		  while (runp < twend)
+		    {
+		      if (runp[0] == L'-' && runp[1] != '\0'
+			  && runp + 1 != twend
+			  && runp != tw
+			  && (unsigned int) runp[-1] <= (unsigned int) runp[1])
+			{
+			  /* Match against all characters in between the
+			     first and last character of the sequence.  */
+			  wchar_t wc;
+
+			  for (wc = runp[-1] + 1; wc <= runp[1]; ++wc)
+			    if ((wint_t) wc == c)
+			      break;
+
+			  if (wc <= runp[1] && !not_in)
+			    break;
+			  if (wc <= runp[1] && not_in)
+			    {
+			      /* The current character is not in the
+				 scanset.  */
+			      ungetc (c, s);
+			      goto out;
+			    }
+
+			  runp += 2;
+			}
+		      else
+			{
+			  if ((wint_t) *runp == c && !not_in)
+			    break;
+			  if ((wint_t) *runp == c && not_in)
+			    {
+			      ungetc (c, s);
+			      goto out;
+			    }
+
+			  ++runp;
+			}
+		    }
+
+		  if (runp == twend && !not_in)
+		    {
+		      ungetc (c, s);
+		      goto out;
+		    }
+
+		  if (!(flags & SUPPRESS))
+		    {
+		      *wstr++ = c;
+
+		      if ((flags & MALLOC)
+			  && wstr == (wchar_t *) *strptr + strsize)
+			{
+			  /* Enlarge the buffer.  */
+			  wstr = (wchar_t *) realloc (*strptr,
+						      (2 * strsize)
+						      * sizeof (wchar_t));
+			  if (wstr == NULL)
+			    {
+			      /* Can't allocate that much.  Last-ditch
+				 effort.  */
+			      wstr = (wchar_t *)
+				realloc (*strptr, (strsize + 1)
+						  * sizeof (wchar_t));
+			      if (wstr == NULL)
+				{
+				  if (flags & POSIX_MALLOC)
+				    {
+				      done = EOF;
+				      goto errout;
+				    }
+				  /* We lose.  Oh well.  Terminate the string
+				     and stop converting, so at least we don't
+				     skip any input.  */
+				  ((wchar_t *) (*strptr))[strsize - 1] = L'\0';
+				  strptr = NULL;
+				  ++done;
+				  conv_error ();
+				}
+			      else
+				{
+				  *strptr = (char *) wstr;
+				  wstr += strsize;
+				  ++strsize;
+				}
+			    }
+			  else
+			    {
+			      *strptr = (char *) wstr;
+			      wstr += strsize;
+			      strsize *= 2;
+			    }
+			}
+		    }
+		}
+	      while (--width > 0 && inchar () != WEOF);
+	    out:
+#else
+	      char buf[MB_LEN_MAX];
+	      size_t cnt = 0;
+	      mbstate_t cstate;
+
+	      if (__glibc_unlikely (inchar () == EOF))
+		input_error ();
+
+	      memset (&cstate, '\0', sizeof (cstate));
+
+	      do
+		{
+		  if (((char *) charbuf.scratch.data)[c] == not_in)
+		    {
+		      ungetc_not_eof (c, s);
+		      break;
+		    }
+
+		  /* This is easy.  */
+		  if (!(flags & SUPPRESS))
+		    {
+		      size_t n;
+
+		      /* Convert it into a wide character.  */
+		      buf[0] = c;
+		      n = __mbrtowc (wstr, buf, 1, &cstate);
+
+		      if (n == (size_t) -2)
+			{
+			  /* Possibly correct character, just not enough
+			     input.  */
+			  ++cnt;
+			  assert (cnt < MB_LEN_MAX);
+			  continue;
+			}
+		      cnt = 0;
+
+		      ++wstr;
+		      if ((flags & MALLOC)
+			  && wstr == (wchar_t *) *strptr + strsize)
+			{
+			  /* Enlarge the buffer.  */
+			  wstr = (wchar_t *) realloc (*strptr,
+						      (2 * strsize
+						       * sizeof (wchar_t)));
+			  if (wstr == NULL)
+			    {
+			      /* Can't allocate that much.  Last-ditch
+				 effort.  */
+			      wstr = (wchar_t *)
+				realloc (*strptr, ((strsize + 1)
+						   * sizeof (wchar_t)));
+			      if (wstr == NULL)
+				{
+				  if (flags & POSIX_MALLOC)
+				    {
+				      done = EOF;
+				      goto errout;
+				    }
+				  /* We lose.  Oh well.  Terminate the
+				     string and stop converting,
+				     so at least we don't skip any input.  */
+				  ((wchar_t *) (*strptr))[strsize - 1] = L'\0';
+				  strptr = NULL;
+				  ++done;
+				  conv_error ();
+				}
+			      else
+				{
+				  *strptr = (char *) wstr;
+				  wstr += strsize;
+				  ++strsize;
+				}
+			    }
+			  else
+			    {
+			      *strptr = (char *) wstr;
+			      wstr += strsize;
+			      strsize *= 2;
+			    }
+			}
+		    }
+
+		  if (--width <= 0)
+		    break;
+		}
+	      while (inchar () != EOF);
+
+	      if (__glibc_unlikely (cnt != 0))
+		/* We stopped in the middle of recognizing another
+		   character.  That's a problem.  */
+		encode_error ();
+#endif
+
+	      if (__glibc_unlikely (now == read_in))
+		/* We haven't succesfully read any character.  */
+		conv_error ();
+
+	      if (!(flags & SUPPRESS))
+		{
+		  *wstr++ = L'\0';
+
+		  if ((flags & MALLOC)
+		      && wstr - (wchar_t *) *strptr != strsize)
+		    {
+		      wchar_t *cp = (wchar_t *)
+			realloc (*strptr, ((wstr - (wchar_t *) *strptr)
+					   * sizeof(wchar_t)));
+		      if (cp != NULL)
+			*strptr = (char *) cp;
+		    }
+		  strptr = NULL;
+
+		  ++done;
+		}
+	    }
+	  else
+	    {
+	      size_t now = read_in;
+
+	      if (__glibc_unlikely (inchar () == EOF))
+		input_error ();
+
+#ifdef COMPILE_WSCANF
+
+	      memset (&state, '\0', sizeof (state));
+
+	      do
+		{
+		  wchar_t *runp;
+		  size_t n;
+
+		  /* Test whether it's in the scanlist.  */
+		  runp = tw;
+		  while (runp < twend)
+		    {
+		      if (runp[0] == L'-' && runp[1] != '\0'
+			  && runp + 1 != twend
+			  && runp != tw
+			  && (unsigned int) runp[-1] <= (unsigned int) runp[1])
+			{
+			  /* Match against all characters in between the
+			     first and last character of the sequence.  */
+			  wchar_t wc;
+
+			  for (wc = runp[-1] + 1; wc <= runp[1]; ++wc)
+			    if ((wint_t) wc == c)
+			      break;
+
+			  if (wc <= runp[1] && !not_in)
+			    break;
+			  if (wc <= runp[1] && not_in)
+			    {
+			      /* The current character is not in the
+				 scanset.  */
+			      ungetc (c, s);
+			      goto out2;
+			    }
+
+			  runp += 2;
+			}
+		      else
+			{
+			  if ((wint_t) *runp == c && !not_in)
+			    break;
+			  if ((wint_t) *runp == c && not_in)
+			    {
+			      ungetc (c, s);
+			      goto out2;
+			    }
+
+			  ++runp;
+			}
+		    }
+
+		  if (runp == twend && !not_in)
+		    {
+		      ungetc (c, s);
+		      goto out2;
+		    }
+
+		  if (!(flags & SUPPRESS))
+		    {
+		      if ((flags & MALLOC)
+			  && *strptr + strsize - str <= MB_LEN_MAX)
+			{
+			  /* Enlarge the buffer.  */
+			  size_t strleng = str - *strptr;
+			  char *newstr;
+
+			  newstr = (char *) realloc (*strptr, 2 * strsize);
+			  if (newstr == NULL)
+			    {
+			      /* Can't allocate that much.  Last-ditch
+				 effort.  */
+			      newstr = (char *) realloc (*strptr,
+							 strleng + MB_LEN_MAX);
+			      if (newstr == NULL)
+				{
+				  if (flags & POSIX_MALLOC)
+				    {
+				      done = EOF;
+				      goto errout;
+				    }
+				  /* We lose.  Oh well.  Terminate the string
+				     and stop converting, so at least we don't
+				     skip any input.  */
+				  ((char *) (*strptr))[strleng] = '\0';
+				  strptr = NULL;
+				  ++done;
+				  conv_error ();
+				}
+			      else
+				{
+				  *strptr = newstr;
+				  str = newstr + strleng;
+				  strsize = strleng + MB_LEN_MAX;
+				}
+			    }
+			  else
+			    {
+			      *strptr = newstr;
+			      str = newstr + strleng;
+			      strsize *= 2;
+			    }
+			}
+		    }
+
+		  n = __wcrtomb (!(flags & SUPPRESS) ? str : NULL, c, &state);
+		  if (__glibc_unlikely (n == (size_t) -1))
+		    encode_error ();
+
+		  assert (n <= MB_LEN_MAX);
+		  str += n;
+		}
+	      while (--width > 0 && inchar () != WEOF);
+	    out2:
+#else
+	      do
+		{
+		  if (((char *) charbuf.scratch.data)[c] == not_in)
+		    {
+		      ungetc_not_eof (c, s);
+		      break;
+		    }
+
+		  /* This is easy.  */
+		  if (!(flags & SUPPRESS))
+		    {
+		      *str++ = c;
+		      if ((flags & MALLOC)
+			  && (char *) str == *strptr + strsize)
+			{
+			  /* Enlarge the buffer.  */
+			  size_t newsize = 2 * strsize;
+
+			allocagain:
+			  str = (char *) realloc (*strptr, newsize);
+			  if (str == NULL)
+			    {
+			      /* Can't allocate that much.  Last-ditch
+				 effort.  */
+			      if (newsize > strsize + 1)
+				{
+				  newsize = strsize + 1;
+				  goto allocagain;
+				}
+			      if (flags & POSIX_MALLOC)
+				{
+				  done = EOF;
+				  goto errout;
+				}
+			      /* We lose.  Oh well.  Terminate the
+				 string and stop converting,
+				 so at least we don't skip any input.  */
+			      ((char *) (*strptr))[strsize - 1] = '\0';
+			      strptr = NULL;
+			      ++done;
+			      conv_error ();
+			    }
+			  else
+			    {
+			      *strptr = (char *) str;
+			      str += strsize;
+			      strsize = newsize;
+			    }
+			}
+		    }
+		}
+	      while (--width > 0 && inchar () != EOF);
+#endif
+
+	      if (__glibc_unlikely (now == read_in))
+		/* We haven't succesfully read any character.  */
+		conv_error ();
+
+	      if (!(flags & SUPPRESS))
+		{
+#ifdef COMPILE_WSCANF
+		  /* We have to emit the code to get into the initial
+		     state.  */
+		  char buf[MB_LEN_MAX];
+		  size_t n = __wcrtomb (buf, L'\0', &state);
+		  if (n > 0 && (flags & MALLOC)
+		      && str + n >= *strptr + strsize)
+		    {
+		      /* Enlarge the buffer.  */
+		      size_t strleng = str - *strptr;
+		      char *newstr;
+
+		      newstr = (char *) realloc (*strptr, strleng + n + 1);
+		      if (newstr == NULL)
+			{
+			  if (flags & POSIX_MALLOC)
+			    {
+			      done = EOF;
+			      goto errout;
+			    }
+			  /* We lose.  Oh well.  Terminate the string
+			     and stop converting, so at least we don't
+			     skip any input.  */
+			  ((char *) (*strptr))[strleng] = '\0';
+			  strptr = NULL;
+			  ++done;
+			  conv_error ();
+			}
+		      else
+			{
+			  *strptr = newstr;
+			  str = newstr + strleng;
+			  strsize = strleng + n + 1;
+			}
+		    }
+
+		  str = __mempcpy (str, buf, n);
+#endif
+		  *str++ = '\0';
+
+		  if ((flags & MALLOC) && str - *strptr != strsize)
+		    {
+		      char *cp = (char *) realloc (*strptr, str - *strptr);
+		      if (cp != NULL)
+			*strptr = cp;
+		    }
+		  strptr = NULL;
+
+		  ++done;
+		}
+	    }
+	  break;
+
+	case L_('p'):	/* Generic pointer.  */
+	  base = 16;
+	  /* A PTR must be the same size as a `long int'.  */
+	  flags &= ~(SHORT|LONGDBL);
+	  if (need_long)
+	    flags |= LONG;
+	  flags |= READ_POINTER;
+	  goto number;
+
+	default:
+	  /* If this is an unknown format character punt.  */
+	  conv_error ();
+	}
+    }
+
+  /* The last thing we saw int the format string was a white space.
+     Consume the last white spaces.  */
+  if (skip_space)
+    {
+      do
+	c = inchar ();
+      while (ISSPACE (c));
+      ungetc (c, s);
+    }
+
+ errout:
+  /* Unlock stream.  */
+  UNLOCK_STREAM (s);
+
+  scratch_buffer_free (&charbuf.scratch);
+  if (errp != NULL)
+    *errp |= errval;
+
+  if (__glibc_unlikely (done == EOF))
+    {
+      if (__glibc_unlikely (ptrs_to_free != NULL))
+	{
+	  struct ptrs_to_free *p = ptrs_to_free;
+	  while (p != NULL)
+	    {
+	      for (size_t cnt = 0; cnt < p->count; ++cnt)
+		{
+		  free (*p->ptrs[cnt]);
+		  *p->ptrs[cnt] = NULL;
+		}
+	      p = p->next;
+	      ptrs_to_free = p;
+	    }
+	}
+    }
+  else if (__glibc_unlikely (strptr != NULL))
+    {
+      free (*strptr);
+      *strptr = NULL;
+    }
+  return done;
+}
+
+#ifdef COMPILE_WSCANF
+int
+__vfwscanf (FILE *s, const wchar_t *format, va_list argptr)
+{
+  return _IO_vfwscanf (s, format, argptr, NULL);
+}
+ldbl_weak_alias (__vfwscanf, vfwscanf)
+#else
+int
+___vfscanf (FILE *s, const char *format, va_list argptr)
+{
+  return _IO_vfscanf_internal (s, format, argptr, NULL);
+}
+ldbl_strong_alias (_IO_vfscanf_internal, _IO_vfscanf)
+ldbl_hidden_def (_IO_vfscanf_internal, _IO_vfscanf)
+ldbl_strong_alias (___vfscanf, __vfscanf)
+ldbl_hidden_def (___vfscanf, __vfscanf)
+ldbl_weak_alias (___vfscanf, vfscanf)
+#endif
diff --git a/REORG.TODO/stdio-common/vfwprintf.c b/REORG.TODO/stdio-common/vfwprintf.c
new file mode 100644
index 0000000000..2c3cd06fad
--- /dev/null
+++ b/REORG.TODO/stdio-common/vfwprintf.c
@@ -0,0 +1,3 @@
+#include <wctype.h>
+#define COMPILE_WPRINTF	1
+#include "vfprintf.c"
diff --git a/REORG.TODO/stdio-common/vfwscanf.c b/REORG.TODO/stdio-common/vfwscanf.c
new file mode 100644
index 0000000000..26b1a66608
--- /dev/null
+++ b/REORG.TODO/stdio-common/vfwscanf.c
@@ -0,0 +1,2 @@
+#define COMPILE_WSCANF	1
+#include "vfscanf.c"
diff --git a/REORG.TODO/stdio-common/vprintf.c b/REORG.TODO/stdio-common/vprintf.c
new file mode 100644
index 0000000000..c5d8b84ba7
--- /dev/null
+++ b/REORG.TODO/stdio-common/vprintf.c
@@ -0,0 +1,33 @@
+/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <stdarg.h>
+#undef	__OPTIMIZE__	/* Avoid inline `vprintf' function.  */
+#include <stdio.h>
+#include <libioP.h>
+
+#undef	vprintf
+
+/* Write formatted output to stdout according to the
+   format string FORMAT, using the argument list in ARG.  */
+int
+__vprintf (const char *format, __gnuc_va_list arg)
+{
+  return vfprintf (stdout, format, arg);
+}
+
+ldbl_strong_alias (__vprintf, vprintf)
diff --git a/REORG.TODO/stdio-common/xbug.c b/REORG.TODO/stdio-common/xbug.c
new file mode 100644
index 0000000000..06f74aff00
--- /dev/null
+++ b/REORG.TODO/stdio-common/xbug.c
@@ -0,0 +1,70 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+
+typedef struct _Buffer {
+  char *buff;
+  int  room, used;
+} Buffer;
+
+void InitBuffer (Buffer *b);
+void AppendToBuffer (Buffer *b, const char *str, int len);
+void ReadFile (Buffer *buffer, FILE *input);
+
+#define INIT_BUFFER_SIZE 10000
+
+void
+InitBuffer (Buffer *b)
+{
+  b->room = INIT_BUFFER_SIZE;
+  b->used = 0;
+  b->buff = (char *)malloc(INIT_BUFFER_SIZE*sizeof(char));
+}
+
+void
+AppendToBuffer (Buffer *b, const char *str, int len)
+{
+  while (b->used + len > b->room) {
+    b->buff = (char *)realloc(b->buff, 2*b->room*(sizeof(char)));
+    b->room *= 2;
+  }
+  strncpy(b->buff + b->used, str, len);
+  b->used += len;
+}
+
+void
+ReadFile (Buffer *buffer, FILE *input)
+{
+  char       buf[BUFSIZ + 1];
+  int        bytes;
+
+  buffer->used = 0;
+  while (!feof(input) && (bytes = fread(buf, 1, BUFSIZ, input)) > 0) {
+    AppendToBuffer(buffer, buf, bytes);
+  }
+  AppendToBuffer(buffer, "", 1);
+}
+
+int
+main(int argc, char *argv[])
+{
+  char filename[] = "xbug.c";
+  FILE *input;
+  Buffer buffer;
+
+  InitBuffer(&buffer);
+
+  if (!freopen (filename, "r", stdin))
+    fprintf(stderr, "cannot open file\n");
+
+  unsetenv ("LD_LIBRARY_PATH");
+
+  if (!(input = popen("/bin/cat", "r")))
+    fprintf(stderr, "cannot run \n");
+
+  ReadFile(&buffer, input);
+  pclose(input);
+
+  return 0;
+}