<div dir="ltr">Posting here as you won't get the blame email from at least one build bot due to a bug (that I sent an email to Galina about):<div><br></div><div><a href="http://lab.llvm.org:8011/builders/clang-x86_64-debian-fast/builds/3551/steps/compile/logs/stdio">http://lab.llvm.org:8011/builders/clang-x86_64-debian-fast/builds/3551/steps/compile/logs/stdio</a><br>
</div><div><br></div><div style>I think this is from your commit.</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Apr 8, 2013 at 1:25 AM, Evgeniy Stepanov <span dir="ltr"><<a href="mailto:eugeni.stepanov@gmail.com" target="_blank">eugeni.stepanov@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: eugenis<br>
Date: Mon Apr  8 03:25:22 2013<br>
New Revision: 179002<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=179002&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=179002&view=rev</a><br>
Log:<br>
[msan] Intercept time().<br>
<br>
Modified:<br>
    compiler-rt/trunk/lib/msan/tests/msan_test.cc<br>
    compiler-rt/trunk/lib/sanitizer_common/sanitizer_common_interceptors.inc<br>
    compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_interceptors.h<br>
<br>
Modified: compiler-rt/trunk/lib/msan/tests/msan_test.cc<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/msan/tests/msan_test.cc?rev=179002&r1=179001&r2=179002&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/msan/tests/msan_test.cc?rev=179002&r1=179001&r2=179002&view=diff</a><br>

==============================================================================<br>
--- compiler-rt/trunk/lib/msan/tests/msan_test.cc (original)<br>
+++ compiler-rt/trunk/lib/msan/tests/msan_test.cc Mon Apr  8 03:25:22 2013<br>
@@ -889,6 +889,14 @@ TEST(MemorySanitizer, getitimer) {<br>
   assert(!res);<br>
 }<br>
<br>
+TEST(MemorySanitizer, time) {<br>
+  time_t t;<br>
+  EXPECT_POISONED(t);<br>
+  time_t t2 = time(&t);<br>
+  assert(t2 != (time_t)-1);<br>
+  EXPECT_NOT_POISONED(t);<br>
+}<br>
+<br>
 TEST(MemorySanitizer, localtime) {<br>
   time_t t = 123;<br>
   struct tm *time = localtime(&t);<br>
<br>
Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_common_interceptors.inc<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_common_interceptors.inc?rev=179002&r1=179001&r2=179002&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_common_interceptors.inc?rev=179002&r1=179001&r2=179002&view=diff</a><br>

==============================================================================<br>
--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_common_interceptors.inc (original)<br>
+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_common_interceptors.inc Mon Apr  8 03:25:22 2013<br>
@@ -230,6 +230,24 @@ INTERCEPTOR(int, prctl, int option,<br>
 #define INIT_PRCTL<br>
 #endif // SANITIZER_INTERCEPT_PRCTL<br>
<br>
+<br>
+#if SANITIZER_INTERCEPT_TIME<br>
+INTERCEPTOR(unsigned long, time, unsigned long *t) {<br>
+  void *ctx;<br>
+  COMMON_INTERCEPTOR_ENTER(ctx, time, t);<br>
+  unsigned long res = REAL(time)(t);<br>
+  if (res != -1) {<br>
+    COMMON_INTERCEPTOR_WRITE_RANGE(ctx, t, sizeof(*t));<br>
+  }<br>
+  return res;<br>
+}<br>
+#define INIT_TIME                                \<br>
+  INTERCEPT_FUNCTION(time);<br>
+#else<br>
+#define INIT_TIME<br>
+#endif // SANITIZER_INTERCEPT_TIME<br>
+<br>
+<br>
 #if SANITIZER_INTERCEPT_LOCALTIME_AND_FRIENDS<br>
 INTERCEPTOR(void *, localtime, unsigned long *timep) {<br>
   void *ctx;<br>
@@ -548,4 +566,5 @@ INTERCEPTOR(int, setitimer, int which, c<br>
   INIT_GETPWNAM_GETPWUID;                                                      \<br>
   INIT_GETPWNAM_R_GETPWUID_R;                                                  \<br>
   INIT_CLOCK_GETTIME;                                                          \<br>
-  INIT_GETITIMER;<br>
+  INIT_GETITIMER;                                                              \<br>
+  INIT_TIME;<br>
<br>
Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_interceptors.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_interceptors.h?rev=179002&r1=179001&r2=179002&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_interceptors.h?rev=179002&r1=179001&r2=179002&view=diff</a><br>

==============================================================================<br>
--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_interceptors.h (original)<br>
+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_interceptors.h Mon Apr  8 03:25:22 2013<br>
@@ -63,3 +63,4 @@<br>
     SI_MAC || SI_LINUX_NOT_ANDROID<br>
 # define SANITIZER_INTERCEPT_CLOCK_GETTIME SI_LINUX<br>
 # define SANITIZER_INTERCEPT_GETITIMER SI_NOT_WINDOWS<br>
+# define SANITIZER_INTERCEPT_TIME SI_NOT_WINDOWS<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br></div>