xref: /llvm-project/llvm/test/CodeGen/ARM/func-sanitizer.ll (revision afd20587f9952654a9a9ec427052220b5e3a6982)
1*afd20587SFangrui Song; RUN: llc -mtriple=thumbv6m-none-eabi < %s | FileCheck %s
2*afd20587SFangrui Song
3*afd20587SFangrui Song; CHECK-LABEL: .globl nosan
4*afd20587SFangrui Song; CHECK-NEXT:  .p2align 1
5*afd20587SFangrui Song; CHECK-NEXT:  .type nosan,%function
6*afd20587SFangrui Song; CHECK-NEXT:  .code 16
7*afd20587SFangrui Song; CHECK-NEXT:  .thumb_func
8*afd20587SFangrui Song; CHECK-NEXT:  nosan:
9*afd20587SFangrui Songdefine dso_local void @nosan() nounwind {
10*afd20587SFangrui Song  ret void
11*afd20587SFangrui Song}
12*afd20587SFangrui Song
13*afd20587SFangrui Song;; The alignment is at least 4 to avoid unaligned type hash loads when this
14*afd20587SFangrui Song;; instrumented function is indirectly called.
15*afd20587SFangrui Song; CHECK-LABEL: .globl foo
16*afd20587SFangrui Song; CHECK-NEXT:  .p2align 2
17*afd20587SFangrui Song; CHECK-NEXT:  .type foo,%function
18*afd20587SFangrui Song; CHECK-NEXT:  .long 3238382334
19*afd20587SFangrui Song; CHECK-NEXT:  .long 3170468932
20*afd20587SFangrui Song; CHECK-NEXT:  .code 16
21*afd20587SFangrui Song; CHECK-NEXT:  .thumb_func
22*afd20587SFangrui Song; CHECK-NEXT:  foo:
23*afd20587SFangrui Songdefine dso_local void @foo() nounwind !func_sanitize !0 {
24*afd20587SFangrui Song  ret void
25*afd20587SFangrui Song}
26*afd20587SFangrui Song
27*afd20587SFangrui Song;; If "align" is smaller than 4 (required alignment from !func_sanitize), use 4.
28*afd20587SFangrui Song; CHECK-LABEL: .globl align2
29*afd20587SFangrui Song; CHECK-NEXT:  .p2align 2
30*afd20587SFangrui Songdefine dso_local void @align2() nounwind align 2 !func_sanitize !0 {
31*afd20587SFangrui Song  ret void
32*afd20587SFangrui Song}
33*afd20587SFangrui Song
34*afd20587SFangrui Song;; If "align" is larger than 4, use its value.
35*afd20587SFangrui Song; CHECK-LABEL: .globl align8
36*afd20587SFangrui Song; CHECK-NEXT:  .p2align 3
37*afd20587SFangrui Songdefine dso_local void @align8() nounwind align 8 !func_sanitize !0 {
38*afd20587SFangrui Song  ret void
39*afd20587SFangrui Song}
40*afd20587SFangrui Song
41*afd20587SFangrui Song!0 = !{i32 -1056584962, i32 -1124498364}
42