diff --git a/cpp/ql/test/library-tests/ir/ir/aliased_ssa_consistency.expected b/cpp/ql/test/library-tests/ir/ir/aliased_ssa_consistency.expected index 6dfe352b948..79887fffc1f 100644 --- a/cpp/ql/test/library-tests/ir/ir/aliased_ssa_consistency.expected +++ b/cpp/ql/test/library-tests/ir/ir/aliased_ssa_consistency.expected @@ -11,16 +11,6 @@ unexplainedLoop unnecessaryPhiInstruction memoryOperandDefinitionIsUnmodeled operandAcrossFunctions -| ir.cpp:1232:16:1232:16 | Address | Operand 'Address' is used on instruction 'Store: 0' in function '$@', but is defined on instruction 'VariableAddress: a' in function '$@'. | ir.cpp:1231:5:1231:19 | int staticLocalInit(int) | int staticLocalInit(int) | ir.cpp:1232:16:1232:16 | int a | int a | -| ir.cpp:1232:16:1232:16 | SideEffect | Operand 'SideEffect' is used on instruction 'AliasedUse: a' in function '$@', but is defined on instruction 'Chi: 0' in function '$@'. | ir.cpp:1232:16:1232:16 | int a | int a | ir.cpp:1231:5:1231:19 | int staticLocalInit(int) | int staticLocalInit(int) | -| ir.cpp:1232:20:1232:20 | ChiTotal | Operand 'ChiTotal' is used on instruction 'Chi: 0' in function '$@', but is defined on instruction 'AliasedDefinition: a' in function '$@'. | ir.cpp:1231:5:1231:19 | int staticLocalInit(int) | int staticLocalInit(int) | ir.cpp:1232:16:1232:16 | int a | int a | -| ir.cpp:1233:16:1233:16 | Address | Operand 'Address' is used on instruction 'Store: (int)...' in function '$@', but is defined on instruction 'VariableAddress: b' in function '$@'. | ir.cpp:1231:5:1231:19 | int staticLocalInit(int) | int staticLocalInit(int) | ir.cpp:1233:16:1233:16 | int b | int b | -| ir.cpp:1233:16:1233:16 | SideEffect | Operand 'SideEffect' is used on instruction 'AliasedUse: b' in function '$@', but is defined on instruction 'Chi: (int)...' in function '$@'. | ir.cpp:1233:16:1233:16 | int b | int b | ir.cpp:1231:5:1231:19 | int staticLocalInit(int) | int staticLocalInit(int) | -| ir.cpp:1233:20:1233:28 | ChiTotal | Operand 'ChiTotal' is used on instruction 'Chi: (int)...' in function '$@', but is defined on instruction 'AliasedDefinition: b' in function '$@'. | ir.cpp:1231:5:1231:19 | int staticLocalInit(int) | int staticLocalInit(int) | ir.cpp:1233:16:1233:16 | int b | int b | -| struct_init.cpp:21:17:21:28 | Left | Operand 'Left' is used on instruction 'PointerAdd: {...}' in function '$@', but is defined on instruction 'VariableAddress: static_infos' in function '$@'. | struct_init.cpp:20:6:20:25 | void declare_static_infos() | void declare_static_infos() | struct_init.cpp:21:17:21:28 | Info[] static_infos | Info[] static_infos | -| struct_init.cpp:21:17:21:28 | Left | Operand 'Left' is used on instruction 'PointerAdd: {...}' in function '$@', but is defined on instruction 'VariableAddress: static_infos' in function '$@'. | struct_init.cpp:20:6:20:25 | void declare_static_infos() | void declare_static_infos() | struct_init.cpp:21:17:21:28 | Info[] static_infos | Info[] static_infos | -| struct_init.cpp:21:17:21:28 | SideEffect | Operand 'SideEffect' is used on instruction 'AliasedUse: static_infos' in function '$@', but is defined on instruction 'Chi: & ...' in function '$@'. | struct_init.cpp:21:17:21:28 | Info[] static_infos | Info[] static_infos | struct_init.cpp:20:6:20:25 | void declare_static_infos() | void declare_static_infos() | -| struct_init.cpp:22:11:22:13 | ChiTotal | Operand 'ChiTotal' is used on instruction 'Chi: array to pointer conversion' in function '$@', but is defined on instruction 'AliasedDefinition: static_infos' in function '$@'. | struct_init.cpp:20:6:20:25 | void declare_static_infos() | void declare_static_infos() | struct_init.cpp:21:17:21:28 | Info[] static_infos | Info[] static_infos | instructionWithoutUniqueBlock containsLoopOfForwardEdges lostReachability diff --git a/cpp/ql/test/library-tests/ir/ir/aliased_ssa_consistency_unsound.expected b/cpp/ql/test/library-tests/ir/ir/aliased_ssa_consistency_unsound.expected index 6dfe352b948..79887fffc1f 100644 --- a/cpp/ql/test/library-tests/ir/ir/aliased_ssa_consistency_unsound.expected +++ b/cpp/ql/test/library-tests/ir/ir/aliased_ssa_consistency_unsound.expected @@ -11,16 +11,6 @@ unexplainedLoop unnecessaryPhiInstruction memoryOperandDefinitionIsUnmodeled operandAcrossFunctions -| ir.cpp:1232:16:1232:16 | Address | Operand 'Address' is used on instruction 'Store: 0' in function '$@', but is defined on instruction 'VariableAddress: a' in function '$@'. | ir.cpp:1231:5:1231:19 | int staticLocalInit(int) | int staticLocalInit(int) | ir.cpp:1232:16:1232:16 | int a | int a | -| ir.cpp:1232:16:1232:16 | SideEffect | Operand 'SideEffect' is used on instruction 'AliasedUse: a' in function '$@', but is defined on instruction 'Chi: 0' in function '$@'. | ir.cpp:1232:16:1232:16 | int a | int a | ir.cpp:1231:5:1231:19 | int staticLocalInit(int) | int staticLocalInit(int) | -| ir.cpp:1232:20:1232:20 | ChiTotal | Operand 'ChiTotal' is used on instruction 'Chi: 0' in function '$@', but is defined on instruction 'AliasedDefinition: a' in function '$@'. | ir.cpp:1231:5:1231:19 | int staticLocalInit(int) | int staticLocalInit(int) | ir.cpp:1232:16:1232:16 | int a | int a | -| ir.cpp:1233:16:1233:16 | Address | Operand 'Address' is used on instruction 'Store: (int)...' in function '$@', but is defined on instruction 'VariableAddress: b' in function '$@'. | ir.cpp:1231:5:1231:19 | int staticLocalInit(int) | int staticLocalInit(int) | ir.cpp:1233:16:1233:16 | int b | int b | -| ir.cpp:1233:16:1233:16 | SideEffect | Operand 'SideEffect' is used on instruction 'AliasedUse: b' in function '$@', but is defined on instruction 'Chi: (int)...' in function '$@'. | ir.cpp:1233:16:1233:16 | int b | int b | ir.cpp:1231:5:1231:19 | int staticLocalInit(int) | int staticLocalInit(int) | -| ir.cpp:1233:20:1233:28 | ChiTotal | Operand 'ChiTotal' is used on instruction 'Chi: (int)...' in function '$@', but is defined on instruction 'AliasedDefinition: b' in function '$@'. | ir.cpp:1231:5:1231:19 | int staticLocalInit(int) | int staticLocalInit(int) | ir.cpp:1233:16:1233:16 | int b | int b | -| struct_init.cpp:21:17:21:28 | Left | Operand 'Left' is used on instruction 'PointerAdd: {...}' in function '$@', but is defined on instruction 'VariableAddress: static_infos' in function '$@'. | struct_init.cpp:20:6:20:25 | void declare_static_infos() | void declare_static_infos() | struct_init.cpp:21:17:21:28 | Info[] static_infos | Info[] static_infos | -| struct_init.cpp:21:17:21:28 | Left | Operand 'Left' is used on instruction 'PointerAdd: {...}' in function '$@', but is defined on instruction 'VariableAddress: static_infos' in function '$@'. | struct_init.cpp:20:6:20:25 | void declare_static_infos() | void declare_static_infos() | struct_init.cpp:21:17:21:28 | Info[] static_infos | Info[] static_infos | -| struct_init.cpp:21:17:21:28 | SideEffect | Operand 'SideEffect' is used on instruction 'AliasedUse: static_infos' in function '$@', but is defined on instruction 'Chi: & ...' in function '$@'. | struct_init.cpp:21:17:21:28 | Info[] static_infos | Info[] static_infos | struct_init.cpp:20:6:20:25 | void declare_static_infos() | void declare_static_infos() | -| struct_init.cpp:22:11:22:13 | ChiTotal | Operand 'ChiTotal' is used on instruction 'Chi: array to pointer conversion' in function '$@', but is defined on instruction 'AliasedDefinition: static_infos' in function '$@'. | struct_init.cpp:20:6:20:25 | void declare_static_infos() | void declare_static_infos() | struct_init.cpp:21:17:21:28 | Info[] static_infos | Info[] static_infos | instructionWithoutUniqueBlock containsLoopOfForwardEdges lostReachability diff --git a/cpp/ql/test/library-tests/ir/ir/operand_locations.expected b/cpp/ql/test/library-tests/ir/ir/operand_locations.expected index b76e4a80ba0..ef85dfb1279 100644 --- a/cpp/ql/test/library-tests/ir/ir/operand_locations.expected +++ b/cpp/ql/test/library-tests/ir/ir/operand_locations.expected @@ -5755,15 +5755,15 @@ | ir.cpp:1231:5:1231:19 | SideEffect | ~m1237_2 | | ir.cpp:1231:25:1231:25 | Address | &:r1231_5 | | ir.cpp:1232:16:1232:16 | Address | &:r1232_3 | -| ir.cpp:1232:16:1232:16 | SideEffect | ~m1232_3 | -| ir.cpp:1232:20:1232:20 | ChiPartial | partial:m1232_2 | +| ir.cpp:1232:16:1232:16 | SideEffect | ~m1232_6 | +| ir.cpp:1232:20:1232:20 | ChiPartial | partial:m1232_5 | | ir.cpp:1232:20:1232:20 | ChiTotal | total:m1232_2 | -| ir.cpp:1232:20:1232:20 | StoreValue | r1232_1 | +| ir.cpp:1232:20:1232:20 | StoreValue | r1232_4 | | ir.cpp:1233:16:1233:16 | Address | &:r1233_3 | -| ir.cpp:1233:16:1233:16 | SideEffect | ~m1233_3 | -| ir.cpp:1233:20:1233:28 | ChiPartial | partial:m1233_2 | +| ir.cpp:1233:16:1233:16 | SideEffect | ~m1233_6 | +| ir.cpp:1233:20:1233:28 | ChiPartial | partial:m1233_5 | | ir.cpp:1233:20:1233:28 | ChiTotal | total:m1233_2 | -| ir.cpp:1233:20:1233:28 | StoreValue | r1233_1 | +| ir.cpp:1233:20:1233:28 | StoreValue | r1233_4 | | ir.cpp:1234:16:1234:16 | Address | &:r1234_1 | | ir.cpp:1234:16:1234:16 | Address | &:r1234_1 | | ir.cpp:1234:16:1234:16 | Address | &:r1234_4 | @@ -9043,12 +9043,12 @@ | struct_init.cpp:21:17:21:28 | Left | r21_3 | | struct_init.cpp:21:17:21:28 | Left | r21_3 | | struct_init.cpp:21:17:21:28 | SideEffect | ~m23_10 | -| struct_init.cpp:21:34:24:5 | Right | r21_1 | -| struct_init.cpp:21:34:24:5 | Right | r21_3 | -| struct_init.cpp:21:34:24:5 | Unary | r21_2 | -| struct_init.cpp:21:34:24:5 | Unary | r21_2 | -| struct_init.cpp:21:34:24:5 | Unary | r21_4 | -| struct_init.cpp:21:34:24:5 | Unary | r21_4 | +| struct_init.cpp:21:34:24:5 | Right | r21_4 | +| struct_init.cpp:21:34:24:5 | Right | r21_6 | +| struct_init.cpp:21:34:24:5 | Unary | r21_5 | +| struct_init.cpp:21:34:24:5 | Unary | r21_5 | +| struct_init.cpp:21:34:24:5 | Unary | r21_7 | +| struct_init.cpp:21:34:24:5 | Unary | r21_7 | | struct_init.cpp:22:9:22:25 | Address | &:r22_1 | | struct_init.cpp:22:9:22:25 | Address | &:r22_6 | | struct_init.cpp:22:11:22:13 | ChiPartial | partial:m22_4 | diff --git a/cpp/ql/test/library-tests/ir/ir/raw_consistency.expected b/cpp/ql/test/library-tests/ir/ir/raw_consistency.expected index 0aeac5c8b4b..4f3f9315c01 100644 --- a/cpp/ql/test/library-tests/ir/ir/raw_consistency.expected +++ b/cpp/ql/test/library-tests/ir/ir/raw_consistency.expected @@ -11,10 +11,6 @@ unexplainedLoop unnecessaryPhiInstruction memoryOperandDefinitionIsUnmodeled operandAcrossFunctions -| ir.cpp:1232:16:1232:16 | Address | Operand 'Address' is used on instruction 'Store: 0' in function '$@', but is defined on instruction 'VariableAddress: a' in function '$@'. | ir.cpp:1231:5:1231:19 | int staticLocalInit(int) | int staticLocalInit(int) | ir.cpp:1232:16:1232:16 | int a | int a | -| ir.cpp:1233:16:1233:16 | Address | Operand 'Address' is used on instruction 'Store: (int)...' in function '$@', but is defined on instruction 'VariableAddress: b' in function '$@'. | ir.cpp:1231:5:1231:19 | int staticLocalInit(int) | int staticLocalInit(int) | ir.cpp:1233:16:1233:16 | int b | int b | -| struct_init.cpp:21:17:21:28 | Left | Operand 'Left' is used on instruction 'PointerAdd: {...}' in function '$@', but is defined on instruction 'VariableAddress: static_infos' in function '$@'. | struct_init.cpp:20:6:20:25 | void declare_static_infos() | void declare_static_infos() | struct_init.cpp:21:17:21:28 | Info[] static_infos | Info[] static_infos | -| struct_init.cpp:21:17:21:28 | Left | Operand 'Left' is used on instruction 'PointerAdd: {...}' in function '$@', but is defined on instruction 'VariableAddress: static_infos' in function '$@'. | struct_init.cpp:20:6:20:25 | void declare_static_infos() | void declare_static_infos() | struct_init.cpp:21:17:21:28 | Info[] static_infos | Info[] static_infos | instructionWithoutUniqueBlock containsLoopOfForwardEdges lostReachability diff --git a/cpp/ql/test/library-tests/ir/ir/raw_ir.expected b/cpp/ql/test/library-tests/ir/ir/raw_ir.expected index 2633ff37953..07ffa1082f4 100644 --- a/cpp/ql/test/library-tests/ir/ir/raw_ir.expected +++ b/cpp/ql/test/library-tests/ir/ir/raw_ir.expected @@ -6846,22 +6846,22 @@ ir.cpp: # 1232| v1232_1(void) = EnterFunction : # 1232| mu1232_2(unknown) = AliasedDefinition : # 1232| r1232_3(glval) = VariableAddress[a] : -# 1232| r1232_1(int) = Constant[0] : -# 1232| mu1232_2(int) = Store[a] : &:r1232_3, r1232_1 -# 1232| v1232_4(void) = ReturnVoid : -# 1232| v1232_5(void) = AliasedUse : ~m? -# 1232| v1232_6(void) = ExitFunction : +# 1232| r1232_4(int) = Constant[0] : +# 1232| mu1232_5(int) = Store[a] : &:r1232_3, r1232_4 +# 1232| v1232_6(void) = ReturnVoid : +# 1232| v1232_7(void) = AliasedUse : ~m? +# 1232| v1232_8(void) = ExitFunction : # 1233| int b # 1233| Block 0 # 1233| v1233_1(void) = EnterFunction : # 1233| mu1233_2(unknown) = AliasedDefinition : # 1233| r1233_3(glval) = VariableAddress[b] : -# 1233| r1233_1(int) = Constant[4] : -# 1233| mu1233_2(int) = Store[b] : &:r1233_3, r1233_1 -# 1233| v1233_4(void) = ReturnVoid : -# 1233| v1233_5(void) = AliasedUse : ~m? -# 1233| v1233_6(void) = ExitFunction : +# 1233| r1233_4(int) = Constant[4] : +# 1233| mu1233_5(int) = Store[b] : &:r1233_3, r1233_4 +# 1233| v1233_6(void) = ReturnVoid : +# 1233| v1233_7(void) = AliasedUse : ~m? +# 1233| v1233_8(void) = ExitFunction : # 1240| void staticLocalWithConstructor(char const*) # 1240| Block 0 @@ -10347,28 +10347,28 @@ struct_init.cpp: # 21| v21_1(void) = EnterFunction : # 21| mu21_2(unknown) = AliasedDefinition : # 21| r21_3(glval) = VariableAddress[static_infos] : -# 21| r21_1(int) = Constant[0] : -# 21| r21_2(glval) = PointerAdd[16] : r21_3, r21_1 -# 22| r22_1(glval) = FieldAddress[name] : r21_2 +# 21| r21_4(int) = Constant[0] : +# 21| r21_5(glval) = PointerAdd[16] : r21_3, r21_4 +# 22| r22_1(glval) = FieldAddress[name] : r21_5 # 22| r22_2(glval) = StringConstant["1"] : # 22| r22_3(char *) = Convert : r22_2 # 22| mu22_4(char *) = Store[?] : &:r22_1, r22_3 -# 22| r22_5(glval<..(*)(..)>) = FieldAddress[handler] : r21_2 +# 22| r22_5(glval<..(*)(..)>) = FieldAddress[handler] : r21_5 # 22| r22_6(..(*)(..)) = FunctionAddress[handler1] : # 22| mu22_7(..(*)(..)) = Store[?] : &:r22_5, r22_6 -# 21| r21_3(int) = Constant[1] : -# 21| r21_4(glval) = PointerAdd[16] : r21_3, r21_3 -# 23| r23_1(glval) = FieldAddress[name] : r21_4 +# 21| r21_6(int) = Constant[1] : +# 21| r21_7(glval) = PointerAdd[16] : r21_3, r21_6 +# 23| r23_1(glval) = FieldAddress[name] : r21_7 # 23| r23_2(glval) = StringConstant["2"] : # 23| r23_3(char *) = Convert : r23_2 # 23| mu23_4(char *) = Store[?] : &:r23_1, r23_3 -# 23| r23_5(glval<..(*)(..)>) = FieldAddress[handler] : r21_4 +# 23| r23_5(glval<..(*)(..)>) = FieldAddress[handler] : r21_7 # 23| r23_6(glval<..()(..)>) = FunctionAddress[handler2] : # 23| r23_7(..(*)(..)) = CopyValue : r23_6 # 23| mu23_8(..(*)(..)) = Store[?] : &:r23_5, r23_7 -# 21| v21_4(void) = ReturnVoid : -# 21| v21_5(void) = AliasedUse : ~m? -# 21| v21_6(void) = ExitFunction : +# 21| v21_8(void) = ReturnVoid : +# 21| v21_9(void) = AliasedUse : ~m? +# 21| v21_10(void) = ExitFunction : # 28| void declare_local_infos() # 28| Block 0 diff --git a/cpp/ql/test/library-tests/ir/ir/unaliased_ssa_consistency.expected b/cpp/ql/test/library-tests/ir/ir/unaliased_ssa_consistency.expected index 1238a0a470a..79887fffc1f 100644 --- a/cpp/ql/test/library-tests/ir/ir/unaliased_ssa_consistency.expected +++ b/cpp/ql/test/library-tests/ir/ir/unaliased_ssa_consistency.expected @@ -11,10 +11,6 @@ unexplainedLoop unnecessaryPhiInstruction memoryOperandDefinitionIsUnmodeled operandAcrossFunctions -| ir.cpp:1232:16:1232:16 | Address | Operand 'Address' is used on instruction 'Store: 0' in function '$@', but is defined on instruction 'VariableAddress: a' in function '$@'. | ir.cpp:1231:5:1231:19 | int staticLocalInit(int) | int staticLocalInit(int) | ir.cpp:1232:16:1232:16 | int a | int a | -| ir.cpp:1233:16:1233:16 | Address | Operand 'Address' is used on instruction 'Store: (int)...' in function '$@', but is defined on instruction 'VariableAddress: b' in function '$@'. | ir.cpp:1231:5:1231:19 | int staticLocalInit(int) | int staticLocalInit(int) | ir.cpp:1233:16:1233:16 | int b | int b | -| struct_init.cpp:21:17:21:28 | Left | Operand 'Left' is used on instruction 'PointerAdd: {...}' in function '$@', but is defined on instruction 'VariableAddress: static_infos' in function '$@'. | struct_init.cpp:20:6:20:25 | void declare_static_infos() | void declare_static_infos() | struct_init.cpp:21:17:21:28 | Info[] static_infos | Info[] static_infos | -| struct_init.cpp:21:17:21:28 | Left | Operand 'Left' is used on instruction 'PointerAdd: {...}' in function '$@', but is defined on instruction 'VariableAddress: static_infos' in function '$@'. | struct_init.cpp:20:6:20:25 | void declare_static_infos() | void declare_static_infos() | struct_init.cpp:21:17:21:28 | Info[] static_infos | Info[] static_infos | instructionWithoutUniqueBlock containsLoopOfForwardEdges lostReachability diff --git a/cpp/ql/test/library-tests/ir/ir/unaliased_ssa_consistency_unsound.expected b/cpp/ql/test/library-tests/ir/ir/unaliased_ssa_consistency_unsound.expected index 1238a0a470a..79887fffc1f 100644 --- a/cpp/ql/test/library-tests/ir/ir/unaliased_ssa_consistency_unsound.expected +++ b/cpp/ql/test/library-tests/ir/ir/unaliased_ssa_consistency_unsound.expected @@ -11,10 +11,6 @@ unexplainedLoop unnecessaryPhiInstruction memoryOperandDefinitionIsUnmodeled operandAcrossFunctions -| ir.cpp:1232:16:1232:16 | Address | Operand 'Address' is used on instruction 'Store: 0' in function '$@', but is defined on instruction 'VariableAddress: a' in function '$@'. | ir.cpp:1231:5:1231:19 | int staticLocalInit(int) | int staticLocalInit(int) | ir.cpp:1232:16:1232:16 | int a | int a | -| ir.cpp:1233:16:1233:16 | Address | Operand 'Address' is used on instruction 'Store: (int)...' in function '$@', but is defined on instruction 'VariableAddress: b' in function '$@'. | ir.cpp:1231:5:1231:19 | int staticLocalInit(int) | int staticLocalInit(int) | ir.cpp:1233:16:1233:16 | int b | int b | -| struct_init.cpp:21:17:21:28 | Left | Operand 'Left' is used on instruction 'PointerAdd: {...}' in function '$@', but is defined on instruction 'VariableAddress: static_infos' in function '$@'. | struct_init.cpp:20:6:20:25 | void declare_static_infos() | void declare_static_infos() | struct_init.cpp:21:17:21:28 | Info[] static_infos | Info[] static_infos | -| struct_init.cpp:21:17:21:28 | Left | Operand 'Left' is used on instruction 'PointerAdd: {...}' in function '$@', but is defined on instruction 'VariableAddress: static_infos' in function '$@'. | struct_init.cpp:20:6:20:25 | void declare_static_infos() | void declare_static_infos() | struct_init.cpp:21:17:21:28 | Info[] static_infos | Info[] static_infos | instructionWithoutUniqueBlock containsLoopOfForwardEdges lostReachability