C++: Accept test changes.

This commit is contained in:
Mathias Vorreiter Pedersen
2024-04-04 14:51:16 +01:00
parent 73602dca92
commit 0b7070feec
8 changed files with 229 additions and 519 deletions

View File

@@ -1157,11 +1157,11 @@ destructors_for_temps.cpp:
# 51| r51_2(glval<bool>) = VariableAddress[b] :
# 51| r51_3(bool) = Load[b] : &:r51_2, m49_6
# 51| v51_4(void) = ConditionalBranch : r51_3
#-----| False -> Block 6
#-----| True -> Block 5
#-----| False -> Block 4
#-----| True -> Block 3
# 49| Block 1
# 49| m49_7(unknown) = Phi : from 2:~m51_28, from 3:~m52_6
# 49| m49_7(unknown) = Phi : from 2:~m51_26, from 4:~m52_6
# 49| v49_8(void) = AliasedUse : ~m49_7
# 49| v49_9(void) = ExitFunction :
@@ -1170,85 +1170,59 @@ destructors_for_temps.cpp:
#-----| Goto -> Block 1
# 51| Block 3
# 51| m51_5(ClassWithDestructor2) = Store[#temp51:5] : &:r51_1, r51_6
# 52| v52_1(void) = NoOp :
# 52| r52_2(glval<ClassWithDestructor2>) = VariableAddress[c] :
# 52| r52_3(glval<unknown>) = FunctionAddress[~ClassWithDestructor2] :
# 52| v52_4(void) = Call[~ClassWithDestructor2] : func:r52_3, this:r52_2
# 52| m52_5(unknown) = ^CallSideEffect : ~m51_52, ~m51_64
# 52| m52_6(unknown) = Chi : total:m51_52, total:m51_64, partial:m52_5
# 52| v52_7(void) = ^IndirectReadSideEffect[-1] : &:r52_2, m50_8
# 52| m52_8(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r52_2
# 52| m52_9(ClassWithDestructor2) = Chi : total:m50_8, partial:m52_8
# 49| v49_11(void) = ReturnVoid :
#-----| Goto -> Block 1
# 51| Block 4
# 51| r51_6(ClassWithDestructor2) = Load[#temp51:5] : &:r51_43, m51_42
#-----| Goto (back edge) -> Block 8
#-----| Goto (back edge) -> Block 8
# 51| Block 5
# 51| r51_7(glval<ClassWithConstructor>) = VariableAddress[#throw51:9] :
# 51| m51_8(ClassWithConstructor) = Uninitialized[#throw51:9] : &:r51_7
# 51| r51_9(glval<unknown>) = FunctionAddress[ClassWithConstructor] :
# 51| r51_10(char) = Constant[120] :
# 51| r51_11(glval<ClassWithDestructor2>) = VariableAddress[#temp51:41] :
# 51| m51_12(ClassWithDestructor2) = Uninitialized[#temp51:41] : &:r51_11
# 51| r51_13(glval<unknown>) = FunctionAddress[ClassWithDestructor2] :
# 51| v51_14(void) = Call[ClassWithDestructor2] : func:r51_13, this:r51_11
# 51| m51_15(unknown) = ^CallSideEffect : ~m50_6
# 51| m51_16(unknown) = Chi : total:m50_6, partial:m51_15
# 51| m51_17(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r51_11
# 51| m51_18(ClassWithDestructor2) = Chi : total:m51_12, partial:m51_17
# 51| r51_19(glval<unknown>) = FunctionAddress[get_x] :
# 51| r51_20(char) = Call[get_x] : func:r51_19, this:r51_11
# 51| m51_21(unknown) = ^CallSideEffect : ~m51_16
# 51| m51_22(unknown) = Chi : total:m51_16, partial:m51_21
# 51| v51_23(void) = ^IndirectReadSideEffect[-1] : &:r51_11, m51_18
# 51| m51_24(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r51_11
# 51| m51_25(ClassWithDestructor2) = Chi : total:m51_18, partial:m51_24
# 51| v51_26(void) = Call[ClassWithConstructor] : func:r51_9, this:r51_7, 0:r51_10, 1:r51_20
# 51| m51_27(unknown) = ^CallSideEffect : ~m51_22
# 51| m51_28(unknown) = Chi : total:m51_22, partial:m51_27
# 51| m51_29(ClassWithConstructor) = ^IndirectMayWriteSideEffect[-1] : &:r51_7
# 51| m51_30(ClassWithConstructor) = Chi : total:m51_8, partial:m51_29
# 51| v51_31(void) = ThrowValue : &:r51_7, m51_30
# 51| r51_5(glval<ClassWithConstructor>) = VariableAddress[#throw51:9] :
# 51| m51_6(ClassWithConstructor) = Uninitialized[#throw51:9] : &:r51_5
# 51| r51_7(glval<unknown>) = FunctionAddress[ClassWithConstructor] :
# 51| r51_8(char) = Constant[120] :
# 51| r51_9(glval<ClassWithDestructor2>) = VariableAddress[#temp51:41] :
# 51| m51_10(ClassWithDestructor2) = Uninitialized[#temp51:41] : &:r51_9
# 51| r51_11(glval<unknown>) = FunctionAddress[ClassWithDestructor2] :
# 51| v51_12(void) = Call[ClassWithDestructor2] : func:r51_11, this:r51_9
# 51| m51_13(unknown) = ^CallSideEffect : ~m50_6
# 51| m51_14(unknown) = Chi : total:m50_6, partial:m51_13
# 51| m51_15(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r51_9
# 51| m51_16(ClassWithDestructor2) = Chi : total:m51_10, partial:m51_15
# 51| r51_17(glval<unknown>) = FunctionAddress[get_x] :
# 51| r51_18(char) = Call[get_x] : func:r51_17, this:r51_9
# 51| m51_19(unknown) = ^CallSideEffect : ~m51_14
# 51| m51_20(unknown) = Chi : total:m51_14, partial:m51_19
# 51| v51_21(void) = ^IndirectReadSideEffect[-1] : &:r51_9, m51_16
# 51| m51_22(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r51_9
# 51| m51_23(ClassWithDestructor2) = Chi : total:m51_16, partial:m51_22
# 51| v51_24(void) = Call[ClassWithConstructor] : func:r51_7, this:r51_5, 0:r51_8, 1:r51_18
# 51| m51_25(unknown) = ^CallSideEffect : ~m51_20
# 51| m51_26(unknown) = Chi : total:m51_20, partial:m51_25
# 51| m51_27(ClassWithConstructor) = ^IndirectMayWriteSideEffect[-1] : &:r51_5
# 51| m51_28(ClassWithConstructor) = Chi : total:m51_6, partial:m51_27
# 51| v51_29(void) = ThrowValue : &:r51_5, m51_28
#-----| Exception -> Block 2
# 51| Block 6
# 51| r51_32(glval<ClassWithDestructor2>) = VariableAddress[#temp51:75] :
# 51| m51_33(ClassWithDestructor2) = Uninitialized[#temp51:75] : &:r51_32
# 51| r51_34(glval<unknown>) = FunctionAddress[ClassWithDestructor2] :
# 51| v51_35(void) = Call[ClassWithDestructor2] : func:r51_34, this:r51_32
# 51| m51_36(unknown) = ^CallSideEffect : ~m50_6
# 51| m51_37(unknown) = Chi : total:m50_6, partial:m51_36
# 51| m51_38(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r51_32
# 51| m51_39(ClassWithDestructor2) = Chi : total:m51_33, partial:m51_38
# 51| r51_40(ClassWithDestructor2) = Load[#temp51:75] : &:r51_32, m51_39
# 51| r51_41(glval<ClassWithDestructor2>) = VariableAddress[#temp51:5] :
# 51| m51_42(ClassWithDestructor2) = Store[#temp51:5] : &:r51_41, r51_40
# 51| r51_43(glval<ClassWithDestructor2>) = VariableAddress[#temp51:5] :
#-----| Goto -> Block 8
#-----| Goto -> Block 8
# 51| Block 8
# 51| m51_58(ClassWithDestructor2) = Phi : from 4:m51_55, from 4:m51_67
# 51| m51_59(unknown) = Phi : from 4:~m51_52, from 4:~m51_64, from 6:~m51_37
# 51| r51_60(glval<ClassWithDestructor2>) = CopyValue : r51_1
# 51| r51_61(glval<unknown>) = FunctionAddress[~ClassWithDestructor2] :
# 51| v51_62(void) = Call[~ClassWithDestructor2] : func:r51_49, func:r51_61, this:r51_48, this:r51_60
# 51| m51_63(unknown) = ^CallSideEffect : ~m51_45, ~m51_47, ~m51_57, ~m51_59
# 51| m51_64(unknown) = Chi : total:m51_45, total:m51_47, total:m51_57, total:m51_59, partial:m51_51, partial:m51_63
# 51| v51_65(void) = ^IndirectReadSideEffect[-1] : &:r51_48, &:r51_60, m51_44, m51_46, m51_56, m51_58
# 51| m51_66(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r51_48, &:r51_60
# 51| m51_67(ClassWithDestructor2) = Chi : total:m51_44, total:m51_46, total:m51_56, total:m51_58, partial:m51_54, partial:m51_66
#-----| Goto (back edge) -> Block 4
#-----| Goto (back edge) -> Block 3
# 51| Block 8
#-----| Goto (back edge) -> Block 4
#-----| Goto (back edge) -> Block 3
# 51| Block 4
# 51| r51_30(glval<ClassWithDestructor2>) = VariableAddress[#temp51:75] :
# 51| m51_31(ClassWithDestructor2) = Uninitialized[#temp51:75] : &:r51_30
# 51| r51_32(glval<unknown>) = FunctionAddress[ClassWithDestructor2] :
# 51| v51_33(void) = Call[ClassWithDestructor2] : func:r51_32, this:r51_30
# 51| m51_34(unknown) = ^CallSideEffect : ~m50_6
# 51| m51_35(unknown) = Chi : total:m50_6, partial:m51_34
# 51| m51_36(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r51_30
# 51| m51_37(ClassWithDestructor2) = Chi : total:m51_31, partial:m51_36
# 51| r51_38(ClassWithDestructor2) = Load[#temp51:75] : &:r51_30, m51_37
# 51| r51_39(glval<ClassWithDestructor2>) = VariableAddress[#temp51:5] :
# 51| m51_40(ClassWithDestructor2) = Store[#temp51:5] : &:r51_39, r51_38
# 51| r51_41(glval<ClassWithDestructor2>) = VariableAddress[#temp51:5] :
# 51| r51_42(ClassWithDestructor2) = Load[#temp51:5] : &:r51_41, m51_40
# 51| m51_43(ClassWithDestructor2) = Store[#temp51:5] : &:r51_1, r51_42
# 52| v52_1(void) = NoOp :
# 52| r52_2(glval<ClassWithDestructor2>) = VariableAddress[c] :
# 52| r52_3(glval<unknown>) = FunctionAddress[~ClassWithDestructor2] :
# 52| v52_4(void) = Call[~ClassWithDestructor2] : func:r52_3, this:r52_2
# 52| m52_5(unknown) = ^CallSideEffect : ~m51_35
# 52| m52_6(unknown) = Chi : total:m51_35, partial:m52_5
# 52| v52_7(void) = ^IndirectReadSideEffect[-1] : &:r52_2, m50_8
# 52| m52_8(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r52_2
# 52| m52_9(ClassWithDestructor2) = Chi : total:m50_8, partial:m52_8
# 49| v49_11(void) = ReturnVoid :
#-----| Goto -> Block 1
# 54| void temp_test8(bool)
# 54| Block 0
@@ -1262,11 +1236,11 @@ destructors_for_temps.cpp:
# 55| r55_2(glval<bool>) = VariableAddress[b] :
# 55| r55_3(bool) = Load[b] : &:r55_2, m54_6
# 55| v55_4(void) = ConditionalBranch : r55_3
#-----| False -> Block 6
#-----| True -> Block 5
#-----| False -> Block 4
#-----| True -> Block 3
# 54| Block 1
# 54| m54_7(unknown) = Phi : from 2:~m55_28, from 3:~m55_52, from 3:~m55_64
# 54| m54_7(unknown) = Phi : from 2:~m55_26, from 4:~m55_35
# 54| v54_8(void) = AliasedUse : ~m54_7
# 54| v54_9(void) = ExitFunction :
@@ -1275,77 +1249,51 @@ destructors_for_temps.cpp:
#-----| Goto -> Block 1
# 55| Block 3
# 55| m55_5(ClassWithDestructor2) = Store[#temp55:5] : &:r55_1, r55_6
# 56| v56_1(void) = NoOp :
# 54| v54_11(void) = ReturnVoid :
#-----| Goto -> Block 1
# 55| Block 4
# 55| r55_6(ClassWithDestructor2) = Load[#temp55:5] : &:r55_43, m55_42
#-----| Goto (back edge) -> Block 8
#-----| Goto (back edge) -> Block 8
# 55| Block 5
# 55| r55_7(glval<ClassWithConstructor>) = VariableAddress[#throw55:9] :
# 55| m55_8(ClassWithConstructor) = Uninitialized[#throw55:9] : &:r55_7
# 55| r55_9(glval<unknown>) = FunctionAddress[ClassWithConstructor] :
# 55| r55_10(char) = Constant[120] :
# 55| r55_11(glval<ClassWithDestructor2>) = VariableAddress[#temp55:41] :
# 55| m55_12(ClassWithDestructor2) = Uninitialized[#temp55:41] : &:r55_11
# 55| r55_13(glval<unknown>) = FunctionAddress[ClassWithDestructor2] :
# 55| v55_14(void) = Call[ClassWithDestructor2] : func:r55_13, this:r55_11
# 55| m55_15(unknown) = ^CallSideEffect : ~m54_4
# 55| m55_16(unknown) = Chi : total:m54_4, partial:m55_15
# 55| m55_17(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r55_11
# 55| m55_18(ClassWithDestructor2) = Chi : total:m55_12, partial:m55_17
# 55| r55_19(glval<unknown>) = FunctionAddress[get_x] :
# 55| r55_20(char) = Call[get_x] : func:r55_19, this:r55_11
# 55| m55_21(unknown) = ^CallSideEffect : ~m55_16
# 55| m55_22(unknown) = Chi : total:m55_16, partial:m55_21
# 55| v55_23(void) = ^IndirectReadSideEffect[-1] : &:r55_11, m55_18
# 55| m55_24(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r55_11
# 55| m55_25(ClassWithDestructor2) = Chi : total:m55_18, partial:m55_24
# 55| v55_26(void) = Call[ClassWithConstructor] : func:r55_9, this:r55_7, 0:r55_10, 1:r55_20
# 55| m55_27(unknown) = ^CallSideEffect : ~m55_22
# 55| m55_28(unknown) = Chi : total:m55_22, partial:m55_27
# 55| m55_29(ClassWithConstructor) = ^IndirectMayWriteSideEffect[-1] : &:r55_7
# 55| m55_30(ClassWithConstructor) = Chi : total:m55_8, partial:m55_29
# 55| v55_31(void) = ThrowValue : &:r55_7, m55_30
# 55| r55_5(glval<ClassWithConstructor>) = VariableAddress[#throw55:9] :
# 55| m55_6(ClassWithConstructor) = Uninitialized[#throw55:9] : &:r55_5
# 55| r55_7(glval<unknown>) = FunctionAddress[ClassWithConstructor] :
# 55| r55_8(char) = Constant[120] :
# 55| r55_9(glval<ClassWithDestructor2>) = VariableAddress[#temp55:41] :
# 55| m55_10(ClassWithDestructor2) = Uninitialized[#temp55:41] : &:r55_9
# 55| r55_11(glval<unknown>) = FunctionAddress[ClassWithDestructor2] :
# 55| v55_12(void) = Call[ClassWithDestructor2] : func:r55_11, this:r55_9
# 55| m55_13(unknown) = ^CallSideEffect : ~m54_4
# 55| m55_14(unknown) = Chi : total:m54_4, partial:m55_13
# 55| m55_15(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r55_9
# 55| m55_16(ClassWithDestructor2) = Chi : total:m55_10, partial:m55_15
# 55| r55_17(glval<unknown>) = FunctionAddress[get_x] :
# 55| r55_18(char) = Call[get_x] : func:r55_17, this:r55_9
# 55| m55_19(unknown) = ^CallSideEffect : ~m55_14
# 55| m55_20(unknown) = Chi : total:m55_14, partial:m55_19
# 55| v55_21(void) = ^IndirectReadSideEffect[-1] : &:r55_9, m55_16
# 55| m55_22(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r55_9
# 55| m55_23(ClassWithDestructor2) = Chi : total:m55_16, partial:m55_22
# 55| v55_24(void) = Call[ClassWithConstructor] : func:r55_7, this:r55_5, 0:r55_8, 1:r55_18
# 55| m55_25(unknown) = ^CallSideEffect : ~m55_20
# 55| m55_26(unknown) = Chi : total:m55_20, partial:m55_25
# 55| m55_27(ClassWithConstructor) = ^IndirectMayWriteSideEffect[-1] : &:r55_5
# 55| m55_28(ClassWithConstructor) = Chi : total:m55_6, partial:m55_27
# 55| v55_29(void) = ThrowValue : &:r55_5, m55_28
#-----| Exception -> Block 2
# 55| Block 6
# 55| r55_32(glval<ClassWithDestructor2>) = VariableAddress[#temp55:75] :
# 55| m55_33(ClassWithDestructor2) = Uninitialized[#temp55:75] : &:r55_32
# 55| r55_34(glval<unknown>) = FunctionAddress[ClassWithDestructor2] :
# 55| v55_35(void) = Call[ClassWithDestructor2] : func:r55_34, this:r55_32
# 55| m55_36(unknown) = ^CallSideEffect : ~m54_4
# 55| m55_37(unknown) = Chi : total:m54_4, partial:m55_36
# 55| m55_38(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r55_32
# 55| m55_39(ClassWithDestructor2) = Chi : total:m55_33, partial:m55_38
# 55| r55_40(ClassWithDestructor2) = Load[#temp55:75] : &:r55_32, m55_39
# 55| Block 4
# 55| r55_30(glval<ClassWithDestructor2>) = VariableAddress[#temp55:75] :
# 55| m55_31(ClassWithDestructor2) = Uninitialized[#temp55:75] : &:r55_30
# 55| r55_32(glval<unknown>) = FunctionAddress[ClassWithDestructor2] :
# 55| v55_33(void) = Call[ClassWithDestructor2] : func:r55_32, this:r55_30
# 55| m55_34(unknown) = ^CallSideEffect : ~m54_4
# 55| m55_35(unknown) = Chi : total:m54_4, partial:m55_34
# 55| m55_36(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r55_30
# 55| m55_37(ClassWithDestructor2) = Chi : total:m55_31, partial:m55_36
# 55| r55_38(ClassWithDestructor2) = Load[#temp55:75] : &:r55_30, m55_37
# 55| r55_39(glval<ClassWithDestructor2>) = VariableAddress[#temp55:5] :
# 55| m55_40(ClassWithDestructor2) = Store[#temp55:5] : &:r55_39, r55_38
# 55| r55_41(glval<ClassWithDestructor2>) = VariableAddress[#temp55:5] :
# 55| m55_42(ClassWithDestructor2) = Store[#temp55:5] : &:r55_41, r55_40
# 55| r55_43(glval<ClassWithDestructor2>) = VariableAddress[#temp55:5] :
#-----| Goto -> Block 8
#-----| Goto -> Block 8
# 55| Block 8
# 55| m55_58(ClassWithDestructor2) = Phi : from 4:m55_55, from 4:m55_67
# 55| m55_59(unknown) = Phi : from 4:~m55_52, from 4:~m55_64, from 6:~m55_37
# 55| r55_60(glval<ClassWithDestructor2>) = CopyValue : r55_1
# 55| r55_61(glval<unknown>) = FunctionAddress[~ClassWithDestructor2] :
# 55| v55_62(void) = Call[~ClassWithDestructor2] : func:r55_49, func:r55_61, this:r55_48, this:r55_60
# 55| m55_63(unknown) = ^CallSideEffect : ~m55_45, ~m55_47, ~m55_57, ~m55_59
# 55| m55_64(unknown) = Chi : total:m55_45, total:m55_47, total:m55_57, total:m55_59, partial:m55_51, partial:m55_63
# 55| v55_65(void) = ^IndirectReadSideEffect[-1] : &:r55_48, &:r55_60, m55_44, m55_46, m55_56, m55_58
# 55| m55_66(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r55_48, &:r55_60
# 55| m55_67(ClassWithDestructor2) = Chi : total:m55_44, total:m55_46, total:m55_56, total:m55_58, partial:m55_54, partial:m55_66
#-----| Goto (back edge) -> Block 4
#-----| Goto (back edge) -> Block 3
# 55| Block 8
#-----| Goto (back edge) -> Block 4
#-----| Goto (back edge) -> Block 3
# 55| r55_42(ClassWithDestructor2) = Load[#temp55:5] : &:r55_41, m55_40
# 55| m55_43(ClassWithDestructor2) = Store[#temp55:5] : &:r55_1, r55_42
# 56| v56_1(void) = NoOp :
# 54| v54_11(void) = ReturnVoid :
#-----| Goto -> Block 1
# 58| void temp_test8_simple(bool)
# 58| Block 0

View File

@@ -7,29 +7,7 @@ duplicateChiOperand
sideEffectWithoutPrimary
instructionWithoutSuccessor
ambiguousSuccessors
| destructors_for_temps.cpp:51:5:51:96 | Chi: reuse of temporary object | Instruction 'Chi: reuse of temporary object' has 2 successors of kind 'Goto' in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:55:5:55:96 | Chi: reuse of temporary object | Instruction 'Chi: reuse of temporary object' has 2 successors of kind 'Goto' in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
unexplainedLoop
| destructors_for_temps.cpp:51:5:51:5 | Load: ... ? ... : ... | Instruction 'Load: ... ? ... : ...' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:51:5:51:96 | Call: call to ~ClassWithDestructor2 | Instruction 'Call: call to ~ClassWithDestructor2' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:51:5:51:96 | CallSideEffect: call to ~ClassWithDestructor2 | Instruction 'CallSideEffect: call to ~ClassWithDestructor2' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:51:5:51:96 | Chi: call to ~ClassWithDestructor2 | Instruction 'Chi: call to ~ClassWithDestructor2' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:51:5:51:96 | Chi: reuse of temporary object | Instruction 'Chi: reuse of temporary object' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:51:5:51:96 | CopyValue: reuse of temporary object | Instruction 'CopyValue: reuse of temporary object' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:51:5:51:96 | FunctionAddress: call to ~ClassWithDestructor2 | Instruction 'FunctionAddress: call to ~ClassWithDestructor2' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:51:5:51:96 | IndirectMayWriteSideEffect: reuse of temporary object | Instruction 'IndirectMayWriteSideEffect: reuse of temporary object' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:51:5:51:96 | IndirectReadSideEffect: reuse of temporary object | Instruction 'IndirectReadSideEffect: reuse of temporary object' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:51:5:51:96 | Phi: reuse of temporary object | Instruction 'Phi: reuse of temporary object' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:55:5:55:5 | Load: ... ? ... : ... | Instruction 'Load: ... ? ... : ...' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
| destructors_for_temps.cpp:55:5:55:96 | Call: call to ~ClassWithDestructor2 | Instruction 'Call: call to ~ClassWithDestructor2' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
| destructors_for_temps.cpp:55:5:55:96 | CallSideEffect: call to ~ClassWithDestructor2 | Instruction 'CallSideEffect: call to ~ClassWithDestructor2' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
| destructors_for_temps.cpp:55:5:55:96 | Chi: call to ~ClassWithDestructor2 | Instruction 'Chi: call to ~ClassWithDestructor2' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
| destructors_for_temps.cpp:55:5:55:96 | Chi: reuse of temporary object | Instruction 'Chi: reuse of temporary object' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
| destructors_for_temps.cpp:55:5:55:96 | CopyValue: reuse of temporary object | Instruction 'CopyValue: reuse of temporary object' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
| destructors_for_temps.cpp:55:5:55:96 | FunctionAddress: call to ~ClassWithDestructor2 | Instruction 'FunctionAddress: call to ~ClassWithDestructor2' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
| destructors_for_temps.cpp:55:5:55:96 | IndirectMayWriteSideEffect: reuse of temporary object | Instruction 'IndirectMayWriteSideEffect: reuse of temporary object' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
| destructors_for_temps.cpp:55:5:55:96 | IndirectReadSideEffect: reuse of temporary object | Instruction 'IndirectReadSideEffect: reuse of temporary object' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
| destructors_for_temps.cpp:55:5:55:96 | Phi: reuse of temporary object | Instruction 'Phi: reuse of temporary object' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
unnecessaryPhiInstruction
memoryOperandDefinitionIsUnmodeled
operandAcrossFunctions
@@ -40,14 +18,8 @@ containsLoopOfForwardEdges
missingIRType
multipleIRTypes
lostReachability
| destructors_for_temps.cpp:51:5:51:5 | Load: ... ? ... : ... | Block 'Load: ... ? ... : ...' is not reachable by traversing only forward edges in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:51:5:51:5 | Store: ... ? ... : ... | Block 'Store: ... ? ... : ...' is not reachable by traversing only forward edges in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:55:5:55:5 | Load: ... ? ... : ... | Block 'Load: ... ? ... : ...' is not reachable by traversing only forward edges in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
| destructors_for_temps.cpp:55:5:55:5 | Store: ... ? ... : ... | Block 'Store: ... ? ... : ...' is not reachable by traversing only forward edges in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
backEdgeCountMismatch
useNotDominatedByDefinition
| destructors_for_temps.cpp:51:5:51:5 | StoreValue | Operand 'StoreValue' is not dominated by its definition in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:55:5:55:5 | StoreValue | Operand 'StoreValue' is not dominated by its definition in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
switchInstructionWithoutDefaultEdge
notMarkedAsConflated
wronglyMarkedAsConflated

View File

@@ -2,8 +2,6 @@ missingOperand
unexpectedOperand
duplicateOperand
missingPhiOperand
| destructors_for_temps.cpp:51:5:51:96 | Phi: reuse of temporary object | Instruction 'Phi: reuse of temporary object' is missing an operand for predecessor block 'VariableAddress: temporary object' in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:55:5:55:96 | Phi: reuse of temporary object | Instruction 'Phi: reuse of temporary object' is missing an operand for predecessor block 'VariableAddress: temporary object' in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
missingOperandType
| destructors_for_temps.cpp:39:3:39:53 | ChiTotal | Operand 'ChiTotal' of instruction 'Chi' is missing a type in function '$@'. | destructors_for_temps.cpp:38:6:38:15 | void temp_test5(bool) | void temp_test5(bool) |
| ir.cpp:1425:5:1425:30 | ChiTotal | Operand 'ChiTotal' of instruction 'Chi' is missing a type in function '$@'. | ir.cpp:1414:6:1414:21 | void temporary_string() | void temporary_string() |
@@ -12,31 +10,7 @@ duplicateChiOperand
sideEffectWithoutPrimary
instructionWithoutSuccessor
ambiguousSuccessors
| destructors_for_temps.cpp:51:5:51:96 | Chi: reuse of temporary object | Instruction 'Chi: reuse of temporary object' has 2 successors of kind 'Goto' in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:55:5:55:96 | Chi: reuse of temporary object | Instruction 'Chi: reuse of temporary object' has 2 successors of kind 'Goto' in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
unexplainedLoop
| destructors_for_temps.cpp:51:5:51:5 | Load: ... ? ... : ... | Instruction 'Load: ... ? ... : ...' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:51:5:51:96 | Call: call to ~ClassWithDestructor2 | Instruction 'Call: call to ~ClassWithDestructor2' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:51:5:51:96 | CallSideEffect: call to ~ClassWithDestructor2 | Instruction 'CallSideEffect: call to ~ClassWithDestructor2' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:51:5:51:96 | Chi: call to ~ClassWithDestructor2 | Instruction 'Chi: call to ~ClassWithDestructor2' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:51:5:51:96 | Chi: reuse of temporary object | Instruction 'Chi: reuse of temporary object' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:51:5:51:96 | CopyValue: reuse of temporary object | Instruction 'CopyValue: reuse of temporary object' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:51:5:51:96 | FunctionAddress: call to ~ClassWithDestructor2 | Instruction 'FunctionAddress: call to ~ClassWithDestructor2' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:51:5:51:96 | IndirectMayWriteSideEffect: reuse of temporary object | Instruction 'IndirectMayWriteSideEffect: reuse of temporary object' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:51:5:51:96 | IndirectReadSideEffect: reuse of temporary object | Instruction 'IndirectReadSideEffect: reuse of temporary object' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:51:5:51:96 | Phi: reuse of temporary object | Instruction 'Phi: reuse of temporary object' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:51:5:51:96 | Phi: reuse of temporary object | Instruction 'Phi: reuse of temporary object' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:55:5:55:5 | Load: ... ? ... : ... | Instruction 'Load: ... ? ... : ...' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
| destructors_for_temps.cpp:55:5:55:96 | Call: call to ~ClassWithDestructor2 | Instruction 'Call: call to ~ClassWithDestructor2' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
| destructors_for_temps.cpp:55:5:55:96 | CallSideEffect: call to ~ClassWithDestructor2 | Instruction 'CallSideEffect: call to ~ClassWithDestructor2' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
| destructors_for_temps.cpp:55:5:55:96 | Chi: call to ~ClassWithDestructor2 | Instruction 'Chi: call to ~ClassWithDestructor2' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
| destructors_for_temps.cpp:55:5:55:96 | Chi: reuse of temporary object | Instruction 'Chi: reuse of temporary object' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
| destructors_for_temps.cpp:55:5:55:96 | CopyValue: reuse of temporary object | Instruction 'CopyValue: reuse of temporary object' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
| destructors_for_temps.cpp:55:5:55:96 | FunctionAddress: call to ~ClassWithDestructor2 | Instruction 'FunctionAddress: call to ~ClassWithDestructor2' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
| destructors_for_temps.cpp:55:5:55:96 | IndirectMayWriteSideEffect: reuse of temporary object | Instruction 'IndirectMayWriteSideEffect: reuse of temporary object' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
| destructors_for_temps.cpp:55:5:55:96 | IndirectReadSideEffect: reuse of temporary object | Instruction 'IndirectReadSideEffect: reuse of temporary object' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
| destructors_for_temps.cpp:55:5:55:96 | Phi: reuse of temporary object | Instruction 'Phi: reuse of temporary object' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
| destructors_for_temps.cpp:55:5:55:96 | Phi: reuse of temporary object | Instruction 'Phi: reuse of temporary object' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
unnecessaryPhiInstruction
memoryOperandDefinitionIsUnmodeled
operandAcrossFunctions
@@ -47,14 +21,8 @@ containsLoopOfForwardEdges
missingIRType
multipleIRTypes
lostReachability
| destructors_for_temps.cpp:51:5:51:5 | Load: ... ? ... : ... | Block 'Load: ... ? ... : ...' is not reachable by traversing only forward edges in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:51:5:51:5 | Store: ... ? ... : ... | Block 'Store: ... ? ... : ...' is not reachable by traversing only forward edges in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:55:5:55:5 | Load: ... ? ... : ... | Block 'Load: ... ? ... : ...' is not reachable by traversing only forward edges in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
| destructors_for_temps.cpp:55:5:55:5 | Store: ... ? ... : ... | Block 'Store: ... ? ... : ...' is not reachable by traversing only forward edges in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
backEdgeCountMismatch
useNotDominatedByDefinition
| destructors_for_temps.cpp:51:5:51:5 | StoreValue | Operand 'StoreValue' is not dominated by its definition in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:55:5:55:5 | StoreValue | Operand 'StoreValue' is not dominated by its definition in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
switchInstructionWithoutDefaultEdge
notMarkedAsConflated
wronglyMarkedAsConflated

View File

@@ -1039,8 +1039,8 @@
| destructors_for_temps.cpp:47:1:47:1 | SideEffect | ~m43_6 |
| destructors_for_temps.cpp:49:6:49:15 | ChiPartial | partial:m49_3 |
| destructors_for_temps.cpp:49:6:49:15 | ChiTotal | total:m49_2 |
| destructors_for_temps.cpp:49:6:49:15 | Phi | from 2:~m51_28 |
| destructors_for_temps.cpp:49:6:49:15 | Phi | from 3:~m52_6 |
| destructors_for_temps.cpp:49:6:49:15 | Phi | from 2:~m51_26 |
| destructors_for_temps.cpp:49:6:49:15 | Phi | from 4:~m52_6 |
| destructors_for_temps.cpp:49:6:49:15 | SideEffect | ~m49_7 |
| destructors_for_temps.cpp:49:22:49:22 | Address | &:r49_5 |
| destructors_for_temps.cpp:50:26:50:26 | Address | &:r50_1 |
@@ -1053,91 +1053,57 @@
| destructors_for_temps.cpp:50:26:50:26 | ChiTotal | total:m50_2 |
| destructors_for_temps.cpp:50:26:50:26 | SideEffect | ~m49_4 |
| destructors_for_temps.cpp:51:5:51:5 | Address | &:r51_2 |
| destructors_for_temps.cpp:51:5:51:5 | Address | &:r51_39 |
| destructors_for_temps.cpp:51:5:51:5 | Address | &:r51_41 |
| destructors_for_temps.cpp:51:5:51:5 | Address | &:r51_43 |
| destructors_for_temps.cpp:51:5:51:5 | Condition | r51_3 |
| destructors_for_temps.cpp:51:5:51:5 | Load | m49_6 |
| destructors_for_temps.cpp:51:5:51:5 | Load | m51_42 |
| destructors_for_temps.cpp:51:5:51:5 | StoreValue | r51_6 |
| destructors_for_temps.cpp:51:5:51:5 | Load | m51_40 |
| destructors_for_temps.cpp:51:5:51:5 | StoreValue | r51_42 |
| destructors_for_temps.cpp:51:5:51:96 | Address | &:r51_1 |
| destructors_for_temps.cpp:51:5:51:96 | Address | &:r51_48 |
| destructors_for_temps.cpp:51:5:51:96 | Address | &:r51_48 |
| destructors_for_temps.cpp:51:5:51:96 | Address | &:r51_60 |
| destructors_for_temps.cpp:51:5:51:96 | Address | &:r51_60 |
| destructors_for_temps.cpp:51:5:51:96 | Arg(this) | this:r51_48 |
| destructors_for_temps.cpp:51:5:51:96 | Arg(this) | this:r51_60 |
| destructors_for_temps.cpp:51:5:51:96 | CallTarget | func:r51_49 |
| destructors_for_temps.cpp:51:5:51:96 | CallTarget | func:r51_61 |
| destructors_for_temps.cpp:51:5:51:96 | ChiPartial | partial:m51_51 |
| destructors_for_temps.cpp:51:5:51:96 | ChiPartial | partial:m51_54 |
| destructors_for_temps.cpp:51:5:51:96 | ChiPartial | partial:m51_63 |
| destructors_for_temps.cpp:51:5:51:96 | ChiPartial | partial:m51_66 |
| destructors_for_temps.cpp:51:5:51:96 | ChiTotal | total:m51_44 |
| destructors_for_temps.cpp:51:5:51:96 | ChiTotal | total:m51_45 |
| destructors_for_temps.cpp:51:5:51:96 | ChiTotal | total:m51_46 |
| destructors_for_temps.cpp:51:5:51:96 | ChiTotal | total:m51_47 |
| destructors_for_temps.cpp:51:5:51:96 | ChiTotal | total:m51_56 |
| destructors_for_temps.cpp:51:5:51:96 | ChiTotal | total:m51_57 |
| destructors_for_temps.cpp:51:5:51:96 | ChiTotal | total:m51_58 |
| destructors_for_temps.cpp:51:5:51:96 | ChiTotal | total:m51_59 |
| destructors_for_temps.cpp:51:5:51:96 | Phi | from 4:m51_55 |
| destructors_for_temps.cpp:51:5:51:96 | Phi | from 4:m51_67 |
| destructors_for_temps.cpp:51:5:51:96 | Phi | from 4:~m51_52 |
| destructors_for_temps.cpp:51:5:51:96 | Phi | from 4:~m51_64 |
| destructors_for_temps.cpp:51:5:51:96 | Phi | from 6:~m51_37 |
| destructors_for_temps.cpp:51:5:51:96 | SideEffect | m51_44 |
| destructors_for_temps.cpp:51:5:51:96 | SideEffect | m51_46 |
| destructors_for_temps.cpp:51:5:51:96 | SideEffect | m51_56 |
| destructors_for_temps.cpp:51:5:51:96 | SideEffect | m51_58 |
| destructors_for_temps.cpp:51:5:51:96 | SideEffect | ~m51_45 |
| destructors_for_temps.cpp:51:5:51:96 | SideEffect | ~m51_47 |
| destructors_for_temps.cpp:51:5:51:96 | SideEffect | ~m51_57 |
| destructors_for_temps.cpp:51:5:51:96 | SideEffect | ~m51_59 |
| destructors_for_temps.cpp:51:5:51:96 | Unary | r51_1 |
| destructors_for_temps.cpp:51:9:51:71 | Address | &:r51_7 |
| destructors_for_temps.cpp:51:9:51:71 | Address | &:r51_7 |
| destructors_for_temps.cpp:51:9:51:71 | Address | &:r51_7 |
| destructors_for_temps.cpp:51:9:51:71 | Arg(this) | this:r51_7 |
| destructors_for_temps.cpp:51:9:51:71 | CallTarget | func:r51_9 |
| destructors_for_temps.cpp:51:9:51:71 | Address | &:r51_5 |
| destructors_for_temps.cpp:51:9:51:71 | Address | &:r51_5 |
| destructors_for_temps.cpp:51:9:51:71 | Address | &:r51_5 |
| destructors_for_temps.cpp:51:9:51:71 | Arg(this) | this:r51_5 |
| destructors_for_temps.cpp:51:9:51:71 | CallTarget | func:r51_7 |
| destructors_for_temps.cpp:51:9:51:71 | ChiPartial | partial:m51_25 |
| destructors_for_temps.cpp:51:9:51:71 | ChiPartial | partial:m51_27 |
| destructors_for_temps.cpp:51:9:51:71 | ChiPartial | partial:m51_29 |
| destructors_for_temps.cpp:51:9:51:71 | ChiTotal | total:m51_8 |
| destructors_for_temps.cpp:51:9:51:71 | ChiTotal | total:m51_22 |
| destructors_for_temps.cpp:51:9:51:71 | Load | m51_30 |
| destructors_for_temps.cpp:51:9:51:71 | SideEffect | ~m51_22 |
| destructors_for_temps.cpp:51:36:51:38 | Arg(0) | 0:r51_10 |
| destructors_for_temps.cpp:51:41:51:62 | Address | &:r51_11 |
| destructors_for_temps.cpp:51:41:51:62 | Address | &:r51_11 |
| destructors_for_temps.cpp:51:41:51:62 | Address | &:r51_11 |
| destructors_for_temps.cpp:51:41:51:62 | Address | &:r51_11 |
| destructors_for_temps.cpp:51:41:51:62 | Arg(this) | this:r51_11 |
| destructors_for_temps.cpp:51:41:51:62 | Arg(this) | this:r51_11 |
| destructors_for_temps.cpp:51:41:51:62 | CallTarget | func:r51_13 |
| destructors_for_temps.cpp:51:9:51:71 | ChiTotal | total:m51_6 |
| destructors_for_temps.cpp:51:9:51:71 | ChiTotal | total:m51_20 |
| destructors_for_temps.cpp:51:9:51:71 | Load | m51_28 |
| destructors_for_temps.cpp:51:9:51:71 | SideEffect | ~m51_20 |
| destructors_for_temps.cpp:51:36:51:38 | Arg(0) | 0:r51_8 |
| destructors_for_temps.cpp:51:41:51:62 | Address | &:r51_9 |
| destructors_for_temps.cpp:51:41:51:62 | Address | &:r51_9 |
| destructors_for_temps.cpp:51:41:51:62 | Address | &:r51_9 |
| destructors_for_temps.cpp:51:41:51:62 | Address | &:r51_9 |
| destructors_for_temps.cpp:51:41:51:62 | Arg(this) | this:r51_9 |
| destructors_for_temps.cpp:51:41:51:62 | Arg(this) | this:r51_9 |
| destructors_for_temps.cpp:51:41:51:62 | CallTarget | func:r51_11 |
| destructors_for_temps.cpp:51:41:51:62 | ChiPartial | partial:m51_13 |
| destructors_for_temps.cpp:51:41:51:62 | ChiPartial | partial:m51_15 |
| destructors_for_temps.cpp:51:41:51:62 | ChiPartial | partial:m51_17 |
| destructors_for_temps.cpp:51:41:51:62 | ChiPartial | partial:m51_24 |
| destructors_for_temps.cpp:51:41:51:62 | ChiPartial | partial:m51_22 |
| destructors_for_temps.cpp:51:41:51:62 | ChiTotal | total:m50_6 |
| destructors_for_temps.cpp:51:41:51:62 | ChiTotal | total:m51_12 |
| destructors_for_temps.cpp:51:41:51:62 | ChiTotal | total:m51_18 |
| destructors_for_temps.cpp:51:41:51:62 | SideEffect | m51_18 |
| destructors_for_temps.cpp:51:41:51:62 | ChiTotal | total:m51_10 |
| destructors_for_temps.cpp:51:41:51:62 | ChiTotal | total:m51_16 |
| destructors_for_temps.cpp:51:41:51:62 | SideEffect | m51_16 |
| destructors_for_temps.cpp:51:41:51:62 | SideEffect | ~m50_6 |
| destructors_for_temps.cpp:51:64:51:68 | Arg(1) | 1:r51_20 |
| destructors_for_temps.cpp:51:64:51:68 | CallTarget | func:r51_19 |
| destructors_for_temps.cpp:51:64:51:68 | ChiPartial | partial:m51_21 |
| destructors_for_temps.cpp:51:64:51:68 | ChiTotal | total:m51_16 |
| destructors_for_temps.cpp:51:64:51:68 | SideEffect | ~m51_16 |
| destructors_for_temps.cpp:51:75:51:96 | Address | &:r51_32 |
| destructors_for_temps.cpp:51:75:51:96 | Address | &:r51_32 |
| destructors_for_temps.cpp:51:75:51:96 | Address | &:r51_32 |
| destructors_for_temps.cpp:51:75:51:96 | Arg(this) | this:r51_32 |
| destructors_for_temps.cpp:51:75:51:96 | CallTarget | func:r51_34 |
| destructors_for_temps.cpp:51:64:51:68 | Arg(1) | 1:r51_18 |
| destructors_for_temps.cpp:51:64:51:68 | CallTarget | func:r51_17 |
| destructors_for_temps.cpp:51:64:51:68 | ChiPartial | partial:m51_19 |
| destructors_for_temps.cpp:51:64:51:68 | ChiTotal | total:m51_14 |
| destructors_for_temps.cpp:51:64:51:68 | SideEffect | ~m51_14 |
| destructors_for_temps.cpp:51:75:51:96 | Address | &:r51_30 |
| destructors_for_temps.cpp:51:75:51:96 | Address | &:r51_30 |
| destructors_for_temps.cpp:51:75:51:96 | Address | &:r51_30 |
| destructors_for_temps.cpp:51:75:51:96 | Arg(this) | this:r51_30 |
| destructors_for_temps.cpp:51:75:51:96 | CallTarget | func:r51_32 |
| destructors_for_temps.cpp:51:75:51:96 | ChiPartial | partial:m51_34 |
| destructors_for_temps.cpp:51:75:51:96 | ChiPartial | partial:m51_36 |
| destructors_for_temps.cpp:51:75:51:96 | ChiPartial | partial:m51_38 |
| destructors_for_temps.cpp:51:75:51:96 | ChiTotal | total:m50_6 |
| destructors_for_temps.cpp:51:75:51:96 | ChiTotal | total:m51_33 |
| destructors_for_temps.cpp:51:75:51:96 | Load | m51_39 |
| destructors_for_temps.cpp:51:75:51:96 | ChiTotal | total:m51_31 |
| destructors_for_temps.cpp:51:75:51:96 | Load | m51_37 |
| destructors_for_temps.cpp:51:75:51:96 | SideEffect | ~m50_6 |
| destructors_for_temps.cpp:51:75:51:96 | StoreValue | r51_40 |
| destructors_for_temps.cpp:51:75:51:96 | StoreValue | r51_38 |
| destructors_for_temps.cpp:52:1:52:1 | Address | &:r52_2 |
| destructors_for_temps.cpp:52:1:52:1 | Address | &:r52_2 |
| destructors_for_temps.cpp:52:1:52:1 | Arg(this) | this:r52_2 |
@@ -1145,104 +1111,67 @@
| destructors_for_temps.cpp:52:1:52:1 | ChiPartial | partial:m52_5 |
| destructors_for_temps.cpp:52:1:52:1 | ChiPartial | partial:m52_8 |
| destructors_for_temps.cpp:52:1:52:1 | ChiTotal | total:m50_8 |
| destructors_for_temps.cpp:52:1:52:1 | ChiTotal | total:m51_52 |
| destructors_for_temps.cpp:52:1:52:1 | ChiTotal | total:m51_64 |
| destructors_for_temps.cpp:52:1:52:1 | ChiTotal | total:m51_35 |
| destructors_for_temps.cpp:52:1:52:1 | SideEffect | m50_8 |
| destructors_for_temps.cpp:52:1:52:1 | SideEffect | ~m51_52 |
| destructors_for_temps.cpp:52:1:52:1 | SideEffect | ~m51_64 |
| destructors_for_temps.cpp:52:1:52:1 | SideEffect | ~m51_35 |
| destructors_for_temps.cpp:54:6:54:15 | ChiPartial | partial:m54_3 |
| destructors_for_temps.cpp:54:6:54:15 | ChiTotal | total:m54_2 |
| destructors_for_temps.cpp:54:6:54:15 | Phi | from 2:~m55_28 |
| destructors_for_temps.cpp:54:6:54:15 | Phi | from 3:~m55_52 |
| destructors_for_temps.cpp:54:6:54:15 | Phi | from 3:~m55_64 |
| destructors_for_temps.cpp:54:6:54:15 | Phi | from 2:~m55_26 |
| destructors_for_temps.cpp:54:6:54:15 | Phi | from 4:~m55_35 |
| destructors_for_temps.cpp:54:6:54:15 | SideEffect | ~m54_7 |
| destructors_for_temps.cpp:54:22:54:22 | Address | &:r54_5 |
| destructors_for_temps.cpp:55:5:55:5 | Address | &:r55_2 |
| destructors_for_temps.cpp:55:5:55:5 | Address | &:r55_39 |
| destructors_for_temps.cpp:55:5:55:5 | Address | &:r55_41 |
| destructors_for_temps.cpp:55:5:55:5 | Address | &:r55_43 |
| destructors_for_temps.cpp:55:5:55:5 | Condition | r55_3 |
| destructors_for_temps.cpp:55:5:55:5 | Load | m54_6 |
| destructors_for_temps.cpp:55:5:55:5 | Load | m55_42 |
| destructors_for_temps.cpp:55:5:55:5 | StoreValue | r55_6 |
| destructors_for_temps.cpp:55:5:55:5 | Load | m55_40 |
| destructors_for_temps.cpp:55:5:55:5 | StoreValue | r55_42 |
| destructors_for_temps.cpp:55:5:55:96 | Address | &:r55_1 |
| destructors_for_temps.cpp:55:5:55:96 | Address | &:r55_48 |
| destructors_for_temps.cpp:55:5:55:96 | Address | &:r55_48 |
| destructors_for_temps.cpp:55:5:55:96 | Address | &:r55_60 |
| destructors_for_temps.cpp:55:5:55:96 | Address | &:r55_60 |
| destructors_for_temps.cpp:55:5:55:96 | Arg(this) | this:r55_48 |
| destructors_for_temps.cpp:55:5:55:96 | Arg(this) | this:r55_60 |
| destructors_for_temps.cpp:55:5:55:96 | CallTarget | func:r55_49 |
| destructors_for_temps.cpp:55:5:55:96 | CallTarget | func:r55_61 |
| destructors_for_temps.cpp:55:5:55:96 | ChiPartial | partial:m55_51 |
| destructors_for_temps.cpp:55:5:55:96 | ChiPartial | partial:m55_54 |
| destructors_for_temps.cpp:55:5:55:96 | ChiPartial | partial:m55_63 |
| destructors_for_temps.cpp:55:5:55:96 | ChiPartial | partial:m55_66 |
| destructors_for_temps.cpp:55:5:55:96 | ChiTotal | total:m55_44 |
| destructors_for_temps.cpp:55:5:55:96 | ChiTotal | total:m55_45 |
| destructors_for_temps.cpp:55:5:55:96 | ChiTotal | total:m55_46 |
| destructors_for_temps.cpp:55:5:55:96 | ChiTotal | total:m55_47 |
| destructors_for_temps.cpp:55:5:55:96 | ChiTotal | total:m55_56 |
| destructors_for_temps.cpp:55:5:55:96 | ChiTotal | total:m55_57 |
| destructors_for_temps.cpp:55:5:55:96 | ChiTotal | total:m55_58 |
| destructors_for_temps.cpp:55:5:55:96 | ChiTotal | total:m55_59 |
| destructors_for_temps.cpp:55:5:55:96 | Phi | from 4:m55_55 |
| destructors_for_temps.cpp:55:5:55:96 | Phi | from 4:m55_67 |
| destructors_for_temps.cpp:55:5:55:96 | Phi | from 4:~m55_52 |
| destructors_for_temps.cpp:55:5:55:96 | Phi | from 4:~m55_64 |
| destructors_for_temps.cpp:55:5:55:96 | Phi | from 6:~m55_37 |
| destructors_for_temps.cpp:55:5:55:96 | SideEffect | m55_44 |
| destructors_for_temps.cpp:55:5:55:96 | SideEffect | m55_46 |
| destructors_for_temps.cpp:55:5:55:96 | SideEffect | m55_56 |
| destructors_for_temps.cpp:55:5:55:96 | SideEffect | m55_58 |
| destructors_for_temps.cpp:55:5:55:96 | SideEffect | ~m55_45 |
| destructors_for_temps.cpp:55:5:55:96 | SideEffect | ~m55_47 |
| destructors_for_temps.cpp:55:5:55:96 | SideEffect | ~m55_57 |
| destructors_for_temps.cpp:55:5:55:96 | SideEffect | ~m55_59 |
| destructors_for_temps.cpp:55:5:55:96 | Unary | r55_1 |
| destructors_for_temps.cpp:55:9:55:71 | Address | &:r55_7 |
| destructors_for_temps.cpp:55:9:55:71 | Address | &:r55_7 |
| destructors_for_temps.cpp:55:9:55:71 | Address | &:r55_7 |
| destructors_for_temps.cpp:55:9:55:71 | Arg(this) | this:r55_7 |
| destructors_for_temps.cpp:55:9:55:71 | CallTarget | func:r55_9 |
| destructors_for_temps.cpp:55:9:55:71 | Address | &:r55_5 |
| destructors_for_temps.cpp:55:9:55:71 | Address | &:r55_5 |
| destructors_for_temps.cpp:55:9:55:71 | Address | &:r55_5 |
| destructors_for_temps.cpp:55:9:55:71 | Arg(this) | this:r55_5 |
| destructors_for_temps.cpp:55:9:55:71 | CallTarget | func:r55_7 |
| destructors_for_temps.cpp:55:9:55:71 | ChiPartial | partial:m55_25 |
| destructors_for_temps.cpp:55:9:55:71 | ChiPartial | partial:m55_27 |
| destructors_for_temps.cpp:55:9:55:71 | ChiPartial | partial:m55_29 |
| destructors_for_temps.cpp:55:9:55:71 | ChiTotal | total:m55_8 |
| destructors_for_temps.cpp:55:9:55:71 | ChiTotal | total:m55_22 |
| destructors_for_temps.cpp:55:9:55:71 | Load | m55_30 |
| destructors_for_temps.cpp:55:9:55:71 | SideEffect | ~m55_22 |
| destructors_for_temps.cpp:55:36:55:38 | Arg(0) | 0:r55_10 |
| destructors_for_temps.cpp:55:41:55:62 | Address | &:r55_11 |
| destructors_for_temps.cpp:55:41:55:62 | Address | &:r55_11 |
| destructors_for_temps.cpp:55:41:55:62 | Address | &:r55_11 |
| destructors_for_temps.cpp:55:41:55:62 | Address | &:r55_11 |
| destructors_for_temps.cpp:55:41:55:62 | Arg(this) | this:r55_11 |
| destructors_for_temps.cpp:55:41:55:62 | Arg(this) | this:r55_11 |
| destructors_for_temps.cpp:55:41:55:62 | CallTarget | func:r55_13 |
| destructors_for_temps.cpp:55:9:55:71 | ChiTotal | total:m55_6 |
| destructors_for_temps.cpp:55:9:55:71 | ChiTotal | total:m55_20 |
| destructors_for_temps.cpp:55:9:55:71 | Load | m55_28 |
| destructors_for_temps.cpp:55:9:55:71 | SideEffect | ~m55_20 |
| destructors_for_temps.cpp:55:36:55:38 | Arg(0) | 0:r55_8 |
| destructors_for_temps.cpp:55:41:55:62 | Address | &:r55_9 |
| destructors_for_temps.cpp:55:41:55:62 | Address | &:r55_9 |
| destructors_for_temps.cpp:55:41:55:62 | Address | &:r55_9 |
| destructors_for_temps.cpp:55:41:55:62 | Address | &:r55_9 |
| destructors_for_temps.cpp:55:41:55:62 | Arg(this) | this:r55_9 |
| destructors_for_temps.cpp:55:41:55:62 | Arg(this) | this:r55_9 |
| destructors_for_temps.cpp:55:41:55:62 | CallTarget | func:r55_11 |
| destructors_for_temps.cpp:55:41:55:62 | ChiPartial | partial:m55_13 |
| destructors_for_temps.cpp:55:41:55:62 | ChiPartial | partial:m55_15 |
| destructors_for_temps.cpp:55:41:55:62 | ChiPartial | partial:m55_17 |
| destructors_for_temps.cpp:55:41:55:62 | ChiPartial | partial:m55_24 |
| destructors_for_temps.cpp:55:41:55:62 | ChiPartial | partial:m55_22 |
| destructors_for_temps.cpp:55:41:55:62 | ChiTotal | total:m54_4 |
| destructors_for_temps.cpp:55:41:55:62 | ChiTotal | total:m55_12 |
| destructors_for_temps.cpp:55:41:55:62 | ChiTotal | total:m55_18 |
| destructors_for_temps.cpp:55:41:55:62 | SideEffect | m55_18 |
| destructors_for_temps.cpp:55:41:55:62 | ChiTotal | total:m55_10 |
| destructors_for_temps.cpp:55:41:55:62 | ChiTotal | total:m55_16 |
| destructors_for_temps.cpp:55:41:55:62 | SideEffect | m55_16 |
| destructors_for_temps.cpp:55:41:55:62 | SideEffect | ~m54_4 |
| destructors_for_temps.cpp:55:64:55:68 | Arg(1) | 1:r55_20 |
| destructors_for_temps.cpp:55:64:55:68 | CallTarget | func:r55_19 |
| destructors_for_temps.cpp:55:64:55:68 | ChiPartial | partial:m55_21 |
| destructors_for_temps.cpp:55:64:55:68 | ChiTotal | total:m55_16 |
| destructors_for_temps.cpp:55:64:55:68 | SideEffect | ~m55_16 |
| destructors_for_temps.cpp:55:75:55:96 | Address | &:r55_32 |
| destructors_for_temps.cpp:55:75:55:96 | Address | &:r55_32 |
| destructors_for_temps.cpp:55:75:55:96 | Address | &:r55_32 |
| destructors_for_temps.cpp:55:75:55:96 | Arg(this) | this:r55_32 |
| destructors_for_temps.cpp:55:75:55:96 | CallTarget | func:r55_34 |
| destructors_for_temps.cpp:55:64:55:68 | Arg(1) | 1:r55_18 |
| destructors_for_temps.cpp:55:64:55:68 | CallTarget | func:r55_17 |
| destructors_for_temps.cpp:55:64:55:68 | ChiPartial | partial:m55_19 |
| destructors_for_temps.cpp:55:64:55:68 | ChiTotal | total:m55_14 |
| destructors_for_temps.cpp:55:64:55:68 | SideEffect | ~m55_14 |
| destructors_for_temps.cpp:55:75:55:96 | Address | &:r55_30 |
| destructors_for_temps.cpp:55:75:55:96 | Address | &:r55_30 |
| destructors_for_temps.cpp:55:75:55:96 | Address | &:r55_30 |
| destructors_for_temps.cpp:55:75:55:96 | Arg(this) | this:r55_30 |
| destructors_for_temps.cpp:55:75:55:96 | CallTarget | func:r55_32 |
| destructors_for_temps.cpp:55:75:55:96 | ChiPartial | partial:m55_34 |
| destructors_for_temps.cpp:55:75:55:96 | ChiPartial | partial:m55_36 |
| destructors_for_temps.cpp:55:75:55:96 | ChiPartial | partial:m55_38 |
| destructors_for_temps.cpp:55:75:55:96 | ChiTotal | total:m54_4 |
| destructors_for_temps.cpp:55:75:55:96 | ChiTotal | total:m55_33 |
| destructors_for_temps.cpp:55:75:55:96 | Load | m55_39 |
| destructors_for_temps.cpp:55:75:55:96 | ChiTotal | total:m55_31 |
| destructors_for_temps.cpp:55:75:55:96 | Load | m55_37 |
| destructors_for_temps.cpp:55:75:55:96 | SideEffect | ~m54_4 |
| destructors_for_temps.cpp:55:75:55:96 | StoreValue | r55_40 |
| destructors_for_temps.cpp:55:75:55:96 | StoreValue | r55_38 |
| destructors_for_temps.cpp:58:6:58:22 | ChiPartial | partial:m58_3 |
| destructors_for_temps.cpp:58:6:58:22 | ChiTotal | total:m58_2 |
| destructors_for_temps.cpp:58:6:58:22 | Phi | from 2:~m59_16 |

View File

@@ -7,23 +7,7 @@ duplicateChiOperand
sideEffectWithoutPrimary
instructionWithoutSuccessor
ambiguousSuccessors
| destructors_for_temps.cpp:51:5:51:96 | IndirectMayWriteSideEffect: reuse of temporary object | Instruction 'IndirectMayWriteSideEffect: reuse of temporary object' has 2 successors of kind 'Goto' in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:55:5:55:96 | IndirectMayWriteSideEffect: reuse of temporary object | Instruction 'IndirectMayWriteSideEffect: reuse of temporary object' has 2 successors of kind 'Goto' in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
unexplainedLoop
| destructors_for_temps.cpp:51:5:51:5 | Load: ... ? ... : ... | Instruction 'Load: ... ? ... : ...' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:51:5:51:96 | Call: call to ~ClassWithDestructor2 | Instruction 'Call: call to ~ClassWithDestructor2' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:51:5:51:96 | CallSideEffect: call to ~ClassWithDestructor2 | Instruction 'CallSideEffect: call to ~ClassWithDestructor2' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:51:5:51:96 | CopyValue: reuse of temporary object | Instruction 'CopyValue: reuse of temporary object' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:51:5:51:96 | FunctionAddress: call to ~ClassWithDestructor2 | Instruction 'FunctionAddress: call to ~ClassWithDestructor2' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:51:5:51:96 | IndirectMayWriteSideEffect: reuse of temporary object | Instruction 'IndirectMayWriteSideEffect: reuse of temporary object' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:51:5:51:96 | IndirectReadSideEffect: reuse of temporary object | Instruction 'IndirectReadSideEffect: reuse of temporary object' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:55:5:55:5 | Load: ... ? ... : ... | Instruction 'Load: ... ? ... : ...' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
| destructors_for_temps.cpp:55:5:55:96 | Call: call to ~ClassWithDestructor2 | Instruction 'Call: call to ~ClassWithDestructor2' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
| destructors_for_temps.cpp:55:5:55:96 | CallSideEffect: call to ~ClassWithDestructor2 | Instruction 'CallSideEffect: call to ~ClassWithDestructor2' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
| destructors_for_temps.cpp:55:5:55:96 | CopyValue: reuse of temporary object | Instruction 'CopyValue: reuse of temporary object' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
| destructors_for_temps.cpp:55:5:55:96 | FunctionAddress: call to ~ClassWithDestructor2 | Instruction 'FunctionAddress: call to ~ClassWithDestructor2' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
| destructors_for_temps.cpp:55:5:55:96 | IndirectMayWriteSideEffect: reuse of temporary object | Instruction 'IndirectMayWriteSideEffect: reuse of temporary object' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
| destructors_for_temps.cpp:55:5:55:96 | IndirectReadSideEffect: reuse of temporary object | Instruction 'IndirectReadSideEffect: reuse of temporary object' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
unnecessaryPhiInstruction
memoryOperandDefinitionIsUnmodeled
operandAcrossFunctions
@@ -34,15 +18,9 @@ containsLoopOfForwardEdges
missingIRType
multipleIRTypes
lostReachability
| destructors_for_temps.cpp:51:5:51:5 | Load: ... ? ... : ... | Block 'Load: ... ? ... : ...' is not reachable by traversing only forward edges in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:51:5:51:5 | Store: ... ? ... : ... | Block 'Store: ... ? ... : ...' is not reachable by traversing only forward edges in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:55:5:55:5 | Load: ... ? ... : ... | Block 'Load: ... ? ... : ...' is not reachable by traversing only forward edges in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
| destructors_for_temps.cpp:55:5:55:5 | Store: ... ? ... : ... | Block 'Store: ... ? ... : ...' is not reachable by traversing only forward edges in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
backEdgeCountMismatch
useNotDominatedByDefinition
| destructors_for_temps.cpp:45:39:45:60 | Unary | Operand 'Unary' is not dominated by its definition in function '$@'. | destructors_for_temps.cpp:42:6:42:15 | void temp_test6(bool) | void temp_test6(bool) |
| destructors_for_temps.cpp:51:5:51:5 | StoreValue | Operand 'StoreValue' is not dominated by its definition in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:55:5:55:5 | StoreValue | Operand 'StoreValue' is not dominated by its definition in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
| 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() |
| try_except.c:13:13:13:13 | Left | Operand 'Left' is not dominated by its definition in function '$@'. | try_except.c:6:6:6:6 | void f() | void f() |
| try_except.c:13:13:13:13 | Left | Operand 'Left' is not dominated by its definition in function '$@'. | try_except.c:6:6:6:6 | void f() | void f() |

View File

@@ -1084,8 +1084,8 @@ destructors_for_temps.cpp:
# 51| r51_2(glval<bool>) = VariableAddress[b] :
# 51| r51_3(bool) = Load[b] : &:r51_2, ~m?
# 51| v51_4(void) = ConditionalBranch : r51_3
#-----| False -> Block 7
#-----| True -> Block 5
#-----| False -> Block 6
#-----| True -> Block 4
# 49| Block 1
# 49| v49_6(void) = AliasedUse : ~m?
@@ -1096,7 +1096,8 @@ destructors_for_temps.cpp:
#-----| Goto -> Block 1
# 51| Block 3
# 51| mu51_5(ClassWithDestructor2) = Store[#temp51:5] : &:r51_1, r51_6
# 51| r51_5(ClassWithDestructor2) = Load[#temp51:5] : &:r51_35, ~m?
# 51| mu51_6(ClassWithDestructor2) = Store[#temp51:5] : &:r51_1, r51_5
# 52| v52_1(void) = NoOp :
# 52| r52_2(glval<ClassWithDestructor2>) = VariableAddress[c] :
# 52| r52_3(glval<unknown>) = FunctionAddress[~ClassWithDestructor2] :
@@ -1108,11 +1109,6 @@ destructors_for_temps.cpp:
#-----| Goto -> Block 1
# 51| Block 4
# 51| r51_6(ClassWithDestructor2) = Load[#temp51:5] : &:r51_35, ~m?
#-----| Goto (back edge) -> Block 8
#-----| Goto (back edge) -> Block 8
# 51| Block 5
# 51| r51_7(glval<ClassWithConstructor>) = VariableAddress[#throw51:9] :
# 51| mu51_8(ClassWithConstructor) = Uninitialized[#throw51:9] : &:r51_7
# 51| r51_9(glval<unknown>) = FunctionAddress[ClassWithConstructor] :
@@ -1134,16 +1130,16 @@ destructors_for_temps.cpp:
# 51| v51_25(void) = ThrowValue : &:r51_7, ~m?
#-----| Exception -> Block 2
# 52| Block 6
# 52| Block 5
# 52| r52_8(glval<ClassWithDestructor2>) = VariableAddress[c] :
# 52| r52_9(glval<unknown>) = FunctionAddress[~ClassWithDestructor2] :
# 52| v52_10(void) = Call[~ClassWithDestructor2] : func:r52_9, this:r52_8
# 52| mu52_11(unknown) = ^CallSideEffect : ~m?
# 52| v52_12(void) = ^IndirectReadSideEffect[-1] : &:r52_8, ~m?
# 52| mu52_13(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r52_8
#-----| Goto -> Block 4
#-----| Goto -> Block 3
# 51| Block 7
# 51| Block 6
# 51| r51_26(glval<ClassWithDestructor2>) = VariableAddress[#temp51:75] :
# 51| mu51_27(ClassWithDestructor2) = Uninitialized[#temp51:75] : &:r51_26
# 51| r51_28(glval<unknown>) = FunctionAddress[ClassWithDestructor2] :
@@ -1154,22 +1150,7 @@ destructors_for_temps.cpp:
# 51| r51_33(glval<ClassWithDestructor2>) = VariableAddress[#temp51:5] :
# 51| mu51_34(ClassWithDestructor2) = Store[#temp51:5] : &:r51_33, r51_32
# 51| r51_35(glval<ClassWithDestructor2>) = VariableAddress[#temp51:5] :
#-----| Goto -> Block 8
#-----| Goto -> Block 8
# 51| Block 8
# 51| r51_42(glval<ClassWithDestructor2>) = CopyValue : r51_1
# 51| r51_43(glval<unknown>) = FunctionAddress[~ClassWithDestructor2] :
# 51| v51_44(void) = Call[~ClassWithDestructor2] : func:r51_37, func:r51_43, this:r51_36, this:r51_42
# 51| mu51_45(unknown) = ^CallSideEffect : ~m?
# 51| v51_46(void) = ^IndirectReadSideEffect[-1] : &:r51_36, &:r51_42, ~m?
# 51| mu51_47(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r51_36, &:r51_42
#-----| Goto (back edge) -> Block 4
#-----| Goto (back edge) -> Block 3
# 51| Block 8
#-----| Goto (back edge) -> Block 4
#-----| Goto (back edge) -> Block 3
#-----| Goto -> Block 3
# 54| void temp_test8(bool)
# 54| Block 0
@@ -1182,8 +1163,8 @@ destructors_for_temps.cpp:
# 55| r55_2(glval<bool>) = VariableAddress[b] :
# 55| r55_3(bool) = Load[b] : &:r55_2, ~m?
# 55| v55_4(void) = ConditionalBranch : r55_3
#-----| False -> Block 6
#-----| True -> Block 5
#-----| False -> Block 4
#-----| True -> Block 3
# 54| Block 1
# 54| v54_6(void) = AliasedUse : ~m?
@@ -1194,65 +1175,43 @@ destructors_for_temps.cpp:
#-----| Goto -> Block 1
# 55| Block 3
# 55| mu55_5(ClassWithDestructor2) = Store[#temp55:5] : &:r55_1, r55_6
# 56| v56_1(void) = NoOp :
# 54| v54_9(void) = ReturnVoid :
#-----| Goto -> Block 1
# 55| Block 4
# 55| r55_6(ClassWithDestructor2) = Load[#temp55:5] : &:r55_35, ~m?
#-----| Goto (back edge) -> Block 8
#-----| Goto (back edge) -> Block 8
# 55| Block 5
# 55| r55_7(glval<ClassWithConstructor>) = VariableAddress[#throw55:9] :
# 55| mu55_8(ClassWithConstructor) = Uninitialized[#throw55:9] : &:r55_7
# 55| r55_9(glval<unknown>) = FunctionAddress[ClassWithConstructor] :
# 55| r55_10(char) = Constant[120] :
# 55| r55_11(glval<ClassWithDestructor2>) = VariableAddress[#temp55:41] :
# 55| mu55_12(ClassWithDestructor2) = Uninitialized[#temp55:41] : &:r55_11
# 55| r55_13(glval<unknown>) = FunctionAddress[ClassWithDestructor2] :
# 55| v55_14(void) = Call[ClassWithDestructor2] : func:r55_13, this:r55_11
# 55| mu55_15(unknown) = ^CallSideEffect : ~m?
# 55| mu55_16(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r55_11
# 55| r55_17(glval<unknown>) = FunctionAddress[get_x] :
# 55| r55_18(char) = Call[get_x] : func:r55_17, this:r55_11
# 55| mu55_19(unknown) = ^CallSideEffect : ~m?
# 55| v55_20(void) = ^IndirectReadSideEffect[-1] : &:r55_11, ~m?
# 55| mu55_21(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r55_11
# 55| v55_22(void) = Call[ClassWithConstructor] : func:r55_9, this:r55_7, 0:r55_10, 1:r55_18
# 55| mu55_23(unknown) = ^CallSideEffect : ~m?
# 55| mu55_24(ClassWithConstructor) = ^IndirectMayWriteSideEffect[-1] : &:r55_7
# 55| v55_25(void) = ThrowValue : &:r55_7, ~m?
# 55| r55_5(glval<ClassWithConstructor>) = VariableAddress[#throw55:9] :
# 55| mu55_6(ClassWithConstructor) = Uninitialized[#throw55:9] : &:r55_5
# 55| r55_7(glval<unknown>) = FunctionAddress[ClassWithConstructor] :
# 55| r55_8(char) = Constant[120] :
# 55| r55_9(glval<ClassWithDestructor2>) = VariableAddress[#temp55:41] :
# 55| mu55_10(ClassWithDestructor2) = Uninitialized[#temp55:41] : &:r55_9
# 55| r55_11(glval<unknown>) = FunctionAddress[ClassWithDestructor2] :
# 55| v55_12(void) = Call[ClassWithDestructor2] : func:r55_11, this:r55_9
# 55| mu55_13(unknown) = ^CallSideEffect : ~m?
# 55| mu55_14(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r55_9
# 55| r55_15(glval<unknown>) = FunctionAddress[get_x] :
# 55| r55_16(char) = Call[get_x] : func:r55_15, this:r55_9
# 55| mu55_17(unknown) = ^CallSideEffect : ~m?
# 55| v55_18(void) = ^IndirectReadSideEffect[-1] : &:r55_9, ~m?
# 55| mu55_19(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r55_9
# 55| v55_20(void) = Call[ClassWithConstructor] : func:r55_7, this:r55_5, 0:r55_8, 1:r55_16
# 55| mu55_21(unknown) = ^CallSideEffect : ~m?
# 55| mu55_22(ClassWithConstructor) = ^IndirectMayWriteSideEffect[-1] : &:r55_5
# 55| v55_23(void) = ThrowValue : &:r55_5, ~m?
#-----| Exception -> Block 2
# 55| Block 6
# 55| r55_26(glval<ClassWithDestructor2>) = VariableAddress[#temp55:75] :
# 55| mu55_27(ClassWithDestructor2) = Uninitialized[#temp55:75] : &:r55_26
# 55| r55_28(glval<unknown>) = FunctionAddress[ClassWithDestructor2] :
# 55| v55_29(void) = Call[ClassWithDestructor2] : func:r55_28, this:r55_26
# 55| mu55_30(unknown) = ^CallSideEffect : ~m?
# 55| mu55_31(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r55_26
# 55| r55_32(ClassWithDestructor2) = Load[#temp55:75] : &:r55_26, ~m?
# 55| Block 4
# 55| r55_24(glval<ClassWithDestructor2>) = VariableAddress[#temp55:75] :
# 55| mu55_25(ClassWithDestructor2) = Uninitialized[#temp55:75] : &:r55_24
# 55| r55_26(glval<unknown>) = FunctionAddress[ClassWithDestructor2] :
# 55| v55_27(void) = Call[ClassWithDestructor2] : func:r55_26, this:r55_24
# 55| mu55_28(unknown) = ^CallSideEffect : ~m?
# 55| mu55_29(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r55_24
# 55| r55_30(ClassWithDestructor2) = Load[#temp55:75] : &:r55_24, ~m?
# 55| r55_31(glval<ClassWithDestructor2>) = VariableAddress[#temp55:5] :
# 55| mu55_32(ClassWithDestructor2) = Store[#temp55:5] : &:r55_31, r55_30
# 55| r55_33(glval<ClassWithDestructor2>) = VariableAddress[#temp55:5] :
# 55| mu55_34(ClassWithDestructor2) = Store[#temp55:5] : &:r55_33, r55_32
# 55| r55_35(glval<ClassWithDestructor2>) = VariableAddress[#temp55:5] :
#-----| Goto -> Block 8
#-----| Goto -> Block 8
# 55| Block 8
# 55| r55_42(glval<ClassWithDestructor2>) = CopyValue : r55_1
# 55| r55_43(glval<unknown>) = FunctionAddress[~ClassWithDestructor2] :
# 55| v55_44(void) = Call[~ClassWithDestructor2] : func:r55_37, func:r55_43, this:r55_36, this:r55_42
# 55| mu55_45(unknown) = ^CallSideEffect : ~m?
# 55| v55_46(void) = ^IndirectReadSideEffect[-1] : &:r55_36, &:r55_42, ~m?
# 55| mu55_47(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r55_36, &:r55_42
#-----| Goto (back edge) -> Block 4
#-----| Goto (back edge) -> Block 3
# 55| Block 8
#-----| Goto (back edge) -> Block 4
#-----| Goto (back edge) -> Block 3
# 55| r55_34(ClassWithDestructor2) = Load[#temp55:5] : &:r55_33, ~m?
# 55| mu55_35(ClassWithDestructor2) = Store[#temp55:5] : &:r55_1, r55_34
# 56| v56_1(void) = NoOp :
# 54| v54_9(void) = ReturnVoid :
#-----| Goto -> Block 1
# 58| void temp_test8_simple(bool)
# 58| Block 0

View File

@@ -7,23 +7,7 @@ duplicateChiOperand
sideEffectWithoutPrimary
instructionWithoutSuccessor
ambiguousSuccessors
| destructors_for_temps.cpp:51:5:51:96 | IndirectMayWriteSideEffect: reuse of temporary object | Instruction 'IndirectMayWriteSideEffect: reuse of temporary object' has 2 successors of kind 'Goto' in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:55:5:55:96 | IndirectMayWriteSideEffect: reuse of temporary object | Instruction 'IndirectMayWriteSideEffect: reuse of temporary object' has 2 successors of kind 'Goto' in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
unexplainedLoop
| destructors_for_temps.cpp:51:5:51:5 | Load: ... ? ... : ... | Instruction 'Load: ... ? ... : ...' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:51:5:51:96 | Call: call to ~ClassWithDestructor2 | Instruction 'Call: call to ~ClassWithDestructor2' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:51:5:51:96 | CallSideEffect: call to ~ClassWithDestructor2 | Instruction 'CallSideEffect: call to ~ClassWithDestructor2' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:51:5:51:96 | CopyValue: reuse of temporary object | Instruction 'CopyValue: reuse of temporary object' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:51:5:51:96 | FunctionAddress: call to ~ClassWithDestructor2 | Instruction 'FunctionAddress: call to ~ClassWithDestructor2' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:51:5:51:96 | IndirectMayWriteSideEffect: reuse of temporary object | Instruction 'IndirectMayWriteSideEffect: reuse of temporary object' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:51:5:51:96 | IndirectReadSideEffect: reuse of temporary object | Instruction 'IndirectReadSideEffect: reuse of temporary object' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:55:5:55:5 | Load: ... ? ... : ... | Instruction 'Load: ... ? ... : ...' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
| destructors_for_temps.cpp:55:5:55:96 | Call: call to ~ClassWithDestructor2 | Instruction 'Call: call to ~ClassWithDestructor2' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
| destructors_for_temps.cpp:55:5:55:96 | CallSideEffect: call to ~ClassWithDestructor2 | Instruction 'CallSideEffect: call to ~ClassWithDestructor2' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
| destructors_for_temps.cpp:55:5:55:96 | CopyValue: reuse of temporary object | Instruction 'CopyValue: reuse of temporary object' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
| destructors_for_temps.cpp:55:5:55:96 | FunctionAddress: call to ~ClassWithDestructor2 | Instruction 'FunctionAddress: call to ~ClassWithDestructor2' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
| destructors_for_temps.cpp:55:5:55:96 | IndirectMayWriteSideEffect: reuse of temporary object | Instruction 'IndirectMayWriteSideEffect: reuse of temporary object' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
| destructors_for_temps.cpp:55:5:55:96 | IndirectReadSideEffect: reuse of temporary object | Instruction 'IndirectReadSideEffect: reuse of temporary object' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
unnecessaryPhiInstruction
memoryOperandDefinitionIsUnmodeled
operandAcrossFunctions
@@ -34,14 +18,8 @@ containsLoopOfForwardEdges
missingIRType
multipleIRTypes
lostReachability
| destructors_for_temps.cpp:51:5:51:5 | Load: ... ? ... : ... | Block 'Load: ... ? ... : ...' is not reachable by traversing only forward edges in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:51:5:51:5 | Store: ... ? ... : ... | Block 'Store: ... ? ... : ...' is not reachable by traversing only forward edges in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:55:5:55:5 | Load: ... ? ... : ... | Block 'Load: ... ? ... : ...' is not reachable by traversing only forward edges in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
| destructors_for_temps.cpp:55:5:55:5 | Store: ... ? ... : ... | Block 'Store: ... ? ... : ...' is not reachable by traversing only forward edges in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
backEdgeCountMismatch
useNotDominatedByDefinition
| destructors_for_temps.cpp:51:5:51:5 | StoreValue | Operand 'StoreValue' is not dominated by its definition in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:55:5:55:5 | StoreValue | Operand 'StoreValue' is not dominated by its definition in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
switchInstructionWithoutDefaultEdge
notMarkedAsConflated
wronglyMarkedAsConflated

View File

@@ -7,23 +7,7 @@ duplicateChiOperand
sideEffectWithoutPrimary
instructionWithoutSuccessor
ambiguousSuccessors
| destructors_for_temps.cpp:51:5:51:96 | IndirectMayWriteSideEffect: reuse of temporary object | Instruction 'IndirectMayWriteSideEffect: reuse of temporary object' has 2 successors of kind 'Goto' in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:55:5:55:96 | IndirectMayWriteSideEffect: reuse of temporary object | Instruction 'IndirectMayWriteSideEffect: reuse of temporary object' has 2 successors of kind 'Goto' in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
unexplainedLoop
| destructors_for_temps.cpp:51:5:51:5 | Load: ... ? ... : ... | Instruction 'Load: ... ? ... : ...' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:51:5:51:96 | Call: call to ~ClassWithDestructor2 | Instruction 'Call: call to ~ClassWithDestructor2' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:51:5:51:96 | CallSideEffect: call to ~ClassWithDestructor2 | Instruction 'CallSideEffect: call to ~ClassWithDestructor2' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:51:5:51:96 | CopyValue: reuse of temporary object | Instruction 'CopyValue: reuse of temporary object' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:51:5:51:96 | FunctionAddress: call to ~ClassWithDestructor2 | Instruction 'FunctionAddress: call to ~ClassWithDestructor2' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:51:5:51:96 | IndirectMayWriteSideEffect: reuse of temporary object | Instruction 'IndirectMayWriteSideEffect: reuse of temporary object' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:51:5:51:96 | IndirectReadSideEffect: reuse of temporary object | Instruction 'IndirectReadSideEffect: reuse of temporary object' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:55:5:55:5 | Load: ... ? ... : ... | Instruction 'Load: ... ? ... : ...' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
| destructors_for_temps.cpp:55:5:55:96 | Call: call to ~ClassWithDestructor2 | Instruction 'Call: call to ~ClassWithDestructor2' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
| destructors_for_temps.cpp:55:5:55:96 | CallSideEffect: call to ~ClassWithDestructor2 | Instruction 'CallSideEffect: call to ~ClassWithDestructor2' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
| destructors_for_temps.cpp:55:5:55:96 | CopyValue: reuse of temporary object | Instruction 'CopyValue: reuse of temporary object' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
| destructors_for_temps.cpp:55:5:55:96 | FunctionAddress: call to ~ClassWithDestructor2 | Instruction 'FunctionAddress: call to ~ClassWithDestructor2' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
| destructors_for_temps.cpp:55:5:55:96 | IndirectMayWriteSideEffect: reuse of temporary object | Instruction 'IndirectMayWriteSideEffect: reuse of temporary object' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
| destructors_for_temps.cpp:55:5:55:96 | IndirectReadSideEffect: reuse of temporary object | Instruction 'IndirectReadSideEffect: reuse of temporary object' is part of an unexplained loop in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
unnecessaryPhiInstruction
memoryOperandDefinitionIsUnmodeled
operandAcrossFunctions
@@ -34,14 +18,8 @@ containsLoopOfForwardEdges
missingIRType
multipleIRTypes
lostReachability
| destructors_for_temps.cpp:51:5:51:5 | Load: ... ? ... : ... | Block 'Load: ... ? ... : ...' is not reachable by traversing only forward edges in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:51:5:51:5 | Store: ... ? ... : ... | Block 'Store: ... ? ... : ...' is not reachable by traversing only forward edges in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:55:5:55:5 | Load: ... ? ... : ... | Block 'Load: ... ? ... : ...' is not reachable by traversing only forward edges in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
| destructors_for_temps.cpp:55:5:55:5 | Store: ... ? ... : ... | Block 'Store: ... ? ... : ...' is not reachable by traversing only forward edges in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
backEdgeCountMismatch
useNotDominatedByDefinition
| destructors_for_temps.cpp:51:5:51:5 | StoreValue | Operand 'StoreValue' is not dominated by its definition in function '$@'. | destructors_for_temps.cpp:49:6:49:15 | void temp_test7(bool) | void temp_test7(bool) |
| destructors_for_temps.cpp:55:5:55:5 | StoreValue | Operand 'StoreValue' is not dominated by its definition in function '$@'. | destructors_for_temps.cpp:54:6:54:15 | void temp_test8(bool) | void temp_test8(bool) |
switchInstructionWithoutDefaultEdge
notMarkedAsConflated
wronglyMarkedAsConflated