Lines Matching +full:data +full:- +full:addr

1 //===-- asan_descriptions.h -------------------------------------*- C++ -*-===//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
11 // ASan-private header for asan_descriptions.cpp.
13 //===----------------------------------------------------------------------===//
26 if (t) DescribeThread(t->context()); in DescribeThread()
93 uptr addr; member
100 bool GetShadowAddressInformation(uptr addr, ShadowAddressDescription *descr);
101 bool DescribeAddressIfShadow(uptr addr);
121 uptr addr; member
131 bool GetHeapAddressInformation(uptr addr, uptr access_size,
133 bool DescribeAddressIfHeap(uptr addr, uptr access_size = 1);
136 uptr addr; member
146 bool GetStackAddressInformation(uptr addr, uptr access_size,
150 uptr addr; member
157 uptr addr; member
172 bool GetGlobalAddressInformation(uptr addr, uptr access_size,
174 bool DescribeAddressIfGlobal(uptr addr, uptr access_size, const char *bug_type);
179 // initialization-order-fiasco
184 void PrintAddressDescription(uptr addr, uptr access_size = 1,
207 AddressDescriptionData data; variable
213 explicit AddressDescription(uptr addr, bool shouldLockThreadRegistry = true)
214 : AddressDescription(addr, 1, shouldLockThreadRegistry) {}
215 AddressDescription(uptr addr, uptr access_size,
219 switch (data.kind) { in Address()
221 return data.wild.addr; in Address()
223 return data.shadow.addr; in Address()
225 return data.heap.addr; in Address()
227 return data.stack.addr; in Address()
229 return data.global.addr; in Address()
234 switch (data.kind) {
236 data.wild.Print();
239 return data.shadow.Print();
241 return data.heap.Print();
243 return data.stack.Print();
245 // initialization-order-fiasco has a special Print()
246 return data.global.Print(bug_descr);
251 void StoreTo(AddressDescriptionData *dst) const { *dst = data; } in StoreTo()
254 return data.kind == kAddressKindShadow ? &data.shadow : nullptr; in AsShadow()
257 return data.kind == kAddressKindHeap ? &data.heap : nullptr; in AsHeap()
260 return data.kind == kAddressKindStack ? &data.stack : nullptr; in AsStack()
263 return data.kind == kAddressKindGlobal ? &data.global : nullptr; in AsGlobal()