[compiler-rt] 591eb2b - [ASan] Refactored SHADOW_OFFSET implementation to use SHADOW_OFFSET_CONST.

Kirill Stoimenov via llvm-commits llvm-commits at lists.llvm.org
Tue Dec 7 09:53:49 PST 2021


Author: Kirill Stoimenov
Date: 2021-12-07T17:53:38Z
New Revision: 591eb2bdb66b6b5500b44ddecc08a77fd6194d45

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

LOG: [ASan] Refactored SHADOW_OFFSET implementation to use SHADOW_OFFSET_CONST.

Reviewed By: vitalybuka

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

Added: 
    

Modified: 
    compiler-rt/lib/asan/asan_mapping.h

Removed: 
    


################################################################################
diff  --git a/compiler-rt/lib/asan/asan_mapping.h b/compiler-rt/lib/asan/asan_mapping.h
index ae0d546319f29..f5248f101f055 100644
--- a/compiler-rt/lib/asan/asan_mapping.h
+++ b/compiler-rt/lib/asan/asan_mapping.h
@@ -177,53 +177,59 @@ static const u64 kWindowsShadowOffset32 = 3ULL << 28;   // 0x30000000
 #define SHADOW_SCALE kDefaultShadowScale
 
 #if SANITIZER_FUCHSIA
-#  define SHADOW_OFFSET (0)
+#  define SHADOW_OFFSET_CONST (0)
 #elif SANITIZER_WORDSIZE == 32
 #  if SANITIZER_ANDROID
-#    define SHADOW_OFFSET __asan_shadow_memory_dynamic_address
+#    define SHADOW_OFFSET_DYNAMIC
 #  elif defined(__mips__)
-#    define SHADOW_OFFSET kMIPS32_ShadowOffset32
+#    define SHADOW_OFFSET_CONST kMIPS32_ShadowOffset32
 #  elif SANITIZER_FREEBSD
-#    define SHADOW_OFFSET kFreeBSD_ShadowOffset32
+#    define SHADOW_OFFSET_CONST kFreeBSD_ShadowOffset32
 #  elif SANITIZER_NETBSD
-#    define SHADOW_OFFSET kNetBSD_ShadowOffset32
+#    define SHADOW_OFFSET_CONST kNetBSD_ShadowOffset32
 #  elif SANITIZER_WINDOWS
-#    define SHADOW_OFFSET kWindowsShadowOffset32
+#    define SHADOW_OFFSET_CONST kWindowsShadowOffset32
 #  elif SANITIZER_IOS
-#    define SHADOW_OFFSET __asan_shadow_memory_dynamic_address
+#    define SHADOW_OFFSET_DYNAMIC
 #  else
-#    define SHADOW_OFFSET kDefaultShadowOffset32
+#    define SHADOW_OFFSET_CONST kDefaultShadowOffset32
 #  endif
 #else
 #  if SANITIZER_IOS
-#    define SHADOW_OFFSET __asan_shadow_memory_dynamic_address
+#    define SHADOW_OFFSET_DYNAMIC
 #  elif SANITIZER_MAC && defined(__aarch64__)
-#    define SHADOW_OFFSET __asan_shadow_memory_dynamic_address
+#    define SHADOW_OFFSET_DYNAMIC
 #  elif SANITIZER_RISCV64
-#    define SHADOW_OFFSET kRiscv64_ShadowOffset64
+#    define SHADOW_OFFSET_CONST kRiscv64_ShadowOffset64
 #  elif defined(__aarch64__)
-#    define SHADOW_OFFSET kAArch64_ShadowOffset64
+#    define SHADOW_OFFSET_CONST kAArch64_ShadowOffset64
 #  elif defined(__powerpc64__)
-#    define SHADOW_OFFSET kPPC64_ShadowOffset64
+#    define SHADOW_OFFSET_CONST kPPC64_ShadowOffset64
 #  elif defined(__s390x__)
-#    define SHADOW_OFFSET kSystemZ_ShadowOffset64
+#    define SHADOW_OFFSET_CONST kSystemZ_ShadowOffset64
 #  elif SANITIZER_FREEBSD
-#    define SHADOW_OFFSET kFreeBSD_ShadowOffset64
+#    define SHADOW_OFFSET_CONST kFreeBSD_ShadowOffset64
 #  elif SANITIZER_NETBSD
-#    define SHADOW_OFFSET kNetBSD_ShadowOffset64
+#    define SHADOW_OFFSET_CONST kNetBSD_ShadowOffset64
 #  elif SANITIZER_MAC
-#    define SHADOW_OFFSET kDefaultShadowOffset64
+#    define SHADOW_OFFSET_CONST kDefaultShadowOffset64
 #  elif defined(__mips64)
-#    define SHADOW_OFFSET kMIPS64_ShadowOffset64
+#    define SHADOW_OFFSET_CONST kMIPS64_ShadowOffset64
 #  elif defined(__sparc__)
-#    define SHADOW_OFFSET kSPARC64_ShadowOffset64
+#    define SHADOW_OFFSET_CONST kSPARC64_ShadowOffset64
 #  elif SANITIZER_WINDOWS64
-#    define SHADOW_OFFSET __asan_shadow_memory_dynamic_address
+#    define SHADOW_OFFSET_DYNAMIC
 #  else
-#    define SHADOW_OFFSET kDefaultShort64bitShadowOffset
+#    define SHADOW_OFFSET_CONST kDefaultShort64bitShadowOffset
 #  endif
 #endif
 
+#if defined(SHADOW_OFFSET_CONST)
+#  define SHADOW_OFFSET SHADOW_OFFSET_CONST
+#elif defined(SHADOW_OFFSET_DYNAMIC)
+#  define SHADOW_OFFSET __asan_shadow_memory_dynamic_address
+#endif
+
 #if SANITIZER_ANDROID && defined(__arm__)
 # define ASAN_PREMAP_SHADOW 1
 #else


        


More information about the llvm-commits mailing list