mirror of
https://github.com/github/codeql.git
synced 2025-12-20 10:46:30 +01:00
C++: add InitializeIndirection for pointer params
This commit is contained in:
@@ -3,6 +3,7 @@ private newtype TOpcode =
|
||||
TUninitialized() or
|
||||
TError() or
|
||||
TInitializeParameter() or
|
||||
TInitializeIndirection() or
|
||||
TInitializeThis() or
|
||||
TEnterFunction() or
|
||||
TExitFunction() or
|
||||
@@ -177,6 +178,11 @@ module Opcode {
|
||||
final override string toString() { result = "InitializeParameter" }
|
||||
}
|
||||
|
||||
class InitializeIndirection extends MemoryAccessOpcode, TInitializeIndirection {
|
||||
final override string toString() { result = "InitializeIndirection" }
|
||||
}
|
||||
|
||||
|
||||
class InitializeThis extends Opcode, TInitializeThis {
|
||||
final override string toString() { result = "InitializeThis" }
|
||||
}
|
||||
|
||||
@@ -675,6 +675,14 @@ class InitializeParameterInstruction extends VariableInstruction {
|
||||
final override MemoryAccessKind getResultMemoryAccess() { result instanceof IndirectMemoryAccess }
|
||||
}
|
||||
|
||||
class InitializeIndirectionInstruction extends VariableInstruction {
|
||||
InitializeIndirectionInstruction() { getOpcode() instanceof Opcode::InitializeIndirection }
|
||||
|
||||
final Language::Parameter getParameter() { result = var.(IRUserVariable).getVariable() }
|
||||
|
||||
final override MemoryAccessKind getResultMemoryAccess() { result instanceof IndirectMemoryAccess }
|
||||
}
|
||||
|
||||
/**
|
||||
* An instruction that initializes the `this` pointer parameter of the enclosing function.
|
||||
*/
|
||||
|
||||
@@ -675,6 +675,14 @@ class InitializeParameterInstruction extends VariableInstruction {
|
||||
final override MemoryAccessKind getResultMemoryAccess() { result instanceof IndirectMemoryAccess }
|
||||
}
|
||||
|
||||
class InitializeIndirectionInstruction extends VariableInstruction {
|
||||
InitializeIndirectionInstruction() { getOpcode() instanceof Opcode::InitializeIndirection }
|
||||
|
||||
final Language::Parameter getParameter() { result = var.(IRUserVariable).getVariable() }
|
||||
|
||||
final override MemoryAccessKind getResultMemoryAccess() { result instanceof IndirectMemoryAccess }
|
||||
}
|
||||
|
||||
/**
|
||||
* An instruction that initializes the `this` pointer parameter of the enclosing function.
|
||||
*/
|
||||
|
||||
@@ -6,6 +6,8 @@ newtype TInstructionTag =
|
||||
InitializerVariableAddressTag() or
|
||||
InitializerLoadStringTag() or
|
||||
InitializerStoreTag() or
|
||||
InitializerIndirectAddressTag() or
|
||||
InitializerIndirectStoreTag() or
|
||||
ZeroPadStringConstantTag() or
|
||||
ZeroPadStringElementIndexTag() or
|
||||
ZeroPadStringElementAddressTag() or
|
||||
@@ -78,6 +80,10 @@ string getInstructionTagId(TInstructionTag tag) {
|
||||
or
|
||||
tag = InitializerUninitializedTag() and result = "InitUninit"
|
||||
or
|
||||
tag = InitializerIndirectAddressTag() and result = "InitIndirectAddr"
|
||||
or
|
||||
tag = InitializerIndirectStoreTag() and result = "InitIndirectStore"
|
||||
or
|
||||
tag = ZeroPadStringConstantTag() and result = "ZeroPadConst"
|
||||
or
|
||||
tag = ZeroPadStringElementIndexTag() and result = "ZeroPadElemIndex"
|
||||
|
||||
@@ -329,6 +329,14 @@ class TranslatedParameter extends TranslatedElement, TTranslatedParameter {
|
||||
result = getInstruction(InitializerStoreTag())
|
||||
or
|
||||
tag = InitializerStoreTag() and
|
||||
if hasIndirection()
|
||||
then result = getInstruction(InitializerIndirectAddressTag())
|
||||
else result = getParent().getChildSuccessor(this)
|
||||
or
|
||||
tag = InitializerIndirectAddressTag() and
|
||||
result = getInstruction(InitializerIndirectStoreTag())
|
||||
or
|
||||
tag = InitializerIndirectStoreTag() and
|
||||
result = getParent().getChildSuccessor(this)
|
||||
)
|
||||
}
|
||||
@@ -347,12 +355,25 @@ class TranslatedParameter extends TranslatedElement, TTranslatedParameter {
|
||||
opcode instanceof Opcode::InitializeParameter and
|
||||
resultType = getVariableType(param) and
|
||||
isGLValue = false
|
||||
or
|
||||
hasIndirection() and
|
||||
tag = InitializerIndirectAddressTag() and
|
||||
opcode instanceof Opcode::Load and
|
||||
resultType = getVariableType(param) and // should this strip a layer of indirection? if so, should isGLValue be true?
|
||||
isGLValue = false
|
||||
or
|
||||
hasIndirection() and
|
||||
tag = InitializerIndirectStoreTag() and
|
||||
opcode instanceof Opcode::InitializeIndirection and
|
||||
resultType instanceof UnknownType and // TODO: differentiate single-element and multi-element pointers
|
||||
isGLValue = false
|
||||
}
|
||||
|
||||
final override IRVariable getInstructionVariable(InstructionTag tag) {
|
||||
(
|
||||
tag = InitializerStoreTag() or
|
||||
tag = InitializerVariableAddressTag()
|
||||
tag = InitializerVariableAddressTag() or
|
||||
tag = InitializerIndirectStoreTag()
|
||||
) and
|
||||
result = getIRUserVariable(getFunction(), param)
|
||||
}
|
||||
@@ -363,6 +384,28 @@ class TranslatedParameter extends TranslatedElement, TTranslatedParameter {
|
||||
operandTag instanceof AddressOperandTag and
|
||||
result = getInstruction(InitializerVariableAddressTag())
|
||||
)
|
||||
or
|
||||
// this feels a little strange, but I think it's the best we can do
|
||||
tag = InitializerIndirectAddressTag() and
|
||||
(
|
||||
operandTag instanceof AddressOperandTag and
|
||||
result = getInstruction(InitializerVariableAddressTag())
|
||||
or
|
||||
operandTag instanceof LoadOperandTag and
|
||||
result = getInstruction(InitializerStoreTag())
|
||||
)
|
||||
or
|
||||
tag = InitializerIndirectStoreTag() and
|
||||
operandTag instanceof AddressOperandTag and
|
||||
result = getInstruction(InitializerIndirectAddressTag())
|
||||
}
|
||||
|
||||
predicate hasIndirection() {
|
||||
exists(Type t | t = param.getUnspecifiedType() |
|
||||
t instanceof ArrayType or
|
||||
t instanceof PointerType or
|
||||
t instanceof ReferenceType
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -675,6 +675,14 @@ class InitializeParameterInstruction extends VariableInstruction {
|
||||
final override MemoryAccessKind getResultMemoryAccess() { result instanceof IndirectMemoryAccess }
|
||||
}
|
||||
|
||||
class InitializeIndirectionInstruction extends VariableInstruction {
|
||||
InitializeIndirectionInstruction() { getOpcode() instanceof Opcode::InitializeIndirection }
|
||||
|
||||
final Language::Parameter getParameter() { result = var.(IRUserVariable).getVariable() }
|
||||
|
||||
final override MemoryAccessKind getResultMemoryAccess() { result instanceof IndirectMemoryAccess }
|
||||
}
|
||||
|
||||
/**
|
||||
* An instruction that initializes the `this` pointer parameter of the enclosing function.
|
||||
*/
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -6,13 +6,16 @@ ssa.cpp:
|
||||
# 13| mu0_2(unknown) = UnmodeledDefinition :
|
||||
# 13| r0_3(glval<Point *>) = VariableAddress[p] :
|
||||
# 13| m0_4(Point *) = InitializeParameter[p] : &:r0_3
|
||||
# 13| r0_5(glval<bool>) = VariableAddress[which1] :
|
||||
# 13| m0_6(bool) = InitializeParameter[which1] : &:r0_5
|
||||
# 13| r0_7(glval<bool>) = VariableAddress[which2] :
|
||||
# 13| m0_8(bool) = InitializeParameter[which2] : &:r0_7
|
||||
# 14| r0_9(glval<bool>) = VariableAddress[which1] :
|
||||
# 14| r0_10(bool) = Load : &:r0_9, m0_6
|
||||
# 14| v0_11(void) = ConditionalBranch : r0_10
|
||||
# 13| r0_5(Point *) = Load : &:r0_3, m0_4
|
||||
# 13| m0_6(unknown) = InitializeIndirection[p] : &:r0_5
|
||||
# 13| m0_7(unknown) = Chi : total:m0_1, partial:m0_6
|
||||
# 13| r0_8(glval<bool>) = VariableAddress[which1] :
|
||||
# 13| m0_9(bool) = InitializeParameter[which1] : &:r0_8
|
||||
# 13| r0_10(glval<bool>) = VariableAddress[which2] :
|
||||
# 13| m0_11(bool) = InitializeParameter[which2] : &:r0_10
|
||||
# 14| r0_12(glval<bool>) = VariableAddress[which1] :
|
||||
# 14| r0_13(bool) = Load : &:r0_12, m0_9
|
||||
# 14| v0_14(void) = ConditionalBranch : r0_13
|
||||
#-----| False -> Block 2
|
||||
#-----| True -> Block 1
|
||||
|
||||
@@ -20,28 +23,28 @@ ssa.cpp:
|
||||
# 15| r1_0(glval<Point *>) = VariableAddress[p] :
|
||||
# 15| r1_1(Point *) = Load : &:r1_0, m0_4
|
||||
# 15| r1_2(glval<int>) = FieldAddress[x] : r1_1
|
||||
# 15| r1_3(int) = Load : &:r1_2, ~m0_1
|
||||
# 15| r1_3(int) = Load : &:r1_2, ~m0_7
|
||||
# 15| r1_4(int) = Constant[1] :
|
||||
# 15| r1_5(int) = Add : r1_3, r1_4
|
||||
# 15| m1_6(int) = Store : &:r1_2, r1_5
|
||||
# 15| m1_7(unknown) = Chi : total:m0_1, partial:m1_6
|
||||
# 15| m1_7(unknown) = Chi : total:m0_7, partial:m1_6
|
||||
#-----| Goto -> Block 3
|
||||
|
||||
# 18| Block 2
|
||||
# 18| r2_0(glval<Point *>) = VariableAddress[p] :
|
||||
# 18| r2_1(Point *) = Load : &:r2_0, m0_4
|
||||
# 18| r2_2(glval<int>) = FieldAddress[y] : r2_1
|
||||
# 18| r2_3(int) = Load : &:r2_2, ~m0_1
|
||||
# 18| r2_3(int) = Load : &:r2_2, ~m0_7
|
||||
# 18| r2_4(int) = Constant[1] :
|
||||
# 18| r2_5(int) = Add : r2_3, r2_4
|
||||
# 18| m2_6(int) = Store : &:r2_2, r2_5
|
||||
# 18| m2_7(unknown) = Chi : total:m0_1, partial:m2_6
|
||||
# 18| m2_7(unknown) = Chi : total:m0_7, partial:m2_6
|
||||
#-----| Goto -> Block 3
|
||||
|
||||
# 21| Block 3
|
||||
# 21| m3_0(unknown) = Phi : from 1:~m1_7, from 2:~m2_7
|
||||
# 21| r3_1(glval<bool>) = VariableAddress[which2] :
|
||||
# 21| r3_2(bool) = Load : &:r3_1, m0_8
|
||||
# 21| r3_2(bool) = Load : &:r3_1, m0_11
|
||||
# 21| v3_3(void) = ConditionalBranch : r3_2
|
||||
#-----| False -> Block 5
|
||||
#-----| True -> Block 4
|
||||
@@ -195,13 +198,16 @@ ssa.cpp:
|
||||
|
||||
# 68| void chiNodeAtEndOfLoop(int, char*)
|
||||
# 68| Block 0
|
||||
# 68| v0_0(void) = EnterFunction :
|
||||
# 68| m0_1(unknown) = AliasedDefinition :
|
||||
# 68| mu0_2(unknown) = UnmodeledDefinition :
|
||||
# 68| r0_3(glval<int>) = VariableAddress[n] :
|
||||
# 68| m0_4(int) = InitializeParameter[n] : &:r0_3
|
||||
# 68| r0_5(glval<char *>) = VariableAddress[p] :
|
||||
# 68| m0_6(char *) = InitializeParameter[p] : &:r0_5
|
||||
# 68| v0_0(void) = EnterFunction :
|
||||
# 68| m0_1(unknown) = AliasedDefinition :
|
||||
# 68| mu0_2(unknown) = UnmodeledDefinition :
|
||||
# 68| r0_3(glval<int>) = VariableAddress[n] :
|
||||
# 68| m0_4(int) = InitializeParameter[n] : &:r0_3
|
||||
# 68| r0_5(glval<char *>) = VariableAddress[p] :
|
||||
# 68| m0_6(char *) = InitializeParameter[p] : &:r0_5
|
||||
# 68| r0_7(char *) = Load : &:r0_5, m0_6
|
||||
# 68| m0_8(unknown) = InitializeIndirection[p] : &:r0_7
|
||||
# 68| m0_9(unknown) = Chi : total:m0_1, partial:m0_8
|
||||
#-----| Goto -> Block 3
|
||||
|
||||
# 70| Block 1
|
||||
@@ -222,7 +228,7 @@ ssa.cpp:
|
||||
# 68| v2_3(void) = ExitFunction :
|
||||
|
||||
# 69| Block 3
|
||||
# 69| m3_0(unknown) = Phi : from 0:~m0_1, from 1:~m1_7
|
||||
# 69| m3_0(unknown) = Phi : from 0:~m0_9, from 1:~m1_7
|
||||
# 69| m3_1(int) = Phi : from 0:m0_4, from 1:m3_7
|
||||
# 69| m3_2(char *) = Phi : from 0:m0_6, from 1:m1_5
|
||||
# 69| r3_3(glval<int>) = VariableAddress[n] :
|
||||
@@ -723,99 +729,120 @@ ssa.cpp:
|
||||
|
||||
# 179| int AsmStmt(int*)
|
||||
# 179| Block 0
|
||||
# 179| v0_0(void) = EnterFunction :
|
||||
# 179| m0_1(unknown) = AliasedDefinition :
|
||||
# 179| mu0_2(unknown) = UnmodeledDefinition :
|
||||
# 179| r0_3(glval<int *>) = VariableAddress[p] :
|
||||
# 179| m0_4(int *) = InitializeParameter[p] : &:r0_3
|
||||
# 180| m0_5(unknown) = InlineAsm : ~mu0_2
|
||||
# 180| m0_6(unknown) = Chi : total:m0_1, partial:m0_5
|
||||
# 181| r0_7(glval<int>) = VariableAddress[#return] :
|
||||
# 181| r0_8(glval<int *>) = VariableAddress[p] :
|
||||
# 181| r0_9(int *) = Load : &:r0_8, m0_4
|
||||
# 181| r0_10(int) = Load : &:r0_9, ~m0_6
|
||||
# 181| m0_11(int) = Store : &:r0_7, r0_10
|
||||
# 179| r0_12(glval<int>) = VariableAddress[#return] :
|
||||
# 179| v0_13(void) = ReturnValue : &:r0_12, m0_11
|
||||
# 179| v0_14(void) = UnmodeledUse : mu*
|
||||
# 179| v0_15(void) = ExitFunction :
|
||||
# 179| v0_0(void) = EnterFunction :
|
||||
# 179| m0_1(unknown) = AliasedDefinition :
|
||||
# 179| mu0_2(unknown) = UnmodeledDefinition :
|
||||
# 179| r0_3(glval<int *>) = VariableAddress[p] :
|
||||
# 179| m0_4(int *) = InitializeParameter[p] : &:r0_3
|
||||
# 179| r0_5(int *) = Load : &:r0_3, m0_4
|
||||
# 179| m0_6(unknown) = InitializeIndirection[p] : &:r0_5
|
||||
# 179| m0_7(unknown) = Chi : total:m0_1, partial:m0_6
|
||||
# 180| m0_8(unknown) = InlineAsm : ~mu0_2
|
||||
# 180| m0_9(unknown) = Chi : total:m0_7, partial:m0_8
|
||||
# 181| r0_10(glval<int>) = VariableAddress[#return] :
|
||||
# 181| r0_11(glval<int *>) = VariableAddress[p] :
|
||||
# 181| r0_12(int *) = Load : &:r0_11, m0_4
|
||||
# 181| r0_13(int) = Load : &:r0_12, ~m0_9
|
||||
# 181| m0_14(int) = Store : &:r0_10, r0_13
|
||||
# 179| r0_15(glval<int>) = VariableAddress[#return] :
|
||||
# 179| v0_16(void) = ReturnValue : &:r0_15, m0_14
|
||||
# 179| v0_17(void) = UnmodeledUse : mu*
|
||||
# 179| v0_18(void) = ExitFunction :
|
||||
|
||||
# 184| void AsmStmtWithOutputs(unsigned int&, unsigned int&, unsigned int&, unsigned int&)
|
||||
# 184| Block 0
|
||||
# 184| v0_0(void) = EnterFunction :
|
||||
# 184| m0_1(unknown) = AliasedDefinition :
|
||||
# 184| mu0_2(unknown) = UnmodeledDefinition :
|
||||
# 184| r0_3(glval<unsigned int &>) = VariableAddress[a] :
|
||||
# 184| m0_4(unsigned int &) = InitializeParameter[a] : &:r0_3
|
||||
# 184| m0_5(unknown) = Chi : total:m0_1, partial:m0_4
|
||||
# 184| r0_6(glval<unsigned int &>) = VariableAddress[b] :
|
||||
# 184| m0_7(unsigned int &) = InitializeParameter[b] : &:r0_6
|
||||
# 184| m0_8(unknown) = Chi : total:m0_5, partial:m0_7
|
||||
# 184| r0_9(glval<unsigned int &>) = VariableAddress[c] :
|
||||
# 184| m0_10(unsigned int &) = InitializeParameter[c] : &:r0_9
|
||||
# 184| m0_11(unknown) = Chi : total:m0_8, partial:m0_10
|
||||
# 184| r0_12(glval<unsigned int &>) = VariableAddress[d] :
|
||||
# 184| m0_13(unsigned int &) = InitializeParameter[d] : &:r0_12
|
||||
# 184| m0_14(unknown) = Chi : total:m0_11, partial:m0_13
|
||||
# 186| r0_15(glval<unsigned int &>) = VariableAddress[a] :
|
||||
# 186| r0_16(glval<unsigned int &>) = VariableAddress[b] :
|
||||
# 186| r0_17(glval<unsigned int &>) = VariableAddress[c] :
|
||||
# 186| r0_18(glval<unsigned int &>) = VariableAddress[d] :
|
||||
# 186| m0_19(unknown) = InlineAsm : ~mu0_2, 0:r0_15, 1:r0_16, 2:r0_17, 3:r0_18
|
||||
# 186| m0_20(unknown) = Chi : total:m0_14, partial:m0_19
|
||||
# 192| v0_21(void) = NoOp :
|
||||
# 184| v0_22(void) = ReturnVoid :
|
||||
# 184| v0_23(void) = UnmodeledUse : mu*
|
||||
# 184| v0_24(void) = ExitFunction :
|
||||
# 184| v0_0(void) = EnterFunction :
|
||||
# 184| m0_1(unknown) = AliasedDefinition :
|
||||
# 184| mu0_2(unknown) = UnmodeledDefinition :
|
||||
# 184| r0_3(glval<unsigned int &>) = VariableAddress[a] :
|
||||
# 184| m0_4(unsigned int &) = InitializeParameter[a] : &:r0_3
|
||||
# 184| m0_5(unknown) = Chi : total:m0_1, partial:m0_4
|
||||
# 184| r0_6(unsigned int &) = Load : &:r0_3, m0_4
|
||||
# 184| m0_7(unknown) = InitializeIndirection[a] : &:r0_6
|
||||
# 184| m0_8(unknown) = Chi : total:m0_5, partial:m0_7
|
||||
# 184| r0_9(glval<unsigned int &>) = VariableAddress[b] :
|
||||
# 184| m0_10(unsigned int &) = InitializeParameter[b] : &:r0_9
|
||||
# 184| m0_11(unknown) = Chi : total:m0_8, partial:m0_10
|
||||
# 184| r0_12(unsigned int &) = Load : &:r0_9, m0_10
|
||||
# 184| m0_13(unknown) = InitializeIndirection[b] : &:r0_12
|
||||
# 184| m0_14(unknown) = Chi : total:m0_11, partial:m0_13
|
||||
# 184| r0_15(glval<unsigned int &>) = VariableAddress[c] :
|
||||
# 184| m0_16(unsigned int &) = InitializeParameter[c] : &:r0_15
|
||||
# 184| m0_17(unknown) = Chi : total:m0_14, partial:m0_16
|
||||
# 184| r0_18(unsigned int &) = Load : &:r0_15, m0_16
|
||||
# 184| m0_19(unknown) = InitializeIndirection[c] : &:r0_18
|
||||
# 184| m0_20(unknown) = Chi : total:m0_17, partial:m0_19
|
||||
# 184| r0_21(glval<unsigned int &>) = VariableAddress[d] :
|
||||
# 184| m0_22(unsigned int &) = InitializeParameter[d] : &:r0_21
|
||||
# 184| m0_23(unknown) = Chi : total:m0_20, partial:m0_22
|
||||
# 184| r0_24(unsigned int &) = Load : &:r0_21, m0_22
|
||||
# 184| m0_25(unknown) = InitializeIndirection[d] : &:r0_24
|
||||
# 184| m0_26(unknown) = Chi : total:m0_23, partial:m0_25
|
||||
# 186| r0_27(glval<unsigned int &>) = VariableAddress[a] :
|
||||
# 186| r0_28(glval<unsigned int &>) = VariableAddress[b] :
|
||||
# 186| r0_29(glval<unsigned int &>) = VariableAddress[c] :
|
||||
# 186| r0_30(glval<unsigned int &>) = VariableAddress[d] :
|
||||
# 186| m0_31(unknown) = InlineAsm : ~mu0_2, 0:r0_27, 1:r0_28, 2:r0_29, 3:r0_30
|
||||
# 186| m0_32(unknown) = Chi : total:m0_26, partial:m0_31
|
||||
# 192| v0_33(void) = NoOp :
|
||||
# 184| v0_34(void) = ReturnVoid :
|
||||
# 184| v0_35(void) = UnmodeledUse : mu*
|
||||
# 184| v0_36(void) = ExitFunction :
|
||||
|
||||
# 198| int PureFunctions(char*, char*, int)
|
||||
# 198| Block 0
|
||||
# 198| v0_0(void) = EnterFunction :
|
||||
# 198| m0_1(unknown) = AliasedDefinition :
|
||||
# 198| mu0_2(unknown) = UnmodeledDefinition :
|
||||
# 198| r0_3(glval<char *>) = VariableAddress[str1] :
|
||||
# 198| m0_4(char *) = InitializeParameter[str1] : &:r0_3
|
||||
# 198| r0_5(glval<char *>) = VariableAddress[str2] :
|
||||
# 198| m0_6(char *) = InitializeParameter[str2] : &:r0_5
|
||||
# 198| r0_7(glval<int>) = VariableAddress[x] :
|
||||
# 198| m0_8(int) = InitializeParameter[x] : &:r0_7
|
||||
# 199| r0_9(glval<int>) = VariableAddress[ret] :
|
||||
# 199| r0_10(glval<unknown>) = FunctionAddress[strcmp] :
|
||||
# 199| r0_11(glval<char *>) = VariableAddress[str1] :
|
||||
# 199| r0_12(char *) = Load : &:r0_11, m0_4
|
||||
# 199| r0_13(char *) = Convert : r0_12
|
||||
# 199| r0_14(glval<char *>) = VariableAddress[str2] :
|
||||
# 199| r0_15(char *) = Load : &:r0_14, m0_6
|
||||
# 199| r0_16(char *) = Convert : r0_15
|
||||
# 199| r0_17(int) = Call : func:r0_10, 0:r0_13, 1:r0_16
|
||||
# 199| v0_18(void) = ^CallReadSideEffect : ~m0_1
|
||||
# 199| m0_19(int) = Store : &:r0_9, r0_17
|
||||
# 200| r0_20(glval<unknown>) = FunctionAddress[strlen] :
|
||||
# 200| r0_21(glval<char *>) = VariableAddress[str1] :
|
||||
# 200| r0_22(char *) = Load : &:r0_21, m0_4
|
||||
# 200| r0_23(char *) = Convert : r0_22
|
||||
# 200| r0_24(int) = Call : func:r0_20, 0:r0_23
|
||||
# 200| v0_25(void) = ^CallReadSideEffect : ~m0_1
|
||||
# 200| r0_26(glval<int>) = VariableAddress[ret] :
|
||||
# 200| r0_27(int) = Load : &:r0_26, m0_19
|
||||
# 200| r0_28(int) = Add : r0_27, r0_24
|
||||
# 200| m0_29(int) = Store : &:r0_26, r0_28
|
||||
# 201| r0_30(glval<unknown>) = FunctionAddress[abs] :
|
||||
# 201| r0_31(glval<int>) = VariableAddress[x] :
|
||||
# 201| r0_32(int) = Load : &:r0_31, m0_8
|
||||
# 201| r0_33(int) = Call : func:r0_30, 0:r0_32
|
||||
# 201| r0_34(glval<int>) = VariableAddress[ret] :
|
||||
# 201| r0_35(int) = Load : &:r0_34, m0_29
|
||||
# 201| r0_36(int) = Add : r0_35, r0_33
|
||||
# 201| m0_37(int) = Store : &:r0_34, r0_36
|
||||
# 202| r0_38(glval<int>) = VariableAddress[#return] :
|
||||
# 202| r0_39(glval<int>) = VariableAddress[ret] :
|
||||
# 202| r0_40(int) = Load : &:r0_39, m0_37
|
||||
# 202| m0_41(int) = Store : &:r0_38, r0_40
|
||||
# 198| r0_42(glval<int>) = VariableAddress[#return] :
|
||||
# 198| v0_43(void) = ReturnValue : &:r0_42, m0_41
|
||||
# 198| v0_44(void) = UnmodeledUse : mu*
|
||||
# 198| v0_45(void) = ExitFunction :
|
||||
# 198| v0_0(void) = EnterFunction :
|
||||
# 198| m0_1(unknown) = AliasedDefinition :
|
||||
# 198| mu0_2(unknown) = UnmodeledDefinition :
|
||||
# 198| r0_3(glval<char *>) = VariableAddress[str1] :
|
||||
# 198| m0_4(char *) = InitializeParameter[str1] : &:r0_3
|
||||
# 198| r0_5(char *) = Load : &:r0_3, m0_4
|
||||
# 198| m0_6(unknown) = InitializeIndirection[str1] : &:r0_5
|
||||
# 198| m0_7(unknown) = Chi : total:m0_1, partial:m0_6
|
||||
# 198| r0_8(glval<char *>) = VariableAddress[str2] :
|
||||
# 198| m0_9(char *) = InitializeParameter[str2] : &:r0_8
|
||||
# 198| r0_10(char *) = Load : &:r0_8, m0_9
|
||||
# 198| m0_11(unknown) = InitializeIndirection[str2] : &:r0_10
|
||||
# 198| m0_12(unknown) = Chi : total:m0_7, partial:m0_11
|
||||
# 198| r0_13(glval<int>) = VariableAddress[x] :
|
||||
# 198| m0_14(int) = InitializeParameter[x] : &:r0_13
|
||||
# 199| r0_15(glval<int>) = VariableAddress[ret] :
|
||||
# 199| r0_16(glval<unknown>) = FunctionAddress[strcmp] :
|
||||
# 199| r0_17(glval<char *>) = VariableAddress[str1] :
|
||||
# 199| r0_18(char *) = Load : &:r0_17, m0_4
|
||||
# 199| r0_19(char *) = Convert : r0_18
|
||||
# 199| r0_20(glval<char *>) = VariableAddress[str2] :
|
||||
# 199| r0_21(char *) = Load : &:r0_20, m0_9
|
||||
# 199| r0_22(char *) = Convert : r0_21
|
||||
# 199| r0_23(int) = Call : func:r0_16, 0:r0_19, 1:r0_22
|
||||
# 199| v0_24(void) = ^CallReadSideEffect : ~m0_12
|
||||
# 199| m0_25(int) = Store : &:r0_15, r0_23
|
||||
# 200| r0_26(glval<unknown>) = FunctionAddress[strlen] :
|
||||
# 200| r0_27(glval<char *>) = VariableAddress[str1] :
|
||||
# 200| r0_28(char *) = Load : &:r0_27, m0_4
|
||||
# 200| r0_29(char *) = Convert : r0_28
|
||||
# 200| r0_30(int) = Call : func:r0_26, 0:r0_29
|
||||
# 200| v0_31(void) = ^CallReadSideEffect : ~m0_12
|
||||
# 200| r0_32(glval<int>) = VariableAddress[ret] :
|
||||
# 200| r0_33(int) = Load : &:r0_32, m0_25
|
||||
# 200| r0_34(int) = Add : r0_33, r0_30
|
||||
# 200| m0_35(int) = Store : &:r0_32, r0_34
|
||||
# 201| r0_36(glval<unknown>) = FunctionAddress[abs] :
|
||||
# 201| r0_37(glval<int>) = VariableAddress[x] :
|
||||
# 201| r0_38(int) = Load : &:r0_37, m0_14
|
||||
# 201| r0_39(int) = Call : func:r0_36, 0:r0_38
|
||||
# 201| r0_40(glval<int>) = VariableAddress[ret] :
|
||||
# 201| r0_41(int) = Load : &:r0_40, m0_35
|
||||
# 201| r0_42(int) = Add : r0_41, r0_39
|
||||
# 201| m0_43(int) = Store : &:r0_40, r0_42
|
||||
# 202| r0_44(glval<int>) = VariableAddress[#return] :
|
||||
# 202| r0_45(glval<int>) = VariableAddress[ret] :
|
||||
# 202| r0_46(int) = Load : &:r0_45, m0_43
|
||||
# 202| m0_47(int) = Store : &:r0_44, r0_46
|
||||
# 198| r0_48(glval<int>) = VariableAddress[#return] :
|
||||
# 198| v0_49(void) = ReturnValue : &:r0_48, m0_47
|
||||
# 198| v0_50(void) = UnmodeledUse : mu*
|
||||
# 198| v0_51(void) = ExitFunction :
|
||||
|
||||
# 207| int ModeledCallTarget(int)
|
||||
# 207| Block 0
|
||||
|
||||
@@ -6,13 +6,15 @@ ssa.cpp:
|
||||
# 13| mu0_2(unknown) = UnmodeledDefinition :
|
||||
# 13| r0_3(glval<Point *>) = VariableAddress[p] :
|
||||
# 13| m0_4(Point *) = InitializeParameter[p] : &:r0_3
|
||||
# 13| r0_5(glval<bool>) = VariableAddress[which1] :
|
||||
# 13| m0_6(bool) = InitializeParameter[which1] : &:r0_5
|
||||
# 13| r0_7(glval<bool>) = VariableAddress[which2] :
|
||||
# 13| m0_8(bool) = InitializeParameter[which2] : &:r0_7
|
||||
# 14| r0_9(glval<bool>) = VariableAddress[which1] :
|
||||
# 14| r0_10(bool) = Load : &:r0_9, m0_6
|
||||
# 14| v0_11(void) = ConditionalBranch : r0_10
|
||||
# 13| r0_5(Point *) = Load : &:r0_3, m0_4
|
||||
# 13| mu0_6(unknown) = InitializeIndirection[p] : &:r0_5
|
||||
# 13| r0_7(glval<bool>) = VariableAddress[which1] :
|
||||
# 13| m0_8(bool) = InitializeParameter[which1] : &:r0_7
|
||||
# 13| r0_9(glval<bool>) = VariableAddress[which2] :
|
||||
# 13| m0_10(bool) = InitializeParameter[which2] : &:r0_9
|
||||
# 14| r0_11(glval<bool>) = VariableAddress[which1] :
|
||||
# 14| r0_12(bool) = Load : &:r0_11, m0_8
|
||||
# 14| v0_13(void) = ConditionalBranch : r0_12
|
||||
#-----| False -> Block 2
|
||||
#-----| True -> Block 1
|
||||
|
||||
@@ -38,7 +40,7 @@ ssa.cpp:
|
||||
|
||||
# 21| Block 3
|
||||
# 21| r3_0(glval<bool>) = VariableAddress[which2] :
|
||||
# 21| r3_1(bool) = Load : &:r3_0, m0_8
|
||||
# 21| r3_1(bool) = Load : &:r3_0, m0_10
|
||||
# 21| v3_2(void) = ConditionalBranch : r3_1
|
||||
#-----| False -> Block 5
|
||||
#-----| True -> Block 4
|
||||
@@ -198,13 +200,15 @@ ssa.cpp:
|
||||
|
||||
# 68| void chiNodeAtEndOfLoop(int, char*)
|
||||
# 68| Block 0
|
||||
# 68| v0_0(void) = EnterFunction :
|
||||
# 68| mu0_1(unknown) = AliasedDefinition :
|
||||
# 68| mu0_2(unknown) = UnmodeledDefinition :
|
||||
# 68| r0_3(glval<int>) = VariableAddress[n] :
|
||||
# 68| m0_4(int) = InitializeParameter[n] : &:r0_3
|
||||
# 68| r0_5(glval<char *>) = VariableAddress[p] :
|
||||
# 68| m0_6(char *) = InitializeParameter[p] : &:r0_5
|
||||
# 68| v0_0(void) = EnterFunction :
|
||||
# 68| mu0_1(unknown) = AliasedDefinition :
|
||||
# 68| mu0_2(unknown) = UnmodeledDefinition :
|
||||
# 68| r0_3(glval<int>) = VariableAddress[n] :
|
||||
# 68| m0_4(int) = InitializeParameter[n] : &:r0_3
|
||||
# 68| r0_5(glval<char *>) = VariableAddress[p] :
|
||||
# 68| m0_6(char *) = InitializeParameter[p] : &:r0_5
|
||||
# 68| r0_7(char *) = Load : &:r0_5, m0_6
|
||||
# 68| mu0_8(unknown) = InitializeIndirection[p] : &:r0_7
|
||||
#-----| Goto -> Block 3
|
||||
|
||||
# 70| Block 1
|
||||
@@ -697,88 +701,102 @@ ssa.cpp:
|
||||
# 179| mu0_2(unknown) = UnmodeledDefinition :
|
||||
# 179| r0_3(glval<int *>) = VariableAddress[p] :
|
||||
# 179| m0_4(int *) = InitializeParameter[p] : &:r0_3
|
||||
# 180| mu0_5(unknown) = InlineAsm : ~mu0_2
|
||||
# 181| r0_6(glval<int>) = VariableAddress[#return] :
|
||||
# 181| r0_7(glval<int *>) = VariableAddress[p] :
|
||||
# 181| r0_8(int *) = Load : &:r0_7, m0_4
|
||||
# 181| r0_9(int) = Load : &:r0_8, ~mu0_2
|
||||
# 181| m0_10(int) = Store : &:r0_6, r0_9
|
||||
# 179| r0_11(glval<int>) = VariableAddress[#return] :
|
||||
# 179| v0_12(void) = ReturnValue : &:r0_11, m0_10
|
||||
# 179| v0_13(void) = UnmodeledUse : mu*
|
||||
# 179| v0_14(void) = ExitFunction :
|
||||
# 179| r0_5(int *) = Load : &:r0_3, m0_4
|
||||
# 179| mu0_6(unknown) = InitializeIndirection[p] : &:r0_5
|
||||
# 180| mu0_7(unknown) = InlineAsm : ~mu0_2
|
||||
# 181| r0_8(glval<int>) = VariableAddress[#return] :
|
||||
# 181| r0_9(glval<int *>) = VariableAddress[p] :
|
||||
# 181| r0_10(int *) = Load : &:r0_9, m0_4
|
||||
# 181| r0_11(int) = Load : &:r0_10, ~mu0_2
|
||||
# 181| m0_12(int) = Store : &:r0_8, r0_11
|
||||
# 179| r0_13(glval<int>) = VariableAddress[#return] :
|
||||
# 179| v0_14(void) = ReturnValue : &:r0_13, m0_12
|
||||
# 179| v0_15(void) = UnmodeledUse : mu*
|
||||
# 179| v0_16(void) = ExitFunction :
|
||||
|
||||
# 184| void AsmStmtWithOutputs(unsigned int&, unsigned int&, unsigned int&, unsigned int&)
|
||||
# 184| Block 0
|
||||
# 184| v0_0(void) = EnterFunction :
|
||||
# 184| mu0_1(unknown) = AliasedDefinition :
|
||||
# 184| mu0_2(unknown) = UnmodeledDefinition :
|
||||
# 184| r0_3(glval<unsigned int &>) = VariableAddress[a] :
|
||||
# 184| mu0_4(unsigned int &) = InitializeParameter[a] : &:r0_3
|
||||
# 184| r0_5(glval<unsigned int &>) = VariableAddress[b] :
|
||||
# 184| mu0_6(unsigned int &) = InitializeParameter[b] : &:r0_5
|
||||
# 184| r0_7(glval<unsigned int &>) = VariableAddress[c] :
|
||||
# 184| mu0_8(unsigned int &) = InitializeParameter[c] : &:r0_7
|
||||
# 184| r0_9(glval<unsigned int &>) = VariableAddress[d] :
|
||||
# 184| mu0_10(unsigned int &) = InitializeParameter[d] : &:r0_9
|
||||
# 186| r0_11(glval<unsigned int &>) = VariableAddress[a] :
|
||||
# 186| r0_12(glval<unsigned int &>) = VariableAddress[b] :
|
||||
# 186| r0_13(glval<unsigned int &>) = VariableAddress[c] :
|
||||
# 186| r0_14(glval<unsigned int &>) = VariableAddress[d] :
|
||||
# 186| mu0_15(unknown) = InlineAsm : ~mu0_2, 0:r0_11, 1:r0_12, 2:r0_13, 3:r0_14
|
||||
# 192| v0_16(void) = NoOp :
|
||||
# 184| v0_17(void) = ReturnVoid :
|
||||
# 184| v0_18(void) = UnmodeledUse : mu*
|
||||
# 184| v0_19(void) = ExitFunction :
|
||||
# 184| v0_0(void) = EnterFunction :
|
||||
# 184| mu0_1(unknown) = AliasedDefinition :
|
||||
# 184| mu0_2(unknown) = UnmodeledDefinition :
|
||||
# 184| r0_3(glval<unsigned int &>) = VariableAddress[a] :
|
||||
# 184| mu0_4(unsigned int &) = InitializeParameter[a] : &:r0_3
|
||||
# 184| r0_5(unsigned int &) = Load : &:r0_3, ~mu0_2
|
||||
# 184| mu0_6(unknown) = InitializeIndirection[a] : &:r0_5
|
||||
# 184| r0_7(glval<unsigned int &>) = VariableAddress[b] :
|
||||
# 184| mu0_8(unsigned int &) = InitializeParameter[b] : &:r0_7
|
||||
# 184| r0_9(unsigned int &) = Load : &:r0_7, ~mu0_2
|
||||
# 184| mu0_10(unknown) = InitializeIndirection[b] : &:r0_9
|
||||
# 184| r0_11(glval<unsigned int &>) = VariableAddress[c] :
|
||||
# 184| mu0_12(unsigned int &) = InitializeParameter[c] : &:r0_11
|
||||
# 184| r0_13(unsigned int &) = Load : &:r0_11, ~mu0_2
|
||||
# 184| mu0_14(unknown) = InitializeIndirection[c] : &:r0_13
|
||||
# 184| r0_15(glval<unsigned int &>) = VariableAddress[d] :
|
||||
# 184| mu0_16(unsigned int &) = InitializeParameter[d] : &:r0_15
|
||||
# 184| r0_17(unsigned int &) = Load : &:r0_15, ~mu0_2
|
||||
# 184| mu0_18(unknown) = InitializeIndirection[d] : &:r0_17
|
||||
# 186| r0_19(glval<unsigned int &>) = VariableAddress[a] :
|
||||
# 186| r0_20(glval<unsigned int &>) = VariableAddress[b] :
|
||||
# 186| r0_21(glval<unsigned int &>) = VariableAddress[c] :
|
||||
# 186| r0_22(glval<unsigned int &>) = VariableAddress[d] :
|
||||
# 186| mu0_23(unknown) = InlineAsm : ~mu0_2, 0:r0_19, 1:r0_20, 2:r0_21, 3:r0_22
|
||||
# 192| v0_24(void) = NoOp :
|
||||
# 184| v0_25(void) = ReturnVoid :
|
||||
# 184| v0_26(void) = UnmodeledUse : mu*
|
||||
# 184| v0_27(void) = ExitFunction :
|
||||
|
||||
# 198| int PureFunctions(char*, char*, int)
|
||||
# 198| Block 0
|
||||
# 198| v0_0(void) = EnterFunction :
|
||||
# 198| mu0_1(unknown) = AliasedDefinition :
|
||||
# 198| mu0_2(unknown) = UnmodeledDefinition :
|
||||
# 198| r0_3(glval<char *>) = VariableAddress[str1] :
|
||||
# 198| m0_4(char *) = InitializeParameter[str1] : &:r0_3
|
||||
# 198| r0_5(glval<char *>) = VariableAddress[str2] :
|
||||
# 198| m0_6(char *) = InitializeParameter[str2] : &:r0_5
|
||||
# 198| r0_7(glval<int>) = VariableAddress[x] :
|
||||
# 198| m0_8(int) = InitializeParameter[x] : &:r0_7
|
||||
# 199| r0_9(glval<int>) = VariableAddress[ret] :
|
||||
# 199| r0_10(glval<unknown>) = FunctionAddress[strcmp] :
|
||||
# 199| r0_11(glval<char *>) = VariableAddress[str1] :
|
||||
# 199| r0_12(char *) = Load : &:r0_11, m0_4
|
||||
# 199| r0_13(char *) = Convert : r0_12
|
||||
# 199| r0_14(glval<char *>) = VariableAddress[str2] :
|
||||
# 199| r0_15(char *) = Load : &:r0_14, m0_6
|
||||
# 199| r0_16(char *) = Convert : r0_15
|
||||
# 199| r0_17(int) = Call : func:r0_10, 0:r0_13, 1:r0_16
|
||||
# 199| v0_18(void) = ^CallReadSideEffect : ~mu0_2
|
||||
# 199| m0_19(int) = Store : &:r0_9, r0_17
|
||||
# 200| r0_20(glval<unknown>) = FunctionAddress[strlen] :
|
||||
# 200| r0_21(glval<char *>) = VariableAddress[str1] :
|
||||
# 200| r0_22(char *) = Load : &:r0_21, m0_4
|
||||
# 200| r0_23(char *) = Convert : r0_22
|
||||
# 200| r0_24(int) = Call : func:r0_20, 0:r0_23
|
||||
# 200| v0_25(void) = ^CallReadSideEffect : ~mu0_2
|
||||
# 200| r0_26(glval<int>) = VariableAddress[ret] :
|
||||
# 200| r0_27(int) = Load : &:r0_26, m0_19
|
||||
# 200| r0_28(int) = Add : r0_27, r0_24
|
||||
# 200| m0_29(int) = Store : &:r0_26, r0_28
|
||||
# 201| r0_30(glval<unknown>) = FunctionAddress[abs] :
|
||||
# 201| r0_31(glval<int>) = VariableAddress[x] :
|
||||
# 201| r0_32(int) = Load : &:r0_31, m0_8
|
||||
# 201| r0_33(int) = Call : func:r0_30, 0:r0_32
|
||||
# 201| r0_34(glval<int>) = VariableAddress[ret] :
|
||||
# 201| r0_35(int) = Load : &:r0_34, m0_29
|
||||
# 201| r0_36(int) = Add : r0_35, r0_33
|
||||
# 201| m0_37(int) = Store : &:r0_34, r0_36
|
||||
# 202| r0_38(glval<int>) = VariableAddress[#return] :
|
||||
# 202| r0_39(glval<int>) = VariableAddress[ret] :
|
||||
# 202| r0_40(int) = Load : &:r0_39, m0_37
|
||||
# 202| m0_41(int) = Store : &:r0_38, r0_40
|
||||
# 198| r0_42(glval<int>) = VariableAddress[#return] :
|
||||
# 198| v0_43(void) = ReturnValue : &:r0_42, m0_41
|
||||
# 198| v0_44(void) = UnmodeledUse : mu*
|
||||
# 198| v0_45(void) = ExitFunction :
|
||||
# 198| v0_0(void) = EnterFunction :
|
||||
# 198| mu0_1(unknown) = AliasedDefinition :
|
||||
# 198| mu0_2(unknown) = UnmodeledDefinition :
|
||||
# 198| r0_3(glval<char *>) = VariableAddress[str1] :
|
||||
# 198| m0_4(char *) = InitializeParameter[str1] : &:r0_3
|
||||
# 198| r0_5(char *) = Load : &:r0_3, m0_4
|
||||
# 198| mu0_6(unknown) = InitializeIndirection[str1] : &:r0_5
|
||||
# 198| r0_7(glval<char *>) = VariableAddress[str2] :
|
||||
# 198| m0_8(char *) = InitializeParameter[str2] : &:r0_7
|
||||
# 198| r0_9(char *) = Load : &:r0_7, m0_8
|
||||
# 198| mu0_10(unknown) = InitializeIndirection[str2] : &:r0_9
|
||||
# 198| r0_11(glval<int>) = VariableAddress[x] :
|
||||
# 198| m0_12(int) = InitializeParameter[x] : &:r0_11
|
||||
# 199| r0_13(glval<int>) = VariableAddress[ret] :
|
||||
# 199| r0_14(glval<unknown>) = FunctionAddress[strcmp] :
|
||||
# 199| r0_15(glval<char *>) = VariableAddress[str1] :
|
||||
# 199| r0_16(char *) = Load : &:r0_15, m0_4
|
||||
# 199| r0_17(char *) = Convert : r0_16
|
||||
# 199| r0_18(glval<char *>) = VariableAddress[str2] :
|
||||
# 199| r0_19(char *) = Load : &:r0_18, m0_8
|
||||
# 199| r0_20(char *) = Convert : r0_19
|
||||
# 199| r0_21(int) = Call : func:r0_14, 0:r0_17, 1:r0_20
|
||||
# 199| v0_22(void) = ^CallReadSideEffect : ~mu0_2
|
||||
# 199| m0_23(int) = Store : &:r0_13, r0_21
|
||||
# 200| r0_24(glval<unknown>) = FunctionAddress[strlen] :
|
||||
# 200| r0_25(glval<char *>) = VariableAddress[str1] :
|
||||
# 200| r0_26(char *) = Load : &:r0_25, m0_4
|
||||
# 200| r0_27(char *) = Convert : r0_26
|
||||
# 200| r0_28(int) = Call : func:r0_24, 0:r0_27
|
||||
# 200| v0_29(void) = ^CallReadSideEffect : ~mu0_2
|
||||
# 200| r0_30(glval<int>) = VariableAddress[ret] :
|
||||
# 200| r0_31(int) = Load : &:r0_30, m0_23
|
||||
# 200| r0_32(int) = Add : r0_31, r0_28
|
||||
# 200| m0_33(int) = Store : &:r0_30, r0_32
|
||||
# 201| r0_34(glval<unknown>) = FunctionAddress[abs] :
|
||||
# 201| r0_35(glval<int>) = VariableAddress[x] :
|
||||
# 201| r0_36(int) = Load : &:r0_35, m0_12
|
||||
# 201| r0_37(int) = Call : func:r0_34, 0:r0_36
|
||||
# 201| r0_38(glval<int>) = VariableAddress[ret] :
|
||||
# 201| r0_39(int) = Load : &:r0_38, m0_33
|
||||
# 201| r0_40(int) = Add : r0_39, r0_37
|
||||
# 201| m0_41(int) = Store : &:r0_38, r0_40
|
||||
# 202| r0_42(glval<int>) = VariableAddress[#return] :
|
||||
# 202| r0_43(glval<int>) = VariableAddress[ret] :
|
||||
# 202| r0_44(int) = Load : &:r0_43, m0_41
|
||||
# 202| m0_45(int) = Store : &:r0_42, r0_44
|
||||
# 198| r0_46(glval<int>) = VariableAddress[#return] :
|
||||
# 198| v0_47(void) = ReturnValue : &:r0_46, m0_45
|
||||
# 198| v0_48(void) = UnmodeledUse : mu*
|
||||
# 198| v0_49(void) = ExitFunction :
|
||||
|
||||
# 207| int ModeledCallTarget(int)
|
||||
# 207| Block 0
|
||||
|
||||
@@ -11,7 +11,7 @@ missingPhiOperand
|
||||
| cpp11.cpp:141:7:141:7 | Phi: g | cpp11.cpp:161:16:161:16 | NoOp: label ...: |
|
||||
missingOperandType
|
||||
instructionWithoutSuccessor
|
||||
| VacuousDestructorCall.cpp:2:29:2:29 | InitializeParameter: y |
|
||||
| VacuousDestructorCall.cpp:2:29:2:29 | Chi: y |
|
||||
| assume0.cpp:7:2:7:2 | Chi: call to f |
|
||||
| condition_decls.cpp:16:19:16:20 | Chi: call to BoxedInt |
|
||||
| condition_decls.cpp:26:23:26:24 | Chi: call to BoxedInt |
|
||||
@@ -19,7 +19,7 @@ instructionWithoutSuccessor
|
||||
| condition_decls.cpp:48:52:48:53 | Chi: call to BoxedInt |
|
||||
| cpp17.cpp:15:11:15:21 | Convert: (void *)... |
|
||||
| misc.c:171:10:171:13 | Uninitialized: definition of str2 |
|
||||
| misc.c:219:47:219:48 | InitializeParameter: sp |
|
||||
| misc.c:219:47:219:48 | Chi: sp |
|
||||
| ms_try_except.cpp:3:9:3:9 | Uninitialized: definition of x |
|
||||
| ms_try_mix.cpp:11:12:11:15 | Chi: call to C |
|
||||
| ms_try_mix.cpp:28:12:28:15 | Chi: call to C |
|
||||
|
||||
@@ -21,7 +21,7 @@ duplicateOperand
|
||||
missingPhiOperand
|
||||
missingOperandType
|
||||
instructionWithoutSuccessor
|
||||
| VacuousDestructorCall.cpp:2:29:2:29 | InitializeParameter: y |
|
||||
| VacuousDestructorCall.cpp:2:29:2:29 | InitializeIndirection: y |
|
||||
| VacuousDestructorCall.cpp:3:3:3:3 | VariableAddress: x |
|
||||
| VacuousDestructorCall.cpp:4:3:4:3 | Load: y |
|
||||
| assume0.cpp:7:2:7:2 | CallSideEffect: call to f |
|
||||
@@ -42,7 +42,7 @@ instructionWithoutSuccessor
|
||||
| misc.c:174:17:174:22 | CallSideEffect: call to getInt |
|
||||
| misc.c:174:30:174:35 | CallSideEffect: call to getInt |
|
||||
| misc.c:174:55:174:60 | Store: (char ****)... |
|
||||
| misc.c:219:47:219:48 | InitializeParameter: sp |
|
||||
| misc.c:219:47:219:48 | InitializeIndirection: sp |
|
||||
| misc.c:221:10:221:10 | Store: 1 |
|
||||
| misc.c:222:10:222:10 | Store: 2 |
|
||||
| ms_assume.cpp:20:12:20:12 | Constant: (bool)... |
|
||||
|
||||
@@ -20,7 +20,7 @@ missingPhiOperand
|
||||
| range_analysis.c:389:3:389:32 | Phi: return ... | range_analysis.c:387:38:387:38 | Constant: 5 |
|
||||
missingOperandType
|
||||
instructionWithoutSuccessor
|
||||
| VacuousDestructorCall.cpp:2:29:2:29 | InitializeParameter: y |
|
||||
| VacuousDestructorCall.cpp:2:29:2:29 | InitializeIndirection: y |
|
||||
| assume0.cpp:7:2:7:2 | CallSideEffect: call to f |
|
||||
| condition_decls.cpp:16:19:16:20 | CallSideEffect: call to BoxedInt |
|
||||
| condition_decls.cpp:26:23:26:24 | CallSideEffect: call to BoxedInt |
|
||||
@@ -28,7 +28,7 @@ instructionWithoutSuccessor
|
||||
| condition_decls.cpp:48:52:48:53 | CallSideEffect: call to BoxedInt |
|
||||
| cpp17.cpp:15:11:15:21 | Convert: (void *)... |
|
||||
| misc.c:171:10:171:13 | Uninitialized: definition of str2 |
|
||||
| misc.c:219:47:219:48 | InitializeParameter: sp |
|
||||
| misc.c:219:47:219:48 | InitializeIndirection: sp |
|
||||
| ms_try_except.cpp:3:9:3:9 | Uninitialized: definition of x |
|
||||
| ms_try_mix.cpp:11:12:11:15 | CallSideEffect: call to C |
|
||||
| ms_try_mix.cpp:28:12:28:15 | CallSideEffect: call to C |
|
||||
|
||||
Reference in New Issue
Block a user