From eec4b45482cb8a39d6028257d6667febd9f28af0 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Tue, 10 Mar 2009 13:40:37 +0000 Subject: * 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. --- stdlib/at_quick_exit.c | 1 + stdlib/cxa_at_quick_exit.c | 1 - stdlib/exit.c | 2 +- stdlib/exit.h | 6 +++--- stdlib/quick_exit.c | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) (limited to 'stdlib') 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); } -- cgit 1.4.1