<html><head><meta http-equiv="Content-Type" content="text/html; charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><<a href="http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20170731/476672.html" class="">http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20170731/476672.html</a>>.<div class=""><br class=""></div><div class="">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.</div><div class=""><br class=""></div><div class="">Kuba<br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On 7 Aug 2017, at 14:02, Hans Wennborg <<a href="mailto:hans@chromium.org" class="">hans@chromium.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="">Was there a bug or any written communication about the miscompile?<br class="">Which commit fixed it, and which added the regression test?<br class=""><br class="">Sorry if I seem confused, but some more context would help.<br class=""><br class="">On Mon, Aug 7, 2017 at 2:00 PM, Vitaly Buka <<a href="mailto:vitalybuka@google.com" class="">vitalybuka@google.com</a>> wrote:<br class=""><blockquote type="cite" class="">Particularity this one is not regression test, I just noticed that this flag<br class="">is untested.<br class=""><br class="">On Mon, Aug 7, 2017 at 1:58 PM, Kuba Mracek <<a href="mailto:mracek@apple.com" class="">mracek@apple.com</a>> wrote:<br class=""><blockquote type="cite" class=""><br class="">It's a miscompile when using ASan with a dynamic shadow memory.<br class=""><br class="">CC'ing Vitaly and Kostya.<br class=""><br class="">Kuba<br class=""><br class=""><blockquote type="cite" class="">On 7 Aug 2017, at 13:40, Hans Wennborg <<a href="mailto:hans@chromium.org" class="">hans@chromium.org</a>> wrote:<br class=""><br class="">Which bug? There's zero context here.<br class=""><br class="">On Mon, Aug 7, 2017 at 1:39 PM, Kuba Mracek <<a href="mailto:mracek@apple.com" class="">mracek@apple.com</a>> wrote:<br class=""><blockquote type="cite" class="">It's a regression test for a recent bug.  The bug was not covered by an<br class="">existing test.  I want to make sure the bug doesn't reappear.<br class=""><br class="">Kuba<br class=""><br class=""><blockquote type="cite" class="">On 7 Aug 2017, at 13:38, Hans Wennborg <<a href="mailto:hans@chromium.org" class="">hans@chromium.org</a>> wrote:<br class=""><br class="">What's the motivation? It seems this just adds a test for<br class="">functionality that landed sime time back?<br class=""><br class="">On Mon, Aug 7, 2017 at 8:18 AM, Kuba Mracek <<a href="mailto:mracek@apple.com" class="">mracek@apple.com</a>> wrote:<br class=""><blockquote type="cite" class="">Please merge into release_50.<br class=""><br class="">Thanks,<br class="">Kuba<br class=""><br class=""><blockquote type="cite" class="">On 7 Aug 2017, at 00:12, Vitaly Buka via llvm-commits<br class=""><<a href="mailto:llvm-commits@lists.llvm.org" class="">llvm-commits@lists.llvm.org</a>> wrote:<br class=""><br class="">Author: vitalybuka<br class="">Date: Mon Aug  7 00:12:33 2017<br class="">New Revision: 310240<br class=""><br class="">URL: <a href="http://llvm.org/viewvc/llvm-project?rev=310240&view=rev" class="">http://llvm.org/viewvc/llvm-project?rev=310240&view=rev</a><br class="">Log:<br class="">Add -asan-force-dynamic-shadow test<br class=""><br class="">Added:<br class=""><br class="">llvm/trunk/test/Instrumentation/AddressSanitizer/force-dynamic-shadow.ll<br class=""><br class="">Added:<br class="">llvm/trunk/test/Instrumentation/AddressSanitizer/force-dynamic-shadow.ll<br class="">URL:<br class=""><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Instrumentation/AddressSanitizer/force-dynamic-shadow.ll?rev=310240&view=auto" class="">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Instrumentation/AddressSanitizer/force-dynamic-shadow.ll?rev=310240&view=auto</a><br class=""><br class="">==============================================================================<br class="">---<br class="">llvm/trunk/test/Instrumentation/AddressSanitizer/force-dynamic-shadow.ll<br class="">(added)<br class="">+++<br class="">llvm/trunk/test/Instrumentation/AddressSanitizer/force-dynamic-shadow.ll Mon<br class="">Aug  7 00:12:33 2017<br class="">@@ -0,0 +1,22 @@<br class="">+; Test -asan-force-dynamic-shadow flag.<br class="">+;<br class="">+; RUN: opt -asan -asan-module -S -asan-force-dynamic-shadow=1 < %s<br class="">| FileCheck %s --check-prefixes=CHECK,CHECK-FDS<br class="">+; RUN: opt -asan -asan-module -S -asan-force-dynamic-shadow=0 < %s<br class="">| FileCheck %s --check-prefixes=CHECK,CHECK-NDS<br class="">+<br class="">+target triple = "x86_64-unknown-linux-gnu"<br class="">+<br class="">+define i32 @test_load(i32* %a) sanitize_address {<br class="">+; First instrumentation in the function must be to load the dynamic<br class="">shadow<br class="">+; address into a local variable.<br class="">+; CHECK-LABEL: @test_load<br class="">+; CHECK: entry:<br class="">+; CHECK-FDS-NEXT: %[[SHADOW:[^ ]*]] = load i64, i64*<br class="">@__asan_shadow_memory_dynamic_address<br class="">+; CHECK-NDS-NOT: __asan_shadow_memory_dynamic_address<br class="">+<br class="">+; Shadow address is loaded and added into the whole offset<br class="">computation.<br class="">+; CHECK-FDS add i64 %{{.*}}, %[[SHADOW] ]<br class="">+<br class="">+entry:<br class="">+  %tmp1 = load i32, i32* %a, align 4<br class="">+  ret i32 %tmp1<br class="">+}<br class=""><br class=""><br class="">_______________________________________________<br class="">llvm-commits mailing list<br class="">llvm-commits@lists.llvm.org<br class="">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits<br class=""></blockquote><br class=""></blockquote></blockquote><br class=""></blockquote></blockquote><br class=""></blockquote><br class=""></blockquote></div></div></blockquote></div><br class=""></div></body></html>