41 lines
576 B
C++
41 lines
576 B
C++
|
// PR tree-optimization/39259
|
||
|
// { dg-do compile }
|
||
|
// { dg-options "-O2" }
|
||
|
|
||
|
|
||
|
extern "C" int __mysetjmp () __attribute__ ((__returns_twice__));
|
||
|
|
||
|
class TContStatus {};
|
||
|
|
||
|
class TContEvent
|
||
|
{
|
||
|
public:
|
||
|
inline void Execute () throw();
|
||
|
};
|
||
|
|
||
|
class TCont
|
||
|
{
|
||
|
public:
|
||
|
TContStatus ReadD (void* buf, int deadline)
|
||
|
{
|
||
|
TContEvent event;
|
||
|
event.Execute ();
|
||
|
return TContStatus();
|
||
|
}
|
||
|
TContStatus ReadI (void *buf)
|
||
|
{
|
||
|
return ReadD (buf, 1);
|
||
|
}
|
||
|
};
|
||
|
|
||
|
void TContEvent::Execute () throw ()
|
||
|
{
|
||
|
__mysetjmp();
|
||
|
}
|
||
|
|
||
|
void Broken (TCont *mCont)
|
||
|
{
|
||
|
mCont->ReadI(0);
|
||
|
mCont->ReadI(0);
|
||
|
}
|