[compiler-rt] [asan] Speed up ASan ODR indicator-based checking (PR #100923)
Vitaly Buka via llvm-commits
llvm-commits at lists.llvm.org
Thu Aug 1 11:19:28 PDT 2024
================
@@ -147,14 +163,21 @@ static void CheckODRViolationViaIndicator(const Global *g) {
*odr_indicator = REGISTERED;
return;
}
+
+ // Fetch globals with the same ODR indicator.
+ auto *relevant_globals_lookup =
+ map_of_globals_by_indicator.find(g->odr_indicator);
+ if (!relevant_globals_lookup)
+ return;
+
+ ListOfGlobals *relevant_globals = relevant_globals_lookup->second;
// If *odr_indicator is DEFINED, some module have already registered
// externally visible symbol with the same name. This is an ODR violation.
- for (ListOfGlobals *l = list_of_all_globals; l; l = l->next) {
- if (g->odr_indicator == l->g->odr_indicator &&
----------------
vitalybuka wrote:
LGTM
I was confused by `odr_indicator` vs `*odr_indicator`.
https://github.com/llvm/llvm-project/pull/100923
More information about the llvm-commits
mailing list