mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-02-17 13:10:12 +08:00
2009-08-06 Paul Pluzhnikov <ppluzhnikov@google.com>
gold/10400 * dwarf2-frame.c (qsort_fde_cmp): Use stable sort.
This commit is contained in:
parent
b01c84103b
commit
e5af178fbf
@ -1,3 +1,8 @@
|
||||
2009-08-06 Paul Pluzhnikov <ppluzhnikov@google.com>
|
||||
|
||||
gold/10400
|
||||
* dwarf2-frame.c (qsort_fde_cmp): Use stable sort.
|
||||
|
||||
2009-08-06 Paul Pluzhnikov <ppluzhnikov@google.com>
|
||||
|
||||
* dwarf2-frame.c (struct dwarf2_cie): Remove 'next'.
|
||||
|
@ -1958,9 +1958,18 @@ qsort_fde_cmp (const void *a, const void *b)
|
||||
{
|
||||
struct dwarf2_fde *aa = *(struct dwarf2_fde **)a;
|
||||
struct dwarf2_fde *bb = *(struct dwarf2_fde **)b;
|
||||
|
||||
if (aa->initial_location == bb->initial_location)
|
||||
/* Put eh_frame entries after debug_frame ones. */
|
||||
return aa->eh_frame_p - bb->eh_frame_p;
|
||||
{
|
||||
if (aa->address_range != bb->address_range
|
||||
&& aa->eh_frame_p == 0 && bb->eh_frame_p == 0)
|
||||
/* Linker bug, e.g. gold/10400.
|
||||
Work around it by keeping stable sort order. */
|
||||
return (a < b) ? -1 : 1;
|
||||
else
|
||||
/* Put eh_frame entries after debug_frame ones. */
|
||||
return aa->eh_frame_p - bb->eh_frame_p;
|
||||
}
|
||||
|
||||
return (aa->initial_location < bb->initial_location) ? -1 : 1;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user