1/* { dg-do compile { target c++11 } } */ 2void gg(); 3static __typeof(gg) __gthrw_gg __attribute__((__weakref__("gg"))); 4 5template<typename R,typename... A> 6struct data { 7 template<typename Y,typename X> 8 data(Y& y,R(X::*f)(A...)); 9}; 10 11template<typename Y,typename X,typename R,typename... A> 12data<R,A...> make_data(Y& y,R(X::*f)(A...)) { 13 return data<R,A...>(y,f); 14} 15 16void global(data<void>); 17 18struct test { 19 void bar() {} 20 void doit() { global(make_data(*this,&test::bar)); } 21}; 22 23