summaryrefslogtreecommitdiff
path: root/absl
diff options
context:
space:
mode:
authorGravatar Abseil Team <absl-team@google.com>2023-10-04 13:31:31 -0700
committerGravatar Copybara-Service <copybara-worker@google.com>2023-10-04 13:32:09 -0700
commit8d5db9b986728577fed7d8ec6483d6db669f0a4a (patch)
treeb8223f7c86a5694bef4f46a8533493063dde17d9 /absl
parentd26b6250df3d76fd2ff894269118cccda1c1654c (diff)
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
Diffstat (limited to 'absl')
-rw-r--r--absl/debugging/internal/stacktrace_aarch64-inl.inc3
1 files changed, 3 insertions, 0 deletions
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 <bool IS_STACK_FRAMES, bool IS_WITH_CONTEXT>
+// 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,