Ian Lance Taylor wrote:
> Mark Mitchell <[EMAIL PROTECTED]> writes:
> 
> 
>>Let's start with the simpler friend10.C.  There, the "operator bool()"
>>conversion operator is irrelevant, as far as I can see.  However, we
>>*should* still call the friend operator<<, because argument-dependent
>>lookup is explicitly defined that way.
>>
>>So, in that particular form of lookup, you should ignore
>>DECL_ANTICIPATED -- but only if the friend was declared in one of the
>>classes that's in the set of special classes.  I guess, without changing
>>our representation, you get to go through each of the DECL_ANTICIPATED
>>friends, and then call is_friend (fn, c) for each c in the set of
>>argument-dependent classes.  That's wort-case quadratic, and we could
>>make it cleverer, but I'd start with that.
> 
> 
> Thanks for the analysis.
> 
> Naturally, addressing that issue caused another problem, namely
> g++.old-deja/g++.jason/scoping15.C. 

That case is not valid C++.  Probably, you should add -ffriend-inject to
the test case; that will test that the new switch does what it should!

-- 
Mark Mitchell
CodeSourcery, LLC
[EMAIL PROTECTED]
(916) 791-8304

Reply via email to