1 // PR c++/87366
2 // { dg-do compile { target c++11 } }
3 
4 struct A {};
5 struct B {};
6 
7 template <typename T> struct wrapper {};
8 
9 template <typename> struct enable_if_A { };
10 template<> struct enable_if_A<A> { using type = void; };
11 
12 template <typename T, typename = typename enable_if_A<T>::type> using ok_t = T;
13 
14 template <typename T> void not_even_called(wrapper<const ok_t<T>&> a);
15 
16 template <typename T> int called(wrapper<const T&> a);
17 
18 void test(wrapper<const B&>& val)
19 {
20     called(val);
21 }
22