<div dir="ltr">Particularity this one is not regression test, I just noticed that this flag is untested.</div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Aug 7, 2017 at 1:58 PM, Kuba Mracek <span dir="ltr"><<a href="mailto:mracek@apple.com" target="_blank">mracek@apple.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">It's a miscompile when using ASan with a dynamic shadow memory.<br>
<br>
CC'ing Vitaly and Kostya.<br>
<br>
Kuba<br>
<br>
> On 7 Aug 2017, at 13:40, Hans Wennborg <<a href="mailto:hans@chromium.org">hans@chromium.org</a>> wrote:<br>
><br>
> Which bug? There's zero context here.<br>
<div class="HOEnZb"><div class="h5">><br>
> On Mon, Aug 7, 2017 at 1:39 PM, Kuba Mracek <<a href="mailto:mracek@apple.com">mracek@apple.com</a>> wrote:<br>
>> 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.<br>
>><br>
>> Kuba<br>
>><br>
>>> On 7 Aug 2017, at 13:38, Hans Wennborg <<a href="mailto:hans@chromium.org">hans@chromium.org</a>> wrote:<br>
>>><br>
>>> What's the motivation? It seems this just adds a test for<br>
>>> functionality that landed sime time back?<br>
>>><br>
>>> On Mon, Aug 7, 2017 at 8:18 AM, Kuba Mracek <<a href="mailto:mracek@apple.com">mracek@apple.com</a>> wrote:<br>
>>>> Please merge into release_50.<br>
>>>><br>
>>>> Thanks,<br>
>>>> Kuba<br>
>>>><br>
>>>>> On 7 Aug 2017, at 00:12, Vitaly Buka via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a>> wrote:<br>
>>>>><br>
>>>>> Author: vitalybuka<br>
>>>>> Date: Mon Aug  7 00:12:33 2017<br>
>>>>> New Revision: 310240<br>
>>>>><br>
>>>>> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=310240&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project?rev=310240&view=rev</a><br>
>>>>> Log:<br>
>>>>> Add -asan-force-dynamic-shadow test<br>
>>>>><br>
>>>>> Added:<br>
>>>>>  llvm/trunk/test/<wbr>Instrumentation/<wbr>AddressSanitizer/force-<wbr>dynamic-shadow.ll<br>
>>>>><br>
>>>>> Added: llvm/trunk/test/<wbr>Instrumentation/<wbr>AddressSanitizer/force-<wbr>dynamic-shadow.ll<br>
>>>>> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Instrumentation/AddressSanitizer/force-dynamic-shadow.ll?rev=310240&view=auto" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>Instrumentation/<wbr>AddressSanitizer/force-<wbr>dynamic-shadow.ll?rev=310240&<wbr>view=auto</a><br>
>>>>> ==============================<wbr>==============================<wbr>==================<br>
>>>>> --- llvm/trunk/test/<wbr>Instrumentation/<wbr>AddressSanitizer/force-<wbr>dynamic-shadow.ll (added)<br>
>>>>> +++ llvm/trunk/test/<wbr>Instrumentation/<wbr>AddressSanitizer/force-<wbr>dynamic-shadow.ll Mon Aug  7 00:12:33 2017<br>
>>>>> @@ -0,0 +1,22 @@<br>
>>>>> +; Test -asan-force-dynamic-shadow flag.<br>
>>>>> +;<br>
>>>>> +; RUN: opt -asan -asan-module -S -asan-force-dynamic-shadow=1 < %s | FileCheck %s --check-prefixes=CHECK,CHECK-<wbr>FDS<br>
>>>>> +; RUN: opt -asan -asan-module -S -asan-force-dynamic-shadow=0 < %s | FileCheck %s --check-prefixes=CHECK,CHECK-<wbr>NDS<br>
>>>>> +<br>
>>>>> +target triple = "x86_64-unknown-linux-gnu"<br>
>>>>> +<br>
>>>>> +define i32 @test_load(i32* %a) sanitize_address {<br>
>>>>> +; First instrumentation in the function must be to load the dynamic shadow<br>
>>>>> +; address into a local variable.<br>
>>>>> +; CHECK-LABEL: @test_load<br>
>>>>> +; CHECK: entry:<br>
>>>>> +; CHECK-FDS-NEXT: %[[SHADOW:[^ ]*]] = load i64, i64* @__asan_shadow_memory_dynamic_<wbr>address<br>
>>>>> +; CHECK-NDS-NOT: __asan_shadow_memory_dynamic_<wbr>address<br>
>>>>> +<br>
>>>>> +; Shadow address is loaded and added into the whole offset computation.<br>
>>>>> +; CHECK-FDS add i64 %{{.*}}, %[[SHADOW] ]<br>
>>>>> +<br>
>>>>> +entry:<br>
>>>>> +  %tmp1 = load i32, i32* %a, align 4<br>
>>>>> +  ret i32 %tmp1<br>
>>>>> +}<br>
>>>>><br>
>>>>><br>
>>>>> ______________________________<wbr>_________________<br>
>>>>> llvm-commits mailing list<br>
>>>>> <a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a><br>
>>>>> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-commits</a><br>
>>>><br>
>><br>
<br>
</div></div></blockquote></div><br></div>