URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
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()) {}
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.