------- Additional Comments From mmitchel at gcc dot gnu dot org 2005-02-10 04:35 ------- I agree that the C++ recursion is very ugly. The last time I looked at this, I concluded it would be hard to fix, but now I'm not entirely certain that's true. The problem comes from the call to push_access_scope in get_mostly_instantiated_function_type. There's certainly no need to do access control in this context; we could just save and restore flag_access_control. The comment says "make sure that we can see identifiers" -- but I don't think that makes any sense.
If that doesn't work, I think that rth's proposed fix is a reasonable work-around. I'd be worried, though, that in the process of compiling the function, after this point, we might need to mangle some other function (say, one called from this one), and run into the same problem because of that. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19634