<div dir="ltr">+alex<div><div><br></div><div><div class="gmail_quote"><div dir="ltr">On Thu, Aug 3, 2017 at 4:10 PM Dima Kozhevnikov 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 dir="ltr"><div class="m_1965382481561579043gmail_signature"><div class="m_1965382481561579043gmail_signature">Hello!</div><div class="m_1965382481561579043gmail_signature"><br></div><div class="m_1965382481561579043gmail_signature">Currently some modernize-* checks in clang-tidy are applied regardless of the C++ standard used (some of them having comments like "Because this checker is used for modernization, it is reasonable to run it on any C++ standard with the assumption the user is trying to modernize their codebase"). To name some:</div><div class="m_1965382481561579043gmail_signature"><br></div><div class="m_1965382481561579043gmail_signature">- LoopConvertCheck</div><div class="m_1965382481561579043gmail_signature">- PassByValueCheck</div><div class="m_1965382481561579043gmail_signature">- ReplaceAutoPtrCheck</div></div></div></blockquote><div><br></div><div>This might be an interesting one, if a standard lib removes auto_ptr with a reasonably recent compiler standard.</div><div>Not sure whether we have similar checks that could fix breaking changes.</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="m_1965382481561579043gmail_signature"><div class="m_1965382481561579043gmail_signature">- UseAutoCheck</div><div class="m_1965382481561579043gmail_signature">- UseEmplaceCheck</div><div class="m_1965382481561579043gmail_signature">- UseEqualsDefaultCheck</div><div class="m_1965382481561579043gmail_signature">- UseEqualsDeleteCheck</div><div class="m_1965382481561579043gmail_signature">- UseNullptrCheck</div><div class="m_1965382481561579043gmail_signature"><br></div><div class="m_1965382481561579043gmail_signature">Others are applied only when the current C++ standard is high enough, namely:</div><div class="m_1965382481561579043gmail_signature"><br></div><div class="m_1965382481561579043gmail_signature">- RawStringLiteralCheck</div><div class="m_1965382481561579043gmail_signature">- ReplaceRandomShuffleCheck</div><div class="m_1965382481561579043gmail_signature">- ReturnBracedInitListCheck</div><div class="m_1965382481561579043gmail_signature">- ShrinkToFitCheck</div><div class="m_1965382481561579043gmail_signature">- UseDefaultMemberInitCheck</div><div class="m_1965382481561579043gmail_signature">- UseNoexceptCheck</div><div class="m_1965382481561579043gmail_signature">- UseOverrideCheck</div><div class="m_1965382481561579043gmail_signature">- UseTransparentFunctorsCheck</div><div class="m_1965382481561579043gmail_signature">- UseUsingCheck</div><div class="m_1965382481561579043gmail_signature"><div class="m_1965382481561579043gmail_signature">- Make{Shared/Unique}Check</div><div><br></div></div><div class="m_1965382481561579043gmail_signature">The first approach is causing troubles when with our clang-tidy integration in CLion, since diagnostics are emitted on a perfectly valid C++03 code, and applying FixIts breaks compilation. We could deal with it on our side, blacklisting specific checks (or "modernize-*" altogether) with older standards; however, we'd like to avoid knowing about specific checks on our side when possible. Additionally,</div><div class="m_1965382481561579043gmail_signature"><br></div><div class="m_1965382481561579043gmail_signature">- The situation is obviously inconsistent between different checks</div><div class="m_1965382481561579043gmail_signature">- I don't see much sense for the user to try "to modernize their codebase" when the user can't do anything with the results anyway</div><div class="m_1965382481561579043gmail_signature"><br></div><div class="m_1965382481561579043gmail_signature">I'd like to go through the first group and require the C++11 standard for them, what do you think?</div><div class="m_1965382481561579043gmail_signature"><br></div><div class="m_1965382481561579043gmail_signature">--</div><div class="m_1965382481561579043gmail_signature">Best regards,</div><div class="m_1965382481561579043gmail_signature">Dmitry Kozhevnikov.</div></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></div></div>