aboutsummaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
authorPeter Eisentraut <peter@eisentraut.org>2024-08-03 11:42:37 +0200
committerPeter Eisentraut <peter@eisentraut.org>2024-08-03 11:51:02 +0200
commit66188912566b5614dff095ae86f4b1e06d58e875 (patch)
tree3c86ba7c2b967437b29f83eb49231f43577ac023 /configure.ac
parent7926a9a80f6daf0fcc1feb1bee5c51fd001bc173 (diff)
downloadpostgresql-66188912566b5614dff095ae86f4b1e06d58e875.tar.gz
postgresql-66188912566b5614dff095ae86f4b1e06d58e875.zip
Add -Wmissing-variable-declarations to the standard compilation flags
This warning flag detects global variables not declared in header files. This is similar to what -Wmissing-prototypes does for functions. (More correctly, it is similar to what -Wmissing-declarations does for functions, but -Wmissing-prototypes is a superset of that in C.) This flag is new in GCC 14. Clang has supported it for a while. Several recent commits have cleaned up warnings triggered by this, so it should now be clean. Reviewed-by: Andres Freund <andres@anarazel.de> Discussion: https://www.postgresql.org/message-id/flat/e0a62134-83da-4ba4-8cdb-ceb0111c95ce@eisentraut.org
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac9
1 files changed, 9 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
index 83f2307a621..049bc014911 100644
--- a/configure.ac
+++ b/configure.ac
@@ -518,6 +518,15 @@ if test "$GCC" = yes -a "$ICC" = no; then
# This was included in -Wall/-Wformat in older GCC versions
PGAC_PROG_CC_CFLAGS_OPT([-Wformat-security])
PGAC_PROG_CXX_CFLAGS_OPT([-Wformat-security])
+ # gcc 14+, clang for a while
+ # (Supported in C++ by clang but not gcc. For consistency, omit in C++.)
+ save_CFLAGS=$CFLAGS
+ PGAC_PROG_CC_CFLAGS_OPT([-Wmissing-variable-declarations])
+ PERMIT_MISSING_VARIABLE_DECLARATIONS=
+ if test x"$save_CFLAGS" != x"$CFLAGS"; then
+ PERMIT_MISSING_VARIABLE_DECLARATIONS=-Wno-missing-variable-declarations
+ fi
+ AC_SUBST(PERMIT_MISSING_VARIABLE_DECLARATIONS)
# Disable strict-aliasing rules; needed for gcc 3.3+
PGAC_PROG_CC_CFLAGS_OPT([-fno-strict-aliasing])
PGAC_PROG_CXX_CFLAGS_OPT([-fno-strict-aliasing])