diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.pt/parms2.C | 39 |
2 files changed, 43 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index a80da39..0740a28 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,9 @@ 2000-09-06 Nathan Sidwell <nathan@codesourcery.com> + * g++.old-deja/g++.pt/parms2.C: New test. + +2000-09-06 Nathan Sidwell <nathan@codesourcery.com> + * g++.old-deja/g++.pt/crash58.C: New test. 2000-09-06 Greg McGary <greg@mcgary.org> 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 0000000..856d36c --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.pt/parms2.C @@ -0,0 +1,39 @@ +// Build don't link: +// +// 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::Sig<typename LA::WrappedType>::Third> baz (); + + + template <class Z, class A, class B> + Ethel<typename Z::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; +} |