blob: c4e4984e5c3135e2099fe2f00754d03ce2b837f7 [file] [log] [blame]
void GC() ()
{
__asm__ __volatile__("");
invisible ();
}
void suppressedFunction() ()
{
GC ();
}
void halfSuppressedFunction() ()
{
GC ();
}
void unsuppressedFunction() ()
{
GC ();
}
Cell* f() ()
{
struct Cell * D.2218;
struct GCInDestructor kaboom;
struct Cell cell;
struct Cell * cell1;
struct Cell * cell2;
struct Cell * cell3;
struct Cell * cell4;
struct Cell * cell5;
struct Cell * cell6;
try
{
try
{
cell1 = &cell;
cell2 = &cell;
cell3 = &cell;
cell4 = &cell;
{
struct AutoSuppressGC nogc;
try
{
AutoSuppressGC::AutoSuppressGC (&nogc);
try
{
suppressedFunction ();
halfSuppressedFunction ();
}
finally
{
AutoSuppressGC::~AutoSuppressGC (&nogc);
}
}
finally
{
nogc = {CLOBBER};
}
}
foo (cell1);
halfSuppressedFunction ();
foo (cell2);
unsuppressedFunction ();
{
struct AutoSuppressGC nogc;
try
{
AutoSuppressGC::AutoSuppressGC (&nogc);
try
{
}
finally
{
AutoSuppressGC::~AutoSuppressGC (&nogc);
}
}
finally
{
nogc = {CLOBBER};
}
}
foo (cell3);
cell5 = &cell;
foo (cell5);
cell6 = &cell;
D.2218 = cell6;
return D.2218;
}
finally
{
GCInDestructor::~GCInDestructor (&kaboom);
}
}
finally
{
kaboom = {CLOBBER};
cell = {CLOBBER};
}
}
AutoSuppressGC::AutoSuppressGC() (struct AutoSuppressGC * const this)
{
struct AutoSuppressGC_Child * D.2227;
D.2227 = &this->helpImBeingSuppressed;
AutoSuppressGC_Child::AutoSuppressGC_Child (D.2227);
try
{
}
catch
{
D.2227 = &this->helpImBeingSuppressed;
AutoSuppressGC_Child::~AutoSuppressGC_Child (D.2227);
}
}
AutoSuppressGC_Child::AutoSuppressGC_Child() (struct AutoSuppressGC_Child * const this)
{
AutoSuppressGC_Base::AutoSuppressGC_Base (this);
try
{
}
catch
{
AutoSuppressGC_Base::~AutoSuppressGC_Base (this);
}
}
AutoSuppressGC_Base::AutoSuppressGC_Base() (struct AutoSuppressGC_Base * const this)
{
}
AutoSuppressGC::~AutoSuppressGC() (struct AutoSuppressGC * const this)
{
struct AutoSuppressGC_Child * D.2228;
{
try
{
try
{
}
finally
{
D.2228 = &this->helpImBeingSuppressed;
AutoSuppressGC_Child::~AutoSuppressGC_Child (D.2228);
}
}
finally
{
MEM[(struct &)this] = {CLOBBER};
}
}
<D.2211>:
}
AutoSuppressGC_Child::~AutoSuppressGC_Child() (struct AutoSuppressGC_Child * const this)
{
{
try
{
try
{
}
finally
{
AutoSuppressGC_Base::~AutoSuppressGC_Base (this);
}
}
finally
{
MEM[(struct &)this] = {CLOBBER};
}
}
<D.2082>:
}
AutoSuppressGC_Base::~AutoSuppressGC_Base() (struct AutoSuppressGC_Base * const this)
{
try
{
{
try
{
}
finally
{
MEM[(struct &)this] = {CLOBBER};
}
}
<D.2017>:
}
catch
{
<<<eh_must_not_throw (terminate)>>>
}
}
GCInDestructor::~GCInDestructor() (struct GCInDestructor * const this)
{
volatile int * xp.0;
try
{
{
try
{
invisible ();
__asm__ __volatile__("");
xp.0 = xp;
*xp.0 = 4;
GC ();
}
finally
{
MEM[(struct &)this] = {CLOBBER};
}
}
<D.2120>:
}
catch
{
<<<eh_must_not_throw (terminate)>>>
}
}