[compiler-rt] [tsan] Allow unloading of ignored libraries (PR #105660)

Vitaly Buka via llvm-commits llvm-commits at lists.llvm.org
Sun Sep 15 23:17:19 PDT 2024


================
@@ -54,20 +54,26 @@ class LibIgnore {
     char *name;
     char *real_name;  // target of symlink
     bool loaded;
+    uptr ignored_code_range_id;
   };
 
   struct LibCodeRange {
     uptr begin;
-    uptr end;
+    // A value of 0 means the associated module was unloaded.
+    atomic_uintptr_t end;
+    bool IsInRange(uptr pc) const {
+      return (pc >= begin && pc < atomic_load(&end, memory_order_relaxed));
+    }
   };
 
-  inline bool IsInRange(uptr pc, const LibCodeRange &range) const {
-    return (pc >= range.begin && pc < range.end);
-  }
+  static_assert(sizeof(LibCodeRange) == 16,
----------------
vitalybuka wrote:

I don't think this assert is add much value.

https://github.com/llvm/llvm-project/pull/105660


More information about the llvm-commits mailing list