From d3e45c5491d1600bcb93341154f14b1c754ad2c3 Mon Sep 17 00:00:00 2001 From: chrchr-github <78114321+chrchr-github@users.noreply.github.com> Date: Thu, 11 Jul 2024 18:35:45 +0200 Subject: [PATCH] Update testuninitvar.cpp --- test/testuninitvar.cpp | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/test/testuninitvar.cpp b/test/testuninitvar.cpp index 440118caafd..e1a98d03a16 100644 --- a/test/testuninitvar.cpp +++ b/test/testuninitvar.cpp @@ -6520,6 +6520,28 @@ class TestUninitVar : public TestFixture { " printf(\"%s\", p);\n" "}\n"); ASSERT_EQUALS("", errout_str()); + + valueFlowUninit("std::string f() {\n" // #12922 + " std::string a[2];\n" + " std::array b;\n" + " return a[1] + b.at(1);\n" // don't warn + "}\n" + "struct S { int i; };\n" + "struct T { int i = 0; };\n" + "int g() {\n" + " std::array a;\n" + " std::array b;\n" + " std::array c;\n" // don't warn + " return a.at(1) + b.at(1).i + c.at(1).i;\n" + "}\n" + "int h() {\n" + " std::array a;\n" + " return a[1];\n" + "}\n"); + ASSERT_EQUALS("[test.cpp:12]: (error) Uninitialized variable: a\n" + "[test.cpp:12]: (error) Uninitialized variable: b\n" + "[test.cpp:16]: (error) Uninitialized variable: a\n", + errout_str()); } void valueFlowUninitBreak() { // Do not show duplicate warnings about the same uninitialized value