brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.4 KiB · 39f1178 Raw
50 lines · plain
1; This test checks that we are not instrumenting direct inbound stack accesses.2; RUN: opt < %s -passes=asan -asan-opt-stack -S | FileCheck %s3; RUN: opt < %s -passes=asan -asan-opt-stack -asan-mapping-scale=5 -S | FileCheck %s4 5target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128"6target triple = "x86_64-unknown-linux-gnu"7 8;@sink = global ptr null, align 49 10; Ignore direct inbounds stack access.11define void @foo() uwtable sanitize_address {12entry:13  %a = alloca i32, align 414  store i32 42, ptr %a, align 415  ret void16; CHECK-LABEL: define void @foo17; CHECK-NOT: __asan_report18; CHECK: ret void19}20 21; Don't ignore dynamic indexing.22define void @baz(i64 %i) sanitize_address {23entry:24  %a = alloca [10 x i32], align 425  %e = getelementptr inbounds [10 x i32], ptr %a, i32 0, i64 %i26  store i32 42, ptr %e, align 427  ret void28; CHECK-LABEL: define void @baz29; CHECK: __asan_report30; CHECK: ret void31}32 33define void @bar() sanitize_address {34entry:35  %a = alloca [10 x i32], align 436  %e = getelementptr inbounds [10 x i32], ptr %a, i32 0, i64 1237  store i32 42, ptr %e, align 438  ret void39; CHECK-LABEL: define void @bar40; CHECK: __asan_report41; CHECK: ret void42}43 44define void @endoftests() sanitize_address {45entry:46  ret void47; CHECK-LABEL: define void @endoftests48}49 50