From cdbf3d385a32ff904c96f20c26f3470bd8345248 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Tue, 17 Jul 2018 00:49:06 +0200 Subject: [PATCH] ffs: Ensure declaration on mingw. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Reported by Daniel P. Berrangé in https://lists.gnu.org/archive/html/bug-gnulib/2018-07/msg00061.html. * m4/ffs.m4 (gl_FUNC_FFS): Check whether ffs() not only exists but is also declared. --- ChangeLog | 8 ++++++++ m4/ffs.m4 | 9 +++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3d89a67d69..ecb9e48f65 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2018-07-16 Bruno Haible + + ffs: Ensure declaration on mingw. + Reported by Daniel P. Berrangé + in https://lists.gnu.org/archive/html/bug-gnulib/2018-07/msg00061.html. + * m4/ffs.m4 (gl_FUNC_FFS): Check whether ffs() not only exists but is + also declared. + 2018-07-13 Paul Eggert regex-tests: add dependency diff --git a/m4/ffs.m4 b/m4/ffs.m4 index 78b13ee685..a305f2b490 100644 --- a/m4/ffs.m4 +++ b/m4/ffs.m4 @@ -1,4 +1,4 @@ -# ffs.m4 serial 3 +# ffs.m4 serial 4 dnl Copyright (C) 2011-2018 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -10,13 +10,18 @@ AC_DEFUN([gl_FUNC_FFS], dnl We can't use AC_CHECK_FUNC here, because ffs() is defined as a dnl static inline function when compiling for Android 4.2 or older. + dnl But require that ffs() is declared; otherwise we may be using + dnl the GCC built-in function, which leads to warnings + dnl "warning: implicit declaration of function 'ffs'". AC_CACHE_CHECK([for ffs], [gl_cv_func_ffs], [AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include int x; ]], - [[return ffs(x);]]) + [[int (*func) (int) = ffs; + return func (x); + ]]) ], [gl_cv_func_ffs=yes], [gl_cv_func_ffs=no]) -- 2.39.5