diff options
Diffstat (limited to 'test/CodeGen/asan-new-pm.ll')
-rw-r--r-- | test/CodeGen/asan-new-pm.ll | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/test/CodeGen/asan-new-pm.ll b/test/CodeGen/asan-new-pm.ll new file mode 100644 index 0000000000..72bcf055a6 --- /dev/null +++ b/test/CodeGen/asan-new-pm.ll @@ -0,0 +1,30 @@ +; Test that ASan runs with the new pass manager +; RUN: %clang_cc1 -S -emit-llvm -o - -fexperimental-new-pass-manager -fsanitize=address %s | FileCheck %s --check-prefixes=CHECK,LTO,THINLTO +; RUN: %clang_cc1 -S -emit-llvm -o - -fexperimental-new-pass-manager -fsanitize=address -flto %s | FileCheck %s --check-prefixes=CHECK,LTO +; RUN: %clang_cc1 -S -emit-llvm -o - -fexperimental-new-pass-manager -fsanitize=address -flto=thin %s | FileCheck %s --check-prefixes=CHECK,THINLTO +; RUN: %clang_cc1 -S -emit-llvm -o - -O1 -fexperimental-new-pass-manager -fsanitize=address %s | FileCheck %s --check-prefixes=CHECK,LTO,THINLTO +; RUN: %clang_cc1 -S -emit-llvm -o - -O1 -fexperimental-new-pass-manager -fsanitize=address -flto %s | FileCheck %s --check-prefixes=CHECK,LTO +; RUN: %clang_cc1 -S -emit-llvm -o - -O1 -fexperimental-new-pass-manager -fsanitize=address -flto=thin %s | FileCheck %s --check-prefixes=CHECK,THINLTO + +target triple = "x86_64-unknown-unknown" + +; DAG-CHECK: @llvm.global_ctors = {{.*}}@asan.module_ctor + +define i32 @test_load(i32* %a) sanitize_address { +entry: + %tmp1 = load i32, i32* %a, align 4 + ret i32 %tmp1 +} + +; CHECK: __asan_init + +; DAG-CHECK: define internal void @asan.module_ctor() { +; CHECK: {{.*}} call void @__asan_init() +; CHECK: {{.*}} call void @__asan_version_mismatch_check_v8() +; CHECK: ret void +; CHECK: } + +; DAG-CHECK: __asan_version_mismatch_check_v8 + +; This is not used in ThinLTO +; DAG-LTO: __asan_report_load4 |