Fix TSAN macro for -std=c99

#test-continuous

PiperOrigin-RevId: 718168053
pull/20072/head
Mike Kruskal 1 month ago committed by Copybara-Service
parent 7d766574a8
commit 4239489b3c
  1. 5
      upb/port/def.inc

@ -374,12 +374,13 @@ void __asan_unpoison_memory_region(void const volatile *addr, size_t size);
#define UPB_TSAN_CHECK_PUBLISHED(ptr) \
UPB_ASSERT((ptr)->upb_tsan_safely_published == 0x5AFE)
#define UPB_TSAN_PUBLISH 1
#define UPB_TSAN_CHECK_READ(member) asm volatile("" ::"r"(*(char *)&(member)))
#define UPB_TSAN_CHECK_READ(member) \
__asm__ volatile("" ::"r"(*(char *)&(member)))
#define UPB_TSAN_CHECK_WRITE(member) \
do { \
char *write_upb_tsan_detect_race_ptr = (char *)&(member); \
char write_upb_tsan_detect_race = *write_upb_tsan_detect_race_ptr; \
asm volatile("" : "+r"(write_upb_tsan_detect_race)); \
__asm__ volatile("" : "+r"(write_upb_tsan_detect_race)); \
*write_upb_tsan_detect_race_ptr = write_upb_tsan_detect_race; \
} while (false)
#else

Loading…
Cancel
Save