aboutsummaryrefslogtreecommitdiff
path: root/stdlib
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2009-03-10 13:40:37 +0000
committerUlrich Drepper <drepper@redhat.com>2009-03-10 13:40:37 +0000
commiteec4b45482cb8a39d6028257d6667febd9f28af0 (patch)
tree1d44a7bd745e3e9c5b6b154d0d2d480d0acdebd5 /stdlib
parentd7276cee74626d11aaed30b9f1928c44a79f186d (diff)
downloadglibc-eec4b45482cb8a39d6028257d6667febd9f28af0.tar
glibc-eec4b45482cb8a39d6028257d6667febd9f28af0.tar.gz
glibc-eec4b45482cb8a39d6028257d6667febd9f28af0.tar.bz2
glibc-eec4b45482cb8a39d6028257d6667febd9f28af0.zip
* 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.
Diffstat (limited to 'stdlib')
-rw-r--r--stdlib/at_quick_exit.c1
-rw-r--r--stdlib/cxa_at_quick_exit.c1
-rw-r--r--stdlib/exit.c2
-rw-r--r--stdlib/exit.h6
-rw-r--r--stdlib/quick_exit.c2
5 files changed, 6 insertions, 6 deletions
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);
}