forked from Green-Sky/tomato
Green Sky
a3126d581b
82460b212 feat: add ngc events 24b54722a fix: Ensure we have allocators available for the error paths. 48dbcfebc cleanup: Remove redundant `-DSODIUM_EXPORT` from definitions. 0cef46ee9 cleanup: Fix a few more clang-tidy warnings. 0c5b918e9 cleanup: Fix a few more clang-tidy warnings. 4d3c97f49 cleanup: Enforce stricter identifier naming using clang-tidy. a549807df refactor: Add `mem` module to allow tests to override allocators. 6133fb153 chore: Add devcontainer setup for codespaces. 620e07ecd chore: Set a timeout for tests started using Conan c0ec33b16 chore: Migrate Windows CI from Appveyor to Azure DevOps 8ed47f3ef fix incorrect documentation a1e245841 docs: Fix doxygen config and remove some redundant comments. b0f633185 chore: Fix the Android CI job 7469a529b fix: Add missing `#include <array>`. 2b1a6b0d2 add missing ngc constants getter declarations and definitions 2e02d5637 chore: Add missing module dependencies. REVERT: 67badf694 feat: add ngc events git-subtree-dir: external/toxcore/c-toxcore git-subtree-split: 82460b2124216af1ac9d63060de310a682a2fd15
121 lines
4.1 KiB
Bash
Executable File
121 lines
4.1 KiB
Bash
Executable File
#!/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"
|
|
|
|
# Conflicts with "Variable is assigned a value that is never used."
|
|
# [unreadVariable]
|
|
CHECKS="$CHECKS,-cppcoreguidelines-init-variables"
|
|
|
|
# Short variable names are used quite a lot, and we don't consider them a
|
|
# readability issue.
|
|
CHECKS="$CHECKS,-readability-identifier-length"
|
|
|
|
# Altera checks are for GPUs (OpenCL). Our code doesn't run on GPUs.
|
|
CHECKS="$CHECKS,-altera-id-dependent-backward-branch"
|
|
CHECKS="$CHECKS,-altera-struct-pack-align"
|
|
CHECKS="$CHECKS,-altera-unroll-loops"
|
|
|
|
# We target systems other than Android, so we don't want to use non-standard
|
|
# functions from the Android libc.
|
|
CHECKS="$CHECKS,-android-cloexec-accept"
|
|
CHECKS="$CHECKS,-android-cloexec-fopen"
|
|
|
|
# This catches all the feature test macros (_POSIX_SOURCE etc.).
|
|
CHECKS="$CHECKS,-bugprone-reserved-identifier"
|
|
CHECKS="$CHECKS,-cert-dcl37-c"
|
|
CHECKS="$CHECKS,-cert-dcl51-cpp"
|
|
|
|
# Too restrictive. This makes sense if the branch clone is very large, but not
|
|
# if it's a single line. It can make the code less readable.
|
|
CHECKS="$CHECKS,-bugprone-branch-clone"
|
|
|
|
# We intentionally send some not null-terminated strings in tests and use it for
|
|
# the toxencryptsave magic number.
|
|
CHECKS="$CHECKS,-bugprone-not-null-terminated-result"
|
|
|
|
# We don't want default labels in enum switches.
|
|
CHECKS="$CHECKS,-hicpp-multiway-paths-covered"
|
|
|
|
# This can make readability quite a bit worse when the 2 cases look very
|
|
# similar.
|
|
CHECKS="$CHECKS,-llvm-else-after-return"
|
|
CHECKS="$CHECKS,-readability-else-after-return"
|
|
|
|
# We need 'return;' in empty functions because cimple won't allow empty
|
|
# functions otherwise.
|
|
CHECKS="$CHECKS,-readability-redundant-control-flow"
|
|
|
|
# These are incredibly annoying, because things like
|
|
# uint16_t a = 0, b = 1, c = a > b ? a : b;
|
|
# ^
|
|
# Trip the checker, which is true, because of integer promotion, but also not
|
|
# very helpful as a diagnostic.
|
|
CHECKS="$CHECKS,-bugprone-narrowing-conversions"
|
|
CHECKS="$CHECKS,-cppcoreguidelines-narrowing-conversions"
|
|
|
|
# TODO(iphydf): We might want some of these. For the ones we don't want, add a
|
|
# comment explaining why not.
|
|
CHECKS="$CHECKS,-clang-analyzer-optin.performance.Padding"
|
|
CHECKS="$CHECKS,-hicpp-signed-bitwise"
|
|
CHECKS="$CHECKS,-misc-unused-parameters"
|
|
CHECKS="$CHECKS,-readability-function-cognitive-complexity"
|
|
|
|
# TODO(iphydf): Maybe fix these?
|
|
CHECKS="$CHECKS,-bugprone-easily-swappable-parameters"
|
|
CHECKS="$CHECKS,-bugprone-implicit-widening-of-multiplication-result"
|
|
CHECKS="$CHECKS,-bugprone-integer-division"
|
|
CHECKS="$CHECKS,-clang-analyzer-core.NullDereference"
|
|
CHECKS="$CHECKS,-clang-analyzer-valist.Uninitialized"
|
|
CHECKS="$CHECKS,-concurrency-mt-unsafe"
|
|
CHECKS="$CHECKS,-cppcoreguidelines-avoid-non-const-global-variables"
|
|
CHECKS="$CHECKS,-misc-no-recursion"
|
|
|
|
# TODO(iphydf): Probably fix these.
|
|
CHECKS="$CHECKS,-cert-err33-c"
|
|
CHECKS="$CHECKS,-cppcoreguidelines-avoid-magic-numbers"
|
|
CHECKS="$CHECKS,-google-readability-casting"
|
|
CHECKS="$CHECKS,-modernize-macro-to-enum"
|
|
CHECKS="$CHECKS,-readability-magic-numbers"
|
|
|
|
# TODO(iphydf): These two trip on list.c. Investigate why.
|
|
CHECKS="$CHECKS,-clang-analyzer-core.NonNullParamChecker"
|
|
CHECKS="$CHECKS,-clang-analyzer-unix.Malloc"
|
|
|
|
ERRORS="*"
|
|
|
|
# TODO(iphydf): Fix these.
|
|
ERRORS="$ERRORS,-bugprone-macro-parentheses"
|
|
ERRORS="$ERRORS,-cert-err34-c"
|
|
ERRORS="$ERRORS,-cert-str34-c"
|
|
ERRORS="$ERRORS,-readability-suspicious-call-argument"
|
|
|
|
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-14 \
|
|
-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
|
|
}
|
|
|
|
cmake . -B_build -GNinja -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
|
|
|
|
. other/analysis/variants.sh
|