Tested x86_64-pc-linux-gnu, applying to trunk. -- 8< --
As with r14-6796-g2fa122cae50cd8, avoid mangling compatibility aliases in mangling tests, and test the new mangling. PR c++/112846 gcc/testsuite/ChangeLog: * g++.dg/abi/anon6.C: Specify ABI v18. * g++.dg/abi/anon6a.C: New test for ABI v19. --- gcc/testsuite/g++.dg/abi/anon6.C | 1 + gcc/testsuite/g++.dg/abi/anon6a.C | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 gcc/testsuite/g++.dg/abi/anon6a.C diff --git a/gcc/testsuite/g++.dg/abi/anon6.C b/gcc/testsuite/g++.dg/abi/anon6.C index 7be0b0bbdb7..fd766109629 100644 --- a/gcc/testsuite/g++.dg/abi/anon6.C +++ b/gcc/testsuite/g++.dg/abi/anon6.C @@ -1,5 +1,6 @@ // PR c++/108566 // { dg-do compile { target c++20 } } +// { dg-additional-options "-fabi-version=18 -fabi-compat-version=18" } template<typename T> struct wrapper1 { diff --git a/gcc/testsuite/g++.dg/abi/anon6a.C b/gcc/testsuite/g++.dg/abi/anon6a.C new file mode 100644 index 00000000000..69c9adb4256 --- /dev/null +++ b/gcc/testsuite/g++.dg/abi/anon6a.C @@ -0,0 +1,20 @@ +// PR c++/108566 +// { dg-do compile { target c++20 } } +// { dg-additional-options "-fabi-compat-version=0" } + +template<typename T> +struct wrapper1 { + union { + union { + T RightName; + }; + }; +}; + +template<auto tparam> void dummy(){} + +void uses() { + dummy<wrapper1<double>{123.0}>(); +} + +// { dg-final { scan-assembler "_Z5dummyITnDaXtl8wrapper1IdEtlNS1_Ut_Edi9RightNametlNS2_Ut_Edi9RightNameLd405ec00000000000EEEEEEvv" } } base-commit: dd7aa986fd12fc24e9d2efb8a8b267acb2bf19ea -- 2.39.3