88 lines
3.1 KiB
Plaintext
88 lines
3.1 KiB
Plaintext
|
#!/bin/bash
|
||
|
|
||
|
CHECKS="*"
|
||
|
|
||
|
# __attribute__((nonnull)) causes this warning on defensive null checks.
|
||
|
CHECKS="$CHECKS,-clang-diagnostic-pointer-bool-conversion"
|
||
|
CHECKS="$CHECKS,-clang-diagnostic-tautological-pointer-compare"
|
||
|
|
||
|
# TODO(iphydf): We might want some of these. For the ones we don't want, add a
|
||
|
# comment explaining why not.
|
||
|
CHECKS="$CHECKS,-altera-unroll-loops"
|
||
|
CHECKS="$CHECKS,-android-cloexec-accept"
|
||
|
CHECKS="$CHECKS,-android-cloexec-fopen"
|
||
|
CHECKS="$CHECKS,-bugprone-not-null-terminated-result"
|
||
|
CHECKS="$CHECKS,-bugprone-reserved-identifier"
|
||
|
CHECKS="$CHECKS,-bugprone-sizeof-expression"
|
||
|
CHECKS="$CHECKS,-cert-dcl37-c"
|
||
|
CHECKS="$CHECKS,-cert-dcl51-cpp"
|
||
|
CHECKS="$CHECKS,-clang-analyzer-optin.performance.Padding"
|
||
|
CHECKS="$CHECKS,-cppcoreguidelines-avoid-magic-numbers"
|
||
|
CHECKS="$CHECKS,-cppcoreguidelines-init-variables"
|
||
|
CHECKS="$CHECKS,-hicpp-multiway-paths-covered"
|
||
|
CHECKS="$CHECKS,-hicpp-signed-bitwise"
|
||
|
CHECKS="$CHECKS,-llvm-else-after-return"
|
||
|
CHECKS="$CHECKS,-llvmlibc-restrict-system-libc-headers"
|
||
|
CHECKS="$CHECKS,-misc-redundant-expression"
|
||
|
CHECKS="$CHECKS,-misc-unused-parameters"
|
||
|
CHECKS="$CHECKS,-readability-else-after-return"
|
||
|
CHECKS="$CHECKS,-readability-function-cognitive-complexity"
|
||
|
CHECKS="$CHECKS,-readability-inconsistent-declaration-parameter-name"
|
||
|
CHECKS="$CHECKS,-readability-magic-numbers"
|
||
|
CHECKS="$CHECKS,-readability-redundant-control-flow"
|
||
|
|
||
|
# TODO(iphydf): Maybe fix these?
|
||
|
CHECKS="$CHECKS,-altera-id-dependent-backward-branch"
|
||
|
CHECKS="$CHECKS,-altera-struct-pack-align"
|
||
|
CHECKS="$CHECKS,-bugprone-branch-clone"
|
||
|
CHECKS="$CHECKS,-bugprone-easily-swappable-parameters"
|
||
|
CHECKS="$CHECKS,-bugprone-implicit-widening-of-multiplication-result"
|
||
|
CHECKS="$CHECKS,-bugprone-integer-division"
|
||
|
CHECKS="$CHECKS,-bugprone-narrowing-conversions"
|
||
|
CHECKS="$CHECKS,-clang-analyzer-core.NonNullParamChecker"
|
||
|
CHECKS="$CHECKS,-clang-analyzer-core.NullDereference"
|
||
|
CHECKS="$CHECKS,-clang-analyzer-optin.portability.UnixAPI"
|
||
|
CHECKS="$CHECKS,-clang-analyzer-unix.Malloc"
|
||
|
CHECKS="$CHECKS,-clang-analyzer-valist.Uninitialized"
|
||
|
CHECKS="$CHECKS,-concurrency-mt-unsafe"
|
||
|
CHECKS="$CHECKS,-cppcoreguidelines-avoid-non-const-global-variables"
|
||
|
CHECKS="$CHECKS,-cppcoreguidelines-narrowing-conversions"
|
||
|
CHECKS="$CHECKS,-google-readability-casting"
|
||
|
CHECKS="$CHECKS,-misc-no-recursion"
|
||
|
|
||
|
ERRORS="*"
|
||
|
|
||
|
# TODO(iphydf): Fix these.
|
||
|
ERRORS="$ERRORS,-bugprone-macro-parentheses"
|
||
|
ERRORS="$ERRORS,-bugprone-posix-return"
|
||
|
ERRORS="$ERRORS,-bugprone-signed-char-misuse"
|
||
|
ERRORS="$ERRORS,-cert-err34-c"
|
||
|
ERRORS="$ERRORS,-cert-str34-c"
|
||
|
ERRORS="$ERRORS,-hicpp-uppercase-literal-suffix"
|
||
|
ERRORS="$ERRORS,-readability-suspicious-call-argument"
|
||
|
ERRORS="$ERRORS,-readability-uppercase-literal-suffix"
|
||
|
|
||
|
set -eux
|
||
|
|
||
|
run() {
|
||
|
echo "Running clang-tidy in variant '$*'"
|
||
|
EXTRA_ARGS=("$@")
|
||
|
for i in "${!EXTRA_ARGS[@]}"; do
|
||
|
EXTRA_ARGS[$i]="--extra-arg=${EXTRA_ARGS[$i]}"
|
||
|
done
|
||
|
clang-tidy-12 \
|
||
|
-p=_build \
|
||
|
--extra-arg=-DMIN_LOGGER_LEVEL=LOGGER_LEVEL_TRACE \
|
||
|
"${EXTRA_ARGS[@]}" \
|
||
|
--checks="$CHECKS" \
|
||
|
--warnings-as-errors="$ERRORS" \
|
||
|
--use-color \
|
||
|
other/bootstrap_daemon/src/*.c \
|
||
|
other/*.c \
|
||
|
toxav/*.c \
|
||
|
toxcore/*.c \
|
||
|
toxencryptsave/*.c
|
||
|
}
|
||
|
|
||
|
. other/analysis/variants.sh
|