<html><head/><body><html><head></head><body>Hi Benjamin,<br>
<br>
Excellent! I confirm that this fixed the build. Thanks a lot!<br>
<br>
Cheers, Axel<br><br><div class="gmail_quote">Benjamin Kramer <benny.kra@gmail.com> wrote:<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<pre style="white-space: pre-wrap; word-wrap:break-word; font-family: sans-serif; margin-top: 0px"><br />On 17.09.2012, at 17:01, Axel Naumann <Axel.Naumann@cern.ch> wrote:<br /><br /><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #729fcf; padding-left: 1ex;">Hi,<br /><br /><<a href="http://llvm.org/docs/GettingStartedVS.html&gt">http://llvm.org/docs/GettingStartedVS.html&gt</a>; says I should expect<br />lib/Transforms/Scalar/SROA.cpp to build with MS Visual Studio 2008<br />(version number 15.00.30729.01) + CMake in Debug. But it doesn't for me:<br /><br />94>c:\Program Files (x86)\Microsoft Visual Studio<br />9.0\VC\include\xutility(285) : error C2784: 'bool std::operator <(const<br />std::_Tree<_Traits> &,const std::_Tree<_Traits> &)' : could not deduce<br />template argument for 'const std::_Tree<_Traits> &' from 'const uint64_t'<br /><br />94>        c:\Program Files (x86)\Microso!
 ft
Visual Studio<br />9.0\VC\include\xtree(1466) : see declaration of 'std::operator <'<br /><br />94>        c:\Program Files (x86)\Microsoft Visual Studio<br />9.0\VC\include\algorithm(2264) : see reference to function template<br />instantiation 'bool std::_Debug_lt<T,_Ty>(_Ty1 &,const _Ty2 &,const<br />wchar_t *,unsigned int)' being compiled<br /><br />94>        with<br /><br />94>        [<br /><br />94>            T=`anonymous-namespace'::AllocaPartitioning::Partition,<br /><br />94>            _Ty=uint64_t,<br /><br />94>            _Ty1=`anonymous-namespace'::AllocaPartitioning::Partition,<br /><br />94>            _Ty2=uint64_t<br /><br />94>        ]<br /><br />94>        c:\Program Files (x86)\Microsoft Visual Studio<br />9.0\VC\include\algorithm(2276) : see reference to function template<br />instantiation '_FwdIt<br
/>std::_Lower_bound<`anonymous-namespace'::AllocaPartitioning::Partition*,_Ty,std::iterator_traits<_Iter>::difference_type>(_FwdIt,_FwdIt,const<br />_Ty &,_Diff *)' being compiled<br /><br />94>        with<br /><br />94>        [<br /><br />94><br />_FwdIt=`anonymous-namespace'::AllocaPartitioning::Partition *,<br /><br />94>            _Ty=uint64_t,<br /><br />94>            _Iter=`anonymous-namespace'::AllocaPartitioning::Partition *,<br /><br />94><br />_Diff=std::iterator_traits<`anonymous-namespace'::AllocaPartitioning::Partition<br />*>::difference_type<br /><br />94>        ]<br /><br />94><br />..\..\..\..\cling-src-r45920\lib\Transforms\Scalar\SROA.cpp(790) : see<br />reference to function template instantiation '_FwdIt<br />std::lower_bound<`anonymous-namespace'::AllocaPartitioning::iterator,uint64_t>(_FwdIt,_FwdIt,const<br />_Ty &)' being compiled<br /><br />94>        with<br /><br />94>        [<br /!
 ><br
/>94>            _FwdIt=`anonymous-namespace'::AllocaPartitioning::iterator,<br /><br />94>            _Ty=uint64_t<br /><br />94>        ]<br /><br />94>c:\Program Files (x86)\Microsoft Visual Studio<br />9.0\VC\include\xutility(285) : error C2784: 'bool std::operator <(const<br />std::list<_Ty,_Ax> &,const std::list<_Ty,_Ax> &)' : could not deduce<br />template argument for 'const std::list<_Ty,_Ax> &' from 'const uint64_t'<br /><br />94>        c:\Program Files (x86)\Microsoft Visual Studio<br />9.0\VC\include\list(1310) : see declaration of 'std::operator <'<br /><br />94>c:\Program Files (x86)\Microsoft Visual Studio<br />9.0\VC\include\xutility(285) : error C2784: 'bool std::operator <(const<br />std::vector<_Ty,_Alloc> &,const std::vector<_Ty,_Alloc> &)' : could not<br />deduce template argument for 'const std::vector<_Ty,_Alloc> &' from<br />'const uint64_t'<br /><br />94>       
c:\Program Files (x86)\Microsoft Visual Studio<br />9.0\VC\include\vector(1322) : see declaration of 'std::operator <'<br /><br />94>c:\Program Files (x86)\Microsoft Visual Studio<br />9.0\VC\include\xutility(285) : error C2784: 'bool std::operator <(const<br />std::basic_string<_Elem,_Traits,_Alloc> &,const _Elem *)' : could not<br />deduce template argument for 'const<br />std::basic_string<_Elem,_Traits,_Alloc> &' from 'const uint64_t'<br /><br />94>        c:\Program Files (x86)\Microsoft Visual Studio<br />9.0\VC\include\string(150) : see declaration of 'std::operator <'<br /><br />94>c:\Program Files (x86)\Microsoft Visual Studio<br />9.0\VC\include\xutility(285) : error C2784: 'bool std::operator <(const<br />_Elem *,const std::basic_string<_Elem,_Traits,_Alloc> &)' : could not<br />deduce template argument for 'const _Elem *' from 'const uint64_t'<br /><br />94>        c:\Program Files (x86)\Microsoft Visual Studi!
 o<br
/>9.0\VC\include\string(140) : see declaration of 'std::operator <'<br /><br />94>c:\Program Files (x86)\Microsoft Visual Studio<br />9.0\VC\include\xutility(285) : error C2784: 'bool std::operator <(const<br />std::basic_string<_Elem,_Traits,_Alloc> &,const<br />std::basic_string<_Elem,_Traits,_Alloc> &)' : could not deduce template<br />argument for 'const std::basic_string<_Elem,_Traits,_Alloc> &' from<br />'const uint64_t'<br /><br />94>        c:\Program Files (x86)\Microsoft Visual Studio<br />9.0\VC\include\string(130) : see declaration of 'std::operator <'<br /><br />94>c:\Program Files (x86)\Microsoft Visual Studio<br />9.0\VC\include\xutility(285) : error C2784: 'bool std::operator <(const<br />std::reverse_iterator<_RanIt> &,const std::reverse_iterator<_RanIt2> &)'<br />: could not deduce template argument for 'const<br />std::reverse_iterator<_RanIt> &' from 'const uint64_t'<br /><br
/>94>        c:\Program Files (x86)\Microsoft Visual Studio<br />9.0\VC\include\xutility(2262) : see declaration of 'std::operator <'<br /><br />94>c:\Program Files (x86)\Microsoft Visual Studio<br />9.0\VC\include\xutility(285) : error C2784: 'bool std::operator <(const<br />std::_Revranit<_RanIt,_Base> &,const std::_Revranit<_RanIt2,_Base2> &)'<br />: could not deduce template argument for 'const<br />std::_Revranit<_RanIt,_Base> &' from 'const uint64_t'<br /><br />94>        c:\Program Files (x86)\Microsoft Visual Studio<br />9.0\VC\include\xutility(2072) : see declaration of 'std::operator <'<br /><br />94>c:\Program Files (x86)\Microsoft Visual Studio<br />9.0\VC\include\xutility(285) : error C2784: 'bool std::operator <(const<br />std::pair<_Ty1,_Ty2> &,const std::pair<_Ty1,_Ty2> &)' : could not deduce<br />template argument for 'const std::pair<_Ty1,_Ty2> &' from 'const uint64_t'<br />!
 <br
/>94>        c:\Program Files (x86)\Microsoft Visual Studio<br />9.0\VC\include\utility(99) : see declaration of 'std::operator <'<br /><br />94>c:\Program Files (x86)\Microsoft Visual Studio<br />9.0\VC\include\xutility(285) : error C2677: binary '<' : no global<br />operator found which takes type<br />'`anonymous-namespace'::AllocaPartitioning::Partition' (or there is no<br />acceptable conversion)<br /><br />I'm surprised nobody else is seeing it? If that is actually not<br />surprising then I'll try to come up with a patch...</blockquote><br />MSVC 2008 is really picky about lower_bound, this was changed in later versions of Microsoft's compiler. Most people have migrated to VC 2010, so the breakage wasn't noticed. I pushed a fix in r164035, but I couldn't verify that it works, I don't have a copy of visual studio.<br /><br />- Ben<br /><br /><br /></pre></blockquote></div></body></html></body></html>