diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 377c0a0747a1012c56db3bc027bc74f34877a386..362d8ca864c0846f24d25e6acb8916cd8f810478 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2001-10-22 Hans-Peter Nilsson <hp@bitrange.com> + + * unwind-dw2-fde.c (fde_unencoded_compare): Derefer pc_begin + fields when comparing. + 2001-10-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> * arm.h (HOST_INT, HOST_UINT): Delete. Remove all uses. diff --git a/gcc/unwind-dw2-fde.c b/gcc/unwind-dw2-fde.c index 729adbbd4ab7201a7abbdda6141c0b659cb26a80..70526856a14dd992f53d2d4188ef4f6485be107b 100644 --- a/gcc/unwind-dw2-fde.c +++ b/gcc/unwind-dw2-fde.c @@ -297,9 +297,12 @@ static int fde_unencoded_compare (struct object *ob __attribute__((unused)), fde *x, fde *y) { - if (x->pc_begin > y->pc_begin) + _Unwind_Ptr x_ptr = *(_Unwind_Ptr *) x->pc_begin; + _Unwind_Ptr y_ptr = *(_Unwind_Ptr *) y->pc_begin; + + if (x_ptr > y_ptr) return 1; - if (x->pc_begin < y->pc_begin) + if (x_ptr < y_ptr) return -1; return 0; }