Hi,<div><br></div><div>The versions of gcc that are available on FreeBSD (even on the 9.0 beta, though I haven't tested them all) will yield that error. clang compiles it fine, though. What I did was use clang to compile that file. You can also compile lldb using only clang.</div>
<div><br></div><div>If you have any more problems, please tell. But I remind you that the FreeBSD port is still very incomplete and can't be used for debugging, yet.<br><br><div>Regards,</div><div><br></div><div>  Filipe</div>
<div><br><div class="gmail_quote">On Thu, Sep 22, 2011 at 07:29, Enrico Granata <span dir="ltr"><<a href="mailto:granata.enrico@gmail.com">granata.enrico@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div style="word-wrap:break-word"><div>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:</div>
<div><div style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;color:rgb(187, 35, 160)"><span style="color:#000000">    </span>template<span style="color:#000000"><</span>typename<span style="color:#000000"> K, </span>typename<span style="color:#000000"> V></span></div>
<div style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px">    <span style="color:#bb23a0">bool</span></div><div style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px">    Delete_Impl (ConstString type, Types<K,V>)</div>
</div><div>vs.</div><div><div style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;color:rgb(187, 35, 160)"><span style="color:#000000">    </span>template<span style="color:#000000"><</span>typename<span style="color:#000000"> V></span></div>
<div style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px">    <span style="color:#bb23a0">bool</span></div><div style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px">    Delete_Impl (ConstString type, Types<lldb::RegularExpressionSP,V>)</div>
</div><div><br></div><div>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</div>
<div><br></div><div>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.</div>
<div><br></div><div>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?</div><div><br></div>
<div>- <i>Enrico Granata</i></div><br><div><div><div></div><div class="h5"><div>On Sep 22, 2011, at 4:07 PM, arrowdodger wrote:</div><br></div></div><blockquote type="cite"><div><div></div><div class="h5">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></div></div>
_______________________________________________<br>lldb-dev mailing list<br><a href="mailto:lldb-dev@cs.uiuc.edu" target="_blank">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>
</blockquote></div><br></div><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></blockquote></div><br></div></div>