Makefile: add a DEVOPTS to get all of -Wextra

Change DEVOPTS to understand a "extra-all" option. When the DEVELOPER
flag is enabled we turn on -Wextra, but manually switch some of the
warnings it turns on off.

This is because we have many existing occurrences of them in the code
base. This mode will stop the suppression, let the developer see and
decide whether to  fix them.

This change is a slight alteration of Nguyễn Thái Ngọc Duy
EAGER_DEVELOPER mode patch[1]

1. "[PATCH v3 3/3] Makefile: add EAGER_DEVELOPER
    mode" (<20180329150322.10722-4-pclouds@gmail.com>;
    https://public-inbox.org/git/20180329150322.10722-4-pclouds@gmail.com/)

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Ævar Arnfjörð Bjarmason 2018-04-14 19:19:46 +00:00 committed by Junio C Hamano
parent 99f763baf5
commit 26d2e4fb22
2 changed files with 8 additions and 0 deletions

View File

@ -445,6 +445,12 @@ all::
# suppresses the -Werror that implicitly comes with # suppresses the -Werror that implicitly comes with
# DEVELOPER=1. Useful for getting the full set of errors # DEVELOPER=1. Useful for getting the full set of errors
# without immediately dying, or for logging them. # without immediately dying, or for logging them.
#
# extra-all:
#
# The DEVELOPER mode enables -Wextra with a few exceptions. By
# setting this flag the exceptions are removed, and all of
# -Wextra is used.
GIT-VERSION-FILE: FORCE GIT-VERSION-FILE: FORCE
@$(SHELL_PATH) ./GIT-VERSION-GEN @$(SHELL_PATH) ./GIT-VERSION-GEN

View File

@ -23,6 +23,7 @@ CFLAGS += -Wextra
# if a function is public, there should be a prototype and the right # if a function is public, there should be a prototype and the right
# header file should be included. If not, it should be static. # header file should be included. If not, it should be static.
CFLAGS += -Wmissing-prototypes CFLAGS += -Wmissing-prototypes
ifeq ($(filter extra-all,$(DEVOPTS)),)
# These are disabled because we have these all over the place. # These are disabled because we have these all over the place.
CFLAGS += -Wno-empty-body CFLAGS += -Wno-empty-body
CFLAGS += -Wno-missing-field-initializers CFLAGS += -Wno-missing-field-initializers
@ -30,6 +31,7 @@ CFLAGS += -Wno-sign-compare
CFLAGS += -Wno-unused-function CFLAGS += -Wno-unused-function
CFLAGS += -Wno-unused-parameter CFLAGS += -Wno-unused-parameter
endif endif
endif
# uninitialized warnings on gcc 4.9.2 in xdiff/xdiffi.c and config.c # uninitialized warnings on gcc 4.9.2 in xdiff/xdiffi.c and config.c
# not worth fixing since newer compilers correctly stop complaining # not worth fixing since newer compilers correctly stop complaining