c++: Add ABI version for PR98481 fix
authorJason Merrill <jason@redhat.com>
Wed, 31 Mar 2021 21:48:50 +0000 (17:48 -0400)
committerJason Merrill <jason@redhat.com>
Thu, 1 Apr 2021 14:04:38 +0000 (10:04 -0400)
commit5f00df5925082c7b66da91270f2ed29bf4818c93
tree8a28c3c9d6bb27eefba0e44fb21407d17c0a0199
parent584731ecedf09c2c067913c4af9ed0a30cf19e8d
c++: Add ABI version for PR98481 fix

The PR98481 fix corrects an ABI regression in GCC 10, but we don't want to
introduce an ABI change in the middle of the GCC 10 cycle.  This patch
introduces ABI v15 for the fix, which will be available but not default in
GCC 10.3; the broken behavior remains in ABI v14.  Compatibility aliases
will not be generated for this change.

gcc/ChangeLog:

PR c++/98481
* common.opt: Document v15 and v16.

gcc/c-family/ChangeLog:

PR c++/98481
* c-opts.c (c_common_post_options): Bump latest_abi_version.

gcc/cp/ChangeLog:

PR c++/98481
* mangle.c (write_expression): Adjust.
* class.c (find_abi_tags_r): Disable PR98481 fix for ABI v14.
(mark_abi_tags_r): Likewise.

gcc/testsuite/ChangeLog:

PR c++/98481
* g++.dg/abi/abi-tag24a.C: New test.
* g++.dg/abi/macro0.C: Adjust expected value.
gcc/c-family/c-opts.c
gcc/common.opt
gcc/cp/class.c
gcc/cp/mangle.c
gcc/testsuite/g++.dg/abi/abi-tag24a.C [new file with mode: 0644]
gcc/testsuite/g++.dg/abi/macro0.C