From c04e25e936abc4ad4958bbfd6242b75751c0e7bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Marjam=C3=A4ki?= Date: Wed, 9 Oct 2019 08:17:47 +0200 Subject: [PATCH] Revert "#9391 Detecting uninited member variables with default ctor (#2249)" This reverts commit 08bc369296f838adddbeceb3f3eb4b24f987ca96. --- lib/checkclass.cpp | 5 ++--- test/testconstructors.cpp | 25 +------------------------ 2 files changed, 3 insertions(+), 27 deletions(-) diff --git a/lib/checkclass.cpp b/lib/checkclass.cpp index e87a617bb..9be1870f7 100644 --- a/lib/checkclass.cpp +++ b/lib/checkclass.cpp @@ -145,7 +145,7 @@ void CheckClass::constructors() std::vector usage(scope->varlist.size()); for (const Function &func : scope->functionList) { - if (!(func.hasBody() || func.isDefault()) || !(func.isConstructor() || func.type == Function::eOperatorEqual)) + if (!func.hasBody() || !(func.isConstructor() || func.type == Function::eOperatorEqual)) continue; // Bail: If initializer list is not recognized as a variable or type then skip since parsing is incomplete @@ -159,8 +159,7 @@ void CheckClass::constructors() clearAllVar(usage); std::list callstack; - if (func.hasBody()) - initializeVarList(func, callstack, scope, usage); + initializeVarList(func, callstack, scope, usage); // Check if any variables are uninitialized int count = -1; diff --git a/test/testconstructors.cpp b/test/testconstructors.cpp index 3acc6914d..aded0c8c2 100644 --- a/test/testconstructors.cpp +++ b/test/testconstructors.cpp @@ -385,36 +385,13 @@ private: ASSERT_EQUALS("", errout.str()); } - void simple10() { // tickets #4388, #9391 + void simple10() { // ticket #4388 check("class Fred {\n" "public:\n" " Fred() = default;\n" "private:\n" " int x;\n" "};"); - ASSERT_EQUALS("[test.cpp:3]: (warning) Member variable 'Fred::x' is not initialized in the constructor.\n", errout.str()); - - check("class Fred {\n" - "public:\n" - " Fred() = default;\n" - " int x;\n" - "};"); - ASSERT_EQUALS("[test.cpp:3]: (warning) Member variable 'Fred::x' is not initialized in the constructor.\n", errout.str()); - - check("class Fred {\n" - "public:\n" - " Fred();\n" - " int x;\n" - "};\n" - "Fred::Fred()=default;"); - ASSERT_EQUALS("[test.cpp:3]: (warning) Member variable 'Fred::x' is not initialized in the constructor.\n", errout.str()); - - check("class Fred {\n" - "public:\n" - " Fred() = default;\n" - "private:\n" - " int x = 0;\n" - "};"); ASSERT_EQUALS("", errout.str()); }