brintos

brintos / llvm-project-archived public Read only

0
0
Text · 825 B · e8c967f Raw
23 lines · plain
1; Test -asan-force-dynamic-shadow flag.2;3; RUN: opt -passes=asan -S -asan-force-dynamic-shadow=1 < %s | FileCheck %s --check-prefixes=CHECK,CHECK-FDS4; RUN: opt -passes=asan -S -asan-force-dynamic-shadow=0 < %s | FileCheck %s --check-prefixes=CHECK,CHECK-NDS5 6target triple = "x86_64-unknown-linux-gnu"7 8define i32 @test_load(ptr %a) sanitize_address {9; First instrumentation in the function must be to load the dynamic shadow10; address into a local variable.11; CHECK-LABEL: @test_load12; CHECK: entry:13; CHECK-FDS-NEXT: %[[SHADOW:[^ ]*]] = load i64, ptr @__asan_shadow_memory_dynamic_address14; CHECK-NDS-NOT: __asan_shadow_memory_dynamic_address15 16; Shadow address is loaded and added into the whole offset computation.17; CHECK-FDS: add i64 %{{.*}}, %[[SHADOW]]18 19entry:20  %tmp1 = load i32, ptr %a, align 421  ret i32 %tmp122}23