brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.3 KiB · 3fb9227 Raw
48 lines · plain
1 2; This test checks that we are not instrumenting sanitizer code.3; RUN: opt < %s -passes='module(msan)' -S | FileCheck %s4 5target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"6target triple = "x86_64-unknown-linux-gnu"7 8; Function with sanitize_memory is instrumented.9; Function Attrs: nounwind uwtable10define void @instr_sa(ptr %a) sanitize_memory {11entry:12  %tmp1 = load i32, ptr %a, align 413  %tmp2 = add i32 %tmp1,  114  store i32 %tmp2, ptr %a, align 415  ret void16}17 18; CHECK-LABEL: @instr_sa19; CHECK: %0 = load i64, ptr @__msan_param_tls20 21 22; Function with disable_sanitizer_instrumentation is not instrumented.23; Function Attrs: nounwind uwtable24define void @noinstr_dsi(ptr %a) disable_sanitizer_instrumentation {25entry:26  %tmp1 = load i32, ptr %a, align 427  %tmp2 = add i32 %tmp1,  128  store i32 %tmp2, ptr %a, align 429  ret void30}31 32; CHECK-LABEL: @noinstr_dsi33; CHECK-NOT: %0 = load i64, ptr @__msan_param_tls34 35 36; disable_sanitizer_instrumentation takes precedence over sanitize_memory.37; Function Attrs: nounwind uwtable38define void @noinstr_dsi_sa(ptr %a) disable_sanitizer_instrumentation sanitize_memory {39entry:40  %tmp1 = load i32, ptr %a, align 441  %tmp2 = add i32 %tmp1,  142  store i32 %tmp2, ptr %a, align 443  ret void44}45 46; CHECK-LABEL: @noinstr_dsi_sa47; CHECK-NOT: %0 = load i64, ptr @__msan_param_tls48