<div dir="ltr"><div>This is still causing me problems.  My tool works fine when compiled against Clang 3.8.0 and running against the VS2013 libraries.</div><div><br></div><div>When I attempt to run against the VS2015 libraries it fails.  Support for the particular built-in that fails was added to 3.9.0, but when I attempt to compile against Clang 3.9.0 and run against the VS2015 libraries I get the following errors:</div><div><br></div><div>warning: unknown argument ignored in clang-cl: '-resource-dir=C:\MyTool\Debug\..\lib\clang\4.0.0'</div><div><br></div><div>C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\immintrin.h(776,28):  error: invalid token in macro<br>      parameter list<br>#define _mm256_loadu2_m128(/* float const* */ hiaddr, \<br>                           ^<br>C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\immintrin.h(780,29):  error: invalid token in macro<br>      parameter list<br>#define _mm256_loadu2_m128d(/* double const* */ hiaddr, \<br>                            ^<br>C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\immintrin.h(784,29):  error: invalid token in macro<br>      parameter list<br>#define _mm256_loadu2_m128i(/* __m128i const* */ hiaddr, \<br>                            ^<br>C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\immintrin.h(794,29):  error: invalid token in macro<br>      parameter list<br>#define _mm256_storeu2_m128(/* float* */ hiaddr, /* float* */ loaddr, \<br>                            ^<br>C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\immintrin.h(802,30):  error: invalid token in macro<br>      parameter list<br>#define _mm256_storeu2_m128d(/* double* */ hiaddr, /* double* */ loaddr, \<br>                             ^<br>C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\immintrin.h(810,30):  error: invalid token in macro<br>      parameter list<br>#define _mm256_storeu2_m128i(/* __m128i* */ hiaddr, /* __m128i* */ loaddr, \<br>                             ^<br>C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\immintrin.h(1129,25):  error: invalid token in macro<br>      parameter list<br>#define _mm256_set_m128(/* __m128 */ hi, /* __m128 */ lo) \<br>                        ^<br>C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\immintrin.h(1132,26):  error: invalid token in macro<br>      parameter list<br>#define _mm256_set_m128d(/* __m128d */ hi, /* __m128d */ lo) \<br>                         ^<br>C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\immintrin.h(1135,26):  error: invalid token in macro<br>      parameter list<br>#define _mm256_set_m128i(/* __m128i */ hi, /* __m128i */ lo) \<br>                         ^<br>9 errors generated.</div><div><br></div><div><br></div><div>Note that the unknown argument is added by Clang, and it correctly points to the directory structure that is created by the clang-headers project.  When I got these errors in the past (compiling against 3.8.0 or 3.7.0) it was because I hadn't built the clang-headers project, which copies the replacement headers to the lib directory.  I am currently building that project, and I can confirm that the files do exist in the directory indicated by resource-dir.</div><div><br></div><div>Any ideas how to get this to work so that I can build and run my tool against VS2015?</div><div><br></div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jul 13, 2016 at 9:49 AM, Daniel Dilts <span dir="ltr"><<a href="mailto:diltsman@gmail.com" target="_blank">diltsman@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>That sounds reasonable, but the tool is generating the -resource-dir argument.  I am processing command line arguments using:</div><span><div><br></div><div>CommonOptionsParser optionsParser(argc, const_cast<const char**>(argv), gMyToolCategory);</div><div><br></div></span><div>I never pass -resource-dir to the tool.  My code works (other than when using VS2015 Update 3) when it is built against Clang 3.8.0.</div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jul 13, 2016 at 8:38 AM, Reid Kleckner <span dir="ltr"><<a href="mailto:rnk@google.com" target="_blank">rnk@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><p dir="ltr">I didn't think -resource-dir was a driver option, it's a -cc1 option. I'm not sure how to set it in the context of a clang tool, but there should be a way to get it through. Worst case you can use -Xclang.</p>
<p dir="ltr">Sent from phone</p>
<div class="gmail_quote"><div><div>On Jul 12, 2016 5:48 PM, "Daniel Dilts via cfe-dev" <<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a>> wrote:<br type="attribution"></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><div dir="ltr"><div>I am uncertain on how to proceed with this.  immintrin.h (as provided by clang) is in the directory specified by -resource-dir.  In order for clang (and tools based on it) to handle the Windows header files, it must use these files or you get lots of errors parsing Microsoft's standard library implementation.</div><div><br></div><div>Since the -resource-dir flag doesn't appear to be valid anymore (but is still generated by clang), what is the method to cause clang to use the files in this directory?</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jun 30, 2016 at 11:05 AM, Daniel Dilts <span dir="ltr"><<a href="mailto:diltsman@gmail.com" target="_blank">diltsman@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>My command line roughly looks like this:</div><div>MyTool.exe D:\Source1.cpp D:\Source2.cpp -- --driver-mode=cl -Wno-c99-extensions -Wno-microsoft-enum-value -Wno-undefined-internal -fms-compatibility-version=19 -EHsc</div><div><br></div><div>My code to parse the command line arguments is this:</div><div>CommonOptionsParser optionsParser(argc, const_cast<const char**>(argv), gMyToolCategory);</div><div><br></div><div>The only places where the code mentions -resource-dir are in Clang or LLVM code.<br></div></div><div><div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jun 30, 2016 at 8:42 AM, 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"><span>On Wed, Jun 29, 2016 at 5:46 PM, Daniel Dilts <<a href="mailto:diltsman@gmail.com" target="_blank">diltsman@gmail.com</a>> wrote:<br>
> I am now building my tool against trunk.  I am seeing the following errors,<br>
> which I had a long time ago and I seem to remember that the tool had to know<br>
> about where the Clang build copied certain files.  Is there some other<br>
> project that needs to be built to make this work?  I have already set<br>
> clang-headers as a dependency.<br>
><br>
> CUSTOMBUILD : warning : unknown argument ignored in clang-cl:<br>
> '-resource-dir=D:\Some\<wbr>Directory\lib\clang\3.9.0'<br>
<br>
</span>This looks like the problem. I don't know where this flag is coming<br>
from, but does it work better if you remove the '='?<br>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>
<br></div></div>______________________________<wbr>_________________<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" target="_blank" rel="noreferrer">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/cfe-dev</a><br>
<br></blockquote></div>
</div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>