glibc/stdio-common
Gabriel F. T. Gomes 1626f499d1 Prepare vfprintf to use __printf_fp/__printf_fphex with float128 arg
On powerpc64le, long double can currently take two formats: the same as
double (-mlong-double-64) or IBM Extended Precision (default with
-mlong-double-128 or explicitly with -mabi=ibmlongdouble).  The internal
implementation of printf-like functions is aware of these possibilities
and properly parses floating-point values from the variable arguments,
before making calls to __printf_fp and __printf_fphex.  These functions
are also aware of the format possibilities and know how to convert both
formats to string.

When library support for TS 18661-3 was added to glibc, __printf_fp and
__printf_fphex were extended with support for an additional type
(__float128/_Float128) with a different format (binary128).  Now that
powerpc64le is getting support for its third long double format, and
taking into account that this format is the same as the format of
__float128/_Float128, this patch extends __vfprintf_internal to properly
call __printf_fp and __printf_fphex with this new format.

Tested for powerpc64le (with additional patches to actually enable the
use of these preparations) and for x86_64.

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2019-06-27 17:51:59 -03:00
..
bits Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
_i18n_number.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
_itoa.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
_itowa.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
_itowa.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
asprintf.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
bug1.c
bug1.input
bug2.c
bug3.c Fix hardcoded /tmp paths in testing (bug 13888). 2018-06-26 21:48:48 +00:00
bug4.c Fix hardcoded /tmp paths in testing (bug 13888). 2018-06-26 21:48:48 +00:00
bug5.c Fix hardcoded /tmp paths in testing (bug 13888). 2018-06-26 21:48:48 +00:00
bug6.c
bug6.input
bug7.c Avoid insecure usage of tmpnam in tests. 2018-07-18 21:04:12 +00:00
bug8.c
bug9.c
bug10.c
bug11.c
bug12.c
bug13.c
bug14.c
bug16.c stdio-common: Use array_length and array_end macros 2017-11-02 12:45:20 +01:00
bug17.c
bug18.c
bug18a.c
bug19.c
bug19a.c
bug20.c
bug21.c Use C99-compliant scanf under _GNU_SOURCE with modern compilers. 2019-01-03 11:12:39 -05:00
bug22.c Disable -Wformat-overflow= warnings for some printf tests. 2018-11-01 17:13:55 +00:00
bug23-2.c CVE-2012-3406: Stack overflow in vfprintf [BZ #16617] 2014-12-15 10:09:33 +01:00
bug23-3.c CVE-2012-3406: Stack overflow in vfprintf [BZ #16617] 2014-12-15 10:09:33 +01:00
bug23-4.c CVE-2012-3406: Stack overflow in vfprintf [BZ #16617] 2014-12-15 10:09:33 +01:00
bug23.c
bug24.c
bug25.c Another round of inclusion fixes for _ISOMAC testsuite. 2017-03-22 08:44:32 -04:00
bug26.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
bug-vfprintf-nargs.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
ctermid.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
cuserid.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
Depend
dprintf.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
errlist.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
errnobug.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
flockfile.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
fprintf.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
fscanf.c Use C99-compliant scanf under _GNU_SOURCE with modern compilers. 2019-01-03 11:12:39 -05:00
ftrylockfile.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
funlockfile.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
fxprintf.c Add internal implementations for argp.h, err.h, and error.h functions 2019-02-21 10:28:50 -03:00
gentempfd.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
getline.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
getw.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
iovfscanf.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
iovfwscanf.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
isoc99_fscanf.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
isoc99_scanf.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
isoc99_sscanf.c Use C99-compliant scanf under _GNU_SOURCE with modern compilers. 2019-01-03 11:12:39 -05:00
isoc99_vfscanf.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
isoc99_vscanf.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
isoc99_vsscanf.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
itoa-digits.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
itoa-udigits.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
itowa-digits.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
Makefile Use C99-compliant scanf under _GNU_SOURCE with modern compilers. 2019-01-03 11:12:39 -05:00
perror.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
printf_fp.c Break some lines before not after operators. 2019-02-22 01:32:36 +00:00
printf_fphex.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
printf_size.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
printf-parse.h Prepare vfprintf to use __printf_fp/__printf_fphex with float128 arg 2019-06-27 17:51:59 -03:00
printf-parsemb.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
printf-parsewc.c
printf-prs.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
printf.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
printf.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
psiginfo-data.h Fix typos. 2013-10-12 14:47:50 +02:00
psiginfo-define.h
psiginfo.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
psignal.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
putw.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
reg-modifier.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
reg-printf.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
reg-type.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
remove.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
rename.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
renameat2.c hurd: Add renameat2 support for RENAME_NOREPLACE 2019-02-27 09:42:44 -08:00
renameat.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
scanf1.c
scanf2.c
scanf3.c
scanf4.c Split DIAG_* macros to new header libc-diag.h. 2017-02-25 09:59:46 -05:00
scanf5.c
scanf7.c Split DIAG_* macros to new header libc-diag.h. 2017-02-25 09:59:46 -05:00
scanf8.c
scanf9.c
scanf10.c
scanf11.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
scanf12.c
scanf12.input
scanf13.c
scanf14.c Use C99-compliant scanf under _GNU_SOURCE with modern compilers. 2019-01-03 11:12:39 -05:00
scanf14a.c Use C99-compliant scanf under _GNU_SOURCE with modern compilers. 2019-01-03 11:12:39 -05:00
scanf15.c Use C99-compliant scanf under _GNU_SOURCE with modern compilers. 2019-01-03 11:12:39 -05:00
scanf16.c Use C99-compliant scanf under _GNU_SOURCE with modern compilers. 2019-01-03 11:12:39 -05:00
scanf16a.c Use C99-compliant scanf under _GNU_SOURCE with modern compilers. 2019-01-03 11:12:39 -05:00
scanf17.c Use C99-compliant scanf under _GNU_SOURCE with modern compilers. 2019-01-03 11:12:39 -05:00
scanf.c Use C99-compliant scanf under _GNU_SOURCE with modern compilers. 2019-01-03 11:12:39 -05:00
siglist.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
snprintf.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
sprintf.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
sscanf.c Use C99-compliant scanf under _GNU_SOURCE with modern compilers. 2019-01-03 11:12:39 -05:00
stdio_ext.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
stdio_lim.h.in Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tempnam.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tempname.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
temptest.c
test_rdwr.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
test-fseek.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
test-fwrite.c Modify several tests to use test-skeleton.c 2015-08-06 02:59:04 -04:00
test-popen.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
test-vfprintf.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tfformat.c Avoid use of "register" as optimization hint. 2013-06-07 22:24:35 +00:00
tiformat.c
tllformat.c
tmpfile64.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tmpfile.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tmpnam_r.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tmpnam.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-bz11319-fortify2.c Use PRINTF_FORTIFY instead of _IO_FLAGS2_FORTIFY (bug 11319) 2018-12-05 18:15:43 -02:00
tst-bz11319.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-cookie.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tst-fdopen.c Avoid insecure usage of tmpnam in tests. 2018-07-18 21:04:12 +00:00
tst-ferror.c Modify several tests to use test-skeleton.c 2015-08-06 02:59:04 -04:00
tst-ferror.input
tst-fgets.c Prefer https for Sourceware links 2017-11-16 11:49:26 +05:30
tst-fileno.c Break some lines before not after operators. 2019-02-22 01:32:36 +00:00
tst-fmemopen2.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-fmemopen3.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-fmemopen4.c Add some spaces before '('. 2019-02-27 13:55:45 +00:00
tst-fmemopen.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-fphex-wide.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-fphex.c stdio-common: Use array_length and array_end macros 2017-11-02 12:45:20 +01:00
tst-fseek.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-fwrite.c Prefer https for Sourceware links 2017-11-16 11:49:26 +05:30
tst-gets.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-gets.input
tst-grouping.c
tst-long-dbl-fphex.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-obprintf.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tst-perror.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tst-popen2.c
tst-popen.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-printf-bz18872.sh Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-printf-round.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-printf.c Add some spaces before '('. 2019-02-27 13:55:45 +00:00
tst-printf.sh Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-printfsz-islongdouble.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-printfsz-islongdouble.sh Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-printfsz.c Split DIAG_* macros to new header libc-diag.h. 2017-02-25 09:59:46 -05:00
tst-put-error.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-renameat2.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-rndseek.c Don't reduce test timeout to less than default 2018-10-17 09:34:13 +02:00
tst-scanf-round.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-setvbuf1.c
tst-setvbuf1.expect
tst-sprintf2.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tst-sprintf3.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-sprintf.c Split DIAG_* macros to new header libc-diag.h. 2017-02-25 09:59:46 -05:00
tst-sscanf.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-swprintf.c stdio-common: Use array_length and array_end macros 2017-11-02 12:45:20 +01:00
tst-swscanf.c
tst-tmpnam.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-unbputc.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tst-unbputc.sh Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-ungetc.c Avoid insecure usage of tmpnam in tests. 2018-07-18 21:04:12 +00:00
tst-unlockedio.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-vfprintf-mbs-prec.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-vfprintf-user-type.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-vfprintf-width-prec.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-wc-printf.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tstdiomisc.c stdio-common: Use array_length and array_end macros 2017-11-02 12:45:20 +01:00
tstgetln.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tstgetln.input
tstscanf.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tstscanf.input
Versions Add __vfscanf_internal and __vfwscanf_internal with flags arguments. 2018-12-05 18:15:42 -02:00
vfprintf-internal.c Prepare vfprintf to use __printf_fp/__printf_fphex with float128 arg 2019-06-27 17:51:59 -03:00
vfprintf.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
vfscanf-internal.c Break lines before not after operators, batch 4. 2019-03-07 20:20:25 +00:00
vfscanf.c Use C99-compliant scanf under _GNU_SOURCE with modern compilers. 2019-01-03 11:12:39 -05:00
vfwprintf-internal.c Add __v*printf_internal with flags arguments 2018-12-05 18:15:42 -02:00
vfwprintf.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
vfwscanf-internal.c Add __vfscanf_internal and __vfwscanf_internal with flags arguments. 2018-12-05 18:15:42 -02:00
vfwscanf.c Use C99-compliant scanf under _GNU_SOURCE with modern compilers. 2019-01-03 11:12:39 -05:00
vprintf.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
xbug.c Convert 703 function definitions to prototype style. 2015-10-16 20:21:49 +00:00