[llvm-dev] [RFC] C++20 ABI issue on several platforms
Hans Wennborg via llvm-dev
llvm-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 llvm-dev
mailing list