about summary refs log tree commit diff
path: root/REORG.TODO/stdio-common
diff options
context:
space:
mode:
authorZack Weinberg <zackw@panix.com>2017-06-08 15:39:03 -0400
committerZack Weinberg <zackw@panix.com>2017-06-08 15:39:03 -0400
commit5046dbb4a7eba5eccfd258f92f4735c9ffc8d069 (patch)
tree4470480d904b65cf14ca524f96f79eca818c3eaf /REORG.TODO/stdio-common
parent199fc19d3aaaf57944ef036e15904febe877fc93 (diff)
downloadglibc-5046dbb4a7eba5eccfd258f92f4735c9ffc8d069.tar.gz
glibc-5046dbb4a7eba5eccfd258f92f4735c9ffc8d069.tar.xz
glibc-5046dbb4a7eba5eccfd258f92f4735c9ffc8d069.zip
Prepare for radical source tree reorganization. zack/build-layout-experiment
All top-level files and directories are moved into a temporary storage
directory, REORG.TODO, except for files that will certainly still
exist in their current form at top level when we're done (COPYING,
COPYING.LIB, LICENSES, NEWS, README), all old ChangeLog files (which
are moved to the new directory OldChangeLogs, instead), and the
generated file INSTALL (which is just deleted; in the new order, there
will be no generated files checked into version control).
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;
+}