From 1d08f8231ceec78f68e76ecbbf138bd1c96220c3 Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Tue, 5 Sep 2023 13:22:31 -0700 Subject: [PATCH 1/2] Clarify that the "type conflict" rule ignores cv-qualifiers GCC and Clang have divergent implementations of `[[no_unique_address]]` due to not ignoring cv-qualifiers in this check. The standard is being amended to say that cv-qualifiers should be ignored. Do the same in the corresponding ABI rule. --- abi.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/abi.html b/abi.html index f1147bd..32d3b39 100644 --- a/abi.html +++ b/abi.html @@ -1045,8 +1045,8 @@

2.4 Non-POD Class Types

to nvalign(D) for base classes or to align(D) for data members. Place D at this offset unless doing so would result in two - components (direct or indirect) of the same type having the - same offset. + components (direct or indirect) of the same type (ignoring + cv-qualifiers) having the same offset. If such a component type conflict occurs, increment the candidate offset by nvalign(D) for base classes or by align(D) for data members From 73b8981cdccf9fba5ed54582e1a414b5de7972f5 Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Wed, 6 Sep 2023 14:26:33 -0700 Subject: [PATCH 2/2] Say "similar type" rather than explicitly talking about cv-qualifiers --- abi.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/abi.html b/abi.html index 32d3b39..607abda 100644 --- a/abi.html +++ b/abi.html @@ -1045,8 +1045,8 @@

2.4 Non-POD Class Types

to nvalign(D) for base classes or to align(D) for data members. Place D at this offset unless doing so would result in two - components (direct or indirect) of the same type (ignoring - cv-qualifiers) having the same offset. + components (direct or indirect) of a similar type having the + same offset. If such a component type conflict occurs, increment the candidate offset by nvalign(D) for base classes or by align(D) for data members