Skip to content

Commit ed05065

Browse files
Add test cases, todos for #9790, #10358, #10462 (#3564)
* Add test cases, todos * Format * Remove dupes * Format
1 parent 5b52f49 commit ed05065

2 files changed

Lines changed: 28 additions & 0 deletions

File tree

test/testassert.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,11 @@ class TestAssert : public TestFixture {
234234
" assert(sizeof(struct { int a[x++]; })==sizeof(int));\n"
235235
"}");
236236
ASSERT_EQUALS("", errout.str());
237+
238+
check("void foo() {\n" // #9790
239+
" assert(kad_bucket_hash(&(kad_guid) { .bytes = { 0 } }, & (kad_guid){.bytes = { 0 }}) == -1);\n"
240+
"}");
241+
ASSERT_EQUALS("", errout.str());
237242
}
238243
};
239244

test/testvalueflow.cpp

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4444,6 +4444,22 @@ class TestValueFlow : public TestFixture {
44444444
ASSERT(value.isKnown());
44454445
ASSERT_EQUALS(1, value.intvalue);
44464446

4447+
code = "bool f() {\n"
4448+
" const int s = int{};"
4449+
" return s == 0;\n" // <- known value
4450+
"}";
4451+
value = valueOfTok(code, "==");
4452+
TODO_ASSERT_EQUALS(true, false, value.isKnown());
4453+
TODO_ASSERT_EQUALS(1, 0, value.intvalue);
4454+
4455+
code = "bool f() {\n"
4456+
" const int s = int();"
4457+
" return s == 0;\n" // <- known value
4458+
"}";
4459+
value = valueOfTok(code, "==");
4460+
TODO_ASSERT_EQUALS(true, false, value.isKnown());
4461+
TODO_ASSERT_EQUALS(1, 0, value.intvalue);
4462+
44474463
// calculation with known result
44484464
code = "int f(int x) { a = x & 0; }"; // <- & is 0
44494465
value = valueOfTok(code, "&");
@@ -6075,6 +6091,13 @@ class TestValueFlow : public TestFixture {
60756091
" diff = (buf-b);\n"
60766092
"}\n";
60776093
valueOfTok(code, "diff");
6094+
6095+
code = "void foo() {\n" // #10462
6096+
" std::tuple<float, float, float, float> t4(5.2f, 3.1f, 2.4f, 9.1f), t5(4, 6, 9, 27);\n"
6097+
" t4 = t5;\n"
6098+
" ASSERT(!(t4 < t5) && t4 <= t5);\n"
6099+
"}";
6100+
valueOfTok(code, "<=");
60786101
}
60796102

60806103
void valueFlowHang() {

0 commit comments

Comments
 (0)