Skip to content

Commit 9b86cb7

Browse files
author
Your Name
committed
Merge
2 parents 1b80983 + d8eaa52 commit 9b86cb7

1,098 files changed

Lines changed: 193467 additions & 171727 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.clang-tidy

Lines changed: 90 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,94 @@
11
---
2-
Checks: '*,-abseil-*,-altera-*,-android-*,-boost-*,-cert-*,-cppcoreguidelines-*,-darwin-*,-fuchsia-*,-google-*,-hicpp-*,-linuxkernel-*,-llvm-*,-llvmlibc-*,-mpi-*,-objc-*,-openmp-*,-zircon-*,-readability-braces-around-statements,-readability-magic-numbers,-bugprone-macro-parentheses,-readability-isolate-declaration,-readability-function-size,-modernize-use-trailing-return-type,-readability-implicit-bool-conversion,-readability-uppercase-literal-suffix,-modernize-use-auto,-readability-else-after-return,-modernize-use-default-member-init,-readability-named-parameter,-readability-redundant-member-init,-performance-faster-string-find,-modernize-avoid-c-arrays,-modernize-use-equals-default,-readability-container-size-empty,-readability-simplify-boolean-expr,-modernize-pass-by-value,-bugprone-branch-clone,-bugprone-narrowing-conversions,-modernize-raw-string-literal,-readability-convert-member-functions-to-static,-modernize-loop-convert,-readability-const-return-type,-performance-unnecessary-value-param,-modernize-return-braced-init-list,-performance-inefficient-string-concatenation,-misc-throw-by-value-catch-by-reference,-readability-avoid-const-params-in-decls,-readability-non-const-parameter,-misc-non-private-member-variables-in-classes,-bugprone-suspicious-string-compare,-clang-analyzer-*,-bugprone-signed-char-misuse,-readability-make-member-function-const,-misc-no-recursion,-readability-use-anyofallof,-performance-no-automatic-move,-bugprone-suspicious-include,-modernize-replace-random-shuffle,-readability-function-cognitive-complexity,-readability-redundant-access-specifiers,-performance-noexcept-move-constructor,-concurrency-mt-unsafe,-bugprone-easily-swappable-parameters,-readability-suspicious-call-argument,-readability-identifier-length,-readability-container-data-pointer'
2+
Checks: >
3+
*,
4+
-abseil-*,
5+
-altera-*,
6+
-android-*,
7+
-boost-*,
8+
-cert-*,
9+
-cppcoreguidelines-*,
10+
-darwin-*,
11+
-fuchsia-*,
12+
-google-*,
13+
-hicpp-*,
14+
-linuxkernel-*,
15+
-llvm-*,
16+
-llvmlibc-*,
17+
-mpi-*,
18+
-objc-*,
19+
-openmp-*,
20+
-zircon-*,
21+
cppcoreguidelines-pro-type-static-cast-downcast,
22+
cppcoreguidelines-rvalue-reference-param-not-moved,
23+
google-explicit-constructor,
24+
-bugprone-assignment-in-if-condition,
25+
-bugprone-branch-clone,
26+
-bugprone-command-processor,
27+
-bugprone-easily-swappable-parameters,
28+
-bugprone-empty-catch,
29+
-bugprone-macro-parentheses,
30+
-bugprone-narrowing-conversions,
31+
-bugprone-signed-char-misuse,
32+
-bugprone-switch-missing-default-case,
33+
-bugprone-throwing-static-initialization,
34+
-bugprone-unchecked-optional-access,
35+
-clang-analyzer-*,
36+
-concurrency-mt-unsafe,
37+
-misc-const-correctness,
38+
-misc-no-recursion,
39+
-misc-non-private-member-variables-in-classes,
40+
-misc-throw-by-value-catch-by-reference,
41+
-misc-use-anonymous-namespace,
42+
-modernize-avoid-c-arrays,
43+
-modernize-deprecated-ios-base-aliases,
44+
-misc-include-cleaner,
45+
-misc-multiple-inheritance,
46+
-misc-unused-using-decls,
47+
-modernize-avoid-c-style-cast,
48+
-modernize-loop-convert,
49+
-modernize-macro-to-enum,
50+
-modernize-raw-string-literal,
51+
-modernize-replace-auto-ptr,
52+
-modernize-return-braced-init-list,
53+
-modernize-type-traits,
54+
-modernize-use-designated-initializers,
55+
-modernize-use-nodiscard,
56+
-modernize-use-scoped-lock,
57+
-modernize-use-trailing-return-type,
58+
-performance-avoid-endl,
59+
-performance-inefficient-string-concatenation,
60+
-performance-no-automatic-move,
61+
-portability-avoid-pragma-once,
62+
-portability-simd-intrinsics,
63+
-portability-std-allocator-const,
64+
-readability-avoid-nested-conditional-operator,
65+
-readability-braces-around-statements,
66+
-readability-container-data-pointer,
67+
-readability-enum-initial-value,
68+
-readability-function-cognitive-complexity,
69+
-readability-function-size,
70+
-readability-identifier-length,
71+
-readability-identifier-naming,
72+
-readability-implicit-bool-conversion,
73+
-readability-inconsistent-ifelse-braces,
74+
-readability-isolate-declaration,
75+
-readability-magic-numbers,
76+
-readability-redundant-parentheses,
77+
-readability-suspicious-call-argument,
78+
-readability-uppercase-literal-suffix,
79+
-readability-use-concise-preprocessor-directives,
80+
-misc-unconventional-assign-operator
381
WarningsAsErrors: '*'
82+
HeaderFilterRegex: '(cli|gui|frontend|lib|oss-fuzz|test|triage)\/[a-z_]+\.h'
83+
ExcludeHeaderFilterRegex: 'ui_.*.h'
484
CheckOptions:
585
- key: misc-non-private-member-variables-in-classes.IgnoreClassesWithAllMemberVariablesBeingPublic
6-
value: '1'
86+
value: '1'
87+
- key: readability-simplify-boolean-expr.SimplifyDeMorgan
88+
value: '0'
89+
- key: modernize-use-trailing-return-type.TransformFunctions
90+
value: false
91+
- key: misc-override-with-different-visibility.DisallowedVisibilityChange
92+
value: widening
93+
- key: misc-use-internal-linkage.AnalyzeTypes
94+
value: false

.codacy.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,5 @@ exclude_paths:
44
- htmlreport/example.cc
55
- samples/**/bad.c
66
- samples/**/bad.cpp
7-
- test/test.cxx
87
- test/cfg/*.c
98
- test/cfg/*.cpp
10-
- test/synthetic/*.c

.gitattributes

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
## standard default enconding
2+
* text=auto
3+
4+
## UNIX specific files
5+
*.sh text eol=lf
6+
7+
## Windows specific files
8+
*.bat text eol=crlf
9+
*.cmd text eol=crlf
10+
*.ps1 text eol=crlf
11+
*.vcxproj text eol=crlf
12+
*.vcxproj.filters text eol=crlf
13+
*.sln text eol=crlf
14+
*.wixproj text eol=crlf
15+
*.wxi text eol=crlf
16+
*.wxs text eol=crlf
17+
18+
## Binary resources
19+
*.pdf binary

.github/workflows/CI-cygwin.yml

Lines changed: 37 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,62 @@
1-
# Some convenient links:
2-
# - https://github.com/actions/virtual-environments/blob/master/images/win/Windows2019-Readme.md
3-
#
4-
1+
# Syntax reference https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions
2+
# Environment reference https://help.github.com/en/actions/reference/virtual-environments-for-github-hosted-runners
53
name: CI-cygwin
64

7-
on: [push,pull_request]
5+
on:
6+
push:
7+
branches:
8+
- 'main'
9+
- 'releases/**'
10+
- '2.*'
11+
tags:
12+
- '2.*'
13+
pull_request:
14+
15+
permissions:
16+
contents: read
817

918
defaults:
1019
run:
1120
shell: cmd
1221

1322
jobs:
23+
# TODO: add CMake build
1424
build_cygwin:
1525
strategy:
1626
matrix:
17-
os: [windows-2019]
18-
arch: [x64, x86]
27+
# only use the latest windows-* as the installed toolchain is identical
28+
os: [windows-2025]
29+
platform: [x86_64]
30+
include:
31+
- platform: 'x86_64'
32+
packages: |
33+
gcc-g++
34+
python3
1935
fail-fast: false
2036

2137
runs-on: ${{ matrix.os }}
2238

2339
steps:
24-
- uses: actions/checkout@v2
40+
- uses: actions/checkout@v4
41+
with:
42+
persist-credentials: false
2543

2644
- name: Set up Cygwin
27-
uses: egor-tensin/setup-cygwin@v3
45+
uses: cygwin/cygwin-install-action@v6
2846
with:
29-
platform: ${{ matrix.arch }}
30-
31-
- name: Build cppcheck
32-
run: |
33-
C:\tools\cygwin\bin\bash.exe -l -c cd %GITHUB_WORKSPACE% && make -j2
34-
35-
- name: Build test
36-
run: |
37-
C:\tools\cygwin\bin\bash.exe -l -c cd %GITHUB_WORKSPACE% && make -j2 testrunner
47+
site: https://mirrors.cicku.me/cygwin/
48+
platform: ${{ matrix.platform }}
49+
packages: ${{ matrix.packages }}
3850

39-
- name: Run test
51+
# Cygwin will always link the binaries even if they already exist. The linking is also extremely slow. So just run the "check" target which includes all the binaries.
52+
- name: Build all and run test
4053
run: |
41-
C:\tools\cygwin\bin\bash.exe -l -c cd %GITHUB_WORKSPACE% && make -j2 check
54+
C:\cygwin\bin\bash.exe -l -c cd %GITHUB_WORKSPACE% && make VERBOSE=1 -j%NUMBER_OF_PROCESSORS% CXXOPTS="-Werror" test
4255
4356
- name: Extra test for misra
4457
run: |
45-
C:\tools\cygwin\bin\bash.exe -l -c cd %GITHUB_WORKSPACE%\addons\test
46-
..\..\cppcheck --dump -DDUMMY --suppress=uninitvar --inline-suppr misra\misra-test.c --std=c89 --platform=unix64 && python3 ..\misra.py -verify misra\misra-test.c.dump
47-
C:\tools\cygwin\bin\bash.exe -l -c cd %GITHUB_WORKSPACE%
48-
.\cppcheck --addon=misra --inline-suppr --enable=information --error-exitcode=1 addons\test\misra\misra-ctu-*-test.c
58+
cd %GITHUB_WORKSPACE%\addons\test
59+
..\..\cppcheck.exe --dump -DDUMMY --suppress=uninitvar --inline-suppr misra\misra-test.c --std=c89 --platform=unix64
60+
python3 ..\misra.py -verify misra\misra-test.c.dump
61+
..\..\cppcheck.exe --addon=misra --enable=style --inline-suppr --enable=information --error-exitcode=1 misra\misra-ctu-1-test.c misra\misra-ctu-2-test.c
4962

.github/workflows/CI-mingw.yml

Lines changed: 49 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,75 @@
1-
# Some convenient links:
2-
# - https://github.com/actions/virtual-environments/blob/master/images/win/Windows2019-Readme.md
3-
#
4-
1+
# Syntax reference https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions
2+
# Environment reference https://help.github.com/en/actions/reference/virtual-environments-for-github-hosted-runners
53
name: CI-mingw
64

7-
on: [push,pull_request]
5+
on:
6+
push:
7+
branches:
8+
- 'main'
9+
- 'releases/**'
10+
- '2.*'
11+
tags:
12+
- '2.*'
13+
pull_request:
14+
15+
permissions:
16+
contents: read
817

918
defaults:
1019
run:
11-
shell: cmd
20+
shell: msys2 {0}
1221

1322
jobs:
23+
# TODO: add CMake build
1424
build_mingw:
1525
strategy:
1626
matrix:
17-
os: [windows-2019]
18-
arch: [x64] # TODO: fix x86 build?
27+
# only use the latest windows-* as the installed toolchain is identical
28+
os: [windows-2025]
1929
fail-fast: false
2030

2131
runs-on: ${{ matrix.os }}
2232

33+
timeout-minutes: 19 # max + 3*std of the last 7K runs
34+
2335
steps:
24-
- uses: actions/checkout@v2
36+
- uses: actions/checkout@v4
37+
with:
38+
persist-credentials: false
39+
40+
- name: Set up MSYS2
41+
uses: msys2/setup-msys2@v2
42+
with:
43+
release: false # use pre-installed
44+
# TODO: install mingw-w64-x86_64-make and use mingw32.make instead - currently fails with "Windows Subsystem for Linux has no installed distributions."
45+
install: >-
46+
mingw-w64-x86_64-lld
47+
mingw-w64-x86_64-ccache
48+
make
49+
mingw-w64-x86_64-gcc
2550
26-
- name: Set up MinGW
27-
uses: egor-tensin/setup-mingw@v2
51+
- name: ccache
52+
uses: hendrikmuhs/ccache-action@v1.2
2853
with:
29-
platform: ${{ matrix.arch }}
54+
key: ${{ github.workflow }}-${{ github.job }}-${{ matrix.os }}
3055

3156
- name: Build cppcheck
3257
run: |
33-
mingw32-make -j2
58+
export PATH="/mingw64/lib/ccache/bin:$PATH"
59+
# set RDYNAMIC to work around broken MinGW detection
60+
# use lld for faster linking
61+
make VERBOSE=1 RDYNAMIC=-lshlwapi LDOPTS=-fuse-ld=lld -j$(nproc) CXXOPTS="-Werror" cppcheck
3462
3563
- name: Build test
3664
run: |
37-
mingw32-make -j2 testrunner
65+
export PATH="/mingw64/lib/ccache/bin:$PATH"
66+
# set RDYNAMIC to work around broken MinGW detection
67+
# use lld for faster linking
68+
make VERBOSE=1 RDYNAMIC=-lshlwapi LDOPTS=-fuse-ld=lld -j$(nproc) CXXOPTS="-Werror" testrunner
3869
3970
- name: Run test
4071
run: |
41-
mingw32-make -j2 check
72+
export PATH="/mingw64/lib/ccache/bin:$PATH"
73+
# set RDYNAMIC to work around broken MinGW detection
74+
# use lld for faster linking
75+
make VERBOSE=1 RDYNAMIC=-lshlwapi LDOPTS=-fuse-ld=lld -j$(nproc) CXXOPTS="-Werror" test

0 commit comments

Comments
 (0)