[llvm] [HWASan] Handle default attribute on personality function thunks. (PR #141917)
    via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Thu May 29 02:05:32 PDT 2025
    
    
  
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-compiler-rt-sanitizer
Author: Daniel Kiss (DanielKristofKiss)
<details>
<summary>Changes</summary>
Function::createWithDefaultAttr deals with default attributes so no need to manually deal with them here.
---
Full diff: https://github.com/llvm/llvm-project/pull/141917.diff
1 Files Affected:
- (modified) llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp (+5-10) 
``````````diff
diff --git a/llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp b/llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp
index e81a725c62ead..e38ee68ce0451 100644
--- a/llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp
+++ b/llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp
@@ -1842,16 +1842,11 @@ void HWAddressSanitizer::instrumentPersonalityFunctions() {
         Int32Ty, {Int32Ty, Int32Ty, Int64Ty, PtrTy, PtrTy}, false);
     bool IsLocal = P.first && (!isa<GlobalValue>(P.first) ||
                                cast<GlobalValue>(P.first)->hasLocalLinkage());
-    auto *ThunkFn = Function::Create(ThunkFnTy,
-                                     IsLocal ? GlobalValue::InternalLinkage
-                                             : GlobalValue::LinkOnceODRLinkage,
-                                     ThunkName, &M);
-    // TODO: think about other attributes as well.
-    if (any_of(P.second, [](const Function *F) {
-          return F->hasFnAttribute("branch-target-enforcement");
-        })) {
-      ThunkFn->addFnAttr("branch-target-enforcement");
-    }
+    auto *ThunkFn = Function::createWithDefaultAttr(
+        ThunkFnTy,
+        IsLocal ? GlobalValue::InternalLinkage
+                : GlobalValue::LinkOnceODRLinkage,
+        M.getDataLayout().getProgramAddressSpace(), ThunkName, &M);
     if (!IsLocal) {
       ThunkFn->setVisibility(GlobalValue::HiddenVisibility);
       ThunkFn->setComdat(M.getOrInsertComdat(ThunkName));
``````````
</details>
https://github.com/llvm/llvm-project/pull/141917
    
    
More information about the llvm-commits
mailing list