@@ -150,7 +150,7 @@ class TestValueFlow : public TestFixture {
150
150
TEST_CASE(valueFlowIdempotent);
151
151
TEST_CASE(valueFlowUnsigned);
152
152
TEST_CASE(valueFlowMod);
153
- TEST_CASE(valueFlowInc );
153
+ TEST_CASE(valueFlowIncDec );
154
154
TEST_CASE(valueFlowNotNull);
155
155
TEST_CASE(valueFlowSymbolic);
156
156
TEST_CASE(valueFlowSymbolicIdentity);
@@ -7925,7 +7925,7 @@ class TestValueFlow : public TestFixture {
7925
7925
ASSERT_EQUALS(false, testValueOfXImpossible(code, 3U, 1));
7926
7926
}
7927
7927
7928
- void valueFlowInc () {
7928
+ void valueFlowIncDec () {
7929
7929
const char *code;
7930
7930
std::list<ValueFlow::Value> values;
7931
7931
@@ -7939,6 +7939,24 @@ class TestValueFlow : public TestFixture {
7939
7939
values = tokenValues(code, "i ]");
7940
7940
ASSERT_EQUALS(1U, values.size());
7941
7941
ASSERT_EQUALS(0LLU, values.back().intvalue);
7942
+
7943
+ code = "int f() {\n"
7944
+ " const int a[1] = {};\n"
7945
+ " unsigned char i = 255;\n"
7946
+ " return a[++i];\n"
7947
+ "}\n";
7948
+ values = tokenValues(code, "++");
7949
+ ASSERT_EQUALS(1U, values.size());
7950
+ ASSERT_EQUALS(0LLU, values.back().intvalue);
7951
+
7952
+ code = "int f() {\n"
7953
+ " const int a[128] = {};\n"
7954
+ " char b = -128;\n"
7955
+ " return a[--b];\n"
7956
+ "}\n";
7957
+ values = tokenValues(code, "--");
7958
+ ASSERT_EQUALS(1U, values.size());
7959
+ ASSERT_EQUALS(127LLU, values.back().intvalue);
7942
7960
}
7943
7961
7944
7962
void valueFlowNotNull()
0 commit comments