diff options
-rw-r--r-- | ChangeLog | 12 | ||||
-rw-r--r-- | stdlib/at_quick_exit.c | 1 | ||||
-rw-r--r-- | stdlib/cxa_at_quick_exit.c | 1 | ||||
-rw-r--r-- | stdlib/exit.c | 2 | ||||
-rw-r--r-- | stdlib/exit.h | 6 | ||||
-rw-r--r-- | stdlib/quick_exit.c | 2 |
6 files changed, 18 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog index 9881e73b85..212dbf05d4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -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> * po/id.po: Update from translation team. diff --git a/stdlib/at_quick_exit.c b/stdlib/at_quick_exit.c index abe2910a7b..1d37e1c2eb 100644 --- a/stdlib/at_quick_exit.c +++ b/stdlib/at_quick_exit.c @@ -43,6 +43,7 @@ extern void *__dso_handle __attribute__ ((__weak__)); /* Register FUNC to be executed by `quick_exit'. */ int +attribute_hidden at_quick_exit (void (*func) (void)) { return __cxa_at_quick_exit ((void (*) (void *)) func, diff --git a/stdlib/cxa_at_quick_exit.c b/stdlib/cxa_at_quick_exit.c index 45c5f5e84c..2c6d688462 100644 --- a/stdlib/cxa_at_quick_exit.c +++ b/stdlib/cxa_at_quick_exit.c @@ -25,7 +25,6 @@ struct exit_function_list *__quick_exit_funcs = &initial_quick; /* Register a function to be called by quick_exit. */ int -attribute_hidden __cxa_at_quick_exit (void (*func) (void *), void *d) { return __internal_atexit (func, NULL, d, &__quick_exit_funcs); diff --git a/stdlib/exit.c b/stdlib/exit.c index 539ae4bd7e..2235990285 100644 --- a/stdlib/exit.c +++ b/stdlib/exit.c @@ -97,6 +97,6 @@ __run_exit_handlers (int status, struct exit_function_list **listp, void exit (int status) { - __run_exit_handlers (status, __exit_funcs, true); + __run_exit_handlers (status, &__exit_funcs, true); } libc_hidden_def (exit) diff --git a/stdlib/exit.h b/stdlib/exit.h index 948948d19b..d5013218a6 100644 --- a/stdlib/exit.h +++ b/stdlib/exit.h @@ -66,13 +66,13 @@ extern struct exit_function *__new_exitfn (struct exit_function_list **listp); extern uint64_t __new_exitfn_called attribute_hidden; 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, struct exit_function_list **listp) attribute_hidden; -extern int __cxa_at_quick_exit (void (*func) (void *), void *d) - attribute_hidden; +extern int __cxa_at_quick_exit (void (*func) (void *), void *d); #endif /* exit.h */ diff --git a/stdlib/quick_exit.c b/stdlib/quick_exit.c index 20cb409b7d..d6306240c4 100644 --- a/stdlib/quick_exit.c +++ b/stdlib/quick_exit.c @@ -26,5 +26,5 @@ void quick_exit (int status) { - __run_exit_handlers (status, __quick_exit_funcs, false); + __run_exit_handlers (status, &__quick_exit_funcs, false); } |