[compiler-rt] r350098 - [sanitizer] Avoid memset call in tsan

Jordan Rupprecht via llvm-commits llvm-commits at lists.llvm.org
Thu Dec 27 12:29:10 PST 2018


Author: rupprecht
Date: Thu Dec 27 12:29:10 2018
New Revision: 350098

URL: http://llvm.org/viewvc/llvm-project?rev=350098&view=rev
Log:
[sanitizer] Avoid memset call in tsan

Summary: Assigning an array of bools to {false, false, false} can, in certain build configurations, lead to a memset call. Use internal_memset to avoid this.

Reviewers: eugenis

Subscribers: kubamracek, delcypher, llvm-commits, #sanitizers

Differential Revision: https://reviews.llvm.org/D56107

Modified:
    compiler-rt/trunk/lib/sanitizer_common/sanitizer_posix.cc

Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_posix.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_posix.cc?rev=350098&r1=350097&r2=350098&view=diff
==============================================================================
--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_posix.cc (original)
+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_posix.cc Thu Dec 27 12:29:10 2018
@@ -322,7 +322,8 @@ fd_t ReserveStandardFds(fd_t fd) {
   CHECK_GE(fd, 0);
   if (fd > 2)
     return fd;
-  bool used[3] = {false, false, false};
+  bool used[3];
+  internal_memset(used, 0, sizeof(used));
   while (fd <= 2) {
     used[fd] = true;
     fd = internal_dup(fd);




More information about the llvm-commits mailing list