Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 21 Feb 2016 16:27:55 +0000 (UTC)
From:      Dimitry Andric <dim@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r295860 - in projects/clang380-import/contrib/compiler-rt/lib: msan sanitizer_common tsan/rtl
Message-ID:  <201602211627.u1LGRtJN097584@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: dim
Date: Sun Feb 21 16:27:55 2016
New Revision: 295860
URL: https://svnweb.freebsd.org/changeset/base/295860

Log:
  Update compiler-rt to release_38 branch r261369.

Modified:
  projects/clang380-import/contrib/compiler-rt/lib/msan/msan_interceptors.cc
  projects/clang380-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cc
  projects/clang380-import/contrib/compiler-rt/lib/tsan/rtl/tsan_suppressions.cc
Directory Properties:
  projects/clang380-import/contrib/compiler-rt/   (props changed)

Modified: projects/clang380-import/contrib/compiler-rt/lib/msan/msan_interceptors.cc
==============================================================================
--- projects/clang380-import/contrib/compiler-rt/lib/msan/msan_interceptors.cc	Sun Feb 21 16:23:44 2016	(r295859)
+++ projects/clang380-import/contrib/compiler-rt/lib/msan/msan_interceptors.cc	Sun Feb 21 16:27:55 2016	(r295860)
@@ -1408,12 +1408,12 @@ int OnExit() {
   __msan_unpoison(ptr, size)
 #define COMMON_INTERCEPTOR_ENTER(ctx, func, ...)                  \
   if (msan_init_is_running) return REAL(func)(__VA_ARGS__);       \
+  ENSURE_MSAN_INITED();                                           \
   MSanInterceptorContext msan_ctx = {IsInInterceptorScope()};     \
   ctx = (void *)&msan_ctx;                                        \
   (void)ctx;                                                      \
   InterceptorScope interceptor_scope;                             \
-  __msan_unpoison(__errno_location(), sizeof(int)); /* NOLINT */  \
-  ENSURE_MSAN_INITED();
+  __msan_unpoison(__errno_location(), sizeof(int)); /* NOLINT */
 #define COMMON_INTERCEPTOR_DIR_ACQUIRE(ctx, path) \
   do {                                            \
   } while (false)

Modified: projects/clang380-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cc
==============================================================================
--- projects/clang380-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cc	Sun Feb 21 16:23:44 2016	(r295859)
+++ projects/clang380-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cc	Sun Feb 21 16:27:55 2016	(r295860)
@@ -222,6 +222,11 @@ uptr ThreadDescriptorSize() {
     char *end;
     int minor = internal_simple_strtoll(buf + 8, &end, 10);
     if (end != buf + 8 && (*end == '\0' || *end == '.')) {
+      int patch = 0;
+      if (*end == '.')
+        // strtoll will return 0 if no valid conversion could be performed
+        patch = internal_simple_strtoll(end + 1, nullptr, 10);
+
       /* sizeof(struct pthread) values from various glibc versions.  */
       if (SANITIZER_X32)
         val = 1728;  // Assume only one particular version for x32.
@@ -235,9 +240,9 @@ uptr ThreadDescriptorSize() {
         val = FIRST_32_SECOND_64(1136, 1712);
       else if (minor == 10)
         val = FIRST_32_SECOND_64(1168, 1776);
-      else if (minor <= 12)
+      else if (minor == 11 || (minor == 12 && patch == 1))
         val = FIRST_32_SECOND_64(1168, 2288);
-      else if (minor == 13)
+      else if (minor <= 13)
         val = FIRST_32_SECOND_64(1168, 2304);
       else
         val = FIRST_32_SECOND_64(1216, 2304);

Modified: projects/clang380-import/contrib/compiler-rt/lib/tsan/rtl/tsan_suppressions.cc
==============================================================================
--- projects/clang380-import/contrib/compiler-rt/lib/tsan/rtl/tsan_suppressions.cc	Sun Feb 21 16:23:44 2016	(r295859)
+++ projects/clang380-import/contrib/compiler-rt/lib/tsan/rtl/tsan_suppressions.cc	Sun Feb 21 16:27:55 2016	(r295860)
@@ -159,8 +159,8 @@ void PrintMatchedSuppressions() {
   Printf("ThreadSanitizer: Matched %d suppressions (pid=%d):\n", hit_count,
          (int)internal_getpid());
   for (uptr i = 0; i < matched.size(); i++) {
-    Printf("%d %s:%s\n", matched[i]->hit_count, matched[i]->type,
-           matched[i]->templ);
+    Printf("%d %s:%s\n", atomic_load_relaxed(&matched[i]->hit_count),
+           matched[i]->type, matched[i]->templ);
   }
 }
 }  // namespace __tsan



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201602211627.u1LGRtJN097584>