+++ /dev/null
-// PR target/6087
-// The code that moves around insns emitted by reg-stack to cope with
-// exception edges lost the REG_DEAD note indicating a pop. Which
-// eventually fills up the register stack resulting in Z == NaN.
-
-// { dg-do run }
-// { dg-options "-O" }
-
-extern "C" void abort ();
-
-struct Base
-{
- virtual ~Base() {}
-};
-
-struct Foo : public Base
-{
- Foo ();
-};
-
-double x = 3;
-double y = 4;
-
-double bar ()
-{
- double z = x*x+y*y;
- if (z != 25.0)
- throw 1;
- return z;
-}
-
-Foo::Foo ()
-{
- bar ();
-}
-
-int main ()
-{
- try {
- int i;
- for (i = 0; i < 10; ++i)
- new Foo;
- } catch (...) {
- abort ();
- }
- return 0;
-}