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.
This commit is contained in:
Martin Sebor 2017-08-22 09:35:23 -06:00
parent 20962acbea
commit ee4e992ebe
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-22 H.J. Lu <hongjiu.lu@intel.com>
[BZ #18822]

View File

@ -803,7 +803,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; \