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

via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 28 02:19:46 PDT 2024


================
@@ -54,24 +54,51 @@ class LibIgnore {
     char *name;
     char *real_name;  // target of symlink
     bool loaded;
+    uptr ignored_code_range_id;
   };
 
   struct LibCodeRange {
     uptr begin;
     uptr end;
   };
 
+  // Marks a range as loaded by utilizing the least significant bit of the code
+  // range. Assumes the start of the code range is 2-byte aligned.
+  struct LibLoadedCodeRange {
+    uptr begin() const { return begin_ << 1; }
+    void begin(uptr begin) {
+      CHECK_EQ(begin & 0x1, 0);
+      begin_ = begin >> 1;
+    }
+
+   private:
+    uptr begin_ : 63;
+
+   public:
+    uptr loaded : 1;
----------------
goussepi wrote:

Sounds good, I thought we might even get away with just setting `end = 0`, WDYT?

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


More information about the llvm-commits mailing list