File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff 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 () {
You can’t perform that action at this time.
0 commit comments