forked from OSchip/llvm-project
55 lines
752 B
C++
55 lines
752 B
C++
//
|
|
// 11588.cpp
|
|
//
|
|
|
|
#include <iostream>
|
|
|
|
class StgInfoTable {};
|
|
|
|
class StgHeader
|
|
{
|
|
private:
|
|
StgInfoTable* info;
|
|
public:
|
|
StgHeader()
|
|
{
|
|
info = new StgInfoTable();
|
|
}
|
|
~StgHeader()
|
|
{
|
|
delete info;
|
|
}
|
|
};
|
|
|
|
class StgClosure
|
|
{
|
|
private:
|
|
StgHeader header;
|
|
StgClosure* payload[1];
|
|
public:
|
|
StgClosure(bool make_payload = true)
|
|
{
|
|
if (make_payload)
|
|
payload[0] = new StgClosure(false);
|
|
else
|
|
payload[0] = NULL;
|
|
}
|
|
~StgClosure()
|
|
{
|
|
if (payload[0])
|
|
delete payload[0];
|
|
}
|
|
};
|
|
|
|
typedef unsigned long long int ptr_type;
|
|
|
|
int main()
|
|
{
|
|
StgClosure* r14_ = new StgClosure();
|
|
r14_ = (StgClosure*)(((ptr_type)r14_ | 0x01)); // set the LSB to 1 for tagging
|
|
ptr_type r14 = (ptr_type)r14_;
|
|
int x = 0;
|
|
x = 3;
|
|
return (x-1); // Set breakpoint here.
|
|
}
|