// { dg-do link } | |
// { dg-options "-O2" } | |
class foo | |
{ | |
}; | |
typedef void *voidp; | |
class vect : public foo | |
{ | |
public: | |
voidp& a(); | |
int b(); | |
}; | |
class bar | |
{ | |
public: | |
bar *c(bool (*f)(bar *node), voidp g) | |
{ | |
int i=0; | |
bool j; | |
while (i < d.b()){ | |
j = (f == __null) || f((bar*)d.a()); | |
if (j) | |
((bar*)d.a())->c(f, g); | |
i++; | |
} | |
return this; | |
} | |
public: | |
vect d; | |
bar *e(foo *k); | |
}; | |
bar *bar::e(foo *k) | |
{ | |
return c(__null, k); | |
} | |
voidp &vect::a() | |
{ | |
static voidp x; | |
return x; | |
} | |
int vect::b() | |
{ | |
static int x; | |
return x; | |
} | |
int main() | |
{ | |
return 0; | |
} |