<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 14 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-GB link=blue vlink=purple><div class=WordSection1><p class=MsoNormal>Hi,<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I have been using LLVM+Clang in my project for some time and it has been working just fine up to now (I am currently using version 3.5.1).<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>However, with version 3.6 having just been released, I thought I would give it a try and update my code to use MCJIT rather than the now discontinued JIT. Well, this proved to be a relatively smooth process, and everything is now working fine on Linux and OS X. However, on Windows, I am having problems building LLVM+Clang. Actually, Clang itself, it would seem.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I guess it’s worth mentioning that I don’t build LLVM+Clang the ‘normal’ way. Instead, LLVM+Clang is part of my project repository and I build it as part of my project. Now, as mentioned above, I am having problems building version 3.6 on Windows, this using MSVC 2013. I am basically getting things like:<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>---------------------------------------<o:p></o:p></p><p class=MsoNormal>FAILED: C:\PROGRA~2\MICROS~2.0\VC\bin\X86_AM~1\cl.exe   /nologo /TP /DWIN32 /D_WINDOWS  /GR /EHsc /DNDEBUG /MD /O2 /Ob2 /wd4267 /wd4146 /wd4180 /wd4244 /wd4258 /wd4267 /wd4291 /wd4345 /wd4351 /wd4355 /wd4456 /wd4457 /wd4458 /wd4459 /wd4503 /wd4624 /wd4722 /wd4800 /w14062 /we4238 -Isrc\plugins\thirdParty\LLVM -I..\src\plugins\thirdParty\LLVM -I..\src\misc -I..\src\plugins -I..\src\plugins\miscellaneous\Core\src -I..\src\3rdparty\QtSingleApplication\src -I..\src\plugins\thirdParty\LLVM\include -I..\src\plugins\thirdParty\LLVM\lib\Target\X86 -I..\src\plugins\thirdParty\LLVM\src -I..\src\plugins\thirdParty\LLVM\tools\clang\include -IC:\Qt\5.4\msvc2013_64\include -IC:\Qt\5.4\msvc2013_64\include\QtCore -IC:\Qt\5.4\msvc2013_64\mkspecs\win32-msvc2013 /showIncludes -DLLVMPlugin_EXPORTS -DLLVM_PLUGIN -DQT_CORE_LIB -DQT_DEPRECATED_WARNINGS -DQT_NO_DEBUG -DUNICODE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS -D_UNICODE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS /Fosrc\plugins\thirdParty\LLVM\CMakeFiles\LLVMPlugin.dir\tools\clang\lib\Driver\Compilation.cpp.obj /Fdsrc\plugins\thirdParty\LLVM\CMakeFiles\LLVMPlugin.dir\ /FS -c ..\src\plugins\thirdParty\LLVM\tools\clang\lib\Driver\Compilation.cpp<o:p></o:p></p><p class=MsoNormal>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE\xutility(2045) : error C2280: 'std::unique_ptr<clang::driver::Job,std::default_delete<_Ty>> &std::unique_ptr<_Ty,std::default_delete<_Ty>>::operator =(const std::unique_ptr<_Ty,std::default_delete<_Ty>> &)' : attempting to reference a deleted function<o:p></o:p></p><p class=MsoNormal>        with<o:p></o:p></p><p class=MsoNormal>        [<o:p></o:p></p><p class=MsoNormal>            _Ty=clang::driver::Job<o:p></o:p></p><p class=MsoNormal>        ]<o:p></o:p></p><p class=MsoNormal>        C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE\memory(1487) : see declaration of 'std::unique_ptr<clang::driver::Job,std::default_delete<_Ty>>::operator ='<o:p></o:p></p><p class=MsoNormal>        with<o:p></o:p></p><p class=MsoNormal>        [<o:p></o:p></p><p class=MsoNormal>            _Ty=clang::driver::Job<o:p></o:p></p><p class=MsoNormal>        ]<o:p></o:p></p><p class=MsoNormal>        C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE\xutility(2066) : see reference to function template instantiation '_OutIt std::_Copy_impl<_InIt,_OutIt>(_InIt,_InIt,_OutIt,std::_Nonscalar_ptr_iterator_tag)' being compiled<o:p></o:p></p><p class=MsoNormal>        with<o:p></o:p></p><p class=MsoNormal>        [<o:p></o:p></p><p class=MsoNormal>            _OutIt=std::unique_ptr<clang::driver::Job,std::default_delete<clang::driver::Job>> *<o:p></o:p></p><p class=MsoNormal>,            _InIt=const std::unique_ptr<clang::driver::Job,std::default_delete<clang::driver::Job>> *<o:p></o:p></p><p class=MsoNormal>        ]<o:p></o:p></p><p class=MsoNormal>        C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE\xutility(2077) : see reference to function template instantiation '_OutIt std::_Copy_impl<_Iter,std::unique_ptr<clang::driver::Job,std::default_delete<_Ty>>>(_InIt,_InIt,_OutIt)' being compiled<o:p></o:p></p><p class=MsoNormal>        with<o:p></o:p></p><p class=MsoNormal>        [<o:p></o:p></p><p class=MsoNormal>            _OutIt=std::unique_ptr<clang::driver::Job,std::default_delete<clang::driver::Job>> *<o:p></o:p></p><p class=MsoNormal>,            _Iter=const std::unique_ptr<clang::driver::Job,std::default_delete<clang::driver::Job>> *<o:p></o:p></p><p class=MsoNormal>,            _Ty=clang::driver::Job<o:p></o:p></p><p class=MsoNormal>,            _InIt=const std::unique_ptr<clang::driver::Job,std::default_delete<clang::driver::Job>> *<o:p></o:p></p><p class=MsoNormal>        ]<o:p></o:p></p><p class=MsoNormal>        ..\src\plugins\thirdParty\LLVM\include\llvm/ADT/SmallVector.h(773) : see reference to function template instantiation '_OutIt std::copy<const std::unique_ptr<clang::driver::Job,std::default_delete<_Ty>>,std::unique_ptr<_Ty,std::default_delete<_Ty>>*>(_InIt,_InIt,_OutIt)' being compiled<o:p></o:p></p><p class=MsoNormal>        with<o:p></o:p></p><p class=MsoNormal>        [<o:p></o:p></p><p class=MsoNormal>            _OutIt=std::unique_ptr<clang::driver::Job,std::default_delete<clang::driver::Job>> *<o:p></o:p></p><p class=MsoNormal>,            _Ty=clang::driver::Job<o:p></o:p></p><p class=MsoNormal>,            _InIt=const std::unique_ptr<clang::driver::Job,std::default_delete<clang::driver::Job>> *<o:p></o:p></p><p class=MsoNormal>        ]<o:p></o:p></p><p class=MsoNormal>        ..\src\plugins\thirdParty\LLVM\include\llvm/ADT/SmallVector.h(761) : while compiling class template member function 'llvm::SmallVectorImpl<T> &llvm::SmallVectorImpl<T>::operator =(const llvm::SmallVectorImpl<T> &)'<o:p></o:p></p><p class=MsoNormal>        with<o:p></o:p></p><p class=MsoNormal>        [<o:p></o:p></p><p class=MsoNormal>            T=std::unique_ptr<clang::driver::Job,std::default_delete<clang::driver::Job>><o:p></o:p></p><p class=MsoNormal>        ]<o:p></o:p></p><p class=MsoNormal>        ..\src\plugins\thirdParty\LLVM\include\llvm/ADT/SmallVector.h(915) : see reference to function template instantiation 'llvm::SmallVectorImpl<T> &llvm::SmallVectorImpl<T>::operator =(const llvm::SmallVectorImpl<T> &)' being compiled<o:p></o:p></p><p class=MsoNormal>        with<o:p></o:p></p><p class=MsoNormal>        [<o:p></o:p></p><p class=MsoNormal>            T=std::unique_ptr<clang::driver::Job,std::default_delete<clang::driver::Job>><o:p></o:p></p><p class=MsoNormal>        ]<o:p></o:p></p><p class=MsoNormal>        ..\src\plugins\thirdParty\LLVM\include\llvm/ADT/SmallVector.h(890) : see reference to class template instantiation 'llvm::SmallVectorImpl<T>' being compiled<o:p></o:p></p><p class=MsoNormal>        with<o:p></o:p></p><p class=MsoNormal>        [<o:p></o:p></p><p class=MsoNormal>            T=std::unique_ptr<clang::driver::Job,std::default_delete<clang::driver::Job>><o:p></o:p></p><p class=MsoNormal>        ]<o:p></o:p></p><p class=MsoNormal>        ..\src\plugins\thirdParty\LLVM\tools\clang\include\clang/Driver/Job.h(169) : see reference to class template instantiation 'llvm::SmallVector<std::unique_ptr<clang::driver::Job,std::default_delete<_Ty>>,4>' being compiled<o:p></o:p></p><p class=MsoNormal>        with<o:p></o:p></p><p class=MsoNormal>        [<o:p></o:p></p><p class=MsoNormal>            _Ty=clang::driver::Job<o:p></o:p></p><p class=MsoNormal>        ]<o:p></o:p></p><p class=MsoNormal>---------------------------------------<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Now, the error message seems to make sense to me (after having had a quick look at the code), but I am clearly missing something since not only does it all work fine on Linux and OS X, but I was (obviously) also able to build LLVM+Clang the ‘normal’ on Windows. So, what am I missing exactly?...<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Cheers, Alan.<o:p></o:p></p></div></body></html>