reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | // // 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. } |