aboutsummaryrefslogtreecommitdiff
path: root/libgcc
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2023-06-06 11:01:07 +0200
committerFlorian Weimer <fweimer@redhat.com>2023-06-07 17:55:20 +0200
commit49310a993308492348119f4033e4db0bda4fe46a (patch)
tree55d751545ff5746e8a5c502abc538b20a5c4b56f /libgcc
parentb6235dbcfc31434bf3081f3b772dfed96eddd28d (diff)
downloadgcc-49310a993308492348119f4033e4db0bda4fe46a.zip
gcc-49310a993308492348119f4033e4db0bda4fe46a.tar.gz
gcc-49310a993308492348119f4033e4db0bda4fe46a.tar.bz2
libgcc: Fix eh_frame fast path in find_fde_tail
The eh_frame value is only used by linear_search_fdes, not the binary search directly in find_fde_tail, so the bug is not immediately apparent with most programs. Fixes commit e724b0480bfa5ec04f39be8c7290330b495c59de ("libgcc: Special-case BFD ld unwind table encodings in find_fde_tail"). libgcc/ PR libgcc/109712 * unwind-dw2-fde-dip.c (find_fde_tail): Correct fast path for parsing eh_frame.
Diffstat (limited to 'libgcc')
-rw-r--r--libgcc/unwind-dw2-fde-dip.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/libgcc/unwind-dw2-fde-dip.c b/libgcc/unwind-dw2-fde-dip.c
index 6223f5f..4e0b880 100644
--- a/libgcc/unwind-dw2-fde-dip.c
+++ b/libgcc/unwind-dw2-fde-dip.c
@@ -403,8 +403,8 @@ find_fde_tail (_Unwind_Ptr pc,
BFD ld generates. */
signed value __attribute__ ((mode (SI)));
memcpy (&value, p, sizeof (value));
+ eh_frame = p + value;
p += sizeof (value);
- dbase = value; /* No adjustment because pcrel has base 0. */
}
else
p = read_encoded_value_with_base (hdr->eh_frame_ptr_enc,