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