[llvm] r310240 - Add -asan-force-dynamic-shadow test

Kuba Mracek via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 7 08:18:20 PDT 2017


Please merge into release_50.

Thanks,
Kuba

> On 7 Aug 2017, at 00:12, Vitaly Buka via llvm-commits <llvm-commits at lists.llvm.org> wrote:
> 
> Author: vitalybuka
> Date: Mon Aug  7 00:12:33 2017
> New Revision: 310240
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=310240&view=rev
> Log:
> Add -asan-force-dynamic-shadow test
> 
> Added:
>    llvm/trunk/test/Instrumentation/AddressSanitizer/force-dynamic-shadow.ll
> 
> Added: llvm/trunk/test/Instrumentation/AddressSanitizer/force-dynamic-shadow.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Instrumentation/AddressSanitizer/force-dynamic-shadow.ll?rev=310240&view=auto
> ==============================================================================
> --- llvm/trunk/test/Instrumentation/AddressSanitizer/force-dynamic-shadow.ll (added)
> +++ llvm/trunk/test/Instrumentation/AddressSanitizer/force-dynamic-shadow.ll Mon Aug  7 00:12:33 2017
> @@ -0,0 +1,22 @@
> +; Test -asan-force-dynamic-shadow flag.
> +;
> +; RUN: opt -asan -asan-module -S -asan-force-dynamic-shadow=1 < %s | FileCheck %s --check-prefixes=CHECK,CHECK-FDS
> +; RUN: opt -asan -asan-module -S -asan-force-dynamic-shadow=0 < %s | FileCheck %s --check-prefixes=CHECK,CHECK-NDS
> +
> +target triple = "x86_64-unknown-linux-gnu"
> +
> +define i32 @test_load(i32* %a) sanitize_address {
> +; First instrumentation in the function must be to load the dynamic shadow
> +; address into a local variable.
> +; CHECK-LABEL: @test_load
> +; CHECK: entry:
> +; CHECK-FDS-NEXT: %[[SHADOW:[^ ]*]] = load i64, i64* @__asan_shadow_memory_dynamic_address
> +; CHECK-NDS-NOT: __asan_shadow_memory_dynamic_address
> +
> +; Shadow address is loaded and added into the whole offset computation.
> +; CHECK-FDS add i64 %{{.*}}, %[[SHADOW] ]
> +
> +entry:
> +  %tmp1 = load i32, i32* %a, align 4
> +  ret i32 %tmp1
> +}
> 
> 
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits



More information about the llvm-commits mailing list