<div dir="ltr">I'm fine with including this to 3.8. BTW, I'm working on release notes.</div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jan 21, 2016 at 6:01 PM, Hans Wennborg <span dir="ltr"><<a href="mailto:hans@chromium.org" target="_blank">hans@chromium.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I'm fine with it. Alex, what do you think?<br>
<div class="HOEnZb"><div class="h5"><br>
On Wed, Jan 20, 2016 at 3:07 PM, Aaron Ballman <<a href="mailto:aaron@aaronballman.com">aaron@aaronballman.com</a>> wrote:<br>
> Uncertain whether this meets the bar for inclusion in 3.8.<br>
> clang-modernize was moved into clang-tidy and from what I can tell, it<br>
> did not suffer from this crash. I wouldn't normally recommend this,<br>
> but just about any use of clang-tidy (that does not filter out this<br>
> check) over code that includes the MSVC STL headers will trigger that<br>
> assert without this fix.<br>
><br>
> ~Aaron<br>
><br>
> On Wed, Jan 20, 2016 at 5:14 PM, Aaron Ballman via cfe-commits<br>
> <<a href="mailto:cfe-commits@lists.llvm.org">cfe-commits@lists.llvm.org</a>> wrote:<br>
>> Author: aaronballman<br>
>> Date: Wed Jan 20 16:14:10 2016<br>
>> New Revision: 258356<br>
>><br>
>> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=258356&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=258356&view=rev</a><br>
>> Log:<br>
>> Make modernize-use-default tolerant of delayed template parsing; this code was previously causing failed assertions because dyn_cast was being passed a null pointer due to the delay-parsed body.<br>
>><br>
>> Added:<br>
>>     clang-tools-extra/trunk/test/clang-tidy/modernize-use-default-delayed.cpp<br>
>> Modified:<br>
>>     clang-tools-extra/trunk/clang-tidy/modernize/UseDefaultCheck.cpp<br>
>><br>
>> Modified: clang-tools-extra/trunk/clang-tidy/modernize/UseDefaultCheck.cpp<br>
>> URL: <a href="http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/modernize/UseDefaultCheck.cpp?rev=258356&r1=258355&r2=258356&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/modernize/UseDefaultCheck.cpp?rev=258356&r1=258355&r2=258356&view=diff</a><br>
>> ==============================================================================<br>
>> --- clang-tools-extra/trunk/clang-tidy/modernize/UseDefaultCheck.cpp (original)<br>
>> +++ clang-tools-extra/trunk/clang-tidy/modernize/UseDefaultCheck.cpp Wed Jan 20 16:14:10 2016<br>
>> @@ -272,6 +272,7 @@ void UseDefaultCheck::check(const MatchF<br>
>>    // that are not user-provided (automatically generated).<br>
>>    if (SpecialFunctionDecl->isDeleted() ||<br>
>>        SpecialFunctionDecl->isExplicitlyDefaulted() ||<br>
>> +      SpecialFunctionDecl->isLateTemplateParsed() ||<br>
>>        !SpecialFunctionDecl->isUserProvided() || !SpecialFunctionDecl->hasBody())<br>
>>      return;<br>
>><br>
>><br>
>> Added: clang-tools-extra/trunk/test/clang-tidy/modernize-use-default-delayed.cpp<br>
>> URL: <a href="http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-tidy/modernize-use-default-delayed.cpp?rev=258356&view=auto" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-tidy/modernize-use-default-delayed.cpp?rev=258356&view=auto</a><br>
>> ==============================================================================<br>
>> --- clang-tools-extra/trunk/test/clang-tidy/modernize-use-default-delayed.cpp (added)<br>
>> +++ clang-tools-extra/trunk/test/clang-tidy/modernize-use-default-delayed.cpp Wed Jan 20 16:14:10 2016<br>
>> @@ -0,0 +1,8 @@<br>
>> +// RUN: clang-tidy %s -checks=-*,modernize-use-default -- -std=c++11 -fdelayed-template-parsing -fexceptions | count 0<br>
>> +// Note: this test expects no diagnostics, but FileCheck cannot handle that,<br>
>> +// hence the use of | count 0.<br>
>> +<br>
>> +template <typename Ty><br>
>> +struct S {<br>
>> +  S<Ty>& operator=(const S<Ty>&) { return *this; }<br>
>> +};<br>
>><br>
>><br>
>> _______________________________________________<br>
>> cfe-commits mailing list<br>
>> <a href="mailto:cfe-commits@lists.llvm.org">cfe-commits@lists.llvm.org</a><br>
>> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits</a><br>
</div></div></blockquote></div><br></div>