@@ -891,24 +891,32 @@ destructors_for_temps.cpp:
891
891
892
892
# 29| void temp_test3()
893
893
# 29| Block 0
894
- # 29| v29_1(void) = EnterFunction :
895
- # 29| m29_2(unknown) = AliasedDefinition :
896
- # 29| m29_3(unknown) = InitializeNonLocal :
897
- # 29| m29_4(unknown) = Chi : total:m29_2, partial:m29_3
898
- # 30| r30_1(glval<ClassWithDestructor2 &>) = VariableAddress[rs] :
899
- # 30| r30_2(glval<ClassWithDestructor2>) = VariableAddress[#temp30:38] :
900
- # 30| r30_3(glval<unknown>) = FunctionAddress[returnValue] :
901
- # 30| r30_4(ClassWithDestructor2) = Call[returnValue] : func:r30_3
902
- # 30| m30_5(unknown) = ^CallSideEffect : ~m29_4
903
- # 30| m30_6(unknown) = Chi : total:m29_4, partial:m30_5
904
- # 30| m30_7(ClassWithDestructor2) = Store[#temp30:38] : &:r30_2, r30_4
905
- # 30| r30_8(glval<ClassWithDestructor2>) = Convert : r30_2
906
- # 30| r30_9(ClassWithDestructor2 &) = CopyValue : r30_8
907
- # 30| m30_10(ClassWithDestructor2 &) = Store[rs] : &:r30_1, r30_9
908
- # 31| v31_1(void) = NoOp :
909
- # 29| v29_5(void) = ReturnVoid :
910
- # 29| v29_6(void) = AliasedUse : ~m30_6
911
- # 29| v29_7(void) = ExitFunction :
894
+ # 29| v29_1(void) = EnterFunction :
895
+ # 29| m29_2(unknown) = AliasedDefinition :
896
+ # 29| m29_3(unknown) = InitializeNonLocal :
897
+ # 29| m29_4(unknown) = Chi : total:m29_2, partial:m29_3
898
+ # 30| r30_1(glval<ClassWithDestructor2 &>) = VariableAddress[rs] :
899
+ # 30| r30_2(glval<ClassWithDestructor2>) = VariableAddress[#temp30:38] :
900
+ # 30| r30_3(glval<unknown>) = FunctionAddress[returnValue] :
901
+ # 30| r30_4(ClassWithDestructor2) = Call[returnValue] : func:r30_3
902
+ # 30| m30_5(unknown) = ^CallSideEffect : ~m29_4
903
+ # 30| m30_6(unknown) = Chi : total:m29_4, partial:m30_5
904
+ # 30| m30_7(ClassWithDestructor2) = Store[#temp30:38] : &:r30_2, r30_4
905
+ # 30| r30_8(glval<ClassWithDestructor2>) = Convert : r30_2
906
+ # 30| r30_9(ClassWithDestructor2 &) = CopyValue : r30_8
907
+ # 30| m30_10(ClassWithDestructor2 &) = Store[rs] : &:r30_1, r30_9
908
+ # 31| v31_1(void) = NoOp :
909
+ # 31| r31_2(glval<ClassWithDestructor2>) = CopyValue : r30_2
910
+ # 31| r31_3(glval<unknown>) = FunctionAddress[~ClassWithDestructor2] :
911
+ # 31| v31_4(void) = Call[~ClassWithDestructor2] : func:r31_3, this:r31_2
912
+ # 31| m31_5(unknown) = ^CallSideEffect : ~m30_6
913
+ # 31| m31_6(unknown) = Chi : total:m30_6, partial:m31_5
914
+ # 31| v31_7(void) = ^IndirectReadSideEffect[-1] : &:r31_2, m30_7
915
+ # 31| m31_8(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r31_2
916
+ # 31| m31_9(ClassWithDestructor2) = Chi : total:m30_7, partial:m31_8
917
+ # 29| v29_5(void) = ReturnVoid :
918
+ # 29| v29_6(void) = AliasedUse : ~m31_6
919
+ # 29| v29_7(void) = ExitFunction :
912
920
913
921
# 33| void temp_test4()
914
922
# 33| Block 0
@@ -935,16 +943,24 @@ destructors_for_temps.cpp:
935
943
# 35| r35_9(ClassWithDestructor2 &) = CopyValue : r35_8
936
944
# 35| m35_10(ClassWithDestructor2 &) = Store[rs2] : &:r35_1, r35_9
937
945
# 36| v36_1(void) = NoOp :
938
- # 36| r36_2(glval<ClassWithDestructor2>) = VariableAddress[c] :
946
+ # 36| r36_2(glval<ClassWithDestructor2>) = CopyValue : r35_2
939
947
# 36| r36_3(glval<unknown>) = FunctionAddress[~ClassWithDestructor2] :
940
948
# 36| v36_4(void) = Call[~ClassWithDestructor2] : func:r36_3, this:r36_2
941
949
# 36| m36_5(unknown) = ^CallSideEffect : ~m35_6
942
950
# 36| m36_6(unknown) = Chi : total:m35_6, partial:m36_5
943
- # 36| v36_7(void) = ^IndirectReadSideEffect[-1] : &:r36_2, m34_8
951
+ # 36| v36_7(void) = ^IndirectReadSideEffect[-1] : &:r36_2, m35_7
944
952
# 36| m36_8(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r36_2
945
- # 36| m36_9(ClassWithDestructor2) = Chi : total:m34_8, partial:m36_8
953
+ # 36| m36_9(ClassWithDestructor2) = Chi : total:m35_7, partial:m36_8
954
+ # 36| r36_10(glval<ClassWithDestructor2>) = VariableAddress[c] :
955
+ # 36| r36_11(glval<unknown>) = FunctionAddress[~ClassWithDestructor2] :
956
+ # 36| v36_12(void) = Call[~ClassWithDestructor2] : func:r36_11, this:r36_10
957
+ # 36| m36_13(unknown) = ^CallSideEffect : ~m36_6
958
+ # 36| m36_14(unknown) = Chi : total:m36_6, partial:m36_13
959
+ # 36| v36_15(void) = ^IndirectReadSideEffect[-1] : &:r36_10, m34_8
960
+ # 36| m36_16(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r36_10
961
+ # 36| m36_17(ClassWithDestructor2) = Chi : total:m34_8, partial:m36_16
946
962
# 33| v33_5(void) = ReturnVoid :
947
- # 33| v33_6(void) = AliasedUse : ~m36_6
963
+ # 33| v33_6(void) = AliasedUse : ~m36_14
948
964
# 33| v33_7(void) = ExitFunction :
949
965
950
966
# 38| void temp_test5(bool)
@@ -8882,16 +8898,24 @@ ir.cpp:
8882
8898
# 1425| m1425_5(unknown) = Chi : total:m1423_11, partial:m1425_4
8883
8899
# 1425| m1425_6(String) = Store[#temp1425:5] : &:r1425_1, r1425_3
8884
8900
# 1426| v1426_1(void) = NoOp :
8885
- # 1426| r1426_2(glval<String>) = VariableAddress[s] :
8901
+ # 1426| r1426_2(glval<String>) = CopyValue : r1416_2
8886
8902
# 1426| r1426_3(glval<unknown>) = FunctionAddress[~String] :
8887
8903
# 1426| v1426_4(void) = Call[~String] : func:r1426_3, this:r1426_2
8888
8904
# 1426| m1426_5(unknown) = ^CallSideEffect : ~m1425_5
8889
8905
# 1426| m1426_6(unknown) = Chi : total:m1425_5, partial:m1426_5
8890
- # 1426| v1426_7(void) = ^IndirectReadSideEffect[-1] : &:r1426_2, m1415_6
8906
+ # 1426| v1426_7(void) = ^IndirectReadSideEffect[-1] : &:r1426_2, m1416_7
8891
8907
# 1426| m1426_8(String) = ^IndirectMayWriteSideEffect[-1] : &:r1426_2
8892
- # 1426| m1426_9(String) = Chi : total:m1415_6, partial:m1426_8
8908
+ # 1426| m1426_9(String) = Chi : total:m1416_7, partial:m1426_8
8909
+ # 1426| r1426_10(glval<String>) = VariableAddress[s] :
8910
+ # 1426| r1426_11(glval<unknown>) = FunctionAddress[~String] :
8911
+ # 1426| v1426_12(void) = Call[~String] : func:r1426_11, this:r1426_10
8912
+ # 1426| m1426_13(unknown) = ^CallSideEffect : ~m1426_6
8913
+ # 1426| m1426_14(unknown) = Chi : total:m1426_6, partial:m1426_13
8914
+ # 1426| v1426_15(void) = ^IndirectReadSideEffect[-1] : &:r1426_10, m1415_6
8915
+ # 1426| m1426_16(String) = ^IndirectMayWriteSideEffect[-1] : &:r1426_10
8916
+ # 1426| m1426_17(String) = Chi : total:m1415_6, partial:m1426_16
8893
8917
# 1414| v1414_5(void) = ReturnVoid :
8894
- # 1414| v1414_6(void) = AliasedUse : ~m1426_6
8918
+ # 1414| v1414_6(void) = AliasedUse : ~m1426_14
8895
8919
# 1414| v1414_7(void) = ExitFunction :
8896
8920
8897
8921
# 1428| void temporary_destructor_only()
@@ -8973,16 +8997,24 @@ ir.cpp:
8973
8997
# 1438| v1438_7(void) = ^IndirectReadSideEffect[-1] : &:r1438_2, m1431_2
8974
8998
# 1438| m1438_8(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1438_2
8975
8999
# 1438| m1438_9(destructor_only) = Chi : total:m1431_2, partial:m1438_8
8976
- # 1438| r1438_10(glval<destructor_only>) = VariableAddress[d] :
9000
+ # 1438| r1438_10(glval<destructor_only>) = CopyValue : r1430_2
8977
9001
# 1438| r1438_11(glval<unknown>) = FunctionAddress[~destructor_only] :
8978
9002
# 1438| v1438_12(void) = Call[~destructor_only] : func:r1438_11, this:r1438_10
8979
9003
# 1438| m1438_13(unknown) = ^CallSideEffect : ~m1438_6
8980
9004
# 1438| m1438_14(unknown) = Chi : total:m1438_6, partial:m1438_13
8981
- # 1438| v1438_15(void) = ^IndirectReadSideEffect[-1] : &:r1438_10, m1429_6
9005
+ # 1438| v1438_15(void) = ^IndirectReadSideEffect[-1] : &:r1438_10, m1430_7
8982
9006
# 1438| m1438_16(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1438_10
8983
- # 1438| m1438_17(destructor_only) = Chi : total:m1429_6, partial:m1438_16
9007
+ # 1438| m1438_17(destructor_only) = Chi : total:m1430_7, partial:m1438_16
9008
+ # 1438| r1438_18(glval<destructor_only>) = VariableAddress[d] :
9009
+ # 1438| r1438_19(glval<unknown>) = FunctionAddress[~destructor_only] :
9010
+ # 1438| v1438_20(void) = Call[~destructor_only] : func:r1438_19, this:r1438_18
9011
+ # 1438| m1438_21(unknown) = ^CallSideEffect : ~m1438_14
9012
+ # 1438| m1438_22(unknown) = Chi : total:m1438_14, partial:m1438_21
9013
+ # 1438| v1438_23(void) = ^IndirectReadSideEffect[-1] : &:r1438_18, m1429_6
9014
+ # 1438| m1438_24(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1438_18
9015
+ # 1438| m1438_25(destructor_only) = Chi : total:m1429_6, partial:m1438_24
8984
9016
# 1428| v1428_5(void) = ReturnVoid :
8985
- # 1428| v1428_6(void) = AliasedUse : ~m1438_14
9017
+ # 1428| v1428_6(void) = AliasedUse : ~m1438_22
8986
9018
# 1428| v1428_7(void) = ExitFunction :
8987
9019
8988
9020
# 1440| void temporary_copy_constructor()
0 commit comments