diff options
| author | Megan <megan.teo@ibm.com> | 2019-06-25 15:17:40 -0500 |
|---|---|---|
| committer | Daniel M Crowell <dcrowell@us.ibm.com> | 2019-09-11 10:53:06 -0500 |
| commit | 1d4530dac35a6baddf60a3bfd454aac1949f69b6 (patch) | |
| tree | 5322e1e18208364078d0e0a5f54ecdf48402fe50 /makefile | |
| parent | bafe5de9d8b538d978d9955386b5f1fd0ae1d82b (diff) | |
| download | talos-hostboot-1d4530dac35a6baddf60a3bfd454aac1949f69b6.tar.gz talos-hostboot-1d4530dac35a6baddf60a3bfd454aac1949f69b6.zip | |
Implement Static Analysis with cppcheck
Cppcheck static analysis tool can now be run when compiling
by running: make cppcheck
And it will always run when committing without stopping the
commit if an error is found.
This commit suppresses some false positives found in the code.
A false positive can be suppressed inline by placing
“// cppcheck-suppress syntaxError” in a line before the false
positive., e.g.:
char arr[5];
// cppcheck-suppress arrayIndexOutOfBounds
arr[10] = 0;
Change-Id: I9e833a153d6b04df2f8a72cd994e43922c61c2fe
RTC: 201451
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/79629
Reviewed-by: Zachary Clark <zach@ibm.com>
Reviewed-by: Nicholas E Bofferding <bofferdn@us.ibm.com>
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Daniel M Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'makefile')
| -rw-r--r-- | makefile | 19 |
1 files changed, 19 insertions, 0 deletions
@@ -45,6 +45,16 @@ IMAGE_PASS_POST += cscope ctags endif IMAGE_PASS_POST += check_istep_modules +# Variables used when running cppcheck tool. +# The actual commands are stored in CXX_CHECK and C_CHECK, which are created as +# dummy variables here, but will be set to the actual tool in the "cppcheck" rule +BUILDCPPCHECK := $(PROJECT_ROOT)/src/build/tools/build-cppcheck +CPPCHECKTOOL := $(PROJECT_ROOT)/src/build/tools/cpptools/cppcheck/cppcheck +CPPCHECKFLAGS := --inline-suppr --error-exitcode=1 --template='Error CPPCHECK {file}: line {line}\nSyntax error string: {id}\n{message}' +CPPCHECK := $(CPPCHECKTOOL) $(CPPCHECKFLAGS) +export CXX_CHECK ?= true +export C_CHECK ?= true + include ./config.mk .PHONY: docs @@ -75,6 +85,15 @@ lcov: genhtml obj/lcov_data -o obj/gcov_report --ignore-errors source @echo Coverage report now available in obj/gcov_report +.PHONY: cppcheck +cppcheck: + @echo Building with CPPCHECK tool +# TODO RTC: 215692 + ${BUILDCPPCHECK} + export CXX_CHECK="$(CPPCHECK) $(filter -D%, $(CXXFLAGS)) $(INCFLAGS)" && \ + export C_CHECK="$(CPPCHECK) $(filter -D%, $(CFLAGS)) $(INCFLAGS)" && \ + ${MAKE} + .PHONY: gcda_clean gcda_clean: find -name '*.gcda' -exec rm -f {} \; |

