Try to improve 'clarifyStatement' warning message
This commit is contained in:
parent
16bed07c60
commit
7ceb51a952
|
@ -224,7 +224,7 @@ void CheckOther::clarifyStatement()
|
||||||
|
|
||||||
void CheckOther::clarifyStatementError(const Token *tok)
|
void CheckOther::clarifyStatementError(const Token *tok)
|
||||||
{
|
{
|
||||||
reportError(tok, Severity::warning, "clarifyStatement", "Ineffective statement similar to '*A++;'. Did you intend to write '(*A)++;'?\n"
|
reportError(tok, Severity::warning, "clarifyStatement", "In expression like '*A++' the result of '*' is unused. Did you intend to write '(*A)++;'?\n"
|
||||||
"A statement like '*A++;' might not do what you intended. Postfix 'operator++' is executed before 'operator*'. "
|
"A statement like '*A++;' might not do what you intended. Postfix 'operator++' is executed before 'operator*'. "
|
||||||
"Thus, the dereference is meaningless. Did you intend to write '(*A)++;'?", CWE783, false);
|
"Thus, the dereference is meaningless. Did you intend to write '(*A)++;'?", CWE783, false);
|
||||||
}
|
}
|
||||||
|
|
|
@ -3384,28 +3384,28 @@ private:
|
||||||
" *c++;\n"
|
" *c++;\n"
|
||||||
" return c;\n"
|
" return c;\n"
|
||||||
"}");
|
"}");
|
||||||
ASSERT_EQUALS("[test.cpp:2]: (warning) Ineffective statement similar to '*A++;'. Did you intend to write '(*A)++;'?\n", errout.str());
|
ASSERT_EQUALS("[test.cpp:2]: (warning) In expression like '*A++' the result of '*' is unused. Did you intend to write '(*A)++;'?\n", errout.str());
|
||||||
|
|
||||||
check("char* f(char** c) {\n"
|
check("char* f(char** c) {\n"
|
||||||
" *c[5]--;\n"
|
" *c[5]--;\n"
|
||||||
" return *c;\n"
|
" return *c;\n"
|
||||||
"}");
|
"}");
|
||||||
ASSERT_EQUALS("[test.cpp:2]: (warning) Ineffective statement similar to '*A++;'. Did you intend to write '(*A)++;'?\n", errout.str());
|
ASSERT_EQUALS("[test.cpp:2]: (warning) In expression like '*A++' the result of '*' is unused. Did you intend to write '(*A)++;'?\n", errout.str());
|
||||||
|
|
||||||
check("void f(Foo f) {\n"
|
check("void f(Foo f) {\n"
|
||||||
" *f.a++;\n"
|
" *f.a++;\n"
|
||||||
"}");
|
"}");
|
||||||
ASSERT_EQUALS("[test.cpp:2]: (warning) Ineffective statement similar to '*A++;'. Did you intend to write '(*A)++;'?\n", errout.str());
|
ASSERT_EQUALS("[test.cpp:2]: (warning) In expression like '*A++' the result of '*' is unused. Did you intend to write '(*A)++;'?\n", errout.str());
|
||||||
|
|
||||||
check("void f(Foo f) {\n"
|
check("void f(Foo f) {\n"
|
||||||
" *f.a[5].v[3]++;\n"
|
" *f.a[5].v[3]++;\n"
|
||||||
"}");
|
"}");
|
||||||
ASSERT_EQUALS("[test.cpp:2]: (warning) Ineffective statement similar to '*A++;'. Did you intend to write '(*A)++;'?\n", errout.str());
|
ASSERT_EQUALS("[test.cpp:2]: (warning) In expression like '*A++' the result of '*' is unused. Did you intend to write '(*A)++;'?\n", errout.str());
|
||||||
|
|
||||||
check("void f(Foo f) {\n"
|
check("void f(Foo f) {\n"
|
||||||
" *f.a(1, 5).v[x + y]++;\n"
|
" *f.a(1, 5).v[x + y]++;\n"
|
||||||
"}");
|
"}");
|
||||||
ASSERT_EQUALS("[test.cpp:2]: (warning) Ineffective statement similar to '*A++;'. Did you intend to write '(*A)++;'?\n", errout.str());
|
ASSERT_EQUALS("[test.cpp:2]: (warning) In expression like '*A++' the result of '*' is unused. Did you intend to write '(*A)++;'?\n", errout.str());
|
||||||
|
|
||||||
check("char* f(char* c) {\n"
|
check("char* f(char* c) {\n"
|
||||||
" (*c)++;\n"
|
" (*c)++;\n"
|
||||||
|
@ -3422,13 +3422,13 @@ private:
|
||||||
" ***c++;\n"
|
" ***c++;\n"
|
||||||
" return c;\n"
|
" return c;\n"
|
||||||
"}");
|
"}");
|
||||||
ASSERT_EQUALS("[test.cpp:2]: (warning) Ineffective statement similar to '*A++;'. Did you intend to write '(*A)++;'?\n", errout.str());
|
ASSERT_EQUALS("[test.cpp:2]: (warning) In expression like '*A++' the result of '*' is unused. Did you intend to write '(*A)++;'?\n", errout.str());
|
||||||
|
|
||||||
check("char** f(char*** c) {\n"
|
check("char** f(char*** c) {\n"
|
||||||
" **c[5]--;\n"
|
" **c[5]--;\n"
|
||||||
" return **c;\n"
|
" return **c;\n"
|
||||||
"}");
|
"}");
|
||||||
ASSERT_EQUALS("[test.cpp:2]: (warning) Ineffective statement similar to '*A++;'. Did you intend to write '(*A)++;'?\n", errout.str());
|
ASSERT_EQUALS("[test.cpp:2]: (warning) In expression like '*A++' the result of '*' is unused. Did you intend to write '(*A)++;'?\n", errout.str());
|
||||||
|
|
||||||
check("char*** f(char*** c) {\n"
|
check("char*** f(char*** c) {\n"
|
||||||
" (***c)++;\n"
|
" (***c)++;\n"
|
||||||
|
|
Loading…
Reference in New Issue