mirror of
https://github.com/github/codeql.git
synced 2026-03-17 04:56:58 +01:00
C++: escape analysis for this parameters
This commit is contained in:
@@ -153,13 +153,19 @@ predicate operandIsPropagated(Operand operand, IntValue bitOffset) {
|
||||
operandIsPropagated(operand, _) and not resultEscapes(operand.getUseInstruction())
|
||||
or
|
||||
// The address is passed as an argument to a function from which it does not escape
|
||||
exists(CallInstruction ci, FunctionIR f, InitializeParameterInstruction ipi |
|
||||
exists(CallInstruction ci, FunctionIR f, Instruction init |
|
||||
ci = operand.getUseInstruction() and
|
||||
f.getFunction() = ci.getStaticCallTarget() and
|
||||
ipi.getParameter() = f.getFunction().getParameter(operand.(PositionalArgumentOperand).getIndex()) and
|
||||
not resultEscapesNonReturn(ipi) and
|
||||
(
|
||||
not resultReturned(ipi)
|
||||
init.(InitializeParameterInstruction).getParameter() = f.getFunction().getParameter(operand.(PositionalArgumentOperand).getIndex())
|
||||
or
|
||||
init instanceof InitializeThisInstruction and
|
||||
init.getEnclosingFunctionIR() = f and
|
||||
operand instanceof ThisArgumentOperand
|
||||
) and
|
||||
not resultEscapesNonReturn(init) and
|
||||
(
|
||||
not resultReturned(init)
|
||||
or
|
||||
not resultEscapes(operand.getUseInstruction())
|
||||
)
|
||||
@@ -179,11 +185,17 @@ predicate operandEscapesNonReturn(Operand operand) {
|
||||
not resultEscapesNonReturn(operand.getUseInstruction())
|
||||
or
|
||||
// The operand is used in a function call from which the operand does not escape
|
||||
exists(CallInstruction ci, FunctionIR f, InitializeParameterInstruction ipi |
|
||||
exists(CallInstruction ci, FunctionIR f, Instruction init |
|
||||
ci = operand.getUseInstruction() and
|
||||
f.getFunction() = ci.getStaticCallTarget() and
|
||||
ipi.getParameter() = f.getFunction().getParameter(operand.(PositionalArgumentOperand).getIndex()) and
|
||||
not resultEscapesNonReturn(ipi) and
|
||||
(
|
||||
init.(InitializeParameterInstruction).getParameter() = f.getFunction().getParameter(operand.(PositionalArgumentOperand).getIndex())
|
||||
or
|
||||
init instanceof InitializeThisInstruction and
|
||||
init.getEnclosingFunctionIR() = f and
|
||||
operand instanceof ThisArgumentOperand
|
||||
) and
|
||||
not resultEscapesNonReturn(init) and
|
||||
not resultEscapesNonReturn(ci)
|
||||
) or
|
||||
operand instanceof ReturnValueOperand
|
||||
@@ -203,6 +215,20 @@ predicate operandReturned(Operand operand) {
|
||||
resultReturned(ci)
|
||||
)
|
||||
or
|
||||
exists(CallInstruction ci, FunctionIR f, Instruction init |
|
||||
ci = operand.getUseInstruction() and
|
||||
f.getFunction() = ci.getStaticCallTarget() and
|
||||
(
|
||||
init.(InitializeParameterInstruction).getParameter() = f.getFunction().getParameter(operand.(PositionalArgumentOperand).getIndex())
|
||||
or
|
||||
init instanceof InitializeThisInstruction and
|
||||
init.getEnclosingFunctionIR() = f and
|
||||
operand instanceof ThisArgumentOperand
|
||||
) and
|
||||
resultReturned(init) and
|
||||
resultReturned(ci)
|
||||
)
|
||||
or
|
||||
// The address is returned
|
||||
operand instanceof ReturnValueOperand
|
||||
}
|
||||
@@ -271,11 +297,17 @@ predicate resultPointsTo(Instruction instr, IRVariable var, IntValue bitOffset)
|
||||
(
|
||||
operandIsPropagated(operand, propagatedBitOffset)
|
||||
or
|
||||
exists(CallInstruction ci, FunctionIR f, InitializeParameterInstruction ipi |
|
||||
exists(CallInstruction ci, FunctionIR f, Instruction init |
|
||||
ci = operand.getUseInstruction() and
|
||||
f.getFunction() = ci.getStaticCallTarget() and
|
||||
ipi.getParameter() = f.getFunction().getParameter(operand.(PositionalArgumentOperand).getIndex()) and
|
||||
resultReturned(ipi) and
|
||||
(
|
||||
init.(InitializeParameterInstruction).getParameter() = f.getFunction().getParameter(operand.(PositionalArgumentOperand).getIndex())
|
||||
or
|
||||
init instanceof InitializeThisInstruction and
|
||||
init.getEnclosingFunctionIR() = f and
|
||||
operand instanceof ThisArgumentOperand
|
||||
) and
|
||||
resultReturned(init) and
|
||||
propagatedBitOffset = Ints::unknown()
|
||||
)
|
||||
) and
|
||||
|
||||
@@ -153,13 +153,19 @@ predicate operandIsPropagated(Operand operand, IntValue bitOffset) {
|
||||
operandIsPropagated(operand, _) and not resultEscapes(operand.getUseInstruction())
|
||||
or
|
||||
// The address is passed as an argument to a function from which it does not escape
|
||||
exists(CallInstruction ci, FunctionIR f, InitializeParameterInstruction ipi |
|
||||
exists(CallInstruction ci, FunctionIR f, Instruction init |
|
||||
ci = operand.getUseInstruction() and
|
||||
f.getFunction() = ci.getStaticCallTarget() and
|
||||
ipi.getParameter() = f.getFunction().getParameter(operand.(PositionalArgumentOperand).getIndex()) and
|
||||
not resultEscapesNonReturn(ipi) and
|
||||
(
|
||||
not resultReturned(ipi)
|
||||
init.(InitializeParameterInstruction).getParameter() = f.getFunction().getParameter(operand.(PositionalArgumentOperand).getIndex())
|
||||
or
|
||||
init instanceof InitializeThisInstruction and
|
||||
init.getEnclosingFunctionIR() = f and
|
||||
operand instanceof ThisArgumentOperand
|
||||
) and
|
||||
not resultEscapesNonReturn(init) and
|
||||
(
|
||||
not resultReturned(init)
|
||||
or
|
||||
not resultEscapes(operand.getUseInstruction())
|
||||
)
|
||||
@@ -179,11 +185,17 @@ predicate operandEscapesNonReturn(Operand operand) {
|
||||
not resultEscapesNonReturn(operand.getUseInstruction())
|
||||
or
|
||||
// The operand is used in a function call from which the operand does not escape
|
||||
exists(CallInstruction ci, FunctionIR f, InitializeParameterInstruction ipi |
|
||||
exists(CallInstruction ci, FunctionIR f, Instruction init |
|
||||
ci = operand.getUseInstruction() and
|
||||
f.getFunction() = ci.getStaticCallTarget() and
|
||||
ipi.getParameter() = f.getFunction().getParameter(operand.(PositionalArgumentOperand).getIndex()) and
|
||||
not resultEscapesNonReturn(ipi) and
|
||||
(
|
||||
init.(InitializeParameterInstruction).getParameter() = f.getFunction().getParameter(operand.(PositionalArgumentOperand).getIndex())
|
||||
or
|
||||
init instanceof InitializeThisInstruction and
|
||||
init.getEnclosingFunctionIR() = f and
|
||||
operand instanceof ThisArgumentOperand
|
||||
) and
|
||||
not resultEscapesNonReturn(init) and
|
||||
not resultEscapesNonReturn(ci)
|
||||
) or
|
||||
operand instanceof ReturnValueOperand
|
||||
@@ -203,6 +215,20 @@ predicate operandReturned(Operand operand) {
|
||||
resultReturned(ci)
|
||||
)
|
||||
or
|
||||
exists(CallInstruction ci, FunctionIR f, Instruction init |
|
||||
ci = operand.getUseInstruction() and
|
||||
f.getFunction() = ci.getStaticCallTarget() and
|
||||
(
|
||||
init.(InitializeParameterInstruction).getParameter() = f.getFunction().getParameter(operand.(PositionalArgumentOperand).getIndex())
|
||||
or
|
||||
init instanceof InitializeThisInstruction and
|
||||
init.getEnclosingFunctionIR() = f and
|
||||
operand instanceof ThisArgumentOperand
|
||||
) and
|
||||
resultReturned(init) and
|
||||
resultReturned(ci)
|
||||
)
|
||||
or
|
||||
// The address is returned
|
||||
operand instanceof ReturnValueOperand
|
||||
}
|
||||
@@ -271,11 +297,17 @@ predicate resultPointsTo(Instruction instr, IRVariable var, IntValue bitOffset)
|
||||
(
|
||||
operandIsPropagated(operand, propagatedBitOffset)
|
||||
or
|
||||
exists(CallInstruction ci, FunctionIR f, InitializeParameterInstruction ipi |
|
||||
exists(CallInstruction ci, FunctionIR f, Instruction init |
|
||||
ci = operand.getUseInstruction() and
|
||||
f.getFunction() = ci.getStaticCallTarget() and
|
||||
ipi.getParameter() = f.getFunction().getParameter(operand.(PositionalArgumentOperand).getIndex()) and
|
||||
resultReturned(ipi) and
|
||||
(
|
||||
init.(InitializeParameterInstruction).getParameter() = f.getFunction().getParameter(operand.(PositionalArgumentOperand).getIndex())
|
||||
or
|
||||
init instanceof InitializeThisInstruction and
|
||||
init.getEnclosingFunctionIR() = f and
|
||||
operand instanceof ThisArgumentOperand
|
||||
) and
|
||||
resultReturned(init) and
|
||||
propagatedBitOffset = Ints::unknown()
|
||||
)
|
||||
) and
|
||||
|
||||
@@ -66,6 +66,21 @@ struct Derived : Intermediate1, Intermediate2 {
|
||||
float d;
|
||||
};
|
||||
|
||||
class C;
|
||||
|
||||
void CEscapes(C *no_c);
|
||||
|
||||
class C {
|
||||
public:
|
||||
void ThisEscapes() {
|
||||
CEscapes(this);
|
||||
}
|
||||
|
||||
C *ThisReturned() {
|
||||
return this;
|
||||
}
|
||||
};
|
||||
|
||||
void Escape()
|
||||
{
|
||||
int no_result;
|
||||
@@ -169,4 +184,24 @@ void Escape()
|
||||
|
||||
int no_ssa_passByRef7;
|
||||
ReturnReference(no_ssa_passByRef7);
|
||||
|
||||
C no_ssa_c;
|
||||
|
||||
no_ssa_c.ThisReturned();
|
||||
|
||||
C c;
|
||||
|
||||
c.ThisEscapes();
|
||||
|
||||
C c2;
|
||||
|
||||
CEscapes(&c2);
|
||||
|
||||
C c3;
|
||||
|
||||
c3.ThisReturned()->ThisEscapes();
|
||||
|
||||
C c4;
|
||||
|
||||
CEscapes(c4.ThisReturned());
|
||||
}
|
||||
|
||||
@@ -19,141 +19,154 @@
|
||||
| escape.cpp:38:27:38:30 | VariableAddress[no_r] | no_r+0:0 | no_r+0:0 |
|
||||
| escape.cpp:39:19:39:22 | VariableAddress[no_r] | no_r+0:0 | no_r+0:0 |
|
||||
| escape.cpp:40:10:40:13 | VariableAddress[no_r] | no_r+0:0 | no_r+0:0 |
|
||||
| escape.cpp:71:9:71:17 | VariableAddress[no_result] | no_result+0:0 | no_result+0:0 |
|
||||
| escape.cpp:72:9:72:11 | VariableAddress[no_] | no_+0:0 | no_+0:0 |
|
||||
| escape.cpp:74:5:74:7 | VariableAddress[no_] | no_+0:0 | no_+0:0 |
|
||||
| escape.cpp:75:5:75:7 | VariableAddress[no_] | no_+0:0 | no_+0:0 |
|
||||
| escape.cpp:75:11:75:13 | VariableAddress[no_] | no_+0:0 | no_+0:0 |
|
||||
| escape.cpp:76:5:76:13 | VariableAddress[no_result] | no_result+0:0 | no_result+0:0 |
|
||||
| escape.cpp:76:17:76:19 | VariableAddress[no_] | no_+0:0 | no_+0:0 |
|
||||
| escape.cpp:77:5:77:13 | VariableAddress[no_result] | no_result+0:0 | no_result+0:0 |
|
||||
| escape.cpp:77:19:77:21 | VariableAddress[no_] | no_+0:0 | no_+0:0 |
|
||||
| escape.cpp:79:5:79:7 | VariableAddress[no_] | no_+0:0 | no_+0:0 |
|
||||
| escape.cpp:80:6:80:8 | VariableAddress[no_] | no_+0:0 | no_+0:0 |
|
||||
| escape.cpp:81:5:81:13 | VariableAddress[no_result] | no_result+0:0 | no_result+0:0 |
|
||||
| escape.cpp:81:19:81:28 | PointerAdd[4] | no_+0:0 | no_+0:0 |
|
||||
| escape.cpp:81:21:81:23 | VariableAddress[no_] | no_+0:0 | no_+0:0 |
|
||||
| escape.cpp:82:5:82:13 | VariableAddress[no_result] | no_result+0:0 | no_result+0:0 |
|
||||
| escape.cpp:82:19:82:28 | PointerSub[4] | no_+0:0 | no_+0:0 |
|
||||
| escape.cpp:82:21:82:23 | VariableAddress[no_] | no_+0:0 | no_+0:0 |
|
||||
| escape.cpp:83:5:83:13 | VariableAddress[no_result] | no_result+0:0 | no_result+0:0 |
|
||||
| escape.cpp:83:19:83:26 | PointerAdd[4] | no_+0:0 | no_+0:0 |
|
||||
| escape.cpp:83:24:83:26 | VariableAddress[no_] | no_+0:0 | no_+0:0 |
|
||||
| escape.cpp:84:10:84:12 | VariableAddress[no_] | no_+0:0 | no_+0:0 |
|
||||
| escape.cpp:86:13:86:15 | VariableAddress[no_] | no_+0:0 | no_+0:0 |
|
||||
| escape.cpp:89:15:89:17 | VariableAddress[no_] | no_+0:0 | no_+0:0 |
|
||||
| escape.cpp:90:10:90:12 | VariableAddress[no_] | no_+0:0 | no_+0:0 |
|
||||
| escape.cpp:90:16:90:18 | VariableAddress[no_] | no_+0:0 | no_+0:0 |
|
||||
| escape.cpp:90:22:90:24 | VariableAddress[no_] | no_+0:0 | no_+0:0 |
|
||||
| escape.cpp:93:10:93:12 | VariableAddress[no_] | no_+0:0 | no_+0:0 |
|
||||
| escape.cpp:95:13:95:15 | VariableAddress[no_] | no_+0:0 | no_+0:0 |
|
||||
| escape.cpp:98:9:98:16 | VariableAddress[no_Array] | no_Array+0:0 | no_Array+0:0 |
|
||||
| escape.cpp:99:5:99:12 | VariableAddress[no_Array] | no_Array+0:0 | no_Array+0:0 |
|
||||
| escape.cpp:100:5:100:18 | Convert | no_Array+0:0 | no_Array+0:0 |
|
||||
| escape.cpp:100:11:100:18 | Convert | no_Array+0:0 | no_Array+0:0 |
|
||||
| escape.cpp:100:11:100:18 | VariableAddress[no_Array] | no_Array+0:0 | no_Array+0:0 |
|
||||
| escape.cpp:101:5:101:12 | Convert | no_Array+0:0 | no_Array+0:0 |
|
||||
| escape.cpp:101:5:101:12 | VariableAddress[no_Array] | no_Array+0:0 | no_Array+0:0 |
|
||||
| escape.cpp:101:5:101:15 | PointerAdd[4] | no_Array+20:0 | no_Array+20:0 |
|
||||
| escape.cpp:102:5:102:15 | PointerAdd[4] | no_Array+20:0 | no_Array+20:0 |
|
||||
| escape.cpp:102:7:102:14 | Convert | no_Array+0:0 | no_Array+0:0 |
|
||||
| escape.cpp:102:7:102:14 | VariableAddress[no_Array] | no_Array+0:0 | no_Array+0:0 |
|
||||
| escape.cpp:103:5:103:13 | VariableAddress[no_result] | no_result+0:0 | no_result+0:0 |
|
||||
| escape.cpp:103:17:103:24 | Convert | no_Array+0:0 | no_Array+0:0 |
|
||||
| escape.cpp:103:17:103:24 | VariableAddress[no_Array] | no_Array+0:0 | no_Array+0:0 |
|
||||
| escape.cpp:103:17:103:27 | PointerAdd[4] | no_Array+20:0 | no_Array+20:0 |
|
||||
| escape.cpp:104:5:104:13 | VariableAddress[no_result] | no_result+0:0 | no_result+0:0 |
|
||||
| escape.cpp:104:17:104:27 | PointerAdd[4] | no_Array+20:0 | no_Array+20:0 |
|
||||
| escape.cpp:104:19:104:26 | Convert | no_Array+0:0 | no_Array+0:0 |
|
||||
| escape.cpp:104:19:104:26 | VariableAddress[no_Array] | no_Array+0:0 | no_Array+0:0 |
|
||||
| escape.cpp:106:11:106:18 | VariableAddress[no_Point] | no_Point+0:0 | no_Point+0:0 |
|
||||
| escape.cpp:106:21:106:32 | FieldAddress[x] | no_Point+0:0 | no_Point+0:0 |
|
||||
| escape.cpp:106:21:106:32 | FieldAddress[y] | no_Point+4:0 | no_Point+4:0 |
|
||||
| escape.cpp:106:21:106:32 | FieldAddress[z] | no_Point+8:0 | no_Point+8:0 |
|
||||
| escape.cpp:107:11:107:14 | VariableAddress[no_x] | no_x+0:0 | no_x+0:0 |
|
||||
| escape.cpp:107:18:107:25 | VariableAddress[no_Point] | no_Point+0:0 | no_Point+0:0 |
|
||||
| escape.cpp:107:27:107:27 | FieldAddress[x] | no_Point+0:0 | no_Point+0:0 |
|
||||
| escape.cpp:108:5:108:12 | VariableAddress[no_Point] | no_Point+0:0 | no_Point+0:0 |
|
||||
| escape.cpp:108:14:108:14 | FieldAddress[y] | no_Point+4:0 | no_Point+4:0 |
|
||||
| escape.cpp:108:18:108:21 | VariableAddress[no_x] | no_x+0:0 | no_x+0:0 |
|
||||
| escape.cpp:109:11:109:14 | VariableAddress[no_y] | no_y+0:0 | no_y+0:0 |
|
||||
| escape.cpp:109:20:109:27 | VariableAddress[no_Point] | no_Point+0:0 | no_Point+0:0 |
|
||||
| escape.cpp:109:31:109:31 | FieldAddress[y] | no_Point+4:0 | no_Point+4:0 |
|
||||
| escape.cpp:110:7:110:14 | VariableAddress[no_Point] | no_Point+0:0 | no_Point+0:0 |
|
||||
| escape.cpp:110:18:110:18 | FieldAddress[y] | no_Point+4:0 | no_Point+4:0 |
|
||||
| escape.cpp:110:22:110:25 | VariableAddress[no_y] | no_y+0:0 | no_y+0:0 |
|
||||
| escape.cpp:111:11:111:14 | VariableAddress[no_z] | no_z+0:0 | no_z+0:0 |
|
||||
| escape.cpp:111:21:111:28 | VariableAddress[no_Point] | no_Point+0:0 | no_Point+0:0 |
|
||||
| escape.cpp:111:30:111:30 | FieldAddress[z] | no_Point+8:0 | no_Point+8:0 |
|
||||
| escape.cpp:112:8:112:15 | VariableAddress[no_Point] | no_Point+0:0 | no_Point+0:0 |
|
||||
| escape.cpp:112:17:112:17 | FieldAddress[z] | no_Point+8:0 | no_Point+8:0 |
|
||||
| escape.cpp:112:22:112:25 | VariableAddress[no_z] | no_z+0:0 | no_z+0:0 |
|
||||
| escape.cpp:114:13:114:22 | VariableAddress[no_Derived] | no_Derived+0:0 | no_Derived+0:0 |
|
||||
| escape.cpp:115:5:115:14 | ConvertToBase[Derived : Intermediate1] | no_Derived+0:0 | no_Derived+0:0 |
|
||||
| escape.cpp:115:5:115:14 | ConvertToBase[Intermediate1 : Base] | no_Derived+0:0 | no_Derived+0:0 |
|
||||
| escape.cpp:115:5:115:14 | VariableAddress[no_Derived] | no_Derived+0:0 | no_Derived+0:0 |
|
||||
| escape.cpp:115:16:115:16 | FieldAddress[b] | no_Derived+0:0 | no_Derived+0:0 |
|
||||
| escape.cpp:116:11:116:14 | VariableAddress[no_b] | no_b+0:0 | no_b+0:0 |
|
||||
| escape.cpp:116:18:116:27 | ConvertToBase[Derived : Intermediate1] | no_Derived+0:0 | no_Derived+0:0 |
|
||||
| escape.cpp:116:18:116:27 | ConvertToBase[Intermediate1 : Base] | no_Derived+0:0 | no_Derived+0:0 |
|
||||
| escape.cpp:116:18:116:27 | VariableAddress[no_Derived] | no_Derived+0:0 | no_Derived+0:0 |
|
||||
| escape.cpp:116:29:116:29 | FieldAddress[b] | no_Derived+0:0 | no_Derived+0:0 |
|
||||
| escape.cpp:117:5:117:14 | ConvertToBase[Derived : Intermediate2] | no_Derived+12:0 | no_Derived+12:0 |
|
||||
| escape.cpp:117:5:117:14 | VariableAddress[no_Derived] | no_Derived+0:0 | no_Derived+0:0 |
|
||||
| escape.cpp:117:16:117:17 | FieldAddress[i2] | no_Derived+16:0 | no_Derived+16:0 |
|
||||
| escape.cpp:118:11:118:15 | VariableAddress[no_i2] | no_i2+0:0 | no_i2+0:0 |
|
||||
| escape.cpp:118:19:118:28 | ConvertToBase[Derived : Intermediate2] | no_Derived+12:0 | no_Derived+12:0 |
|
||||
| escape.cpp:118:19:118:28 | VariableAddress[no_Derived] | no_Derived+0:0 | no_Derived+0:0 |
|
||||
| escape.cpp:118:30:118:31 | FieldAddress[i2] | no_Derived+16:0 | no_Derived+16:0 |
|
||||
| escape.cpp:120:9:120:21 | VariableAddress[no_ssa_addrOf] | no_ssa_addrOf+0:0 | no_ssa_addrOf+0:0 |
|
||||
| escape.cpp:121:10:121:13 | VariableAddress[no_p] | no_p+0:0 | no_p+0:0 |
|
||||
| escape.cpp:121:17:121:30 | Store | no_ssa_addrOf+0:0 | no_ssa_addrOf+0:0 |
|
||||
| escape.cpp:121:18:121:30 | VariableAddress[no_ssa_addrOf] | no_ssa_addrOf+0:0 | no_ssa_addrOf+0:0 |
|
||||
| escape.cpp:123:9:123:20 | VariableAddress[no_ssa_refTo] | no_ssa_refTo+0:0 | no_ssa_refTo+0:0 |
|
||||
| escape.cpp:124:10:124:13 | VariableAddress[no_r] | no_r+0:0 | no_r+0:0 |
|
||||
| escape.cpp:124:17:124:28 | Store | no_ssa_refTo+0:0 | no_ssa_refTo+0:0 |
|
||||
| escape.cpp:124:17:124:28 | VariableAddress[no_ssa_refTo] | no_ssa_refTo+0:0 | no_ssa_refTo+0:0 |
|
||||
| escape.cpp:126:9:126:32 | VariableAddress[no_ssa_refToArrayElement] | no_ssa_refToArrayElement+0:0 | no_ssa_refToArrayElement+0:0 |
|
||||
| escape.cpp:127:10:127:15 | VariableAddress[no_rae] | no_rae+0:0 | no_rae+0:0 |
|
||||
| escape.cpp:127:19:127:42 | Convert | no_ssa_refToArrayElement+0:0 | no_ssa_refToArrayElement+0:0 |
|
||||
| escape.cpp:127:19:127:42 | VariableAddress[no_ssa_refToArrayElement] | no_ssa_refToArrayElement+0:0 | no_ssa_refToArrayElement+0:0 |
|
||||
| escape.cpp:127:19:127:45 | PointerAdd[4] | no_ssa_refToArrayElement+20:0 | no_ssa_refToArrayElement+20:0 |
|
||||
| escape.cpp:127:19:127:45 | Store | no_ssa_refToArrayElement+20:0 | no_ssa_refToArrayElement+20:0 |
|
||||
| escape.cpp:129:9:129:25 | VariableAddress[no_ssa_refToArray] | no_ssa_refToArray+0:0 | no_ssa_refToArray+0:0 |
|
||||
| escape.cpp:130:11:130:15 | VariableAddress[no_ra] | no_ra+0:0 | no_ra+0:0 |
|
||||
| escape.cpp:130:24:130:40 | Store | no_ssa_refToArray+0:0 | no_ssa_refToArray+0:0 |
|
||||
| escape.cpp:130:24:130:40 | VariableAddress[no_ssa_refToArray] | no_ssa_refToArray+0:0 | no_ssa_refToArray+0:0 |
|
||||
| escape.cpp:132:9:132:17 | VariableAddress[passByPtr] | passByPtr+0:0 | passByPtr+0:0 |
|
||||
| escape.cpp:133:20:133:28 | VariableAddress[passByPtr] | passByPtr+0:0 | passByPtr+0:0 |
|
||||
| escape.cpp:135:9:135:17 | VariableAddress[passByRef] | passByRef+0:0 | passByRef+0:0 |
|
||||
| escape.cpp:136:21:136:29 | VariableAddress[passByRef] | passByRef+0:0 | passByRef+0:0 |
|
||||
| escape.cpp:138:9:138:24 | VariableAddress[no_ssa_passByPtr] | no_ssa_passByPtr+0:0 | no_ssa_passByPtr+0:0 |
|
||||
| escape.cpp:139:23:139:38 | VariableAddress[no_ssa_passByPtr] | no_ssa_passByPtr+0:0 | no_ssa_passByPtr+0:0 |
|
||||
| escape.cpp:141:9:141:24 | VariableAddress[no_ssa_passByRef] | no_ssa_passByRef+0:0 | no_ssa_passByRef+0:0 |
|
||||
| escape.cpp:142:24:142:39 | VariableAddress[no_ssa_passByRef] | no_ssa_passByRef+0:0 | no_ssa_passByRef+0:0 |
|
||||
| escape.cpp:144:9:144:28 | VariableAddress[no_ssa_passByPtr_ret] | no_ssa_passByPtr_ret+0:0 | no_ssa_passByPtr_ret+0:0 |
|
||||
| escape.cpp:145:23:145:42 | VariableAddress[no_ssa_passByPtr_ret] | no_ssa_passByPtr_ret+0:0 | no_ssa_passByPtr_ret+0:0 |
|
||||
| escape.cpp:147:9:147:28 | VariableAddress[no_ssa_passByRef_ret] | no_ssa_passByRef_ret+0:0 | no_ssa_passByRef_ret+0:0 |
|
||||
| escape.cpp:148:24:148:43 | VariableAddress[no_ssa_passByRef_ret] | no_ssa_passByRef_ret+0:0 | no_ssa_passByRef_ret+0:0 |
|
||||
| escape.cpp:150:9:150:18 | VariableAddress[passByPtr2] | passByPtr2+0:0 | passByPtr2+0:0 |
|
||||
| escape.cpp:151:31:151:40 | VariableAddress[passByPtr2] | passByPtr2+0:0 | passByPtr2+0:0 |
|
||||
| escape.cpp:153:9:153:18 | VariableAddress[passByRef2] | passByRef2+0:0 | passByRef2+0:0 |
|
||||
| escape.cpp:154:32:154:41 | VariableAddress[passByRef2] | passByRef2+0:0 | passByRef2+0:0 |
|
||||
| escape.cpp:156:9:156:18 | VariableAddress[passByPtr3] | passByPtr3+0:0 | passByPtr3+0:0 |
|
||||
| escape.cpp:157:30:157:42 | Call | none | passByPtr3+? |
|
||||
| escape.cpp:157:45:157:54 | VariableAddress[passByPtr3] | passByPtr3+0:0 | passByPtr3+0:0 |
|
||||
| escape.cpp:159:9:159:18 | VariableAddress[passByRef3] | passByRef3+0:0 | passByRef3+0:0 |
|
||||
| escape.cpp:160:32:160:46 | Call | none | passByRef3+? |
|
||||
| escape.cpp:160:48:160:57 | VariableAddress[passByRef3] | passByRef3+0:0 | passByRef3+0:0 |
|
||||
| escape.cpp:162:9:162:18 | VariableAddress[passByPtr4] | passByPtr4+0:0 | passByPtr4+0:0 |
|
||||
| escape.cpp:163:9:163:18 | VariableAddress[passByPtr5] | passByPtr5+0:0 | passByPtr5+0:0 |
|
||||
| escape.cpp:164:10:164:14 | VariableAddress[no_b2] | no_b2+0:0 | no_b2+0:0 |
|
||||
| escape.cpp:165:18:165:27 | VariableAddress[passByPtr4] | passByPtr4+0:0 | passByPtr4+0:0 |
|
||||
| escape.cpp:165:31:165:40 | VariableAddress[passByPtr5] | passByPtr5+0:0 | passByPtr5+0:0 |
|
||||
| escape.cpp:165:43:165:47 | VariableAddress[no_b2] | no_b2+0:0 | no_b2+0:0 |
|
||||
| escape.cpp:167:9:167:18 | VariableAddress[passByRef6] | passByRef6+0:0 | passByRef6+0:0 |
|
||||
| escape.cpp:168:5:168:19 | Call | none | passByRef6+? |
|
||||
| escape.cpp:168:21:168:30 | VariableAddress[passByRef6] | passByRef6+0:0 | passByRef6+0:0 |
|
||||
| escape.cpp:170:9:170:25 | VariableAddress[no_ssa_passByRef7] | no_ssa_passByRef7+0:0 | no_ssa_passByRef7+0:0 |
|
||||
| escape.cpp:171:5:171:19 | Call | none | no_ssa_passByRef7+? |
|
||||
| escape.cpp:171:21:171:37 | VariableAddress[no_ssa_passByRef7] | no_ssa_passByRef7+0:0 | no_ssa_passByRef7+0:0 |
|
||||
| escape.cpp:86:9:86:17 | VariableAddress[no_result] | no_result+0:0 | no_result+0:0 |
|
||||
| escape.cpp:87:9:87:11 | VariableAddress[no_] | no_+0:0 | no_+0:0 |
|
||||
| escape.cpp:89:5:89:7 | VariableAddress[no_] | no_+0:0 | no_+0:0 |
|
||||
| escape.cpp:90:5:90:7 | VariableAddress[no_] | no_+0:0 | no_+0:0 |
|
||||
| escape.cpp:90:11:90:13 | VariableAddress[no_] | no_+0:0 | no_+0:0 |
|
||||
| escape.cpp:91:5:91:13 | VariableAddress[no_result] | no_result+0:0 | no_result+0:0 |
|
||||
| escape.cpp:91:17:91:19 | VariableAddress[no_] | no_+0:0 | no_+0:0 |
|
||||
| escape.cpp:92:5:92:13 | VariableAddress[no_result] | no_result+0:0 | no_result+0:0 |
|
||||
| escape.cpp:92:19:92:21 | VariableAddress[no_] | no_+0:0 | no_+0:0 |
|
||||
| escape.cpp:94:5:94:7 | VariableAddress[no_] | no_+0:0 | no_+0:0 |
|
||||
| escape.cpp:95:6:95:8 | VariableAddress[no_] | no_+0:0 | no_+0:0 |
|
||||
| escape.cpp:96:5:96:13 | VariableAddress[no_result] | no_result+0:0 | no_result+0:0 |
|
||||
| escape.cpp:96:19:96:28 | PointerAdd[4] | no_+0:0 | no_+0:0 |
|
||||
| escape.cpp:96:21:96:23 | VariableAddress[no_] | no_+0:0 | no_+0:0 |
|
||||
| escape.cpp:97:5:97:13 | VariableAddress[no_result] | no_result+0:0 | no_result+0:0 |
|
||||
| escape.cpp:97:19:97:28 | PointerSub[4] | no_+0:0 | no_+0:0 |
|
||||
| escape.cpp:97:21:97:23 | VariableAddress[no_] | no_+0:0 | no_+0:0 |
|
||||
| escape.cpp:98:5:98:13 | VariableAddress[no_result] | no_result+0:0 | no_result+0:0 |
|
||||
| escape.cpp:98:19:98:26 | PointerAdd[4] | no_+0:0 | no_+0:0 |
|
||||
| escape.cpp:98:24:98:26 | VariableAddress[no_] | no_+0:0 | no_+0:0 |
|
||||
| escape.cpp:99:10:99:12 | VariableAddress[no_] | no_+0:0 | no_+0:0 |
|
||||
| escape.cpp:101:13:101:15 | VariableAddress[no_] | no_+0:0 | no_+0:0 |
|
||||
| escape.cpp:104:15:104:17 | VariableAddress[no_] | no_+0:0 | no_+0:0 |
|
||||
| escape.cpp:105:10:105:12 | VariableAddress[no_] | no_+0:0 | no_+0:0 |
|
||||
| escape.cpp:105:16:105:18 | VariableAddress[no_] | no_+0:0 | no_+0:0 |
|
||||
| escape.cpp:105:22:105:24 | VariableAddress[no_] | no_+0:0 | no_+0:0 |
|
||||
| escape.cpp:108:10:108:12 | VariableAddress[no_] | no_+0:0 | no_+0:0 |
|
||||
| escape.cpp:110:13:110:15 | VariableAddress[no_] | no_+0:0 | no_+0:0 |
|
||||
| escape.cpp:113:9:113:16 | VariableAddress[no_Array] | no_Array+0:0 | no_Array+0:0 |
|
||||
| escape.cpp:114:5:114:12 | VariableAddress[no_Array] | no_Array+0:0 | no_Array+0:0 |
|
||||
| escape.cpp:115:5:115:18 | Convert | no_Array+0:0 | no_Array+0:0 |
|
||||
| escape.cpp:115:11:115:18 | Convert | no_Array+0:0 | no_Array+0:0 |
|
||||
| escape.cpp:115:11:115:18 | VariableAddress[no_Array] | no_Array+0:0 | no_Array+0:0 |
|
||||
| escape.cpp:116:5:116:12 | Convert | no_Array+0:0 | no_Array+0:0 |
|
||||
| escape.cpp:116:5:116:12 | VariableAddress[no_Array] | no_Array+0:0 | no_Array+0:0 |
|
||||
| escape.cpp:116:5:116:15 | PointerAdd[4] | no_Array+20:0 | no_Array+20:0 |
|
||||
| escape.cpp:117:5:117:15 | PointerAdd[4] | no_Array+20:0 | no_Array+20:0 |
|
||||
| escape.cpp:117:7:117:14 | Convert | no_Array+0:0 | no_Array+0:0 |
|
||||
| escape.cpp:117:7:117:14 | VariableAddress[no_Array] | no_Array+0:0 | no_Array+0:0 |
|
||||
| escape.cpp:118:5:118:13 | VariableAddress[no_result] | no_result+0:0 | no_result+0:0 |
|
||||
| escape.cpp:118:17:118:24 | Convert | no_Array+0:0 | no_Array+0:0 |
|
||||
| escape.cpp:118:17:118:24 | VariableAddress[no_Array] | no_Array+0:0 | no_Array+0:0 |
|
||||
| escape.cpp:118:17:118:27 | PointerAdd[4] | no_Array+20:0 | no_Array+20:0 |
|
||||
| escape.cpp:119:5:119:13 | VariableAddress[no_result] | no_result+0:0 | no_result+0:0 |
|
||||
| escape.cpp:119:17:119:27 | PointerAdd[4] | no_Array+20:0 | no_Array+20:0 |
|
||||
| escape.cpp:119:19:119:26 | Convert | no_Array+0:0 | no_Array+0:0 |
|
||||
| escape.cpp:119:19:119:26 | VariableAddress[no_Array] | no_Array+0:0 | no_Array+0:0 |
|
||||
| escape.cpp:121:11:121:18 | VariableAddress[no_Point] | no_Point+0:0 | no_Point+0:0 |
|
||||
| escape.cpp:121:21:121:32 | FieldAddress[x] | no_Point+0:0 | no_Point+0:0 |
|
||||
| escape.cpp:121:21:121:32 | FieldAddress[y] | no_Point+4:0 | no_Point+4:0 |
|
||||
| escape.cpp:121:21:121:32 | FieldAddress[z] | no_Point+8:0 | no_Point+8:0 |
|
||||
| escape.cpp:122:11:122:14 | VariableAddress[no_x] | no_x+0:0 | no_x+0:0 |
|
||||
| escape.cpp:122:18:122:25 | VariableAddress[no_Point] | no_Point+0:0 | no_Point+0:0 |
|
||||
| escape.cpp:122:27:122:27 | FieldAddress[x] | no_Point+0:0 | no_Point+0:0 |
|
||||
| escape.cpp:123:5:123:12 | VariableAddress[no_Point] | no_Point+0:0 | no_Point+0:0 |
|
||||
| escape.cpp:123:14:123:14 | FieldAddress[y] | no_Point+4:0 | no_Point+4:0 |
|
||||
| escape.cpp:123:18:123:21 | VariableAddress[no_x] | no_x+0:0 | no_x+0:0 |
|
||||
| escape.cpp:124:11:124:14 | VariableAddress[no_y] | no_y+0:0 | no_y+0:0 |
|
||||
| escape.cpp:124:20:124:27 | VariableAddress[no_Point] | no_Point+0:0 | no_Point+0:0 |
|
||||
| escape.cpp:124:31:124:31 | FieldAddress[y] | no_Point+4:0 | no_Point+4:0 |
|
||||
| escape.cpp:125:7:125:14 | VariableAddress[no_Point] | no_Point+0:0 | no_Point+0:0 |
|
||||
| escape.cpp:125:18:125:18 | FieldAddress[y] | no_Point+4:0 | no_Point+4:0 |
|
||||
| escape.cpp:125:22:125:25 | VariableAddress[no_y] | no_y+0:0 | no_y+0:0 |
|
||||
| escape.cpp:126:11:126:14 | VariableAddress[no_z] | no_z+0:0 | no_z+0:0 |
|
||||
| escape.cpp:126:21:126:28 | VariableAddress[no_Point] | no_Point+0:0 | no_Point+0:0 |
|
||||
| escape.cpp:126:30:126:30 | FieldAddress[z] | no_Point+8:0 | no_Point+8:0 |
|
||||
| escape.cpp:127:8:127:15 | VariableAddress[no_Point] | no_Point+0:0 | no_Point+0:0 |
|
||||
| escape.cpp:127:17:127:17 | FieldAddress[z] | no_Point+8:0 | no_Point+8:0 |
|
||||
| escape.cpp:127:22:127:25 | VariableAddress[no_z] | no_z+0:0 | no_z+0:0 |
|
||||
| escape.cpp:129:13:129:22 | VariableAddress[no_Derived] | no_Derived+0:0 | no_Derived+0:0 |
|
||||
| escape.cpp:130:5:130:14 | ConvertToBase[Derived : Intermediate1] | no_Derived+0:0 | no_Derived+0:0 |
|
||||
| escape.cpp:130:5:130:14 | ConvertToBase[Intermediate1 : Base] | no_Derived+0:0 | no_Derived+0:0 |
|
||||
| escape.cpp:130:5:130:14 | VariableAddress[no_Derived] | no_Derived+0:0 | no_Derived+0:0 |
|
||||
| escape.cpp:130:16:130:16 | FieldAddress[b] | no_Derived+0:0 | no_Derived+0:0 |
|
||||
| escape.cpp:131:11:131:14 | VariableAddress[no_b] | no_b+0:0 | no_b+0:0 |
|
||||
| escape.cpp:131:18:131:27 | ConvertToBase[Derived : Intermediate1] | no_Derived+0:0 | no_Derived+0:0 |
|
||||
| escape.cpp:131:18:131:27 | ConvertToBase[Intermediate1 : Base] | no_Derived+0:0 | no_Derived+0:0 |
|
||||
| escape.cpp:131:18:131:27 | VariableAddress[no_Derived] | no_Derived+0:0 | no_Derived+0:0 |
|
||||
| escape.cpp:131:29:131:29 | FieldAddress[b] | no_Derived+0:0 | no_Derived+0:0 |
|
||||
| escape.cpp:132:5:132:14 | ConvertToBase[Derived : Intermediate2] | no_Derived+12:0 | no_Derived+12:0 |
|
||||
| escape.cpp:132:5:132:14 | VariableAddress[no_Derived] | no_Derived+0:0 | no_Derived+0:0 |
|
||||
| escape.cpp:132:16:132:17 | FieldAddress[i2] | no_Derived+16:0 | no_Derived+16:0 |
|
||||
| escape.cpp:133:11:133:15 | VariableAddress[no_i2] | no_i2+0:0 | no_i2+0:0 |
|
||||
| escape.cpp:133:19:133:28 | ConvertToBase[Derived : Intermediate2] | no_Derived+12:0 | no_Derived+12:0 |
|
||||
| escape.cpp:133:19:133:28 | VariableAddress[no_Derived] | no_Derived+0:0 | no_Derived+0:0 |
|
||||
| escape.cpp:133:30:133:31 | FieldAddress[i2] | no_Derived+16:0 | no_Derived+16:0 |
|
||||
| escape.cpp:135:9:135:21 | VariableAddress[no_ssa_addrOf] | no_ssa_addrOf+0:0 | no_ssa_addrOf+0:0 |
|
||||
| escape.cpp:136:10:136:13 | VariableAddress[no_p] | no_p+0:0 | no_p+0:0 |
|
||||
| escape.cpp:136:17:136:30 | Store | no_ssa_addrOf+0:0 | no_ssa_addrOf+0:0 |
|
||||
| escape.cpp:136:18:136:30 | VariableAddress[no_ssa_addrOf] | no_ssa_addrOf+0:0 | no_ssa_addrOf+0:0 |
|
||||
| escape.cpp:138:9:138:20 | VariableAddress[no_ssa_refTo] | no_ssa_refTo+0:0 | no_ssa_refTo+0:0 |
|
||||
| escape.cpp:139:10:139:13 | VariableAddress[no_r] | no_r+0:0 | no_r+0:0 |
|
||||
| escape.cpp:139:17:139:28 | Store | no_ssa_refTo+0:0 | no_ssa_refTo+0:0 |
|
||||
| escape.cpp:139:17:139:28 | VariableAddress[no_ssa_refTo] | no_ssa_refTo+0:0 | no_ssa_refTo+0:0 |
|
||||
| escape.cpp:141:9:141:32 | VariableAddress[no_ssa_refToArrayElement] | no_ssa_refToArrayElement+0:0 | no_ssa_refToArrayElement+0:0 |
|
||||
| escape.cpp:142:10:142:15 | VariableAddress[no_rae] | no_rae+0:0 | no_rae+0:0 |
|
||||
| escape.cpp:142:19:142:42 | Convert | no_ssa_refToArrayElement+0:0 | no_ssa_refToArrayElement+0:0 |
|
||||
| escape.cpp:142:19:142:42 | VariableAddress[no_ssa_refToArrayElement] | no_ssa_refToArrayElement+0:0 | no_ssa_refToArrayElement+0:0 |
|
||||
| escape.cpp:142:19:142:45 | PointerAdd[4] | no_ssa_refToArrayElement+20:0 | no_ssa_refToArrayElement+20:0 |
|
||||
| escape.cpp:142:19:142:45 | Store | no_ssa_refToArrayElement+20:0 | no_ssa_refToArrayElement+20:0 |
|
||||
| escape.cpp:144:9:144:25 | VariableAddress[no_ssa_refToArray] | no_ssa_refToArray+0:0 | no_ssa_refToArray+0:0 |
|
||||
| escape.cpp:145:11:145:15 | VariableAddress[no_ra] | no_ra+0:0 | no_ra+0:0 |
|
||||
| escape.cpp:145:24:145:40 | Store | no_ssa_refToArray+0:0 | no_ssa_refToArray+0:0 |
|
||||
| escape.cpp:145:24:145:40 | VariableAddress[no_ssa_refToArray] | no_ssa_refToArray+0:0 | no_ssa_refToArray+0:0 |
|
||||
| escape.cpp:147:9:147:17 | VariableAddress[passByPtr] | passByPtr+0:0 | passByPtr+0:0 |
|
||||
| escape.cpp:148:20:148:28 | VariableAddress[passByPtr] | passByPtr+0:0 | passByPtr+0:0 |
|
||||
| escape.cpp:150:9:150:17 | VariableAddress[passByRef] | passByRef+0:0 | passByRef+0:0 |
|
||||
| escape.cpp:151:21:151:29 | VariableAddress[passByRef] | passByRef+0:0 | passByRef+0:0 |
|
||||
| escape.cpp:153:9:153:24 | VariableAddress[no_ssa_passByPtr] | no_ssa_passByPtr+0:0 | no_ssa_passByPtr+0:0 |
|
||||
| escape.cpp:154:23:154:38 | VariableAddress[no_ssa_passByPtr] | no_ssa_passByPtr+0:0 | no_ssa_passByPtr+0:0 |
|
||||
| escape.cpp:156:9:156:24 | VariableAddress[no_ssa_passByRef] | no_ssa_passByRef+0:0 | no_ssa_passByRef+0:0 |
|
||||
| escape.cpp:157:24:157:39 | VariableAddress[no_ssa_passByRef] | no_ssa_passByRef+0:0 | no_ssa_passByRef+0:0 |
|
||||
| escape.cpp:159:9:159:28 | VariableAddress[no_ssa_passByPtr_ret] | no_ssa_passByPtr_ret+0:0 | no_ssa_passByPtr_ret+0:0 |
|
||||
| escape.cpp:160:23:160:42 | VariableAddress[no_ssa_passByPtr_ret] | no_ssa_passByPtr_ret+0:0 | no_ssa_passByPtr_ret+0:0 |
|
||||
| escape.cpp:162:9:162:28 | VariableAddress[no_ssa_passByRef_ret] | no_ssa_passByRef_ret+0:0 | no_ssa_passByRef_ret+0:0 |
|
||||
| escape.cpp:163:24:163:43 | VariableAddress[no_ssa_passByRef_ret] | no_ssa_passByRef_ret+0:0 | no_ssa_passByRef_ret+0:0 |
|
||||
| escape.cpp:165:9:165:18 | VariableAddress[passByPtr2] | passByPtr2+0:0 | passByPtr2+0:0 |
|
||||
| escape.cpp:166:31:166:40 | VariableAddress[passByPtr2] | passByPtr2+0:0 | passByPtr2+0:0 |
|
||||
| escape.cpp:168:9:168:18 | VariableAddress[passByRef2] | passByRef2+0:0 | passByRef2+0:0 |
|
||||
| escape.cpp:169:32:169:41 | VariableAddress[passByRef2] | passByRef2+0:0 | passByRef2+0:0 |
|
||||
| escape.cpp:171:9:171:18 | VariableAddress[passByPtr3] | passByPtr3+0:0 | passByPtr3+0:0 |
|
||||
| escape.cpp:172:30:172:42 | Call | none | passByPtr3+? |
|
||||
| escape.cpp:172:45:172:54 | VariableAddress[passByPtr3] | passByPtr3+0:0 | passByPtr3+0:0 |
|
||||
| escape.cpp:174:9:174:18 | VariableAddress[passByRef3] | passByRef3+0:0 | passByRef3+0:0 |
|
||||
| escape.cpp:175:32:175:46 | Call | none | passByRef3+? |
|
||||
| escape.cpp:175:48:175:57 | VariableAddress[passByRef3] | passByRef3+0:0 | passByRef3+0:0 |
|
||||
| escape.cpp:177:9:177:18 | VariableAddress[passByPtr4] | passByPtr4+0:0 | passByPtr4+0:0 |
|
||||
| escape.cpp:178:9:178:18 | VariableAddress[passByPtr5] | passByPtr5+0:0 | passByPtr5+0:0 |
|
||||
| escape.cpp:179:10:179:14 | VariableAddress[no_b2] | no_b2+0:0 | no_b2+0:0 |
|
||||
| escape.cpp:180:18:180:27 | VariableAddress[passByPtr4] | passByPtr4+0:0 | passByPtr4+0:0 |
|
||||
| escape.cpp:180:31:180:40 | VariableAddress[passByPtr5] | passByPtr5+0:0 | passByPtr5+0:0 |
|
||||
| escape.cpp:180:43:180:47 | VariableAddress[no_b2] | no_b2+0:0 | no_b2+0:0 |
|
||||
| escape.cpp:182:9:182:18 | VariableAddress[passByRef6] | passByRef6+0:0 | passByRef6+0:0 |
|
||||
| escape.cpp:183:5:183:19 | Call | none | passByRef6+? |
|
||||
| escape.cpp:183:21:183:30 | VariableAddress[passByRef6] | passByRef6+0:0 | passByRef6+0:0 |
|
||||
| escape.cpp:185:9:185:25 | VariableAddress[no_ssa_passByRef7] | no_ssa_passByRef7+0:0 | no_ssa_passByRef7+0:0 |
|
||||
| escape.cpp:186:5:186:19 | Call | none | no_ssa_passByRef7+? |
|
||||
| escape.cpp:186:21:186:37 | VariableAddress[no_ssa_passByRef7] | no_ssa_passByRef7+0:0 | no_ssa_passByRef7+0:0 |
|
||||
| escape.cpp:188:7:188:14 | VariableAddress[no_ssa_c] | no_ssa_c+0:0 | no_ssa_c+0:0 |
|
||||
| escape.cpp:190:5:190:12 | VariableAddress[no_ssa_c] | no_ssa_c+0:0 | no_ssa_c+0:0 |
|
||||
| escape.cpp:190:14:190:25 | Call | none | no_ssa_c+? |
|
||||
| escape.cpp:192:7:192:7 | VariableAddress[c] | c+0:0 | c+0:0 |
|
||||
| escape.cpp:194:5:194:5 | VariableAddress[c] | c+0:0 | c+0:0 |
|
||||
| escape.cpp:196:7:196:8 | VariableAddress[c2] | c2+0:0 | c2+0:0 |
|
||||
| escape.cpp:198:15:198:16 | VariableAddress[c2] | c2+0:0 | c2+0:0 |
|
||||
| escape.cpp:200:7:200:8 | VariableAddress[c3] | c3+0:0 | c3+0:0 |
|
||||
| escape.cpp:202:5:202:6 | VariableAddress[c3] | c3+0:0 | c3+0:0 |
|
||||
| escape.cpp:202:8:202:19 | Call | none | c3+? |
|
||||
| escape.cpp:204:7:204:8 | VariableAddress[c4] | c4+0:0 | c4+0:0 |
|
||||
| escape.cpp:206:14:206:15 | VariableAddress[c4] | c4+0:0 | c4+0:0 |
|
||||
| escape.cpp:206:17:206:28 | Call | none | c4+? |
|
||||
|
||||
Reference in New Issue
Block a user