diff --git a/.github/workflows/test-cppcheck.yml b/.github/workflows/test-cppcheck.yml new file mode 100644 index 000000000..a641c2e3a --- /dev/null +++ b/.github/workflows/test-cppcheck.yml @@ -0,0 +1,23 @@ +name: Cppcheck static analysis + +on: + push: + branches: [ 'master', 'main', 'release/**' ] + pull_request: + branches: [ '*' ] + +jobs: + cppcheck: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + with: + submodules: false + + - name: install cppcheck + run: sudo apt-get install --no-install-recommends -y -q cppcheck + + - name: Run cppcheck static analysis + run: | + make cppcheck diff --git a/Makefile b/Makefile index e773fd063..062819938 100644 --- a/Makefile +++ b/Makefile @@ -328,6 +328,9 @@ line-count-nrf52: line-count-x86: cloc --force-lang-def cloc_lang_def.txt src/boot_x86_fsp.c src/boot_x86_fsp_payload.c src/boot_x86_fsp_start.S src/image.c src/keystore.c src/libwolfboot.c src/loader.c src/string.c src/update_disk.c src/x86/ahci.c src/x86/ata.c src/x86/common.c src/x86/gpt.c src/x86/hob.c src/pci.c src/x86/tgl_fsp.c hal/x86_fsp_tgl.c hal/x86_uart.c +cppcheck: + cppcheck -f --suppress="ctunullpointer" --suppress="nullPointer" --suppress="objectIndex" --suppress="comparePointers" --std=c89 src/*.c hal/*.c hal/spi/*.c hal/uart/*.c + %.o:%.c @echo "\t[CC-$(ARCH)] $@" $(Q)$(CC) $(CFLAGS) -c $(OUTPUT_FLAG) $@ $^