mirror of
https://github.com/michaelrsweet/pdfio.git
synced 2024-11-08 06:28:27 +01:00
Add clang and cppcheck.
This commit is contained in:
parent
9f0346df6d
commit
38557db43e
29
.cppcheck
Normal file
29
.cppcheck
Normal file
@ -0,0 +1,29 @@
|
||||
// Cppcheck bug: does not validate loop constraints properly...
|
||||
arrayIndexOutOfBounds:printer-driver.c
|
||||
|
||||
// Bad CERT recommendation: C memory layout not determined by variable locations
|
||||
cert-API01-C
|
||||
|
||||
// Don't report non-const casts. Inline suppression comments are not working,
|
||||
// otherwise we'd be more selective...
|
||||
cert-EXP05-C:device.c
|
||||
cert-EXP05-C:device-network.c
|
||||
cert-EXP05-C:device-usb.c
|
||||
cert-EXP05-C:link.c
|
||||
cert-EXP05-C:mainloop-subcommands.c
|
||||
cert-EXP05-C:resource.c
|
||||
cert-EXP05-C:system-webif.c
|
||||
cert-EXP05-C:util.c
|
||||
|
||||
// Not handling "(unsigned)~CONSTANT" properly...
|
||||
cert-INT31-c
|
||||
|
||||
// fopen_s is NOT supported on POSIX platforms and DOES NOT APPLY for reading
|
||||
// of files!
|
||||
cert-MSC24-C:job-filter.c
|
||||
|
||||
// char something[###] = "constant" should not result in an error!
|
||||
cert-STR05-C:system-webif.c
|
||||
|
||||
// Not sure why this is a thing...
|
||||
preprocessorErrorDirective
|
12
.github/workflows/build.yml
vendored
12
.github/workflows/build.yml
vendored
@ -18,11 +18,15 @@ jobs:
|
||||
- name: install prerequisites
|
||||
run: sudo apt-get install -y zlib1g-dev
|
||||
- name: make
|
||||
run: make 'COMMONFLAGS=-g -fsanitize=address'
|
||||
run: make "COMMONFLAGS=-g -fsanitize=address"
|
||||
- name: test
|
||||
env:
|
||||
ASAN_OPTIONS: leak_check_at_exit=false
|
||||
run: make test
|
||||
- name: clang static analyzer
|
||||
run: cd pappl && make CC=clang "GHA_ERROR=::error::" clang
|
||||
- name: cppcheck
|
||||
run: cd pappl && make "GHA_ERROR=::error::" cppcheck
|
||||
|
||||
build-macos:
|
||||
|
||||
@ -31,6 +35,10 @@ jobs:
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: make
|
||||
run: make 'COMMONFLAGS=-g -fsanitize=address'
|
||||
run: make "COMMONFLAGS=-g -fsanitize=address"
|
||||
- name: test
|
||||
run: make test
|
||||
- name: clang static analyzer
|
||||
run: cd pappl && make CC=clang "GHA_ERROR=::error::" clang
|
||||
- name: cppcheck
|
||||
run: cd pappl && make "GHA_ERROR=::error::" cppcheck
|
||||
|
5
.gitignore
vendored
5
.gitignore
vendored
@ -1,7 +1,8 @@
|
||||
*.1.dylib
|
||||
*.a
|
||||
*.log
|
||||
*.o
|
||||
*.so
|
||||
*.so.1
|
||||
/testpdfio
|
||||
/testpdfio-*.pdf
|
||||
/testpdfio-out.pdf
|
||||
|
||||
|
13
Makefile
13
Makefile
@ -147,3 +147,16 @@ doc:
|
||||
codedoc $(DOCFLAGS) --title "PDFio Programming Manual v$(VERSION)" pdfio.h $(LIBOBJS:.o=.c) --body doc/pdfio.md --coverimage doc/pdfio-512.png pdfio.xml >doc/pdfio.html
|
||||
codedoc $(DOCFLAGS) --title "pdf read/write library" --man pdfio --section 3 --body doc/pdfio.md pdfio.xml >doc/pdfio.3
|
||||
rm -f pdfio.xml
|
||||
|
||||
|
||||
# Analyze code with the Clang static analyzer <https://clang-analyzer.llvm.org>
|
||||
clang:
|
||||
clang $(CPPFLAGS) --analyze $(OBJS:.o=.c) 2>clang.log
|
||||
rm -rf $(OBJS:.o=.plist)
|
||||
test -s clang.log && (echo "$(GHA_ERROR)Clang detected issues."; echo ""; cat clang.log; exit 1) || exit 0
|
||||
|
||||
|
||||
# Analyze code using Cppcheck <http://cppcheck.sourceforge.net>
|
||||
cppcheck:
|
||||
cppcheck $(CPPFLAGS) --template=gcc --addon=cert.py --suppressions-list=.cppcheck $(OBJS:.o=.c) 2>cppcheck.log
|
||||
test -s cppcheck.log && (echo "$(GHA_ERROR)Cppcheck detected issues."; echo ""; cat cppcheck.log; exit 1) || exit 0
|
||||
|
Loading…
Reference in New Issue
Block a user