[compiler-rt] r198261 - tsan: fix Go build

Dmitry Vyukov dvyukov at google.com
Tue Dec 31 01:38:24 PST 2013


Author: dvyukov
Date: Tue Dec 31 03:38:23 2013
New Revision: 198261

URL: http://llvm.org/viewvc/llvm-project?rev=198261&view=rev
Log:
tsan: fix Go build
Currently fails with:
gotsan.cc:7686:40: error: the address of 'int __sanitizer_pthread_attr_getstack(void*, void**, size_t*)' will always evaluate as 'true' [-Werror=address]



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

Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux_libcdep.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux_libcdep.cc?rev=198261&r1=198260&r2=198261&view=diff
==============================================================================
--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux_libcdep.cc (original)
+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux_libcdep.cc Tue Dec 31 03:38:23 2013
@@ -33,20 +33,24 @@
 #include <link.h>
 #endif
 
+#ifndef SANITIZER_GO
 // This function is defined elsewhere if we intercepted pthread_attr_getstack.
 extern "C" SANITIZER_WEAK_ATTRIBUTE int
 __sanitizer_pthread_attr_getstack(void *attr, void **addr, size_t *size);
 
 static int my_pthread_attr_getstack(void *attr, void **addr, size_t *size) {
+#
   if (__sanitizer_pthread_attr_getstack)
     return __sanitizer_pthread_attr_getstack((pthread_attr_t *)attr, addr,
                                              size);
 
   return pthread_attr_getstack((pthread_attr_t *)attr, addr, size);
 }
+#endif  // #ifndef SANITIZER_GO
 
 namespace __sanitizer {
 
+#ifndef SANITIZER_GO
 void GetThreadStackTopAndBottom(bool at_initialization, uptr *stack_top,
                                 uptr *stack_bottom) {
   static const uptr kMaxThreadStackSize = 1 << 30;  // 1Gb
@@ -93,6 +97,7 @@ void GetThreadStackTopAndBottom(bool at_
   *stack_top = (uptr)stackaddr + stacksize;
   *stack_bottom = (uptr)stackaddr;
 }
+#endif  // #ifndef SANITIZER_GO
 
 // Does not compile for Go because dlsym() requires -ldl
 #ifndef SANITIZER_GO
@@ -278,6 +283,7 @@ void GetThreadStackAndTls(bool main, upt
 #endif  // SANITIZER_GO
 }
 
+#ifndef SANITIZER_GO
 void AdjustStackSizeLinux(void *attr_) {
   pthread_attr_t *attr = (pthread_attr_t *)attr_;
   uptr stackaddr = 0;
@@ -301,6 +307,7 @@ void AdjustStackSizeLinux(void *attr_) {
     }
   }
 }
+#endif  // SANITIZER_GO
 
 #if SANITIZER_ANDROID
 uptr GetListOfModules(LoadedModule *modules, uptr max_modules,





More information about the llvm-commits mailing list