// { 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;
}
