<div dir="ltr">I sent an email on r327068.  strcat is deprecated on Windows, which is causing a warning.<div><br></div><div>Side note, looks like all 4 of those tests are <a href="http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-android/builds/8468/steps/run%20lit%20tests%20%5Bi686%2Ffugu-userdebug%2FN2G48C%5D/logs/stdio">failing on Android</a>.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Mar 8, 2018 at 4:25 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"><div style="word-wrap:break-word;line-break:after-white-space">No problem. Do you know why it's failing though? Dan added this test today along with 3 other very similar tests (<a href="https://reviews.llvm.org/D43702" target="_blank">https://reviews.llvm.org/<wbr>D43702</a>), but only this one (<a href="http://strcat-overlap.cc" target="_blank">strcat-overlap.cc</a>) fails...<span class="HOEnZb"><font color="#888888"><div><br></div></font></span><div><span class="HOEnZb"><font color="#888888">Kuba</font></span><div><div class="h5"><br><div><br><blockquote type="cite"><div>On Mar 8, 2018, at 4:24 PM, Matt Morehouse <<a href="mailto:mascasa@google.com" target="_blank">mascasa@google.com</a>> wrote:</div><br class="m_5086347335408698831Apple-interchange-newline"><div><div dir="ltr">Great, thanks for the strcat test fix as well!</div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Mar 8, 2018 at 4:22 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"><div style="word-wrap:break-word;line-break:after-white-space">The bot is back to green: <<a href="http://lab.llvm.org:8011/builders/sanitizer-windows/builds/25347" target="_blank">http://lab.llvm.org:8011/buil<wbr>ders/sanitizer-windows/builds/<wbr>25347</a>><span class="m_5086347335408698831HOEnZb"><font color="#888888"><div><br></div></font></span><div><span class="m_5086347335408698831HOEnZb"><font color="#888888">Kuba</font></span><div><div class="m_5086347335408698831h5"><br><div><br><blockquote type="cite"><div>On Mar 8, 2018, at 3:59 PM, Kuba Mracek via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>> wrote:</div><br class="m_5086347335408698831m_-7480998754191688172Apple-interchange-newline"><div><div style="word-wrap:break-word;line-break:after-white-space">Thanks!<div><br></div><div>Kuba<br><div><br><blockquote type="cite"><div>On Mar 8, 2018, at 3:05 PM, Matt Morehouse via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>> wrote:</div><br class="m_5086347335408698831m_-7480998754191688172Apple-interchange-newline"><div><div dir="ltr">This seems to fail on Windows:  <a href="http://lab.llvm.org:8011/builders/sanitizer-windows/builds/25343/steps/run%20check-asan/logs/stdio" target="_blank">http://lab.llvm.org:<wbr>8011/builders/sanitizer-window<wbr>s/builds/25343/steps/run%<wbr>20check-asan/logs/stdio</a><div><br></div><div><pre style="font-family:"Courier New",courier,monotype,monospace;font-size:inherit;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;word-spacing:0px"><span class="m_5086347335408698831m_-7480998754191688172gmail-stdout" style="font-family:"Courier New",courier,monotype,monospace">FAIL: AddressSanitizer-i386-windows :: TestCases/<a href="http://lto-constmerge-odr.cc/" target="_blank">lto-constmerge-odr.c<wbr>c</a> (488 of 602)
******************** TEST 'AddressSanitizer-i386-windows :: TestCases/<a href="http://lto-constmerge-odr.cc/" target="_blank">lto-constmerge-odr.c<wbr>c</a>' FAILED ********************
Script:
--
C:/b/slave/sanitizer-windows/b<wbr>uild/./bin/clang.exe  -fsanitize=address -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer -fno-optimize-sibling-calls -gline-tables-only -gcodeview -gcolumn-info   -fms-compatibility-version=19.<wbr>00.24215.1  -O3 -flto C:\b\slave\sanitizer-windows\l<wbr>lvm\projects\compiler-rt\test\<wbr>asan\TestCases\<a href="http://lto-constmerge-odr.cc/" target="_blank">lto-constmerge-<wbr>odr.cc</a> -o C:\b\slave\sanitizer-windows\b<wbr>uild\projects\compiler-rt\test<wbr>\asan\I386WindowsConfig\TestCa<wbr>ses\Output\lto-constmerge-odr.<wbr>cc.tmp
C:\b\slave\sanitizer-windows\b<wbr>uild\projects\compiler-rt\test<wbr>\asan\I386WindowsConfig\TestCa<wbr>ses\Output\lto-constmerge-odr.<wbr>cc.tmp 2>&1
--
Exit Code: 1107

Command Output (stdout):
--
$ "C:/b/slave/sanitizer-windows/<wbr>build/./bin/clang.exe" "-fsanitize=address" "-mno-omit-leaf-frame-pointer" "-fno-omit-frame-pointer" "-fno-optimize-sibling-calls" "-gline-tables-only" "-gcodeview" "-gcolumn-info" "-fms-compatibility-version=19<wbr>.00.24215.1" "-O3" "-flto" "C:\b\slave\sanitizer-windows\<wbr>llvm\projects\compiler-rt\test<wbr>\asan\TestCases\<a href="http://lto-constmerge-odr.cc/" target="_blank">lto-constmerge<wbr>-odr.cc</a>" "-o" "C:\b\slave\sanitizer-windows\<wbr>build\projects\compiler-rt\tes<wbr>t\asan\I386WindowsConfig\TestC<wbr>ases\Output\lto-constmerge-<wbr>odr.cc.tmp"
# command output:
c:\users\buildbot\appdata\loca<wbr>l\temp\lit_tmp_q0kr73\lto-cons<wbr>tmerge-odr-c755bc.o : fatal error LNK1107: invalid or corrupt file: cannot read at 0x2F08


# command stderr:
clang.exe: error: linker command failed with exit code 1107 (use -v to see invocation)


error: command failed with exit status: 1107</span></pre><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Mar 8, 2018 at 1:02 PM, Kuba Mracek via llvm-commits <span dir="ltr"><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: kuba.brecka<br>
Date: Thu Mar  8 13:02:52 2018<br>
New Revision: 327062<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=327062&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject?rev=327062&view=rev</a><br>
Log:<br>
[asan] Fix a false positive ODR violation due to LTO ConstantMerge pass [compiler-rt part, take 3]<br>
<br>
This fixes a false positive ODR violation that is reported by ASan when using LTO. In cases, where two constant globals have the same value, LTO will merge them, which breaks ASan's ODR detection. See the included testcase for an example.<br>
<br>
Differential Revision: <a href="https://reviews.llvm.org/D43959" rel="noreferrer" target="_blank">https://reviews.llvm.org/D4395<wbr>9</a><br>
<br>
<br>
Added:<br>
    compiler-rt/trunk/test/asan/Te<wbr>stCases/<a href="http://lto-constmerge-odr.cc" target="_blank">lto-constmerge-odr.cc</a><br>
Modified:<br>
    compiler-rt/trunk/test/asan/Te<wbr>stCases/Darwin/<a href="http://odr-lto.cc/" target="_blank">odr-lto.cc</a><br>
<br>
Modified: compiler-rt/trunk/test/asan/Te<wbr>stCases/Darwin/<a href="http://odr-lto.cc/" target="_blank">odr-lto.cc</a><br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/asan/TestCases/Darwin/odr-lto.cc?rev=327062&r1=327061&r2=327062&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject/compiler-rt/trunk/test/a<wbr>san/TestCases/Darwin/odr-lto.c<wbr>c?rev=327062&r1=327061&r2=3270<wbr>62&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- compiler-rt/trunk/test/asan/Te<wbr>stCases/Darwin/<a href="http://odr-lto.cc/" target="_blank">odr-lto.cc</a> (original)<br>
+++ compiler-rt/trunk/test/asan/Te<wbr>stCases/Darwin/<a href="http://odr-lto.cc/" target="_blank">odr-lto.cc</a> Thu Mar  8 13:02:52 2018<br>
@@ -3,15 +3,10 @@<br>
<br>
 // REQUIRES: lto<br>
<br>
-// RUN: %clangxx_asan -DPART=0 -c %s -o %t-1.o -flto<br>
-// RUN: %clangxx_asan -DPART=1 -c %s -o %t-2.o -flto<br>
-// RUN: %clangxx_asan %t-1.o %t-2.o -o %t -flto<br>
-// RUN: not %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-ODR<br>
-<br>
 // RUN: %clangxx_asan -DPART=0 -c %s -o %t-1.o -flto -mllvm -asan-use-private-alias<br>
 // RUN: %clangxx_asan -DPART=1 -c %s -o %t-2.o -flto -mllvm -asan-use-private-alias<br>
 // RUN: %clangxx_asan %t-1.o %t-2.o -o %t -flto<br>
-// RUN: %env_asan_opts=use_odr_indicat<wbr>or=1 %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-NO-ODR<br>
+// RUN: %env_asan_opts=use_odr_indicat<wbr>or=1 %run %t 2>&1 | FileCheck %s<br>
<br>
 #include <stdio.h><br>
 #include <stdlib.h><br>
@@ -40,6 +35,5 @@ void putstest()<br>
<br>
 #endif // PART == 1<br>
<br>
-// CHECK-ODR: ERROR: AddressSanitizer: odr-violation<br>
-// CHECK-NO-ODR-NOT: ERROR: AddressSanitizer: odr-violation<br>
-// CHECK-NO-ODR: Done.<br>
+// CHECK-NOT: ERROR: AddressSanitizer: odr-violation<br>
+// CHECK: Done.<br>
<br>
Added: compiler-rt/trunk/test/asan/Te<wbr>stCases/<a href="http://lto-constmerge-odr.cc" target="_blank">lto-constmerge-odr.cc</a><br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/asan/TestCases/lto-constmerge-odr.cc?rev=327062&view=auto" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject/compiler-rt/trunk/test/a<wbr>san/TestCases/lto-constmerge-o<wbr>dr.cc?rev=327062&view=auto</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- compiler-rt/trunk/test/asan/Te<wbr>stCases/<a href="http://lto-constmerge-odr.cc" target="_blank">lto-constmerge-odr.cc</a> (added)<br>
+++ compiler-rt/trunk/test/asan/Te<wbr>stCases/<a href="http://lto-constmerge-odr.cc" target="_blank">lto-constmerge-odr.cc</a> Thu Mar  8 13:02:52 2018<br>
@@ -0,0 +1,14 @@<br>
+// RUN: %clangxx_asan -O3 -flto %s -o %t<br>
+// RUN: %run %t 2>&1<br>
+<br>
+// REQUIRES: lto<br>
+<br>
+int main(int argc, const char * argv[]) {<br>
+  struct { long width, height; } a = {16, 16};<br>
+  struct { long width, height; } b = {16, 16};<br>
+<br>
+  // Just to make sure 'a' and 'b' don't get optimized out.<br>
+  asm volatile("" : : "r" (&a), "r" (&b));<br>
+<br>
+  return 0;<br>
+}<br>
<br>
<br>
______________________________<wbr>_________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">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>
</blockquote></div><br></div>
______________________________<wbr>_________________<br>llvm-commits mailing list<br><a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a><br><a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-commits</a><br></div></blockquote></div><br></div></div>______________________________<wbr>_________________<br>llvm-commits mailing list<br><a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a><br><a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-commits</a><br></div></blockquote></div><br></div></div></div></div></blockquote></div><br></div>
</div></blockquote></div><br></div></div></div></div></blockquote></div><br></div>