Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CI: clarify cppcheck premium selfcheck suppressions #6679

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/cppcheck-premium.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ jobs:
run: |
premium_version=${{ inputs.premium_version }}
if [ -z $premium_version ]; then
premium_version=devdrop-20240804
premium_version=devdrop-20240811
wget https://files.cppchecksolutions.com/devdrop/cppcheckpremium-$premium_version-amd64.tar.gz -O cppcheckpremium.tar.gz
else
wget https://files.cppchecksolutions.com/$premium_version/ubuntu-22.04/cppcheckpremium-$premium_version-amd64.tar.gz -O cppcheckpremium.tar.gz
Expand Down
192 changes: 142 additions & 50 deletions cppcheckpremium-suppressions
Original file line number Diff line number Diff line change
Expand Up @@ -53,73 +53,50 @@ premium-cert-exp55-cpp
###########################################################################################################################

# There are false positives
premium-misra-cpp-2023-6.5.1:lib/symboldatabase.cpp
premium-misra-cpp-2023-6.7.2
premium-misra-cpp-2023-6.8.3
premium-misra-cpp-2023-7.0.3
premium-misra-cpp-2023-8.2.5
premium-misra-cpp-2023-8.18.2
premium-misra-cpp-2023-21.6.2

# TODO check if these should be suppressed or not
premium-misra-cpp-2023-0.2.1
premium-misra-cpp-2023-0.2.2
premium-misra-cpp-2023-10.0.1
premium-misra-cpp-2023-10.2.1
premium-misra-cpp-2023-10.2.2
premium-misra-cpp-2023-11.6.3
premium-misra-cpp-2023-13.1.2
premium-misra-cpp-2023-13.3.1
premium-misra-cpp-2023-13.3.2
premium-misra-cpp-2023-13.3.3
premium-misra-cpp-2023-15.1.2
premium-misra-cpp-2023-15.1.3
premium-misra-cpp-2023-18.1.1
premium-misra-cpp-2023-18.3.2
premium-misra-cpp-2023-18.4.1
premium-misra-cpp-2023-19.0.3
premium-misra-cpp-2023-19.1.3
premium-misra-cpp-2023-19.3.1
premium-misra-cpp-2023-19.6.1
premium-misra-cpp-2023-21.2.1
premium-misra-cpp-2023-21.2.2
premium-misra-cpp-2023-21.2.3
premium-misra-cpp-2023-23.11.1
premium-misra-cpp-2023-26.3.1
premium-misra-cpp-2023-28.6.1
premium-misra-cpp-2023-30.0.1
premium-misra-cpp-2023-5.13.2
premium-misra-cpp-2023-5.13.4
premium-misra-cpp-2023-6.0.3
premium-misra-cpp-2023-6.2.4
premium-misra-cpp-2023-6.4.2
premium-misra-cpp-2023-6.5.1
premium-misra-cpp-2023-6.8.3
premium-misra-cpp-2023-6.9.2
premium-misra-cpp-2023-7.0.1
premium-misra-cpp-2023-7.0.4
premium-misra-cpp-2023-7.0.6
premium-misra-cpp-2023-7.11.2
premium-misra-cpp-2023-7.11.3
premium-misra-cpp-2023-8.0.1
premium-misra-cpp-2023-8.1.1
premium-misra-cpp-2023-8.19.1
premium-misra-cpp-2023-8.2.11
premium-misra-cpp-2023-8.2.6
premium-misra-cpp-2023-8.2.7
premium-misra-cpp-2023-8.2.8
premium-misra-cpp-2023-9.5.1
premium-misra-cpp-2023-9.5.2
premium-misra-cpp-2023-9.6.4
premium-misra-cpp-2023-21.6.2
# False positives: #13004
premium-misra-cpp-2023-8.2.7:lib/valueflow.cpp
premium-misra-cpp-2023-8.2.7:lib/checkclass.cpp


# ignored function return value (emplace etc)
premium-misra-cpp-2023-0.1.2

# TODO there is unused map
premium-misra-cpp-2023-0.2.1:lib/symboldatabase.cpp

# TODO use named function arguments
premium-misra-cpp-2023-0.2.2

# we comment out code by intention in some cases
premium-misra-cpp-2023-5.7.2

# TODO should we use this rule?
premium-misra-cpp-2023-5.10.1

# we use octal by intention in lib/color.cpp
premium-misra-cpp-2023-5.13.2:lib/color.cpp

# we intentionally write numeric constants without suffixes
premium-misra-cpp-2023-5.13.4

# we declare variables, functions, etc in global namespace by intention
premium-misra-cpp-2023-6.0.3

# TODO use inline for template functions?
premium-misra-cpp-2023-6.2.4

# TODO ensure we don't conceal methods in derived classes
premium-misra-cpp-2023-6.4.2

# Internal linkage using "static" keyword
premium-misra-cpp-2023-6.5.2

Expand All @@ -129,12 +106,48 @@ premium-misra-cpp-2023-6.7.1
# FIXME enforce proper ref qualifications
premium-misra-cpp-2023-6.8.4

# We intentionally use the standard integer types
premium-misra-cpp-2023-6.9.2

# we have conversion from bool to int by intention
premium-misra-cpp-2023-7.0.1

# we convert integer to bool by intention
premium-misra-cpp-2023-7.0.2

# signed integer expression in bitwise rhs by intention
premium-misra-cpp-2023-7.0.4

# sign conversions in assignments by intention
premium-misra-cpp-2023-7.0.6

# we intentionally have array-to-pointer decay in some function calls
premium-misra-cpp-2023-7.11.2

# warns when we use callbacks
premium-misra-cpp-2023-7.11.3

# too picky about operator precedence.
premium-misra-cpp-2023-8.0.1

# TODO use std::uintptr_t
premium-misra-cpp-2023-8.1.1

# TODO should we use this rule?
premium-misra-cpp-2023-8.1.2

# TODO use strchr instead of memchr?
premium-misra-cpp-2023-8.2.6

# intentional pointer to int conversion in lib/utils.h to output dump files
premium-misra-cpp-2023-8.2.7:lib/utils.h

# TODO: use std::uintptr_t
premium-misra-cpp-2023-8.2.8

# TODO check ellipsis usage
premium-misra-cpp-2023-8.2.11

# we call functions etc by intention in && || RHS
premium-misra-cpp-2023-8.14.1

Expand All @@ -147,35 +160,114 @@ premium-misra-cpp-2023-8.2.3
# we use recursion by intention
premium-misra-cpp-2023-8.2.10

# we separate variable declarations by intention with comma
premium-misra-cpp-2023-8.19.1

# we leave out {} sometimes
premium-misra-cpp-2023-9.3.1

# we leave out "else" by intention
premium-misra-cpp-2023-9.4.1

# looping through linked lists by intention
premium-misra-cpp-2023-9.5.1

# I believe it warns in some cases where we don't have UB
premium-misra-cpp-2023-9.5.2

# cppcheck does not understand that __builtin_unreachable() is noreturn
premium-misra-cpp-2023-9.6.4:lib/utils.h

# we declare multiple variables by intention
premium-misra-cpp-2023-10.0.1

# we do not define enum type explicitly by intention
premium-misra-cpp-2023-10.2.1

# TODO we have unscoped enums
premium-misra-cpp-2023-10.2.2

# we use arrays by intention
premium-misra-cpp-2023-11.3.1

# we dont initialize variables directly by intention
premium-misra-cpp-2023-11.6.1

# we have enums where only last constant is initialized by intention
premium-misra-cpp-2023-11.6.3

# we use unions by intention
premium-misra-cpp-2023-12.3.1

# TODO ensure overrides match
premium-misra-cpp-2023-13.3.2

# TODO use the same parameter names in overriden methods.
premium-misra-cpp-2023-13.3.3

# we sometimes use both public/private data members by intention
premium-misra-cpp-2023-14.1.1

# TODO should we use this rule?
premium-misra-cpp-2023-15.0.1

# seems too picky (explicitly calling InferModel and Analyzer base class constructors even though they are defaulted).
premium-misra-cpp-2023-15.1.2

# TODO use explicit for conversion operator
premium-misra-cpp-2023-15.1.3

# TODO: should we use this rule?
premium-misra-cpp-2023-16.6.1

# TODO: should we use this rule?
premium-misra-cpp-2023-17.8.1

# TODO: should we throw token pointers?
premium-misra-cpp-2023-18.1.1

# TODO do not throw token pointer?
premium-misra-cpp-2023-18.3.2:lib/tokenize.cpp

# TODO use noexcept
premium-misra-cpp-2023-18.4.1

# in smallvector we intentionally put a constant above some preprocessor includes
premium-misra-cpp-2023-19.0.3:lib/smallvector.h

# code is intentional, should cppcheck premium understand __has_cpp_attribute and compiler defines better?
premium-misra-cpp-2023-19.1.3:lib/config.h

# we use #/## by intention in some cases
premium-misra-cpp-2023-19.3.1

# We use #pragma by intention
premium-misra-cpp-2023-19.6.1

# We use atoi by intention
premium-misra-cpp-2023-21.2.1

# We use <cstring> functions by intention
premium-misra-cpp-2023-21.2.2

# We have limited use of std::getenv by intention
premium-misra-cpp-2023-21.2.3

# Dynamic memory usage in std::string etc
premium-misra-cpp-2023-21.6.1

# TODO use std::make_unique when we require C++14
premium-misra-cpp-2023-23.11.1

# we use <cctype> by intention
premium-misra-cpp-2023-24.5.1

# we use std::vector<bool> by intention in lib/infer.cpp but in general it should be avoided
premium-misra-cpp-2023-26.3.1:lib/infer.cpp

# TODO review that std::move is used properly
premium-misra-cpp-2023-28.6.1

# we use cstdio by intention
premium-misra-cpp-2023-30.0.1

Loading