mirror of
https://github.com/github/codeql.git
synced 2025-12-16 16:53:25 +01:00
C++: fix tests: frontend no longer optimises dynamic_cast to base type
This commit is contained in:
@@ -223,8 +223,8 @@ void DynamicCast() {
|
||||
PolymorphicBase* pb = &b;
|
||||
PolymorphicDerived* pd = &d;
|
||||
|
||||
// These two casts are represented as BaseClassCasts because they can be resolved at compile time.
|
||||
pb = dynamic_cast<PolymorphicBase*>(pd);
|
||||
// These two casts were previously represented as BaseClassCasts because they were resolved at compile time, but the front-end no longer performs this optimization.
|
||||
pb = dynamic_cast<PolymorphicBase*>(pd);
|
||||
PolymorphicBase& rb = dynamic_cast<PolymorphicBase&>(d);
|
||||
|
||||
pd = dynamic_cast<PolymorphicDerived*>(pb);
|
||||
|
||||
@@ -137,8 +137,8 @@
|
||||
| conversions.cpp:207:7:207:31 | reinterpret_cast<long>... | pointer to integral conversion | prval | long | void * |
|
||||
| conversions.cpp:208:7:208:14 | (void *)... | integral to pointer conversion | prval | void * | long |
|
||||
| conversions.cpp:209:7:209:32 | reinterpret_cast<void *>... | integral to pointer conversion | prval | void * | long |
|
||||
| conversions.cpp:227:8:227:41 | (PolymorphicBase *)... | base class conversion | prval | PolymorphicBase * | PolymorphicDerived * |
|
||||
| conversions.cpp:228:25:228:57 | (PolymorphicBase)... | base class conversion | lval | PolymorphicBase | PolymorphicDerived |
|
||||
| conversions.cpp:227:8:227:41 | dynamic_cast<PolymorphicBase *>... | dynamic_cast | prval | PolymorphicBase * | PolymorphicDerived * |
|
||||
| conversions.cpp:228:25:228:57 | dynamic_cast<PolymorphicBase>... | dynamic_cast | lval | PolymorphicBase | PolymorphicDerived |
|
||||
| conversions.cpp:230:8:230:44 | dynamic_cast<PolymorphicDerived *>... | dynamic_cast | prval | PolymorphicDerived * | PolymorphicBase * |
|
||||
| conversions.cpp:231:28:231:63 | dynamic_cast<PolymorphicDerived>... | dynamic_cast | lval | PolymorphicDerived | PolymorphicBase |
|
||||
| conversions.cpp:235:7:235:16 | (void *)... | pointer conversion | prval | void * | ..(*)(..) |
|
||||
|
||||
@@ -5583,8 +5583,8 @@ ir.cpp:
|
||||
# 857| 0: pb
|
||||
# 857| Type = PolymorphicBase *
|
||||
# 857| ValueCategory = lvalue
|
||||
# 857| 1: (PolymorphicBase *)...
|
||||
# 857| Conversion = base class conversion
|
||||
# 857| 1: dynamic_cast<PolymorphicBase *>...
|
||||
# 857| Conversion = dynamic_cast
|
||||
# 857| Type = PolymorphicBase *
|
||||
# 857| ValueCategory = prvalue
|
||||
# 857| expr: pd
|
||||
@@ -5597,8 +5597,8 @@ ir.cpp:
|
||||
# 858| expr: (reference to)
|
||||
# 858| Type = PolymorphicBase &
|
||||
# 858| ValueCategory = prvalue
|
||||
# 858| expr: (PolymorphicBase)...
|
||||
# 858| Conversion = base class conversion
|
||||
# 858| expr: dynamic_cast<PolymorphicBase>...
|
||||
# 858| Conversion = dynamic_cast
|
||||
# 858| Type = PolymorphicBase
|
||||
# 858| ValueCategory = lvalue
|
||||
# 858| expr: d
|
||||
|
||||
@@ -3559,52 +3559,52 @@ ir.cpp:
|
||||
|
||||
# 849| DynamicCast() -> void
|
||||
# 849| Block 0
|
||||
# 849| v0_0(void) = EnterFunction :
|
||||
# 849| mu0_1(unknown) = UnmodeledDefinition :
|
||||
# 850| r0_2(glval<PolymorphicBase>) = VariableAddress[b] :
|
||||
#-----| r0_3(glval<unknown>) = FunctionAddress[PolymorphicBase] :
|
||||
#-----| v0_4(void) = Invoke : r0_3, this:r0_2
|
||||
# 851| r0_5(glval<PolymorphicDerived>) = VariableAddress[d] :
|
||||
# 851| r0_6(glval<unknown>) = FunctionAddress[PolymorphicDerived] :
|
||||
# 851| v0_7(void) = Invoke : r0_6, this:r0_5
|
||||
# 853| r0_8(glval<PolymorphicBase *>) = VariableAddress[pb] :
|
||||
# 853| r0_9(glval<PolymorphicBase>) = VariableAddress[b] :
|
||||
# 853| m0_10(PolymorphicBase *) = Store : r0_8, r0_9
|
||||
# 854| r0_11(glval<PolymorphicDerived *>) = VariableAddress[pd] :
|
||||
# 854| r0_12(glval<PolymorphicDerived>) = VariableAddress[d] :
|
||||
# 854| m0_13(PolymorphicDerived *) = Store : r0_11, r0_12
|
||||
# 857| r0_14(glval<PolymorphicDerived *>) = VariableAddress[pd] :
|
||||
# 857| r0_15(PolymorphicDerived *) = Load : r0_14, m0_13
|
||||
# 857| r0_16(PolymorphicBase *) = ConvertToBase[PolymorphicDerived : PolymorphicBase] : r0_15
|
||||
# 857| r0_17(glval<PolymorphicBase *>) = VariableAddress[pb] :
|
||||
# 857| m0_18(PolymorphicBase *) = Store : r0_17, r0_16
|
||||
# 858| r0_19(glval<PolymorphicBase &>) = VariableAddress[rb] :
|
||||
# 858| r0_20(glval<PolymorphicDerived>) = VariableAddress[d] :
|
||||
# 858| r0_21(glval<PolymorphicBase>) = ConvertToBase[PolymorphicDerived : PolymorphicBase] : r0_20
|
||||
# 858| m0_22(PolymorphicBase &) = Store : r0_19, r0_21
|
||||
# 860| r0_23(glval<PolymorphicBase *>) = VariableAddress[pb] :
|
||||
# 860| r0_24(PolymorphicBase *) = Load : r0_23, m0_18
|
||||
# 860| r0_25(PolymorphicDerived *) = CheckedConvertOrNull : r0_24
|
||||
# 860| r0_26(glval<PolymorphicDerived *>) = VariableAddress[pd] :
|
||||
# 860| m0_27(PolymorphicDerived *) = Store : r0_26, r0_25
|
||||
# 861| r0_28(glval<PolymorphicDerived &>) = VariableAddress[rd] :
|
||||
# 861| r0_29(glval<PolymorphicBase>) = VariableAddress[b] :
|
||||
# 861| r0_30(glval<PolymorphicDerived>) = CheckedConvertOrThrow : r0_29
|
||||
# 861| m0_31(PolymorphicDerived &) = Store : r0_28, r0_30
|
||||
# 863| r0_32(glval<void *>) = VariableAddress[pv] :
|
||||
# 863| r0_33(glval<PolymorphicBase *>) = VariableAddress[pb] :
|
||||
# 863| r0_34(PolymorphicBase *) = Load : r0_33, m0_18
|
||||
# 863| r0_35(void *) = DynamicCastToVoid : r0_34
|
||||
# 863| m0_36(void *) = Store : r0_32, r0_35
|
||||
# 864| r0_37(glval<void *>) = VariableAddress[pcv] :
|
||||
# 864| r0_38(glval<PolymorphicDerived *>) = VariableAddress[pd] :
|
||||
# 864| r0_39(PolymorphicDerived *) = Load : r0_38, m0_27
|
||||
# 864| r0_40(void *) = DynamicCastToVoid : r0_39
|
||||
# 864| m0_41(void *) = Store : r0_37, r0_40
|
||||
# 865| v0_42(void) = NoOp :
|
||||
# 849| v0_43(void) = ReturnVoid :
|
||||
# 849| v0_44(void) = UnmodeledUse : mu*
|
||||
# 849| v0_45(void) = ExitFunction :
|
||||
# 849| v0_0(void) = EnterFunction :
|
||||
# 849| mu0_1(unknown) = UnmodeledDefinition :
|
||||
# 850| r0_2(glval<PolymorphicBase>) = VariableAddress[b] :
|
||||
#-----| r0_3(glval<unknown>) = FunctionAddress[PolymorphicBase] :
|
||||
#-----| v0_4(void) = Invoke : r0_3, this:r0_2
|
||||
# 851| r0_5(glval<PolymorphicDerived>) = VariableAddress[d] :
|
||||
# 851| r0_6(glval<unknown>) = FunctionAddress[PolymorphicDerived] :
|
||||
# 851| v0_7(void) = Invoke : r0_6, this:r0_5
|
||||
# 853| r0_8(glval<PolymorphicBase *>) = VariableAddress[pb] :
|
||||
# 853| r0_9(glval<PolymorphicBase>) = VariableAddress[b] :
|
||||
# 853| m0_10(PolymorphicBase *) = Store : r0_8, r0_9
|
||||
# 854| r0_11(glval<PolymorphicDerived *>) = VariableAddress[pd] :
|
||||
# 854| r0_12(glval<PolymorphicDerived>) = VariableAddress[d] :
|
||||
# 854| m0_13(PolymorphicDerived *) = Store : r0_11, r0_12
|
||||
# 857| r0_14(glval<PolymorphicDerived *>) = VariableAddress[pd] :
|
||||
# 857| r0_15(PolymorphicDerived *) = Load : r0_14, m0_13
|
||||
# 857| r0_16(PolymorphicBase *) = CheckedConvertOrNull : r0_15
|
||||
# 857| r0_17(glval<PolymorphicBase *>) = VariableAddress[pb] :
|
||||
# 857| m0_18(PolymorphicBase *) = Store : r0_17, r0_16
|
||||
# 858| r0_19(glval<PolymorphicBase &>) = VariableAddress[rb] :
|
||||
# 858| r0_20(glval<PolymorphicDerived>) = VariableAddress[d] :
|
||||
# 858| r0_21(glval<PolymorphicBase>) = CheckedConvertOrThrow : r0_20
|
||||
# 858| m0_22(PolymorphicBase &) = Store : r0_19, r0_21
|
||||
# 860| r0_23(glval<PolymorphicBase *>) = VariableAddress[pb] :
|
||||
# 860| r0_24(PolymorphicBase *) = Load : r0_23, m0_18
|
||||
# 860| r0_25(PolymorphicDerived *) = CheckedConvertOrNull : r0_24
|
||||
# 860| r0_26(glval<PolymorphicDerived *>) = VariableAddress[pd] :
|
||||
# 860| m0_27(PolymorphicDerived *) = Store : r0_26, r0_25
|
||||
# 861| r0_28(glval<PolymorphicDerived &>) = VariableAddress[rd] :
|
||||
# 861| r0_29(glval<PolymorphicBase>) = VariableAddress[b] :
|
||||
# 861| r0_30(glval<PolymorphicDerived>) = CheckedConvertOrThrow : r0_29
|
||||
# 861| m0_31(PolymorphicDerived &) = Store : r0_28, r0_30
|
||||
# 863| r0_32(glval<void *>) = VariableAddress[pv] :
|
||||
# 863| r0_33(glval<PolymorphicBase *>) = VariableAddress[pb] :
|
||||
# 863| r0_34(PolymorphicBase *) = Load : r0_33, m0_18
|
||||
# 863| r0_35(void *) = DynamicCastToVoid : r0_34
|
||||
# 863| m0_36(void *) = Store : r0_32, r0_35
|
||||
# 864| r0_37(glval<void *>) = VariableAddress[pcv] :
|
||||
# 864| r0_38(glval<PolymorphicDerived *>) = VariableAddress[pd] :
|
||||
# 864| r0_39(PolymorphicDerived *) = Load : r0_38, m0_27
|
||||
# 864| r0_40(void *) = DynamicCastToVoid : r0_39
|
||||
# 864| m0_41(void *) = Store : r0_37, r0_40
|
||||
# 865| v0_42(void) = NoOp :
|
||||
# 849| v0_43(void) = ReturnVoid :
|
||||
# 849| v0_44(void) = UnmodeledUse : mu*
|
||||
# 849| v0_45(void) = ExitFunction :
|
||||
|
||||
# 867| String::String() -> void
|
||||
# 867| Block 0
|
||||
|
||||
@@ -3539,52 +3539,52 @@ ir.cpp:
|
||||
|
||||
# 849| DynamicCast() -> void
|
||||
# 849| Block 0
|
||||
# 849| v0_0(void) = EnterFunction :
|
||||
# 849| mu0_1(unknown) = UnmodeledDefinition :
|
||||
# 850| r0_2(glval<PolymorphicBase>) = VariableAddress[b] :
|
||||
#-----| r0_3(glval<unknown>) = FunctionAddress[PolymorphicBase] :
|
||||
#-----| v0_4(void) = Invoke : r0_3, this:r0_2
|
||||
# 851| r0_5(glval<PolymorphicDerived>) = VariableAddress[d] :
|
||||
# 851| r0_6(glval<unknown>) = FunctionAddress[PolymorphicDerived] :
|
||||
# 851| v0_7(void) = Invoke : r0_6, this:r0_5
|
||||
# 853| r0_8(glval<PolymorphicBase *>) = VariableAddress[pb] :
|
||||
# 853| r0_9(glval<PolymorphicBase>) = VariableAddress[b] :
|
||||
# 853| mu0_10(PolymorphicBase *) = Store : r0_8, r0_9
|
||||
# 854| r0_11(glval<PolymorphicDerived *>) = VariableAddress[pd] :
|
||||
# 854| r0_12(glval<PolymorphicDerived>) = VariableAddress[d] :
|
||||
# 854| mu0_13(PolymorphicDerived *) = Store : r0_11, r0_12
|
||||
# 857| r0_14(glval<PolymorphicDerived *>) = VariableAddress[pd] :
|
||||
# 857| r0_15(PolymorphicDerived *) = Load : r0_14, mu0_1
|
||||
# 857| r0_16(PolymorphicBase *) = ConvertToBase[PolymorphicDerived : PolymorphicBase] : r0_15
|
||||
# 857| r0_17(glval<PolymorphicBase *>) = VariableAddress[pb] :
|
||||
# 857| mu0_18(PolymorphicBase *) = Store : r0_17, r0_16
|
||||
# 858| r0_19(glval<PolymorphicBase &>) = VariableAddress[rb] :
|
||||
# 858| r0_20(glval<PolymorphicDerived>) = VariableAddress[d] :
|
||||
# 858| r0_21(glval<PolymorphicBase>) = ConvertToBase[PolymorphicDerived : PolymorphicBase] : r0_20
|
||||
# 858| mu0_22(PolymorphicBase &) = Store : r0_19, r0_21
|
||||
# 860| r0_23(glval<PolymorphicBase *>) = VariableAddress[pb] :
|
||||
# 860| r0_24(PolymorphicBase *) = Load : r0_23, mu0_1
|
||||
# 860| r0_25(PolymorphicDerived *) = CheckedConvertOrNull : r0_24
|
||||
# 860| r0_26(glval<PolymorphicDerived *>) = VariableAddress[pd] :
|
||||
# 860| mu0_27(PolymorphicDerived *) = Store : r0_26, r0_25
|
||||
# 861| r0_28(glval<PolymorphicDerived &>) = VariableAddress[rd] :
|
||||
# 861| r0_29(glval<PolymorphicBase>) = VariableAddress[b] :
|
||||
# 861| r0_30(glval<PolymorphicDerived>) = CheckedConvertOrThrow : r0_29
|
||||
# 861| mu0_31(PolymorphicDerived &) = Store : r0_28, r0_30
|
||||
# 863| r0_32(glval<void *>) = VariableAddress[pv] :
|
||||
# 863| r0_33(glval<PolymorphicBase *>) = VariableAddress[pb] :
|
||||
# 863| r0_34(PolymorphicBase *) = Load : r0_33, mu0_1
|
||||
# 863| r0_35(void *) = DynamicCastToVoid : r0_34
|
||||
# 863| mu0_36(void *) = Store : r0_32, r0_35
|
||||
# 864| r0_37(glval<void *>) = VariableAddress[pcv] :
|
||||
# 864| r0_38(glval<PolymorphicDerived *>) = VariableAddress[pd] :
|
||||
# 864| r0_39(PolymorphicDerived *) = Load : r0_38, mu0_1
|
||||
# 864| r0_40(void *) = DynamicCastToVoid : r0_39
|
||||
# 864| mu0_41(void *) = Store : r0_37, r0_40
|
||||
# 865| v0_42(void) = NoOp :
|
||||
# 849| v0_43(void) = ReturnVoid :
|
||||
# 849| v0_44(void) = UnmodeledUse : mu*
|
||||
# 849| v0_45(void) = ExitFunction :
|
||||
# 849| v0_0(void) = EnterFunction :
|
||||
# 849| mu0_1(unknown) = UnmodeledDefinition :
|
||||
# 850| r0_2(glval<PolymorphicBase>) = VariableAddress[b] :
|
||||
#-----| r0_3(glval<unknown>) = FunctionAddress[PolymorphicBase] :
|
||||
#-----| v0_4(void) = Invoke : r0_3, this:r0_2
|
||||
# 851| r0_5(glval<PolymorphicDerived>) = VariableAddress[d] :
|
||||
# 851| r0_6(glval<unknown>) = FunctionAddress[PolymorphicDerived] :
|
||||
# 851| v0_7(void) = Invoke : r0_6, this:r0_5
|
||||
# 853| r0_8(glval<PolymorphicBase *>) = VariableAddress[pb] :
|
||||
# 853| r0_9(glval<PolymorphicBase>) = VariableAddress[b] :
|
||||
# 853| mu0_10(PolymorphicBase *) = Store : r0_8, r0_9
|
||||
# 854| r0_11(glval<PolymorphicDerived *>) = VariableAddress[pd] :
|
||||
# 854| r0_12(glval<PolymorphicDerived>) = VariableAddress[d] :
|
||||
# 854| mu0_13(PolymorphicDerived *) = Store : r0_11, r0_12
|
||||
# 857| r0_14(glval<PolymorphicDerived *>) = VariableAddress[pd] :
|
||||
# 857| r0_15(PolymorphicDerived *) = Load : r0_14, mu0_1
|
||||
# 857| r0_16(PolymorphicBase *) = CheckedConvertOrNull : r0_15
|
||||
# 857| r0_17(glval<PolymorphicBase *>) = VariableAddress[pb] :
|
||||
# 857| mu0_18(PolymorphicBase *) = Store : r0_17, r0_16
|
||||
# 858| r0_19(glval<PolymorphicBase &>) = VariableAddress[rb] :
|
||||
# 858| r0_20(glval<PolymorphicDerived>) = VariableAddress[d] :
|
||||
# 858| r0_21(glval<PolymorphicBase>) = CheckedConvertOrThrow : r0_20
|
||||
# 858| mu0_22(PolymorphicBase &) = Store : r0_19, r0_21
|
||||
# 860| r0_23(glval<PolymorphicBase *>) = VariableAddress[pb] :
|
||||
# 860| r0_24(PolymorphicBase *) = Load : r0_23, mu0_1
|
||||
# 860| r0_25(PolymorphicDerived *) = CheckedConvertOrNull : r0_24
|
||||
# 860| r0_26(glval<PolymorphicDerived *>) = VariableAddress[pd] :
|
||||
# 860| mu0_27(PolymorphicDerived *) = Store : r0_26, r0_25
|
||||
# 861| r0_28(glval<PolymorphicDerived &>) = VariableAddress[rd] :
|
||||
# 861| r0_29(glval<PolymorphicBase>) = VariableAddress[b] :
|
||||
# 861| r0_30(glval<PolymorphicDerived>) = CheckedConvertOrThrow : r0_29
|
||||
# 861| mu0_31(PolymorphicDerived &) = Store : r0_28, r0_30
|
||||
# 863| r0_32(glval<void *>) = VariableAddress[pv] :
|
||||
# 863| r0_33(glval<PolymorphicBase *>) = VariableAddress[pb] :
|
||||
# 863| r0_34(PolymorphicBase *) = Load : r0_33, mu0_1
|
||||
# 863| r0_35(void *) = DynamicCastToVoid : r0_34
|
||||
# 863| mu0_36(void *) = Store : r0_32, r0_35
|
||||
# 864| r0_37(glval<void *>) = VariableAddress[pcv] :
|
||||
# 864| r0_38(glval<PolymorphicDerived *>) = VariableAddress[pd] :
|
||||
# 864| r0_39(PolymorphicDerived *) = Load : r0_38, mu0_1
|
||||
# 864| r0_40(void *) = DynamicCastToVoid : r0_39
|
||||
# 864| mu0_41(void *) = Store : r0_37, r0_40
|
||||
# 865| v0_42(void) = NoOp :
|
||||
# 849| v0_43(void) = ReturnVoid :
|
||||
# 849| v0_44(void) = UnmodeledUse : mu*
|
||||
# 849| v0_45(void) = ExitFunction :
|
||||
|
||||
# 867| String::String() -> void
|
||||
# 867| Block 0
|
||||
|
||||
@@ -3559,52 +3559,52 @@ ir.cpp:
|
||||
|
||||
# 849| DynamicCast() -> void
|
||||
# 849| Block 0
|
||||
# 849| v0_0(void) = EnterFunction :
|
||||
# 849| mu0_1(unknown) = UnmodeledDefinition :
|
||||
# 850| r0_2(glval<PolymorphicBase>) = VariableAddress[b] :
|
||||
#-----| r0_3(glval<unknown>) = FunctionAddress[PolymorphicBase] :
|
||||
#-----| v0_4(void) = Invoke : r0_3, this:r0_2
|
||||
# 851| r0_5(glval<PolymorphicDerived>) = VariableAddress[d] :
|
||||
# 851| r0_6(glval<unknown>) = FunctionAddress[PolymorphicDerived] :
|
||||
# 851| v0_7(void) = Invoke : r0_6, this:r0_5
|
||||
# 853| r0_8(glval<PolymorphicBase *>) = VariableAddress[pb] :
|
||||
# 853| r0_9(glval<PolymorphicBase>) = VariableAddress[b] :
|
||||
# 853| m0_10(PolymorphicBase *) = Store : r0_8, r0_9
|
||||
# 854| r0_11(glval<PolymorphicDerived *>) = VariableAddress[pd] :
|
||||
# 854| r0_12(glval<PolymorphicDerived>) = VariableAddress[d] :
|
||||
# 854| m0_13(PolymorphicDerived *) = Store : r0_11, r0_12
|
||||
# 857| r0_14(glval<PolymorphicDerived *>) = VariableAddress[pd] :
|
||||
# 857| r0_15(PolymorphicDerived *) = Load : r0_14, m0_13
|
||||
# 857| r0_16(PolymorphicBase *) = ConvertToBase[PolymorphicDerived : PolymorphicBase] : r0_15
|
||||
# 857| r0_17(glval<PolymorphicBase *>) = VariableAddress[pb] :
|
||||
# 857| m0_18(PolymorphicBase *) = Store : r0_17, r0_16
|
||||
# 858| r0_19(glval<PolymorphicBase &>) = VariableAddress[rb] :
|
||||
# 858| r0_20(glval<PolymorphicDerived>) = VariableAddress[d] :
|
||||
# 858| r0_21(glval<PolymorphicBase>) = ConvertToBase[PolymorphicDerived : PolymorphicBase] : r0_20
|
||||
# 858| m0_22(PolymorphicBase &) = Store : r0_19, r0_21
|
||||
# 860| r0_23(glval<PolymorphicBase *>) = VariableAddress[pb] :
|
||||
# 860| r0_24(PolymorphicBase *) = Load : r0_23, m0_18
|
||||
# 860| r0_25(PolymorphicDerived *) = CheckedConvertOrNull : r0_24
|
||||
# 860| r0_26(glval<PolymorphicDerived *>) = VariableAddress[pd] :
|
||||
# 860| m0_27(PolymorphicDerived *) = Store : r0_26, r0_25
|
||||
# 861| r0_28(glval<PolymorphicDerived &>) = VariableAddress[rd] :
|
||||
# 861| r0_29(glval<PolymorphicBase>) = VariableAddress[b] :
|
||||
# 861| r0_30(glval<PolymorphicDerived>) = CheckedConvertOrThrow : r0_29
|
||||
# 861| m0_31(PolymorphicDerived &) = Store : r0_28, r0_30
|
||||
# 863| r0_32(glval<void *>) = VariableAddress[pv] :
|
||||
# 863| r0_33(glval<PolymorphicBase *>) = VariableAddress[pb] :
|
||||
# 863| r0_34(PolymorphicBase *) = Load : r0_33, m0_18
|
||||
# 863| r0_35(void *) = DynamicCastToVoid : r0_34
|
||||
# 863| m0_36(void *) = Store : r0_32, r0_35
|
||||
# 864| r0_37(glval<void *>) = VariableAddress[pcv] :
|
||||
# 864| r0_38(glval<PolymorphicDerived *>) = VariableAddress[pd] :
|
||||
# 864| r0_39(PolymorphicDerived *) = Load : r0_38, m0_27
|
||||
# 864| r0_40(void *) = DynamicCastToVoid : r0_39
|
||||
# 864| m0_41(void *) = Store : r0_37, r0_40
|
||||
# 865| v0_42(void) = NoOp :
|
||||
# 849| v0_43(void) = ReturnVoid :
|
||||
# 849| v0_44(void) = UnmodeledUse : mu*
|
||||
# 849| v0_45(void) = ExitFunction :
|
||||
# 849| v0_0(void) = EnterFunction :
|
||||
# 849| mu0_1(unknown) = UnmodeledDefinition :
|
||||
# 850| r0_2(glval<PolymorphicBase>) = VariableAddress[b] :
|
||||
#-----| r0_3(glval<unknown>) = FunctionAddress[PolymorphicBase] :
|
||||
#-----| v0_4(void) = Invoke : r0_3, this:r0_2
|
||||
# 851| r0_5(glval<PolymorphicDerived>) = VariableAddress[d] :
|
||||
# 851| r0_6(glval<unknown>) = FunctionAddress[PolymorphicDerived] :
|
||||
# 851| v0_7(void) = Invoke : r0_6, this:r0_5
|
||||
# 853| r0_8(glval<PolymorphicBase *>) = VariableAddress[pb] :
|
||||
# 853| r0_9(glval<PolymorphicBase>) = VariableAddress[b] :
|
||||
# 853| m0_10(PolymorphicBase *) = Store : r0_8, r0_9
|
||||
# 854| r0_11(glval<PolymorphicDerived *>) = VariableAddress[pd] :
|
||||
# 854| r0_12(glval<PolymorphicDerived>) = VariableAddress[d] :
|
||||
# 854| m0_13(PolymorphicDerived *) = Store : r0_11, r0_12
|
||||
# 857| r0_14(glval<PolymorphicDerived *>) = VariableAddress[pd] :
|
||||
# 857| r0_15(PolymorphicDerived *) = Load : r0_14, m0_13
|
||||
# 857| r0_16(PolymorphicBase *) = CheckedConvertOrNull : r0_15
|
||||
# 857| r0_17(glval<PolymorphicBase *>) = VariableAddress[pb] :
|
||||
# 857| m0_18(PolymorphicBase *) = Store : r0_17, r0_16
|
||||
# 858| r0_19(glval<PolymorphicBase &>) = VariableAddress[rb] :
|
||||
# 858| r0_20(glval<PolymorphicDerived>) = VariableAddress[d] :
|
||||
# 858| r0_21(glval<PolymorphicBase>) = CheckedConvertOrThrow : r0_20
|
||||
# 858| m0_22(PolymorphicBase &) = Store : r0_19, r0_21
|
||||
# 860| r0_23(glval<PolymorphicBase *>) = VariableAddress[pb] :
|
||||
# 860| r0_24(PolymorphicBase *) = Load : r0_23, m0_18
|
||||
# 860| r0_25(PolymorphicDerived *) = CheckedConvertOrNull : r0_24
|
||||
# 860| r0_26(glval<PolymorphicDerived *>) = VariableAddress[pd] :
|
||||
# 860| m0_27(PolymorphicDerived *) = Store : r0_26, r0_25
|
||||
# 861| r0_28(glval<PolymorphicDerived &>) = VariableAddress[rd] :
|
||||
# 861| r0_29(glval<PolymorphicBase>) = VariableAddress[b] :
|
||||
# 861| r0_30(glval<PolymorphicDerived>) = CheckedConvertOrThrow : r0_29
|
||||
# 861| m0_31(PolymorphicDerived &) = Store : r0_28, r0_30
|
||||
# 863| r0_32(glval<void *>) = VariableAddress[pv] :
|
||||
# 863| r0_33(glval<PolymorphicBase *>) = VariableAddress[pb] :
|
||||
# 863| r0_34(PolymorphicBase *) = Load : r0_33, m0_18
|
||||
# 863| r0_35(void *) = DynamicCastToVoid : r0_34
|
||||
# 863| m0_36(void *) = Store : r0_32, r0_35
|
||||
# 864| r0_37(glval<void *>) = VariableAddress[pcv] :
|
||||
# 864| r0_38(glval<PolymorphicDerived *>) = VariableAddress[pd] :
|
||||
# 864| r0_39(PolymorphicDerived *) = Load : r0_38, m0_27
|
||||
# 864| r0_40(void *) = DynamicCastToVoid : r0_39
|
||||
# 864| m0_41(void *) = Store : r0_37, r0_40
|
||||
# 865| v0_42(void) = NoOp :
|
||||
# 849| v0_43(void) = ReturnVoid :
|
||||
# 849| v0_44(void) = UnmodeledUse : mu*
|
||||
# 849| v0_45(void) = ExitFunction :
|
||||
|
||||
# 867| String::String() -> void
|
||||
# 867| Block 0
|
||||
|
||||
Reference in New Issue
Block a user