Skip to content

Commit 26d4b31

Browse files
Update testvalueflow.cpp
1 parent ab3847d commit 26d4b31

1 file changed

Lines changed: 24 additions & 0 deletions

File tree

test/testvalueflow.cpp

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1396,6 +1396,30 @@ class TestValueFlow : public TestFixture {
13961396
ASSERT_EQUALS(1U, values.size());
13971397
ASSERT_EQUALS(4, values.back().intvalue);
13981398

1399+
code = "char& r = i;\n"
1400+
"sizeof(r);";
1401+
values = tokenValues(code, "( r");
1402+
ASSERT_EQUALS(1U, values.size());
1403+
ASSERT_EQUALS(1, values.back().intvalue);
1404+
1405+
code = "char* p;\n"
1406+
"sizeof(p);";
1407+
values = tokenValues(code, "( p");
1408+
ASSERT_EQUALS(1U, values.size());
1409+
ASSERT_EQUALS(settings.platform.sizeof_pointer, values.back().intvalue);
1410+
1411+
code = "char*& pr = p;\n"
1412+
"sizeof(pr);";
1413+
values = tokenValues(code, "( pr");
1414+
ASSERT_EQUALS(1U, values.size());
1415+
ASSERT_EQUALS(settings.platform.sizeof_pointer, values.back().intvalue);
1416+
1417+
code = "struct { char& r; char* p; } s{ x, y};\n"
1418+
"sizeof(s);\n";
1419+
values = tokenValues(code, "( s");
1420+
ASSERT_EQUALS(1U, values.size());
1421+
ASSERT_EQUALS(2 * settings.platform.sizeof_pointer, values.back().intvalue);
1422+
13991423
#define CHECK3(A, B, C) \
14001424
do { \
14011425
code = "void f() {\n" \

0 commit comments

Comments
 (0)