Skip to content

Commit 1aa8adb

Browse files
committed
C++: Add test.
1 parent 1fab97b commit 1aa8adb

File tree

2 files changed

+51
-0
lines changed

2 files changed

+51
-0
lines changed

cpp/ql/test/library-tests/valuenumbering/GlobalValueNumbering/ir_gvn.expected

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1145,3 +1145,43 @@ test.cpp:
11451145
# 152| v152_7(void) = ReturnVoid :
11461146
# 152| v152_8(void) = AliasedUse : ~m156_7
11471147
# 152| v152_9(void) = ExitFunction :
1148+
1149+
# 166| void test_constMemberFunction()
1150+
# 166| Block 0
1151+
# 166| v166_1(void) = EnterFunction :
1152+
# 166| m166_2(unknown) = AliasedDefinition :
1153+
# 166| valnum = unique
1154+
# 166| m166_3(unknown) = InitializeNonLocal :
1155+
# 166| valnum = unique
1156+
# 166| m166_4(unknown) = Chi : total:m166_2, partial:m166_3
1157+
# 166| valnum = unique
1158+
# 167| r167_1(glval<StructWithConstMemberFunction>) = VariableAddress[s] :
1159+
# 167| valnum = r167_1, r168_2, r169_1
1160+
# 167| m167_2(StructWithConstMemberFunction) = Uninitialized[s] : &:r167_1
1161+
# 167| valnum = m167_2, m168_4, r168_3
1162+
# 167| m167_3(unknown) = Chi : total:m166_4, partial:m167_2
1163+
# 167| valnum = unique
1164+
# 168| r168_1(glval<StructWithConstMemberFunction>) = VariableAddress[s2] :
1165+
# 168| valnum = unique
1166+
# 168| r168_2(glval<StructWithConstMemberFunction>) = VariableAddress[s] :
1167+
# 168| valnum = r167_1, r168_2, r169_1
1168+
# 168| r168_3(StructWithConstMemberFunction) = Load[s] : &:r168_2, m167_2
1169+
# 168| valnum = m167_2, m168_4, r168_3
1170+
# 168| m168_4(StructWithConstMemberFunction) = Store[s2] : &:r168_1, r168_3
1171+
# 168| valnum = m167_2, m168_4, r168_3
1172+
# 169| r169_1(glval<StructWithConstMemberFunction>) = VariableAddress[s] :
1173+
# 169| valnum = r167_1, r168_2, r169_1
1174+
# 169| r169_2(glval<StructWithConstMemberFunction>) = Convert : r169_1
1175+
# 169| valnum = unique
1176+
# 169| r169_3(glval<unknown>) = FunctionAddress[constMemberFunction] :
1177+
# 169| valnum = unique
1178+
# 169| v169_4(void) = Call[constMemberFunction] : func:r169_3, this:r169_2
1179+
# 169| m169_5(unknown) = ^CallSideEffect : ~m167_3
1180+
# 169| valnum = unique
1181+
# 169| m169_6(unknown) = Chi : total:m167_3, partial:m169_5
1182+
# 169| valnum = unique
1183+
# 169| v169_7(void) = ^IndirectReadSideEffect[-1] : &:r169_2, ~m169_6
1184+
# 170| v170_1(void) = NoOp :
1185+
# 166| v166_5(void) = ReturnVoid :
1186+
# 166| v166_6(void) = AliasedUse : ~m169_6
1187+
# 166| v166_7(void) = ExitFunction :

cpp/ql/test/library-tests/valuenumbering/GlobalValueNumbering/test.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,4 +156,15 @@ void test_read_global_different(int n) {
156156
global_a->y = n;
157157

158158
int d = global_a->x;
159+
}
160+
161+
struct StructWithConstMemberFunction {
162+
int x;
163+
void constMemberFunction() const;
164+
};
165+
166+
void test_constMemberFunction() {
167+
StructWithConstMemberFunction s;
168+
StructWithConstMemberFunction s2 = s;
169+
s.constMemberFunction();
159170
}

0 commit comments

Comments
 (0)