11
11
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
12
12
target triple = "x86_64-unknown-linux-gnu"
13
13
14
- define void @naked_function (ptr byval (i32 ) %p ) {
14
+ define void @naked_function (ptr byval (i32 ) %p ) naked {
15
15
; CHECK-ASAN-LABEL: define void @naked_function(
16
- ; CHECK-ASAN-SAME: ptr byval(i32) [[P:%.*]]) {
16
+ ; CHECK-ASAN-SAME: ptr byval(i32) [[P:%.*]]) #[[ATTR0:[0-9]+]] {
17
17
; CHECK-ASAN-NEXT: call void asm sideeffect "nop", ""()
18
18
; CHECK-ASAN-NEXT: unreachable
19
19
;
20
20
; CHECK-TSAN-LABEL: define void @naked_function(
21
- ; CHECK-TSAN-SAME: ptr byval(i32) [[P:%.*]]) personality ptr @__gcc_personality_v0 {
22
- ; CHECK-TSAN-NEXT: [[TMP1:%.*]] = call ptr @llvm.returnaddress(i32 0)
23
- ; CHECK-TSAN-NEXT: call void @__tsan_func_entry(ptr [[TMP1]])
24
- ; CHECK-TSAN-NEXT: invoke void asm sideeffect "nop", ""()
25
- ; CHECK-TSAN-NEXT: to [[DOTNOEXC:label %.*]] unwind label %[[TSAN_CLEANUP:.*]]
26
- ; CHECK-TSAN: [[_NOEXC:.*:]]
21
+ ; CHECK-TSAN-SAME: ptr byval(i32) [[P:%.*]]) #[[ATTR0:[0-9]+]] {
22
+ ; CHECK-TSAN-NEXT: call void asm sideeffect "nop", ""()
27
23
; CHECK-TSAN-NEXT: unreachable
28
- ; CHECK-TSAN: [[TSAN_CLEANUP]]:
29
- ; CHECK-TSAN-NEXT: [[CLEANUP_LPAD:%.*]] = landingpad { ptr, i32 }
30
- ; CHECK-TSAN-NEXT: cleanup
31
- ; CHECK-TSAN-NEXT: call void @__tsan_func_exit()
32
- ; CHECK-TSAN-NEXT: resume { ptr, i32 } [[CLEANUP_LPAD]]
33
24
;
34
25
; CHECK-MSAN-LABEL: define void @naked_function(
35
- ; CHECK-MSAN-SAME: ptr byval(i32) [[P:%.*]]) {
26
+ ; CHECK-MSAN-SAME: ptr byval(i32) [[P:%.*]]) #[[ATTR0:[0-9]+]] {
36
27
; CHECK-MSAN-NEXT: call void @llvm.donothing()
37
28
; CHECK-MSAN-NEXT: call void asm sideeffect "nop", ""()
38
29
; CHECK-MSAN-NEXT: unreachable
39
30
;
40
31
; CHECK-HWASAN-LABEL: define void @naked_function(
41
- ; CHECK-HWASAN-SAME: ptr byval(i32) [[P:%.*]]) {
32
+ ; CHECK-HWASAN-SAME: ptr byval(i32) [[P:%.*]]) #[[ATTR0:[0-9]+]] {
42
33
; CHECK-HWASAN-NEXT: call void asm sideeffect "nop", ""()
43
34
; CHECK-HWASAN-NEXT: unreachable
44
35
;
45
36
; CHECK-SANCOV-LABEL: define void @naked_function(
46
- ; CHECK-SANCOV-SAME: ptr byval(i32) [[P:%.*]]) {
37
+ ; CHECK-SANCOV-SAME: ptr byval(i32) [[P:%.*]]) #[[ATTR0:[0-9]+]] {
47
38
; CHECK-SANCOV-NEXT: call void asm sideeffect "nop", ""()
48
39
; CHECK-SANCOV-NEXT: unreachable
49
40
;
50
41
; CHECK-SANMD-LABEL: define void @naked_function(
51
- ; CHECK-SANMD-SAME: ptr byval(i32) [[P:%.*]]) !pcsections [[META0:! [0-9]+]] {
42
+ ; CHECK-SANMD-SAME: ptr byval(i32) [[P:%.*]]) #[[ATTR0: [0-9]+]] {
52
43
; CHECK-SANMD-NEXT: call void asm sideeffect "nop", ""()
53
44
; CHECK-SANMD-NEXT: unreachable
54
45
;
55
46
call void asm sideeffect "nop" , "" ()
56
47
unreachable
57
48
}
58
49
59
- define void @naked_function_with_asan (ptr byval (i32 ) %p ) sanitize_address {
50
+ define void @naked_function_with_asan (ptr byval (i32 ) %p ) sanitize_address naked {
60
51
; CHECK-ASAN-LABEL: define void @naked_function_with_asan(
61
- ; CHECK-ASAN-SAME: ptr byval(i32) [[P:%.*]]) #[[ATTR0:[0-9]+]] {
62
- ; CHECK-ASAN-NEXT: [[P_BYVAL:%.*]] = alloca i32, align 4
63
- ; CHECK-ASAN-NEXT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 [[P_BYVAL]], ptr align 4 [[P]], i64 4, i1 false)
52
+ ; CHECK-ASAN-SAME: ptr byval(i32) [[P:%.*]]) #[[ATTR1:[0-9]+]] {
64
53
; CHECK-ASAN-NEXT: call void asm sideeffect "nop", ""()
65
54
; CHECK-ASAN-NEXT: unreachable
66
55
;
67
56
call void asm sideeffect "nop" , "" ()
68
57
unreachable
69
58
}
70
59
71
- define void @naked_function_with_tsan (ptr byval (i32 ) %p ) sanitize_thread {
60
+ define void @naked_function_with_tsan (ptr byval (i32 ) %p ) sanitize_thread naked {
72
61
; CHECK-TSAN-LABEL: define void @naked_function_with_tsan(
73
- ; CHECK-TSAN-SAME: ptr byval(i32) [[P:%.*]]) #[[ATTR1:[0-9]+]] personality ptr @__gcc_personality_v0 {
74
- ; CHECK-TSAN-NEXT: [[TMP1:%.*]] = call ptr @llvm.returnaddress(i32 0)
75
- ; CHECK-TSAN-NEXT: call void @__tsan_func_entry(ptr [[TMP1]])
76
- ; CHECK-TSAN-NEXT: invoke void asm sideeffect "nop", ""()
77
- ; CHECK-TSAN-NEXT: to [[DOTNOEXC:label %.*]] unwind label %[[TSAN_CLEANUP:.*]]
78
- ; CHECK-TSAN: [[_NOEXC:.*:]]
62
+ ; CHECK-TSAN-SAME: ptr byval(i32) [[P:%.*]]) #[[ATTR2:[0-9]+]] {
63
+ ; CHECK-TSAN-NEXT: call void asm sideeffect "nop", ""()
79
64
; CHECK-TSAN-NEXT: unreachable
80
- ; CHECK-TSAN: [[TSAN_CLEANUP]]:
81
- ; CHECK-TSAN-NEXT: [[CLEANUP_LPAD:%.*]] = landingpad { ptr, i32 }
82
- ; CHECK-TSAN-NEXT: cleanup
83
- ; CHECK-TSAN-NEXT: call void @__tsan_func_exit()
84
- ; CHECK-TSAN-NEXT: resume { ptr, i32 } [[CLEANUP_LPAD]]
85
65
;
86
66
call void asm sideeffect "nop" , "" ()
87
67
unreachable
88
68
}
89
69
90
- define void @naked_function_with_msan (ptr byval (i32 ) %p ) sanitize_memory {
70
+ define void @naked_function_with_msan (ptr byval (i32 ) %p ) sanitize_memory naked {
91
71
; CHECK-MSAN-LABEL: define void @naked_function_with_msan(
92
- ; CHECK-MSAN-SAME: ptr byval(i32) [[P:%.*]]) #[[ATTR2 :[0-9]+]] {
72
+ ; CHECK-MSAN-SAME: ptr byval(i32) [[P:%.*]]) #[[ATTR3 :[0-9]+]] {
93
73
; CHECK-MSAN-NEXT: call void @llvm.donothing()
94
74
; CHECK-MSAN-NEXT: call void asm sideeffect "nop", ""()
95
75
; CHECK-MSAN-NEXT: unreachable
@@ -98,16 +78,12 @@ define void @naked_function_with_msan(ptr byval(i32) %p) sanitize_memory {
98
78
unreachable
99
79
}
100
80
101
- define void @naked_function_with_hwasan (ptr byval (i32 ) %p ) sanitize_hwaddress {
81
+ define void @naked_function_with_hwasan (ptr byval (i32 ) %p ) sanitize_hwaddress naked {
102
82
; CHECK-HWASAN-LABEL: define void @naked_function_with_hwasan(
103
- ; CHECK-HWASAN-SAME: ptr byval(i32) [[P:%.*]]) #[[ATTR3 :[0-9]+]] {
83
+ ; CHECK-HWASAN-SAME: ptr byval(i32) [[P:%.*]]) #[[ATTR4 :[0-9]+]] personality ptr @__hwasan_personality_thunk {
104
84
; CHECK-HWASAN-NEXT: call void asm sideeffect "nop", ""()
105
85
; CHECK-HWASAN-NEXT: unreachable
106
86
;
107
87
call void asm sideeffect "nop" , "" ()
108
88
unreachable
109
89
}
110
- ;.
111
- ; CHECK-SANMD: [[META0]] = !{!"sanmd_covered2!C", [[META1:![0-9]+]]}
112
- ; CHECK-SANMD: [[META1]] = !{i64 1}
113
- ;.
0 commit comments