From 7a3bbca81b803ba116b83c82de378e840cc35f81 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Thu, 1 Sep 2022 16:19:50 -0500 Subject: [PATCH] Port to compilers that moan about K&R func decls MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * lib/autoconf/c.m4 (AC_LANG_CALL, AC_LANG_FUNC_LINK_TRY): Use '(void)' rather than '()' in function prototypes, as the latter provokes fatal errors in some compilers nowadays. * lib/autoconf/functions.m4 (AC_FUNC_STRTOD): * tests/fortran.at (AC_F77_DUMMY_MAIN usage): * tests/semantics.at (AC_CHECK_DECLS): Don’t use () in a function decl. Upstream-Status: Backport [https://git.savannah.gnu.org/cgit/autoconf.git/commit/?id=8b5e2016c7ed2d67f31b03a3d2e361858ff5299b] Signed-off-by: Khem Raj --- doc/autoconf.texi | 7 +++---- lib/autoconf/c.m4 | 6 +++--- lib/autoconf/functions.m4 | 3 --- tests/fortran.at | 8 ++++---- tests/semantics.at | 2 +- 5 files changed, 11 insertions(+), 15 deletions(-) --- a/doc/autoconf.texi +++ b/doc/autoconf.texi @@ -5465,9 +5465,7 @@ the @samp{#undef malloc}): #include #undef malloc -#include - -void *malloc (); +#include /* Allocate an N-byte block of memory from the heap. If N is zero, allocate a 1-byte block. */ @@ -8295,7 +8293,7 @@ needed: # ifdef __cplusplus extern "C" # endif - int F77_DUMMY_MAIN () @{ return 1; @} + int F77_DUMMY_MAIN (void) @{ return 1; @} #endif @end example --- a/lib/autoconf/c.m4 +++ b/lib/autoconf/c.m4 @@ -127,7 +127,7 @@ m4_if([$2], [main], , [/* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ -char $2 ();])], [return $2 ();])]) +char $2 (void);])], [return $2 ();])]) # AC_LANG_FUNC_LINK_TRY(C)(FUNCTION) @@ -151,7 +151,7 @@ m4_define([AC_LANG_FUNC_LINK_TRY(C)], #define $1 innocuous_$1 /* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $1 (); below. */ + which can conflict with char $1 (void); below. */ #include #undef $1 @@ -162,7 +162,7 @@ m4_define([AC_LANG_FUNC_LINK_TRY(C)], #ifdef __cplusplus extern "C" #endif -char $1 (); +char $1 (void); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ --- a/lib/autoconf/functions.m4 +++ b/lib/autoconf/functions.m4 @@ -1601,9 +1601,6 @@ AC_DEFUN([AC_FUNC_STRTOD], AC_CACHE_CHECK(for working strtod, ac_cv_func_strtod, [AC_RUN_IFELSE([AC_LANG_SOURCE([[ ]AC_INCLUDES_DEFAULT[ -#ifndef strtod -double strtod (); -#endif int main (void) { --- a/tests/fortran.at +++ b/tests/fortran.at @@ -233,7 +233,7 @@ void FOOBAR_F77 (double *x, double *y); # ifdef __cplusplus extern "C" # endif - int F77_DUMMY_MAIN () { return 1; } + int F77_DUMMY_MAIN (void) { return 1; } #endif int main(int argc, char *argv[]) @@ -315,7 +315,7 @@ void FOOBAR_FC(double *x, double *y); # ifdef __cplusplus extern "C" # endif - int FC_DUMMY_MAIN () { return 1; } + int FC_DUMMY_MAIN (void) { return 1; } #endif int main (int argc, char *argv[]) @@ -561,7 +561,7 @@ void @foobar@ (int *x); # ifdef __cplusplus extern "C" # endif - int F77_DUMMY_MAIN () { return 1; } + int F77_DUMMY_MAIN (void) { return 1; } #endif int main(int argc, char *argv[]) @@ -637,7 +637,7 @@ void @foobar@ (int *x); # ifdef __cplusplus extern "C" # endif - int FC_DUMMY_MAIN () { return 1; } + int FC_DUMMY_MAIN (void) { return 1; } #endif int main(int argc, char *argv[]) --- a/tests/semantics.at +++ b/tests/semantics.at @@ -207,7 +207,7 @@ AT_CHECK_MACRO([AC_CHECK_DECLS], [[extern int yes; enum { myenum }; extern struct mystruct_s { int x[20]; } mystruct; - extern int myfunc(); + extern int myfunc (int); #define mymacro1(arg) arg #define mymacro2]]) # Ensure we can detect missing declarations of functions whose