From: "Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>
To: git@vger.kernel.org
Cc: "Junio C Hamano" <gitster@pobox.com>, "Jeff King" <peff@peff.net>,
ramsay@ramsayjones.plus.com, larsxschneider@gmail.com,
"Eric Sunshine" <sunshine@sunshineco.com>,
"Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>
Subject: [PATCH v3 0/3] Enable more compiler warnings for devs
Date: Thu, 29 Mar 2018 17:03:19 +0200 [thread overview]
Message-ID: <20180329150322.10722-1-pclouds@gmail.com> (raw)
In-Reply-To: <20180324125348.6614-1-pclouds@gmail.com>
v3 fixes the fallthru warnings in connect.c, and with json-writer
series rerolled, 'pu' should build cleanly now.
-Wno-maybe-uninitialized is removed, thanks to Ramsay.
v3 also adds an experimental patch that adds EAGER_DEVELOPER=1. These
developers will have all warnings enabled (nothing is suppressed) but
they are not fatal. They could go through them and perhaps clean up
the code base a bit more.
Interdiff
diff --git a/Makefile b/Makefile
index e6680a8977..e4f04ce1cb 100644
--- a/Makefile
+++ b/Makefile
@@ -434,7 +434,9 @@ all::
#
# Define DEVELOPER to enable more compiler warnings. Compiler version
# and faimily are auto detected, but could be overridden by defining
-# COMPILER_FEATURES (see config.mak.dev)
+# COMPILER_FEATURES (see config.mak.dev).
+# Define EAGER_DEVELOPER keeps compiler warnings non-fatal, but no warning
+# class is suppressed anymore.
GIT-VERSION-FILE: FORCE
@$(SHELL_PATH) ./GIT-VERSION-GEN
@@ -1041,6 +1043,9 @@ include config.mak.uname
-include config.mak.autogen
-include config.mak
+ifdef EAGER_DEVELOPER
+DEVELOPER = Yes
+endif
ifdef DEVELOPER
include config.mak.dev
endif
diff --git a/config.mak.dev b/config.mak.dev
index d8beaf9347..13883410b3 100644
--- a/config.mak.dev
+++ b/config.mak.dev
@@ -1,4 +1,6 @@
+ifndef EAGER_DEVELOPER
CFLAGS += -Werror
+endif
CFLAGS += -Wdeclaration-after-statement
CFLAGS += -Wno-format-zero-length
CFLAGS += -Wold-style-definition
@@ -18,13 +20,23 @@ endif
ifneq ($(or $(filter gcc6,$(COMPILER_FEATURES)),$(filter clang4,$(COMPILER_FEATURES))),)
CFLAGS += -Wextra
+# if a function is public, there should be a prototype and the right
+# header file should be included. If not, it should be static.
CFLAGS += -Wmissing-prototypes
+ifndef EAGER_DEVELOPER
+# These are disabled because we have these all over the place.
CFLAGS += -Wno-empty-body
CFLAGS += -Wno-missing-field-initializers
CFLAGS += -Wno-sign-compare
CFLAGS += -Wno-unused-function
CFLAGS += -Wno-unused-parameter
-ifneq ($(filter gcc6,$(COMPILER_FEATURES)),)
-CFLAGS += -Wno-maybe-uninitialized
+endif
+endif
+
+# uninitialized warnings on gcc 4.9.2 in xdiff/xdiffi.c and config.c
+# not worth fixing since newer compilers correctly stop complaining
+ifneq ($(filter gcc4,$(COMPILER_FEATURES)),)
+ifeq ($(filter gcc5,$(COMPILER_FEATURES)),)
+CFLAGS += -Wno-uninitialized
endif
endif
diff --git a/connect.c b/connect.c
index c3a014c5ba..49eca46462 100644
--- a/connect.c
+++ b/connect.c
@@ -46,7 +46,7 @@ int check_ref_type(const struct ref *ref, int flags)
return check_ref(ref->name, flags);
}
-static void die_initial_contact(int unexpected)
+static NORETURN void die_initial_contact(int unexpected)
{
if (unexpected)
die(_("The remote end hung up upon initial contact"));
Nguyễn Thái Ngọc Duy (3):
connect.c: mark die_initial_contact() NORETURN
Makefile: detect compiler and enable more warnings in DEVELOPER=1
Makefile: add EAGER_DEVELOPER mode
Makefile | 20 +++++++++----------
config.mak.dev | 42 +++++++++++++++++++++++++++++++++++++++
connect.c | 2 +-
detect-compiler | 53 +++++++++++++++++++++++++++++++++++++++++++++++++
4 files changed, 106 insertions(+), 11 deletions(-)
create mode 100644 config.mak.dev
create mode 100755 detect-compiler
--
2.17.0.rc1.439.gca064e2955
next prev parent reply other threads:[~2018-03-29 15:03 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-03 1:46 [PATCH] travis-ci: enable more warnings on travis linux-gcc job Nguyễn Thái Ngọc Duy
2018-03-16 19:33 ` [PATCH v2] " Nguyễn Thái Ngọc Duy
2018-03-16 21:22 ` Jeff King
2018-03-17 8:01 ` Duy Nguyen
2018-03-17 14:29 ` Lars Schneider
2018-03-17 14:59 ` Duy Nguyen
2018-03-17 16:08 ` Jeff King
2018-03-17 16:12 ` Jeff King
2018-03-17 23:50 ` Junio C Hamano
2018-03-18 8:18 ` [PATCH] Makefile: detect compiler and enable more warnings in DEVELOPER=1 Nguyễn Thái Ngọc Duy
2018-03-18 9:06 ` Eric Sunshine
2018-03-18 9:17 ` Duy Nguyen
2018-03-18 9:20 ` Jeff King
2018-03-18 9:24 ` Eric Sunshine
2018-03-18 9:28 ` Jeff King
2018-03-18 9:37 ` Eric Sunshine
2018-03-18 9:26 ` Jeff King
2018-03-18 9:45 ` Duy Nguyen
2018-03-18 15:55 ` Duy Nguyen
2018-03-18 18:56 ` Ramsay Jones
2018-03-19 16:30 ` Duy Nguyen
2018-03-20 5:32 ` Jeff King
2018-03-24 12:53 ` [PATCH v2] " Nguyễn Thái Ngọc Duy
2018-03-25 0:40 ` Eric Sunshine
2018-03-26 22:02 ` Junio C Hamano
2018-03-27 15:03 ` Duy Nguyen
2018-03-27 16:52 ` Junio C Hamano
2018-03-29 15:03 ` Nguyễn Thái Ngọc Duy [this message]
2018-03-29 15:03 ` [PATCH v3 1/3] connect.c: mark die_initial_contact() NORETURN Nguyễn Thái Ngọc Duy
2018-03-29 15:03 ` [PATCH v3 2/3] Makefile: detect compiler and enable more warnings in DEVELOPER=1 Nguyễn Thái Ngọc Duy
2018-03-29 15:03 ` [PATCH v3 3/3] Makefile: add EAGER_DEVELOPER mode Nguyễn Thái Ngọc Duy
2018-03-31 16:40 ` [PATCH 4/3] Makefile: untangle DEVELOPER and -Werror Ævar Arnfjörð Bjarmason
2018-03-31 18:36 ` Duy Nguyen
2018-04-03 9:19 ` Ævar Arnfjörð Bjarmason
2018-04-03 15:17 ` Duy Nguyen
2018-04-06 21:42 ` Jeff King
2018-04-07 9:52 ` Duy Nguyen
2018-04-07 12:36 ` Ævar Arnfjörð Bjarmason
2018-04-07 17:03 ` Duy Nguyen
2018-04-07 18:38 ` Ævar Arnfjörð Bjarmason
2018-04-14 19:19 ` [PATCH v4 0/4] Make DEVELOPER more more flexible with DEVOPTS Ævar Arnfjörð Bjarmason
2018-04-16 4:57 ` Junio C Hamano
2018-04-14 19:19 ` [PATCH v4 1/4] connect.c: mark die_initial_contact() NORETURN Ævar Arnfjörð Bjarmason
2018-04-14 19:19 ` [PATCH v4 2/4] Makefile: detect compiler and enable more warnings in DEVELOPER=1 Ævar Arnfjörð Bjarmason
2018-04-14 19:19 ` [PATCH v4 3/4] Makefile: add a DEVOPTS to suppress -Werror under DEVELOPER Ævar Arnfjörð Bjarmason
2018-04-14 19:19 ` [PATCH v4 4/4] Makefile: add a DEVOPTS to get all of -Wextra Ævar Arnfjörð Bjarmason
2018-03-17 15:16 ` [PATCH v2] travis-ci: enable more warnings on travis linux-gcc job Jeff King
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180329150322.10722-1-pclouds@gmail.com \
--to=pclouds@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=larsxschneider@gmail.com \
--cc=peff@peff.net \
--cc=ramsay@ramsayjones.plus.com \
--cc=sunshine@sunshineco.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.