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