diff options
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.pt/parms2.C')
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.pt/parms2.C | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/parms2.C b/gcc/testsuite/g++.old-deja/g++.pt/parms2.C new file mode 100644 index 000000000..673427e6c --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.pt/parms2.C @@ -0,0 +1,39 @@ +// { dg-do assemble } +// +// Copyright (C) 2000 Free Software Foundation, Inc. +// Contributed by Nathan Sidwell 5 Sept 2000 <nathan@codesourcery.com> + +// bug 73. We failed to compare explicit arguments for a TEMPLATE_ID_EXPR in a +// TYPENAME_TYPE. + +struct Plus { + template <class T> + struct Sig { typedef int Third;}; +}; + + +template <class T> +struct Ethel { + typedef int WrappedType; +}; + +struct Fred { + + template <class Q, class LA, class LB> + Ethel<typename Q::template Sig<typename LA::WrappedType>::Third> baz (); + + + template <class Z, class A, class B> + Ethel<typename Z::template Sig<A>::Third> + foo ( const Z&, const Ethel<A>&, const Ethel<B>&) const; +}; + +int main() { + Fred f; + Ethel<int> e; + Plus p; + + f.foo (p, e, e); + + return 0; +} |