]> 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)
committerAndreas Schwab <schwab@suse.de>
Tue, 5 Dec 2023 11:49:37 +0000 (12:49 +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.

sysdeps/aarch64/rawmemchr.S

index efc4b7007b2730d3ebe92dc39bb0d23195c7cc62..1fff094215296d6943a0187d09e14f22d7a9ed55 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