MS VS2008 build fails - X86AsmParser

Hi all,

Just tried to build from svn sources with Visual Studio 2008, mostly
OK but fails
building the X86AsmParser lib -

I see a few commits from yesterday that may have something to do with it, but no
idea what the solution is.

-David

See MSVC's beautiful and concise output below;

Compiling...
X86AsmParser.cpp
C:\dev\MSVisualStudio\VC\include\xutility(313) : error C2664: 'bool
`anonymous-namespace'::LessOpcode::operator ()(llvm::StringRef,const
`anonymous-namespace'::MatchEntry &)' : cannot convert parameter 1
from 'const `anonymous-namespace'::MatchEntry' to 'llvm::StringRef'
        No user-defined-conversion operator available that can perform
this conversion, or the operator cannot be called
        C:\dev\MSVisualStudio\VC\include\xutility(1699) : see
reference to function template instantiation 'bool
std::_Debug_lt_pred<_Pr,`anonymous-namespace'::MatchEntry,`anonymous-namespace'::MatchEntry>(_Pr,const
_Ty1 &,const _Ty2 &,const wchar_t *,unsigned int)' being compiled
        with
        [
            _Pr=`anonymous-namespace'::LessOpcode,
            _Ty1=`anonymous-namespace'::MatchEntry,
            _Ty2=`anonymous-namespace'::MatchEntry
        ]
        C:\dev\MSVisualStudio\VC\include\xutility(1709) : see
reference to function template instantiation 'void
std::_Debug_order_single2<_InIt,_Pr>(_FwdIt,_FwdIt,_Pr,bool,const
wchar_t *,unsigned int,std::forward_iterator_tag)' being compiled
        with
        [
            _InIt=const `anonymous-namespace'::MatchEntry *,
            _Pr=`anonymous-namespace'::LessOpcode,
            _FwdIt=const `anonymous-namespace'::MatchEntry *
        ]
        C:\dev\MSVisualStudio\VC\include\algorithm(2444) : see
reference to function template instantiation 'void
std::_Debug_order_single<_FwdIt,_Pr>(_InIt,_InIt,_Pr,bool,const
wchar_t *,unsigned int)' being compiled
        with
        [
            _FwdIt=const `anonymous-namespace'::MatchEntry *,
            _Pr=`anonymous-namespace'::LessOpcode,
            _InIt=const `anonymous-namespace'::MatchEntry *
        ]
        C:\dev\MSVisualStudio\VC\include\algorithm(2480) : see
reference to function template instantiation 'std::pair<_Ty1,_Ty2>
std::_Equal_range<_FwdIt,_Ty,std::iterator_traits<_Iter>::difference_type,_Pr>(_FwdIt,_FwdIt,const
_Ty &,_Pr,_Diff *)' being compiled
        with
        [
            _Ty1=const `anonymous-namespace'::MatchEntry *,
            _Ty2=const `anonymous-namespace'::MatchEntry *,
            _FwdIt=const `anonymous-namespace'::MatchEntry *,
            _Ty=llvm::StringRef,
            _Iter=const `anonymous-namespace'::MatchEntry *,
            _Pr=`anonymous-namespace'::LessOpcode,
            _Diff=std::iterator_traits::difference_type
        ]
        C:\dev\src\llvm\lib\Target\X86\X86GenAsmMatcher.inc(4583) :
see reference to function template instantiation 'std::pair<_Ty1,_Ty2>
std::equal_range(_FwdIt,_FwdIt,const _Ty &,_Pr)' being compiled
        with
        [
            _Ty1=const `anonymous-namespace'::MatchEntry *,
            _Ty2=const `anonymous-namespace'::MatchEntry *,
            _FwdIt=const `anonymous-namespace'::MatchEntry *,
            _Ty=llvm::StringRef,
            _Pr=`anonymous-namespace'::LessOpcode
        ]
C:\dev\MSVisualStudio\VC\include\xutility(315) : error C2664: 'bool
`anonymous-namespace'::LessOpcode::operator ()(llvm::StringRef,const
`anonymous-namespace'::MatchEntry &)' : cannot convert parameter 1
from 'const `anonymous-namespace'::MatchEntry' to 'llvm::StringRef'
        No user-defined-conversion operator available that can perform
this conversion, or the operator cannot be called

Hi all,

Just tried to build from svn sources with Visual Studio 2008, mostly
OK but fails
building the X86AsmParser lib -

I see a few commits from yesterday that may have something to do with it, but no
idea what the solution is.

Wow, that's a pretty terrible diagnostic. Does r113198 help?

-Chris

I got the latest and i can build.

Delete X86GenAsmMatcher.inc and build again.
The .inc files auto regeneration is broken using VS.

Updated svn and all ok now - thanks Chris!

-David