<div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Fri, Sep 4, 2015 at 1:28 PM Paul Hoad 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">Sorry sorry in advance if this is a newbie question, I'm trying to get clang-tidy (3.8.0 trunk) working on Windows pointing at the with the Visual Studio 2015 headers (VC and UCRT)<div><br></div><div>I'm trying a very simple programme</div><div>-------------cut-------</div><div><div>#include <iostream></div><div><br></div><div>void main(int argc,char **argv)</div><div>{</div><div>   std::cerr << "Hello World" << std::endl;</div><div>}</div></div><div>-------------cut-------<br></div><div><br></div><div>clang-tidy will work perfectly until I start include system headers,stl etc...</div><div><br></div><div>I run on the command line (inside cygwin bash shell) with the following.</div><div><br></div><div><div>clang-tidy Stdio.cxx -- -I"c:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/INCLUDE" -I"c:/Program Files (x86)/Windows Kits/10/Include/10.0.10150.0/ucrt"</div></div><div><br></div><div><br></div><div>but I get a load of failures due to clang errors in the system headers.</div><div><br></div><div>Can I:</div><div><br></div><div>1) parse a switch to clang-tidy to tell it not to complain about headers outside of my control?</div><div>2) avoid this problem in the first place (I get the same if I try to compile with clang.exe or clang-cl.exe)?</div><div>3) am I making an obvious mistake?</div><div><br></div><div><div>-----------------compiler output-----------------</div><div>8 warnings and 20 errors generated.</div><div>Error while processing D:\buildareas\HEAD\issdev\src\test\tidy\Stdio.cxx.</div><div>error: too many errors emitted, stopping now [clang-diagnostic-error]</div><div>c:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/INCLUDE\vadefs.h:28:33: e</div><div>rror: expected ';' after top level declarator [clang-diagnostic-error]</div><div>        typedef unsigned __int64  uintptr_t;</div><div>                                ^</div><div>                                ;</div><div>c:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/INCLUDE\vadefs.h:127:18:</div><div>error: expected identifier or '{' [clang-diagnostic-error]</div><div>            enum : bool { __the_value = false };</div><div>                 ^</div><div>c:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/INCLUDE\vadefs.h:133:18:</div><div>error: expected identifier or '{' [clang-diagnostic-error]</div><div>            enum : bool { __the_value = true };</div><div>                 ^</div><div>c:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/INCLUDE\vadefs.h:139:18:</div><div>error: expected identifier or '{' [clang-diagnostic-error]</div><div>            enum : bool { __the_value = true };</div><div>                 ^</div><div>c:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/INCLUDE\vcruntime.h:81:1:</div><div> error: C++ requires a type specifier for all declarations [clang-diagnostic-err</div><div>or]</div><div>_CRT_BEGIN_C_HEADER</div></div><div>...... more errors cut</div></div></blockquote><div><br></div><div>Note that those are parsing errors, not clang-tidy errors.</div><div>You basically need to be able to run:</div><div>clang-check Stdio.cxx -- <the right command line parameters></div><div>successfully first.</div><div><br></div><div>The easiest way to get there is to use CMake, and have it output a compilation database (see the description how to do this for LLVM, it's very similar: <a href="http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html">http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html</a>)</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><br></div><div>Many thanks inadvance</div><div><br></div><div>Paul</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>