Skip to content

Commit f6488f9

Browse files
committed
[TSan][Apple] Prevent disabling deprecation warnings for entire file
Add missing `#pragma clang diagnostic pop` to prevent disabling deprecation warnings for the rest of the file.
1 parent 4c663a8 commit f6488f9

File tree

1 file changed

+8
-7
lines changed

1 file changed

+8
-7
lines changed

compiler-rt/lib/tsan/rtl/tsan_interceptors_mac.cpp

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,7 @@ static constexpr morder kMacFailureOrder = mo_relaxed;
9595
m_orig(int32_t, uint32_t, a32, f##32##OrigBarrier, \
9696
__tsan_atomic32_##tsan_atomic_f, kMacOrderBarrier)
9797

98-
# pragma clang diagnostic push
99-
// OSAtomic* functions are deprecated.
98+
# pragma clang diagnostic push // OSAtomic* deprecation
10099
# pragma clang diagnostic ignored "-Wdeprecated-declarations"
101100
OSATOMIC_INTERCEPTORS_ARITHMETIC(OSAtomicAdd, fetch_add,
102101
OSATOMIC_INTERCEPTOR_PLUS_X)
@@ -110,6 +109,7 @@ OSATOMIC_INTERCEPTORS_BITWISE(OSAtomicAnd, fetch_and,
110109
OSATOMIC_INTERCEPTOR_PLUS_X, OSATOMIC_INTERCEPTOR)
111110
OSATOMIC_INTERCEPTORS_BITWISE(OSAtomicXor, fetch_xor,
112111
OSATOMIC_INTERCEPTOR_PLUS_X, OSATOMIC_INTERCEPTOR)
112+
# pragma clang diagnostic pop // OSAtomic* deprecation
113113

114114
# define OSATOMIC_INTERCEPTORS_CAS(f, tsan_atomic_f, tsan_t, t) \
115115
TSAN_INTERCEPTOR(bool, f, t old_value, t new_value, t volatile *ptr) { \
@@ -127,8 +127,7 @@ OSATOMIC_INTERCEPTORS_BITWISE(OSAtomicXor, fetch_xor,
127127
kMacOrderBarrier, kMacFailureOrder); \
128128
}
129129

130-
# pragma clang diagnostic push
131-
// OSAtomicCompareAndSwap* functions are deprecated.
130+
# pragma clang diagnostic push // OSAtomicCompareAndSwap* deprecation
132131
# pragma clang diagnostic ignored "-Wdeprecated-declarations"
133132
OSATOMIC_INTERCEPTORS_CAS(OSAtomicCompareAndSwapInt, __tsan_atomic32, a32, int)
134133
OSATOMIC_INTERCEPTORS_CAS(OSAtomicCompareAndSwapLong, __tsan_atomic64, a64,
@@ -139,7 +138,7 @@ OSATOMIC_INTERCEPTORS_CAS(OSAtomicCompareAndSwap32, __tsan_atomic32, a32,
139138
int32_t)
140139
OSATOMIC_INTERCEPTORS_CAS(OSAtomicCompareAndSwap64, __tsan_atomic64, a64,
141140
int64_t)
142-
# pragma clang diagnostic pop
141+
# pragma clang diagnostic pop // OSAtomicCompareAndSwap* deprecation
143142

144143
# define OSATOMIC_INTERCEPTOR_BITOP(f, op, clear, mo) \
145144
TSAN_INTERCEPTOR(bool, f, uint32_t n, volatile void *ptr) { \
@@ -155,9 +154,12 @@ OSATOMIC_INTERCEPTORS_CAS(OSAtomicCompareAndSwap64, __tsan_atomic64, a64,
155154
OSATOMIC_INTERCEPTOR_BITOP(f, op, clear, kMacOrderNonBarrier) \
156155
OSATOMIC_INTERCEPTOR_BITOP(f##Barrier, op, clear, kMacOrderBarrier)
157156

157+
# pragma clang diagnostic push // OSAtomicTestAnd* deprecation
158+
# pragma clang diagnostic ignored "-Wdeprecated-declarations"
158159
OSATOMIC_INTERCEPTORS_BITOP(OSAtomicTestAndSet, __tsan_atomic8_fetch_or, false)
159160
OSATOMIC_INTERCEPTORS_BITOP(OSAtomicTestAndClear, __tsan_atomic8_fetch_and,
160161
true)
162+
# pragma clang diagnostic pop // OSAtomicTestAnd* deprecation
161163

162164
TSAN_INTERCEPTOR(void, OSAtomicEnqueue, OSQueueHead *list, void *item,
163165
size_t offset) {
@@ -202,8 +204,7 @@ TSAN_INTERCEPTOR(void *, OSAtomicFifoDequeue, OSFifoQueueHead *list,
202204
# undef OSSpinLockTry
203205
# undef OSSpinLockUnlock
204206

205-
# pragma clang diagnostic push
206-
// OSSpinLock* functions are deprecated.
207+
# pragma clang diagnostic push // OSSpinLock* deprecation
207208
# pragma clang diagnostic ignored "-Wdeprecated-declarations"
208209

209210
TSAN_INTERCEPTOR(void, OSSpinLockLock, volatile OSSpinLock *lock) {

0 commit comments

Comments
 (0)