Please don't rely on unix2dos. Comitting a file with \r\n is much better than adding dependencies like this.<div>I also don't think this test should be Windows only.<span></span><br><div><br></div><div>Thank you,</div><div><br></div><div>  Filipe<br><br>On Wednesday, August 26, 2015, Reid Kleckner via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: rnk<br>
Date: Wed Aug 26 17:23:50 2015<br>
New Revision: 246096<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=246096&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=246096&view=rev</a><br>
Log:<br>
Handle suppression files ending in CRLF (\r\n)<br>
<br>
The gnuwin32 version of 'echo' appears to produce such files, causing a<br>
test failure that only reproduced with gnuwin32.<br>
<br>
Added:<br>
    compiler-rt/trunk/test/asan/TestCases/Windows/suppressions-crlf.cc<br>
Modified:<br>
    compiler-rt/trunk/lib/sanitizer_common/sanitizer_suppressions.cc<br>
<br>
Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_suppressions.cc<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_suppressions.cc?rev=246096&r1=246095&r2=246096&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_suppressions.cc?rev=246096&r1=246095&r2=246096&view=diff</a><br>
==============================================================================<br>
--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_suppressions.cc (original)<br>
+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_suppressions.cc Wed Aug 26 17:23:50 2015<br>
@@ -112,7 +112,8 @@ void SuppressionContext::Parse(const cha<br>
       end = line + internal_strlen(line);<br>
     if (line != end && line[0] != '#') {<br>
       const char *end2 = end;<br>
-      while (line != end2 && (end2[-1] == ' ' || end2[-1] == '\t'))<br>
+      while (line != end2 &&<br>
+             (end2[-1] == ' ' || end2[-1] == '\t' || end2[-1] == '\r'))<br>
         end2--;<br>
       int type;<br>
       for (type = 0; type < suppression_types_num_; type++) {<br>
<br>
Added: compiler-rt/trunk/test/asan/TestCases/Windows/suppressions-crlf.cc<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/asan/TestCases/Windows/suppressions-crlf.cc?rev=246096&view=auto" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/asan/TestCases/Windows/suppressions-crlf.cc?rev=246096&view=auto</a><br>
==============================================================================<br>
--- compiler-rt/trunk/test/asan/TestCases/Windows/suppressions-crlf.cc (added)<br>
+++ compiler-rt/trunk/test/asan/TestCases/Windows/suppressions-crlf.cc Wed Aug 26 17:23:50 2015<br>
@@ -0,0 +1,19 @@<br>
+// Try a strlen suppression, but force the input file to be DOS format (CRLF).<br>
+// RUN: %clangxx_asan -O0 %s -o %t<br>
+// RUN: echo "interceptor_name:strlen" > %t.supp<br>
+// RUN: unix2dos %t.supp<br>
+// RUN: %env_asan_opts=suppressions='"%t.supp"' %run %t 2>&1 | FileCheck %s<br>
+<br>
+#include <stdio.h><br>
+#include <stdlib.h><br>
+#include <string.h><br>
+<br>
+int main() {<br>
+  char *a = (char *)malloc(6);<br>
+  free(a);<br>
+  size_t len = strlen(a); // BOOM<br>
+  fprintf(stderr, "strlen ignored, len = %zu\n", len);<br>
+}<br>
+<br>
+// CHECK-NOT: AddressSanitizer: heap-use-after-free<br>
+// CHECK: strlen ignored<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="javascript:;" onclick="_e(event, 'cvml', 'llvm-commits@lists.llvm.org')">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/mailman/listinfo/llvm-commits</a><br>
</blockquote></div></div><br><br>-- <br>  F<br><br>