Hi,<div><br></div><div>I think the latest gcc on FreeBSD is 4.6.something, and it also didn't work. But I only had that error in some 3 or 4 files (I think).<div><br></div><div>For XCode, I only tried XCode 4.something (on Snow Leopard and Lion), and it worked. But it always used clang to compile everything.</div>
<div><br></div><div>clang on FreeBSD worked fine, even if I only compiled the problematic files on clang (and compiled the rest with g++).</div><div><br></div><div>For compiling with XCode, you don't need any change, it just works (at least in the 4.x versions). Compiling with the makefiles and gcc will give you that error. If you use "make VERBOSE=1", you can see the commands issued and simply substitute clang++ for g++ in the erroneous commands(or you can configure the Makefiles to use clang).</div>
<div><br></div><div>Regards,</div><div><br></div><div>  Filip<br><br><div class="gmail_quote">On Tue, Sep 27, 2011 at 00:08,  <span dir="ltr"><<a href="mailto:dawn@burble.org">dawn@burble.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
I get this same error (and 17 others like it) compiling on Mac OS/X<br>
in XCode version 3.2.6.  gcc --version says 4.2.1 (I assume that's the<br>
gcc XCode is using but can't be sure).  uname -a says version is 10.8.0.<br>
<br>
I followed the instructions documented here <a href="http://lldb.llvm.org/build.html" target="_blank">http://lldb.llvm.org/build.html</a><br>
and started with a clean build.  This is building just lldb (no llvm/clang)<br>
inside the XCode IDE.<br>
<br>
What's the actual source change to fix this?  Can you please send a patch?<br>
<br>
Thanks in advance,<br>
    -Dawn<br>
<div><div></div><div class="h5"><br>
On Thu, Sep 22, 2011 at 04:29:41PM +0200, Enrico Granata wrote:<br>
> The reason for this error looks like an ambiguity in template resolution. In order to implement a "special" behavior for regex-based summaries, the Delete_Impl call uses template specialization:<br>
>     template<typename K, typename V><br>
>     bool<br>
>     Delete_Impl (ConstString type, Types<K,V>)<br>
> vs.<br>
>     template<typename V><br>
>     bool<br>
>     Delete_Impl (ConstString type, Types<lldb::RegularExpressionSP,V>)<br>
><br>
> Your compiler seems to be inferring correctly the template arguments, but has a doubt on whether it should pick the specialized function, or the general one replacing K = lldb::RegularExpressionSP<br>
><br>
> This is the first time I see a compiler being confused at this (LLDB is routinely compiled with clang and I guess several people compile it on Linux with GCC as well). This idiom is actually a quite common way to obtain one-function-specialization-inside-class-template.<br>

><br>
> In order to try and solve this, could you try to clean your LLDB build folder and try to build LLDB alone without the rest of LLVM, or using a different more recent version of GCC?<br>
><br>
> - Enrico Granata<br>
><br>
> On Sep 22, 2011, at 4:07 PM, arrowdodger wrote:<br>
><br>
> > Hello. I'm compiling trunk LLVM + trunk lldb on i386 FreeBSD 8 system (GCC 4.2.1) and see this error:<br>
> ><br>
> > /usr/code/llvm/tools/lldb/source/Commands/../../include/lldb/Core/FormatNavigator.h: In member function 'bool lldb_private::FormatNavigator<KeyType, ValueType>::Delete(lldb_private::ConstString) [with KeyType = lldb_private::SharingPtr<lldb_private::RegularExpression>, ValueType = lldb_private::SummaryFormat]':<br>

> > CommandObjectType.cpp:1064:   instantiated from here<br>
> > /usr/code/llvm/tools/lldb/source/Commands/../../include/lldb/Core/FormatNavigator.h:269: error: call of overloaded 'Delete_Impl(lldb_private::ConstString&, lldb_private::FormatNavigator<lldb_private::SharingPtr<lldb_private::RegularExpression>, lldb_private::SummaryFormat>::Types<lldb_private::SharingPtr<lldb_private::RegularExpression>, lldb_private::SummaryFormat>)' is ambiguous<br>

> > /usr/code/llvm/tools/lldb/source/Commands/../../include/lldb/Core/FormatNavigator.h:333: note: candidates are: bool lldb_private::FormatNavigator<KeyType, ValueType>::Delete_Impl(lldb_private::ConstString, lldb_private::FormatNavigator<KeyType, ValueType>::Types<K, V>) [with K = lldb_private::SharingPtr<lldb_private::RegularExpression>, V = lldb_private::SummaryFormat, KeyType = lldb_private::SharingPtr<lldb_private::RegularExpression>, ValueType = lldb_private::SummaryFormat]<br>

> > /usr/code/llvm/tools/lldb/source/Commands/../../include/lldb/Core/FormatNavigator.h:340: note:                 bool lldb_private::FormatNavigator<KeyType, ValueType>::Delete_Impl(lldb_private::ConstString, lldb_private::FormatNavigator<KeyType, ValueType>::Types<lldb_private::SharingPtr<lldb_private::RegularExpression>, V>) [with V = lldb_private::SummaryFormat, KeyType = lldb_private::SharingPtr<lldb_private::RegularExpression>, ValueType = lldb_private::SummaryFormat]<br>

> ><br>
> > _______________________________________________<br>
> > lldb-dev mailing list<br>
> > <a href="mailto:lldb-dev@cs.uiuc.edu">lldb-dev@cs.uiuc.edu</a><br>
> > <a href="http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev</a><br>
><br>
<br>
> _______________________________________________<br>
> lldb-dev mailing list<br>
> <a href="mailto:lldb-dev@cs.uiuc.edu">lldb-dev@cs.uiuc.edu</a><br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev</a><br>
<br>
_______________________________________________<br>
lldb-dev mailing list<br>
<a href="mailto:lldb-dev@cs.uiuc.edu">lldb-dev@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev</a><br>
</div></div></blockquote></div><br></div></div>