aboutsummaryrefslogtreecommitdiff
path: root/nptl/forward.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@gmail.com>2012-01-11 11:56:30 -0500
committerUlrich Drepper <drepper@gmail.com>2012-01-11 11:56:30 -0500
commit5452bffeefe076a12eeb04f784ef1209a4282038 (patch)
tree0a5ff8590386f72ce7a1af78056180292ec8e637 /nptl/forward.c
parentdaa891c0e8900d0f03c16fde9c09f8d6f9a26a7d (diff)
downloadglibc-5452bffeefe076a12eeb04f784ef1209a4282038.tar
glibc-5452bffeefe076a12eeb04f784ef1209a4282038.tar.gz
glibc-5452bffeefe076a12eeb04f784ef1209a4282038.tar.bz2
glibc-5452bffeefe076a12eeb04f784ef1209a4282038.zip
Fix warnings due to return in void functions
Diffstat (limited to 'nptl/forward.c')
-rw-r--r--nptl/forward.c21
1 files changed, 15 insertions, 6 deletions
diff --git a/nptl/forward.c b/nptl/forward.c
index b62efd86f8..18e190138d 100644
--- a/nptl/forward.c
+++ b/nptl/forward.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003, 2004, 2007 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003, 2004, 2007, 2012 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
@@ -42,6 +42,17 @@ name decl \
return PTHFCT_CALL (ptr_##name, params); \
}
+/* Same as FORWARD2, only without return. */
+#define FORWARD_NORETURN(name, rettype, decl, params, defaction) \
+rettype \
+name decl \
+{ \
+ if (!__libc_pthread_functions_init) \
+ defaction; \
+ \
+ PTHFCT_CALL (ptr_##name, params); \
+}
+
#define FORWARD(name, decl, params, defretval) \
FORWARD2 (name, int, decl, params, return defretval)
@@ -160,8 +171,8 @@ FORWARD (pthread_equal, (pthread_t thread1, pthread_t thread2),
(thread1, thread2), 1)
-/* Use an alias to avoid warning, as pthread_exit is declared noreturn. */
-FORWARD2 (__pthread_exit, void, (void *retval), (retval), exit (EXIT_SUCCESS))
+FORWARD_NORETURN (__pthread_exit, void, (void *retval), (retval),
+ exit (EXIT_SUCCESS))
strong_alias (__pthread_exit, pthread_exit);
@@ -192,8 +203,7 @@ FORWARD (pthread_setcancelstate, (int state, int *oldstate), (state, oldstate),
FORWARD (pthread_setcanceltype, (int type, int *oldtype), (type, oldtype), 0)
-#define return /* value is void */
-FORWARD2(__pthread_unwind,
+FORWARD_NORETURN(__pthread_unwind,
void attribute_hidden __attribute ((noreturn)) __cleanup_fct_attribute
attribute_compat_text_section,
(__pthread_unwind_buf_t *buf), (buf), {
@@ -201,4 +211,3 @@ FORWARD2(__pthread_unwind,
INTERNAL_SYSCALL_DECL (err);
INTERNAL_SYSCALL (kill, err, 1, SIGKILL);
})
-#undef return