[compiler-rt] [asan] Hide SetTLSFakeStack and replaces uses with ResetTLSFakeStack (PR #163674)

Vitaly Buka via llvm-commits llvm-commits at lists.llvm.org
Wed Oct 15 18:35:02 PDT 2025


https://github.com/vitalybuka updated https://github.com/llvm/llvm-project/pull/163674

>From 7bd30423d3cd8ed7e0dbd33a9b2500b4ba0a78b5 Mon Sep 17 00:00:00 2001
From: Vitaly Buka <vitalybuka at google.com>
Date: Wed, 15 Oct 2025 18:20:25 -0700
Subject: [PATCH] =?UTF-8?q?[=F0=9D=98=80=F0=9D=97=BD=F0=9D=97=BF]=20change?=
 =?UTF-8?q?s=20to=20main=20this=20commit=20is=20based=20on?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Created using spr 1.3.6

[skip ci]
---
 compiler-rt/lib/asan/asan_fake_stack.cpp | 16 ++++++++++++----
 compiler-rt/lib/asan/asan_fake_stack.h   |  2 +-
 2 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/compiler-rt/lib/asan/asan_fake_stack.cpp b/compiler-rt/lib/asan/asan_fake_stack.cpp
index 5034ea2a0e459..d243b5739a309 100644
--- a/compiler-rt/lib/asan/asan_fake_stack.cpp
+++ b/compiler-rt/lib/asan/asan_fake_stack.cpp
@@ -231,17 +231,25 @@ static FakeStack* GetFakeStack() {
 }
 
 static FakeStack* GetFakeStackFast() {
-  if (FakeStack* fs = GetTLSFakeStack())
+  FakeStack* fs = GetTLSFakeStack();
+  if (LIKELY(fs))
     return fs;
   if (!__asan_option_detect_stack_use_after_return)
     return nullptr;
-  return GetFakeStack();
+  fs = GetFakeStack();
+  if (LIKELY(fs))
+    SetTLSFakeStack(fs);
+  return fs;
 }
 
 static FakeStack* GetFakeStackFastAlways() {
-  if (FakeStack* fs = GetTLSFakeStack())
+  FakeStack* fs = GetTLSFakeStack();
+  if (LIKELY(fs))
     return fs;
-  return GetFakeStack();
+  fs = GetFakeStack();
+  if (LIKELY(fs))
+    SetTLSFakeStack(fs);
+  return fs;
 }
 
 static ALWAYS_INLINE uptr OnMalloc(uptr class_id, uptr size) {
diff --git a/compiler-rt/lib/asan/asan_fake_stack.h b/compiler-rt/lib/asan/asan_fake_stack.h
index ec772c3299f00..7dedb29809d22 100644
--- a/compiler-rt/lib/asan/asan_fake_stack.h
+++ b/compiler-rt/lib/asan/asan_fake_stack.h
@@ -195,7 +195,7 @@ class FakeStack {
   void *true_start;
 };
 
-void SetTLSFakeStack(FakeStack *fs);
+void SetTLSFakeStack(FakeStack* fs);
 
 }  // namespace __asan
 



More information about the llvm-commits mailing list