Declare ifunc resolver to return a pointer to the same type as the target

function to help GCC detect incompatibilities between the two when it's
enhanced to do so.

(cherry picked from commit ee4e992ebe5f9712faedeefe8958b67d61eaa0f2)
This commit is contained in:
Martin Sebor 2017-08-22 09:35:23 -06:00 committed by Florian Weimer
parent 2422c6032f
commit ac6113cb01
2 changed files with 7 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2017-08-22 Martin Sebor <msebor@redhat.com>
* include/libc-symbols.h (__ifunc_resolver): Declare resolver
to return a pointer to the same type as the target function.
2017-08-03 Alan Modra <amodra@gmail.com>
* sysdeps/powerpc/mod-tlsopt-powerpc.c: Extract from

View File

@ -782,7 +782,8 @@ for linking")
/* Helper / base macros for indirect function symbols. */
#define __ifunc_resolver(type_name, name, expr, arg, init, classifier) \
classifier inhibit_stack_protector void *name##_ifunc (arg) \
classifier inhibit_stack_protector \
__typeof (type_name) *name##_ifunc (arg) \
{ \
init (); \
__typeof (type_name) *res = expr; \