aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Schwab <schwab@suse.de>2023-11-23 18:23:46 +0100
committerWilco Dijkstra <wilco.dijkstra@arm.com>2024-04-08 16:52:55 +0100
commit88e96e7b5fc8c80ef22b08022dd327a546066aae (patch)
tree4474b1d7de55ad7e6c573abd25787a7ebc34f5fe
parent5a5211b4384546ed4554a9431b884dc75766b941 (diff)
downloadglibc-88e96e7b5fc8c80ef22b08022dd327a546066aae.zip
glibc-88e96e7b5fc8c80ef22b08022dd327a546066aae.tar.gz
glibc-88e96e7b5fc8c80ef22b08022dd327a546066aae.tar.bz2
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)
-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 55d9e34..f90ce2b 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