diff --git a/lib/valueflow.cpp b/lib/valueflow.cpp index 5476f3764..503e821d4 100644 --- a/lib/valueflow.cpp +++ b/lib/valueflow.cpp @@ -1381,8 +1381,10 @@ static bool valueFlowForward(Token * const startToken, } if (inconclusive) { std::list::iterator it; - for (it = values.begin(); it != values.end(); ++it) + for (it = values.begin(); it != values.end(); ++it) { it->inconclusive = true; + it->changeKnownToPossible(); + } } } diff --git a/test/testvalueflow.cpp b/test/testvalueflow.cpp index 111f084ce..887d7148f 100644 --- a/test/testvalueflow.cpp +++ b/test/testvalueflow.cpp @@ -1618,6 +1618,13 @@ private: ASSERT_EQUALS(9, value.intvalue); ASSERT(value.isPossible()); + code = "void f() {\n" + " int x = 0;\n" + " fred.dostuff(x);\n" + " if (x < 0) {}\n" + "}\n"; + ASSERT(isNotKnownValues(code, "<")); + code = "void f() {\n" " int x = 0;\n" " if (y) { dostuff(x); }\n"