Lines Matching refs:FakeStack

11 // FakeStack is used to detect use-after-return bugs.
44 FakeStack *FakeStack::Create(uptr stack_size_log) {
52 FakeStack *res = reinterpret_cast<FakeStack *>(
53 flags()->uar_noreserve ? MmapNoReserveOrDie(size, "FakeStack")
54 : MmapOrDie(size, "FakeStack"));
58 "T%d: FakeStack created: %p -- %p stack_size_log: %zd; "
61 (void *)(p + FakeStack::RequiredSize(stack_size_log)), stack_size_log,
66 void FakeStack::Destroy(int tid) {
73 Report("T%d: FakeStack destroyed: %s\n", tid, str.data());
80 void FakeStack::PoisonAll(u8 magic) {
88 FakeFrame *FakeStack::Allocate(uptr stack_size_log, uptr class_id,
116 uptr FakeStack::AddrIsInFakeStack(uptr ptr, uptr *frame_beg, uptr *frame_end) {
132 void FakeStack::HandleNoReturn() {
142 NOINLINE void FakeStack::GC(uptr real_stack) {
160 void FakeStack::ForEachFakeFrame(RangeIteratorCallback callback, void *arg) {
169 callback(begin, begin + FakeStack::BytesInSizeClass(class_id), arg);
175 static THREADLOCAL FakeStack *fake_stack_tls;
177 FakeStack *GetTLSFakeStack() {
180 void SetTLSFakeStack(FakeStack *fs) {
184 FakeStack *GetTLSFakeStack() { return 0; }
185 void SetTLSFakeStack(FakeStack *fs) { }
188 static FakeStack *GetFakeStack() {
194 static FakeStack *GetFakeStackFast() {
195 if (FakeStack *fs = GetTLSFakeStack())
202 static FakeStack *GetFakeStackFastAlways() {
203 if (FakeStack *fs = GetTLSFakeStack())
209 FakeStack *fs = GetFakeStackFast();
221 FakeStack *fs = GetFakeStackFastAlways();
235 FakeStack::Deallocate(ptr, class_id);
279 FakeStack *fs = reinterpret_cast<FakeStack*>(fake_stack);