[llvm] [AArch64][BTI] Add BTI at EH entries. (PR #155308)
David Green via llvm-commits
llvm-commits at lists.llvm.org
Tue Aug 26 00:01:05 PDT 2025
================
@@ -0,0 +1,29 @@
+; REQUIRES: aarch64-registered-target
+; RUN: llc -mtriple=aarch64-unknown-linux-gnu %s -o - | FileCheck %s
+
+target triple = "aarch64-unknown-linux-gnu"
+
+declare i32 @__gxx_personality_v0(...)
+declare void @may_throw()
+
+define void @test() #0 personality ptr @__gxx_personality_v0 {
+entry:
+ invoke void @may_throw()
+ to label %ret unwind label %lpad
+
+lpad:
+ landingpad { ptr, i32 } cleanup
+ ret void
+
+ret:
+ ret void
+}
+
+; Request BTI in codegen.
+attributes #0 = { "branch-target-enforcement"="true" "target-features"="+bti" }
+
+; CHECK-LABEL: test:
+; The assembler prints the label line like: ".LBB0_2: // %lpad"
+; Match the EH pad comment, then the very next line must be BTI j (or HINT #36).
+; CHECK: {{//[[:space:]]*%lpad}}
+; CHECK-NEXT: {{(bti[[:space:]]+j|hint[[:space:]]+#36)}}
----------------
davemgreen wrote:
You usually don't need [[:space:]]+, it is handled automatically by FileCheck. Just use update_llc_test_checks though, it is simpler and produces better tests.
https://github.com/llvm/llvm-project/pull/155308
More information about the llvm-commits
mailing list