<div dir="ltr">Hi Anders,<div><br></div><div>I've just noticed your mail while searching something in my inbox. Normally the patches should go to the cfe-commits list, there they have fewer chances to come unnoticed. It would also be convenient if you sent clang-tidy patches using <a href="http://reviews.llvm.org/">LLVM Phabricator</a> (docs here: <a href="http://llvm.org/docs/Phabricator.html">http://llvm.org/docs/Phabricator.html</a>): please specify myself as a reviewer and CC cfe-commits.<br><div class="gmail_extra"><br></div><div class="gmail_extra">The purely preprocessor-based approach has certain advantages, but it limits the ability to detect code with side effects (which is not easy even with the AST). I don't know how much this matters on the real code, so it may make sense to leave this implementation until there are actual examples of false negatives. </div><div class="gmail_extra"><br></div><div class="gmail_extra">A couple of style-related comments:</div><div class="gmail_extra">  * function names should start with a lower-case letter</div><div class="gmail_extra">  * if `if` body is surrounded by braces, its `else` body should also use braces and vice versa</div><div class="gmail_extra">  * use range for loops where the resulting code will be more compact</div><div class="gmail_extra"><br></div><div class="gmail_extra">I'd suggest continuing the review on the LLVM Phabricator.</div><div class="gmail_extra"><br></div><div class="gmail_extra">Thanks!</div><div class="gmail_extra"><br></div><div class="gmail_extra">-- Alex</div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Mar 27, 2015 at 1:49 PM, Anders Rönnholm <span dir="ltr"><<a href="mailto:Anders.Ronnholm@evidente.se" target="_blank">Anders.Ronnholm@evidente.se</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">





<div lang="SV" link="blue" vlink="purple">
<div>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10pt;font-family:Tahoma,sans-serif;color:black">Hi!<br>
<br>
I have implemented a proof-of-concept clang-tidy checker for this CERT rule:<br>
<br>
</span><span style="font-size:10pt;font-family:Tahoma,sans-serif;color:black"><a href="https://www.securecoding.cert.org/confluence/display/c/PRE31-C.+Avoid+side+effects+in+arguments+to+unsafe+macros" target="_blank"><span lang="EN-US">https://www.securecoding.cert.org/confluence/display/c/PRE31-C.+Avoid+side+effects+in+arguments+to+unsafe+macros</span></a></span><span lang="EN-US" style="font-size:10pt;font-family:Tahoma,sans-serif;color:black"><br>
<br>
The checker seems to work. It warns if a macro argument has side effects and it is repeated in the macro. Currently it only warns for ++ and -- but this can be improved.<br>
<br>
The error message can probably be tweaked. Feel free to suggest a better message.<br>
<br>
Is this approach looking good or should the checker be moved/redesigned?<br>
<br>
</span><span style="font-size:10pt;font-family:Tahoma,sans-serif;color:black">Best Regards,<br>
AR</span><u></u><u></u></p>
</div>
</div>

<br>_______________________________________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@cs.uiuc.edu">cfe-dev@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a><br>
<br></blockquote></div><div><br></div>
</div></div></div>