Clean up more fallout from r252976.
authorMartin Sebor <msebor@redhat.com>
Mon, 2 Oct 2017 23:57:19 +0000 (23:57 +0000)
committerMartin Sebor <msebor@gcc.gnu.org>
Mon, 2 Oct 2017 23:57:19 +0000 (17:57 -0600)
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

libatomic/ChangeLog
libatomic/acinclude.m4
libatomic/configure
libatomic/libatomic_i.h

index 9e11b23..835ea6c 100644 (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.
index 485d731..383218f 100644 (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],
index c05fc9d..e88a7b8 100755 (executable)
@@ -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 ()
index 4eb372a..2dad4a8 100644 (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);                            \