C++: accept test changes

This commit is contained in:
Robert Marsh
2019-10-22 14:27:43 -07:00
parent bea9a1cbb2
commit e8dd0227ae
3 changed files with 226 additions and 191 deletions

View File

@@ -1,3 +1,4 @@
| clang.cpp:12:9:12:20 | clang.cpp:18:8:18:19 | AST only |
| clang.cpp:12:9:12:20 | clang.cpp:22:8:22:20 | AST only |
| clang.cpp:28:27:28:32 | clang.cpp:29:27:29:28 | AST only |
| clang.cpp:28:27:28:32 | clang.cpp:30:27:30:34 | AST only |

View File

@@ -1,7 +1,5 @@
| acrossLinkTargets.cpp:12:8:12:8 | Convert: (int)... | acrossLinkTargets.cpp:19:27:19:32 | Call: call to source |
| acrossLinkTargets.cpp:12:8:12:8 | Load: x | acrossLinkTargets.cpp:19:27:19:32 | Call: call to source |
| clang.cpp:18:8:18:19 | Convert: (const int *)... | clang.cpp:12:9:12:20 | InitializeParameter: sourceArray1 |
| clang.cpp:18:8:18:19 | Load: sourceArray1 | clang.cpp:12:9:12:20 | InitializeParameter: sourceArray1 |
| clang.cpp:37:10:37:11 | Load: m2 | clang.cpp:34:32:34:37 | Call: call to source |
| clang.cpp:41:18:41:19 | Load: m2 | clang.cpp:39:42:39:47 | Call: call to source |
| clang.cpp:45:17:45:18 | Load: m2 | clang.cpp:43:35:43:40 | Call: call to source |

View File

@@ -259,118 +259,136 @@ test.cpp:
# 39| valnum = r0_7
# 39| m0_8(int *) = InitializeParameter[p2] : &:r0_7
# 39| valnum = m0_8
# 40| r0_9(glval<int>) = VariableAddress[x] :
# 40| valnum = r0_9
# 40| m0_10(int) = Uninitialized[x] : &:r0_9
# 39| r0_9(int *) = Load : &:r0_7, m0_8
# 39| valnum = m0_8
# 39| m0_10(unknown) = InitializeIndirection[p2] : &:r0_9
# 39| valnum = unique
# 39| m0_11(unknown) = Chi : total:m0_1, partial:m0_10
# 39| valnum = unique
# 40| r0_12(glval<int>) = VariableAddress[x] :
# 40| valnum = r0_12
# 40| m0_13(int) = Uninitialized[x] : &:r0_12
# 40| valnum = unique
# 40| r0_11(glval<int>) = VariableAddress[y] :
# 40| valnum = r0_11
# 40| m0_12(int) = Uninitialized[y] : &:r0_11
# 40| r0_14(glval<int>) = VariableAddress[y] :
# 40| valnum = r0_14
# 40| m0_15(int) = Uninitialized[y] : &:r0_14
# 40| valnum = unique
# 41| r0_13(glval<unsigned char>) = VariableAddress[b] :
# 41| r0_16(glval<unsigned char>) = VariableAddress[b] :
# 41| valnum = unique
# 41| m0_14(unsigned char) = Uninitialized[b] : &:r0_13
# 41| m0_17(unsigned char) = Uninitialized[b] : &:r0_16
# 41| valnum = unique
# 43| r0_15(glval<int>) = VariableAddress[p0] :
# 43| r0_18(glval<int>) = VariableAddress[p0] :
# 43| valnum = r0_3
# 43| r0_16(int) = Load : &:r0_15, m0_4
# 43| r0_19(int) = Load : &:r0_18, m0_4
# 43| valnum = m0_4
# 43| r0_17(glval<int>) = VariableAddress[p1] :
# 43| r0_20(glval<int>) = VariableAddress[p1] :
# 43| valnum = r0_5
# 43| r0_18(int) = Load : &:r0_17, m0_6
# 43| r0_21(int) = Load : &:r0_20, m0_6
# 43| valnum = m0_6
# 43| r0_19(int) = Add : r0_16, r0_18
# 43| valnum = r0_19
# 43| r0_20(glval<int>) = VariableAddress[global03] :
# 43| valnum = r0_20
# 43| r0_21(int) = Load : &:r0_20, ~m0_1
# 43| valnum = unique
# 43| r0_22(int) = Add : r0_19, r0_21
# 43| valnum = r0_22
# 43| r0_23(glval<int>) = VariableAddress[x] :
# 43| valnum = r0_9
# 43| m0_24(int) = Store : &:r0_23, r0_22
# 43| valnum = r0_22
# 44| r0_25(int) = Constant[0] :
# 44| valnum = r0_25
# 44| r0_26(glval<int *>) = VariableAddress[p2] :
# 43| r0_23(glval<int>) = VariableAddress[global03] :
# 43| valnum = r0_23
# 43| r0_24(int) = Load : &:r0_23, ~m0_11
# 43| valnum = unique
# 43| r0_25(int) = Add : r0_22, r0_24
# 43| valnum = r0_25
# 43| r0_26(glval<int>) = VariableAddress[x] :
# 43| valnum = r0_12
# 43| m0_27(int) = Store : &:r0_26, r0_25
# 43| valnum = r0_25
# 44| r0_28(int) = Constant[0] :
# 44| valnum = r0_28
# 44| r0_29(glval<int *>) = VariableAddress[p2] :
# 44| valnum = r0_7
# 44| r0_27(int *) = Load : &:r0_26, m0_8
# 44| r0_30(int *) = Load : &:r0_29, m0_8
# 44| valnum = m0_8
# 44| m0_28(int) = Store : &:r0_27, r0_25
# 44| valnum = r0_25
# 44| m0_29(unknown) = Chi : total:m0_1, partial:m0_28
# 44| m0_31(int) = Store : &:r0_30, r0_28
# 44| valnum = r0_28
# 44| m0_32(unknown) = Chi : total:m0_11, partial:m0_31
# 44| valnum = unique
# 45| r0_30(glval<int>) = VariableAddress[p0] :
# 45| r0_33(glval<int>) = VariableAddress[p0] :
# 45| valnum = r0_3
# 45| r0_31(int) = Load : &:r0_30, m0_4
# 45| r0_34(int) = Load : &:r0_33, m0_4
# 45| valnum = m0_4
# 45| r0_32(glval<int>) = VariableAddress[p1] :
# 45| r0_35(glval<int>) = VariableAddress[p1] :
# 45| valnum = r0_5
# 45| r0_33(int) = Load : &:r0_32, m0_6
# 45| r0_36(int) = Load : &:r0_35, m0_6
# 45| valnum = m0_6
# 45| r0_34(int) = Add : r0_31, r0_33
# 45| valnum = r0_19
# 45| r0_35(glval<int>) = VariableAddress[global03] :
# 45| valnum = r0_20
# 45| r0_36(int) = Load : &:r0_35, ~m0_29
# 45| valnum = unique
# 45| r0_37(int) = Add : r0_34, r0_36
# 45| valnum = r0_37
# 45| r0_38(glval<int>) = VariableAddress[x] :
# 45| valnum = r0_9
# 45| m0_39(int) = Store : &:r0_38, r0_37
# 45| valnum = r0_37
# 46| r0_40(glval<int>) = VariableAddress[x] :
# 46| valnum = r0_9
# 46| r0_41(int) = Load : &:r0_40, m0_39
# 46| valnum = r0_37
# 46| r0_42(glval<int>) = VariableAddress[y] :
# 46| valnum = r0_11
# 46| m0_43(int) = Store : &:r0_42, r0_41
# 46| valnum = r0_37
# 47| v0_44(void) = NoOp :
# 39| r0_45(glval<int>) = VariableAddress[#return] :
# 45| valnum = r0_22
# 45| r0_38(glval<int>) = VariableAddress[global03] :
# 45| valnum = r0_23
# 45| r0_39(int) = Load : &:r0_38, ~m0_32
# 45| valnum = unique
# 45| r0_40(int) = Add : r0_37, r0_39
# 45| valnum = r0_40
# 45| r0_41(glval<int>) = VariableAddress[x] :
# 45| valnum = r0_12
# 45| m0_42(int) = Store : &:r0_41, r0_40
# 45| valnum = r0_40
# 46| r0_43(glval<int>) = VariableAddress[x] :
# 46| valnum = r0_12
# 46| r0_44(int) = Load : &:r0_43, m0_42
# 46| valnum = r0_40
# 46| r0_45(glval<int>) = VariableAddress[y] :
# 46| valnum = r0_14
# 46| m0_46(int) = Store : &:r0_45, r0_44
# 46| valnum = r0_40
# 47| v0_47(void) = NoOp :
# 39| r0_48(glval<int>) = VariableAddress[#return] :
# 39| valnum = unique
# 39| v0_46(void) = ReturnValue : &:r0_45
# 39| v0_47(void) = UnmodeledUse : mu*
# 39| v0_48(void) = ExitFunction :
# 39| v0_49(void) = ReturnValue : &:r0_48
# 39| v0_50(void) = UnmodeledUse : mu*
# 39| v0_51(void) = ExitFunction :
# 49| unsigned int my_strspn(char const*, char const*)
# 49| Block 0
# 49| v0_0(void) = EnterFunction :
# 49| m0_1(unknown) = AliasedDefinition :
# 49| v0_0(void) = EnterFunction :
# 49| m0_1(unknown) = AliasedDefinition :
# 49| valnum = unique
# 49| mu0_2(unknown) = UnmodeledDefinition :
# 49| mu0_2(unknown) = UnmodeledDefinition :
# 49| valnum = unique
# 49| r0_3(glval<char *>) = VariableAddress[str] :
# 49| r0_3(glval<char *>) = VariableAddress[str] :
# 49| valnum = r0_3
# 49| m0_4(char *) = InitializeParameter[str] : &:r0_3
# 49| m0_4(char *) = InitializeParameter[str] : &:r0_3
# 49| valnum = m0_4
# 49| r0_5(glval<char *>) = VariableAddress[chars] :
# 49| valnum = r0_5
# 49| m0_6(char *) = InitializeParameter[chars] : &:r0_5
# 49| valnum = m0_6
# 50| r0_7(glval<char *>) = VariableAddress[ptr] :
# 50| valnum = r0_7
# 50| m0_8(char *) = Uninitialized[ptr] : &:r0_7
# 49| r0_5(char *) = Load : &:r0_3, m0_4
# 49| valnum = m0_4
# 49| m0_6(unknown) = InitializeIndirection[str] : &:r0_5
# 49| valnum = unique
# 49| m0_7(unknown) = Chi : total:m0_1, partial:m0_6
# 49| valnum = unique
# 49| r0_8(glval<char *>) = VariableAddress[chars] :
# 49| valnum = r0_8
# 49| m0_9(char *) = InitializeParameter[chars] : &:r0_8
# 49| valnum = m0_9
# 49| r0_10(char *) = Load : &:r0_8, m0_9
# 49| valnum = m0_9
# 49| m0_11(unknown) = InitializeIndirection[chars] : &:r0_10
# 49| valnum = unique
# 49| m0_12(unknown) = Chi : total:m0_7, partial:m0_11
# 49| valnum = unique
# 50| r0_13(glval<char *>) = VariableAddress[ptr] :
# 50| valnum = r0_13
# 50| m0_14(char *) = Uninitialized[ptr] : &:r0_13
# 50| valnum = unique
# 51| r0_9(glval<unsigned int>) = VariableAddress[result] :
# 51| valnum = r0_9
# 51| r0_10(unsigned int) = Constant[0] :
# 51| valnum = r0_10
# 51| m0_11(unsigned int) = Store : &:r0_9, r0_10
# 51| valnum = r0_10
# 51| r0_15(glval<unsigned int>) = VariableAddress[result] :
# 51| valnum = r0_15
# 51| r0_16(unsigned int) = Constant[0] :
# 51| valnum = r0_16
# 51| m0_17(unsigned int) = Store : &:r0_15, r0_16
# 51| valnum = r0_16
#-----| Goto -> Block 1
# 53| Block 1
# 53| m1_0(unsigned int) = Phi : from 0:m0_11, from 8:m8_4
# 53| m1_0(unsigned int) = Phi : from 0:m0_17, from 8:m8_4
# 53| valnum = m1_0
# 53| r1_1(glval<char *>) = VariableAddress[str] :
# 53| valnum = r0_3
# 53| r1_2(char *) = Load : &:r1_1, m0_4
# 53| valnum = m0_4
# 53| r1_3(char) = Load : &:r1_2, ~m0_1
# 53| r1_3(char) = Load : &:r1_2, ~m0_12
# 53| valnum = unique
# 53| r1_4(int) = Convert : r1_3
# 53| valnum = unique
@@ -384,23 +402,23 @@ test.cpp:
# 55| Block 2
# 55| r2_0(glval<char *>) = VariableAddress[chars] :
# 55| valnum = r0_5
# 55| r2_1(char *) = Load : &:r2_0, m0_6
# 55| valnum = m0_6
# 55| valnum = r0_8
# 55| r2_1(char *) = Load : &:r2_0, m0_9
# 55| valnum = m0_9
# 55| r2_2(glval<char *>) = VariableAddress[ptr] :
# 55| valnum = r0_7
# 55| valnum = r0_13
# 55| m2_3(char *) = Store : &:r2_2, r2_1
# 55| valnum = m0_6
# 55| valnum = m0_9
#-----| Goto -> Block 3
# 56| Block 3
# 56| m3_0(char *) = Phi : from 2:m2_3, from 5:m5_4
# 56| valnum = m3_0
# 56| r3_1(glval<char *>) = VariableAddress[ptr] :
# 56| valnum = r0_7
# 56| valnum = r0_13
# 56| r3_2(char *) = Load : &:r3_1, m3_0
# 56| valnum = m3_0
# 56| r3_3(char) = Load : &:r3_2, ~m0_1
# 56| r3_3(char) = Load : &:r3_2, ~m0_12
# 56| valnum = unique
# 56| r3_4(int) = Convert : r3_3
# 56| valnum = unique
@@ -408,7 +426,7 @@ test.cpp:
# 56| valnum = r0_3
# 56| r3_6(char *) = Load : &:r3_5, m0_4
# 56| valnum = m0_4
# 56| r3_7(char) = Load : &:r3_6, ~m0_1
# 56| r3_7(char) = Load : &:r3_6, ~m0_12
# 56| valnum = unique
# 56| r3_8(int) = Convert : r3_7
# 56| valnum = unique
@@ -420,10 +438,10 @@ test.cpp:
# 56| Block 4
# 56| r4_0(glval<char *>) = VariableAddress[ptr] :
# 56| valnum = r0_7
# 56| valnum = r0_13
# 56| r4_1(char *) = Load : &:r4_0, m3_0
# 56| valnum = m3_0
# 56| r4_2(char) = Load : &:r4_1, ~m0_1
# 56| r4_2(char) = Load : &:r4_1, ~m0_12
# 56| valnum = unique
# 56| r4_3(int) = Convert : r4_2
# 56| valnum = unique
@@ -437,7 +455,7 @@ test.cpp:
# 56| Block 5
# 56| r5_0(glval<char *>) = VariableAddress[ptr] :
# 56| valnum = r0_7
# 56| valnum = r0_13
# 56| r5_1(char *) = Load : &:r5_0, m3_0
# 56| valnum = m3_0
# 56| r5_2(int) = Constant[1] :
@@ -450,10 +468,10 @@ test.cpp:
# 59| Block 6
# 59| r6_0(glval<char *>) = VariableAddress[ptr] :
# 59| valnum = r0_7
# 59| valnum = r0_13
# 59| r6_1(char *) = Load : &:r6_0, m3_0
# 59| valnum = m3_0
# 59| r6_2(char) = Load : &:r6_1, ~m0_1
# 59| r6_2(char) = Load : &:r6_1, ~m0_12
# 59| valnum = unique
# 59| r6_3(int) = Convert : r6_2
# 59| valnum = unique
@@ -471,7 +489,7 @@ test.cpp:
# 62| Block 8
# 62| r8_0(glval<unsigned int>) = VariableAddress[result] :
# 62| valnum = r0_9
# 62| valnum = r0_15
# 62| r8_1(unsigned int) = Load : &:r8_0, m1_0
# 62| valnum = m1_0
# 62| r8_2(unsigned int) = Constant[1] :
@@ -487,7 +505,7 @@ test.cpp:
# 65| r9_1(glval<unsigned int>) = VariableAddress[#return] :
# 65| valnum = r9_1
# 65| r9_2(glval<unsigned int>) = VariableAddress[result] :
# 65| valnum = r0_9
# 65| valnum = r0_15
# 65| r9_3(unsigned int) = Load : &:r9_2, m1_0
# 65| valnum = m1_0
# 65| m9_4(unsigned int) = Store : &:r9_1, r9_3
@@ -500,60 +518,66 @@ test.cpp:
# 75| void test04(two_values*)
# 75| Block 0
# 75| v0_0(void) = EnterFunction :
# 75| m0_1(unknown) = AliasedDefinition :
# 75| v0_0(void) = EnterFunction :
# 75| m0_1(unknown) = AliasedDefinition :
# 75| valnum = unique
# 75| mu0_2(unknown) = UnmodeledDefinition :
# 75| mu0_2(unknown) = UnmodeledDefinition :
# 75| valnum = unique
# 75| r0_3(glval<two_values *>) = VariableAddress[vals] :
# 75| r0_3(glval<two_values *>) = VariableAddress[vals] :
# 75| valnum = r0_3
# 75| m0_4(two_values *) = InitializeParameter[vals] : &:r0_3
# 75| m0_4(two_values *) = InitializeParameter[vals] : &:r0_3
# 75| valnum = m0_4
# 77| r0_5(glval<signed short>) = VariableAddress[v] :
# 77| valnum = r0_5
# 77| r0_6(glval<unknown>) = FunctionAddress[getAValue] :
# 75| r0_5(two_values *) = Load : &:r0_3, m0_4
# 75| valnum = m0_4
# 75| m0_6(unknown) = InitializeIndirection[vals] : &:r0_5
# 75| valnum = unique
# 75| m0_7(unknown) = Chi : total:m0_1, partial:m0_6
# 75| valnum = unique
# 77| r0_8(glval<signed short>) = VariableAddress[v] :
# 77| valnum = r0_8
# 77| r0_9(glval<unknown>) = FunctionAddress[getAValue] :
# 77| valnum = unique
# 77| r0_7(int) = Call : func:r0_6
# 77| r0_10(int) = Call : func:r0_9
# 77| valnum = unique
# 77| m0_8(unknown) = ^CallSideEffect : ~m0_1
# 77| m0_11(unknown) = ^CallSideEffect : ~m0_7
# 77| valnum = unique
# 77| m0_9(unknown) = Chi : total:m0_1, partial:m0_8
# 77| m0_12(unknown) = Chi : total:m0_7, partial:m0_11
# 77| valnum = unique
# 77| r0_10(signed short) = Convert : r0_7
# 77| valnum = r0_10
# 77| m0_11(signed short) = Store : &:r0_5, r0_10
# 77| valnum = r0_10
# 79| r0_12(glval<signed short>) = VariableAddress[v] :
# 79| valnum = r0_5
# 79| r0_13(signed short) = Load : &:r0_12, m0_11
# 79| valnum = r0_10
# 79| r0_14(int) = Convert : r0_13
# 77| r0_13(signed short) = Convert : r0_10
# 77| valnum = r0_13
# 77| m0_14(signed short) = Store : &:r0_8, r0_13
# 77| valnum = r0_13
# 79| r0_15(glval<signed short>) = VariableAddress[v] :
# 79| valnum = r0_8
# 79| r0_16(signed short) = Load : &:r0_15, m0_14
# 79| valnum = r0_13
# 79| r0_17(int) = Convert : r0_16
# 79| valnum = unique
# 79| r0_15(glval<two_values *>) = VariableAddress[vals] :
# 79| r0_18(glval<two_values *>) = VariableAddress[vals] :
# 79| valnum = r0_3
# 79| r0_16(two_values *) = Load : &:r0_15, m0_4
# 79| r0_19(two_values *) = Load : &:r0_18, m0_4
# 79| valnum = m0_4
# 79| r0_17(glval<signed short>) = FieldAddress[val1] : r0_16
# 79| r0_20(glval<signed short>) = FieldAddress[val1] : r0_19
# 79| valnum = unique
# 79| r0_18(signed short) = Load : &:r0_17, ~m0_9
# 79| r0_21(signed short) = Load : &:r0_20, ~m0_12
# 79| valnum = unique
# 79| r0_19(int) = Convert : r0_18
# 79| r0_22(int) = Convert : r0_21
# 79| valnum = unique
# 79| r0_20(glval<two_values *>) = VariableAddress[vals] :
# 79| r0_23(glval<two_values *>) = VariableAddress[vals] :
# 79| valnum = r0_3
# 79| r0_21(two_values *) = Load : &:r0_20, m0_4
# 79| r0_24(two_values *) = Load : &:r0_23, m0_4
# 79| valnum = m0_4
# 79| r0_22(glval<signed short>) = FieldAddress[val2] : r0_21
# 79| r0_25(glval<signed short>) = FieldAddress[val2] : r0_24
# 79| valnum = unique
# 79| r0_23(signed short) = Load : &:r0_22, ~m0_9
# 79| r0_26(signed short) = Load : &:r0_25, ~m0_12
# 79| valnum = unique
# 79| r0_24(int) = Convert : r0_23
# 79| r0_27(int) = Convert : r0_26
# 79| valnum = unique
# 79| r0_25(int) = Add : r0_19, r0_24
# 79| r0_28(int) = Add : r0_22, r0_27
# 79| valnum = unique
# 79| r0_26(bool) = CompareLT : r0_14, r0_25
# 79| r0_29(bool) = CompareLT : r0_17, r0_28
# 79| valnum = unique
# 79| v0_27(void) = ConditionalBranch : r0_26
# 79| v0_30(void) = ConditionalBranch : r0_29
#-----| False -> Block 2
#-----| True -> Block 1
@@ -562,14 +586,14 @@ test.cpp:
# 80| valnum = unique
# 80| r1_1(int) = Call : func:r1_0
# 80| valnum = unique
# 80| m1_2(unknown) = ^CallSideEffect : ~m0_9
# 80| m1_2(unknown) = ^CallSideEffect : ~m0_12
# 80| valnum = unique
# 80| m1_3(unknown) = Chi : total:m0_9, partial:m1_2
# 80| m1_3(unknown) = Chi : total:m0_12, partial:m1_2
# 80| valnum = unique
# 80| r1_4(signed short) = Convert : r1_1
# 80| valnum = r1_4
# 80| r1_5(glval<signed short>) = VariableAddress[v] :
# 80| valnum = r0_5
# 80| valnum = r0_8
# 80| m1_6(signed short) = Store : &:r1_5, r1_4
# 80| valnum = r1_4
#-----| Goto -> Block 2
@@ -582,36 +606,42 @@ test.cpp:
# 84| void test05(int, int, void*)
# 84| Block 0
# 84| v0_0(void) = EnterFunction :
# 84| m0_1(unknown) = AliasedDefinition :
# 84| v0_0(void) = EnterFunction :
# 84| m0_1(unknown) = AliasedDefinition :
# 84| valnum = unique
# 84| mu0_2(unknown) = UnmodeledDefinition :
# 84| mu0_2(unknown) = UnmodeledDefinition :
# 84| valnum = unique
# 84| r0_3(glval<int>) = VariableAddress[x] :
# 84| r0_3(glval<int>) = VariableAddress[x] :
# 84| valnum = r0_3
# 84| m0_4(int) = InitializeParameter[x] : &:r0_3
# 84| m0_4(int) = InitializeParameter[x] : &:r0_3
# 84| valnum = m0_4
# 84| r0_5(glval<int>) = VariableAddress[y] :
# 84| r0_5(glval<int>) = VariableAddress[y] :
# 84| valnum = r0_5
# 84| m0_6(int) = InitializeParameter[y] : &:r0_5
# 84| m0_6(int) = InitializeParameter[y] : &:r0_5
# 84| valnum = m0_6
# 84| r0_7(glval<void *>) = VariableAddress[p] :
# 84| r0_7(glval<void *>) = VariableAddress[p] :
# 84| valnum = r0_7
# 84| m0_8(void *) = InitializeParameter[p] : &:r0_7
# 84| m0_8(void *) = InitializeParameter[p] : &:r0_7
# 84| valnum = m0_8
# 86| r0_9(glval<int>) = VariableAddress[v] :
# 86| valnum = r0_9
# 86| m0_10(int) = Uninitialized[v] : &:r0_9
# 84| r0_9(void *) = Load : &:r0_7, m0_8
# 84| valnum = m0_8
# 84| m0_10(unknown) = InitializeIndirection[p] : &:r0_9
# 84| valnum = unique
# 84| m0_11(unknown) = Chi : total:m0_1, partial:m0_10
# 84| valnum = unique
# 86| r0_12(glval<int>) = VariableAddress[v] :
# 86| valnum = r0_12
# 86| m0_13(int) = Uninitialized[v] : &:r0_12
# 86| valnum = unique
# 88| r0_11(glval<void *>) = VariableAddress[p] :
# 88| r0_14(glval<void *>) = VariableAddress[p] :
# 88| valnum = r0_7
# 88| r0_12(void *) = Load : &:r0_11, m0_8
# 88| r0_15(void *) = Load : &:r0_14, m0_8
# 88| valnum = m0_8
# 88| r0_13(void *) = Constant[0] :
# 88| r0_16(void *) = Constant[0] :
# 88| valnum = unique
# 88| r0_14(bool) = CompareNE : r0_12, r0_13
# 88| r0_17(bool) = CompareNE : r0_15, r0_16
# 88| valnum = unique
# 88| v0_15(void) = ConditionalBranch : r0_14
# 88| v0_18(void) = ConditionalBranch : r0_17
#-----| False -> Block 2
#-----| True -> Block 1
@@ -645,7 +675,7 @@ test.cpp:
# 88| r3_2(int) = Load : &:r3_1, m3_0
# 88| valnum = m3_0
# 88| r3_3(glval<int>) = VariableAddress[v] :
# 88| valnum = r0_9
# 88| valnum = r0_12
# 88| m3_4(int) = Store : &:r3_3, r3_2
# 88| valnum = m3_0
# 89| v3_5(void) = NoOp :
@@ -695,55 +725,61 @@ test.cpp:
# 104| valnum = r0_3
# 104| m0_4(Derived *) = InitializeParameter[pd] : &:r0_3
# 104| valnum = m0_4
# 105| r0_5(glval<int>) = VariableAddress[x] :
# 104| r0_5(Derived *) = Load : &:r0_3, m0_4
# 104| valnum = m0_4
# 104| m0_6(unknown) = InitializeIndirection[pd] : &:r0_5
# 104| valnum = unique
# 104| m0_7(unknown) = Chi : total:m0_1, partial:m0_6
# 104| valnum = unique
# 105| r0_8(glval<int>) = VariableAddress[x] :
# 105| valnum = unique
# 105| r0_6(glval<Derived *>) = VariableAddress[pd] :
# 105| r0_9(glval<Derived *>) = VariableAddress[pd] :
# 105| valnum = r0_3
# 105| r0_7(Derived *) = Load : &:r0_6, m0_4
# 105| r0_10(Derived *) = Load : &:r0_9, m0_4
# 105| valnum = m0_4
# 105| r0_8(Base *) = ConvertToBase[Derived : Base] : r0_7
# 105| valnum = r0_8
# 105| r0_9(glval<int>) = FieldAddress[b] : r0_8
# 105| valnum = r0_9
# 105| r0_10(int) = Load : &:r0_9, ~m0_1
# 105| valnum = r0_10
# 105| m0_11(int) = Store : &:r0_5, r0_10
# 105| valnum = r0_10
# 106| r0_12(glval<Base *>) = VariableAddress[pb] :
# 106| valnum = r0_12
# 106| r0_13(glval<Derived *>) = VariableAddress[pd] :
# 105| r0_11(Base *) = ConvertToBase[Derived : Base] : r0_10
# 105| valnum = r0_11
# 105| r0_12(glval<int>) = FieldAddress[b] : r0_11
# 105| valnum = r0_12
# 105| r0_13(int) = Load : &:r0_12, ~m0_7
# 105| valnum = r0_13
# 105| m0_14(int) = Store : &:r0_8, r0_13
# 105| valnum = r0_13
# 106| r0_15(glval<Base *>) = VariableAddress[pb] :
# 106| valnum = r0_15
# 106| r0_16(glval<Derived *>) = VariableAddress[pd] :
# 106| valnum = r0_3
# 106| r0_14(Derived *) = Load : &:r0_13, m0_4
# 106| r0_17(Derived *) = Load : &:r0_16, m0_4
# 106| valnum = m0_4
# 106| r0_15(Base *) = ConvertToBase[Derived : Base] : r0_14
# 106| valnum = r0_8
# 106| m0_16(Base *) = Store : &:r0_12, r0_15
# 106| valnum = r0_8
# 107| r0_17(glval<int>) = VariableAddress[y] :
# 107| valnum = r0_17
# 107| r0_18(glval<Base *>) = VariableAddress[pb] :
# 106| r0_18(Base *) = ConvertToBase[Derived : Base] : r0_17
# 106| valnum = r0_11
# 106| m0_19(Base *) = Store : &:r0_15, r0_18
# 106| valnum = r0_11
# 107| r0_20(glval<int>) = VariableAddress[y] :
# 107| valnum = r0_20
# 107| r0_21(glval<Base *>) = VariableAddress[pb] :
# 107| valnum = r0_15
# 107| r0_22(Base *) = Load : &:r0_21, m0_19
# 107| valnum = r0_11
# 107| r0_23(glval<int>) = FieldAddress[b] : r0_22
# 107| valnum = r0_12
# 107| r0_19(Base *) = Load : &:r0_18, m0_16
# 107| valnum = r0_8
# 107| r0_20(glval<int>) = FieldAddress[b] : r0_19
# 107| valnum = r0_9
# 107| r0_21(int) = Load : &:r0_20, ~m0_1
# 107| valnum = r0_21
# 107| m0_22(int) = Store : &:r0_17, r0_21
# 107| valnum = r0_21
# 109| r0_23(glval<int>) = VariableAddress[#return] :
# 109| valnum = r0_23
# 109| r0_24(glval<int>) = VariableAddress[y] :
# 109| valnum = r0_17
# 109| r0_25(int) = Load : &:r0_24, m0_22
# 109| valnum = r0_21
# 109| m0_26(int) = Store : &:r0_23, r0_25
# 109| valnum = r0_21
# 104| r0_27(glval<int>) = VariableAddress[#return] :
# 104| valnum = r0_23
# 104| v0_28(void) = ReturnValue : &:r0_27, m0_26
# 104| v0_29(void) = UnmodeledUse : mu*
# 104| v0_30(void) = ExitFunction :
# 107| r0_24(int) = Load : &:r0_23, ~m0_7
# 107| valnum = r0_24
# 107| m0_25(int) = Store : &:r0_20, r0_24
# 107| valnum = r0_24
# 109| r0_26(glval<int>) = VariableAddress[#return] :
# 109| valnum = r0_26
# 109| r0_27(glval<int>) = VariableAddress[y] :
# 109| valnum = r0_20
# 109| r0_28(int) = Load : &:r0_27, m0_25
# 109| valnum = r0_24
# 109| m0_29(int) = Store : &:r0_26, r0_28
# 109| valnum = r0_24
# 104| r0_30(glval<int>) = VariableAddress[#return] :
# 104| valnum = r0_26
# 104| v0_31(void) = ReturnValue : &:r0_30, m0_29
# 104| v0_32(void) = UnmodeledUse : mu*
# 104| v0_33(void) = ExitFunction :
# 112| void test06()
# 112| Block 0