OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [gcc-4.2.2/] [gcc/] [testsuite/] [g++.dg/] [opt/] [reg-stack2.C] - Diff between revs 154 and 816

Only display areas with differences | Details | Blame | View Log

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

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.