summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Beat Bolli <dev+git@drbeat.li>2018-07-24 21:26:43 +0200
committerLibravatar Junio C Hamano <gitster@pobox.com>2018-07-25 09:52:32 -0700
commit729b3925ed962565e0d6cc144a4235fdf9a6aa85 (patch)
tree9c069b13f589756cbb1c59b0cd81b6a88eb9964a
parentutf8.c: avoid char overflow (diff)
downloadtgif-729b3925ed962565e0d6cc144a4235fdf9a6aa85.tar.xz
Makefile: add a DEVOPTS flag to get pedantic compilation
In the interest of code hygiene, make it easier to compile Git with the flag -pedantic. Pure pedantic compilation with GCC 7.3 results in one warning per use of the translation macro `N_`: warning: array initialized from parenthesized string constant [-Wpedantic] Therefore also disable the parenthesising of i18n strings with -DUSE_PARENS_AROUND_GETTEXT_N=0. Signed-off-by: Beat Bolli <dev+git@drbeat.li> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--Makefile5
-rw-r--r--config.mak.dev5
2 files changed, 10 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index e4b503d259..64aacb360d 100644
--- a/Makefile
+++ b/Makefile
@@ -484,6 +484,11 @@ all::
# The DEVELOPER mode enables -Wextra with a few exceptions. By
# setting this flag the exceptions are removed, and all of
# -Wextra is used.
+#
+# pedantic:
+#
+# Enable -pedantic compilation. This also disables
+# USE_PARENS_AROUND_GETTEXT_N to produce only relevant warnings.
GIT-VERSION-FILE: FORCE
@$(SHELL_PATH) ./GIT-VERSION-GEN
diff --git a/config.mak.dev b/config.mak.dev
index 2d244ca470..9a998149d9 100644
--- a/config.mak.dev
+++ b/config.mak.dev
@@ -1,6 +1,11 @@
ifeq ($(filter no-error,$(DEVOPTS)),)
CFLAGS += -Werror
endif
+ifneq ($(filter pedantic,$(DEVOPTS)),)
+CFLAGS += -pedantic
+# don't warn for each N_ use
+CFLAGS += -DUSE_PARENS_AROUND_GETTEXT_N=0
+endif
CFLAGS += -Wdeclaration-after-statement
CFLAGS += -Wno-format-zero-length
CFLAGS += -Wold-style-definition