<div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Mon, 29 Oct 2018 at 13:09, JF Bastien via cfe-dev <<a href="mailto:cfe-dev@lists.llvm.org">cfe-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word;line-break:after-white-space">Richard recently made __builtin_memcpy constexpr in some cases: <a href="https://reviews.llvm.org/rL338941" target="_blank">https://reviews.llvm.org/rL338941</a><br>His patch currently disallows all type-puns.<div><br></div><div>Erik is looking at implementing a bit_cast intrinsic for clang,</div></div></blockquote><div><br></div><div>Is there a reason to make it a new builtin (which I think is what you're suggesting) rather than extending the existing __builtin_memcpy support to cover all the bit_cast cases? (Eg, is the idea to make it exactly cover the cases that std::bit_cast supports?) If we want both, it'd be good to at least make the two share code.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word;line-break:after-white-space"><div>at which point libc++ can use it. ADT won’t be able to do so until we migrate to C++20 (and toolchains support it).</div><div><br></div><div>We also want to reach out to the RedHat maintainers of libstdc++ to make sure we don’t adopt a weirdly different builtin.</div><div><br><br><div><br><blockquote type="cite"><div>On Oct 29, 2018, at 12:56 PM, will wray via cfe-dev <<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a>> wrote:</div><br class="m_2445159788289606080Apple-interchange-newline"><div><div dir="ltr"><div>std::bit_cast was added to the C++ 20 draft this summer:</div><div><a href="http://eel.is/c++draft/bit.cast" target="_blank">http://eel.is/c++draft/bit.cast</a></div><br class="m_2445159788289606080gmail-Apple-interchange-newline">In September JFB added a header with implementation (in llvm namespace):<br>llvm/include/llvm/ADT/bit.h<br><br>  // This file implements the C++20 <bit> header.<br>  ...<br>  // - It isn't constexpr because that requires compiler support.<br><div><br></div><div>What compiler support is it waiting on? What's the status?</div><div><br></div></div>
_______________________________________________<br>cfe-dev mailing list<br><a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a><br><a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev</a><br></div></blockquote></div><br></div></div>_______________________________________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev</a><br>
</blockquote></div></div>