diff --git a/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected b/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected index 022b373ed6b..279abae70a5 100644 --- a/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected +++ b/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected @@ -20574,23 +20574,32 @@ ir.cpp: # 2806| r2806_1(glval) = VariableAddress[b] : # 2806| r2806_2(bool) = Load[b] : &:r2806_1, m2801_12 # 2806| v2806_3(void) = ConditionalBranch : r2806_2 -#-----| False -> Block 2 -#-----| True -> Block 1 +#-----| False -> Block 3 +#-----| True -> Block 2 -# 2807| Block 1 +# 2801| Block 1 +# 2801| m2801_13(unsigned long) = Phi : from 2:m2808_5, from 3:m2811_3 +# 2801| r2801_14(glval) = VariableAddress[#return] : +# 2801| v2801_15(void) = ReturnValue : &:r2801_14, m2801_13 +# 2801| v2801_16(void) = AliasedUse : m2801_3 +# 2801| v2801_17(void) = ExitFunction : + +# 2807| Block 2 # 2807| r2807_1(glval) = VariableAddress[tmp] : # 2807| m2807_2(long[][][]) = Uninitialized[tmp] : &:r2807_1 # 2807| v2807_3(void) = NoOp : # 2808| r2808_1(glval) = VariableAddress[#return] : +# 2808| r2808_2(unsigned long) = Constant : +# 2808| r2808_3(unsigned long) = Mul : r2808_2, r2802_2 +# 2808| r2808_4(unsigned long) = Mul : r2808_3, r2802_4 +# 2808| m2808_5(unsigned long) = Store[#return] : &:r2808_1, r2808_4 +#-----| Goto -> Block 1 -# 2811| Block 2 -# 2811| r2811_1(glval) = VariableAddress[#return] : -# 2811| r2811_2(unsigned long) = Constant[0] : -# 2811| m2811_3(unsigned long) = Store[#return] : &:r2811_1, r2811_2 -# 2801| r2801_13(glval) = VariableAddress[#return] : -# 2801| v2801_14(void) = ReturnValue : &:r2801_13, m2811_3 -# 2801| v2801_15(void) = AliasedUse : m2801_3 -# 2801| v2801_16(void) = ExitFunction : +# 2811| Block 3 +# 2811| r2811_1(glval) = VariableAddress[#return] : +# 2811| r2811_2(unsigned long) = Constant[0] : +# 2811| m2811_3(unsigned long) = Store[#return] : &:r2811_1, r2811_2 +#-----| Goto -> Block 1 ir23.cpp: # 1| bool consteval_1() 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 f44d68efc86..b83d9ea47e3 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 @@ -6,7 +6,6 @@ missingOperandType duplicateChiOperand sideEffectWithoutPrimary instructionWithoutSuccessor -| ir.cpp:2808:5:2808:26 | VariableAddress: return ... | Instruction 'VariableAddress: return ...' has no successors in function '$@'. | ir.cpp:2801:8:2801:23 | size_t vla_sizeof_test3(int, size_t, char, bool) | size_t vla_sizeof_test3(int, size_t, char, bool) | ambiguousSuccessors unexplainedLoop unnecessaryPhiInstruction 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 f44d68efc86..b83d9ea47e3 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 @@ -6,7 +6,6 @@ missingOperandType duplicateChiOperand sideEffectWithoutPrimary instructionWithoutSuccessor -| ir.cpp:2808:5:2808:26 | VariableAddress: return ... | Instruction 'VariableAddress: return ...' has no successors in function '$@'. | ir.cpp:2801:8:2801:23 | size_t vla_sizeof_test3(int, size_t, char, bool) | size_t vla_sizeof_test3(int, size_t, char, bool) | ambiguousSuccessors unexplainedLoop unnecessaryPhiInstruction 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 b7361a165a5..e30106d3520 100644 --- a/cpp/ql/test/library-tests/ir/ir/raw_consistency.expected +++ b/cpp/ql/test/library-tests/ir/ir/raw_consistency.expected @@ -1,5 +1,4 @@ missingOperand -| ir.cpp:2808:12:2808:25 | Store: sizeof() | Instruction 'Store' is missing an expected operand with tag 'StoreValue' in function '$@'. | ir.cpp:2801:8:2801:23 | size_t vla_sizeof_test3(int, size_t, char, bool) | size_t vla_sizeof_test3(int, size_t, char, bool) | unexpectedOperand duplicateOperand missingPhiOperand @@ -7,7 +6,6 @@ missingOperandType duplicateChiOperand sideEffectWithoutPrimary instructionWithoutSuccessor -| ir.cpp:2808:5:2808:26 | VariableAddress: return ... | Instruction 'VariableAddress: return ...' has no successors in function '$@'. | ir.cpp:2801:8:2801:23 | size_t vla_sizeof_test3(int, size_t, char, bool) | size_t vla_sizeof_test3(int, size_t, char, bool) | ambiguousSuccessors unexplainedLoop unnecessaryPhiInstruction @@ -23,7 +21,6 @@ lostReachability backEdgeCountMismatch useNotDominatedByDefinition | ir.cpp:1535:8:1535:8 | Unary | Operand 'Unary' is not dominated by its definition in function '$@'. | ir.cpp:1535:8:1535:8 | void StructuredBindingDataMemberStruct::StructuredBindingDataMemberStruct() | void StructuredBindingDataMemberStruct::StructuredBindingDataMemberStruct() | -| ir.cpp:2808:5:2808:26 | Address | Operand 'Address' is not dominated by its definition in function '$@'. | ir.cpp:2801:8:2801:23 | size_t vla_sizeof_test3(int, size_t, char, bool) | size_t vla_sizeof_test3(int, size_t, char, bool) | switchInstructionWithoutDefaultEdge notMarkedAsConflated wronglyMarkedAsConflated 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 1b923a0662b..662d45acaa5 100644 --- a/cpp/ql/test/library-tests/ir/ir/raw_ir.expected +++ b/cpp/ql/test/library-tests/ir/ir/raw_ir.expected @@ -18718,7 +18718,7 @@ ir.cpp: # 2806| r2806_1(glval) = VariableAddress[b] : # 2806| r2806_2(bool) = Load[b] : &:r2806_1, ~m? # 2806| v2806_3(void) = ConditionalBranch : r2806_2 -#-----| False -> Block 4 +#-----| False -> Block 3 #-----| True -> Block 2 # 2801| Block 1 @@ -18732,12 +18732,13 @@ ir.cpp: # 2807| mu2807_2(long[][][]) = Uninitialized[tmp] : &:r2807_1 # 2807| v2807_3(void) = NoOp : # 2808| r2808_1(glval) = VariableAddress[#return] : - -# 2808| Block 3 -# 2808| mu2808_2(unsigned long) = Store[#return] : &:r2808_1 +# 2808| r2808_2(unsigned long) = Constant : +# 2808| r2808_3(unsigned long) = Mul : r2808_2, r2802_2 +# 2808| r2808_4(unsigned long) = Mul : r2808_3, r2802_4 +# 2808| mu2808_5(unsigned long) = Store[#return] : &:r2808_1, r2808_4 #-----| Goto -> Block 1 -# 2811| Block 4 +# 2811| Block 3 # 2811| r2811_1(glval) = VariableAddress[#return] : # 2811| r2811_2(unsigned long) = Constant[0] : # 2811| mu2811_3(unsigned long) = Store[#return] : &:r2811_1, r2811_2 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 f44d68efc86..b83d9ea47e3 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 @@ -6,7 +6,6 @@ missingOperandType duplicateChiOperand sideEffectWithoutPrimary instructionWithoutSuccessor -| ir.cpp:2808:5:2808:26 | VariableAddress: return ... | Instruction 'VariableAddress: return ...' has no successors in function '$@'. | ir.cpp:2801:8:2801:23 | size_t vla_sizeof_test3(int, size_t, char, bool) | size_t vla_sizeof_test3(int, size_t, char, bool) | ambiguousSuccessors unexplainedLoop unnecessaryPhiInstruction 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 f44d68efc86..b83d9ea47e3 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 @@ -6,7 +6,6 @@ missingOperandType duplicateChiOperand sideEffectWithoutPrimary instructionWithoutSuccessor -| ir.cpp:2808:5:2808:26 | VariableAddress: return ... | Instruction 'VariableAddress: return ...' has no successors in function '$@'. | ir.cpp:2801:8:2801:23 | size_t vla_sizeof_test3(int, size_t, char, bool) | size_t vla_sizeof_test3(int, size_t, char, bool) | ambiguousSuccessors unexplainedLoop unnecessaryPhiInstruction