1// { dg-do assemble  }
2//
3// Copyright (C) 2000 Free Software Foundation, Inc.
4// Contributed by Nathan Sidwell 5 Sept 2000 <nathan@codesourcery.com>
5
6// bug 73. We failed to compare explicit arguments for a TEMPLATE_ID_EXPR in a
7// TYPENAME_TYPE.
8
9struct Plus {
10  template <class T>
11  struct Sig { typedef int Third;};
12};
13
14
15template <class T>
16struct Ethel {
17  typedef int WrappedType;
18};
19
20struct Fred {
21
22  template <class Q, class LA, class LB>
23  Ethel<typename Q::template Sig<typename LA::WrappedType>::Third> baz ();
24
25
26  template <class Z, class A, class B>
27  Ethel<typename Z::template Sig<A>::Third>
28  foo ( const Z&, const Ethel<A>&, const Ethel<B>&) const;
29};
30
31int main() {
32  Fred f;
33  Ethel<int> e;
34  Plus p;
35
36  f.foo (p, e, e);
37
38  return 0;
39}
40