]>
Commit | Line | Data |
---|---|---|
27e0c3c6 CMAB |
1 | ifndef COMPILER_FEATURES |
2 | COMPILER_FEATURES := $(shell ./detect-compiler $(CC)) | |
3 | endif | |
4 | ||
99f763ba | 5 | ifeq ($(filter no-error,$(DEVOPTS)),) |
6d5d4b4e | 6 | DEVELOPER_CFLAGS += -Werror |
521dc562 | 7 | SPARSE_FLAGS += -Wsparse-error |
99f763ba | 8 | endif |
ebd2e4a1 | 9 | |
27e0c3c6 | 10 | DEVELOPER_CFLAGS += -Wall |
6a8cbc41 | 11 | ifeq ($(filter no-pedantic,$(DEVOPTS)),) |
6d5d4b4e | 12 | DEVELOPER_CFLAGS += -pedantic |
ebd2e4a1 | 13 | ifneq (($or $(filter gcc5,$(COMPILER_FEATURES)),$(filter clang4,$(COMPILER_FEATURES))),) |
6a8cbc41 | 14 | DEVELOPER_CFLAGS += -Wpedantic |
ebd2e4a1 CMAB |
15 | ifneq ($(filter gcc10,$(COMPILER_FEATURES)),) |
16 | ifeq ($(uname_S),MINGW) | |
6a8cbc41 | 17 | DEVELOPER_CFLAGS += -Wno-pedantic-ms-format |
27e0c3c6 | 18 | endif |
6d5d4b4e | 19 | endif |
ebd2e4a1 CMAB |
20 | endif |
21 | endif | |
6d5d4b4e ÆAB |
22 | DEVELOPER_CFLAGS += -Wdeclaration-after-statement |
23 | DEVELOPER_CFLAGS += -Wformat-security | |
6d5d4b4e ÆAB |
24 | DEVELOPER_CFLAGS += -Wold-style-definition |
25 | DEVELOPER_CFLAGS += -Woverflow | |
26 | DEVELOPER_CFLAGS += -Wpointer-arith | |
27 | DEVELOPER_CFLAGS += -Wstrict-prototypes | |
28 | DEVELOPER_CFLAGS += -Wunused | |
29 | DEVELOPER_CFLAGS += -Wvla | |
55391836 | 30 | DEVELOPER_CFLAGS += -fno-common |
1da1580e | 31 | |
1da1580e | 32 | ifneq ($(filter clang4,$(COMPILER_FEATURES)),) |
6d5d4b4e | 33 | DEVELOPER_CFLAGS += -Wtautological-constant-out-of-range-compare |
1da1580e NTND |
34 | endif |
35 | ||
36 | ifneq ($(or $(filter gcc6,$(COMPILER_FEATURES)),$(filter clang4,$(COMPILER_FEATURES))),) | |
6d5d4b4e | 37 | DEVELOPER_CFLAGS += -Wextra |
1da1580e NTND |
38 | # if a function is public, there should be a prototype and the right |
39 | # header file should be included. If not, it should be static. | |
6d5d4b4e | 40 | DEVELOPER_CFLAGS += -Wmissing-prototypes |
26d2e4fb | 41 | ifeq ($(filter extra-all,$(DEVOPTS)),) |
1da1580e | 42 | # These are disabled because we have these all over the place. |
6d5d4b4e ÆAB |
43 | DEVELOPER_CFLAGS += -Wno-empty-body |
44 | DEVELOPER_CFLAGS += -Wno-missing-field-initializers | |
45 | DEVELOPER_CFLAGS += -Wno-sign-compare | |
46 | DEVELOPER_CFLAGS += -Wno-unused-parameter | |
1da1580e | 47 | endif |
26d2e4fb | 48 | endif |
1da1580e NTND |
49 | |
50 | # uninitialized warnings on gcc 4.9.2 in xdiff/xdiffi.c and config.c | |
51 | # not worth fixing since newer compilers correctly stop complaining | |
52 | ifneq ($(filter gcc4,$(COMPILER_FEATURES)),) | |
53 | ifeq ($(filter gcc5,$(COMPILER_FEATURES)),) | |
6d5d4b4e | 54 | DEVELOPER_CFLAGS += -Wno-uninitialized |
1da1580e NTND |
55 | endif |
56 | endif | |
5338ed2b JK |
57 | |
58 | GIT_TEST_PERL_FATAL_WARNINGS = YesPlease |