mirror of
https://github.com/github/codeql.git
synced 2026-04-25 16:55:19 +02:00
C++: Add a failing testcase.
This commit is contained in:
@@ -20275,6 +20275,54 @@ ir.cpp:
|
||||
# 2437| getQualifier(): [VariableAccess] c
|
||||
# 2437| Type = [Class] ClassWithDestructor
|
||||
# 2437| ValueCategory = lvalue
|
||||
# 2439| [CopyAssignmentOperator] ByValueConstructor& ByValueConstructor::operator=(ByValueConstructor const&)
|
||||
# 2439| <params>:
|
||||
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
|
||||
#-----| Type = [LValueReferenceType] const ByValueConstructor &
|
||||
# 2439| [MoveAssignmentOperator] ByValueConstructor& ByValueConstructor::operator=(ByValueConstructor&&)
|
||||
# 2439| <params>:
|
||||
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
|
||||
#-----| Type = [RValueReferenceType] ByValueConstructor &&
|
||||
# 2439| [CopyConstructor] void ByValueConstructor::ByValueConstructor(ByValueConstructor const&)
|
||||
# 2439| <params>:
|
||||
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
|
||||
#-----| Type = [LValueReferenceType] const ByValueConstructor &
|
||||
# 2439| [MoveConstructor] void ByValueConstructor::ByValueConstructor(ByValueConstructor&&)
|
||||
# 2439| <params>:
|
||||
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
|
||||
#-----| Type = [RValueReferenceType] ByValueConstructor &&
|
||||
# 2440| [Constructor] void ByValueConstructor::ByValueConstructor(ClassWithDestructor)
|
||||
# 2440| <params>:
|
||||
# 2440| getParameter(0): [Parameter] (unnamed parameter 0)
|
||||
# 2440| Type = [Class] ClassWithDestructor
|
||||
# 2443| [TopLevelFunction] void new_with_destructor(ClassWithDestructor)
|
||||
# 2443| <params>:
|
||||
# 2443| getParameter(0): [Parameter] a
|
||||
# 2443| Type = [Class] ClassWithDestructor
|
||||
# 2444| getEntryPoint(): [BlockStmt] { ... }
|
||||
# 2445| getStmt(0): [DeclStmt] declaration
|
||||
# 2445| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b
|
||||
# 2445| Type = [PointerType] ByValueConstructor *
|
||||
# 2445| getVariable().getInitializer(): [Initializer] initializer for b
|
||||
# 2445| getExpr(): [NewExpr] new
|
||||
# 2445| Type = [PointerType] ByValueConstructor *
|
||||
# 2445| ValueCategory = prvalue
|
||||
# 2445| getInitializer(): [ConstructorCall] call to ByValueConstructor
|
||||
# 2445| Type = [VoidType] void
|
||||
# 2445| ValueCategory = prvalue
|
||||
# 2445| getArgument(0): [VariableAccess] a
|
||||
# 2445| Type = [Class] ClassWithDestructor
|
||||
# 2445| ValueCategory = prvalue(load)
|
||||
# 2445| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object
|
||||
# 2445| Type = [Class] ClassWithDestructor
|
||||
# 2445| ValueCategory = lvalue
|
||||
# 2445| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor
|
||||
# 2445| Type = [VoidType] void
|
||||
# 2445| ValueCategory = prvalue
|
||||
# 2445| getQualifier(): [ReuseExpr] reuse of temporary object
|
||||
# 2445| Type = [Class] ClassWithDestructor
|
||||
# 2445| ValueCategory = xvalue
|
||||
# 2446| getStmt(1): [ReturnStmt] return ...
|
||||
perf-regression.cpp:
|
||||
# 4| [CopyAssignmentOperator] Big& Big::operator=(Big const&)
|
||||
# 4| <params>:
|
||||
|
||||
@@ -16026,6 +16026,72 @@ ir.cpp:
|
||||
# 2434| v2434_8(void) = AliasedUse : ~m2437_5
|
||||
# 2434| v2434_9(void) = ExitFunction :
|
||||
|
||||
# 2443| void new_with_destructor(ClassWithDestructor)
|
||||
# 2443| Block 0
|
||||
# 2443| v2443_1(void) = EnterFunction :
|
||||
# 2443| m2443_2(unknown) = AliasedDefinition :
|
||||
# 2443| m2443_3(unknown) = InitializeNonLocal :
|
||||
# 2443| m2443_4(unknown) = Chi : total:m2443_2, partial:m2443_3
|
||||
# 2443| r2443_5(glval<ClassWithDestructor>) = VariableAddress[a] :
|
||||
# 2443| m2443_6(ClassWithDestructor) = InitializeParameter[a] : &:r2443_5
|
||||
# 2445| r2445_1(glval<ByValueConstructor *>) = VariableAddress[b] :
|
||||
# 2445| r2445_2(glval<unknown>) = FunctionAddress[operator new] :
|
||||
# 2445| r2445_3(unsigned long) = Constant[1] :
|
||||
#-----| Goto -> Block 4
|
||||
#-----| Goto -> Block 4
|
||||
|
||||
# 2445| Block 1
|
||||
# 2445| m2445_4(ByValueConstructor *) = Store[b] : &:r2445_1, r2445_5
|
||||
# 2446| v2446_1(void) = NoOp :
|
||||
# 2443| v2443_7(void) = ReturnVoid :
|
||||
# 2443| v2443_8(void) = AliasedUse : ~m2445_31, ~m2445_45
|
||||
# 2443| v2443_9(void) = ExitFunction :
|
||||
|
||||
# 2445| Block 2
|
||||
# 2445| r2445_5(ByValueConstructor *) = Convert : r2445_17
|
||||
# 2445| r2445_6(glval<unknown>) = FunctionAddress[ByValueConstructor] :
|
||||
# 2445| r2445_7(glval<ClassWithDestructor>) = VariableAddress[#temp2445:52] :
|
||||
# 2445| r2445_8(glval<ClassWithDestructor>) = VariableAddress[a] :
|
||||
# 2445| r2445_9(ClassWithDestructor) = Load[a] : &:r2445_8, m2443_6
|
||||
# 2445| m2445_10(ClassWithDestructor) = Store[#temp2445:52] : &:r2445_7, r2445_9
|
||||
# 2445| r2445_11(ClassWithDestructor) = Load[#temp2445:52] : &:r2445_7, m2445_10
|
||||
# 2445| v2445_12(void) = Call[ByValueConstructor] : func:r2445_6, this:r2445_5, 0:r2445_11
|
||||
# 2445| m2445_13(unknown) = ^CallSideEffect : ~m2445_31, ~m2445_45
|
||||
# 2445| m2445_14(unknown) = Chi : total:m2445_31, total:m2445_45, partial:m2445_13
|
||||
# 2445| m2445_15(ByValueConstructor) = ^IndirectMayWriteSideEffect[-1] : &:r2445_5
|
||||
# 2445| m2445_16(unknown) = Chi : total:m2445_22, total:m2445_25, total:m2445_36, total:m2445_39, partial:m2445_15
|
||||
#-----| Goto (back edge) -> Block 4
|
||||
#-----| Goto (back edge) -> Block 4
|
||||
|
||||
# 2445| Block 3
|
||||
# 2445| r2445_17(void *) = Call[operator new] : func:r2445_2, 0:r2445_3
|
||||
# 2445| m2445_18(unknown) = ^CallSideEffect : ~m2445_31, ~m2445_45
|
||||
# 2445| m2445_19(unknown) = Chi : total:m2445_31, total:m2445_45, partial:m2445_18
|
||||
# 2445| m2445_20(unknown) = ^InitializeDynamicAllocation : &:r2445_17
|
||||
#-----| Goto (back edge) -> Block 4
|
||||
#-----| Goto (back edge) -> Block 4
|
||||
|
||||
# 2445| Block 4
|
||||
# 2445| m2445_39(unknown) = Phi : from 2:m2445_16, from 3:m2445_20
|
||||
# 2445| m2445_40(unknown) = Phi : from 0:~m2443_4, from 2:~m2445_14, from 3:~m2445_19
|
||||
# 2445| m2445_38(ClassWithDestructor) = Phi : from 2:m2445_10, from 3:m2445_34, from 3:m2445_48
|
||||
# 2445| r2445_41(glval<ClassWithDestructor>) = CopyValue : r2445_7
|
||||
# 2445| r2445_42(glval<unknown>) = FunctionAddress[~ClassWithDestructor] :
|
||||
# 2445| v2445_43(void) = Call[~ClassWithDestructor] : func:r2445_28, func:r2445_42, this:r2445_27, this:r2445_41
|
||||
# 2445| m2445_44(unknown) = ^CallSideEffect : ~m2445_23, ~m2445_26, ~m2445_37, ~m2445_40
|
||||
# 2445| m2445_45(unknown) = Chi : total:m2445_23, total:m2445_26, total:m2445_37, total:m2445_40, partial:m2445_30, partial:m2445_44
|
||||
# 2445| v2445_46(void) = ^IndirectReadSideEffect[-1] : &:r2445_27, &:r2445_41, m2445_21, m2445_24, m2445_35, m2445_38
|
||||
# 2445| m2445_47(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2445_27, &:r2445_41
|
||||
# 2445| m2445_48(ClassWithDestructor) = Chi : total:m2445_21, total:m2445_24, total:m2445_35, total:m2445_38, partial:m2445_33, partial:m2445_47
|
||||
#-----| Goto (back edge) -> Block 2
|
||||
#-----| Goto (back edge) -> Block 3
|
||||
#-----| Goto (back edge) -> Block 1
|
||||
|
||||
# 2445| Block 4
|
||||
#-----| Goto (back edge) -> Block 2
|
||||
#-----| Goto (back edge) -> Block 3
|
||||
#-----| Goto (back edge) -> Block 1
|
||||
|
||||
perf-regression.cpp:
|
||||
# 6| void Big::Big()
|
||||
# 6| Block 0
|
||||
|
||||
@@ -2,12 +2,41 @@ missingOperand
|
||||
unexpectedOperand
|
||||
duplicateOperand
|
||||
missingPhiOperand
|
||||
| ir.cpp:2445:52:2445:52 | Phi: reuse of temporary object | Instruction 'Phi: reuse of temporary object' is missing an operand for predecessor block 'EnterFunction: new_with_destructor' in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
missingOperandType
|
||||
duplicateChiOperand
|
||||
sideEffectWithoutPrimary
|
||||
instructionWithoutSuccessor
|
||||
ambiguousSuccessors
|
||||
| ir.cpp:2445:52:2445:52 | Chi: reuse of temporary object | Instruction 'Chi: reuse of temporary object' has 3 successors of kind 'Goto' in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
unexplainedLoop
|
||||
| ir.cpp:2445:29:2445:53 | Call: call to ByValueConstructor | Instruction 'Call: call to ByValueConstructor' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:29:2445:53 | Call: new | Instruction 'Call: new' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:29:2445:53 | CallSideEffect: call to ByValueConstructor | Instruction 'CallSideEffect: call to ByValueConstructor' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:29:2445:53 | CallSideEffect: new | Instruction 'CallSideEffect: new' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:29:2445:53 | Chi: call to ByValueConstructor | Instruction 'Chi: call to ByValueConstructor' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:29:2445:53 | Chi: call to ByValueConstructor | Instruction 'Chi: call to ByValueConstructor' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:29:2445:53 | Chi: new | Instruction 'Chi: new' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:29:2445:53 | Chi: new | Instruction 'Chi: new' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:29:2445:53 | Convert: new | Instruction 'Convert: new' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:29:2445:53 | FunctionAddress: call to ByValueConstructor | Instruction 'FunctionAddress: call to ByValueConstructor' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:29:2445:53 | IndirectMayWriteSideEffect: call to ByValueConstructor | Instruction 'IndirectMayWriteSideEffect: call to ByValueConstructor' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:29:2445:53 | InitializeDynamicAllocation: new | Instruction 'InitializeDynamicAllocation: new' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | Call: call to ~ClassWithDestructor | Instruction 'Call: call to ~ClassWithDestructor' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | CallSideEffect: call to ~ClassWithDestructor | Instruction 'CallSideEffect: call to ~ClassWithDestructor' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | Chi: call to ~ClassWithDestructor | Instruction 'Chi: call to ~ClassWithDestructor' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | Chi: reuse of temporary object | Instruction 'Chi: reuse of temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | CopyValue: reuse of temporary object | Instruction 'CopyValue: reuse of temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | FunctionAddress: call to ~ClassWithDestructor | Instruction 'FunctionAddress: call to ~ClassWithDestructor' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | IndirectMayWriteSideEffect: reuse of temporary object | Instruction 'IndirectMayWriteSideEffect: reuse of temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | IndirectReadSideEffect: reuse of temporary object | Instruction 'IndirectReadSideEffect: reuse of temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | Load: a | Instruction 'Load: a' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | Load: temporary object | Instruction 'Load: temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | Phi: reuse of temporary object | Instruction 'Phi: reuse of temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | Phi: reuse of temporary object | Instruction 'Phi: reuse of temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | Store: a | Instruction 'Store: a' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | VariableAddress: a | Instruction 'VariableAddress: a' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | VariableAddress: temporary object | Instruction 'VariableAddress: temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
unnecessaryPhiInstruction
|
||||
memoryOperandDefinitionIsUnmodeled
|
||||
operandAcrossFunctions
|
||||
@@ -18,8 +47,14 @@ containsLoopOfForwardEdges
|
||||
missingIRType
|
||||
multipleIRTypes
|
||||
lostReachability
|
||||
| ir.cpp:2445:29:2445:53 | Call: new | Block 'Call: new' is not reachable by traversing only forward edges in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:29:2445:53 | Convert: new | Block 'Convert: new' is not reachable by traversing only forward edges in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:29:2445:53 | Store: new | Block 'Store: new' is not reachable by traversing only forward edges in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
backEdgeCountMismatch
|
||||
useNotDominatedByDefinition
|
||||
| ir.cpp:2445:29:2445:53 | StoreValue | Operand 'StoreValue' is not dominated by its definition in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:29:2445:53 | Unary | Operand 'Unary' is not dominated by its definition in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | Unary | Operand 'Unary' is not dominated by its definition in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
switchInstructionWithoutDefaultEdge
|
||||
notMarkedAsConflated
|
||||
wronglyMarkedAsConflated
|
||||
|
||||
@@ -2,6 +2,8 @@ missingOperand
|
||||
unexpectedOperand
|
||||
duplicateOperand
|
||||
missingPhiOperand
|
||||
| ir.cpp:2445:52:2445:52 | Phi: reuse of temporary object | Instruction 'Phi: reuse of temporary object' is missing an operand for predecessor block 'EnterFunction: new_with_destructor' in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | Phi: reuse of temporary object | Instruction 'Phi: reuse of temporary object' is missing an operand for predecessor block 'EnterFunction: new_with_destructor' in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
missingOperandType
|
||||
| destructors_for_temps.cpp:39:3:39:53 | ChiTotal | Operand 'ChiTotal' of instruction 'Chi' is missing a type in function '$@'. | destructors_for_temps.cpp:38:6:38:15 | void temp_test5(bool) | void temp_test5(bool) |
|
||||
| ir.cpp:1425:5:1425:30 | ChiTotal | Operand 'ChiTotal' of instruction 'Chi' is missing a type in function '$@'. | ir.cpp:1414:6:1414:21 | void temporary_string() | void temporary_string() |
|
||||
@@ -10,7 +12,35 @@ duplicateChiOperand
|
||||
sideEffectWithoutPrimary
|
||||
instructionWithoutSuccessor
|
||||
ambiguousSuccessors
|
||||
| ir.cpp:2445:52:2445:52 | Chi: reuse of temporary object | Instruction 'Chi: reuse of temporary object' has 3 successors of kind 'Goto' in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
unexplainedLoop
|
||||
| ir.cpp:2445:29:2445:53 | Call: call to ByValueConstructor | Instruction 'Call: call to ByValueConstructor' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:29:2445:53 | Call: new | Instruction 'Call: new' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:29:2445:53 | CallSideEffect: call to ByValueConstructor | Instruction 'CallSideEffect: call to ByValueConstructor' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:29:2445:53 | CallSideEffect: new | Instruction 'CallSideEffect: new' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:29:2445:53 | Chi: call to ByValueConstructor | Instruction 'Chi: call to ByValueConstructor' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:29:2445:53 | Chi: call to ByValueConstructor | Instruction 'Chi: call to ByValueConstructor' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:29:2445:53 | Chi: new | Instruction 'Chi: new' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:29:2445:53 | Convert: new | Instruction 'Convert: new' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:29:2445:53 | FunctionAddress: call to ByValueConstructor | Instruction 'FunctionAddress: call to ByValueConstructor' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:29:2445:53 | IndirectMayWriteSideEffect: call to ByValueConstructor | Instruction 'IndirectMayWriteSideEffect: call to ByValueConstructor' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:29:2445:53 | InitializeDynamicAllocation: new | Instruction 'InitializeDynamicAllocation: new' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | Call: call to ~ClassWithDestructor | Instruction 'Call: call to ~ClassWithDestructor' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | CallSideEffect: call to ~ClassWithDestructor | Instruction 'CallSideEffect: call to ~ClassWithDestructor' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | Chi: call to ~ClassWithDestructor | Instruction 'Chi: call to ~ClassWithDestructor' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | Chi: reuse of temporary object | Instruction 'Chi: reuse of temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | CopyValue: reuse of temporary object | Instruction 'CopyValue: reuse of temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | FunctionAddress: call to ~ClassWithDestructor | Instruction 'FunctionAddress: call to ~ClassWithDestructor' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | IndirectMayWriteSideEffect: reuse of temporary object | Instruction 'IndirectMayWriteSideEffect: reuse of temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | IndirectReadSideEffect: reuse of temporary object | Instruction 'IndirectReadSideEffect: reuse of temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | Load: a | Instruction 'Load: a' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | Load: temporary object | Instruction 'Load: temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | Phi: reuse of temporary object | Instruction 'Phi: reuse of temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | Phi: reuse of temporary object | Instruction 'Phi: reuse of temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | Phi: reuse of temporary object | Instruction 'Phi: reuse of temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | Store: a | Instruction 'Store: a' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | VariableAddress: a | Instruction 'VariableAddress: a' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | VariableAddress: temporary object | Instruction 'VariableAddress: temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
unnecessaryPhiInstruction
|
||||
memoryOperandDefinitionIsUnmodeled
|
||||
operandAcrossFunctions
|
||||
@@ -21,8 +51,14 @@ containsLoopOfForwardEdges
|
||||
missingIRType
|
||||
multipleIRTypes
|
||||
lostReachability
|
||||
| ir.cpp:2445:29:2445:53 | Call: new | Block 'Call: new' is not reachable by traversing only forward edges in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:29:2445:53 | Convert: new | Block 'Convert: new' is not reachable by traversing only forward edges in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:29:2445:53 | Store: new | Block 'Store: new' is not reachable by traversing only forward edges in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
backEdgeCountMismatch
|
||||
useNotDominatedByDefinition
|
||||
| ir.cpp:2445:29:2445:53 | StoreValue | Operand 'StoreValue' is not dominated by its definition in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:29:2445:53 | Unary | Operand 'Unary' is not dominated by its definition in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | Unary | Operand 'Unary' is not dominated by its definition in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
switchInstructionWithoutDefaultEdge
|
||||
notMarkedAsConflated
|
||||
wronglyMarkedAsConflated
|
||||
|
||||
@@ -2436,4 +2436,13 @@ void rethrow_with_destruction(int x) {
|
||||
throw;
|
||||
}
|
||||
|
||||
struct ByValueConstructor {
|
||||
ByValueConstructor(ClassWithDestructor);
|
||||
};
|
||||
|
||||
void new_with_destructor(ClassWithDestructor a)
|
||||
{
|
||||
ByValueConstructor* b = new ByValueConstructor(a);
|
||||
}
|
||||
|
||||
// semmle-extractor-options: -std=c++20 --clang
|
||||
|
||||
@@ -13476,6 +13476,79 @@
|
||||
| ir.cpp:2437:1:2437:1 | ChiTotal | total:m2435_8 |
|
||||
| ir.cpp:2437:1:2437:1 | SideEffect | m2435_8 |
|
||||
| ir.cpp:2437:1:2437:1 | SideEffect | ~m2435_6 |
|
||||
| ir.cpp:2443:6:2443:24 | ChiPartial | partial:m2443_3 |
|
||||
| ir.cpp:2443:6:2443:24 | ChiTotal | total:m2443_2 |
|
||||
| ir.cpp:2443:6:2443:24 | SideEffect | ~m2445_31 |
|
||||
| ir.cpp:2443:6:2443:24 | SideEffect | ~m2445_45 |
|
||||
| ir.cpp:2443:46:2443:46 | Address | &:r2443_5 |
|
||||
| ir.cpp:2445:25:2445:25 | Address | &:r2445_1 |
|
||||
| ir.cpp:2445:29:2445:53 | Address | &:r2445_5 |
|
||||
| ir.cpp:2445:29:2445:53 | Address | &:r2445_17 |
|
||||
| ir.cpp:2445:29:2445:53 | Arg(0) | 0:r2445_3 |
|
||||
| ir.cpp:2445:29:2445:53 | Arg(this) | this:r2445_5 |
|
||||
| ir.cpp:2445:29:2445:53 | CallTarget | func:r2445_2 |
|
||||
| ir.cpp:2445:29:2445:53 | CallTarget | func:r2445_6 |
|
||||
| ir.cpp:2445:29:2445:53 | ChiPartial | partial:m2445_13 |
|
||||
| ir.cpp:2445:29:2445:53 | ChiPartial | partial:m2445_15 |
|
||||
| ir.cpp:2445:29:2445:53 | ChiPartial | partial:m2445_18 |
|
||||
| ir.cpp:2445:29:2445:53 | ChiTotal | total:m2445_22 |
|
||||
| ir.cpp:2445:29:2445:53 | ChiTotal | total:m2445_25 |
|
||||
| ir.cpp:2445:29:2445:53 | ChiTotal | total:m2445_31 |
|
||||
| ir.cpp:2445:29:2445:53 | ChiTotal | total:m2445_31 |
|
||||
| ir.cpp:2445:29:2445:53 | ChiTotal | total:m2445_36 |
|
||||
| ir.cpp:2445:29:2445:53 | ChiTotal | total:m2445_39 |
|
||||
| ir.cpp:2445:29:2445:53 | ChiTotal | total:m2445_45 |
|
||||
| ir.cpp:2445:29:2445:53 | ChiTotal | total:m2445_45 |
|
||||
| ir.cpp:2445:29:2445:53 | SideEffect | ~m2445_31 |
|
||||
| ir.cpp:2445:29:2445:53 | SideEffect | ~m2445_31 |
|
||||
| ir.cpp:2445:29:2445:53 | SideEffect | ~m2445_45 |
|
||||
| ir.cpp:2445:29:2445:53 | SideEffect | ~m2445_45 |
|
||||
| ir.cpp:2445:29:2445:53 | StoreValue | r2445_5 |
|
||||
| ir.cpp:2445:29:2445:53 | Unary | r2445_17 |
|
||||
| ir.cpp:2445:52:2445:52 | Address | &:r2445_7 |
|
||||
| ir.cpp:2445:52:2445:52 | Address | &:r2445_7 |
|
||||
| ir.cpp:2445:52:2445:52 | Address | &:r2445_8 |
|
||||
| ir.cpp:2445:52:2445:52 | Address | &:r2445_27 |
|
||||
| ir.cpp:2445:52:2445:52 | Address | &:r2445_27 |
|
||||
| ir.cpp:2445:52:2445:52 | Address | &:r2445_41 |
|
||||
| ir.cpp:2445:52:2445:52 | Address | &:r2445_41 |
|
||||
| ir.cpp:2445:52:2445:52 | Arg(0) | 0:r2445_11 |
|
||||
| ir.cpp:2445:52:2445:52 | Arg(this) | this:r2445_27 |
|
||||
| ir.cpp:2445:52:2445:52 | Arg(this) | this:r2445_41 |
|
||||
| ir.cpp:2445:52:2445:52 | CallTarget | func:r2445_28 |
|
||||
| ir.cpp:2445:52:2445:52 | CallTarget | func:r2445_42 |
|
||||
| ir.cpp:2445:52:2445:52 | ChiPartial | partial:m2445_30 |
|
||||
| ir.cpp:2445:52:2445:52 | ChiPartial | partial:m2445_33 |
|
||||
| ir.cpp:2445:52:2445:52 | ChiPartial | partial:m2445_44 |
|
||||
| ir.cpp:2445:52:2445:52 | ChiPartial | partial:m2445_47 |
|
||||
| ir.cpp:2445:52:2445:52 | ChiTotal | total:m2445_21 |
|
||||
| ir.cpp:2445:52:2445:52 | ChiTotal | total:m2445_23 |
|
||||
| ir.cpp:2445:52:2445:52 | ChiTotal | total:m2445_24 |
|
||||
| ir.cpp:2445:52:2445:52 | ChiTotal | total:m2445_26 |
|
||||
| ir.cpp:2445:52:2445:52 | ChiTotal | total:m2445_35 |
|
||||
| ir.cpp:2445:52:2445:52 | ChiTotal | total:m2445_37 |
|
||||
| ir.cpp:2445:52:2445:52 | ChiTotal | total:m2445_38 |
|
||||
| ir.cpp:2445:52:2445:52 | ChiTotal | total:m2445_40 |
|
||||
| ir.cpp:2445:52:2445:52 | Load | m2443_6 |
|
||||
| ir.cpp:2445:52:2445:52 | Load | m2445_10 |
|
||||
| ir.cpp:2445:52:2445:52 | Phi | from 0:~m2443_4 |
|
||||
| ir.cpp:2445:52:2445:52 | Phi | from 2:m2445_10 |
|
||||
| ir.cpp:2445:52:2445:52 | Phi | from 2:m2445_16 |
|
||||
| ir.cpp:2445:52:2445:52 | Phi | from 2:~m2445_14 |
|
||||
| ir.cpp:2445:52:2445:52 | Phi | from 3:m2445_20 |
|
||||
| ir.cpp:2445:52:2445:52 | Phi | from 3:m2445_34 |
|
||||
| ir.cpp:2445:52:2445:52 | Phi | from 3:m2445_48 |
|
||||
| ir.cpp:2445:52:2445:52 | Phi | from 3:~m2445_19 |
|
||||
| ir.cpp:2445:52:2445:52 | SideEffect | m2445_21 |
|
||||
| ir.cpp:2445:52:2445:52 | SideEffect | m2445_24 |
|
||||
| ir.cpp:2445:52:2445:52 | SideEffect | m2445_35 |
|
||||
| ir.cpp:2445:52:2445:52 | SideEffect | m2445_38 |
|
||||
| ir.cpp:2445:52:2445:52 | SideEffect | ~m2445_23 |
|
||||
| ir.cpp:2445:52:2445:52 | SideEffect | ~m2445_26 |
|
||||
| ir.cpp:2445:52:2445:52 | SideEffect | ~m2445_37 |
|
||||
| ir.cpp:2445:52:2445:52 | SideEffect | ~m2445_40 |
|
||||
| ir.cpp:2445:52:2445:52 | StoreValue | r2445_9 |
|
||||
| ir.cpp:2445:52:2445:52 | Unary | r2445_7 |
|
||||
| perf-regression.cpp:6:3:6:5 | Address | &:r6_5 |
|
||||
| perf-regression.cpp:6:3:6:5 | Address | &:r6_5 |
|
||||
| perf-regression.cpp:6:3:6:5 | Address | &:r6_7 |
|
||||
|
||||
@@ -7,7 +7,27 @@ duplicateChiOperand
|
||||
sideEffectWithoutPrimary
|
||||
instructionWithoutSuccessor
|
||||
ambiguousSuccessors
|
||||
| ir.cpp:2445:52:2445:52 | IndirectMayWriteSideEffect: reuse of temporary object | Instruction 'IndirectMayWriteSideEffect: reuse of temporary object' has 3 successors of kind 'Goto' in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
unexplainedLoop
|
||||
| ir.cpp:2445:29:2445:53 | Call: call to ByValueConstructor | Instruction 'Call: call to ByValueConstructor' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:29:2445:53 | Call: new | Instruction 'Call: new' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:29:2445:53 | CallSideEffect: call to ByValueConstructor | Instruction 'CallSideEffect: call to ByValueConstructor' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:29:2445:53 | CallSideEffect: new | Instruction 'CallSideEffect: new' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:29:2445:53 | Convert: new | Instruction 'Convert: new' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:29:2445:53 | FunctionAddress: call to ByValueConstructor | Instruction 'FunctionAddress: call to ByValueConstructor' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:29:2445:53 | IndirectMayWriteSideEffect: call to ByValueConstructor | Instruction 'IndirectMayWriteSideEffect: call to ByValueConstructor' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:29:2445:53 | InitializeDynamicAllocation: new | Instruction 'InitializeDynamicAllocation: new' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | Call: call to ~ClassWithDestructor | Instruction 'Call: call to ~ClassWithDestructor' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | CallSideEffect: call to ~ClassWithDestructor | Instruction 'CallSideEffect: call to ~ClassWithDestructor' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | CopyValue: reuse of temporary object | Instruction 'CopyValue: reuse of temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | FunctionAddress: call to ~ClassWithDestructor | Instruction 'FunctionAddress: call to ~ClassWithDestructor' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | IndirectMayWriteSideEffect: reuse of temporary object | Instruction 'IndirectMayWriteSideEffect: reuse of temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | IndirectReadSideEffect: reuse of temporary object | Instruction 'IndirectReadSideEffect: reuse of temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | Load: a | Instruction 'Load: a' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | Load: temporary object | Instruction 'Load: temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | Store: a | Instruction 'Store: a' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | VariableAddress: a | Instruction 'VariableAddress: a' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | VariableAddress: temporary object | Instruction 'VariableAddress: temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
unnecessaryPhiInstruction
|
||||
memoryOperandDefinitionIsUnmodeled
|
||||
operandAcrossFunctions
|
||||
@@ -18,9 +38,15 @@ containsLoopOfForwardEdges
|
||||
missingIRType
|
||||
multipleIRTypes
|
||||
lostReachability
|
||||
| ir.cpp:2445:29:2445:53 | Call: new | Block 'Call: new' is not reachable by traversing only forward edges in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:29:2445:53 | Convert: new | Block 'Convert: new' is not reachable by traversing only forward edges in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:29:2445:53 | Store: new | Block 'Store: new' is not reachable by traversing only forward edges in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
backEdgeCountMismatch
|
||||
useNotDominatedByDefinition
|
||||
| ir.cpp:1535:8:1535:8 | Unary | Operand 'Unary' is not dominated by its definition in function '$@'. | ir.cpp:1535:8:1535:8 | void StructuredBindingDataMemberStruct::StructuredBindingDataMemberStruct() | void StructuredBindingDataMemberStruct::StructuredBindingDataMemberStruct() |
|
||||
| ir.cpp:2445:29:2445:53 | StoreValue | Operand 'StoreValue' is not dominated by its definition in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:29:2445:53 | Unary | Operand 'Unary' is not dominated by its definition in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | Unary | Operand 'Unary' is not dominated by its definition in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| try_except.c:13:13:13:13 | Left | Operand 'Left' is not dominated by its definition in function '$@'. | try_except.c:6:6:6:6 | void f() | void f() |
|
||||
| try_except.c:13:13:13:13 | Left | Operand 'Left' is not dominated by its definition in function '$@'. | try_except.c:6:6:6:6 | void f() | void f() |
|
||||
| try_except.c:39:15:39:15 | Left | Operand 'Left' is not dominated by its definition in function '$@'. | try_except.c:32:6:32:6 | void h(int) | void h(int) |
|
||||
|
||||
@@ -14720,6 +14720,63 @@ ir.cpp:
|
||||
# 2434| v2434_9(void) = Unwind :
|
||||
#-----| Goto -> Block 1
|
||||
|
||||
# 2443| void new_with_destructor(ClassWithDestructor)
|
||||
# 2443| Block 0
|
||||
# 2443| v2443_1(void) = EnterFunction :
|
||||
# 2443| mu2443_2(unknown) = AliasedDefinition :
|
||||
# 2443| mu2443_3(unknown) = InitializeNonLocal :
|
||||
# 2443| r2443_4(glval<ClassWithDestructor>) = VariableAddress[a] :
|
||||
# 2443| mu2443_5(ClassWithDestructor) = InitializeParameter[a] : &:r2443_4
|
||||
# 2445| r2445_1(glval<ByValueConstructor *>) = VariableAddress[b] :
|
||||
# 2445| r2445_2(glval<unknown>) = FunctionAddress[operator new] :
|
||||
# 2445| r2445_3(unsigned long) = Constant[1] :
|
||||
#-----| Goto -> Block 4
|
||||
#-----| Goto -> Block 4
|
||||
|
||||
# 2445| Block 1
|
||||
# 2445| mu2445_4(ByValueConstructor *) = Store[b] : &:r2445_1, r2445_5
|
||||
# 2446| v2446_1(void) = NoOp :
|
||||
# 2443| v2443_6(void) = ReturnVoid :
|
||||
# 2443| v2443_7(void) = AliasedUse : ~m?
|
||||
# 2443| v2443_8(void) = ExitFunction :
|
||||
|
||||
# 2445| Block 2
|
||||
# 2445| r2445_5(ByValueConstructor *) = Convert : r2445_15
|
||||
# 2445| r2445_6(glval<unknown>) = FunctionAddress[ByValueConstructor] :
|
||||
# 2445| r2445_7(glval<ClassWithDestructor>) = VariableAddress[#temp2445:52] :
|
||||
# 2445| r2445_8(glval<ClassWithDestructor>) = VariableAddress[a] :
|
||||
# 2445| r2445_9(ClassWithDestructor) = Load[a] : &:r2445_8, ~m?
|
||||
# 2445| mu2445_10(ClassWithDestructor) = Store[#temp2445:52] : &:r2445_7, r2445_9
|
||||
# 2445| r2445_11(ClassWithDestructor) = Load[#temp2445:52] : &:r2445_7, ~m?
|
||||
# 2445| v2445_12(void) = Call[ByValueConstructor] : func:r2445_6, this:r2445_5, 0:r2445_11
|
||||
# 2445| mu2445_13(unknown) = ^CallSideEffect : ~m?
|
||||
# 2445| mu2445_14(ByValueConstructor) = ^IndirectMayWriteSideEffect[-1] : &:r2445_5
|
||||
#-----| Goto (back edge) -> Block 4
|
||||
#-----| Goto (back edge) -> Block 4
|
||||
|
||||
# 2445| Block 3
|
||||
# 2445| r2445_15(void *) = Call[operator new] : func:r2445_2, 0:r2445_3
|
||||
# 2445| mu2445_16(unknown) = ^CallSideEffect : ~m?
|
||||
# 2445| mu2445_17(unknown) = ^InitializeDynamicAllocation : &:r2445_15
|
||||
#-----| Goto (back edge) -> Block 4
|
||||
#-----| Goto (back edge) -> Block 4
|
||||
|
||||
# 2445| Block 4
|
||||
# 2445| r2445_24(glval<ClassWithDestructor>) = CopyValue : r2445_7
|
||||
# 2445| r2445_25(glval<unknown>) = FunctionAddress[~ClassWithDestructor] :
|
||||
# 2445| v2445_26(void) = Call[~ClassWithDestructor] : func:r2445_19, func:r2445_25, this:r2445_18, this:r2445_24
|
||||
# 2445| mu2445_27(unknown) = ^CallSideEffect : ~m?
|
||||
# 2445| v2445_28(void) = ^IndirectReadSideEffect[-1] : &:r2445_18, &:r2445_24, ~m?
|
||||
# 2445| mu2445_29(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2445_18, &:r2445_24
|
||||
#-----| Goto (back edge) -> Block 2
|
||||
#-----| Goto (back edge) -> Block 3
|
||||
#-----| Goto (back edge) -> Block 1
|
||||
|
||||
# 2445| Block 4
|
||||
#-----| Goto (back edge) -> Block 2
|
||||
#-----| Goto (back edge) -> Block 3
|
||||
#-----| Goto (back edge) -> Block 1
|
||||
|
||||
perf-regression.cpp:
|
||||
# 6| void Big::Big()
|
||||
# 6| Block 0
|
||||
|
||||
@@ -7,7 +7,27 @@ duplicateChiOperand
|
||||
sideEffectWithoutPrimary
|
||||
instructionWithoutSuccessor
|
||||
ambiguousSuccessors
|
||||
| ir.cpp:2445:52:2445:52 | IndirectMayWriteSideEffect: reuse of temporary object | Instruction 'IndirectMayWriteSideEffect: reuse of temporary object' has 3 successors of kind 'Goto' in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
unexplainedLoop
|
||||
| ir.cpp:2445:29:2445:53 | Call: call to ByValueConstructor | Instruction 'Call: call to ByValueConstructor' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:29:2445:53 | Call: new | Instruction 'Call: new' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:29:2445:53 | CallSideEffect: call to ByValueConstructor | Instruction 'CallSideEffect: call to ByValueConstructor' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:29:2445:53 | CallSideEffect: new | Instruction 'CallSideEffect: new' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:29:2445:53 | Convert: new | Instruction 'Convert: new' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:29:2445:53 | FunctionAddress: call to ByValueConstructor | Instruction 'FunctionAddress: call to ByValueConstructor' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:29:2445:53 | IndirectMayWriteSideEffect: call to ByValueConstructor | Instruction 'IndirectMayWriteSideEffect: call to ByValueConstructor' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:29:2445:53 | InitializeDynamicAllocation: new | Instruction 'InitializeDynamicAllocation: new' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | Call: call to ~ClassWithDestructor | Instruction 'Call: call to ~ClassWithDestructor' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | CallSideEffect: call to ~ClassWithDestructor | Instruction 'CallSideEffect: call to ~ClassWithDestructor' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | CopyValue: reuse of temporary object | Instruction 'CopyValue: reuse of temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | FunctionAddress: call to ~ClassWithDestructor | Instruction 'FunctionAddress: call to ~ClassWithDestructor' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | IndirectMayWriteSideEffect: reuse of temporary object | Instruction 'IndirectMayWriteSideEffect: reuse of temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | IndirectReadSideEffect: reuse of temporary object | Instruction 'IndirectReadSideEffect: reuse of temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | Load: a | Instruction 'Load: a' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | Load: temporary object | Instruction 'Load: temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | Store: a | Instruction 'Store: a' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | VariableAddress: a | Instruction 'VariableAddress: a' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | VariableAddress: temporary object | Instruction 'VariableAddress: temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
unnecessaryPhiInstruction
|
||||
memoryOperandDefinitionIsUnmodeled
|
||||
operandAcrossFunctions
|
||||
@@ -18,8 +38,14 @@ containsLoopOfForwardEdges
|
||||
missingIRType
|
||||
multipleIRTypes
|
||||
lostReachability
|
||||
| ir.cpp:2445:29:2445:53 | Call: new | Block 'Call: new' is not reachable by traversing only forward edges in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:29:2445:53 | Convert: new | Block 'Convert: new' is not reachable by traversing only forward edges in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:29:2445:53 | Store: new | Block 'Store: new' is not reachable by traversing only forward edges in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
backEdgeCountMismatch
|
||||
useNotDominatedByDefinition
|
||||
| ir.cpp:2445:29:2445:53 | StoreValue | Operand 'StoreValue' is not dominated by its definition in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:29:2445:53 | Unary | Operand 'Unary' is not dominated by its definition in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | Unary | Operand 'Unary' is not dominated by its definition in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
switchInstructionWithoutDefaultEdge
|
||||
notMarkedAsConflated
|
||||
wronglyMarkedAsConflated
|
||||
|
||||
@@ -7,7 +7,27 @@ duplicateChiOperand
|
||||
sideEffectWithoutPrimary
|
||||
instructionWithoutSuccessor
|
||||
ambiguousSuccessors
|
||||
| ir.cpp:2445:52:2445:52 | IndirectMayWriteSideEffect: reuse of temporary object | Instruction 'IndirectMayWriteSideEffect: reuse of temporary object' has 3 successors of kind 'Goto' in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
unexplainedLoop
|
||||
| ir.cpp:2445:29:2445:53 | Call: call to ByValueConstructor | Instruction 'Call: call to ByValueConstructor' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:29:2445:53 | Call: new | Instruction 'Call: new' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:29:2445:53 | CallSideEffect: call to ByValueConstructor | Instruction 'CallSideEffect: call to ByValueConstructor' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:29:2445:53 | CallSideEffect: new | Instruction 'CallSideEffect: new' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:29:2445:53 | Convert: new | Instruction 'Convert: new' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:29:2445:53 | FunctionAddress: call to ByValueConstructor | Instruction 'FunctionAddress: call to ByValueConstructor' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:29:2445:53 | IndirectMayWriteSideEffect: call to ByValueConstructor | Instruction 'IndirectMayWriteSideEffect: call to ByValueConstructor' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:29:2445:53 | InitializeDynamicAllocation: new | Instruction 'InitializeDynamicAllocation: new' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | Call: call to ~ClassWithDestructor | Instruction 'Call: call to ~ClassWithDestructor' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | CallSideEffect: call to ~ClassWithDestructor | Instruction 'CallSideEffect: call to ~ClassWithDestructor' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | CopyValue: reuse of temporary object | Instruction 'CopyValue: reuse of temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | FunctionAddress: call to ~ClassWithDestructor | Instruction 'FunctionAddress: call to ~ClassWithDestructor' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | IndirectMayWriteSideEffect: reuse of temporary object | Instruction 'IndirectMayWriteSideEffect: reuse of temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | IndirectReadSideEffect: reuse of temporary object | Instruction 'IndirectReadSideEffect: reuse of temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | Load: a | Instruction 'Load: a' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | Load: temporary object | Instruction 'Load: temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | Store: a | Instruction 'Store: a' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | VariableAddress: a | Instruction 'VariableAddress: a' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | VariableAddress: temporary object | Instruction 'VariableAddress: temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
unnecessaryPhiInstruction
|
||||
memoryOperandDefinitionIsUnmodeled
|
||||
operandAcrossFunctions
|
||||
@@ -18,8 +38,14 @@ containsLoopOfForwardEdges
|
||||
missingIRType
|
||||
multipleIRTypes
|
||||
lostReachability
|
||||
| ir.cpp:2445:29:2445:53 | Call: new | Block 'Call: new' is not reachable by traversing only forward edges in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:29:2445:53 | Convert: new | Block 'Convert: new' is not reachable by traversing only forward edges in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:29:2445:53 | Store: new | Block 'Store: new' is not reachable by traversing only forward edges in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
backEdgeCountMismatch
|
||||
useNotDominatedByDefinition
|
||||
| ir.cpp:2445:29:2445:53 | StoreValue | Operand 'StoreValue' is not dominated by its definition in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:29:2445:53 | Unary | Operand 'Unary' is not dominated by its definition in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
| ir.cpp:2445:52:2445:52 | Unary | Operand 'Unary' is not dominated by its definition in function '$@'. | ir.cpp:2443:6:2443:24 | void new_with_destructor(ClassWithDestructor) | void new_with_destructor(ClassWithDestructor) |
|
||||
switchInstructionWithoutDefaultEdge
|
||||
notMarkedAsConflated
|
||||
wronglyMarkedAsConflated
|
||||
|
||||
Reference in New Issue
Block a user