Lines Matching refs:Global
31 typedef __asan_global Global;
34 const Global *g;
44 Global g;
54 Global *g_first, *g_last;
59 ALWAYS_INLINE void PoisonShadowForGlobal(const Global *g, u8 value) {
63 ALWAYS_INLINE void PoisonRedZones(const Global &g) {
84 static void ReportGlobal(const Global &g, const char *prefix) {
86 "%s Global[%p]: beg=%p size=%zu/%zu name=%s module=%s dyn_init=%zu "
97 static u32 FindRegistrationSite(const Global *g) {
108 int GetGlobalsForAddress(uptr addr, Global *globals, u32 *reg_sites,
114 const Global &g = *l->g;
134 // Check ODR violation for given global G via special ODR indicator. We use
135 // this method in case compiler instruments global variables through their
137 static void CheckODRViolationViaIndicator(const Global *g) {
157 // Clang provides two different ways for global variables protection:
158 // it can poison the global itself or its private alias. In former
161 // global, we have ODR violation error.
164 // In either case, compiler provides a special odr_indicator field to Global
167 // corresponding indicator variable for given global.
168 // 2) Zero. This means that we don't use private aliases for global variables
173 static inline bool UseODRIndicator(const Global *g) {
177 // Register a global variable.
178 // This function may be called more than once for every global
180 static void RegisterGlobal(const Global *g) {
187 Report("The following global variable is not properly aligned.\n");
188 Report("This may happen if another global with the same name\n");
190 Report("Or the global comes from a C file built w/o -fno-common.\n");
219 static void UnregisterGlobal(const Global *g) {
229 // We unpoison the shadow memory for the global but we do not remove it from
247 const Global *g = &dyn_g.g;
248 // Unpoison the whole global.
269 // Check if the global is a zero-terminated ASCII string. If so, print it.
365 // If these are padding bytes, the rest of the global should be zero.
399 // poisons all global variables not defined in this TU, so that a dynamic
400 // initializer can only touch global variables in the same TU.
414 const Global *g = &dyn_g.g;
437 const Global *g = &dyn_g.g;
439 // Unpoison the whole global.