From 8d5db9b986728577fed7d8ec6483d6db669f0a4a Mon Sep 17 00:00:00 2001 From: Abseil Team Date: Wed, 4 Oct 2023 13:31:31 -0700 Subject: With sufficiently high-levels of optimization, this function and those that call it can be inlined sufficiently far to mess up high-level skip-counts. But this function assumes it is the bottommost frame, as in the comment below. PiperOrigin-RevId: 570790048 Change-Id: I4d354f9e79e13aaa6a8a62a9e0870fbeac075de6 --- absl/debugging/internal/stacktrace_aarch64-inl.inc | 3 +++ 1 file changed, 3 insertions(+) (limited to 'absl/debugging/internal') diff --git a/absl/debugging/internal/stacktrace_aarch64-inl.inc b/absl/debugging/internal/stacktrace_aarch64-inl.inc index 3f087162..c46a91db 100644 --- a/absl/debugging/internal/stacktrace_aarch64-inl.inc +++ b/absl/debugging/internal/stacktrace_aarch64-inl.inc @@ -158,6 +158,9 @@ static void **NextStackFrame(void **old_frame_pointer, const void *uc, } template +// We count on the bottom frame being this one. See the comment +// at prev_return_address +ABSL_ATTRIBUTE_NOINLINE ABSL_ATTRIBUTE_NO_SANITIZE_ADDRESS // May read random elements from stack. ABSL_ATTRIBUTE_NO_SANITIZE_MEMORY // May read random elements from stack. static int UnwindImpl(void** result, int* sizes, int max_depth, int skip_count, -- cgit v1.2.3