Skip to content

Commit 462b98a

Browse files
committed
Fixed #7310 (ValueFlow: Value of NULL in function call)
1 parent 5c9be4a commit 462b98a

2 files changed

Lines changed: 7 additions & 0 deletions

File tree

lib/valueflow.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -584,6 +584,12 @@ static void valueFlowNumber(TokenList *tokenlist)
584584
ValueFlow::Value value(tok->str() == "true");
585585
value.setKnown();
586586
setTokenValue(tok, value);
587+
} else if (Token::Match(tok, "[(,] NULL [,)]")) {
588+
// NULL function parameters are not simplified in the
589+
// normal tokenlist
590+
ValueFlow::Value value(0);
591+
value.setKnown();
592+
setTokenValue(tok->next(), value);
587593
}
588594
}
589595
}

test/testvalueflow.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,7 @@ class TestValueFlow : public TestFixture {
167167
ASSERT_EQUALS(123, valueOfTok("x=123;", "123").intvalue);
168168
ASSERT_EQUALS(0, valueOfTok("x=false;", "false").intvalue);
169169
ASSERT_EQUALS(1, valueOfTok("x=true;", "true").intvalue);
170+
ASSERT_EQUALS(0, valueOfTok("x(NULL);", "NULL").intvalue);
170171
ASSERT_EQUALS((int)('a'), valueOfTok("x='a';", "'a'").intvalue);
171172
ASSERT_EQUALS((int)('\n'), valueOfTok("x='\\n';", "'\\n'").intvalue);
172173
}

0 commit comments

Comments
 (0)