From: Kriang Lerdsuwanakij Date: Fri, 2 Nov 2001 14:58:55 +0000 (+0000) Subject: * pt.c (unify): Handle SCOPE_REF. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=fccef71efb674ca2f33a626fe5cd588786e7ac00;p=gcc.git * pt.c (unify): Handle SCOPE_REF. From-SVN: r46715 --- diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 49e771e6202..8016de51c5f 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,7 @@ +2001-11-02 Kriang Lerdsuwanakij + + * pt.c (unify): Handle SCOPE_REF. + 2001-11-01 Jakub Jelinek * tree.c (cp_copy_res_decl_for_inlining): Adjust diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index a99b80d32ec..a2971f9ba26 100644 --- a/gcc/cp/pt.c +++ b/gcc/cp/pt.c @@ -8566,6 +8566,7 @@ unify (tparms, targs, parm, arg, strict) switch (TREE_CODE (parm)) { case TYPENAME_TYPE: + case SCOPE_REF: case UNBOUND_CLASS_TEMPLATE: /* In a type which contains a nested-name-specifier, template argument values cannot be deduced for template parameters used diff --git a/gcc/testsuite/g++.dg/template/unify3.C b/gcc/testsuite/g++.dg/template/unify3.C new file mode 100644 index 00000000000..190a0cb95f7 --- /dev/null +++ b/gcc/testsuite/g++.dg/template/unify3.C @@ -0,0 +1,11 @@ +// Test unifying SCOPE_REF. +// Origin: Marc Duflot +// { dg-do compile } + +template class A {}; +template class R {}; + +template struct Trait { enum {m = n}; }; + +template R::m> f(A); +template <> R<1> f(A<1>) {return R<1>();}