// { 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; }