// PR target/9786 // Origin: // This used to fail on x86 because the reg-stack pass deleted // an insn that could seemingly trap (but actually doesn't) // without updating the CFG. // { dg-do compile } // { dg-options "-O2 -fnon-call-exceptions" } struct D1 { float l; D1 GS() const {D1 d;float f=.299*l;d.l=f;return d;} static D1 G() {return D1();} }; struct D2 { D1 g; D2(const D1& gi) : g(gi) {} D2 GS() const {return D2(g.GS());} }; class A { public: virtual ~A() {} }; class B : public A { public: B(const D2& mi); D2 fm; }; B::B(const D2 &mi) : fm(mi.GS()) {}