aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Schwab <schwab@suse.de>2023-11-23 18:23:46 +0100
committerAndreas K. Hüttel <dilfridge@gentoo.org>2024-04-18 09:32:59 +1100
commit1cef1262c7557c4cebd1272d3cdf71caca64cda7 (patch)
treeef44162b3c4095c02ca52640e1966b2d08cccb14
parentAArch64: Remove Falkor memcpy (diff)
downloadglibc-1cef1262c7557c4cebd1272d3cdf71caca64cda7.tar.gz
glibc-1cef1262c7557c4cebd1272d3cdf71caca64cda7.tar.bz2
glibc-1cef1262c7557c4cebd1272d3cdf71caca64cda7.zip
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. (cherry picked from commit 3f798427884fa57770e8e2291cf58d5918254bb5) (cherry picked from commit 168ae58e6e705a53a71850ee63ba5514fd5d7b70)
-rw-r--r--sysdeps/aarch64/rawmemchr.S2
1 files changed, 1 insertions, 1 deletions
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