Home | History | Annotate | Download | only in asan

Lines Matching refs:Global

31 typedef __asan_global Global;
34 const Global *g;
43 Global g;
53 Global *g_first, *g_last;
58 ALWAYS_INLINE void PoisonShadowForGlobal(const Global *g, u8 value) {
62 ALWAYS_INLINE void PoisonRedZones(const Global &g) {
82 static void ReportGlobal(const Global &g, const char *prefix) {
86 "%s Global[%p]: beg=%p size=%zu/%zu name=%s source=%s module=%s "
96 // Fallback to Global::gcc_location
101 static u32 FindRegistrationSite(const Global *g) {
112 int GetGlobalsForAddress(uptr addr, Global *globals, u32 *reg_sites,
118 const Global &g = *l->g;
138 // Check ODR violation for given global G via special ODR indicator. We use
139 // this method in case compiler instruments global variables through their
141 static void CheckODRViolationViaIndicator(const Global *g) {
161 // Clang provides two different ways for global variables protection:
162 // it can poison the global itself or its private alias. In former
165 // global, we have ODR violation error.
168 // In either case, compiler provides a special odr_indicator field to Global
171 // corresponding indicator variable for given global.
172 // 2) Zero. This means that we don't use private aliases for global variables
177 static inline bool UseODRIndicator(const Global *g) {
181 // Register a global variable.
182 // This function may be called more than once for every global
184 static void RegisterGlobal(const Global *g) {
191 Report("The following global variable is not properly aligned.\n");
192 Report("This may happen if another global with the same name\n");
194 Report("Or the global comes from a C file built w/o -fno-common.\n");
223 static void UnregisterGlobal(const Global *g) {
233 // We unpoison the shadow memory for the global but we do not remove it from
251 const Global *g = &dyn_g.g;
252 // Unpoison the whole global.
273 // Check if the global is a zero-terminated ASCII string. If so, print it.
290 // Fallback to Global::gcc_location
374 // If these are padding bytes, the rest of the global should be zero.
408 // poisons all global variables not defined in this TU, so that a dynamic
409 // initializer can only touch global variables in the same TU.
423 const Global *g = &dyn_g.g;
446 const Global *g = &dyn_g.g;
448 // Unpoison the whole global.