1 // PR c++/79488 2 // { dg-do compile { target c++11 } } 3 4 int f(); 5 static int g __attribute__((__weakref__("f"))); 6 7 template <typename Fn> struct res { 8 static Fn val(); 9 using type = decltype(val()()); // { dg-error "no match for call" } 10 }; 11 12 template <typename Fn> struct A { set_resultA13 template <typename T> void set_result(T) {} 14 runA15 virtual void run() { 16 auto boundfn = []() -> typename res<Fn>::type{}; 17 set_result(boundfn); 18 } 19 }; 20 21 struct F { 22 void operator()() &; 23 }; 24 25 A<F> t; 26