brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.3 KiB · 5aaca33 Raw
49 lines · plain
1; Verify that calls with !nosanitize are not instrumented by MSan.2; RUN: opt < %s -S -passes=msan 2>&1 | FileCheck %s3; RUN: opt < %s -msan-track-origins=1 -S -passes=msan 2>&1 | FileCheck %s4target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"5target triple = "x86_64-unknown-linux-gnu"6 7declare void @bar(i32 %x)8 9define void @foo() {10  call void @bar(i32 7), !nosanitize !{}11  ret void12}13 14; CHECK-LABEL: define void @foo15; CHECK-NOT: store {{.*}} @__msan_param_tls16; CHECK: call void @bar17; CHECK: ret void18 19 20@__sancov_gen_ = private global [1 x i8] zeroinitializer, section "__sancov_cntrs", align 121define void @sancov() sanitize_memory {22entry:23  %0 = load i8, ptr @__sancov_gen_, !nosanitize !{}24  %1 = add i8 %0, 125  store i8 %1, ptr @__sancov_gen_, !nosanitize !{}26  ret void27}28 29; CHECK-LABEL: define void @sancov30; CHECK-NOT: xor31; CHECK-NOT: 8796093022208032; CHECK: ret void33 34 35define void @load_store() sanitize_memory {36entry:37  %x = alloca i32, align 4, !nosanitize !{}38  store i32 4, ptr %x, align 4, !nosanitize !{}39  %0 = load i32, ptr %x, align 4, !nosanitize !{}40  %add = add nsw i32 %0, %041  store i32 %add, ptr %x, align 4, !nosanitize !{}42  ret void43}44 45; CHECK-LABEL: define void @load_store46; CHECK-NOT: xor47; CHECK-NOT: 8796093022208048; CHECK: ret void49