]> git.ipfire.org Git - thirdparty/gcc.git/commit
c++: [[no_unique_address]] and cv-qualified type
authorJason Merrill <jason@redhat.com>
Tue, 5 Sep 2023 21:36:28 +0000 (17:36 -0400)
committerJason Merrill <jason@redhat.com>
Wed, 6 Sep 2023 03:19:38 +0000 (23:19 -0400)
commitdbae784d50f499671fd2fde54a8d8d3421cba32b
treebea7d04fb1481058ac18e58252274916b24856f3
parent254100a9a003a16255a58eec3fa24168e6dc7124
c++: [[no_unique_address]] and cv-qualified type

We were checking for overlap using same_type_p and therefore allocating two
Empty subobjects at the same offset because one was cv-qualified.

This gives the warning at the location of the class name rather than the
member declaration, but this should be a rare enough issue that it doesn't
seem worth trying to be more precise.

gcc/ChangeLog:

* common.opt: Update -fabi-version=19.

gcc/cp/ChangeLog:

* class.cc (check_subobject_offset): Check
same_type_ignoring_top_level_qualifiers_p.

gcc/testsuite/ChangeLog:

* g++.dg/abi/no_unique_address8.C: New test.
* g++.dg/abi/no_unique_address8a.C: New test.
gcc/common.opt
gcc/cp/class.cc
gcc/testsuite/g++.dg/abi/no_unique_address8.C [new file with mode: 0644]
gcc/testsuite/g++.dg/abi/no_unique_address8a.C [new file with mode: 0644]