Skip to content

Commit 86f316f

Browse files
Update testvalueflow.cpp
1 parent 67eb159 commit 86f316f

1 file changed

Lines changed: 20 additions & 0 deletions

File tree

test/testvalueflow.cpp

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4286,6 +4286,26 @@ class TestValueFlow : public TestFixture {
42864286
"}\n";
42874287
auto values = tokenValues(code, "s :", ValueFlow::Value::ValueType::FLOAT);
42884288
ASSERT_EQUALS(0, values.size());
4289+
4290+
code = "int a[5];\n" // 15034
4291+
"int g(int i) {\n"
4292+
" return a[i < 0 ? -i : i];\n"
4293+
"}\n"
4294+
"int f() {\n"
4295+
" return g(-5);\n"
4296+
"}\n";
4297+
values = tokenValues(code, "?");
4298+
ASSERT_EQUALS(2, values.size());
4299+
auto it = values.begin();
4300+
ASSERT_EQUALS_ENUM(ValueFlow::Value::ValueType::INT, it->valueType);
4301+
ASSERT_EQUALS(0, it->intvalue);
4302+
ASSERT_EQUALS_ENUM(ValueFlow::Value::Bound::Lower, it->bound);
4303+
ASSERT_EQUALS_ENUM(ValueFlow::Value::ValueKind::Possible, it->valueKind);
4304+
++it;
4305+
ASSERT_EQUALS_ENUM(ValueFlow::Value::ValueType::INT, it->valueType);
4306+
ASSERT_EQUALS(5, it->intvalue);
4307+
ASSERT_EQUALS_ENUM(ValueFlow::Value::Bound::Point, it->bound);
4308+
ASSERT_EQUALS_ENUM(ValueFlow::Value::ValueKind::Possible, it->valueKind);
42894309
}
42904310

42914311
void valueFlowForwardLambda() {

0 commit comments

Comments
 (0)