OSDN Git Service

* libgcc2.c (exit): Do not call __bb_exit_func if HAVE_ATEXIT.
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 19 Mar 1998 20:24:35 +0000 (20:24 +0000)
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 19 Mar 1998 20:24:35 +0000 (20:24 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@18717 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/libgcc2.c

index e25b040..d587b1e 100644 (file)
@@ -1,5 +1,7 @@
 Thu Mar 19 20:30:31 1998  Philippe De Muyter  <phdm@macqel.be>
 
+       * libgcc2.c (exit): Do not call __bb_exit_func if HAVE_ATEXIT.
+
        * fold-const.c (fold): Replace sign-extension of a zero extended
        value by a single zero extension.
 
index 6ccc118..663609b 100644 (file)
@@ -2984,10 +2984,16 @@ exit (int status)
 #else /* No NEED_ATEXIT */
   __do_global_dtors ();
 #endif /* No NEED_ATEXIT */
-#endif
+#endif /* !defined (INIT_SECTION_ASM_OP) || !defined (OBJECT_FORMAT_ELF) */
+/* In gbl-ctors.h, ON_EXIT is defined if HAVE_ATEXIT is defined.  In
+__bb_init_func and _bb_init_prg, __bb_exit_func is registered with ON_EXIT if
+ON_EXIT is defined.  Thus we must not call __bb_exit_func here anymore if
+HAVE_ATEXIT is defined. */
+#ifndef HAVE_ATEXIT
 #ifndef inhibit_libc
   __bb_exit_func ();
 #endif
+#endif /* !HAVE_ATEXIT */
 #ifdef EXIT_BODY
   EXIT_BODY;
 #else