| // 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); |
| } |