MCPcopy Create free account
hub / github.com/cppcheck-opensource/cppcheck / valueFlowSwitchVariable

Method valueFlowSwitchVariable

test/testvalueflow.cpp:4537–4556  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4535 }
4536
4537 void valueFlowSwitchVariable() {
4538 const char code[] = "void f(int x) {\n"
4539 " a = x - 1;\n" // <- x can be 14
4540 " switch (x) {\n"
4541 " case 14: a=x+2; break;\n" // <- x is 14
4542 " };\n"
4543 " a = x;\n" // <- x can be 14
4544 "}";
4545 ASSERT_EQUALS(true, testConditionalValueOfX(code, 2U, 14));
4546 TODO_ASSERT_EQUALS(true, false, testConditionalValueOfX(code, 4U, 14));
4547 TODO_ASSERT_EQUALS(true, false, testConditionalValueOfX(code, 6U, 14));
4548
4549 ValueFlow::Value value1 = valueOfTok(code, "-");
4550 ASSERT_EQUALS(13, value1.intvalue);
4551 ASSERT(!value1.isKnown());
4552
4553 ValueFlow::Value value2 = valueOfTok(code, "+");
4554 TODO_ASSERT_EQUALS(16, 0, value2.intvalue);
4555 TODO_ASSERT_EQUALS(true, false, value2.isKnown());
4556 }
4557
4558 void valueFlowForLoop() {
4559 const char *code;

Callers

nothing calls this directly

Calls 1

isKnownMethod · 0.80

Tested by

no test coverage detected