1// PR tree-optimization/39259
2// { dg-do compile }
3// { dg-options "-O2" }
4
5
6extern "C" int __mysetjmp () __attribute__ ((__returns_twice__));
7
8class TContStatus {};
9
10class TContEvent
11{
12public:
13  inline void Execute () throw();
14};
15
16class TCont
17{
18public:
19  TContStatus ReadD (void* buf, int deadline)
20  {
21    TContEvent event;
22    event.Execute ();
23    return TContStatus();
24  }
25  TContStatus ReadI (void *buf)
26  {
27    return ReadD (buf, 1);
28  }
29};
30
31void TContEvent::Execute () throw ()
32{
33  __mysetjmp();
34}
35
36void Broken (TCont *mCont)
37{
38  mCont->ReadI(0);
39  mCont->ReadI(0);
40}
41