On 07/02/2012 09:47 PM, Jason Merrill wrote:
FAIL: g++.dg/template/friend13.C -std=c++11 (test for excess errors)
OK, the problem here is that we need to look up Outer::Inner in order to generate the declaration of foo<Outer>, and we can't check whether foo<Outer> is a friend of Outer until after we've completed the declaration. deduction_tsubst_fntype tries to deal with this by pushing into the scope of the function template, but that doesn't help if only a specialization (or, in friend15, partial instantiation) is a friend.
I'll work on this some more. Jason