From c75a2265c0e07263f931786a75e839d4bc964354 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Marjam=C3=A4ki?= Date: Sun, 13 Jan 2019 12:10:26 +0100 Subject: [PATCH] Fix inline suppression. --- lib/checkuninitvar.cpp | 8 ++++++++ lib/ctu.cpp | 1 - 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/checkuninitvar.cpp b/lib/checkuninitvar.cpp index 078f44afc..163580505 100644 --- a/lib/checkuninitvar.cpp +++ b/lib/checkuninitvar.cpp @@ -360,6 +360,14 @@ bool CheckUninitVar::checkScopeForVariable(const Token *tok, const Variable& var bool alwaysTrue = false; bool alwaysFalse = false; + // Is variable assigned in condition? + if (!membervar.empty()) { + for (const Token *cond = tok->linkAt(1); cond != tok; cond = cond->previous()) { + if (cond->varId() == var.declarationId() && isMemberVariableAssignment(cond, membervar)) + return true; + } + } + conditionAlwaysTrueOrFalse(tok->next()->astOperand2(), variableValue, &alwaysTrue, &alwaysFalse); // initialization / usage in condition.. diff --git a/lib/ctu.cpp b/lib/ctu.cpp index ae90b0b90..75d897073 100644 --- a/lib/ctu.cpp +++ b/lib/ctu.cpp @@ -213,7 +213,6 @@ void CTU::FileInfo::loadFromXml(const tinyxml2::XMLElement *xmlElement) if (std::strcmp(e->Name(), "function-call") == 0) { FunctionCall functionCall; if (functionCall.loadFromXml(e)) - // cppcheck-suppress uninitStructMember // FP functionCalls.push_back(functionCall); } else if (std::strcmp(e->Name(), "nested-call") == 0) { NestedCall nestedCall;