// { dg-do run { xfail sparc64-*-elf arm-*-pe } } // { dg-options "-fexceptions" } #include <typeinfo> class B { public: int data; B(int i) : data(i) { } } b(42); int main() { try { throw &b; } catch (const B* bptr) { if (bptr->data == 42) { try { throw &b; } catch (void *bptr) { if (((B*)bptr)->data == 42) return 0; } } } return 1; }