// PR c++/90047 // { dg-do compile { target c++11 } } template struct b { static constexpr int c = a; }; template struct aa; template struct d; template struct d : aa::i {}; template struct j; template struct j : b {}; struct m { typedef b<0> i; }; template struct n : m::i {}; template struct o; template struct aa { typedef p i; }; template using ac = typename o::i; // { dg-error "incomplete" } class q { template using ad = ac, int, int>::c>; template > q(k &); }; template struct s { s(r) { t; } template ::c> *> void t(); }; class I { friend char operator<<(char p1, I p2) { return p1 << p2; } q ag; }; int main() { s a = (char *)""; }