diff options
Diffstat (limited to 'llvm/test/Transforms/Inline/attributes.ll')
| -rw-r--r-- | llvm/test/Transforms/Inline/attributes.ll | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/llvm/test/Transforms/Inline/attributes.ll b/llvm/test/Transforms/Inline/attributes.ll index 028f3b0f197..81c189a3c7a 100644 --- a/llvm/test/Transforms/Inline/attributes.ll +++ b/llvm/test/Transforms/Inline/attributes.ll @@ -22,6 +22,10 @@ define i32 @sanitize_memory_callee(i32 %i) sanitize_memory { ret i32 %i } +define i32 @sanitize_memtag_callee(i32 %i) sanitize_memtag { + ret i32 %i +} + define i32 @safestack_callee(i32 %i) safestack { ret i32 %i } @@ -50,6 +54,10 @@ define i32 @alwaysinline_sanitize_memory_callee(i32 %i) alwaysinline sanitize_me ret i32 %i } +define i32 @alwaysinline_sanitize_memtag_callee(i32 %i) alwaysinline sanitize_memtag { + ret i32 %i +} + define i32 @alwaysinline_safestack_callee(i32 %i) alwaysinline safestack { ret i32 %i } @@ -104,6 +112,17 @@ define i32 @test_no_sanitize_thread(i32 %arg) { ; CHECK-NEXT: ret i32 } +define i32 @test_no_sanitize_memtag(i32 %arg) { + %x1 = call i32 @noattr_callee(i32 %arg) + %x2 = call i32 @sanitize_memtag_callee(i32 %x1) + %x3 = call i32 @alwaysinline_callee(i32 %x2) + %x4 = call i32 @alwaysinline_sanitize_memtag_callee(i32 %x3) + ret i32 %x4 +; CHECK-LABEL: @test_no_sanitize_memtag( +; CHECK-NEXT: @sanitize_memtag_callee +; CHECK-NEXT: ret i32 +} + ; Check that: ; * noattr callee is not inlined into sanitize_(address|memory|thread) caller, @@ -154,6 +173,17 @@ define i32 @test_sanitize_thread(i32 %arg) sanitize_thread { ; CHECK-NEXT: ret i32 } +define i32 @test_sanitize_memtag(i32 %arg) sanitize_memtag { + %x1 = call i32 @noattr_callee(i32 %arg) + %x2 = call i32 @sanitize_memtag_callee(i32 %x1) + %x3 = call i32 @alwaysinline_callee(i32 %x2) + %x4 = call i32 @alwaysinline_sanitize_memtag_callee(i32 %x3) + ret i32 %x4 +; CHECK-LABEL: @test_sanitize_memtag( +; CHECK-NEXT: @noattr_callee +; CHECK-NEXT: ret i32 +} + define i32 @test_safestack(i32 %arg) safestack { %x1 = call i32 @noattr_callee(i32 %arg) %x2 = call i32 @safestack_callee(i32 %x1) |

