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