1 // PR c++/80534 2 // { dg-do compile { target c++11 } } 3 // { dg-options "" } 4 5 template <int> struct A { 6 struct type { 7 char __data[0]; 8 }; 9 }; 10 template <typename _Tp, typename = _Tp> struct B; 11 template <typename _Tp, typename _Dp> struct B<_Tp[], _Dp> { 12 _Tp _M_t; 13 using pointer = int; 14 void m_fn1() {} 15 }; 16 struct C { 17 using Storage = A<0>::type; 18 using StorageUniquePointer = B<Storage[]>; 19 void m_fn2() { storageUniquePointer_.m_fn1(); } 20 StorageUniquePointer storageUniquePointer_; 21 }; 22