5 double func(int xi) {return 0.0;}
16 double& operator()(int);
17 foo_b& operator=(foo_b&);
21 foo_b& operator*(foo_b&, foo_b&);
22 foo_b& operator*(double, foo_b&);
26 typedef double (TP::* Tmatf)(int);
29 void foo_cinst (int mm);
32 foo_c() {m = 0; a = 0;}
34 double (TP::*& operator()(int i))(int) {return a[i];}
39 foo_b& foo_c<TP>::bug_func(int x) {
40 static foo_b retval(m);
42 for (register int i = 0; i < m; i++)
43 retval(i) = (*(operator()(i)))(x); // { dg-error "" }
54 virtual void setfoo_c();
57 class foo_e : public foo_a, public foo_d<foo_a> {
64 void foo_e::setfoo_c() {
65 bar_b(0) = func; // { dg-error "" }
68 template class foo_c<foo_a>;