[llvm] r310240 - Add -asan-force-dynamic-shadow test
Kuba Mracek via llvm-commits
llvm-commits at lists.llvm.org
Mon Aug 7 13:58:06 PDT 2017
It's a miscompile when using ASan with a dynamic shadow memory.
CC'ing Vitaly and Kostya.
Kuba
> On 7 Aug 2017, at 13:40, Hans Wennborg <hans at chromium.org> wrote:
>
> Which bug? There's zero context here.
>
> On Mon, Aug 7, 2017 at 1:39 PM, Kuba Mracek <mracek at apple.com> wrote:
>> It's a regression test for a recent bug. The bug was not covered by an existing test. I want to make sure the bug doesn't reappear.
>>
>> Kuba
>>
>>> On 7 Aug 2017, at 13:38, Hans Wennborg <hans at chromium.org> wrote:
>>>
>>> What's the motivation? It seems this just adds a test for
>>> functionality that landed sime time back?
>>>
>>> On Mon, Aug 7, 2017 at 8:18 AM, Kuba Mracek <mracek at apple.com> wrote:
>>>> 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