Revert "#9391 Detecting uninited member variables with default ctor (#2249)"

This reverts commit 08bc369296.
This commit is contained in:
Daniel Marjamäki 2019-10-09 08:17:47 +02:00
parent b27fe83da4
commit c04e25e936
2 changed files with 3 additions and 27 deletions

View File

@ -145,7 +145,7 @@ void CheckClass::constructors()
std::vector<Usage> 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<const Function *> callstack;
if (func.hasBody())
initializeVarList(func, callstack, scope, usage);
initializeVarList(func, callstack, scope, usage);
// Check if any variables are uninitialized
int count = -1;

View File

@ -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());
}