<div dir="ltr">After some digging, it turns out we're hitting this bug: <a href="https://llvm.org/bugs/show_bug.cgi?id=23518">https://llvm.org/bugs/show_bug.cgi?id=23518</a><div><br></div><div>Thanks for all your help :) looks like we're going to have to go through our code and remove all the exceptions ...</div></div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><p dir="ltr">--<br> Joshua Gerrard<br> JUCE Software Developer<br></p><p dir="ltr"> The Seaboard GRAND is a breakthrough new musical instrument called “the piano of the future” (CNN) and “influential, innovative, and inspiring” and “ingenious” (Telegraph). With orders from 34 countries, the Seaboard GRAND is now shipping and available for sale at <a href="http://www.roli.com/seaboard" target="_blank"><font color="#1155cc">www.roli.com/seaboard</font></a><br></p><p dir="ltr">Office: <a href="tel:%2B44%280%29207%20254%202155" value="+442072542155" target="_blank"><font color="#1155cc">+44(0)207 254 2155</font></a><br> Cell:    07885 557494<br><br></p><p dir="ltr">ROLI<br> 2 Glebe Road, London E8 4BD<br><a href="http://www.roli.com/" target="_blank"><font color="#1155cc">www.roli.com</font></a><br></p><p dir="ltr">Discover more about us on Facebook - Twitter - Youtube</p><p dir="ltr">ROLI Ltd. is a registered company in England and Wales, and this e-mail and its attachment(s) are intended for the above named only and are confidential. If they have come to you in error then you must take no action based upon them but contact us immediately. Any disclosure, copying, distribution or any action taken or omitted to be taken in reliance on it is prohibited and may be unlawful. Although this e-mail and its attachments are believed to be free of any virus, it is the responsibility of the recipient to ensure that they are virus free. If you contact us by e-mail then we will store your name and address to facilitate communications. Any statements contained herein are those of the individual and not the organisation.<br><br></p></div></div></div></div></div></div>
<br><div class="gmail_quote">On 3 September 2015 at 12:20, Joshua Gerrard <span dir="ltr"><<a href="mailto:joshua.gerrard@roli.com" target="_blank">joshua.gerrard@roli.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><div><div dir="ltr"><div><div dir="ltr"><div><p>Forgot to add cfe-dev back in</p></div></div></div></div></div></div>
<br><div class="gmail_quote"><span class="">---------- Forwarded message ----------<br>From: <b class="gmail_sendername">Joshua Gerrard</b> <span dir="ltr"><<a href="mailto:joshua.gerrard@roli.com" target="_blank">joshua.gerrard@roli.com</a>></span><br>Date: 3 September 2015 at 11:44<br>Subject: Re: [cfe-dev] Windows and Clang<br>To: Russell Wallace <<a href="mailto:russell.wallace@gmail.com" target="_blank">russell.wallace@gmail.com</a>><br><br><br><div dir="ltr">Yes, that's pretty recent.<div><br></div><div>I <b>think</b> the compiler-rt stuff is needed because we pull information out of clang whilst it's compiling apparently (I had to go and ask someone else about this). I know that the project doesn't compile without it.</div><div><br></div><div>As for what's going wrong ...</div><div><br></div><div><b>Release:</b></div><div>- sometimes it crashes outright with nothing to give us an idea of why, the diagnostics we get back are in a different order every time, even when the number of threads is set to 1 in our project, and all other sorts of random things that scream undefined behaviour with no clue as to where it is.</div><div><br></div><div><b>Debug:</b></div><div>- Windows headers are throwing errors out, even though the MSVC compatibility flags and such are set as follows:</div><div><br></div><div><div>        lo.MSVCCompat = true;</div><div>        lo.MSCompatibilityVersion = clang::LangOptions::MSVC2013;</div><div>        lo.MicrosoftExt = true;</div><div>        lo.AsmBlocks = true;</div></div><div><br></div><div>Thank you for showing your build process too, after looking at it, it's slightly different from what I've got here so that might be a place to start. I'll do that now!</div><div><br></div><div>Merci,</div><div><br></div><div>Joshua</div></div></span><div class="gmail_extra"><span>
<br></span><span class=""><div><div><div class="gmail_quote">On 3 September 2015 at 11:33, Russell Wallace <span dir="ltr"><<a href="mailto:russell.wallace@gmail.com" target="_blank">russell.wallace@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>I also just ran a test trying to compile my project with clang and link it with all the libraries that had been compiled with Microsoft C++:<br></div><div><br></div>clang-cl -fms-compatibility-version=19 /J -I\llvm\build\include -I\llvm\include -I\mpir /MTd *.cpp \llvm\build\Debug\lib\*.lib \mpir\build.vc14\lib_mpir_core2\x64\Debug\mpir.lib <br><div><br></div><div>And it all worked fine, even though a fair number of C++ features were used. To emphasise, this is linking C++ object files compiled with different compilers, something traditionally considered theoretically impossible, and it works! Exceptions are the main things I don't use, because they are still apparently a work in progress.<br></div></div><div><div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Sep 3, 2015 at 11:25 AM, Russell Wallace <span dir="ltr"><<a href="mailto:russell.wallace@gmail.com" target="_blank">russell.wallace@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 class="gmail_extra"><div class="gmail_quote"><span>On Thu, Sep 3, 2015 at 11:16 AM, Joshua Gerrard <span dir="ltr"><<a href="mailto:joshua.gerrard@roli.com" target="_blank">joshua.gerrard@roli.com</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 dir="ltr">I'm using Visual Studio 2013 (just because we suppose it'll be better tested etc) with revision 245761 of clang, compiler-rt and llvm. I'm also using the ORC JIT engine to compile the C++ code.</div></blockquote><div><br></div></span><div>Current revision seems to be 246... so that's pretty recent, right?</div><div><br></div><div>Is there a reason you need to use compiler-rt? </div><span><div><br></div><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 dir="ltr"><div>The errors we're getting are non-deterministic, which is what is making it so hard to figure out.</div></div></blockquote><div><br></div></span><div>As in, crashes due to stray pointers? </div><span><div><br></div><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 dir="ltr"><div>Are you building the release from source, and if so, what cmake flags are you using? </div></div></blockquote><div><br></div></span><div>Yes. <a href="https://github.com/russellw/ayane/blob/master/build-clang.bat" target="_blank">https://github.com/russellw/ayane/blob/master/build-clang.bat</a></div><span><div> </div><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 dir="ltr"><div>Any other things I should know about that you use to build your project? </div></div></blockquote><div><br></div></span><div>Current project build procedure:</div><div><br></div><div>if "%VCINSTALLDIR%"=="" call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall" x64</div><div>cl /Fea /I\llvm\build\include /I\llvm\include /I\mpir /MP /MTd *.cpp \llvm\build\Debug\lib\*.lib \mpir\build.vc14\lib_mpir_core2\x64\Debug\mpir.lib setargv.obj</div><div><br></div></div></div></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div></div></span></div>
</div><br></div>
</blockquote></div><br></div>