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

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


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