From a6dc812bd8ce47860b673ca1c77fd52618088f17 Mon Sep 17 00:00:00 2001 From: chrchr-github Date: Fri, 1 Dec 2023 12:41:45 +0100 Subject: [PATCH] Support non-STL containers --- lib/astutils.cpp | 2 +- test/cfg/qt.cpp | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/astutils.cpp b/lib/astutils.cpp index 97359b101db..62a616ee671 100644 --- a/lib/astutils.cpp +++ b/lib/astutils.cpp @@ -3260,7 +3260,7 @@ static ExprUsage getFunctionUsage(const Token* tok, int indirect, const Settings } else if (ftok->variable() && ftok == ftok->variable()->nameToken()) { // variable init/constructor call if (ftok->variable()->type() && ftok->variable()->type()->needInitialization == Type::NeedInitialization::True) return ExprUsage::Used; - if (ftok->variable()->isStlType()) // STL types don't initialize external variables + if (ftok->variable()->isStlType() || (ftok->variable()->valueType() && ftok->variable()->valueType()->container)) // STL types or containers don't initialize external variables return ExprUsage::Used; } else { const bool isnullbad = settings->library.isnullargbad(ftok, argnr + 1); diff --git a/test/cfg/qt.cpp b/test/cfg/qt.cpp index 63ccf3b1d72..46310e32171 100644 --- a/test/cfg/qt.cpp +++ b/test/cfg/qt.cpp @@ -321,6 +321,13 @@ void duplicateExpression_QString_Compare(QString style) //#8723 {} } +void QVector_uninit() +{ + int i; + // cppcheck-suppress [uninitvar, unreadVariable] + QVector v(i); +} + void QStack1(QStack intStackArg) { for (int i = 0; i <= intStackArg.size(); ++i) {