Skip to content

Commit 604b899

Browse files
committed
fixup qd_asan_interface.h from the other PRs
1 parent ec3e148 commit 604b899

File tree

1 file changed

+14
-6
lines changed

1 file changed

+14
-6
lines changed

src/qd_asan_interface.h

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,15 @@
2525
* See #include <sanitizer/asan_interface.h> in Clang for the source.
2626
*/
2727

28-
#if __has_feature(address_sanitizer) || defined(__SANITIZE_ADDRESS__)
28+
#if defined(__clang__)
29+
# define QD_HAS_ADDRESS_SANITIZER __has_feature(address_sanitizer)
30+
#elif defined (__GNUC__) && defined(__SANITIZE_ADDRESS__)
31+
# define QD_HAS_ADDRESS_SANITIZER __SANITIZE_ADDRESS__
32+
#else
33+
# define QD_HAS_ADDRESS_SANITIZER 0
34+
#endif
35+
36+
#if QD_HAS_ADDRESS_SANITIZER
2937

3038
void __asan_poison_memory_region(void const volatile *addr, size_t size);
3139
void __asan_unpoison_memory_region(void const volatile *addr, size_t size);
@@ -50,21 +58,21 @@ void __asan_unpoison_memory_region(void const volatile *addr, size_t size);
5058
#define ASAN_UNPOISON_MEMORY_REGION(addr, size) \
5159
__asan_unpoison_memory_region((addr), (size))
5260

53-
#else // __has_feature(address_sanitizer) || defined(__SANITIZE_ADDRESS__)
61+
#else // QD_HAS_ADDRESS_SANITIZER
5462

5563
#define ASAN_POISON_MEMORY_REGION(addr, size) \
5664
((void)(addr), (void)(size))
5765
#define ASAN_UNPOISON_MEMORY_REGION(addr, size) \
5866
((void)(addr), (void)(size))
5967

60-
#endif // __has_feature(address_sanitizer) || defined(__SANITIZE_ADDRESS__)
68+
#endif // QD_HAS_ADDRESS_SANITIZER
6169

6270
// https://github.com/google/sanitizers/wiki/AddressSanitizer#turning-off-instrumentation
6371

64-
#if defined(__clang__) || defined (__GNUC__)
72+
#if QD_HAS_ADDRESS_SANITIZER
6573
# define ATTRIBUTE_NO_SANITIZE_ADDRESS __attribute__((no_sanitize_address))
6674
#else
6775
# define ATTRIBUTE_NO_SANITIZE_ADDRESS
68-
#endif
76+
#endif // QD_HAS_ADDRESS_SANITIZER
6977

70-
#endif // __qd_asan_interface_h__
78+
#endif // __qd_asan_interface_h__

0 commit comments

Comments
 (0)