3 // { dg-options "-fcompare-debug -fnon-call-exceptions -fno-tree-dominator-opts -O2 -Wno-return-type" }
5 template <typename T> struct A;
14 typedef typename A <T>::a a;
17 template <typename T, typename U>
18 bool operator != (B <T>, B <U>)
26 struct D { typedef C d; };
28 template <typename T, typename U> struct E
30 typedef typename U::template D <T>::d e;
32 template <typename T, typename U = C <T> >
36 typedef typename b::e e;
37 typedef typename e::c c;
47 template <typename T> T foo ();
72 for (F <H *>::i I = f.begin (), E = f.end (); I != E;)