<div dir="ltr">The core issue aside, one of the shortcomings of our tracker is that llvmbugs@ is only emailed on status changes.  If you update a bug with new information months after filing it, nobody gets notified unless they are on the cc list.  Often what happens is users end up talking to themselves if the code owner doesn't actively cc themself on the bug.  I don't think everyone on llvmbugs wants mail on every bug update, but the current situation isn't good.</div>
<div class="gmail_extra"><br><br><div class="gmail_quote">On Sat, Mar 1, 2014 at 10:25 PM, Francisco Lopes <span dir="ltr"><<a href="mailto:francisco.mailing.lists@oblita.com" target="_blank">francisco.mailing.lists@oblita.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi, it has been more than a year I have reported bug 13699, since no progress<br>has been made I have setup a debugging version of clang, right now I'm digging<br>
the sources and have inferred that <br><br>
clang::Decl::setObjectOfFriendDecl   DeclBase.h:887   called at<br>clang::TemplateDeclInstantiator::VisitClassTemplateDecl   SemaTemplateInstantiateDecl.cpp:941<br><br>  Inst->setObjectOfFriendDecl();<br>  // TODO: do we want to track the instantiation progeny of this<br>

  // friend target decl?<br><br>later affects<br><br>ResultBuilder::isInterestingDecl   SemaCodeComplete.cpp:496<br><br>  // Friend declarations and declarations introduced due to friends are never<br>  // added as results.<br>

  if (IDNS & (Decl::IDNS_OrdinaryFriend | Decl::IDNS_TagFriend))<br>    return false;<br><br>Given this gist <a href="https://gist.github.com/oblitum/9302588" target="_blank">https://gist.github.com/oblitum/9302588</a>, executing<br>

<br>  clang-hacking file.cpp 11 12<br><br>provides completion for the boost::shared_ptr class template but<br><br>  clang-hacking file.cpp 12 12<br><br>will not. This happens because IDNS of the class template is changed because of<br>

the parsing of the first declaration coming at line 11, such parsing ends up<br>instantiating the friend class template, and changing its IDNS. After this first<br>change, no more completions for such type happens.<br><br>

On 13699 there're two small patterns that bring this issue up. Also, as such<br>patterns are not very uncommon, it affects for-range loops over libc++<br>containers, boost classes and annoys some programmers.<br><br>
This is all on revision 202241.<br>
<br>I'm still not a clang developer (still not), all I know comes from this<br>debugging session, so I think there can be more wise patches than mine now.<br><br>Regards,<br>Francisco Lopes<br></div>
<br>_______________________________________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@cs.uiuc.edu">cfe-dev@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a><br>
<br></blockquote></div><br></div>