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