mirror of
https://github.com/github/codeql.git
synced 2025-12-20 18:56:32 +01:00
C++: add output indirections for this
This commit is contained in:
@@ -415,8 +415,11 @@ newtype TTranslatedElement =
|
||||
} or
|
||||
TTranslatedEllipsisParameter(Function func) { translateFunction(func) and func.isVarargs() } or
|
||||
TTranslatedReadEffects(Function func) { translateFunction(func) } or
|
||||
TTranslatedThisReadEffect(Function func) {
|
||||
translateFunction(func) and func.isMember() and not func.isStatic()
|
||||
} or
|
||||
// The read side effects in a function's return block
|
||||
TTranslatedReadEffect(Parameter param) {
|
||||
TTranslatedParameterReadEffect(Parameter param) {
|
||||
translateFunction(param.getFunction()) and
|
||||
exists(Type t | t = param.getUnspecifiedType() |
|
||||
t instanceof ArrayType or
|
||||
|
||||
@@ -676,14 +676,17 @@ class TranslatedReadEffects extends TranslatedElement, TTranslatedReadEffects {
|
||||
override string toString() { result = "read effects: " + func.toString() }
|
||||
|
||||
override TranslatedElement getChild(int id) {
|
||||
result = getTranslatedReadEffect(func.getParameter(id))
|
||||
result = getTranslatedThisReadEffect(func) and
|
||||
id = -1
|
||||
or
|
||||
result = getTranslatedParameterReadEffect(func.getParameter(id))
|
||||
}
|
||||
|
||||
override Instruction getFirstInstruction() {
|
||||
if exists(getAChild())
|
||||
then
|
||||
result =
|
||||
min(TranslatedReadEffect child, int id | child = getChild(id) | child order by id)
|
||||
min(TranslatedElement child, int id | child = getChild(id) | child order by id)
|
||||
.getFirstInstruction()
|
||||
else result = getParent().getChildSuccessor(this)
|
||||
}
|
||||
@@ -709,17 +712,13 @@ class TranslatedReadEffects extends TranslatedElement, TTranslatedReadEffects {
|
||||
override Instruction getInstructionSuccessor(InstructionTag tag, EdgeKind kind) { none() }
|
||||
}
|
||||
|
||||
private TranslatedReadEffect getTranslatedReadEffect(Parameter param) { result.getAST() = param }
|
||||
private TranslatedThisReadEffect getTranslatedThisReadEffect(Function func) {
|
||||
result.getAST() = func
|
||||
}
|
||||
|
||||
class TranslatedReadEffect extends TranslatedElement, TTranslatedReadEffect {
|
||||
Parameter param;
|
||||
|
||||
TranslatedReadEffect() { this = TTranslatedReadEffect(param) }
|
||||
|
||||
override Locatable getAST() { result = param }
|
||||
|
||||
override string toString() { result = "read effect: " + param.toString() }
|
||||
private TranslatedParameterReadEffect getTranslatedParameterReadEffect(Parameter param) { result.getAST() = param }
|
||||
|
||||
abstract class TranslatedReadEffect extends TranslatedElement {
|
||||
override TranslatedElement getChild(int id) { none() }
|
||||
|
||||
override Instruction getChildSuccessor(TranslatedElement child) { none() }
|
||||
@@ -732,20 +731,12 @@ class TranslatedReadEffect extends TranslatedElement, TTranslatedReadEffect {
|
||||
|
||||
override Instruction getFirstInstruction() { result = getInstruction(OnlyInstructionTag()) }
|
||||
|
||||
override Function getFunction() { result = param.getFunction() }
|
||||
|
||||
override predicate hasInstruction(Opcode opcode, InstructionTag tag, CppType resultType) {
|
||||
opcode instanceof Opcode::ReturnIndirection and
|
||||
tag = OnlyInstructionTag() and
|
||||
resultType = getVoidType()
|
||||
}
|
||||
|
||||
final override Instruction getInstructionRegisterOperand(InstructionTag tag, OperandTag operandTag) {
|
||||
tag = OnlyInstructionTag() and
|
||||
operandTag = addressOperand() and
|
||||
result = getTranslatedParameter(param).getInstruction(InitializerIndirectAddressTag())
|
||||
}
|
||||
|
||||
final override CppType getInstructionMemoryOperandType(
|
||||
InstructionTag tag, TypedOperandTag operandTag
|
||||
) {
|
||||
@@ -753,6 +744,47 @@ class TranslatedReadEffect extends TranslatedElement, TTranslatedReadEffect {
|
||||
operandTag = sideEffectOperand() and
|
||||
result = getUnknownType()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class TranslatedThisReadEffect extends TranslatedReadEffect, TTranslatedThisReadEffect {
|
||||
Function func;
|
||||
|
||||
TranslatedThisReadEffect() { this = TTranslatedThisReadEffect(func) }
|
||||
|
||||
override Locatable getAST() { result = func }
|
||||
|
||||
override Function getFunction() { result = func }
|
||||
|
||||
override string toString() { result = "read effect: this" }
|
||||
|
||||
final override Instruction getInstructionRegisterOperand(InstructionTag tag, OperandTag operandTag) {
|
||||
tag = OnlyInstructionTag() and
|
||||
operandTag = addressOperand() and
|
||||
result = getTranslatedThisParameter(func).getInstruction(InitializerIndirectAddressTag())
|
||||
}
|
||||
|
||||
final override IRVariable getInstructionVariable(InstructionTag tag) {
|
||||
tag = OnlyInstructionTag() and
|
||||
result = getTranslatedFunction(func).getThisVariable()
|
||||
}
|
||||
}
|
||||
class TranslatedParameterReadEffect extends TranslatedReadEffect, TTranslatedParameterReadEffect {
|
||||
Parameter param;
|
||||
|
||||
TranslatedParameterReadEffect() { this = TTranslatedParameterReadEffect(param) }
|
||||
|
||||
override Locatable getAST() { result = param }
|
||||
|
||||
override string toString() { result = "read effect: " + param.toString() }
|
||||
|
||||
override Function getFunction() { result = param.getFunction() }
|
||||
|
||||
final override Instruction getInstructionRegisterOperand(InstructionTag tag, OperandTag operandTag) {
|
||||
tag = OnlyInstructionTag() and
|
||||
operandTag = addressOperand() and
|
||||
result = getTranslatedParameter(param).getInstruction(InitializerIndirectAddressTag())
|
||||
}
|
||||
|
||||
final override IRVariable getInstructionVariable(InstructionTag tag) {
|
||||
tag = OnlyInstructionTag() and
|
||||
|
||||
@@ -21,10 +21,11 @@ bad_asts.cpp:
|
||||
# 10| r10_7(int) = Load : &:r10_6, ~m?
|
||||
# 10| r10_8(int) = Add : r10_5, r10_7
|
||||
# 10| mu10_9(int) = Store : &:r10_1, r10_8
|
||||
# 9| r9_10(glval<int>) = VariableAddress[#return] :
|
||||
# 9| v9_11(void) = ReturnValue : &:r9_10, ~m?
|
||||
# 9| v9_12(void) = AliasedUse : ~m?
|
||||
# 9| v9_13(void) = ExitFunction :
|
||||
# 9| v9_10(void) = ReturnIndirection[#this] : &:r9_6, ~m?
|
||||
# 9| r9_11(glval<int>) = VariableAddress[#return] :
|
||||
# 9| v9_12(void) = ReturnValue : &:r9_11, ~m?
|
||||
# 9| v9_13(void) = AliasedUse : ~m?
|
||||
# 9| v9_14(void) = ExitFunction :
|
||||
|
||||
# 14| void Bad::CallBadMemberFunction()
|
||||
# 14| Block 0
|
||||
@@ -58,9 +59,10 @@ bad_asts.cpp:
|
||||
# 22| r22_6(glval<Point>) = Load : &:r22_4, ~m?
|
||||
# 22| mu22_7(Point) = InitializeIndirection[#this] : &:r22_6
|
||||
# 23| v23_1(void) = NoOp :
|
||||
# 22| v22_8(void) = ReturnVoid :
|
||||
# 22| v22_9(void) = AliasedUse : ~m?
|
||||
# 22| v22_10(void) = ExitFunction :
|
||||
# 22| v22_8(void) = ReturnIndirection[#this] : &:r22_6, ~m?
|
||||
# 22| v22_9(void) = ReturnVoid :
|
||||
# 22| v22_10(void) = AliasedUse : ~m?
|
||||
# 22| v22_11(void) = ExitFunction :
|
||||
|
||||
# 26| void Bad::CallCopyConstructor(Bad::Point const&)
|
||||
# 26| Block 0
|
||||
@@ -3448,9 +3450,10 @@ ir.cpp:
|
||||
# 628| r628_13(glval<unknown>) = FunctionAddress[~String] :
|
||||
# 628| v628_14(void) = Call : func:r628_13, this:r628_12
|
||||
# 628| mu628_15(unknown) = ^CallSideEffect : ~m?
|
||||
# 628| v628_16(void) = ReturnVoid :
|
||||
# 628| v628_17(void) = AliasedUse : ~m?
|
||||
# 628| v628_18(void) = ExitFunction :
|
||||
# 628| v628_16(void) = ReturnIndirection[#this] : &:r628_6, ~m?
|
||||
# 628| v628_17(void) = ReturnVoid :
|
||||
# 628| v628_18(void) = AliasedUse : ~m?
|
||||
# 628| v628_19(void) = ExitFunction :
|
||||
|
||||
# 630| int C::StaticMemberFunction(int)
|
||||
# 630| Block 0
|
||||
@@ -3483,10 +3486,11 @@ ir.cpp:
|
||||
# 635| r635_2(glval<int>) = VariableAddress[x] :
|
||||
# 635| r635_3(int) = Load : &:r635_2, ~m?
|
||||
# 635| mu635_4(int) = Store : &:r635_1, r635_3
|
||||
# 634| r634_10(glval<int>) = VariableAddress[#return] :
|
||||
# 634| v634_11(void) = ReturnValue : &:r634_10, ~m?
|
||||
# 634| v634_12(void) = AliasedUse : ~m?
|
||||
# 634| v634_13(void) = ExitFunction :
|
||||
# 634| v634_10(void) = ReturnIndirection[#this] : &:r634_6, ~m?
|
||||
# 634| r634_11(glval<int>) = VariableAddress[#return] :
|
||||
# 634| v634_12(void) = ReturnValue : &:r634_11, ~m?
|
||||
# 634| v634_13(void) = AliasedUse : ~m?
|
||||
# 634| v634_14(void) = ExitFunction :
|
||||
|
||||
# 638| int C::VirtualMemberFunction(int)
|
||||
# 638| Block 0
|
||||
@@ -3503,10 +3507,11 @@ ir.cpp:
|
||||
# 639| r639_2(glval<int>) = VariableAddress[x] :
|
||||
# 639| r639_3(int) = Load : &:r639_2, ~m?
|
||||
# 639| mu639_4(int) = Store : &:r639_1, r639_3
|
||||
# 638| r638_10(glval<int>) = VariableAddress[#return] :
|
||||
# 638| v638_11(void) = ReturnValue : &:r638_10, ~m?
|
||||
# 638| v638_12(void) = AliasedUse : ~m?
|
||||
# 638| v638_13(void) = ExitFunction :
|
||||
# 638| v638_10(void) = ReturnIndirection[#this] : &:r638_6, ~m?
|
||||
# 638| r638_11(glval<int>) = VariableAddress[#return] :
|
||||
# 638| v638_12(void) = ReturnValue : &:r638_11, ~m?
|
||||
# 638| v638_13(void) = AliasedUse : ~m?
|
||||
# 638| v638_14(void) = ExitFunction :
|
||||
|
||||
# 642| void C::FieldAccess()
|
||||
# 642| Block 0
|
||||
@@ -3555,9 +3560,10 @@ ir.cpp:
|
||||
# 649| r649_3(glval<int>) = VariableAddress[x] :
|
||||
# 649| mu649_4(int) = Store : &:r649_3, r649_2
|
||||
# 650| v650_1(void) = NoOp :
|
||||
# 642| v642_8(void) = ReturnVoid :
|
||||
# 642| v642_9(void) = AliasedUse : ~m?
|
||||
# 642| v642_10(void) = ExitFunction :
|
||||
# 642| v642_8(void) = ReturnIndirection[#this] : &:r642_6, ~m?
|
||||
# 642| v642_9(void) = ReturnVoid :
|
||||
# 642| v642_10(void) = AliasedUse : ~m?
|
||||
# 642| v642_11(void) = ExitFunction :
|
||||
|
||||
# 652| void C::MethodCalls()
|
||||
# 652| Block 0
|
||||
@@ -3594,9 +3600,10 @@ ir.cpp:
|
||||
#-----| v0_3(void) = ^BufferReadSideEffect[-1] : &:r0_2, ~m?
|
||||
#-----| mu0_4(C) = ^IndirectMayWriteSideEffect[-1] : &:r0_2
|
||||
# 656| v656_1(void) = NoOp :
|
||||
# 652| v652_8(void) = ReturnVoid :
|
||||
# 652| v652_9(void) = AliasedUse : ~m?
|
||||
# 652| v652_10(void) = ExitFunction :
|
||||
# 652| v652_8(void) = ReturnIndirection[#this] : &:r652_6, ~m?
|
||||
# 652| v652_9(void) = ReturnVoid :
|
||||
# 652| v652_10(void) = AliasedUse : ~m?
|
||||
# 652| v652_11(void) = ExitFunction :
|
||||
|
||||
# 658| void C::C()
|
||||
# 658| Block 0
|
||||
@@ -3631,9 +3638,10 @@ ir.cpp:
|
||||
# 662| v662_8(void) = ^BufferReadSideEffect[0] : &:r662_4, ~m?
|
||||
# 662| mu662_9(unknown) = ^BufferMayWriteSideEffect[0] : &:r662_4
|
||||
# 664| v664_1(void) = NoOp :
|
||||
# 658| v658_8(void) = ReturnVoid :
|
||||
# 658| v658_9(void) = AliasedUse : ~m?
|
||||
# 658| v658_10(void) = ExitFunction :
|
||||
# 658| v658_8(void) = ReturnIndirection[#this] : &:r658_6, ~m?
|
||||
# 658| v658_9(void) = ReturnVoid :
|
||||
# 658| v658_10(void) = AliasedUse : ~m?
|
||||
# 658| v658_11(void) = ExitFunction :
|
||||
|
||||
# 675| int DerefReference(int&)
|
||||
# 675| Block 0
|
||||
@@ -4014,11 +4022,12 @@ ir.cpp:
|
||||
#-----| r0_22(glval<Base>) = CopyValue : r0_21
|
||||
#-----| r0_23(Base &) = CopyValue : r0_22
|
||||
#-----| mu0_24(Base &) = Store : &:r0_19, r0_23
|
||||
# 745| v745_11(void) = ReturnIndirection[#this] : &:r745_6, ~m?
|
||||
#-----| v0_25(void) = ReturnIndirection[p#0] : &:r0_3, ~m?
|
||||
# 745| r745_11(glval<Base &>) = VariableAddress[#return] :
|
||||
# 745| v745_12(void) = ReturnValue : &:r745_11, ~m?
|
||||
# 745| v745_13(void) = AliasedUse : ~m?
|
||||
# 745| v745_14(void) = ExitFunction :
|
||||
# 745| r745_12(glval<Base &>) = VariableAddress[#return] :
|
||||
# 745| v745_13(void) = ReturnValue : &:r745_12, ~m?
|
||||
# 745| v745_14(void) = AliasedUse : ~m?
|
||||
# 745| v745_15(void) = ExitFunction :
|
||||
|
||||
# 745| void Base::Base(Base const&)
|
||||
# 745| Block 0
|
||||
@@ -4039,10 +4048,11 @@ ir.cpp:
|
||||
# 745| mu745_11(unknown) = ^CallSideEffect : ~m?
|
||||
# 745| mu745_12(String) = ^IndirectMayWriteSideEffect[-1] : &:r745_8
|
||||
# 745| v745_13(void) = NoOp :
|
||||
# 745| v745_14(void) = ReturnIndirection[#this] : &:r745_6, ~m?
|
||||
#-----| v0_5(void) = ReturnIndirection[p#0] : &:r0_3, ~m?
|
||||
# 745| v745_14(void) = ReturnVoid :
|
||||
# 745| v745_15(void) = AliasedUse : ~m?
|
||||
# 745| v745_16(void) = ExitFunction :
|
||||
# 745| v745_15(void) = ReturnVoid :
|
||||
# 745| v745_16(void) = AliasedUse : ~m?
|
||||
# 745| v745_17(void) = ExitFunction :
|
||||
|
||||
# 748| void Base::Base()
|
||||
# 748| Block 0
|
||||
@@ -4059,9 +4069,10 @@ ir.cpp:
|
||||
# 748| mu748_11(unknown) = ^CallSideEffect : ~m?
|
||||
# 748| mu748_12(String) = ^IndirectMayWriteSideEffect[-1] : &:r748_8
|
||||
# 749| v749_1(void) = NoOp :
|
||||
# 748| v748_13(void) = ReturnVoid :
|
||||
# 748| v748_14(void) = AliasedUse : ~m?
|
||||
# 748| v748_15(void) = ExitFunction :
|
||||
# 748| v748_13(void) = ReturnIndirection[#this] : &:r748_6, ~m?
|
||||
# 748| v748_14(void) = ReturnVoid :
|
||||
# 748| v748_15(void) = AliasedUse : ~m?
|
||||
# 748| v748_16(void) = ExitFunction :
|
||||
|
||||
# 750| void Base::~Base()
|
||||
# 750| Block 0
|
||||
@@ -4077,9 +4088,10 @@ ir.cpp:
|
||||
# 751| r751_3(glval<unknown>) = FunctionAddress[~String] :
|
||||
# 751| v751_4(void) = Call : func:r751_3, this:r751_2
|
||||
# 751| mu751_5(unknown) = ^CallSideEffect : ~m?
|
||||
# 750| v750_8(void) = ReturnVoid :
|
||||
# 750| v750_9(void) = AliasedUse : ~m?
|
||||
# 750| v750_10(void) = ExitFunction :
|
||||
# 750| v750_8(void) = ReturnIndirection[#this] : &:r750_6, ~m?
|
||||
# 750| v750_9(void) = ReturnVoid :
|
||||
# 750| v750_10(void) = AliasedUse : ~m?
|
||||
# 750| v750_11(void) = ExitFunction :
|
||||
|
||||
# 754| Middle& Middle::operator=(Middle const&)
|
||||
# 754| Block 0
|
||||
@@ -4135,11 +4147,12 @@ ir.cpp:
|
||||
#-----| r0_37(glval<Middle>) = CopyValue : r0_36
|
||||
#-----| r0_38(Middle &) = CopyValue : r0_37
|
||||
#-----| mu0_39(Middle &) = Store : &:r0_34, r0_38
|
||||
# 754| v754_14(void) = ReturnIndirection[#this] : &:r754_6, ~m?
|
||||
#-----| v0_40(void) = ReturnIndirection[p#0] : &:r0_3, ~m?
|
||||
# 754| r754_14(glval<Middle &>) = VariableAddress[#return] :
|
||||
# 754| v754_15(void) = ReturnValue : &:r754_14, ~m?
|
||||
# 754| v754_16(void) = AliasedUse : ~m?
|
||||
# 754| v754_17(void) = ExitFunction :
|
||||
# 754| r754_15(glval<Middle &>) = VariableAddress[#return] :
|
||||
# 754| v754_16(void) = ReturnValue : &:r754_15, ~m?
|
||||
# 754| v754_17(void) = AliasedUse : ~m?
|
||||
# 754| v754_18(void) = ExitFunction :
|
||||
|
||||
# 757| void Middle::Middle()
|
||||
# 757| Block 0
|
||||
@@ -4161,9 +4174,10 @@ ir.cpp:
|
||||
# 757| mu757_16(unknown) = ^CallSideEffect : ~m?
|
||||
# 757| mu757_17(String) = ^IndirectMayWriteSideEffect[-1] : &:r757_13
|
||||
# 758| v758_1(void) = NoOp :
|
||||
# 757| v757_18(void) = ReturnVoid :
|
||||
# 757| v757_19(void) = AliasedUse : ~m?
|
||||
# 757| v757_20(void) = ExitFunction :
|
||||
# 757| v757_18(void) = ReturnIndirection[#this] : &:r757_6, ~m?
|
||||
# 757| v757_19(void) = ReturnVoid :
|
||||
# 757| v757_20(void) = AliasedUse : ~m?
|
||||
# 757| v757_21(void) = ExitFunction :
|
||||
|
||||
# 759| void Middle::~Middle()
|
||||
# 759| Block 0
|
||||
@@ -4183,9 +4197,10 @@ ir.cpp:
|
||||
# 760| r760_7(glval<unknown>) = FunctionAddress[~Base] :
|
||||
# 760| v760_8(void) = Call : func:r760_7, this:r760_6
|
||||
# 760| mu760_9(unknown) = ^CallSideEffect : ~m?
|
||||
# 759| v759_8(void) = ReturnVoid :
|
||||
# 759| v759_9(void) = AliasedUse : ~m?
|
||||
# 759| v759_10(void) = ExitFunction :
|
||||
# 759| v759_8(void) = ReturnIndirection[#this] : &:r759_6, ~m?
|
||||
# 759| v759_9(void) = ReturnVoid :
|
||||
# 759| v759_10(void) = AliasedUse : ~m?
|
||||
# 759| v759_11(void) = ExitFunction :
|
||||
|
||||
# 763| Derived& Derived::operator=(Derived const&)
|
||||
# 763| Block 0
|
||||
@@ -4241,11 +4256,12 @@ ir.cpp:
|
||||
#-----| r0_37(glval<Derived>) = CopyValue : r0_36
|
||||
#-----| r0_38(Derived &) = CopyValue : r0_37
|
||||
#-----| mu0_39(Derived &) = Store : &:r0_34, r0_38
|
||||
# 763| v763_14(void) = ReturnIndirection[#this] : &:r763_6, ~m?
|
||||
#-----| v0_40(void) = ReturnIndirection[p#0] : &:r0_3, ~m?
|
||||
# 763| r763_14(glval<Derived &>) = VariableAddress[#return] :
|
||||
# 763| v763_15(void) = ReturnValue : &:r763_14, ~m?
|
||||
# 763| v763_16(void) = AliasedUse : ~m?
|
||||
# 763| v763_17(void) = ExitFunction :
|
||||
# 763| r763_15(glval<Derived &>) = VariableAddress[#return] :
|
||||
# 763| v763_16(void) = ReturnValue : &:r763_15, ~m?
|
||||
# 763| v763_17(void) = AliasedUse : ~m?
|
||||
# 763| v763_18(void) = ExitFunction :
|
||||
|
||||
# 766| void Derived::Derived()
|
||||
# 766| Block 0
|
||||
@@ -4267,9 +4283,10 @@ ir.cpp:
|
||||
# 766| mu766_16(unknown) = ^CallSideEffect : ~m?
|
||||
# 766| mu766_17(String) = ^IndirectMayWriteSideEffect[-1] : &:r766_13
|
||||
# 767| v767_1(void) = NoOp :
|
||||
# 766| v766_18(void) = ReturnVoid :
|
||||
# 766| v766_19(void) = AliasedUse : ~m?
|
||||
# 766| v766_20(void) = ExitFunction :
|
||||
# 766| v766_18(void) = ReturnIndirection[#this] : &:r766_6, ~m?
|
||||
# 766| v766_19(void) = ReturnVoid :
|
||||
# 766| v766_20(void) = AliasedUse : ~m?
|
||||
# 766| v766_21(void) = ExitFunction :
|
||||
|
||||
# 768| void Derived::~Derived()
|
||||
# 768| Block 0
|
||||
@@ -4289,9 +4306,10 @@ ir.cpp:
|
||||
# 769| r769_7(glval<unknown>) = FunctionAddress[~Middle] :
|
||||
# 769| v769_8(void) = Call : func:r769_7, this:r769_6
|
||||
# 769| mu769_9(unknown) = ^CallSideEffect : ~m?
|
||||
# 768| v768_8(void) = ReturnVoid :
|
||||
# 768| v768_9(void) = AliasedUse : ~m?
|
||||
# 768| v768_10(void) = ExitFunction :
|
||||
# 768| v768_8(void) = ReturnIndirection[#this] : &:r768_6, ~m?
|
||||
# 768| v768_9(void) = ReturnVoid :
|
||||
# 768| v768_10(void) = AliasedUse : ~m?
|
||||
# 768| v768_11(void) = ExitFunction :
|
||||
|
||||
# 775| void MiddleVB1::MiddleVB1()
|
||||
# 775| Block 0
|
||||
@@ -4313,9 +4331,10 @@ ir.cpp:
|
||||
# 775| mu775_16(unknown) = ^CallSideEffect : ~m?
|
||||
# 775| mu775_17(String) = ^IndirectMayWriteSideEffect[-1] : &:r775_13
|
||||
# 776| v776_1(void) = NoOp :
|
||||
# 775| v775_18(void) = ReturnVoid :
|
||||
# 775| v775_19(void) = AliasedUse : ~m?
|
||||
# 775| v775_20(void) = ExitFunction :
|
||||
# 775| v775_18(void) = ReturnIndirection[#this] : &:r775_6, ~m?
|
||||
# 775| v775_19(void) = ReturnVoid :
|
||||
# 775| v775_20(void) = AliasedUse : ~m?
|
||||
# 775| v775_21(void) = ExitFunction :
|
||||
|
||||
# 777| void MiddleVB1::~MiddleVB1()
|
||||
# 777| Block 0
|
||||
@@ -4335,9 +4354,10 @@ ir.cpp:
|
||||
# 778| r778_7(glval<unknown>) = FunctionAddress[~Base] :
|
||||
# 778| v778_8(void) = Call : func:r778_7, this:r778_6
|
||||
# 778| mu778_9(unknown) = ^CallSideEffect : ~m?
|
||||
# 777| v777_8(void) = ReturnVoid :
|
||||
# 777| v777_9(void) = AliasedUse : ~m?
|
||||
# 777| v777_10(void) = ExitFunction :
|
||||
# 777| v777_8(void) = ReturnIndirection[#this] : &:r777_6, ~m?
|
||||
# 777| v777_9(void) = ReturnVoid :
|
||||
# 777| v777_10(void) = AliasedUse : ~m?
|
||||
# 777| v777_11(void) = ExitFunction :
|
||||
|
||||
# 784| void MiddleVB2::MiddleVB2()
|
||||
# 784| Block 0
|
||||
@@ -4359,9 +4379,10 @@ ir.cpp:
|
||||
# 784| mu784_16(unknown) = ^CallSideEffect : ~m?
|
||||
# 784| mu784_17(String) = ^IndirectMayWriteSideEffect[-1] : &:r784_13
|
||||
# 785| v785_1(void) = NoOp :
|
||||
# 784| v784_18(void) = ReturnVoid :
|
||||
# 784| v784_19(void) = AliasedUse : ~m?
|
||||
# 784| v784_20(void) = ExitFunction :
|
||||
# 784| v784_18(void) = ReturnIndirection[#this] : &:r784_6, ~m?
|
||||
# 784| v784_19(void) = ReturnVoid :
|
||||
# 784| v784_20(void) = AliasedUse : ~m?
|
||||
# 784| v784_21(void) = ExitFunction :
|
||||
|
||||
# 786| void MiddleVB2::~MiddleVB2()
|
||||
# 786| Block 0
|
||||
@@ -4381,9 +4402,10 @@ ir.cpp:
|
||||
# 787| r787_7(glval<unknown>) = FunctionAddress[~Base] :
|
||||
# 787| v787_8(void) = Call : func:r787_7, this:r787_6
|
||||
# 787| mu787_9(unknown) = ^CallSideEffect : ~m?
|
||||
# 786| v786_8(void) = ReturnVoid :
|
||||
# 786| v786_9(void) = AliasedUse : ~m?
|
||||
# 786| v786_10(void) = ExitFunction :
|
||||
# 786| v786_8(void) = ReturnIndirection[#this] : &:r786_6, ~m?
|
||||
# 786| v786_9(void) = ReturnVoid :
|
||||
# 786| v786_10(void) = AliasedUse : ~m?
|
||||
# 786| v786_11(void) = ExitFunction :
|
||||
|
||||
# 793| void DerivedVB::DerivedVB()
|
||||
# 793| Block 0
|
||||
@@ -4415,9 +4437,10 @@ ir.cpp:
|
||||
# 793| mu793_26(unknown) = ^CallSideEffect : ~m?
|
||||
# 793| mu793_27(String) = ^IndirectMayWriteSideEffect[-1] : &:r793_23
|
||||
# 794| v794_1(void) = NoOp :
|
||||
# 793| v793_28(void) = ReturnVoid :
|
||||
# 793| v793_29(void) = AliasedUse : ~m?
|
||||
# 793| v793_30(void) = ExitFunction :
|
||||
# 793| v793_28(void) = ReturnIndirection[#this] : &:r793_6, ~m?
|
||||
# 793| v793_29(void) = ReturnVoid :
|
||||
# 793| v793_30(void) = AliasedUse : ~m?
|
||||
# 793| v793_31(void) = ExitFunction :
|
||||
|
||||
# 795| void DerivedVB::~DerivedVB()
|
||||
# 795| Block 0
|
||||
@@ -4445,9 +4468,10 @@ ir.cpp:
|
||||
# 796| r796_15(glval<unknown>) = FunctionAddress[~Base] :
|
||||
# 796| v796_16(void) = Call : func:r796_15, this:r796_14
|
||||
# 796| mu796_17(unknown) = ^CallSideEffect : ~m?
|
||||
# 795| v795_8(void) = ReturnVoid :
|
||||
# 795| v795_9(void) = AliasedUse : ~m?
|
||||
# 795| v795_10(void) = ExitFunction :
|
||||
# 795| v795_8(void) = ReturnIndirection[#this] : &:r795_6, ~m?
|
||||
# 795| v795_9(void) = ReturnVoid :
|
||||
# 795| v795_10(void) = AliasedUse : ~m?
|
||||
# 795| v795_11(void) = ExitFunction :
|
||||
|
||||
# 799| void HierarchyConversions()
|
||||
# 799| Block 0
|
||||
@@ -4751,9 +4775,10 @@ ir.cpp:
|
||||
# 842| r842_6(glval<PolymorphicBase>) = Load : &:r842_4, ~m?
|
||||
# 842| mu842_7(PolymorphicBase) = InitializeIndirection[#this] : &:r842_6
|
||||
# 842| v842_8(void) = NoOp :
|
||||
# 842| v842_9(void) = ReturnVoid :
|
||||
# 842| v842_10(void) = AliasedUse : ~m?
|
||||
# 842| v842_11(void) = ExitFunction :
|
||||
# 842| v842_9(void) = ReturnIndirection[#this] : &:r842_6, ~m?
|
||||
# 842| v842_10(void) = ReturnVoid :
|
||||
# 842| v842_11(void) = AliasedUse : ~m?
|
||||
# 842| v842_12(void) = ExitFunction :
|
||||
|
||||
# 846| void PolymorphicDerived::PolymorphicDerived()
|
||||
# 846| Block 0
|
||||
@@ -4770,9 +4795,10 @@ ir.cpp:
|
||||
# 846| mu846_11(unknown) = ^CallSideEffect : ~m?
|
||||
# 846| mu846_12(PolymorphicBase) = ^IndirectMayWriteSideEffect[-1] : &:r846_8
|
||||
# 846| v846_13(void) = NoOp :
|
||||
# 846| v846_14(void) = ReturnVoid :
|
||||
# 846| v846_15(void) = AliasedUse : ~m?
|
||||
# 846| v846_16(void) = ExitFunction :
|
||||
# 846| v846_14(void) = ReturnIndirection[#this] : &:r846_6, ~m?
|
||||
# 846| v846_15(void) = ReturnVoid :
|
||||
# 846| v846_16(void) = AliasedUse : ~m?
|
||||
# 846| v846_17(void) = ExitFunction :
|
||||
|
||||
# 846| void PolymorphicDerived::~PolymorphicDerived()
|
||||
# 846| Block 0
|
||||
@@ -4788,9 +4814,10 @@ ir.cpp:
|
||||
# 846| r846_9(glval<unknown>) = FunctionAddress[~PolymorphicBase] :
|
||||
# 846| v846_10(void) = Call : func:r846_9, this:r846_8
|
||||
# 846| mu846_11(unknown) = ^CallSideEffect : ~m?
|
||||
# 846| v846_12(void) = ReturnVoid :
|
||||
# 846| v846_13(void) = AliasedUse : ~m?
|
||||
# 846| v846_14(void) = ExitFunction :
|
||||
# 846| v846_12(void) = ReturnIndirection[#this] : &:r846_6, ~m?
|
||||
# 846| v846_13(void) = ReturnVoid :
|
||||
# 846| v846_14(void) = AliasedUse : ~m?
|
||||
# 846| v846_15(void) = ExitFunction :
|
||||
|
||||
# 849| void DynamicCast()
|
||||
# 849| Block 0
|
||||
@@ -4870,9 +4897,10 @@ ir.cpp:
|
||||
# 868| v868_7(void) = ^BufferReadSideEffect[0] : &:r868_3, ~m?
|
||||
# 868| mu868_8(unknown) = ^BufferMayWriteSideEffect[0] : &:r868_3
|
||||
# 869| v869_1(void) = NoOp :
|
||||
# 867| v867_8(void) = ReturnVoid :
|
||||
# 867| v867_9(void) = AliasedUse : ~m?
|
||||
# 867| v867_10(void) = ExitFunction :
|
||||
# 867| v867_8(void) = ReturnIndirection[#this] : &:r867_6, ~m?
|
||||
# 867| v867_9(void) = ReturnVoid :
|
||||
# 867| v867_10(void) = AliasedUse : ~m?
|
||||
# 867| v867_11(void) = ExitFunction :
|
||||
|
||||
# 871| void ArrayConversions()
|
||||
# 871| Block 0
|
||||
@@ -5617,9 +5645,10 @@ ir.cpp:
|
||||
# 1038| r1038_6(glval<decltype([...](...){...})>) = Load : &:r1038_4, ~m?
|
||||
# 1038| mu1038_7(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1038_6
|
||||
# 1038| v1038_8(void) = NoOp :
|
||||
# 1038| v1038_9(void) = ReturnVoid :
|
||||
# 1038| v1038_10(void) = AliasedUse : ~m?
|
||||
# 1038| v1038_11(void) = ExitFunction :
|
||||
# 1038| v1038_9(void) = ReturnIndirection[#this] : &:r1038_6, ~m?
|
||||
# 1038| v1038_10(void) = ReturnVoid :
|
||||
# 1038| v1038_11(void) = AliasedUse : ~m?
|
||||
# 1038| v1038_12(void) = ExitFunction :
|
||||
|
||||
# 1038| void(* (lambda [] type at line 1038, col. 12)::operator void (*)()() const)()
|
||||
# 1038| Block 0
|
||||
@@ -5633,10 +5662,11 @@ ir.cpp:
|
||||
# 1038| r1038_8(glval<..(*)(..)>) = VariableAddress[#return] :
|
||||
# 1038| r1038_9(..(*)(..)) = FunctionAddress[_FUN] :
|
||||
# 1038| mu1038_10(..(*)(..)) = Store : &:r1038_8, r1038_9
|
||||
# 1038| r1038_11(glval<..(*)(..)>) = VariableAddress[#return] :
|
||||
# 1038| v1038_12(void) = ReturnValue : &:r1038_11, ~m?
|
||||
# 1038| v1038_13(void) = AliasedUse : ~m?
|
||||
# 1038| v1038_14(void) = ExitFunction :
|
||||
# 1038| v1038_11(void) = ReturnIndirection[#this] : &:r1038_6, ~m?
|
||||
# 1038| r1038_12(glval<..(*)(..)>) = VariableAddress[#return] :
|
||||
# 1038| v1038_13(void) = ReturnValue : &:r1038_12, ~m?
|
||||
# 1038| v1038_14(void) = AliasedUse : ~m?
|
||||
# 1038| v1038_15(void) = ExitFunction :
|
||||
|
||||
# 1040| void Lambda(int, String const&)
|
||||
# 1040| Block 0
|
||||
@@ -5819,10 +5849,11 @@ ir.cpp:
|
||||
# 1041| r1041_10(glval<char>) = VariableAddress[#return] :
|
||||
# 1041| r1041_11(char) = Constant[65] :
|
||||
# 1041| mu1041_12(char) = Store : &:r1041_10, r1041_11
|
||||
# 1041| r1041_13(glval<char>) = VariableAddress[#return] :
|
||||
# 1041| v1041_14(void) = ReturnValue : &:r1041_13, ~m?
|
||||
# 1041| v1041_15(void) = AliasedUse : ~m?
|
||||
# 1041| v1041_16(void) = ExitFunction :
|
||||
# 1041| v1041_13(void) = ReturnIndirection[#this] : &:r1041_6, ~m?
|
||||
# 1041| r1041_14(glval<char>) = VariableAddress[#return] :
|
||||
# 1041| v1041_15(void) = ReturnValue : &:r1041_14, ~m?
|
||||
# 1041| v1041_16(void) = AliasedUse : ~m?
|
||||
# 1041| v1041_17(void) = ExitFunction :
|
||||
|
||||
# 1041| char(* (void Lambda(int, String const&))::(lambda [] type at line 1041, col. 23)::operator char (*)(float)() const)(float)
|
||||
# 1041| Block 0
|
||||
@@ -5836,10 +5867,11 @@ ir.cpp:
|
||||
# 1041| r1041_8(glval<..(*)(..)>) = VariableAddress[#return] :
|
||||
# 1041| r1041_9(..(*)(..)) = FunctionAddress[_FUN] :
|
||||
# 1041| mu1041_10(..(*)(..)) = Store : &:r1041_8, r1041_9
|
||||
# 1041| r1041_11(glval<..(*)(..)>) = VariableAddress[#return] :
|
||||
# 1041| v1041_12(void) = ReturnValue : &:r1041_11, ~m?
|
||||
# 1041| v1041_13(void) = AliasedUse : ~m?
|
||||
# 1041| v1041_14(void) = ExitFunction :
|
||||
# 1041| v1041_11(void) = ReturnIndirection[#this] : &:r1041_6, ~m?
|
||||
# 1041| r1041_12(glval<..(*)(..)>) = VariableAddress[#return] :
|
||||
# 1041| v1041_13(void) = ReturnValue : &:r1041_12, ~m?
|
||||
# 1041| v1041_14(void) = AliasedUse : ~m?
|
||||
# 1041| v1041_15(void) = ExitFunction :
|
||||
|
||||
# 1043| char (void Lambda(int, String const&))::(lambda [] type at line 1043, col. 21)::operator()(float) const
|
||||
# 1043| Block 0
|
||||
@@ -5871,10 +5903,11 @@ ir.cpp:
|
||||
# 1043| r1043_18(glval<char>) = PointerAdd[1] : r1043_13, r1043_17
|
||||
# 1043| r1043_19(char) = Load : &:r1043_18, ~m?
|
||||
# 1043| mu1043_20(char) = Store : &:r1043_10, r1043_19
|
||||
# 1043| r1043_21(glval<char>) = VariableAddress[#return] :
|
||||
# 1043| v1043_22(void) = ReturnValue : &:r1043_21, ~m?
|
||||
# 1043| v1043_23(void) = AliasedUse : ~m?
|
||||
# 1043| v1043_24(void) = ExitFunction :
|
||||
# 1043| v1043_21(void) = ReturnIndirection[#this] : &:r1043_6, ~m?
|
||||
# 1043| r1043_22(glval<char>) = VariableAddress[#return] :
|
||||
# 1043| v1043_23(void) = ReturnValue : &:r1043_22, ~m?
|
||||
# 1043| v1043_24(void) = AliasedUse : ~m?
|
||||
# 1043| v1043_25(void) = ExitFunction :
|
||||
|
||||
# 1045| void (void Lambda(int, String const&))::(lambda [] type at line 1045, col. 21)::~<unnamed>()
|
||||
# 1045| Block 0
|
||||
@@ -5890,9 +5923,10 @@ ir.cpp:
|
||||
# 1045| r1045_9(glval<unknown>) = FunctionAddress[~String] :
|
||||
# 1045| v1045_10(void) = Call : func:r1045_9, this:r1045_8
|
||||
# 1045| mu1045_11(unknown) = ^CallSideEffect : ~m?
|
||||
# 1045| v1045_12(void) = ReturnVoid :
|
||||
# 1045| v1045_13(void) = AliasedUse : ~m?
|
||||
# 1045| v1045_14(void) = ExitFunction :
|
||||
# 1045| v1045_12(void) = ReturnIndirection[#this] : &:r1045_6, ~m?
|
||||
# 1045| v1045_13(void) = ReturnVoid :
|
||||
# 1045| v1045_14(void) = AliasedUse : ~m?
|
||||
# 1045| v1045_15(void) = ExitFunction :
|
||||
|
||||
# 1045| char (void Lambda(int, String const&))::(lambda [] type at line 1045, col. 21)::operator()(float) const
|
||||
# 1045| Block 0
|
||||
@@ -5921,10 +5955,11 @@ ir.cpp:
|
||||
# 1045| r1045_14(glval<char>) = PointerAdd[1] : r1045_12, r0_9
|
||||
# 1045| r1045_15(char) = Load : &:r1045_14, ~m?
|
||||
# 1045| mu1045_16(char) = Store : &:r1045_10, r1045_15
|
||||
# 1045| r1045_17(glval<char>) = VariableAddress[#return] :
|
||||
# 1045| v1045_18(void) = ReturnValue : &:r1045_17, ~m?
|
||||
# 1045| v1045_19(void) = AliasedUse : ~m?
|
||||
# 1045| v1045_20(void) = ExitFunction :
|
||||
# 1045| v1045_17(void) = ReturnIndirection[#this] : &:r1045_6, ~m?
|
||||
# 1045| r1045_18(glval<char>) = VariableAddress[#return] :
|
||||
# 1045| v1045_19(void) = ReturnValue : &:r1045_18, ~m?
|
||||
# 1045| v1045_20(void) = AliasedUse : ~m?
|
||||
# 1045| v1045_21(void) = ExitFunction :
|
||||
|
||||
# 1047| char (void Lambda(int, String const&))::(lambda [] type at line 1047, col. 30)::operator()(float) const
|
||||
# 1047| Block 0
|
||||
@@ -5952,10 +5987,11 @@ ir.cpp:
|
||||
# 1047| r1047_18(glval<char>) = PointerAdd[1] : r1047_13, r1047_17
|
||||
# 1047| r1047_19(char) = Load : &:r1047_18, ~m?
|
||||
# 1047| mu1047_20(char) = Store : &:r1047_10, r1047_19
|
||||
# 1047| r1047_21(glval<char>) = VariableAddress[#return] :
|
||||
# 1047| v1047_22(void) = ReturnValue : &:r1047_21, ~m?
|
||||
# 1047| v1047_23(void) = AliasedUse : ~m?
|
||||
# 1047| v1047_24(void) = ExitFunction :
|
||||
# 1047| v1047_21(void) = ReturnIndirection[#this] : &:r1047_6, ~m?
|
||||
# 1047| r1047_22(glval<char>) = VariableAddress[#return] :
|
||||
# 1047| v1047_23(void) = ReturnValue : &:r1047_22, ~m?
|
||||
# 1047| v1047_24(void) = AliasedUse : ~m?
|
||||
# 1047| v1047_25(void) = ExitFunction :
|
||||
|
||||
# 1049| void (void Lambda(int, String const&))::(lambda [] type at line 1049, col. 30)::~<unnamed>()
|
||||
# 1049| Block 0
|
||||
@@ -5971,9 +6007,10 @@ ir.cpp:
|
||||
# 1049| r1049_9(glval<unknown>) = FunctionAddress[~String] :
|
||||
# 1049| v1049_10(void) = Call : func:r1049_9, this:r1049_8
|
||||
# 1049| mu1049_11(unknown) = ^CallSideEffect : ~m?
|
||||
# 1049| v1049_12(void) = ReturnVoid :
|
||||
# 1049| v1049_13(void) = AliasedUse : ~m?
|
||||
# 1049| v1049_14(void) = ExitFunction :
|
||||
# 1049| v1049_12(void) = ReturnIndirection[#this] : &:r1049_6, ~m?
|
||||
# 1049| v1049_13(void) = ReturnVoid :
|
||||
# 1049| v1049_14(void) = AliasedUse : ~m?
|
||||
# 1049| v1049_15(void) = ExitFunction :
|
||||
|
||||
# 1049| char (void Lambda(int, String const&))::(lambda [] type at line 1049, col. 30)::operator()(float) const
|
||||
# 1049| Block 0
|
||||
@@ -5999,10 +6036,11 @@ ir.cpp:
|
||||
# 1049| r1049_15(glval<char>) = PointerAdd[1] : r1049_12, r1049_14
|
||||
# 1049| r1049_16(char) = Load : &:r1049_15, ~m?
|
||||
# 1049| mu1049_17(char) = Store : &:r1049_10, r1049_16
|
||||
# 1049| r1049_18(glval<char>) = VariableAddress[#return] :
|
||||
# 1049| v1049_19(void) = ReturnValue : &:r1049_18, ~m?
|
||||
# 1049| v1049_20(void) = AliasedUse : ~m?
|
||||
# 1049| v1049_21(void) = ExitFunction :
|
||||
# 1049| v1049_18(void) = ReturnIndirection[#this] : &:r1049_6, ~m?
|
||||
# 1049| r1049_19(glval<char>) = VariableAddress[#return] :
|
||||
# 1049| v1049_20(void) = ReturnValue : &:r1049_19, ~m?
|
||||
# 1049| v1049_21(void) = AliasedUse : ~m?
|
||||
# 1049| v1049_22(void) = ExitFunction :
|
||||
|
||||
# 1051| char (void Lambda(int, String const&))::(lambda [] type at line 1051, col. 32)::operator()(float) const
|
||||
# 1051| Block 0
|
||||
@@ -6033,10 +6071,11 @@ ir.cpp:
|
||||
# 1051| r1051_17(glval<char>) = PointerAdd[1] : r1051_13, r0_8
|
||||
# 1051| r1051_18(char) = Load : &:r1051_17, ~m?
|
||||
# 1051| mu1051_19(char) = Store : &:r1051_10, r1051_18
|
||||
# 1051| r1051_20(glval<char>) = VariableAddress[#return] :
|
||||
# 1051| v1051_21(void) = ReturnValue : &:r1051_20, ~m?
|
||||
# 1051| v1051_22(void) = AliasedUse : ~m?
|
||||
# 1051| v1051_23(void) = ExitFunction :
|
||||
# 1051| v1051_20(void) = ReturnIndirection[#this] : &:r1051_6, ~m?
|
||||
# 1051| r1051_21(glval<char>) = VariableAddress[#return] :
|
||||
# 1051| v1051_22(void) = ReturnValue : &:r1051_21, ~m?
|
||||
# 1051| v1051_23(void) = AliasedUse : ~m?
|
||||
# 1051| v1051_24(void) = ExitFunction :
|
||||
|
||||
# 1054| char (void Lambda(int, String const&))::(lambda [] type at line 1054, col. 23)::operator()(float) const
|
||||
# 1054| Block 0
|
||||
@@ -6078,10 +6117,11 @@ ir.cpp:
|
||||
# 1054| r1054_24(glval<char>) = PointerAdd[1] : r1054_13, r1054_23
|
||||
# 1054| r1054_25(char) = Load : &:r1054_24, ~m?
|
||||
# 1054| mu1054_26(char) = Store : &:r1054_10, r1054_25
|
||||
# 1054| r1054_27(glval<char>) = VariableAddress[#return] :
|
||||
# 1054| v1054_28(void) = ReturnValue : &:r1054_27, ~m?
|
||||
# 1054| v1054_29(void) = AliasedUse : ~m?
|
||||
# 1054| v1054_30(void) = ExitFunction :
|
||||
# 1054| v1054_27(void) = ReturnIndirection[#this] : &:r1054_6, ~m?
|
||||
# 1054| r1054_28(glval<char>) = VariableAddress[#return] :
|
||||
# 1054| v1054_29(void) = ReturnValue : &:r1054_28, ~m?
|
||||
# 1054| v1054_30(void) = AliasedUse : ~m?
|
||||
# 1054| v1054_31(void) = ExitFunction :
|
||||
|
||||
# 1077| void RangeBasedFor(vector<int> const&)
|
||||
# 1077| Block 0
|
||||
@@ -7385,9 +7425,10 @@ perf-regression.cpp:
|
||||
# 6| r6_11(unknown[1073741824]) = Constant[0] :
|
||||
# 6| mu6_12(unknown[1073741824]) = Store : &:r6_10, r6_11
|
||||
# 6| v6_13(void) = NoOp :
|
||||
# 6| v6_14(void) = ReturnVoid :
|
||||
# 6| v6_15(void) = AliasedUse : ~m?
|
||||
# 6| v6_16(void) = ExitFunction :
|
||||
# 6| v6_14(void) = ReturnIndirection[#this] : &:r6_6, ~m?
|
||||
# 6| v6_15(void) = ReturnVoid :
|
||||
# 6| v6_16(void) = AliasedUse : ~m?
|
||||
# 6| v6_17(void) = ExitFunction :
|
||||
|
||||
# 9| int main()
|
||||
# 9| Block 0
|
||||
|
||||
@@ -1020,9 +1020,10 @@ ssa.cpp:
|
||||
# 235| r235_9(glval<int>) = VariableAddress[x] :
|
||||
# 235| m235_10(int) = InitializeParameter[x] : &:r235_9
|
||||
# 235| v235_11(void) = NoOp :
|
||||
# 235| v235_12(void) = ReturnVoid :
|
||||
# 235| v235_13(void) = AliasedUse : m235_3
|
||||
# 235| v235_14(void) = ExitFunction :
|
||||
# 235| v235_12(void) = ReturnIndirection[#this] : &:r235_7, m235_8
|
||||
# 235| v235_13(void) = ReturnVoid :
|
||||
# 235| v235_14(void) = AliasedUse : m235_3
|
||||
# 235| v235_15(void) = ExitFunction :
|
||||
|
||||
# 236| void Constructible::g()
|
||||
# 236| Block 0
|
||||
@@ -1035,9 +1036,10 @@ ssa.cpp:
|
||||
# 236| r236_7(glval<Constructible>) = Load : &:r236_5, m236_6
|
||||
# 236| m236_8(Constructible) = InitializeIndirection[#this] : &:r236_7
|
||||
# 236| v236_9(void) = NoOp :
|
||||
# 236| v236_10(void) = ReturnVoid :
|
||||
# 236| v236_11(void) = AliasedUse : m236_3
|
||||
# 236| v236_12(void) = ExitFunction :
|
||||
# 236| v236_10(void) = ReturnIndirection[#this] : &:r236_7, m236_8
|
||||
# 236| v236_11(void) = ReturnVoid :
|
||||
# 236| v236_12(void) = AliasedUse : m236_3
|
||||
# 236| v236_13(void) = ExitFunction :
|
||||
|
||||
# 239| void ExplicitConstructorCalls()
|
||||
# 239| Block 0
|
||||
@@ -1307,9 +1309,10 @@ ssa.cpp:
|
||||
# 286| r286_9(glval<int>) = VariableAddress[x] :
|
||||
# 286| m286_10(int) = InitializeParameter[x] : &:r286_9
|
||||
# 286| v286_11(void) = NoOp :
|
||||
# 286| v286_12(void) = ReturnVoid :
|
||||
# 286| v286_13(void) = AliasedUse : m286_3
|
||||
# 286| v286_14(void) = ExitFunction :
|
||||
# 286| v286_12(void) = ReturnIndirection[#this] : &:r286_7, m286_8
|
||||
# 286| v286_13(void) = ReturnVoid :
|
||||
# 286| v286_14(void) = AliasedUse : m286_3
|
||||
# 286| v286_15(void) = ExitFunction :
|
||||
|
||||
# 287| void A::A(A*)
|
||||
# 287| Block 0
|
||||
@@ -1326,10 +1329,11 @@ ssa.cpp:
|
||||
# 287| r287_11(A *) = Load : &:r287_9, m287_10
|
||||
# 287| m287_12(unknown) = InitializeIndirection[p#0] : &:r287_11
|
||||
# 287| v287_13(void) = NoOp :
|
||||
# 287| v287_14(void) = ReturnIndirection[p#0] : &:r287_11, m287_12
|
||||
# 287| v287_15(void) = ReturnVoid :
|
||||
# 287| v287_16(void) = AliasedUse : m287_3
|
||||
# 287| v287_17(void) = ExitFunction :
|
||||
# 287| v287_14(void) = ReturnIndirection[#this] : &:r287_7, m287_8
|
||||
# 287| v287_15(void) = ReturnIndirection[p#0] : &:r287_11, m287_12
|
||||
# 287| v287_16(void) = ReturnVoid :
|
||||
# 287| v287_17(void) = AliasedUse : m287_3
|
||||
# 287| v287_18(void) = ExitFunction :
|
||||
|
||||
# 288| void A::A()
|
||||
# 288| Block 0
|
||||
@@ -1342,9 +1346,10 @@ ssa.cpp:
|
||||
# 288| r288_7(glval<A>) = Load : &:r288_5, m288_6
|
||||
# 288| m288_8(A) = InitializeIndirection[#this] : &:r288_7
|
||||
# 288| v288_9(void) = NoOp :
|
||||
# 288| v288_10(void) = ReturnVoid :
|
||||
# 288| v288_11(void) = AliasedUse : m288_3
|
||||
# 288| v288_12(void) = ExitFunction :
|
||||
# 288| v288_10(void) = ReturnIndirection[#this] : &:r288_7, m288_8
|
||||
# 288| v288_11(void) = ReturnVoid :
|
||||
# 288| v288_12(void) = AliasedUse : m288_3
|
||||
# 288| v288_13(void) = ExitFunction :
|
||||
|
||||
# 291| Point* NewAliasing(int)
|
||||
# 291| Block 0
|
||||
@@ -1499,6 +1504,7 @@ ssa.cpp:
|
||||
# 311| m311_6(int) = Store : &:r311_5, r311_2
|
||||
# 311| m311_7(unknown) = Chi : total:m310_8, partial:m311_6
|
||||
# 312| v312_1(void) = NoOp :
|
||||
# 310| v310_11(void) = ReturnVoid :
|
||||
# 310| v310_12(void) = AliasedUse : m310_3
|
||||
# 310| v310_13(void) = ExitFunction :
|
||||
# 310| v310_11(void) = ReturnIndirection[#this] : &:r310_7, m311_7
|
||||
# 310| v310_12(void) = ReturnVoid :
|
||||
# 310| v310_13(void) = AliasedUse : m310_3
|
||||
# 310| v310_14(void) = ExitFunction :
|
||||
|
||||
@@ -1013,9 +1013,10 @@ ssa.cpp:
|
||||
# 235| r235_9(glval<int>) = VariableAddress[x] :
|
||||
# 235| m235_10(int) = InitializeParameter[x] : &:r235_9
|
||||
# 235| v235_11(void) = NoOp :
|
||||
# 235| v235_12(void) = ReturnVoid :
|
||||
# 235| v235_13(void) = AliasedUse : m235_3
|
||||
# 235| v235_14(void) = ExitFunction :
|
||||
# 235| v235_12(void) = ReturnIndirection[#this] : &:r235_7, m235_8
|
||||
# 235| v235_13(void) = ReturnVoid :
|
||||
# 235| v235_14(void) = AliasedUse : m235_3
|
||||
# 235| v235_15(void) = ExitFunction :
|
||||
|
||||
# 236| void Constructible::g()
|
||||
# 236| Block 0
|
||||
@@ -1028,9 +1029,10 @@ ssa.cpp:
|
||||
# 236| r236_7(glval<Constructible>) = Load : &:r236_5, m236_6
|
||||
# 236| m236_8(Constructible) = InitializeIndirection[#this] : &:r236_7
|
||||
# 236| v236_9(void) = NoOp :
|
||||
# 236| v236_10(void) = ReturnVoid :
|
||||
# 236| v236_11(void) = AliasedUse : m236_3
|
||||
# 236| v236_12(void) = ExitFunction :
|
||||
# 236| v236_10(void) = ReturnIndirection[#this] : &:r236_7, m236_8
|
||||
# 236| v236_11(void) = ReturnVoid :
|
||||
# 236| v236_12(void) = AliasedUse : m236_3
|
||||
# 236| v236_13(void) = ExitFunction :
|
||||
|
||||
# 239| void ExplicitConstructorCalls()
|
||||
# 239| Block 0
|
||||
@@ -1295,9 +1297,10 @@ ssa.cpp:
|
||||
# 286| r286_9(glval<int>) = VariableAddress[x] :
|
||||
# 286| m286_10(int) = InitializeParameter[x] : &:r286_9
|
||||
# 286| v286_11(void) = NoOp :
|
||||
# 286| v286_12(void) = ReturnVoid :
|
||||
# 286| v286_13(void) = AliasedUse : m286_3
|
||||
# 286| v286_14(void) = ExitFunction :
|
||||
# 286| v286_12(void) = ReturnIndirection[#this] : &:r286_7, m286_8
|
||||
# 286| v286_13(void) = ReturnVoid :
|
||||
# 286| v286_14(void) = AliasedUse : m286_3
|
||||
# 286| v286_15(void) = ExitFunction :
|
||||
|
||||
# 287| void A::A(A*)
|
||||
# 287| Block 0
|
||||
@@ -1314,10 +1317,11 @@ ssa.cpp:
|
||||
# 287| r287_11(A *) = Load : &:r287_9, m287_10
|
||||
# 287| m287_12(unknown) = InitializeIndirection[p#0] : &:r287_11
|
||||
# 287| v287_13(void) = NoOp :
|
||||
# 287| v287_14(void) = ReturnIndirection[p#0] : &:r287_11, m287_12
|
||||
# 287| v287_15(void) = ReturnVoid :
|
||||
# 287| v287_16(void) = AliasedUse : m287_3
|
||||
# 287| v287_17(void) = ExitFunction :
|
||||
# 287| v287_14(void) = ReturnIndirection[#this] : &:r287_7, m287_8
|
||||
# 287| v287_15(void) = ReturnIndirection[p#0] : &:r287_11, m287_12
|
||||
# 287| v287_16(void) = ReturnVoid :
|
||||
# 287| v287_17(void) = AliasedUse : m287_3
|
||||
# 287| v287_18(void) = ExitFunction :
|
||||
|
||||
# 288| void A::A()
|
||||
# 288| Block 0
|
||||
@@ -1330,9 +1334,10 @@ ssa.cpp:
|
||||
# 288| r288_7(glval<A>) = Load : &:r288_5, m288_6
|
||||
# 288| m288_8(A) = InitializeIndirection[#this] : &:r288_7
|
||||
# 288| v288_9(void) = NoOp :
|
||||
# 288| v288_10(void) = ReturnVoid :
|
||||
# 288| v288_11(void) = AliasedUse : m288_3
|
||||
# 288| v288_12(void) = ExitFunction :
|
||||
# 288| v288_10(void) = ReturnIndirection[#this] : &:r288_7, m288_8
|
||||
# 288| v288_11(void) = ReturnVoid :
|
||||
# 288| v288_12(void) = AliasedUse : m288_3
|
||||
# 288| v288_13(void) = ExitFunction :
|
||||
|
||||
# 291| Point* NewAliasing(int)
|
||||
# 291| Block 0
|
||||
@@ -1486,6 +1491,7 @@ ssa.cpp:
|
||||
# 311| m311_6(int) = Store : &:r311_5, r311_2
|
||||
# 311| m311_7(unknown) = Chi : total:m310_8, partial:m311_6
|
||||
# 312| v312_1(void) = NoOp :
|
||||
# 310| v310_11(void) = ReturnVoid :
|
||||
# 310| v310_12(void) = AliasedUse : m310_3
|
||||
# 310| v310_13(void) = ExitFunction :
|
||||
# 310| v310_11(void) = ReturnIndirection[#this] : &:r310_7, m311_7
|
||||
# 310| v310_12(void) = ReturnVoid :
|
||||
# 310| v310_13(void) = AliasedUse : m310_3
|
||||
# 310| v310_14(void) = ExitFunction :
|
||||
|
||||
@@ -947,9 +947,10 @@ ssa.cpp:
|
||||
# 235| r235_8(glval<int>) = VariableAddress[x] :
|
||||
# 235| m235_9(int) = InitializeParameter[x] : &:r235_8
|
||||
# 235| v235_10(void) = NoOp :
|
||||
# 235| v235_11(void) = ReturnVoid :
|
||||
# 235| v235_12(void) = AliasedUse : ~m?
|
||||
# 235| v235_13(void) = ExitFunction :
|
||||
# 235| v235_11(void) = ReturnIndirection[#this] : &:r235_6, ~m?
|
||||
# 235| v235_12(void) = ReturnVoid :
|
||||
# 235| v235_13(void) = AliasedUse : ~m?
|
||||
# 235| v235_14(void) = ExitFunction :
|
||||
|
||||
# 236| void Constructible::g()
|
||||
# 236| Block 0
|
||||
@@ -961,9 +962,10 @@ ssa.cpp:
|
||||
# 236| r236_6(glval<Constructible>) = Load : &:r236_4, m236_5
|
||||
# 236| mu236_7(Constructible) = InitializeIndirection[#this] : &:r236_6
|
||||
# 236| v236_8(void) = NoOp :
|
||||
# 236| v236_9(void) = ReturnVoid :
|
||||
# 236| v236_10(void) = AliasedUse : ~m?
|
||||
# 236| v236_11(void) = ExitFunction :
|
||||
# 236| v236_9(void) = ReturnIndirection[#this] : &:r236_6, ~m?
|
||||
# 236| v236_10(void) = ReturnVoid :
|
||||
# 236| v236_11(void) = AliasedUse : ~m?
|
||||
# 236| v236_12(void) = ExitFunction :
|
||||
|
||||
# 239| void ExplicitConstructorCalls()
|
||||
# 239| Block 0
|
||||
@@ -1198,9 +1200,10 @@ ssa.cpp:
|
||||
# 286| r286_8(glval<int>) = VariableAddress[x] :
|
||||
# 286| m286_9(int) = InitializeParameter[x] : &:r286_8
|
||||
# 286| v286_10(void) = NoOp :
|
||||
# 286| v286_11(void) = ReturnVoid :
|
||||
# 286| v286_12(void) = AliasedUse : ~m?
|
||||
# 286| v286_13(void) = ExitFunction :
|
||||
# 286| v286_11(void) = ReturnIndirection[#this] : &:r286_6, ~m?
|
||||
# 286| v286_12(void) = ReturnVoid :
|
||||
# 286| v286_13(void) = AliasedUse : ~m?
|
||||
# 286| v286_14(void) = ExitFunction :
|
||||
|
||||
# 287| void A::A(A*)
|
||||
# 287| Block 0
|
||||
@@ -1216,10 +1219,11 @@ ssa.cpp:
|
||||
# 287| r287_10(A *) = Load : &:r287_8, m287_9
|
||||
# 287| mu287_11(unknown) = InitializeIndirection[p#0] : &:r287_10
|
||||
# 287| v287_12(void) = NoOp :
|
||||
# 287| v287_13(void) = ReturnIndirection[p#0] : &:r287_10, ~m?
|
||||
# 287| v287_14(void) = ReturnVoid :
|
||||
# 287| v287_15(void) = AliasedUse : ~m?
|
||||
# 287| v287_16(void) = ExitFunction :
|
||||
# 287| v287_13(void) = ReturnIndirection[#this] : &:r287_6, ~m?
|
||||
# 287| v287_14(void) = ReturnIndirection[p#0] : &:r287_10, ~m?
|
||||
# 287| v287_15(void) = ReturnVoid :
|
||||
# 287| v287_16(void) = AliasedUse : ~m?
|
||||
# 287| v287_17(void) = ExitFunction :
|
||||
|
||||
# 288| void A::A()
|
||||
# 288| Block 0
|
||||
@@ -1231,9 +1235,10 @@ ssa.cpp:
|
||||
# 288| r288_6(glval<A>) = Load : &:r288_4, m288_5
|
||||
# 288| mu288_7(A) = InitializeIndirection[#this] : &:r288_6
|
||||
# 288| v288_8(void) = NoOp :
|
||||
# 288| v288_9(void) = ReturnVoid :
|
||||
# 288| v288_10(void) = AliasedUse : ~m?
|
||||
# 288| v288_11(void) = ExitFunction :
|
||||
# 288| v288_9(void) = ReturnIndirection[#this] : &:r288_6, ~m?
|
||||
# 288| v288_10(void) = ReturnVoid :
|
||||
# 288| v288_11(void) = AliasedUse : ~m?
|
||||
# 288| v288_12(void) = ExitFunction :
|
||||
|
||||
# 291| Point* NewAliasing(int)
|
||||
# 291| Block 0
|
||||
@@ -1367,6 +1372,7 @@ ssa.cpp:
|
||||
# 311| r311_5(glval<int>) = FieldAddress[x] : r311_4
|
||||
# 311| mu311_6(int) = Store : &:r311_5, r311_2
|
||||
# 312| v312_1(void) = NoOp :
|
||||
# 310| v310_10(void) = ReturnVoid :
|
||||
# 310| v310_11(void) = AliasedUse : ~m?
|
||||
# 310| v310_12(void) = ExitFunction :
|
||||
# 310| v310_10(void) = ReturnIndirection[#this] : &:r310_6, ~m?
|
||||
# 310| v310_11(void) = ReturnVoid :
|
||||
# 310| v310_12(void) = AliasedUse : ~m?
|
||||
# 310| v310_13(void) = ExitFunction :
|
||||
|
||||
@@ -947,9 +947,10 @@ ssa.cpp:
|
||||
# 235| r235_8(glval<int>) = VariableAddress[x] :
|
||||
# 235| m235_9(int) = InitializeParameter[x] : &:r235_8
|
||||
# 235| v235_10(void) = NoOp :
|
||||
# 235| v235_11(void) = ReturnVoid :
|
||||
# 235| v235_12(void) = AliasedUse : ~m?
|
||||
# 235| v235_13(void) = ExitFunction :
|
||||
# 235| v235_11(void) = ReturnIndirection[#this] : &:r235_6, ~m?
|
||||
# 235| v235_12(void) = ReturnVoid :
|
||||
# 235| v235_13(void) = AliasedUse : ~m?
|
||||
# 235| v235_14(void) = ExitFunction :
|
||||
|
||||
# 236| void Constructible::g()
|
||||
# 236| Block 0
|
||||
@@ -961,9 +962,10 @@ ssa.cpp:
|
||||
# 236| r236_6(glval<Constructible>) = Load : &:r236_4, m236_5
|
||||
# 236| mu236_7(Constructible) = InitializeIndirection[#this] : &:r236_6
|
||||
# 236| v236_8(void) = NoOp :
|
||||
# 236| v236_9(void) = ReturnVoid :
|
||||
# 236| v236_10(void) = AliasedUse : ~m?
|
||||
# 236| v236_11(void) = ExitFunction :
|
||||
# 236| v236_9(void) = ReturnIndirection[#this] : &:r236_6, ~m?
|
||||
# 236| v236_10(void) = ReturnVoid :
|
||||
# 236| v236_11(void) = AliasedUse : ~m?
|
||||
# 236| v236_12(void) = ExitFunction :
|
||||
|
||||
# 239| void ExplicitConstructorCalls()
|
||||
# 239| Block 0
|
||||
@@ -1198,9 +1200,10 @@ ssa.cpp:
|
||||
# 286| r286_8(glval<int>) = VariableAddress[x] :
|
||||
# 286| m286_9(int) = InitializeParameter[x] : &:r286_8
|
||||
# 286| v286_10(void) = NoOp :
|
||||
# 286| v286_11(void) = ReturnVoid :
|
||||
# 286| v286_12(void) = AliasedUse : ~m?
|
||||
# 286| v286_13(void) = ExitFunction :
|
||||
# 286| v286_11(void) = ReturnIndirection[#this] : &:r286_6, ~m?
|
||||
# 286| v286_12(void) = ReturnVoid :
|
||||
# 286| v286_13(void) = AliasedUse : ~m?
|
||||
# 286| v286_14(void) = ExitFunction :
|
||||
|
||||
# 287| void A::A(A*)
|
||||
# 287| Block 0
|
||||
@@ -1216,10 +1219,11 @@ ssa.cpp:
|
||||
# 287| r287_10(A *) = Load : &:r287_8, m287_9
|
||||
# 287| mu287_11(unknown) = InitializeIndirection[p#0] : &:r287_10
|
||||
# 287| v287_12(void) = NoOp :
|
||||
# 287| v287_13(void) = ReturnIndirection[p#0] : &:r287_10, ~m?
|
||||
# 287| v287_14(void) = ReturnVoid :
|
||||
# 287| v287_15(void) = AliasedUse : ~m?
|
||||
# 287| v287_16(void) = ExitFunction :
|
||||
# 287| v287_13(void) = ReturnIndirection[#this] : &:r287_6, ~m?
|
||||
# 287| v287_14(void) = ReturnIndirection[p#0] : &:r287_10, ~m?
|
||||
# 287| v287_15(void) = ReturnVoid :
|
||||
# 287| v287_16(void) = AliasedUse : ~m?
|
||||
# 287| v287_17(void) = ExitFunction :
|
||||
|
||||
# 288| void A::A()
|
||||
# 288| Block 0
|
||||
@@ -1231,9 +1235,10 @@ ssa.cpp:
|
||||
# 288| r288_6(glval<A>) = Load : &:r288_4, m288_5
|
||||
# 288| mu288_7(A) = InitializeIndirection[#this] : &:r288_6
|
||||
# 288| v288_8(void) = NoOp :
|
||||
# 288| v288_9(void) = ReturnVoid :
|
||||
# 288| v288_10(void) = AliasedUse : ~m?
|
||||
# 288| v288_11(void) = ExitFunction :
|
||||
# 288| v288_9(void) = ReturnIndirection[#this] : &:r288_6, ~m?
|
||||
# 288| v288_10(void) = ReturnVoid :
|
||||
# 288| v288_11(void) = AliasedUse : ~m?
|
||||
# 288| v288_12(void) = ExitFunction :
|
||||
|
||||
# 291| Point* NewAliasing(int)
|
||||
# 291| Block 0
|
||||
@@ -1367,6 +1372,7 @@ ssa.cpp:
|
||||
# 311| r311_5(glval<int>) = FieldAddress[x] : r311_4
|
||||
# 311| mu311_6(int) = Store : &:r311_5, r311_2
|
||||
# 312| v312_1(void) = NoOp :
|
||||
# 310| v310_10(void) = ReturnVoid :
|
||||
# 310| v310_11(void) = AliasedUse : ~m?
|
||||
# 310| v310_12(void) = ExitFunction :
|
||||
# 310| v310_10(void) = ReturnIndirection[#this] : &:r310_6, ~m?
|
||||
# 310| v310_11(void) = ReturnVoid :
|
||||
# 310| v310_12(void) = AliasedUse : ~m?
|
||||
# 310| v310_13(void) = ExitFunction :
|
||||
|
||||
Reference in New Issue
Block a user