<html 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=utf-8">
<meta name="Title" content="">
<meta name="Keywords" content="">
<meta name="Generator" content="Microsoft Word 15 (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:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-reply;
        font-family:Calibri;
        color:windowtext;}
span.msoIns
        {mso-style-type:export-only;
        mso-style-name:"";
        text-decoration:underline;
        color:teal;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style>
</head>
<body bgcolor="white" lang="EN-US" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri">We discussed this on IRC. As far as I know, Visual Studio 2017 isn't fully supported yet (it's being worked on), but VS 2015 should work.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri"><o:p> </o:p></span></p>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-family:Calibri;color:black">From: </span>
</b><span style="font-family:Calibri;color:black">llvm-dev <llvm-dev-bounces@lists.llvm.org> on behalf of Andrew Kelley via llvm-dev <llvm-dev@lists.llvm.org><br>
<b>Reply-To: </b>Andrew Kelley <superjoe30@gmail.com><br>
<b>Date: </b>Monday, April 10, 2017 at 1:34 PM<br>
<b>To: </b>LLVM Dev <llvm-dev@lists.llvm.org><br>
<b>Subject: </b>[llvm-dev] clang build failures using Visual Studio<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<div>
<p class="MsoNormal">Anyone run into this before?<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">I'm trying to get a Windows native build using Visual Studio of LLVM, Clang, and LLD 4.0.0. So far LLVM built successfully, but I'm getting these cryptic error messages when building Clang:<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">  Microsoft (R) Build Engine version 15.1.1012.6693<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">  Copyright (C) Microsoft Corporation. All rights reserved.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">  <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">    ClangDiagnosticsEmitter.cpp<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">c:\program files (x86)\microsoft visual studio\2017\community\VC\Tools\MSVC\14.10.25017\include\xmemory(126): error C2678: binary '*': no operator found which takes a left-hand operand of type 'const llvm::detail::DenseSetImpl<ValueT,llvm::DenseMap<ValueT,llvm::detail::DenseSetEmpty,ValueInfoT,llvm::detail::DenseSetPair<ValueT>>,ValueInfoT>::Iterator'
 (or there is no acceptable conversion) <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            with<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            [<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                ValueT=const llvm::Record *,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                ValueInfoT=llvm::DenseMapInfo<const llvm::Record *><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            ]<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">    C:\deps\llvm-4.0.0\include\llvm/ADT/DenseSet.h(106): note: could be 'const llvm::Record *&llvm::detail::DenseSetImpl<ValueT,llvm::DenseMap<ValueT,llvm::detail::DenseSetEmpty,ValueInfoT,llvm::detail::DenseSetPair<ValueT>>,ValueInfoT>::Iterator::operator
 *(void)'<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            with<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            [<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                ValueT=const llvm::Record *,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                ValueInfoT=llvm::DenseMapInfo<const llvm::Record *><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            ]<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">    c:\program files (x86)\microsoft visual studio\2017\community\VC\Tools\MSVC\14.10.25017\include\xmemory(126): note: while trying to match the argument list '(const llvm::detail::DenseSetImpl<ValueT,llvm::DenseMap<ValueT,llvm::detail::DenseSetEmpty,ValueInfoT,llvm::detail::DenseSetPair<ValueT>>,ValueInfoT>::Iterator)'<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            with<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            [<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                ValueT=const llvm::Record *,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                ValueInfoT=llvm::DenseMapInfo<const llvm::Record *><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            ]<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">    c:\program files (x86)\microsoft visual studio\2017\community\VC\Tools\MSVC\14.10.25017\include\vector(1859): note: see reference to function template instantiation '_FwdIt **std::_Uninitialized_copy<_Iter,const llvm::Record**,std::allocator<_Ty>>(_InIt,_InIt,_FwdIt,std::_Wrap_alloc<std::allocator<_Ty>>
 &)' being compiled<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            with<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            [<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                _FwdIt=const llvm::Record **,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                _Iter=llvm::detail::DenseSetImpl<const llvm::Record *,llvm::DenseMap<const llvm::Record *,llvm::detail::DenseSetEmpty,llvm::DenseMapInfo<const llvm::Record *>,llvm::detail::DenseSetPair<const llvm::Record *>>,llvm::DenseMapInfo<const
 llvm::Record *>>::Iterator,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                _Ty=const llvm::Record *,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                _InIt=llvm::detail::DenseSetImpl<const llvm::Record *,llvm::DenseMap<const llvm::Record *,llvm::detail::DenseSetEmpty,llvm::DenseMapInfo<const llvm::Record *>,llvm::detail::DenseSetPair<const llvm::Record *>>,llvm::DenseMapInfo<const
 llvm::Record *>>::Iterator<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            ]<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">    c:\program files (x86)\microsoft visual studio\2017\community\VC\Tools\MSVC\14.10.25017\include\vector(779): note: see reference to function template instantiation 'const llvm::Record **std::vector<const llvm::Record *,std::allocator<_Ty>>::_Ucopy<_Iter>(_Iter,_Iter,const
 llvm::Record **)' being compiled<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            with<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            [<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                _Ty=const llvm::Record *,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                _Iter=llvm::detail::DenseSetImpl<const llvm::Record *,llvm::DenseMap<const llvm::Record *,llvm::detail::DenseSetEmpty,llvm::DenseMapInfo<const llvm::Record *>,llvm::detail::DenseSetPair<const llvm::Record *>>,llvm::DenseMapInfo<const
 llvm::Record *>>::Iterator<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            ]<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">    c:\program files (x86)\microsoft visual studio\2017\community\VC\Tools\MSVC\14.10.25017\include\vector(779): note: see reference to function template instantiation 'const llvm::Record **std::vector<const llvm::Record *,std::allocator<_Ty>>::_Ucopy<_Iter>(_Iter,_Iter,const
 llvm::Record **)' being compiled<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            with<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            [<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                _Ty=const llvm::Record *,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                _Iter=llvm::detail::DenseSetImpl<const llvm::Record *,llvm::DenseMap<const llvm::Record *,llvm::detail::DenseSetEmpty,llvm::DenseMapInfo<const llvm::Record *>,llvm::detail::DenseSetPair<const llvm::Record *>>,llvm::DenseMapInfo<const
 llvm::Record *>>::Iterator<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            ]<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">    c:\program files (x86)\microsoft visual studio\2017\community\VC\Tools\MSVC\14.10.25017\include\vector(794): note: see reference to function template instantiation 'void std::vector<const llvm::Record *,std::allocator<_Ty>>::_Range_construct_or_tidy<_Iter>(_Iter,_Iter,std::forward_iterator_tag)'
 being compiled<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            with<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            [<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                _Ty=const llvm::Record *,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                _Iter=llvm::detail::DenseSetImpl<const llvm::Record *,llvm::DenseMap<const llvm::Record *,llvm::detail::DenseSetEmpty,llvm::DenseMapInfo<const llvm::Record *>,llvm::detail::DenseSetPair<const llvm::Record *>>,llvm::DenseMapInfo<const
 llvm::Record *>>::Iterator<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            ]<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">    c:\program files (x86)\microsoft visual studio\2017\community\VC\Tools\MSVC\14.10.25017\include\vector(794): note: see reference to function template instantiation 'void std::vector<const llvm::Record *,std::allocator<_Ty>>::_Range_construct_or_tidy<_Iter>(_Iter,_Iter,std::forward_iterator_tag)'
 being compiled<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            with<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            [<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                _Ty=const llvm::Record *,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                _Iter=llvm::detail::DenseSetImpl<const llvm::Record *,llvm::DenseMap<const llvm::Record *,llvm::detail::DenseSetEmpty,llvm::DenseMapInfo<const llvm::Record *>,llvm::detail::DenseSetPair<const llvm::Record *>>,llvm::DenseMapInfo<const
 llvm::Record *>>::Iterator<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            ]<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">    C:\Users\andy\Downloads\cfe-4.0.0.src\utils\TableGen\ClangDiagnosticsEmitter.cpp(1257): note: see reference to function template instantiation 'std::vector<const llvm::Record *,std::allocator<_Ty>>::vector<llvm::detail::DenseSetImpl<ValueT,llvm::DenseMap<ValueT,llvm::detail::DenseSetEmpty,ValueInfoT,llvm::detail::DenseSetPair<ValueT>>,ValueInfoT>::Iterator,void>(_Iter,_Iter,const
 std::allocator<_Ty> &)' being compiled<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            with<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            [<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                _Ty=const llvm::Record *,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                ValueT=const llvm::Record *,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                ValueInfoT=llvm::DenseMapInfo<const llvm::Record *>,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                _Iter=llvm::detail::DenseSetImpl<const llvm::Record *,llvm::DenseMap<const llvm::Record *,llvm::detail::DenseSetEmpty,llvm::DenseMapInfo<const llvm::Record *>,llvm::detail::DenseSetPair<const llvm::Record *>>,llvm::DenseMapInfo<const
 llvm::Record *>>::Iterator<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            ]<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">    C:\Users\andy\Downloads\cfe-4.0.0.src\utils\TableGen\ClangDiagnosticsEmitter.cpp(1256): note: see reference to function template instantiation 'std::vector<const llvm::Record *,std::allocator<_Ty>>::vector<llvm::detail::DenseSetImpl<ValueT,llvm::DenseMap<ValueT,llvm::detail::DenseSetEmpty,ValueInfoT,llvm::detail::DenseSetPair<ValueT>>,ValueInfoT>::Iterator,void>(_Iter,_Iter,const
 std::allocator<_Ty> &)' being compiled<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            with<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            [<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                _Ty=const llvm::Record *,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                ValueT=const llvm::Record *,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                ValueInfoT=llvm::DenseMapInfo<const llvm::Record *>,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                _Iter=llvm::detail::DenseSetImpl<const llvm::Record *,llvm::DenseMap<const llvm::Record *,llvm::detail::DenseSetEmpty,llvm::DenseMapInfo<const llvm::Record *>,llvm::detail::DenseSetPair<const llvm::Record *>>,llvm::DenseMapInfo<const
 llvm::Record *>>::Iterator<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            ]<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">c:\program files (x86)\microsoft visual studio\2017\community\VC\Tools\MSVC\14.10.25017\include\xmemory(126): error C2100: illegal indirection <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">c:\program files (x86)\microsoft visual studio\2017\community\VC\Tools\MSVC\14.10.25017\include\xmemory(126): error C2062: type 'unknown-type' unexpected <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">    gtest.vcxproj -> C:\Users\andy\AppData\Local\CMakeBuild\12c242dd-f206-c033-afac-74b8717657f2\build\x86-Debug\Debug\lib\gtest.lib<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">    gtest_main.vcxproj -> C:\Users\andy\AppData\Local\CMakeBuild\12c242dd-f206-c033-afac-74b8717657f2\build\x86-Debug\Debug\lib\gtest_main.lib<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">    Generating ../../bin/scan-build.bat<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">    Generating ../../libexec/ccc-analyzer.bat<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">    Generating ../../libexec/c++-analyzer.bat<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">    Generating ../../share/man/man1/scan-build.1<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">    Generating ../../share/scan-build/scanview.css<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">    Generating ../../share/scan-build/sorttable.js<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">    Generating ../../bin/scan-view<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">    Generating ../../share/scan-view/ScanView.py<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">    Generating ../../share/scan-view/Reporter.py<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">    Generating ../../share/scan-view/startfile.py<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">    Generating ../../share/scan-view/FileRadar.scpt<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">    Generating ../../share/scan-view/GetRadarVersion.scpt<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">    Generating ../../share/scan-view/bugcatcher.ico<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Build failed.<o:p></o:p></p>
</div>
</div>
</div>
</body>
</html>