Commit 8d5db9b9 by Abseil Team Committed by Copybara-Service

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
parent d26b6250
...@@ -158,6 +158,9 @@ static void **NextStackFrame(void **old_frame_pointer, const void *uc, ...@@ -158,6 +158,9 @@ static void **NextStackFrame(void **old_frame_pointer, const void *uc,
} }
template <bool IS_STACK_FRAMES, bool IS_WITH_CONTEXT> 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_ADDRESS // May read random elements from stack.
ABSL_ATTRIBUTE_NO_SANITIZE_MEMORY // 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, static int UnwindImpl(void** result, int* sizes, int max_depth, int skip_count,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment