| // PR c++/34364 | |
| // { dg-do run } | |
| struct A | |
| { | |
| virtual ~A () {} | |
| }; | |
| struct B : public A | |
| { | |
| template <typename T> struct C | |
| { | |
| static void f (A &a) | |
| { | |
| dynamic_cast <B &>(a).g (); | |
| } | |
| }; | |
| B () : c (6) {} | |
| void g () { c++; } | |
| int c; | |
| }; | |
| B b; | |
| int | |
| main (void) | |
| { | |
| B::C<int>::f (b); | |
| return b.c != 7; | |
| } |