diff options
author | Andreas Schwab <schwab@suse.de> | 2023-11-23 18:23:46 +0100 |
---|---|---|
committer | Andreas Schwab <schwab@suse.de> | 2023-12-05 12:49:37 +0100 |
commit | 3f798427884fa57770e8e2291cf58d5918254bb5 (patch) | |
tree | 0ce0e1bb7655d89dabfe13620727a8de0bc200c2 | |
parent | 63d0a35d5f223a3f4b68190567b7d4d44545bce5 (diff) | |
download | glibc-3f798427884fa57770e8e2291cf58d5918254bb5.zip glibc-3f798427884fa57770e8e2291cf58d5918254bb5.tar.gz glibc-3f798427884fa57770e8e2291cf58d5918254bb5.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.
-rw-r--r-- | sysdeps/aarch64/rawmemchr.S | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sysdeps/aarch64/rawmemchr.S b/sysdeps/aarch64/rawmemchr.S index efc4b70..1fff094 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 |