1 // PR c++/52422
2 // { dg-do compile { target c++11 } }
3 
4 template<class T>
5 struct add_rval_ref
6 {
7   typedef T&& type;
8 };
9 
10 template<>
11 struct add_rval_ref<void>
12 {
13   typedef void type;
14 };
15 
16 template<class T>
17 typename add_rval_ref<T>::type create();
18 
19 template<class T, class U,
20   class = decltype( (create<T>().*create<U>())() )
21 >
22 auto f(int) -> char(&)[1];
23 
24 template<class, class>
25 auto f(...) -> char(&)[2];
26 
27 static_assert(sizeof(f<void, void>(0)) != 1, "");
28