From owner-svn-src-projects@freebsd.org  Sun Feb 21 16:27:57 2016
Return-Path: <owner-svn-src-projects@freebsd.org>
Delivered-To: svn-src-projects@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3D681AB083F
 for <svn-src-projects@mailman.ysv.freebsd.org>;
 Sun, 21 Feb 2016 16:27:57 +0000 (UTC) (envelope-from dim@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 173201F6A;
 Sun, 21 Feb 2016 16:27:57 +0000 (UTC) (envelope-from dim@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u1LGRuEr097587;
 Sun, 21 Feb 2016 16:27:56 GMT (envelope-from dim@FreeBSD.org)
Received: (from dim@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id u1LGRtJN097584;
 Sun, 21 Feb 2016 16:27:55 GMT (envelope-from dim@FreeBSD.org)
Message-Id: <201602211627.u1LGRtJN097584@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org
 using -f
From: Dimitry Andric <dim@FreeBSD.org>
Date: Sun, 21 Feb 2016 16:27:55 +0000 (UTC)
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
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.20
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
 tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
 <mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sun, 21 Feb 2016 16:27:57 -0000

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