<html><head><meta http-equiv="Content-Type" content="text/html charset=iso-8859-1"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Mar 12, 2013, at 2:30 PM, Stephen Lin <<a href="mailto:swlin@post.harvard.edu">swlin@post.harvard.edu</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr">Hi,<div><br></div><div>This is a bug fix for <span style="font-family:arial,sans-serif;font-size:13px">LLVM Bugzilla bug #15485 (</span><a href="http://llvm.org/bugs/show_bug.cgi?id=15485">http://llvm.org/bugs/show_bug.cgi?id=15485</a>)</div>
<div><br></div><div style="">Basically, llvm_unreachable is currently hit because CheckOverload assumes that a new function declaration in record scope should trigger member function hiding rules, but this is not the case for "friend" declarations.</div>
<div style=""><br></div><div style=""><div>I believe the code causing the issue is illegal (the friend declaration should not friend the function brought into scope by the using) and should result in an error; this is what happens after the patch without any extra effort (although the error could possibly be improved?).</div></div></div></blockquote><div><br></div>I agree that the error could be improved.  Would you mind tackling that if it's straightforward?  It's SemaDecl.cpp:2279.  You might need to propagate down isFriend.</div><div><br></div><div>John.</div></body></html>