* stdlib/quick_exit.c (quick_exit): Pass &__quick_exit_funcs

instead of __quick_exit_funcs to __run_exit_handlers.
	* stdlib/at_quick_exit.c (at_quick_exit): Add attribute_hidden.
	* stdlib/exit.h (__run_exit_handlers): Add noreturn attribute.
	(__cxa_at_quick_exit): Remove attribute_hidden.
	* stdlib/exit.c (exit): Pass &__exit_funcs instead of __exit_funcs
	to __run_exit_handlers.
	* stdlib/cxa_at_quick_exit.c (__cxa_at_quick_exit): Remove
	attribute_hidden.
This commit is contained in:
Ulrich Drepper 2009-03-10 13:40:37 +00:00
parent d7276cee74
commit eec4b45482
6 changed files with 18 additions and 6 deletions

View File

@ -1,3 +1,15 @@
2009-03-10 Jakub Jelinek <jakub@redhat.com>
* stdlib/quick_exit.c (quick_exit): Pass &__quick_exit_funcs
instead of __quick_exit_funcs to __run_exit_handlers.
* stdlib/at_quick_exit.c (at_quick_exit): Add attribute_hidden.
* stdlib/exit.h (__run_exit_handlers): Add noreturn attribute.
(__cxa_at_quick_exit): Remove attribute_hidden.
* stdlib/exit.c (exit): Pass &__exit_funcs instead of __exit_funcs
to __run_exit_handlers.
* stdlib/cxa_at_quick_exit.c (__cxa_at_quick_exit): Remove
attribute_hidden.
2009-03-10 Ulrich Drepper <drepper@redhat.com> 2009-03-10 Ulrich Drepper <drepper@redhat.com>
* po/id.po: Update from translation team. * po/id.po: Update from translation team.

View File

@ -43,6 +43,7 @@ extern void *__dso_handle __attribute__ ((__weak__));
/* Register FUNC to be executed by `quick_exit'. */ /* Register FUNC to be executed by `quick_exit'. */
int int
attribute_hidden
at_quick_exit (void (*func) (void)) at_quick_exit (void (*func) (void))
{ {
return __cxa_at_quick_exit ((void (*) (void *)) func, return __cxa_at_quick_exit ((void (*) (void *)) func,

View File

@ -25,7 +25,6 @@ struct exit_function_list *__quick_exit_funcs = &initial_quick;
/* Register a function to be called by quick_exit. */ /* Register a function to be called by quick_exit. */
int int
attribute_hidden
__cxa_at_quick_exit (void (*func) (void *), void *d) __cxa_at_quick_exit (void (*func) (void *), void *d)
{ {
return __internal_atexit (func, NULL, d, &__quick_exit_funcs); return __internal_atexit (func, NULL, d, &__quick_exit_funcs);

View File

@ -97,6 +97,6 @@ __run_exit_handlers (int status, struct exit_function_list **listp,
void void
exit (int status) exit (int status)
{ {
__run_exit_handlers (status, __exit_funcs, true); __run_exit_handlers (status, &__exit_funcs, true);
} }
libc_hidden_def (exit) libc_hidden_def (exit)

View File

@ -66,13 +66,13 @@ extern struct exit_function *__new_exitfn (struct exit_function_list **listp);
extern uint64_t __new_exitfn_called attribute_hidden; extern uint64_t __new_exitfn_called attribute_hidden;
extern void __run_exit_handlers (int status, struct exit_function_list **listp, extern void __run_exit_handlers (int status, struct exit_function_list **listp,
bool run_list_atexit) attribute_hidden; bool run_list_atexit)
attribute_hidden __attribute__ ((__noreturn__));
extern int __internal_atexit (void (*func) (void *), void *arg, void *d, extern int __internal_atexit (void (*func) (void *), void *arg, void *d,
struct exit_function_list **listp) struct exit_function_list **listp)
attribute_hidden; attribute_hidden;
extern int __cxa_at_quick_exit (void (*func) (void *), void *d) extern int __cxa_at_quick_exit (void (*func) (void *), void *d);
attribute_hidden;
#endif /* exit.h */ #endif /* exit.h */

View File

@ -26,5 +26,5 @@
void void
quick_exit (int status) quick_exit (int status)
{ {
__run_exit_handlers (status, __quick_exit_funcs, false); __run_exit_handlers (status, &__quick_exit_funcs, false);
} }