On Mon, Feb 04, 2013 at 04:58:02PM -0500, Jack Howarth wrote: > --- gcc/config/darwin.c (revision 195735) > +++ gcc/config/darwin.c (working copy) > @@ -89,7 +89,14 @@ typedef struct GTY(()) ctor_record { > int position; /* original position */ > } ctor_record; > > +typedef struct GTY(()) dtor_record { > + rtx symbol; > + int priority; /* destructor priority */ > + int position; /* original position */ > +} dtor_record;
The type is the same, so I'd just rename ctor_record to cdtor_record or similar. > @@ -1740,6 +1758,22 @@ sort_ctor_records (const void * a, const > return 0; > } > > +static int > +sort_dtor_records (const void * a, const void * b) > +{ > + const dtor_record *da = (const dtor_record *)a; > + const dtor_record *db = (const dtor_record *)b; > + if (da->priority > db->priority) > + return 1; > + if (da->priority < db->priority) > + return -1; > + if (da->position > db->position) > + return 1; > + if (da->position < db->position) > + return -1; > + return 0; > +} And with that you don't need a new comparison function. > static void > finalize_ctors() Please fix up formatting, missing space before (. > { > @@ -1760,18 +1794,24 @@ finalize_ctors() > } > } > > -void > -machopic_asm_out_destructor (rtx symbol, int priority ATTRIBUTE_UNUSED) > +static void > +finalize_dtors() And here too. Jakub