From fa0f3d7d61e52de7f1c46f6dbf9c1615c2d89b30 Mon Sep 17 00:00:00 2001 From: chrchr Date: Wed, 16 Aug 2023 17:10:17 +0200 Subject: [PATCH] Undo, add test --- lib/valueflow.cpp | 4 +--- test/testvalueflow.cpp | 11 +++++++++++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/lib/valueflow.cpp b/lib/valueflow.cpp index 32717ed7fb9..ba435ac7a18 100644 --- a/lib/valueflow.cpp +++ b/lib/valueflow.cpp @@ -4256,13 +4256,11 @@ struct LifetimeStore { } }; -static bool hasBorrowingVariables(const std::list& vars, const std::vector& args/*, std::set& scopes*/, int depth = 10) +static bool hasBorrowingVariables(const std::list& vars, const std::vector& args, int depth = 10) { if (depth < 0) return true; return std::any_of(vars.cbegin(), vars.cend(), [&](const Variable& var) { - if (var.isStatic()) - return false; if (const ValueType* vt = var.valueType()) { if (vt->pointer > 0 && std::none_of(args.begin(), args.end(), [vt](const Token* arg) { diff --git a/test/testvalueflow.cpp b/test/testvalueflow.cpp index d9faba92820..1ea6b6b6f75 100644 --- a/test/testvalueflow.cpp +++ b/test/testvalueflow.cpp @@ -7359,6 +7359,17 @@ class TestValueFlow : public TestFixture { " if (llabs(0x80000000ffffffffL) == 0x7fffffff00000001L) {}\n" "}\n"; valueOfTok(code, "f"); + + code = "struct T {\n" + " T();\n" + " static T a[6][64];\n" + " static T b[2][64];\n" + " static T c[64][64];\n" + " static T d[2][64];\n" + " static T e[64];\n" + " static T f[64];\n" + "};\n"; + valueOfTok(code, "("); } void valueFlowCrashConstructorInitialization() { // #9577