C++程序  |  18行  |  346 B

// { dg-do run { xfail sparc64-*-elf arm-*-pe } }
// { dg-options "-fexceptions" }

#include <typeinfo>

int fail = 1;

class X            { public: virtual void p() { } };
class Y : public X { public: virtual void p() { fail = 0; } };

int main()
{
  try          { Y y; throw y; }
  catch (X& x) { x.p();  }
  catch (...)  { }
  return fail;
}