1 // PR c++/69481 2 // { dg-do compile { target c++11 } } 3 4 // ICE with canonical type verification 5 6 template <typename> struct Traits; 7 8 template <typename T> 9 struct Bob { 10 using Loc = Traits<T>; 11 using typename Loc::Thing; 12 13 Thing Foo (); 14 }; 15 16 template <class V> struct tt 17 { 18 using ut = tt<V>; 19 ut Bob (); 20 }; 21 22 template <class V> Bob()23tt<V> tt<V>::Bob () 24 { 25 return tt(); 26 } 27