1// Build don't link:
2// Special g++ Options: -O
3
4class foo {
5public:
6  operator const char*() const { return a; }
7  char *a;
8};
9
10class bar {
11public:
12  ~bar();
13  void operator++(int);
14  bool b() const;
15protected:
16  void* c() const;
17};
18
19class baz : public bar {
20public:
21  foo const &d() const { return *(foo *)bar::c(); }
22};
23
24extern int tst (const char *, const char *) throw();
25
26void die(const foo& x)
27{
28  for (baz hi; hi.b(); hi++)
29    if (tst (hi.d(), x) == 0)
30      return;
31}
32