<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Jun 19, 2019 at 3:18 AM Zhihao Yuan <<a href="mailto:zy@miator.net">zy@miator.net</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>On Tuesday, June 18, 2019 11:33 PM, Eric Fiselier <<a href="mailto:eric@efcs.ca" target="_blank">eric@efcs.ca</a>> wrote: <br></div><blockquote class="gmail-m_-4512188178130762814protonmail_quote" type="cite"><div dir="ltr"><div><br></div><div>This commit has caused a large number of compiler failures in Google's codebase.<br></div><div><div>I don't think all of them were intended. For example: <br></div><div>```<br></div><div>variant<uint32_t> source6(42);<br></div><div>```<br></div></div></div></blockquote><div><br></div><div>This is intended.  A signed literal can<br></div><div>no longer initialize an unsigned<br></div><div>alternative after P0608.<br></div><div><br></div><blockquote class="gmail-m_-4512188178130762814protonmail_quote" type="cite"><div dir="ltr"><div>Could you please roll back so we can further evaluate the impact of this change?<br></div></div></blockquote><div><br></div><div>Done.  Please test this diff<br></div><div><br></div><div>  <a href="https://reviews.llvm.org/differential/diff/205514/" target="_blank">https://reviews.llvm.org/differential/diff/205514/</a></div></blockquote><div><br></div><div>Thanks you. I appreciate your understanding.</div><div>I'll be working diligently to fix the breakages internally.</div><div><br></div><div>The test results from last night had a failure in a low level</div><div>dependency, which muddled the results. I'll run the tests again tonight.</div><div><br></div><div>Additionally, thanks for your analysis on the failures.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><br></div><div><br></div><div>which includes a patch for case 3 (see below).<br></div><div><br></div><blockquote class="gmail-m_-4512188178130762814protonmail_quote" type="cite"><div dir="ltr"><div>Additionally, could you review the examples I provided and confirm that they<br></div><div>should break under the new wording?<br></div><div><div><br></div><div>[1] <a href="https://godbolt.org/z/oU9v6U" target="_blank">https://godbolt.org/z/oU9v6U</a> (Abseil's std/absl variant tests)<br></div></div></div></blockquote><div><br></div><div>All the tests failing here are related to<br></div><div>literals; the ConvertVariantTo helper<br></div><div>may need to accept different arguments<br></div><div>for different literals.<br></div><div><br></div><blockquote class="gmail-m_-4512188178130762814protonmail_quote" type="cite"><div dir="ltr"><div><div>[2] <a href="https://godbolt.org/z/-YAaTc" target="_blank">https://godbolt.org/z/-YAaTc</a> (user code in Google)<br></div></div></div></blockquote><div><br></div><div>This is intended and... it looks like<br></div><div>a case where a -Wconversion warning<br></div><div>being hidden by the old variant ctor.<br></div><div><br></div><blockquote class="gmail-m_-4512188178130762814protonmail_quote" type="cite"><div dir="ltr"><div><div>[3] <a href="https://godbolt.org/z/YW_aSU" target="_blank">https://godbolt.org/z/YW_aSU</a> (another example of broken user code)<br></div></div></div></blockquote><div><br></div><div><div>This is not intended.  It is caused by a<br></div><div>bug in Clang.  I've made a patch to<br></div><div>workaround it in libc++<br></div><div><br></div><div>  <a href="https://reviews.llvm.org/differential/diff/205513/" target="_blank">https://reviews.llvm.org/differential/diff/205513/</a><br></div><div><br></div><div>^^ this diff for you to read only; it is included<br></div><div>in the previous diff.<br></div><div><br></div><div>/* the problem is that<br></div><div><br></div><div>  <a href="https://godbolt.org/z/qQZFn_" target="_blank">https://godbolt.org/z/qQZFn_</a><br></div><div><div><br></div></div><div>testing constexpr ctor breaks out expression<br></div><div>SFINAE.  If you uncomment line 11, you will find<br></div><div>that MSVC continues to work. */<br></div><div><div><br></div></div><div>--<br></div><div>Zhihao<br></div><div><br></div><div><br></div><div><br></div><div><br></div></div><div><br></div></blockquote></div></div>