Skip to content
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 .clang-tidy
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
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,-bugprone-branch-clone,-bugprone-narrowing-conversions,-modernize-raw-string-literal,-readability-convert-member-functions-to-static,-modernize-loop-convert,-readability-const-return-type,-modernize-return-braced-init-list,-performance-inefficient-string-concatenation,-misc-throw-by-value-catch-by-reference,-readability-avoid-const-params-in-decls,-misc-non-private-member-variables-in-classes,-clang-analyzer-*,-bugprone-signed-char-misuse,-misc-no-recursion,-readability-use-anyofallof,-performance-no-automatic-move,-bugprone-suspicious-include,-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,-bugprone-assignment-in-if-condition,-misc-const-correctness,-portability-std-allocator-const,-modernize-deprecated-ios-base-aliases,-bugprone-unchecked-optional-access,-modernize-replace-auto-ptr,-readability-identifier-naming,-portability-simd-intrinsics'
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-redundant-member-init,-performance-faster-string-find,-modernize-avoid-c-arrays,-modernize-use-equals-default,-readability-container-size-empty,-readability-simplify-boolean-expr,-bugprone-branch-clone,-bugprone-narrowing-conversions,-modernize-raw-string-literal,-readability-convert-member-functions-to-static,-modernize-loop-convert,-readability-const-return-type,-modernize-return-braced-init-list,-performance-inefficient-string-concatenation,-misc-throw-by-value-catch-by-reference,-readability-avoid-const-params-in-decls,-misc-non-private-member-variables-in-classes,-clang-analyzer-*,-bugprone-signed-char-misuse,-misc-no-recursion,-readability-use-anyofallof,-performance-no-automatic-move,-bugprone-suspicious-include,-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,-bugprone-assignment-in-if-condition,-misc-const-correctness,-portability-std-allocator-const,-modernize-deprecated-ios-base-aliases,-bugprone-unchecked-optional-access,-modernize-replace-auto-ptr,-readability-identifier-naming,-portability-simd-intrinsics'
WarningsAsErrors: '*'
CheckOptions:
- key: misc-non-private-member-variables-in-classes.IgnoreClassesWithAllMemberVariablesBeingPublic
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/clang-tidy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,10 @@ jobs:
modules: 'qtcharts'
cached: ${{ steps.cache-qt.outputs.cache-hit }}

- name: Verify clang-tidy configuration
run: |
clang-tidy-15 --verify-config

- name: Prepare CMake
run: |
cmake -S . -B cmake.output -G "Unix Makefiles" -DHAVE_RULES=On -DBUILD_TESTS=On -DBUILD_GUI=On -DWITH_QCHART=On -DENABLE_CHECK_INTERNAL=On -DCMAKE_GLOBAL_AUTOGEN_TARGET=On -DCPPCHK_GLIBCXX_DEBUG=Off
Expand Down
1 change: 0 additions & 1 deletion clang-tidy.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,6 @@ These do not (always) increase readability.

`bugprone-macro-parentheses`<br>
`readability-implicit-bool-conversion`<br>
`readability-named-parameter`<br>

To be documented.

Expand Down
2 changes: 1 addition & 1 deletion gui/codeeditor.h
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ class CodeEditor : public QPlainTextEdit {
private slots:
void updateLineNumberAreaWidth(int newBlockCount);
void highlightErrorLine();
void updateLineNumberArea(const QRect &, int);
void updateLineNumberArea(const QRect & /*rect*/, int /*dy*/);

private:
QString generateStyleString();
Expand Down
6 changes: 3 additions & 3 deletions gui/librarydialog.h
Original file line number Diff line number Diff line change
Expand Up @@ -46,10 +46,10 @@ private slots:
void addFunction();
void changeFunction();
void editArg();
void editFunctionName(QListWidgetItem*);
void filterFunctions(const QString&);
void editFunctionName(QListWidgetItem* /*item*/);
void filterFunctions(const QString& /*filter*/);
void selectFunction();
void sortFunctions(bool);
void sortFunctions(bool /*sort*/);

private:
Ui::LibraryDialog *mUi;
Expand Down
2 changes: 1 addition & 1 deletion gui/libraryeditargdialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ CppcheckLibraryData::Function::Arg LibraryEditArgDialog::getArg() const
return ret;
}

void LibraryEditArgDialog::minsizeChanged(int)
void LibraryEditArgDialog::minsizeChanged()
{
mUi->minsize1arg->setEnabled(mUi->minsize1type->currentIndex() != 0);
mUi->minsize1arg2->setEnabled(mUi->minsize1type->currentText() == "mul");
Expand Down
2 changes: 1 addition & 1 deletion gui/libraryeditargdialog.h
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ class LibraryEditArgDialog : public QDialog {
CppcheckLibraryData::Function::Arg getArg() const;

private slots:
void minsizeChanged(int);
void minsizeChanged();

private:
Ui::LibraryEditArgDialog *mUi;
Expand Down
6 changes: 3 additions & 3 deletions gui/libraryeditargdialog.ui
Original file line number Diff line number Diff line change
Expand Up @@ -366,7 +366,7 @@
<sender>minsize1type</sender>
<signal>currentIndexChanged(int)</signal>
<receiver>LibraryEditArgDialog</receiver>
<slot>minsizeChanged(int)</slot>
<slot>minsizeChanged()</slot>
<hints>
<hint type="sourcelabel">
<x>413</x>
Expand All @@ -382,7 +382,7 @@
<sender>minsize2type</sender>
<signal>currentIndexChanged(int)</signal>
<receiver>LibraryEditArgDialog</receiver>
<slot>minsizeChanged(int)</slot>
<slot>minsizeChanged()</slot>
<hints>
<hint type="sourcelabel">
<x>436</x>
Expand All @@ -396,6 +396,6 @@
</connection>
</connections>
<slots>
<slot>minsizeChanged(int)</slot>
<slot>minsizeChanged()</slot>
</slots>
</ui>
2 changes: 1 addition & 1 deletion gui/newsuppressiondialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ NewSuppressionDialog::NewSuppressionDialog(QWidget *parent) :

class QErrorLogger : public ErrorLogger {
public:
void reportOut(const std::string & /*outmsg*/, Color) override {}
void reportOut(const std::string & /*outmsg*/, Color /*c*/) override {}
void reportErr(const ErrorMessage &msg) override {
errorIds << QString::fromStdString(msg.id);
}
Expand Down
2 changes: 1 addition & 1 deletion gui/projectfiledialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -878,7 +878,7 @@ void ProjectFileDialog::removeSuppression()
delete item;
}

void ProjectFileDialog::editSuppression(const QModelIndex &)
void ProjectFileDialog::editSuppression(const QModelIndex & /*index*/)
{
const int row = mUI->mListSuppressions->currentRow();
QListWidgetItem *item = mUI->mListSuppressions->item(row);
Expand Down
2 changes: 1 addition & 1 deletion gui/threadresult.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ ThreadResult::~ThreadResult()
//dtor
}

void ThreadResult::reportOut(const std::string &outmsg, Color)
void ThreadResult::reportOut(const std::string &outmsg, Color /*c*/)
{
emit log(QString::fromStdString(outmsg));
}
Expand Down
2 changes: 1 addition & 1 deletion lib/utils.h
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,7 @@ CPPCHECKLIB void strTolower(std::string& str);
* \return size of array
* */
template<typename T, int size>
std::size_t getArrayLength(const T (&)[size])
std::size_t getArrayLength(const T (& /*unused*/)[size])
{
return size;
}
Expand Down
34 changes: 17 additions & 17 deletions lib/valueflow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1987,7 +1987,7 @@ static void valueFlowReverse(TokenList* tokenlist,
ValueFlow::Value val,
const ValueFlow::Value& val2,
ErrorLogger* /*errorLogger*/,
const Settings* = nullptr,
const Settings* /*settings*/ = nullptr,
SourceLocation loc = SourceLocation::current())
{
std::list<ValueFlow::Value> values = {std::move(val)};
Expand Down Expand Up @@ -2052,7 +2052,7 @@ static void assignValueIfMutable(T& x, const U& y)
}

template<class T, class U>
static void assignValueIfMutable(const T&, const U&)
static void assignValueIfMutable(const T& /*unused*/, const U& /*unused*/)
{}

template<class Value, REQUIRES("Value must ValueFlow::Value", std::is_convertible<Value&, const ValueFlow::Value&> )>
Expand Down Expand Up @@ -2262,7 +2262,7 @@ struct ValueFlowAnalyzer : Analyzer {

virtual bool match(const Token* tok) const = 0;

virtual bool internalMatch(const Token*) const {
virtual bool internalMatch(const Token* /*tok*/) const {
return false;
}

Expand Down Expand Up @@ -2806,7 +2806,7 @@ struct ValueFlowAnalyzer : Analyzer {
makeConditional();
}

virtual void internalUpdate(Token*, const ValueFlow::Value&, Direction)
virtual void internalUpdate(Token* /*tok*/, const ValueFlow::Value& /*v*/, Direction /*d*/)
{
assert(false && "Internal update unimplemented.");
}
Expand Down Expand Up @@ -2837,7 +2837,7 @@ struct ValueFlowAnalyzer : Analyzer {
setTokenValue(tok, *value, getSettings());
}

ValuePtr<Analyzer> reanalyze(Token*, const std::string&) const override {
ValuePtr<Analyzer> reanalyze(Token* /*tok*/, const std::string& /*msg*/) const override {
return {};
}
};
Expand All @@ -2859,10 +2859,10 @@ struct SingleValueFlowAnalyzer : ValueFlowAnalyzer {
return aliases;
}

const ValueFlow::Value* getValue(const Token*) const override {
const ValueFlow::Value* getValue(const Token* /*tok*/) const override {
return &value;
}
ValueFlow::Value* getValue(const Token*) override {
ValueFlow::Value* getValue(const Token* /*tok*/) override {
return &value;
}

Expand Down Expand Up @@ -2945,7 +2945,7 @@ struct SingleValueFlowAnalyzer : ValueFlowAnalyzer {
return cs.isUnknownDependent();
}

bool updateScope(const Token* endBlock, bool) const override {
bool updateScope(const Token* endBlock, bool /*modified*/) const override {
const Scope* scope = endBlock->scope();
if (!scope)
return false;
Expand Down Expand Up @@ -3124,13 +3124,13 @@ struct SubExpressionAnalyzer : ExpressionAnalyzer {
{
return tok->exprId() == expr->exprId() && !(astIsLHS(tok) && submatch(tok->astParent(), false));
}
void internalUpdate(Token* tok, const ValueFlow::Value& v, Direction) override
void internalUpdate(Token* tok, const ValueFlow::Value& v, Direction /*d*/) override
{
partialReads->emplace_back(tok, v);
}

// No reanalysis for subexression
ValuePtr<Analyzer> reanalyze(Token*, const std::string&) const override {
ValuePtr<Analyzer> reanalyze(Token* /*tok*/, const std::string& /*msg*/) const override {
return {};
}
};
Expand Down Expand Up @@ -4491,7 +4491,7 @@ static bool isConvertedToView(const Token* tok, const Settings* settings)
});
}

static void valueFlowLifetime(TokenList *tokenlist, SymbolDatabase*, ErrorLogger *errorLogger, const Settings *settings)
static void valueFlowLifetime(TokenList *tokenlist, SymbolDatabase* /*db*/, ErrorLogger *errorLogger, const Settings *settings)
{
for (Token *tok = tokenlist->front(); tok; tok = tok->next()) {
if (!tok->scope())
Expand Down Expand Up @@ -5322,7 +5322,7 @@ static void valueFlowForwardConst(Token* start,
const Variable* var,
const ContainerOfValue& values,
const Settings* const settings,
int = 0)
int /*unused*/ = 0)
{
for (Token* tok = start; tok != end; tok = tok->next()) {
if (tok->varId() == var->declarationId()) {
Expand Down Expand Up @@ -5472,7 +5472,7 @@ static void valueFlowForwardAssign(Token* const tok,
static void valueFlowForwardAssign(Token* const tok,
const Variable* const var,
const std::list<ValueFlow::Value>& values,
const bool,
const bool /*unused*/,
const bool init,
TokenList* const tokenlist,
ErrorLogger* const errorLogger,
Expand Down Expand Up @@ -6352,7 +6352,7 @@ static void valueFlowCondition(const ValuePtr<ConditionHandler>& handler,
}

struct SimpleConditionHandler : ConditionHandler {
std::vector<Condition> parse(const Token* tok, const Settings*) const override {
std::vector<Condition> parse(const Token* tok, const Settings* /*settings*/) const override {

std::vector<Condition> conds;
parseCompareEachInt(tok, [&](const Token* vartok, ValueFlow::Value true_value, ValueFlow::Value false_value) {
Expand Down Expand Up @@ -6939,11 +6939,11 @@ struct MultiValueFlowAnalyzer : ValueFlowAnalyzer {
return false;
}

bool stopOnCondition(const Token*) const override {
bool stopOnCondition(const Token* /*condTok*/) const override {
return isConditional();
}

bool updateScope(const Token* endBlock, bool) const override {
bool updateScope(const Token* endBlock, bool /*modified*/) const override {
const Scope* scope = endBlock->scope();
if (!scope)
return false;
Expand Down Expand Up @@ -7953,7 +7953,7 @@ static std::list<ValueFlow::Value> getIteratorValues(std::list<ValueFlow::Value>
}

struct IteratorConditionHandler : SimpleConditionHandler {
std::vector<Condition> parse(const Token* tok, const Settings*) const override {
std::vector<Condition> parse(const Token* tok, const Settings* /*settings*/) const override {
Condition cond;

if (Token::Match(tok, "==|!=")) {
Expand Down
10 changes: 5 additions & 5 deletions oss-fuzz/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,11 @@ enum class Color;

class DummyErrorLogger : public ErrorLogger {
public:
void reportOut(const std::string&, Color) override {}
void reportErr(const ErrorMessage&) override {}
void reportProgress(const std::string&,
const char[],
const std::size_t) override {}
void reportOut(const std::string& /*outmsg*/, Color /*c*/) override {}
void reportErr(const ErrorMessage& /*msg*/) override {}
void reportProgress(const std::string& /*filename*/,
const char /*stage*/[],
const std::size_t /*value*/) override {} // FN
};

extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t dataSize);
Expand Down
2 changes: 1 addition & 1 deletion test/testcppcheck.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ class TestCppcheck : public TestFixture {
public:
std::list<std::string> id;

void reportOut(const std::string & /*outmsg*/, Color = Color::Reset) override {}
void reportOut(const std::string & /*outmsg*/, Color /*c*/ = Color::Reset) override {}

void reportErr(const ErrorMessage &msg) override {
id.push_back(msg.id);
Expand Down
8 changes: 2 additions & 6 deletions test/teststl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
#include "standards.h"
#include "testsuite.h"
#include "tokenize.h"
#include "utils.h"

#include <cstddef>
#include <sstream> // IWYU pragma: keep
Expand Down Expand Up @@ -3028,17 +3029,12 @@ class TestStl : public TestFixture {
ASSERT_EQUALS("", errout.str());
}

template<size_t n, typename T>
static size_t getArraylength(const T (&)[n]) {
return n;
}

void stlBoundaries1() {
const std::string stlCont[] = {
"list", "set", "multiset", "map", "multimap"
};

for (size_t i = 0; i < getArraylength(stlCont); ++i) {
for (size_t i = 0; i < getArrayLength(stlCont); ++i) {
check("void f()\n"
"{\n"
" std::" + stlCont[i] + "<int>::iterator it;\n"
Expand Down
2 changes: 1 addition & 1 deletion test/testsuite.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -374,7 +374,7 @@ std::size_t TestFixture::runTests(const options& args)
return fails_counter;
}

void TestFixture::reportOut(const std::string & outmsg, Color)
void TestFixture::reportOut(const std::string & outmsg, Color /*c*/)
{
output << outmsg << std::endl;
}
Expand Down
2 changes: 1 addition & 1 deletion test/testutils.h
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ class SimpleSuppressor : public ErrorLogger {
public:
SimpleSuppressor(Settings &settings, ErrorLogger *next)
: settings(settings), next(next) {}
void reportOut(const std::string &outmsg, Color = Color::Reset) override {
void reportOut(const std::string &outmsg, Color /*c*/ = Color::Reset) override {
next->reportOut(outmsg);
}
void reportErr(const ErrorMessage &msg) override {
Expand Down