aboutsummaryrefslogtreecommitdiff
path: root/absl/debugging/internal/stacktrace_aarch64-inl.inc
diff options
context:
space:
mode:
authorAbseil Team <absl-team@google.com>2022-07-26 10:15:43 -0700
committerCopybara-Service <copybara-worker@google.com>2022-07-26 10:16:30 -0700
commitb0787ae6bcd7fc9bc7dc572dcc6d8ee83cd9b0d9 (patch)
treec49a2347e631f3da94cdb34ab231523ae4fbf1ca /absl/debugging/internal/stacktrace_aarch64-inl.inc
parent63c9eeca0464c08ccb861b21e33e10faead414c9 (diff)
downloadabseil-b0787ae6bcd7fc9bc7dc572dcc6d8ee83cd9b0d9.tar.gz
abseil-b0787ae6bcd7fc9bc7dc572dcc6d8ee83cd9b0d9.tar.bz2
abseil-b0787ae6bcd7fc9bc7dc572dcc6d8ee83cd9b0d9.zip
Fix frame pointer alignment check.
The frame pointer sanity check in NextStackFrame() was more restrictive than it is necessary. The frame pointer is used to load the saved link-register and the address for the next stack frame. So it only needs to be 8-byte aligned. The aarch64 ABI does not specify an alignment requirement for the frame point. PiperOrigin-RevId: 463368519 Change-Id: I473e05181603288f14734fe29013900c7505e201
Diffstat (limited to 'absl/debugging/internal/stacktrace_aarch64-inl.inc')
-rw-r--r--absl/debugging/internal/stacktrace_aarch64-inl.inc4
1 files changed, 2 insertions, 2 deletions
diff --git a/absl/debugging/internal/stacktrace_aarch64-inl.inc b/absl/debugging/internal/stacktrace_aarch64-inl.inc
index 4f9db9d6..891942c0 100644
--- a/absl/debugging/internal/stacktrace_aarch64-inl.inc
+++ b/absl/debugging/internal/stacktrace_aarch64-inl.inc
@@ -110,8 +110,8 @@ static void **NextStackFrame(void **old_frame_pointer, const void *uc) {
}
#endif
- // aarch64 ABI requires stack pointer to be 16-byte-aligned.
- if ((reinterpret_cast<uintptr_t>(new_frame_pointer) & 15) != 0)
+ // The frame pointer should be 8-byte aligned.
+ if ((reinterpret_cast<uintptr_t>(new_frame_pointer) & 7) != 0)
return nullptr;
// Check frame size. In strict mode, we assume frames to be under