Skip to content

Commit f7c673d

Browse files
authored
[libc] Clean up sanitizer macros
https://reviews.llvm.org/D99598 introduced some unneeded macros including `ADDRESS_SANITIZER` and `MEMORY_SANITIZER`. The definitions appeared to be from older absl/base/internal/dynamic_annotations.h, which has then been cleaned up. `ADDRESS_SANITIZER` is not defined by compilers. Some Bazel users define it as part of --config=asan. If a translation unit specifies -fno-sanitize=address, libc/src/__support/macros/sanitizer.h and sanitizer/asan_interface.h will define ASAN_POISON_MEMORY_REGION differently, leading to ``` libc/src/__support/macros/sanitizer.h:66:9: error: 'ASAN_UNPOISON_MEMORY_REGION' macro redefined [-Werror,-Wmacro-redefined] 66 | #define ASAN_UNPOISON_MEMORY_REGION(addr, size) \ | ^ ``` To fix this issue, just remove unneeded macros. Pull Request: #98402
1 parent 797a2ec commit f7c673d

File tree

1 file changed

+2
-34
lines changed

1 file changed

+2
-34
lines changed

libc/src/__support/macros/sanitizer.h

Lines changed: 2 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -11,43 +11,11 @@
1111

1212
#include "src/__support/macros/config.h" //LIBC_HAS_FEATURE
1313

14-
//-----------------------------------------------------------------------------
15-
// Properties to check the presence or absence or sanitizers
16-
//-----------------------------------------------------------------------------
17-
18-
// MemorySanitizer (MSan) is a detector of uninitialized reads. It consists of
19-
// a compiler instrumentation module and a run-time library. The
20-
// MEMORY_SANITIZER macro is deprecated but we will continue to honor it for
21-
// now.
22-
#ifdef LIBC_HAVE_MEMORY_SANITIZER
23-
#error "LIBC_HAVE_MEMORY_SANITIZER cannot be directly set."
24-
#elif defined(MEMORY_SANITIZER) || defined(__SANITIZE_MEMORY__) || \
25-
(LIBC_HAS_FEATURE(memory_sanitizer) && !defined(__native_client__))
26-
#define LIBC_HAVE_MEMORY_SANITIZER
27-
#endif
28-
29-
// AddressSanitizer (ASan) is a fast memory error detector. The
30-
// ADDRESS_SANITIZER macro is deprecated but we will continue to honor it for
31-
// now.
32-
#ifdef LIBC_HAVE_ADDRESS_SANITIZER
33-
#error "LIBC_HAVE_ADDRESS_SANITIZER cannot be directly set."
34-
#elif defined(ADDRESS_SANITIZER) || defined(__SANITIZE_ADDRESS__) || \
35-
LIBC_HAS_FEATURE(address_sanitizer)
36-
#define LIBC_HAVE_ADDRESS_SANITIZER
37-
#endif
38-
39-
// HWAddressSanitizer (HWASan) is a fast, low memory overhead error detector.
40-
#ifdef LIBC_HAVE_HWADDRESS_SANITIZER
41-
#error "LIBC_HAVE_HWADDRESS_SANITIZER cannot be directly set."
42-
#elif LIBC_HAS_FEATURE(hwaddress_sanitizer)
43-
#define LIBC_HAVE_HWADDRESS_SANITIZER
44-
#endif
45-
4614
//-----------------------------------------------------------------------------
4715
// Functions to unpoison memory
4816
//-----------------------------------------------------------------------------
4917

50-
#if defined(LIBC_HAVE_MEMORY_SANITIZER)
18+
#if LIBC_HAS_FEATURE(memory_sanitizer)
5119
// Only perform MSAN unpoison in non-constexpr context.
5220
#include <sanitizer/msan_interface.h>
5321
#define MSAN_UNPOISON(addr, size) \
@@ -59,7 +27,7 @@
5927
#define MSAN_UNPOISON(ptr, size)
6028
#endif
6129

62-
#ifdef LIBC_HAVE_ADDRESS_SANITIZER
30+
#if LIBC_HAS_FEATURE(address_sanitizer)
6331
#include <sanitizer/asan_interface.h>
6432
#define ASAN_POISON_MEMORY_REGION(addr, size) \
6533
__asan_poison_memory_region((addr), (size))

0 commit comments

Comments
 (0)