<div>On Tuesday, June 18, 2019 11:33 PM, Eric Fiselier <eric@efcs.ca> wrote: <br></div><blockquote class="protonmail_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="protonmail_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/">https://reviews.llvm.org/differential/diff/205514/</a><br></div><div><br></div><div>which includes a patch for case 3 (see below).<br></div><div><br></div><blockquote class="protonmail_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">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="protonmail_quote" type="cite"><div dir="ltr"><div><div>[2] <a href="https://godbolt.org/z/-YAaTc">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="protonmail_quote" type="cite"><div dir="ltr"><div><div>[3] <a href="https://godbolt.org/z/YW_aSU">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/">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_">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>