+++ /dev/null
-#include <typeinfo>
-
-int state;
-int fail;
-
-class A {
-public:
- A() {
- if (++state != 1)
- fail = 1;
- }
- virtual int foo() {
- if (++state != 2)
- fail = 1;
- return 0;
- }
- virtual ~A() {
- if (++state != 3)
- fail = 1;
- }
-};
-
-A* bar() {
- return new A;
-}
-
-int main() {
- A *aptr = bar();
- aptr->foo();
- if (dynamic_cast <void*> (aptr) != aptr)
- fail = 1;
- if (typeid (*aptr) != typeid (A))
- fail = 1;
- delete aptr;
- if (++state != 4)
- fail = 1;
- return fail;
-}