parent
6796f9daa2
commit
6df0f9b3e3
|
@ -1220,6 +1220,24 @@ private:
|
||||||
" memset(var, 0, sizeof(var));\n"
|
" memset(var, 0, sizeof(var));\n"
|
||||||
"}", "test.c");
|
"}", "test.c");
|
||||||
ASSERT_EQUALS("", errout.str());
|
ASSERT_EQUALS("", errout.str());
|
||||||
|
|
||||||
|
checkUninitVar("int f() {\n" // #8692
|
||||||
|
" bool b = e();\n"
|
||||||
|
" int v;\n"
|
||||||
|
" if (b)\n"
|
||||||
|
" doStuff(&v);\n"
|
||||||
|
" int v2 = (b) ? v / 5 : 0;\n"
|
||||||
|
" int v3;\n"
|
||||||
|
" if (b)\n"
|
||||||
|
" v3 = 50;\n"
|
||||||
|
" int v4 = (b) ? v3 + 5 : 0;\n"
|
||||||
|
" int v5;\n"
|
||||||
|
" int v6 = v5;\n"
|
||||||
|
" doStuff(&v5);\n"
|
||||||
|
" int v7 = v5;\n"
|
||||||
|
" return v2 + v4 + v6 + v7;\n"
|
||||||
|
"}\n");
|
||||||
|
ASSERT_EQUALS("[test.cpp:12]: (error) Uninitialized variable: v5\n", errout.str());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -4343,6 +4361,19 @@ private:
|
||||||
" a=i;\n"
|
" a=i;\n"
|
||||||
"}");
|
"}");
|
||||||
ASSERT_EQUALS("[test.cpp:2]: (error) Uninitialized variable: i\n", errout.str());
|
ASSERT_EQUALS("[test.cpp:2]: (error) Uninitialized variable: i\n", errout.str());
|
||||||
|
|
||||||
|
checkUninitVar("namespace N {\n" // #7377
|
||||||
|
" template<typename T>\n"
|
||||||
|
" class C {};\n"
|
||||||
|
" using V = class C<void>;\n"
|
||||||
|
"}\n"
|
||||||
|
"int f() {\n"
|
||||||
|
" int r = 0;\n"
|
||||||
|
" for (int x; x < 4; x++)\n"
|
||||||
|
" r += x;\n"
|
||||||
|
" return r;\n"
|
||||||
|
"}\n");
|
||||||
|
ASSERT_EQUALS("[test.cpp:8]: (error) Uninitialized variable: x\n", errout.str());
|
||||||
}
|
}
|
||||||
|
|
||||||
void uninitvar2_4494() {
|
void uninitvar2_4494() {
|
||||||
|
|
|
@ -206,6 +206,7 @@ private:
|
||||||
TEST_CASE(varidenum3);
|
TEST_CASE(varidenum3);
|
||||||
TEST_CASE(varidenum4);
|
TEST_CASE(varidenum4);
|
||||||
TEST_CASE(varidenum5);
|
TEST_CASE(varidenum5);
|
||||||
|
TEST_CASE(varidenum6); // #9180
|
||||||
|
|
||||||
TEST_CASE(varidnamespace1);
|
TEST_CASE(varidnamespace1);
|
||||||
TEST_CASE(varidnamespace2);
|
TEST_CASE(varidnamespace2);
|
||||||
|
@ -3344,6 +3345,14 @@ private:
|
||||||
TODO_ASSERT_EQUALS(expected, current, tokenize(code));
|
TODO_ASSERT_EQUALS(expected, current, tokenize(code));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void varidenum6() { // #9180
|
||||||
|
const char code[] = "const int IDL1 = 13;\n"
|
||||||
|
"enum class E { IDL1 = 16, };\n";
|
||||||
|
const char expected[] = "1: const int IDL1@1 = 13 ;\n"
|
||||||
|
"2: enum class E { IDL1 = 16 , } ;\n";
|
||||||
|
ASSERT_EQUALS(expected, tokenize(code));
|
||||||
|
}
|
||||||
|
|
||||||
void varid_classnameshaddowsvariablename() {
|
void varid_classnameshaddowsvariablename() {
|
||||||
const char code[] = "class Data;\n"
|
const char code[] = "class Data;\n"
|
||||||
"void strange_declarated(const Data& Data);\n"
|
"void strange_declarated(const Data& Data);\n"
|
||||||
|
|
Loading…
Reference in New Issue