------- Comment #18 from jason at gcc dot gnu dot org 2008-02-19 21:21 ------- The problem comes when we deal with templates from non-template code. In this case, we are substituting some parameters but not all into a function template declaration, so we end up building up new typename types with dependent scopes.
Changing make_typename_type to call uses_template_parms fixes the testcase, but it seems that other similar issues may be hiding, and it may be better to bump processing_template_decl at a higher level, perhaps resolve_overloaded_unification. But that may also leave other similar problems elsewhere. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34950