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

Hans Wennborg via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 7 15:12:16 PDT 2017


Merged in r310316.

Thanks,
Hans

On Mon, Aug 7, 2017 at 2:59 PM, Kuba Mracek <mracek at apple.com> wrote:
> Right, thanks and sorry for not explaining the situation earlier.
>
> Yes, I meant r310240.
>
> Kuba
>
>> On 7 Aug 2017, at 14:54, Hans Wennborg <hans at chromium.org> wrote:
>>
>> On Mon, Aug 7, 2017 at 2:08 PM, Kuba Mracek <mracek at apple.com> wrote:
>>> <http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20170731/476672.html>.
>>
>> Thanks, that clarifies things! :-)
>>
>> For future reference, it's good to file an issue in bugzilla when
>> reporting a problem like this. Then Vitaly could have referred to that
>> when fixing, and you could have referred to it for in the merge
>> request, making it easier for everyone to follow along.
>>
>>> The fix was to disable the "copy byvals via memcpy" feature when using the
>>> dynamic shadow, which is more of a temporary fix, done in r310241.  And
>>> r310242 should be included as well to make sure we don't try to re-enable
>>> this feature without making it work first.
>>
>> r310242 just looks like a fix to r310241 though? I've merged both to
>> 5.0 in r310309.
>>
>> For "make sure we don't try to re-enable this feature without making
>> it work first.", were you referring to r310240?
>>
>>
>>
>>> On 7 Aug 2017, at 14:02, Hans Wennborg <hans at chromium.org> wrote:
>>>
>>> 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