]>
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 | |
5f463853 JK |
22 | |
23 | ifneq ($(or $(filter gcc6,$(COMPILER_FEATURES)),$(filter clang7,$(COMPILER_FEATURES))),) | |
24 | DEVELOPER_CFLAGS += -std=gnu99 | |
25 | endif | |
26 | ||
6d5d4b4e ÆAB |
27 | DEVELOPER_CFLAGS += -Wdeclaration-after-statement |
28 | DEVELOPER_CFLAGS += -Wformat-security | |
6d5d4b4e ÆAB |
29 | DEVELOPER_CFLAGS += -Wold-style-definition |
30 | DEVELOPER_CFLAGS += -Woverflow | |
31 | DEVELOPER_CFLAGS += -Wpointer-arith | |
32 | DEVELOPER_CFLAGS += -Wstrict-prototypes | |
33 | DEVELOPER_CFLAGS += -Wunused | |
34 | DEVELOPER_CFLAGS += -Wvla | |
55391836 | 35 | DEVELOPER_CFLAGS += -fno-common |
1da1580e | 36 | |
1da1580e | 37 | ifneq ($(filter clang4,$(COMPILER_FEATURES)),) |
6d5d4b4e | 38 | DEVELOPER_CFLAGS += -Wtautological-constant-out-of-range-compare |
1da1580e NTND |
39 | endif |
40 | ||
41 | ifneq ($(or $(filter gcc6,$(COMPILER_FEATURES)),$(filter clang4,$(COMPILER_FEATURES))),) | |
6d5d4b4e | 42 | DEVELOPER_CFLAGS += -Wextra |
1da1580e NTND |
43 | # if a function is public, there should be a prototype and the right |
44 | # header file should be included. If not, it should be static. | |
6d5d4b4e | 45 | DEVELOPER_CFLAGS += -Wmissing-prototypes |
26d2e4fb | 46 | ifeq ($(filter extra-all,$(DEVOPTS)),) |
1da1580e | 47 | # These are disabled because we have these all over the place. |
6d5d4b4e ÆAB |
48 | DEVELOPER_CFLAGS += -Wno-empty-body |
49 | DEVELOPER_CFLAGS += -Wno-missing-field-initializers | |
50 | DEVELOPER_CFLAGS += -Wno-sign-compare | |
51 | DEVELOPER_CFLAGS += -Wno-unused-parameter | |
1da1580e | 52 | endif |
26d2e4fb | 53 | endif |
1da1580e NTND |
54 | |
55 | # uninitialized warnings on gcc 4.9.2 in xdiff/xdiffi.c and config.c | |
56 | # not worth fixing since newer compilers correctly stop complaining | |
57 | ifneq ($(filter gcc4,$(COMPILER_FEATURES)),) | |
58 | ifeq ($(filter gcc5,$(COMPILER_FEATURES)),) | |
6d5d4b4e | 59 | DEVELOPER_CFLAGS += -Wno-uninitialized |
1da1580e NTND |
60 | endif |
61 | endif | |
5338ed2b JK |
62 | |
63 | GIT_TEST_PERL_FATAL_WARNINGS = YesPlease |