[compiler-rt] [sanitizer] Add cloak_sanitizer_signal_handlers runtime option (PR #162746)

Vitaly Buka via llvm-commits llvm-commits at lists.llvm.org
Fri Oct 10 17:13:03 PDT 2025


================
@@ -24,6 +24,9 @@ namespace __sanitizer {
 
 const char *SanitizerToolName = "SanitizerTool";
 
+const int MaxSignals = 64;
+bool signal_handler_is_from_sanitizer[MaxSignals] = {0};
----------------
vitalybuka wrote:

you still need "Is" but you can set atomically

```
 if (act) {
  if (ret == 0 && SetSignalHandlerFromSanitizer(signum, false)) {
      // If the user sets a signal handler, it is never cloaked, even if they
      // reuse a sanitizer's signal handler.
      SetSignalHandlerFromSanitizer(signum, false);

    ...
  }
} else if (ret == 0 && IsSignalHandlerFromSanitizer) {
   ...
}
```

Note: check local ret before more expensive SetSignalHandlerFromSanitizer

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


More information about the llvm-commits mailing list