[cfe-dev] [llvm-dev] [RFC] C++20 ABI issue on several platforms

Hans Wennborg via cfe-dev cfe-dev at lists.llvm.org
Mon Jul 27 07:58:57 PDT 2020


On Tue, Jul 7, 2020 at 2:25 PM Ulrich Weigand via llvm-dev
<llvm-dev at lists.llvm.org> wrote:
>
> Hello,
>
> as discussed here in more detail: https://reviews.llvm.org/D81583
>
> the introduction of the C++20 [[no_unique_address]] attribute exposes an ABI issue on platforms that require special handling for structs/classes that are "equivalent" to a single floating-point member (or in some cases, a "homogeneous" set of floating-point members). This is because we can now for the first time have "empty" members in a C++ class, which affects that determination.
>
> The Itanium C++ ABI document was updated to include these new cases, and GCC 10 was changed accordingly. However, current clang/LLVM mainline does not comply with this new ABI. The Phabricator review I posted above fixes that for the SystemZ target, but because I'm touching some amount of common code, and because -to the best of my understanding- other platforms would actually likewise be affected, I'm asking for comments here as well.
>
> Given that we're nearing the time frame to create the LLVM 11 branch, it would really be good if this issue could be fixed before the branch.

Hi Ulrich,

I see that the patch linked above landed before the branch date. Do I
understand that there's nothing more that needs to be done here for
LLVM 11?

Thanks,
Hans


More information about the cfe-dev mailing list