@@ -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