Add test cases for ValueFlow issue with cast/switch (#3527)
This commit is contained in:
parent
87d1ba4c08
commit
728531aba1
|
@ -2959,6 +2959,36 @@ private:
|
||||||
"}\n";
|
"}\n";
|
||||||
ASSERT_EQUALS(false, testValueOfX(code, 12U, 3));
|
ASSERT_EQUALS(false, testValueOfX(code, 12U, 3));
|
||||||
|
|
||||||
|
code = "long long f(const long long& x, const long long& y) {\n"
|
||||||
|
" switch (s) {\n"
|
||||||
|
" case 0:\n"
|
||||||
|
" if (x >= 64)\n"
|
||||||
|
" return 0;\n"
|
||||||
|
" return (long long)y << (long long)x;\n"
|
||||||
|
" case 1:\n"
|
||||||
|
" if (x >= 64) {\n"
|
||||||
|
" }\n"
|
||||||
|
" }\n"
|
||||||
|
" return 0; \n"
|
||||||
|
"}\n";
|
||||||
|
ASSERT_EQUALS(true, testValueOfX(code, 6U, 63));
|
||||||
|
ASSERT_EQUALS(true, testValueOfXImpossible(code, 6U, 64));
|
||||||
|
|
||||||
|
code = "long long f(const long long& x, const long long& y) {\n"
|
||||||
|
" switch (s) {\n"
|
||||||
|
" case 0:\n"
|
||||||
|
" if (x >= 64)\n"
|
||||||
|
" return 0;\n"
|
||||||
|
" return long long(y) << long long(x);\n"
|
||||||
|
" case 1:\n"
|
||||||
|
" if (x >= 64) {\n"
|
||||||
|
" }\n"
|
||||||
|
" }\n"
|
||||||
|
" return 0; \n"
|
||||||
|
"}\n";
|
||||||
|
ASSERT_EQUALS(true, testValueOfX(code, 6U, 63));
|
||||||
|
TODO_ASSERT_EQUALS(true, false, testValueOfXImpossible(code, 6U, 64));
|
||||||
|
|
||||||
code = "int g(int x) { throw 0; }\n"
|
code = "int g(int x) { throw 0; }\n"
|
||||||
"void f(int x) {\n"
|
"void f(int x) {\n"
|
||||||
" if (x == 3)\n"
|
" if (x == 3)\n"
|
||||||
|
|
Loading…
Reference in New Issue