]> git.ipfire.org Git - thirdparty/gcc.git/commit
c++: Change mangling of Intel/Motorola extended long double literals
authorJakub Jelinek <jakub@redhat.com>
Wed, 10 Sep 2025 08:48:31 +0000 (10:48 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Wed, 10 Sep 2025 08:48:31 +0000 (10:48 +0200)
commit2dfff4ffe88c9ef4f7c7887c09e5cee171b1a17e
tree723538ab8c46bade7e84ce0e011801dab5f5bb0c
parent7a49952100f374f9073647a717a8b8a036c2084d
c++: Change mangling of Intel/Motorola extended long double literals

On Fri, Sep 05, 2025 at 09:57:06PM +0200, Matthias Kretz wrote:
> > Hmm, would this fail for x86 long double, which is 80 bits? OK, just
> > checked. It's mangled as 12/16 bytes on i686/x86_64.
>
> It seems that Clang and GCC disagree on mangling 80-Bit long double:
>
> I like Clang's interpretation of https://itanium-cxx-abi.github.io/cxx-abi/
> abi.html#mangle.float better.

This patch changes the mangling of 80-bit long double literals from
24 or 32 digits (on m68k with padding bits in the middle, on x86
at the start) to just 20 hex digits.

2025-09-10  Jakub Jelinek  <jakub@redhat.com>

* mangle.cc (write_real_cst): Mangle Intel/Motorola extended
80-bit formats using 20 hex digits instead of 24 or 32.

* g++.target/i386/mangle-ldbl-1.C: New test.
* g++.target/i386/mangle-ldbl-2.C: New test.
* g++.target/m68k/mangle-ldbl-1.C: New test.
* g++.target/m68k/mangle-ldbl-2.C: New test.
gcc/cp/mangle.cc
gcc/testsuite/g++.target/i386/mangle-ldbl-1.C [new file with mode: 0644]
gcc/testsuite/g++.target/i386/mangle-ldbl-2.C [new file with mode: 0644]
gcc/testsuite/g++.target/m68k/mangle-ldbl-1.C [new file with mode: 0644]
gcc/testsuite/g++.target/m68k/mangle-ldbl-2.C [new file with mode: 0644]