[compiler-rt] Add API to temporalily disable usage of ASAN's fake stack (PR #160135)
Vitaly Buka via llvm-commits
llvm-commits at lists.llvm.org
Tue Oct 14 16:16:00 PDT 2025
================
@@ -217,26 +217,44 @@ static THREADLOCAL FakeStack *fake_stack_tls;
FakeStack *GetTLSFakeStack() {
return fake_stack_tls;
}
-void SetTLSFakeStack(FakeStack *fs) {
+void SetTLSFakeStack(AsanThread* t, FakeStack* fs) {
+ if (fs && !t->IsFakeStackEnabled()) {
+ return;
+ }
fake_stack_tls = fs;
}
#else
FakeStack *GetTLSFakeStack() { return 0; }
-void SetTLSFakeStack(FakeStack *fs) { }
+void SetTLSFakeStack(AsanThread* t, FakeStack* fs) {}
#endif // (SANITIZER_LINUX && !SANITIZER_ANDROID) || SANITIZER_FUCHSIA
-static FakeStack *GetFakeStack() {
+static void DisableFakeStack() {
AsanThread *t = GetCurrentThread();
- if (!t) return nullptr;
+ if (t) {
+ t->SetFakeStackEnabled(false);
+ }
+}
+
+static void EnableFakeStack() {
+ AsanThread* t = GetCurrentThread();
+ if (t) {
+ t->SetFakeStackEnabled(true);
+ }
+}
+
+static FakeStack* GetFakeStack(bool for_allocation = true) {
----------------
vitalybuka wrote:
I am not sure understand what do we need for_allocation at all?
https://github.com/llvm/llvm-project/pull/160135
More information about the llvm-commits
mailing list