30 lines
901 B
Diff
30 lines
901 B
Diff
From 3f798427884fa57770e8e2291cf58d5918254bb5 Mon Sep 17 00:00:00 2001
|
|
From: Andreas Schwab <schwab@suse.de>
|
|
Date: Thu, 23 Nov 2023 18:23:46 +0100
|
|
Subject: [PATCH] aarch64: correct CFI in rawmemchr (bug 31113)
|
|
|
|
The .cfi_return_column directive changes the return column for the whole
|
|
FDE range. But the actual intent is to tell the unwinder that the value
|
|
in x30 (lr) now resides in x15 after the move, and that is expressed by
|
|
the .cfi_register directive.
|
|
---
|
|
sysdeps/aarch64/rawmemchr.S | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
diff --git a/sysdeps/aarch64/rawmemchr.S b/sysdeps/aarch64/rawmemchr.S
|
|
index efc4b7007b..1fff094215 100644
|
|
--- a/sysdeps/aarch64/rawmemchr.S
|
|
+++ b/sysdeps/aarch64/rawmemchr.S
|
|
@@ -31,7 +31,7 @@ ENTRY (__rawmemchr)
|
|
|
|
L(do_strlen):
|
|
mov x15, x30
|
|
- cfi_return_column (x15)
|
|
+ cfi_register (x30, x15)
|
|
mov x14, x0
|
|
bl __strlen
|
|
add x0, x14, x0
|
|
--
|
|
2.43.0
|
|
|