@@ -22,6 +22,7 @@ int64_t __san_get_location_value();
2222}
2323
2424#define INLINE gnu::always_inline
25+ #define NOINLINE gnu::noinline
2526
2627enum class AllocationKind { LOCAL, GLOBAL, LAST = GLOBAL };
2728
@@ -234,7 +235,8 @@ struct SanitizerTrapInfoTy {
234235 }
235236
236237 template <enum AllocationKind AK>
237- [[clang::disable_sanitizer_instrumentation, noreturn, INLINE, gnu::cold]] void
238+ [[clang::disable_sanitizer_instrumentation, noreturn, NOINLINE,
239+ gnu::cold]] void
238240 exceedsAllocationLength (_AS_PTR(void , AK) Start, uint64_t Length,
239241 int64_t AllocationId, uint64_t Slot,
240242 int64_t SourceId) {
@@ -244,7 +246,8 @@ struct SanitizerTrapInfoTy {
244246 }
245247
246248 template <enum AllocationKind AK>
247- [[clang::disable_sanitizer_instrumentation, noreturn, INLINE, gnu::cold]] void
249+ [[clang::disable_sanitizer_instrumentation, noreturn, NOINLINE,
250+ gnu::cold]] void
248251 exceedsAllocationSlots (_AS_PTR(void , AK) Start, uint64_t Length,
249252 int64_t AllocationId, uint64_t Slot,
250253 int64_t SourceId) {
@@ -254,7 +257,8 @@ struct SanitizerTrapInfoTy {
254257 }
255258
256259 template <enum AllocationKind AK>
257- [[clang::disable_sanitizer_instrumentation, noreturn, INLINE, gnu::cold]] void
260+ [[clang::disable_sanitizer_instrumentation, noreturn, NOINLINE,
261+ gnu::cold]] void
258262 pointerOutsideAllocation (_AS_PTR(void , AK) Start, uint64_t Length,
259263 int64_t AllocationId, uint64_t Slot, uint64_t PC) {
260264 allocationError<AK>(PointerOutsideAllocation, Start, Length, AllocationId,
@@ -287,12 +291,14 @@ struct SanitizerTrapInfoTy {
287291 }
288292
289293 template <enum AllocationKind AK>
290- [[clang::disable_sanitizer_instrumentation, noreturn, INLINE, gnu::cold]] void
294+ [[clang::disable_sanitizer_instrumentation, noreturn, NOINLINE,
295+ gnu::cold]] void
291296 accessError (const AllocationPtrTy<AK> AP, int64_t Size, int64_t AccessId,
292297 int64_t SourceId);
293298
294299 template <enum AllocationKind AK>
295- [[clang::disable_sanitizer_instrumentation, noreturn, INLINE, gnu::cold]] void
300+ [[clang::disable_sanitizer_instrumentation, noreturn, NOINLINE,
301+ gnu::cold]] void
296302 garbagePointer (const AllocationPtrTy<AK> AP, void *P, int64_t SourceId) {
297303 ErrorCode = GarbagePointer;
298304 AllocationStart = P;
@@ -343,7 +349,7 @@ getAllocation(const AllocationPtrTy<AK> AP, int64_t AccessId = 0) {
343349}
344350
345351template <enum AllocationKind AK>
346- [[clang::disable_sanitizer_instrumentation, noreturn, INLINE , gnu::cold]] void
352+ [[clang::disable_sanitizer_instrumentation, noreturn, NOINLINE , gnu::cold]] void
347353SanitizerTrapInfoTy::accessError (const AllocationPtrTy<AK> AP, int64_t Size,
348354 int64_t AccessId, int64_t SourceId) {
349355 auto &A = getAllocationArray<AK>().Arr [AP.AllocationId ];
0 commit comments