Here's an updated patch: no need to propagate any extra info. The new error message is "cannot befriend target of using declaration", which works for attempts to befriend both namespace and record level using declarations of functions and function templates.
Stephen On Wed, Mar 20, 2013 at 1:57 AM, John McCall <[email protected]> wrote: > > On Mar 12, 2013, at 2:30 PM, Stephen Lin <[email protected]> wrote: > > Hi, > > This is a bug fix for LLVM Bugzilla bug #15485 > (http://llvm.org/bugs/show_bug.cgi?id=15485) > > 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. > > 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?). > > > 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. > > John.
friend-using-15485-2.patch
Description: Binary data
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
