<div dir="ltr">As information, it seems no_unique_address handling already works for PPC64LE:<br><span style="font-family:monospace">struct A {<br>  int : 0;<br>};<br><br>struct B {<br>  float f;<br>  struct A a [[no_unique_address]];<br>};<br><br>void f(B);<br><br>void g(B *bp) {<br>  f(*bp);<br></span><div><span style="font-family:monospace">}</span></div><div><br></div><div>Uses:<br></div><div><span style="font-family:monospace">lfsx 1, 0, 3</span></div><div><br></div>Compiler Explorer link: <a href="https://godbolt.org/z/tHkSRQ">https://godbolt.org/z/tHkSRQ</a><div><br></div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Jul 7, 2020 at 8:25 AM Ulrich Weigand via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><p><font size="2">Hello,</font><br><br><font size="2">as discussed here in more detail: </font><a href="https://reviews.llvm.org/D81583" target="_blank"><font size="2">https://reviews.llvm.org/D81583</font></a><font size="2"> </font><br><br><font size="2">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.</font><br><br><font size="2">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.</font><br><br><font size="2">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.</font><br><br><br><font size="2">Bye,</font><br><font size="2">Ulrich</font><br><br>
</p></div>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote></div></div>