The gcc -Wmissing-prototype / -Wmissing-declaration option is not something
I would universally turn on, because sometimes functions are not defined for
explicit invocation, but only for backward compatibility.

But sometimes it can highlight maintainability problems. In particular, this
warning seemed worth fixing:

gettext-tools/gnulib-lib/omp-init.c:73:1: warning: no previous prototype for 
'openmp_init' [-Wmissing-prototypes]


2023-06-02  Bruno Haible  <br...@clisp.org>

        openmp-init: Silence "no previous prototype for 'openmp_init'" warning.
        * lib/omp.in.h: Test _OPENMP.
        * lib/omp-init.c: Include <omp.h> always.
        * modules/openmp-init (Include): Allow <omp.h> to be included always.

diff --git a/lib/omp-init.c b/lib/omp-init.c
index 705200c80b..70adaa6e34 100644
--- a/lib/omp-init.c
+++ b/lib/omp-init.c
@@ -17,12 +17,8 @@
 
 #include <config.h>
 
-#ifdef _OPENMP
-
 /* Specification.  */
-# include <omp.h>
-
-#endif
+#include <omp.h>
 
 #include <stdlib.h>
 
diff --git a/lib/omp.in.h b/lib/omp.in.h
index 3b63d09577..57d5865fee 100644
--- a/lib/omp.in.h
+++ b/lib/omp.in.h
@@ -23,7 +23,9 @@
 #ifndef _@GUARD_PREFIX@_OMP_H
 
 /* The include_next requires a split double-inclusion guard.  */
-#@INCLUDE_NEXT@ @NEXT_OMP_H@
+#ifdef _OPENMP
+# @INCLUDE_NEXT@ @NEXT_OMP_H@
+#endif
 
 #ifndef _@GUARD_PREFIX@_OMP_H
 #define _@GUARD_PREFIX@_OMP_H
diff --git a/modules/openmp-init b/modules/openmp-init
index 321da3559b..ad5ccc0d78 100644
--- a/modules/openmp-init
+++ b/modules/openmp-init
@@ -37,9 +37,7 @@ MOSTLYCLEANFILES += omp.h omp.h-t
 lib_SOURCES += omp-init.c
 
 Include:
-#ifdef _OPENMP
-# include <omp.h>
-#endif
+#include <omp.h>
 
 License:
 LGPL




Reply via email to