| // { dg-do run } | |
| // { dg-options "-O2" } | |
| #include <typeinfo> | |
| #include <iostream> | |
| struct A { virtual ~A () {} }; | |
| struct APtr | |
| { | |
| APtr (A* p) : p_ (p) { } | |
| A& operator* () const { return *p_; } | |
| A* p_; | |
| }; | |
| int main () | |
| { | |
| APtr ap (new A); | |
| std::type_info const* const exp = &typeid (*ap); | |
| for (bool cont = true; cont; cont = false) | |
| { | |
| std::cout << "inner: cont " << cont << std::endl; | |
| if (exp) ; | |
| } | |
| } | |