]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
aarch64: correct CFI in rawmemchr (bug 31113)
authorAndreas Schwab <schwab@suse.de>
Thu, 23 Nov 2023 17:23:46 +0000 (18:23 +0100)
committerWilco Dijkstra <wilco.dijkstra@arm.com>
Mon, 8 Apr 2024 15:52:55 +0000 (16:52 +0100)
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)

sysdeps/aarch64/rawmemchr.S

index 55d9e34d4fa9f111fe41f926943a1e4b413e20a9..f90ce2bf8644b8c245a1290a4cb32da5596b8e87 100644 (file)
@@ -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