Clean up more fallout from r252976.

libatomic/ChangeLog:
2017-10-02  Martin Sebor  <msebor@redhat.com>

	PR c/81854
	* acinclude.m4 (LIBAT_CHECK_IFUNC): Have ifunc resolver return
	a function pointer rather than void* to avoid GCC 8 warnings.
	* configure: Regenerate.
	* libatomic_i.h: Declare ifunc resolvers to return function
	pointers rather than void*.

From-SVN: r253372
This commit is contained in:
Martin Sebor 2017-10-02 23:57:19 +00:00 committed by Martin Sebor
parent 9a741aee62
commit bc437a5699
4 changed files with 21 additions and 5 deletions

View File

@ -1,3 +1,12 @@
2017-10-02 Martin Sebor <msebor@redhat.com>
PR c/81854
* acinclude.m4 (LIBAT_CHECK_IFUNC): Have ifunc resolver return
a function pointer rather than void* to avoid GCC 8 warnings.
* configure: Regenerate.
* libatomic_i.h: Declare ifunc resolvers to return function
pointers rather than void*.
2017-05-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* testsuite/lib/libatomic.exp: Load scanlang.exp.

View File

@ -195,7 +195,8 @@ AC_DEFUN([LIBAT_CHECK_IFUNC], [
CFLAGS="$CFLAGS -Werror"
AC_TRY_LINK([
int foo_alt(void) { return 0; }
void *foo_sel(void) { return foo_alt; }
typedef int F (void);
F *foo_sel(void) { return foo_alt; }
int foo(void) __attribute__((ifunc("foo_sel")));],
[return foo();], libat_cv_have_ifunc=yes, libat_cv_have_ifunc=no)])
LIBAT_DEFINE_YESNO([HAVE_IFUNC], [$libat_cv_have_ifunc],

8
libatomic/configure vendored
View File

@ -12333,6 +12333,7 @@ _ACEOF
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __atomic_load/store for size 2" >&5
$as_echo_n "checking for __atomic_load/store for size 2... " >&6; }
if test "${libat_cv_have_at_ldst_2+set}" = set; then :
@ -12400,6 +12401,7 @@ _ACEOF
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __atomic_load/store for size 4" >&5
$as_echo_n "checking for __atomic_load/store for size 4... " >&6; }
if test "${libat_cv_have_at_ldst_4+set}" = set; then :
@ -12467,6 +12469,7 @@ _ACEOF
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __atomic_load/store for size 8" >&5
$as_echo_n "checking for __atomic_load/store for size 8... " >&6; }
if test "${libat_cv_have_at_ldst_8+set}" = set; then :
@ -12534,6 +12537,7 @@ _ACEOF
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __atomic_load/store for size 16" >&5
$as_echo_n "checking for __atomic_load/store for size 16... " >&6; }
if test "${libat_cv_have_at_ldst_16+set}" = set; then :
@ -12602,6 +12606,7 @@ _ACEOF
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __atomic_test_and_set for size 1" >&5
$as_echo_n "checking for __atomic_test_and_set for size 1... " >&6; }
if test "${libat_cv_have_at_tas_1+set}" = set; then :
@ -14693,7 +14698,8 @@ else
/* end confdefs.h. */
int foo_alt(void) { return 0; }
void *foo_sel(void) { return foo_alt; }
typedef int F (void);
F *foo_sel(void) { return foo_alt; }
int foo(void) __attribute__((ifunc("foo_sel")));
int
main ()

View File

@ -240,7 +240,7 @@ bool libat_is_lock_free (size_t, void *) MAN(is_lock_free);
# if IFUNC_NCOND(N) == 1
# define GEN_SELECTOR(X) \
extern typeof(C2(libat_,X)) C3(libat_,X,_i1) HIDDEN; \
static void * C2(select_,X) (void) \
static typeof(C2(libat_,X)) * C2(select_,X) (void) \
{ \
if (IFUNC_COND_1) \
return C3(libat_,X,_i1); \
@ -250,7 +250,7 @@ bool libat_is_lock_free (size_t, void *) MAN(is_lock_free);
# define GEN_SELECTOR(X) \
extern typeof(C2(libat_,X)) C3(libat_,X,_i1) HIDDEN; \
extern typeof(C2(libat_,X)) C3(libat_,X,_i2) HIDDEN; \
static void * C2(select_,X) (void) \
static typeof(C2(libat_,X)) * C2(select_,X) (void) \
{ \
if (IFUNC_COND_1) \
return C3(libat_,X,_i1); \
@ -263,7 +263,7 @@ bool libat_is_lock_free (size_t, void *) MAN(is_lock_free);
extern typeof(C2(libat_,X)) C3(libat_,X,_i1) HIDDEN; \
extern typeof(C2(libat_,X)) C3(libat_,X,_i2) HIDDEN; \
extern typeof(C2(libat_,X)) C3(libat_,X,_i3) HIDDEN; \
static void * C2(select_,X) (void) \
static typeof(C2(libat_,X)) * C2(select_,X) (void) \
{ \
if (IFUNC_COND_1) \
return C3(libat_,X,_i1); \