aboutsummaryrefslogtreecommitdiffstats
diff options
authorAlejandro Colomar <alx@kernel.org>2023-01-26 01:06:34 +0100
committerAlejandro Colomar <alx@kernel.org>2023-01-26 01:06:41 +0100
commita284daa2886e16ae4201d9a469b8ec3792a6a0bc (patch)
tree9bd7d5f3ff2d6588a1e66a39f8755f115a887658
parent47ac68e465ff216b78ce9d77db93f09d7c9ad235 (diff)
downloadman-pages-a284daa2886e16ae4201d9a469b8ec3792a6a0bc.tar.gz
cppcheck.suppress, lint-c.mk: lint-c-cppcheck: Add cppcheck(1) to the C linters
Signed-off-by: Alejandro Colomar <alx@kernel.org>
-rw-r--r--etc/cppcheck/cppcheck.suppress8
-rw-r--r--lib/lint-c.mk18
2 files changed, 25 insertions, 1 deletions
diff --git a/etc/cppcheck/cppcheck.suppress b/etc/cppcheck/cppcheck.suppress
new file mode 100644
index 0000000000..cd9806b211
--- /dev/null
+++ b/etc/cppcheck/cppcheck.suppress
@@ -0,0 +1,8 @@
+ConfigurationNotChecked
+missingIncludeSystem
+redundantContinue
+unassignedVariable
+uninitvar
+unknownMacro
+unmatchedSuppression
+variableScope
diff --git a/lib/lint-c.mk b/lib/lint-c.mk
index c6bc115052..8d0b98822e 100644
--- a/lib/lint-c.mk
+++ b/lib/lint-c.mk
@@ -26,6 +26,16 @@ EXTRA_CLANG-TIDYFLAGS :=
CLANG-TIDYFLAGS := $(DEFAULT_CLANG-TIDYFLAGS) $(EXTRA_CLANG-TIDYFLAGS)
CLANG-TIDY := clang-tidy
+CPPCHECK_SUPPRESS := $(SYSCONFDIR)/cppcheck/cppcheck.suppress
+DEFAULT_CPPCHECKFLAGS := --enable=all
+DEFAULT_CPPCHECKFLAGS += --error-exitcode=2
+DEFAULT_CPPCHECKFLAgS += --inconclusive
+DEFAULT_CPPCHECKFLAGS += --quiet
+DEFAULT_CPPCHECKFLAGS += --suppressions-list=$(CPPCHECK_SUPPRESS)
+EXTRA_CPPCHECKFLAGS :=
+CPPCHECKFLAGS := $(DEFAULT_CPPCHECKFLAGS) $(EXTRA_CPPCHECKFLAGS)
+CPPCHECK := cppcheck
+
DEFAULT_CPPLINTFLAGS :=
EXTRA_CPPLINTFLAGS :=
CPPLINTFLAGS := $(DEFAULT_CPPLINTFLAGS) $(EXTRA_CPPLINTFLAGS)
@@ -40,11 +50,12 @@ IWYU := iwyu
_LINT_c_checkpatch := $(patsubst %.c,%.lint-c.checkpatch.touch,$(_UNITS_src_c))
_LINT_c_clang-tidy := $(patsubst %.c,%.lint-c.clang-tidy.touch,$(_UNITS_src_c))
+_LINT_c_cppcheck := $(patsubst %.c,%.lint-c.cppcheck.touch,$(_UNITS_src_c))
_LINT_c_cpplint := $(patsubst %.c,%.lint-c.cpplint.touch,$(_UNITS_src_c))
_LINT_c_iwyu := $(patsubst %.c,%.lint-c.iwyu.touch,$(_UNITS_src_c))
-linters_c := checkpatch clang-tidy cpplint iwyu
+linters_c := checkpatch clang-tidy cppcheck cpplint iwyu
lint_c := $(foreach x,$(linters_c),lint-c-$(x))
@@ -59,6 +70,11 @@ $(_LINT_c_clang-tidy): %.lint-c.clang-tidy.touch: %.c
| $(SED) '/generated\.$$/d'
touch $@
+$(_LINT_c_cppcheck): %.lint-c.cppcheck.touch: %.c
+ $(info LINT (cppcheck) $@)
+ $(CPPCHECK) $(CPPCHECKFLAGS) $<
+ touch $@
+
$(_LINT_c_cpplint): %.lint-c.cpplint.touch: %.c
$(info LINT (cpplint) $@)
$(CPPLINT) $(CPPLINTFLAGS) $< >/dev/null