[compiler-rt] fde3ae8 - [asan][memprof] Declare _DYNAMIC and fix -Wparentheses

Fangrui Song via llvm-commits llvm-commits at lists.llvm.org
Sun Dec 27 20:29:08 PST 2020


Author: Fangrui Song
Date: 2020-12-27T20:28:59-08:00
New Revision: fde3ae88ee4236d6ecb8178c6c893df5a5a04437

URL: https://github.com/llvm/llvm-project/commit/fde3ae88ee4236d6ecb8178c6c893df5a5a04437
DIFF: https://github.com/llvm/llvm-project/commit/fde3ae88ee4236d6ecb8178c6c893df5a5a04437.diff

LOG: [asan][memprof] Declare _DYNAMIC and fix -Wparentheses

Declare `extern ElfW(Dyn) _DYNAMIC[];` so that it will trivially work on musl.

Added: 
    

Modified: 
    compiler-rt/lib/asan/asan_linux.cpp
    compiler-rt/lib/memprof/memprof_linux.cpp
    compiler-rt/lib/memprof/memprof_mapping.h

Removed: 
    


################################################################################
diff  --git a/compiler-rt/lib/asan/asan_linux.cpp b/compiler-rt/lib/asan/asan_linux.cpp
index fb1a442b3d43..4bcbe5d02e33 100644
--- a/compiler-rt/lib/asan/asan_linux.cpp
+++ b/compiler-rt/lib/asan/asan_linux.cpp
@@ -55,6 +55,7 @@ extern Elf_Dyn _DYNAMIC;
 #else
 #include <sys/ucontext.h>
 #include <link.h>
+extern ElfW(Dyn) _DYNAMIC[];
 #endif
 
 // x86-64 FreeBSD 9.2 and older define 'ucontext_t' incorrectly in
@@ -84,7 +85,7 @@ bool IsSystemHeapAddress (uptr addr) { return false; }
 
 void *AsanDoesNotSupportStaticLinkage() {
   // This will fail to link with -static.
-  return &_DYNAMIC;  // defined in link.h
+  return &_DYNAMIC;
 }
 
 #if ASAN_PREMAP_SHADOW

diff  --git a/compiler-rt/lib/memprof/memprof_linux.cpp b/compiler-rt/lib/memprof/memprof_linux.cpp
index 4846e988f58e..61c833bfdf64 100644
--- a/compiler-rt/lib/memprof/memprof_linux.cpp
+++ b/compiler-rt/lib/memprof/memprof_linux.cpp
@@ -39,6 +39,8 @@
 #include <unistd.h>
 #include <unwind.h>
 
+extern ElfW(Dyn) _DYNAMIC[];
+
 typedef enum {
   MEMPROF_RT_VERSION_UNDEFINED = 0,
   MEMPROF_RT_VERSION_DYNAMIC,
@@ -58,7 +60,7 @@ void InitializePlatformExceptionHandlers() {}
 
 void *MemprofDoesNotSupportStaticLinkage() {
   // This will fail to link with -static.
-  return &_DYNAMIC; // defined in link.h
+  return &_DYNAMIC;
 }
 
 uptr FindDynamicShadowStart() {

diff  --git a/compiler-rt/lib/memprof/memprof_mapping.h b/compiler-rt/lib/memprof/memprof_mapping.h
index f48018b1a8f2..ba05b88db307 100644
--- a/compiler-rt/lib/memprof/memprof_mapping.h
+++ b/compiler-rt/lib/memprof/memprof_mapping.h
@@ -37,7 +37,7 @@ extern uptr kHighMemEnd; // Initialized in __memprof_init.
 #define SHADOW_MASK ~(MEM_GRANULARITY - 1)
 
 #define MEM_TO_SHADOW(mem)                                                     \
-  (((mem & SHADOW_MASK) >> SHADOW_SCALE) + (SHADOW_OFFSET))
+  ((((mem) & SHADOW_MASK) >> SHADOW_SCALE) + (SHADOW_OFFSET))
 
 #define kLowMemBeg 0
 #define kLowMemEnd (SHADOW_OFFSET ? SHADOW_OFFSET - 1 : 0)


        


More information about the llvm-commits mailing list