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

Hans Wennborg via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 7 14:02:57 PDT 2017


Was there a bug or any written communication about the miscompile?
Which commit fixed it, and which added the regression test?

Sorry if I seem confused, but some more context would help.

On Mon, Aug 7, 2017 at 2:00 PM, Vitaly Buka <vitalybuka at google.com> wrote:
> Particularity this one is not regression test, I just noticed that this flag
> is untested.
>
> On Mon, Aug 7, 2017 at 1:58 PM, Kuba Mracek <mracek at apple.com> wrote:
>>
>> 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