1 // { dg-do compile { target c++17 } }
2 // { dg-options "-O2 -fno-exceptions" }
3 // { dg-additional-options "-Wno-return-type" }
5 template <class a> struct b { typedef a *c; };
7 template <typename a> class d {
9 typedef typename b<a>::c c;
25 o(int *, int *, int *, ac *);
30 virtual o *ae(int *, int *, int *, int *);
46 virtual void ag() { __builtin_unreachable(); }
48 template <typename = int> class an : o {
50 an(int *, int *, int *, int *, ac *);
54 q() : ac([]() -> e {}()) {}
55 o *ae(int *ap, int *aq, int *ar, int *as) { an(ap, aq, ar, as, this); }
57 template <typename at>
58 an<at>::an(int *, int *aq, int *ar, int *as, ac *au) : o(aq, ar, as, au) {