diff options
author | Jakub Jelinek <jakub@redhat.com> | 2022-02-04 18:30:59 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@redhat.com> | 2022-02-04 18:30:59 +0100 |
commit | 8d6fffc4bcd4afa0beb0efad4f3b95394aa15618 (patch) | |
tree | 2da01478bcc60232f7bc6e6cecce6d81f60673ff /gcc/go | |
parent | 1f722e35ab3805de6eeace770508a9085944e93e (diff) | |
download | gcc-8d6fffc4bcd4afa0beb0efad4f3b95394aa15618.zip gcc-8d6fffc4bcd4afa0beb0efad4f3b95394aa15618.tar.gz gcc-8d6fffc4bcd4afa0beb0efad4f3b95394aa15618.tar.bz2 |
rs6000: Fix up -D_FORTIFY_SOURCE* with -mabi=ieeelongdouble [PR104380]
The following testcase FAILs when configured with
--with-long-double-format=ieee . Only happens in the -std=c* modes, not the
GNU modes; while the glibc headers have __asm redirects of
vsnprintf and __vsnprinf_chk to __vsnprintfieee128 and
__vsnprintf_chkieee128, the vsnprintf fortification extern inline gnu_inline
always_inline wrapper calls __builtin_vsnprintf_chk and we actually emit
a call to __vsnprinf_chk (i.e. with IBM extended long double) instead of
__vsnprintf_chkieee128.
rs6000_mangle_decl_assembler_name already had cases for *printf and *scanf,
so this just adds another case for *printf_chk. *scanf_chk doesn't exist.
__ prefixing isn't done because *printf_chk already starts with __.
2022-02-04 Jakub Jelinek <jakub@redhat.com>
PR target/104380
* config/rs6000/rs6000.cc (rs6000_mangle_decl_assembler_name): Also
adjust mangling of __builtin*printf_chk.
* gcc.dg/pr104380.c: New test.
Diffstat (limited to 'gcc/go')
0 files changed, 0 insertions, 0 deletions