svn commit: r295860 - in projects/clang380-import/contrib/compiler-rt/lib: msan sanitizer_common tsan/rtl

Dimitry Andric dim at FreeBSD.org
Sun Feb 21 16:27:57 UTC 2016


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


More information about the svn-src-projects mailing list