contrib/gcc-2.3.3/libgcc2.c
/* Run all the global destructors on exit from the program.  */
Run all the global destructors on exit from the program.
Run all the global destructors on exit from the program .
void
__do_global_dtors ()
{
#ifdef DO_GLOBAL_DTORS_BODY
  DO_GLOBAL_DTORS_BODY;
#else
  unsigned nptrs = (unsigned HOST_WIDE_INT) __DTOR_LIST__[0];
  unsigned i;
  if (nptrs == -1)
    for (nptrs = 0; __DTOR_LIST__[nptrs + 1] != 0; nptrs++);
  for (i = nptrs; i >= 1; i--)
    __DTOR_LIST__[i] ();
#endif
}
void __do_global_dtors ( ) { #ifdef DO_GLOBAL_DTORS_BODY DO_GLOBAL_DTORS_BODY ; #else unsigned nptrs = ( unsigned HOST_WIDE_INT ) __DTOR_LIST__ [ 0 ] ; unsigned i ; if ( nptrs == -1 ) for ( nptrs = 0 ; __DTOR_LIST__ [ nptrs + 1 ] != 0 ; nptrs ++ ) ; for ( i = nptrs ; i >= 1 ; i -- ) __DTOR_LIST__ [ i ] ( ) ; #endif }
Run all the global destructors on exit from the program.
Run all the global destructors on exit from the program .
/* Some systems place the number of pointers
     in the first word of the table.
     On other systems, that word is -1.
     In all cases, the table is null-terminated.  */ /* If the length is not recorded, count up to the null.  */ /* GNU LD format.  */