mirror of
https://github.com/github/codeql.git
synced 2026-04-30 11:15:13 +02:00
C++: Add more lambda capture IR tests
This commit is contained in:
@@ -13091,6 +13091,214 @@ ir.cpp:
|
||||
# 1696| getExpr(): [VariableAccess] x
|
||||
# 1696| Type = [IntType] int
|
||||
# 1696| ValueCategory = prvalue(load)
|
||||
# 1699| [CopyAssignmentOperator] TrivialLambdaClass& TrivialLambdaClass::operator=(TrivialLambdaClass const&)
|
||||
# 1699| <params>:
|
||||
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
|
||||
#-----| Type = [LValueReferenceType] const TrivialLambdaClass &
|
||||
# 1699| [MoveAssignmentOperator] TrivialLambdaClass& TrivialLambdaClass::operator=(TrivialLambdaClass&&)
|
||||
# 1699| <params>:
|
||||
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
|
||||
#-----| Type = [RValueReferenceType] TrivialLambdaClass &&
|
||||
# 1701| [ConstMemberFunction] void TrivialLambdaClass::m() const
|
||||
# 1701| <params>:
|
||||
# 1701| getEntryPoint(): [BlockStmt] { ... }
|
||||
# 1702| getStmt(0): [DeclStmt] declaration
|
||||
# 1702| getDeclarationEntry(0): [VariableDeclarationEntry] definition of l_m_outer
|
||||
# 1702| Type = [Closure,LocalClass] decltype([...](...){...})
|
||||
# 1702| getVariable().getInitializer(): [Initializer] initializer for l_m_outer
|
||||
# 1702| getExpr(): [LambdaExpression] [...](...){...}
|
||||
# 1702| Type = [Closure,LocalClass] decltype([...](...){...})
|
||||
# 1702| ValueCategory = prvalue
|
||||
# 1702| getInitializer(): [ClassAggregateLiteral] {...}
|
||||
# 1702| Type = [Closure,LocalClass] decltype([...](...){...})
|
||||
# 1702| ValueCategory = prvalue
|
||||
# 1702| getFieldExpr((captured this)): [Literal] Unknown literal
|
||||
# 1702| Type = [SpecifiedType] const TrivialLambdaClass
|
||||
# 1702| ValueCategory = prvalue
|
||||
# 1709| getStmt(1): [ReturnStmt] return ...
|
||||
# 1702| [CopyAssignmentOperator] (void TrivialLambdaClass::m() const)::(lambda [] type at line 1702, col. 26)& (void TrivialLambdaClass::m() const)::(lambda [] type at line 1702, col. 26)::operator=((void TrivialLambdaClass::m() const)::(lambda [] type at line 1702, col. 26) const&)
|
||||
# 1702| <params>:
|
||||
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
|
||||
#-----| Type = [LValueReferenceType] const lambda [] type at line 1702, col. 26 &
|
||||
# 1702| [CopyConstructor] void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1702, col. 26)::(unnamed constructor)((void TrivialLambdaClass::m() const)::(lambda [] type at line 1702, col. 26) const&)
|
||||
# 1702| <params>:
|
||||
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
|
||||
#-----| Type = [LValueReferenceType] const lambda [] type at line 1702, col. 26 &
|
||||
# 1702| [MoveConstructor] void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1702, col. 26)::(unnamed constructor)((void TrivialLambdaClass::m() const)::(lambda [] type at line 1702, col. 26)&&)
|
||||
# 1702| <params>:
|
||||
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
|
||||
#-----| Type = [RValueReferenceType] lambda [] type at line 1702, col. 26 &&
|
||||
# 1702| [Constructor] void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1702, col. 26)::(unnamed constructor)()
|
||||
# 1702| <params>:
|
||||
# 1702| [ConstMemberFunction] void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1702, col. 26)::operator()() const
|
||||
# 1702| <params>:
|
||||
# 1702| getEntryPoint(): [BlockStmt] { ... }
|
||||
# 1703| getStmt(0): [ExprStmt] ExprStmt
|
||||
# 1703| getExpr(): [FunctionCall] call to m
|
||||
# 1703| Type = [VoidType] void
|
||||
# 1703| ValueCategory = prvalue
|
||||
# 1703| getQualifier(): [AddressOfExpr] & ...
|
||||
# 1703| Type = [PointerType] const TrivialLambdaClass *
|
||||
# 1703| ValueCategory = prvalue
|
||||
# 1703| getOperand(): [PointerFieldAccess] (captured this)
|
||||
# 1703| Type = [SpecifiedType] const TrivialLambdaClass
|
||||
# 1703| ValueCategory = lvalue
|
||||
# 1703| getQualifier(): [ThisExpr] this
|
||||
# 1703| Type = [PointerType] const lambda [] type at line 1702, col. 26 *
|
||||
# 1703| ValueCategory = prvalue(load)
|
||||
# 1705| getStmt(1): [DeclStmt] declaration
|
||||
# 1705| getDeclarationEntry(0): [VariableDeclarationEntry] definition of l_m_inner
|
||||
# 1705| Type = [Closure,LocalClass] decltype([...](...){...})
|
||||
# 1705| getVariable().getInitializer(): [Initializer] initializer for l_m_inner
|
||||
# 1705| getExpr(): [LambdaExpression] [...](...){...}
|
||||
# 1705| Type = [Closure,LocalClass] decltype([...](...){...})
|
||||
# 1705| ValueCategory = prvalue
|
||||
# 1705| getInitializer(): [ClassAggregateLiteral] {...}
|
||||
# 1705| Type = [Closure,LocalClass] decltype([...](...){...})
|
||||
# 1705| ValueCategory = prvalue
|
||||
# 1705| getFieldExpr((captured this)): [Literal] Unknown literal
|
||||
# 1705| Type = [SpecifiedType] const TrivialLambdaClass
|
||||
# 1705| ValueCategory = prvalue
|
||||
# 1708| getStmt(2): [ReturnStmt] return ...
|
||||
# 1705| [CopyAssignmentOperator] (void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1702, col. 26)::operator()() const)::(lambda [] type at line 1705, col. 30)& (void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1702, col. 26)::operator()() const)::(lambda [] type at line 1705, col. 30)::operator=((void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1702, col. 26)::operator()() const)::(lambda [] type at line 1705, col. 30) const&)
|
||||
# 1705| <params>:
|
||||
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
|
||||
#-----| Type = [LValueReferenceType] const lambda [] type at line 1705, col. 30 &
|
||||
# 1705| [CopyConstructor] void (void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1702, col. 26)::operator()() const)::(lambda [] type at line 1705, col. 30)::(unnamed constructor)((void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1702, col. 26)::operator()() const)::(lambda [] type at line 1705, col. 30) const&)
|
||||
# 1705| <params>:
|
||||
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
|
||||
#-----| Type = [LValueReferenceType] const lambda [] type at line 1705, col. 30 &
|
||||
# 1705| [MoveConstructor] void (void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1702, col. 26)::operator()() const)::(lambda [] type at line 1705, col. 30)::(unnamed constructor)((void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1702, col. 26)::operator()() const)::(lambda [] type at line 1705, col. 30)&&)
|
||||
# 1705| <params>:
|
||||
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
|
||||
#-----| Type = [RValueReferenceType] lambda [] type at line 1705, col. 30 &&
|
||||
# 1705| [Constructor] void (void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1702, col. 26)::operator()() const)::(lambda [] type at line 1705, col. 30)::(unnamed constructor)()
|
||||
# 1705| <params>:
|
||||
# 1705| [ConstMemberFunction] void (void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1702, col. 26)::operator()() const)::(lambda [] type at line 1705, col. 30)::operator()() const
|
||||
# 1705| <params>:
|
||||
# 1705| getEntryPoint(): [BlockStmt] { ... }
|
||||
# 1706| getStmt(0): [ExprStmt] ExprStmt
|
||||
# 1706| getExpr(): [FunctionCall] call to m
|
||||
# 1706| Type = [VoidType] void
|
||||
# 1706| ValueCategory = prvalue
|
||||
# 1706| getQualifier(): [AddressOfExpr] & ...
|
||||
# 1706| Type = [PointerType] const TrivialLambdaClass *
|
||||
# 1706| ValueCategory = prvalue
|
||||
# 1706| getOperand(): [PointerFieldAccess] (captured this)
|
||||
# 1706| Type = [SpecifiedType] const TrivialLambdaClass
|
||||
# 1706| ValueCategory = lvalue
|
||||
# 1706| getQualifier(): [ThisExpr] this
|
||||
# 1706| Type = [PointerType] const lambda [] type at line 1705, col. 30 *
|
||||
# 1706| ValueCategory = prvalue(load)
|
||||
# 1707| getStmt(1): [ReturnStmt] return ...
|
||||
# 1712| [TopLevelFunction] void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&)
|
||||
# 1712| <params>:
|
||||
# 1712| getParameter(0): [Parameter] p1
|
||||
# 1712| Type = [Class] TrivialLambdaClass
|
||||
# 1712| getParameter(1): [Parameter] p2
|
||||
# 1712| Type = [LValueReferenceType] TrivialLambdaClass &
|
||||
# 1712| getParameter(2): [Parameter] p3
|
||||
# 1712| Type = [RValueReferenceType] TrivialLambdaClass &&
|
||||
# 1712| getEntryPoint(): [BlockStmt] { ... }
|
||||
# 1713| getStmt(0): [DeclStmt] declaration
|
||||
# 1713| getDeclarationEntry(0): [VariableDeclarationEntry] definition of l1
|
||||
# 1713| Type = [SpecifiedType] const TrivialLambdaClass
|
||||
# 1714| getStmt(1): [DeclStmt] declaration
|
||||
# 1714| getDeclarationEntry(0): [VariableDeclarationEntry] definition of l2
|
||||
# 1714| Type = [LValueReferenceType] const TrivialLambdaClass &
|
||||
# 1714| getVariable().getInitializer(): [Initializer] initializer for l2
|
||||
# 1714| getExpr(): [Literal] 0
|
||||
# 1714| Type = [Class] TrivialLambdaClass
|
||||
# 1714| Value = [Literal] 0
|
||||
# 1714| ValueCategory = prvalue
|
||||
# 1714| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to)
|
||||
# 1714| Type = [LValueReferenceType] const TrivialLambdaClass &
|
||||
# 1714| ValueCategory = prvalue
|
||||
# 1714| getExpr(): [CStyleCast] (const TrivialLambdaClass)...
|
||||
# 1714| Conversion = [GlvalueConversion] glvalue conversion
|
||||
# 1714| Type = [SpecifiedType] const TrivialLambdaClass
|
||||
# 1714| ValueCategory = lvalue
|
||||
# 1714| getExpr(): [TemporaryObjectExpr] temporary object
|
||||
# 1714| Type = [Class] TrivialLambdaClass
|
||||
# 1714| ValueCategory = lvalue
|
||||
# 1714| getExpr(): [TemporaryObjectExpr] temporary object
|
||||
# 1714| Type = [Class] TrivialLambdaClass
|
||||
# 1714| ValueCategory = prvalue(load)
|
||||
# 1716| getStmt(2): [DeclStmt] declaration
|
||||
# 1716| getDeclarationEntry(0): [VariableDeclarationEntry] definition of l_outer1
|
||||
# 1716| Type = [Closure,LocalClass] decltype([...](...){...})
|
||||
# 1716| getVariable().getInitializer(): [Initializer] initializer for l_outer1
|
||||
# 1716| getExpr(): [LambdaExpression] [...](...){...}
|
||||
# 1716| Type = [Closure,LocalClass] decltype([...](...){...})
|
||||
# 1716| ValueCategory = prvalue
|
||||
# 1716| getInitializer(): [ClassAggregateLiteral] {...}
|
||||
# 1716| Type = [Closure,LocalClass] decltype([...](...){...})
|
||||
# 1716| ValueCategory = prvalue
|
||||
# 1716| getFieldExpr(p1): [Literal] Unknown literal
|
||||
# 1716| Type = [Class] TrivialLambdaClass
|
||||
# 1716| ValueCategory = prvalue
|
||||
# 1716| getFieldExpr(p2): [Literal] Unknown literal
|
||||
# 1716| Type = [Class] TrivialLambdaClass
|
||||
# 1716| ValueCategory = prvalue
|
||||
# 1716| getFieldExpr(p3): [Literal] Unknown literal
|
||||
# 1716| Type = [Class] TrivialLambdaClass
|
||||
# 1716| ValueCategory = prvalue
|
||||
# 1716| getFieldExpr(l1): [Literal] Unknown literal
|
||||
# 1716| Type = [SpecifiedType] const TrivialLambdaClass
|
||||
# 1716| ValueCategory = prvalue
|
||||
# 1716| getFieldExpr(l2): [Literal] Unknown literal
|
||||
# 1716| Type = [SpecifiedType] const TrivialLambdaClass
|
||||
# 1716| ValueCategory = prvalue
|
||||
# 1719| getStmt(3): [ReturnStmt] return ...
|
||||
# 1716| [CopyAssignmentOperator] (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1716, col. 21)& (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1716, col. 21)::operator=((void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1716, col. 21) const&)
|
||||
# 1716| <params>:
|
||||
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
|
||||
#-----| Type = [LValueReferenceType] const lambda [] type at line 1716, col. 21 &
|
||||
# 1716| [CopyConstructor] void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1716, col. 21)::(unnamed constructor)((void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1716, col. 21) const&)
|
||||
# 1716| <params>:
|
||||
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
|
||||
#-----| Type = [LValueReferenceType] const lambda [] type at line 1716, col. 21 &
|
||||
# 1716| [MoveConstructor] void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1716, col. 21)::(unnamed constructor)((void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1716, col. 21)&&)
|
||||
# 1716| <params>:
|
||||
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
|
||||
#-----| Type = [RValueReferenceType] lambda [] type at line 1716, col. 21 &&
|
||||
# 1716| [Constructor] void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1716, col. 21)::(unnamed constructor)()
|
||||
# 1716| <params>:
|
||||
# 1716| [ConstMemberFunction] void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1716, col. 21)::operator()() const
|
||||
# 1716| <params>:
|
||||
# 1716| getEntryPoint(): [BlockStmt] { ... }
|
||||
# 1717| getStmt(0): [DeclStmt] declaration
|
||||
# 1717| getDeclarationEntry(0): [VariableDeclarationEntry] definition of l_inner1
|
||||
# 1717| Type = [Closure,LocalClass] decltype([...](...){...})
|
||||
# 1717| getVariable().getInitializer(): [Initializer] initializer for l_inner1
|
||||
# 1717| getExpr(): [LambdaExpression] [...](...){...}
|
||||
# 1717| Type = [Closure,LocalClass] decltype([...](...){...})
|
||||
# 1717| ValueCategory = prvalue
|
||||
# 1717| getInitializer(): [ClassAggregateLiteral] {...}
|
||||
# 1717| Type = [Closure,LocalClass] decltype([...](...){...})
|
||||
# 1717| ValueCategory = prvalue
|
||||
# 1717| getFieldExpr(p1): [Literal] Unknown literal
|
||||
# 1717| Type = [Class] TrivialLambdaClass
|
||||
# 1717| ValueCategory = prvalue
|
||||
# 1718| getStmt(1): [ReturnStmt] return ...
|
||||
# 1717| [CopyAssignmentOperator] (void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1716, col. 21)::operator()() const)::(lambda [] type at line 1717, col. 25)& (void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1716, col. 21)::operator()() const)::(lambda [] type at line 1717, col. 25)::operator=((void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1716, col. 21)::operator()() const)::(lambda [] type at line 1717, col. 25) const&)
|
||||
# 1717| <params>:
|
||||
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
|
||||
#-----| Type = [LValueReferenceType] const lambda [] type at line 1717, col. 25 &
|
||||
# 1717| [CopyConstructor] void (void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1716, col. 21)::operator()() const)::(lambda [] type at line 1717, col. 25)::(unnamed constructor)((void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1716, col. 21)::operator()() const)::(lambda [] type at line 1717, col. 25) const&)
|
||||
# 1717| <params>:
|
||||
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
|
||||
#-----| Type = [LValueReferenceType] const lambda [] type at line 1717, col. 25 &
|
||||
# 1717| [MoveConstructor] void (void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1716, col. 21)::operator()() const)::(lambda [] type at line 1717, col. 25)::(unnamed constructor)((void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1716, col. 21)::operator()() const)::(lambda [] type at line 1717, col. 25)&&)
|
||||
# 1717| <params>:
|
||||
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
|
||||
#-----| Type = [RValueReferenceType] lambda [] type at line 1717, col. 25 &&
|
||||
# 1717| [Constructor] void (void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1716, col. 21)::operator()() const)::(lambda [] type at line 1717, col. 25)::(unnamed constructor)()
|
||||
# 1717| <params>:
|
||||
# 1717| [ConstMemberFunction] void (void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1716, col. 21)::operator()() const)::(lambda [] type at line 1717, col. 25)::operator()() const
|
||||
# 1717| <params>:
|
||||
# 1717| getEntryPoint(): [BlockStmt] { ... }
|
||||
# 1717| getStmt(0): [ReturnStmt] return ...
|
||||
perf-regression.cpp:
|
||||
# 4| [CopyAssignmentOperator] Big& Big::operator=(Big const&)
|
||||
# 4| <params>:
|
||||
|
||||
@@ -8,6 +8,10 @@ sideEffectWithoutPrimary
|
||||
instructionWithoutSuccessor
|
||||
| ir.cpp:1688:24:1690:5 | FieldAddress: {...} | Instruction 'FieldAddress: {...}' has no successors in function '$@'. | ir.cpp:1683:6:1683:20 | void captured_lambda(int, int&, int&&) | void captured_lambda(int, int&, int&&) |
|
||||
| ir.cpp:1689:28:1689:54 | FieldAddress: {...} | Instruction 'FieldAddress: {...}' has no successors in function '$@'. | ir.cpp:1688:46:1688:46 | void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1688, col. 25)::operator()() const | void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1688, col. 25)::operator()() const |
|
||||
| ir.cpp:1702:25:1708:9 | FieldAddress: {...} | Instruction 'FieldAddress: {...}' has no successors in function '$@'. | ir.cpp:1701:10:1701:10 | void TrivialLambdaClass::m() const | void TrivialLambdaClass::m() const |
|
||||
| ir.cpp:1705:29:1707:13 | FieldAddress: {...} | Instruction 'FieldAddress: {...}' has no successors in function '$@'. | ir.cpp:1702:34:1702:34 | void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1702, col. 26)::operator()() const | void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1702, col. 26)::operator()() const |
|
||||
| ir.cpp:1716:20:1718:5 | FieldAddress: {...} | Instruction 'FieldAddress: {...}' has no successors in function '$@'. | ir.cpp:1712:6:1712:21 | void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) | void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) |
|
||||
| ir.cpp:1717:24:1717:31 | FieldAddress: {...} | Instruction 'FieldAddress: {...}' has no successors in function '$@'. | ir.cpp:1716:42:1716:42 | void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1716, col. 21)::operator()() const | void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1716, col. 21)::operator()() const |
|
||||
ambiguousSuccessors
|
||||
unexplainedLoop
|
||||
unnecessaryPhiInstruction
|
||||
|
||||
@@ -8,6 +8,10 @@ sideEffectWithoutPrimary
|
||||
instructionWithoutSuccessor
|
||||
| ir.cpp:1688:24:1690:5 | FieldAddress: {...} | Instruction 'FieldAddress: {...}' has no successors in function '$@'. | ir.cpp:1683:6:1683:20 | void captured_lambda(int, int&, int&&) | void captured_lambda(int, int&, int&&) |
|
||||
| ir.cpp:1689:28:1689:54 | FieldAddress: {...} | Instruction 'FieldAddress: {...}' has no successors in function '$@'. | ir.cpp:1688:46:1688:46 | void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1688, col. 25)::operator()() const | void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1688, col. 25)::operator()() const |
|
||||
| ir.cpp:1702:25:1708:9 | FieldAddress: {...} | Instruction 'FieldAddress: {...}' has no successors in function '$@'. | ir.cpp:1701:10:1701:10 | void TrivialLambdaClass::m() const | void TrivialLambdaClass::m() const |
|
||||
| ir.cpp:1705:29:1707:13 | FieldAddress: {...} | Instruction 'FieldAddress: {...}' has no successors in function '$@'. | ir.cpp:1702:34:1702:34 | void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1702, col. 26)::operator()() const | void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1702, col. 26)::operator()() const |
|
||||
| ir.cpp:1716:20:1718:5 | FieldAddress: {...} | Instruction 'FieldAddress: {...}' has no successors in function '$@'. | ir.cpp:1712:6:1712:21 | void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) | void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) |
|
||||
| ir.cpp:1717:24:1717:31 | FieldAddress: {...} | Instruction 'FieldAddress: {...}' has no successors in function '$@'. | ir.cpp:1716:42:1716:42 | void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1716, col. 21)::operator()() const | void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1716, col. 21)::operator()() const |
|
||||
ambiguousSuccessors
|
||||
unexplainedLoop
|
||||
unnecessaryPhiInstruction
|
||||
|
||||
@@ -1696,4 +1696,26 @@ int goto_on_same_line() {
|
||||
return x;
|
||||
}
|
||||
|
||||
class TrivialLambdaClass {
|
||||
public:
|
||||
void m() const {
|
||||
auto l_m_outer = [*this] {
|
||||
m();
|
||||
|
||||
auto l_m_inner = [*this] {
|
||||
m();
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
void captured_lambda2(TrivialLambdaClass p1, TrivialLambdaClass &p2, TrivialLambdaClass &&p3) {
|
||||
const TrivialLambdaClass l1;
|
||||
const TrivialLambdaClass &l2 = TrivialLambdaClass();
|
||||
|
||||
auto l_outer1 = [p1, p2, p3, l1, l2] {
|
||||
auto l_inner1 = [p1] {};
|
||||
};
|
||||
}
|
||||
|
||||
// semmle-extractor-options: -std=c++17 --clang
|
||||
|
||||
@@ -7713,6 +7713,94 @@
|
||||
| ir.cpp:1696:10:1696:10 | Address | &:r1696_2 |
|
||||
| ir.cpp:1696:10:1696:10 | Load | m1694_3 |
|
||||
| ir.cpp:1696:10:1696:10 | StoreValue | r1696_3 |
|
||||
| ir.cpp:1701:10:1701:10 | Address | &:r1701_5 |
|
||||
| ir.cpp:1701:10:1701:10 | Address | &:r1701_5 |
|
||||
| ir.cpp:1701:10:1701:10 | Address | &:r1701_7 |
|
||||
| ir.cpp:1701:10:1701:10 | ChiPartial | partial:m1701_3 |
|
||||
| ir.cpp:1701:10:1701:10 | ChiTotal | total:m1701_2 |
|
||||
| ir.cpp:1701:10:1701:10 | Load | m1701_6 |
|
||||
| ir.cpp:1702:25:1708:9 | Address | &:r1702_2 |
|
||||
| ir.cpp:1702:25:1708:9 | Unary | r1702_2 |
|
||||
| ir.cpp:1702:34:1702:34 | Address | &:r1702_5 |
|
||||
| ir.cpp:1702:34:1702:34 | Address | &:r1702_5 |
|
||||
| ir.cpp:1702:34:1702:34 | Address | &:r1702_7 |
|
||||
| ir.cpp:1702:34:1702:34 | ChiPartial | partial:m1702_3 |
|
||||
| ir.cpp:1702:34:1702:34 | ChiTotal | total:m1702_2 |
|
||||
| ir.cpp:1702:34:1702:34 | Load | m1702_6 |
|
||||
| ir.cpp:1703:13:1703:13 | Address | &:r1703_1 |
|
||||
| ir.cpp:1703:13:1703:13 | Address | &:r1703_4 |
|
||||
| ir.cpp:1703:13:1703:13 | Arg(this) | this:r1703_4 |
|
||||
| ir.cpp:1703:13:1703:13 | CallTarget | func:r1703_5 |
|
||||
| ir.cpp:1703:13:1703:13 | ChiPartial | partial:m1703_7 |
|
||||
| ir.cpp:1703:13:1703:13 | ChiTotal | total:m1702_4 |
|
||||
| ir.cpp:1703:13:1703:13 | Load | m1702_6 |
|
||||
| ir.cpp:1703:13:1703:13 | SideEffect | ~m1702_4 |
|
||||
| ir.cpp:1703:13:1703:13 | SideEffect | ~m1702_8 |
|
||||
| ir.cpp:1703:13:1703:13 | Unary | r1703_2 |
|
||||
| ir.cpp:1703:13:1703:13 | Unary | r1703_3 |
|
||||
| ir.cpp:1705:29:1707:13 | Address | &:r1705_2 |
|
||||
| ir.cpp:1705:29:1707:13 | Unary | r1705_2 |
|
||||
| ir.cpp:1705:38:1705:38 | Address | &:r1705_5 |
|
||||
| ir.cpp:1705:38:1705:38 | Address | &:r1705_5 |
|
||||
| ir.cpp:1705:38:1705:38 | Address | &:r1705_7 |
|
||||
| ir.cpp:1705:38:1705:38 | Address | &:r1705_7 |
|
||||
| ir.cpp:1705:38:1705:38 | ChiPartial | partial:m1705_3 |
|
||||
| ir.cpp:1705:38:1705:38 | ChiTotal | total:m1705_2 |
|
||||
| ir.cpp:1705:38:1705:38 | Load | m1705_6 |
|
||||
| ir.cpp:1705:38:1705:38 | SideEffect | m1705_8 |
|
||||
| ir.cpp:1705:38:1705:38 | SideEffect | ~m1706_8 |
|
||||
| ir.cpp:1706:17:1706:17 | Address | &:r1706_1 |
|
||||
| ir.cpp:1706:17:1706:17 | Address | &:r1706_4 |
|
||||
| ir.cpp:1706:17:1706:17 | Arg(this) | this:r1706_4 |
|
||||
| ir.cpp:1706:17:1706:17 | CallTarget | func:r1706_5 |
|
||||
| ir.cpp:1706:17:1706:17 | ChiPartial | partial:m1706_7 |
|
||||
| ir.cpp:1706:17:1706:17 | ChiTotal | total:m1705_4 |
|
||||
| ir.cpp:1706:17:1706:17 | Load | m1705_6 |
|
||||
| ir.cpp:1706:17:1706:17 | SideEffect | ~m1705_4 |
|
||||
| ir.cpp:1706:17:1706:17 | SideEffect | ~m1705_8 |
|
||||
| ir.cpp:1706:17:1706:17 | Unary | r1706_2 |
|
||||
| ir.cpp:1706:17:1706:17 | Unary | r1706_3 |
|
||||
| ir.cpp:1712:6:1712:21 | ChiPartial | partial:m1712_3 |
|
||||
| ir.cpp:1712:6:1712:21 | ChiTotal | total:m1712_2 |
|
||||
| ir.cpp:1712:42:1712:43 | Address | &:r1712_5 |
|
||||
| ir.cpp:1712:66:1712:67 | Address | &:r1712_7 |
|
||||
| ir.cpp:1712:66:1712:67 | Address | &:r1712_7 |
|
||||
| ir.cpp:1712:66:1712:67 | Address | &:r1712_9 |
|
||||
| ir.cpp:1712:66:1712:67 | Load | m1712_8 |
|
||||
| ir.cpp:1712:91:1712:92 | Address | &:r1712_11 |
|
||||
| ir.cpp:1712:91:1712:92 | Address | &:r1712_11 |
|
||||
| ir.cpp:1712:91:1712:92 | Address | &:r1712_13 |
|
||||
| ir.cpp:1712:91:1712:92 | Load | m1712_12 |
|
||||
| ir.cpp:1713:30:1713:31 | Address | &:r1713_1 |
|
||||
| ir.cpp:1714:31:1714:32 | Address | &:r1714_1 |
|
||||
| ir.cpp:1714:36:1714:55 | Address | &:r1714_2 |
|
||||
| ir.cpp:1714:36:1714:55 | Address | &:r1714_3 |
|
||||
| ir.cpp:1714:36:1714:55 | Address | &:r1714_3 |
|
||||
| ir.cpp:1714:36:1714:55 | Load | m1714_5 |
|
||||
| ir.cpp:1714:36:1714:55 | StoreValue | r1714_4 |
|
||||
| ir.cpp:1714:36:1714:55 | StoreValue | r1714_6 |
|
||||
| ir.cpp:1714:36:1714:55 | StoreValue | r1714_9 |
|
||||
| ir.cpp:1714:36:1714:55 | Unary | r1714_2 |
|
||||
| ir.cpp:1714:36:1714:55 | Unary | r1714_8 |
|
||||
| ir.cpp:1716:20:1718:5 | Address | &:r1716_2 |
|
||||
| ir.cpp:1716:20:1718:5 | Unary | r1716_2 |
|
||||
| ir.cpp:1716:42:1716:42 | Address | &:r1716_5 |
|
||||
| ir.cpp:1716:42:1716:42 | Address | &:r1716_5 |
|
||||
| ir.cpp:1716:42:1716:42 | Address | &:r1716_7 |
|
||||
| ir.cpp:1716:42:1716:42 | ChiPartial | partial:m1716_3 |
|
||||
| ir.cpp:1716:42:1716:42 | ChiTotal | total:m1716_2 |
|
||||
| ir.cpp:1716:42:1716:42 | Load | m1716_6 |
|
||||
| ir.cpp:1717:24:1717:31 | Address | &:r1717_2 |
|
||||
| ir.cpp:1717:24:1717:31 | Unary | r1717_2 |
|
||||
| ir.cpp:1717:30:1717:30 | Address | &:r1717_5 |
|
||||
| ir.cpp:1717:30:1717:30 | Address | &:r1717_5 |
|
||||
| ir.cpp:1717:30:1717:30 | Address | &:r1717_7 |
|
||||
| ir.cpp:1717:30:1717:30 | Address | &:r1717_7 |
|
||||
| ir.cpp:1717:30:1717:30 | ChiPartial | partial:m1717_3 |
|
||||
| ir.cpp:1717:30:1717:30 | ChiTotal | total:m1717_2 |
|
||||
| ir.cpp:1717:30:1717:30 | Load | m1717_6 |
|
||||
| ir.cpp:1717:30:1717:30 | SideEffect | m1717_3 |
|
||||
| ir.cpp:1717:30:1717:30 | SideEffect | m1717_8 |
|
||||
| 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 |
|
||||
|
||||
@@ -3,6 +3,14 @@ missingOperand
|
||||
| ir.cpp:1688:24:1690:5 | Store: Unknown literal | Instruction 'Store' is missing an expected operand with tag 'StoreValue' in function '$@'. | ir.cpp:1683:6:1683:20 | void captured_lambda(int, int&, int&&) | void captured_lambda(int, int&, int&&) |
|
||||
| ir.cpp:1689:28:1689:54 | Store: Unknown literal | Instruction 'Store' is missing an expected operand with tag 'StoreValue' in function '$@'. | ir.cpp:1688:46:1688:46 | void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1688, col. 25)::operator()() const | void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1688, col. 25)::operator()() const |
|
||||
| ir.cpp:1689:28:1689:54 | Store: Unknown literal | Instruction 'Store' is missing an expected operand with tag 'StoreValue' in function '$@'. | ir.cpp:1688:46:1688:46 | void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1688, col. 25)::operator()() const | void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1688, col. 25)::operator()() const |
|
||||
| ir.cpp:1702:25:1708:9 | Store: Unknown literal | Instruction 'Store' is missing an expected operand with tag 'StoreValue' in function '$@'. | ir.cpp:1701:10:1701:10 | void TrivialLambdaClass::m() const | void TrivialLambdaClass::m() const |
|
||||
| ir.cpp:1705:29:1707:13 | Store: Unknown literal | Instruction 'Store' is missing an expected operand with tag 'StoreValue' in function '$@'. | ir.cpp:1702:34:1702:34 | void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1702, col. 26)::operator()() const | void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1702, col. 26)::operator()() const |
|
||||
| ir.cpp:1716:20:1718:5 | Store: Unknown literal | Instruction 'Store' is missing an expected operand with tag 'StoreValue' in function '$@'. | ir.cpp:1712:6:1712:21 | void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) | void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) |
|
||||
| ir.cpp:1716:20:1718:5 | Store: Unknown literal | Instruction 'Store' is missing an expected operand with tag 'StoreValue' in function '$@'. | ir.cpp:1712:6:1712:21 | void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) | void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) |
|
||||
| ir.cpp:1716:20:1718:5 | Store: Unknown literal | Instruction 'Store' is missing an expected operand with tag 'StoreValue' in function '$@'. | ir.cpp:1712:6:1712:21 | void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) | void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) |
|
||||
| ir.cpp:1716:20:1718:5 | Store: Unknown literal | Instruction 'Store' is missing an expected operand with tag 'StoreValue' in function '$@'. | ir.cpp:1712:6:1712:21 | void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) | void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) |
|
||||
| ir.cpp:1716:20:1718:5 | Store: Unknown literal | Instruction 'Store' is missing an expected operand with tag 'StoreValue' in function '$@'. | ir.cpp:1712:6:1712:21 | void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) | void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) |
|
||||
| ir.cpp:1717:24:1717:31 | Store: Unknown literal | Instruction 'Store' is missing an expected operand with tag 'StoreValue' in function '$@'. | ir.cpp:1716:42:1716:42 | void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1716, col. 21)::operator()() const | void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1716, col. 21)::operator()() const |
|
||||
unexpectedOperand
|
||||
duplicateOperand
|
||||
missingPhiOperand
|
||||
@@ -15,6 +23,14 @@ instructionWithoutSuccessor
|
||||
| ir.cpp:1688:24:1690:5 | FieldAddress: {...} | Instruction 'FieldAddress: {...}' has no successors in function '$@'. | ir.cpp:1683:6:1683:20 | void captured_lambda(int, int&, int&&) | void captured_lambda(int, int&, int&&) |
|
||||
| ir.cpp:1689:28:1689:54 | FieldAddress: {...} | Instruction 'FieldAddress: {...}' has no successors in function '$@'. | ir.cpp:1688:46:1688:46 | void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1688, col. 25)::operator()() const | void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1688, col. 25)::operator()() const |
|
||||
| ir.cpp:1689:28:1689:54 | FieldAddress: {...} | Instruction 'FieldAddress: {...}' has no successors in function '$@'. | ir.cpp:1688:46:1688:46 | void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1688, col. 25)::operator()() const | void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1688, col. 25)::operator()() const |
|
||||
| ir.cpp:1702:25:1708:9 | FieldAddress: {...} | Instruction 'FieldAddress: {...}' has no successors in function '$@'. | ir.cpp:1701:10:1701:10 | void TrivialLambdaClass::m() const | void TrivialLambdaClass::m() const |
|
||||
| ir.cpp:1705:29:1707:13 | FieldAddress: {...} | Instruction 'FieldAddress: {...}' has no successors in function '$@'. | ir.cpp:1702:34:1702:34 | void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1702, col. 26)::operator()() const | void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1702, col. 26)::operator()() const |
|
||||
| ir.cpp:1716:20:1718:5 | FieldAddress: {...} | Instruction 'FieldAddress: {...}' has no successors in function '$@'. | ir.cpp:1712:6:1712:21 | void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) | void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) |
|
||||
| ir.cpp:1716:20:1718:5 | FieldAddress: {...} | Instruction 'FieldAddress: {...}' has no successors in function '$@'. | ir.cpp:1712:6:1712:21 | void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) | void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) |
|
||||
| ir.cpp:1716:20:1718:5 | FieldAddress: {...} | Instruction 'FieldAddress: {...}' has no successors in function '$@'. | ir.cpp:1712:6:1712:21 | void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) | void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) |
|
||||
| ir.cpp:1716:20:1718:5 | FieldAddress: {...} | Instruction 'FieldAddress: {...}' has no successors in function '$@'. | ir.cpp:1712:6:1712:21 | void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) | void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) |
|
||||
| ir.cpp:1716:20:1718:5 | FieldAddress: {...} | Instruction 'FieldAddress: {...}' has no successors in function '$@'. | ir.cpp:1712:6:1712:21 | void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) | void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) |
|
||||
| ir.cpp:1717:24:1717:31 | FieldAddress: {...} | Instruction 'FieldAddress: {...}' has no successors in function '$@'. | ir.cpp:1716:42:1716:42 | void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1716, col. 21)::operator()() const | void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1716, col. 21)::operator()() const |
|
||||
ambiguousSuccessors
|
||||
unexplainedLoop
|
||||
unnecessaryPhiInstruction
|
||||
@@ -45,6 +61,31 @@ useNotDominatedByDefinition
|
||||
| ir.cpp:1689:28:1689:54 | Unary | Operand 'Unary' is not dominated by its definition in function '$@'. | ir.cpp:1688:46:1688:46 | void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1688, col. 25)::operator()() const | void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1688, col. 25)::operator()() const |
|
||||
| ir.cpp:1689:28:1689:54 | Unary | Operand 'Unary' is not dominated by its definition in function '$@'. | ir.cpp:1688:46:1688:46 | void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1688, col. 25)::operator()() const | void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1688, col. 25)::operator()() const |
|
||||
| ir.cpp:1689:28:1689:54 | Unary | Operand 'Unary' is not dominated by its definition in function '$@'. | ir.cpp:1688:46:1688:46 | void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1688, col. 25)::operator()() const | void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1688, col. 25)::operator()() const |
|
||||
| ir.cpp:1701:10:1701:10 | Address | Operand 'Address' is not dominated by its definition in function '$@'. | ir.cpp:1701:10:1701:10 | void TrivialLambdaClass::m() const | void TrivialLambdaClass::m() const |
|
||||
| ir.cpp:1702:14:1702:22 | Address | Operand 'Address' is not dominated by its definition in function '$@'. | ir.cpp:1701:10:1701:10 | void TrivialLambdaClass::m() const | void TrivialLambdaClass::m() const |
|
||||
| ir.cpp:1702:25:1708:9 | Address | Operand 'Address' is not dominated by its definition in function '$@'. | ir.cpp:1701:10:1701:10 | void TrivialLambdaClass::m() const | void TrivialLambdaClass::m() const |
|
||||
| ir.cpp:1702:25:1708:9 | Address | Operand 'Address' is not dominated by its definition in function '$@'. | ir.cpp:1701:10:1701:10 | void TrivialLambdaClass::m() const | void TrivialLambdaClass::m() const |
|
||||
| ir.cpp:1702:34:1702:34 | Address | Operand 'Address' is not dominated by its definition in function '$@'. | ir.cpp:1702:34:1702:34 | void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1702, col. 26)::operator()() const | void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1702, col. 26)::operator()() const |
|
||||
| ir.cpp:1705:18:1705:26 | Address | Operand 'Address' is not dominated by its definition in function '$@'. | ir.cpp:1702:34:1702:34 | void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1702, col. 26)::operator()() const | void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1702, col. 26)::operator()() const |
|
||||
| ir.cpp:1705:29:1707:13 | Address | Operand 'Address' is not dominated by its definition in function '$@'. | ir.cpp:1702:34:1702:34 | void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1702, col. 26)::operator()() const | void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1702, col. 26)::operator()() const |
|
||||
| ir.cpp:1705:29:1707:13 | Address | Operand 'Address' is not dominated by its definition in function '$@'. | ir.cpp:1702:34:1702:34 | void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1702, col. 26)::operator()() const | void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1702, col. 26)::operator()() const |
|
||||
| ir.cpp:1712:66:1712:67 | Address | Operand 'Address' is not dominated by its definition in function '$@'. | ir.cpp:1712:6:1712:21 | void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) | void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) |
|
||||
| ir.cpp:1712:91:1712:92 | Address | Operand 'Address' is not dominated by its definition in function '$@'. | ir.cpp:1712:6:1712:21 | void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) | void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) |
|
||||
| ir.cpp:1716:10:1716:17 | Address | Operand 'Address' is not dominated by its definition in function '$@'. | ir.cpp:1712:6:1712:21 | void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) | void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) |
|
||||
| ir.cpp:1716:20:1718:5 | Address | Operand 'Address' is not dominated by its definition in function '$@'. | ir.cpp:1712:6:1712:21 | void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) | void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) |
|
||||
| ir.cpp:1716:20:1718:5 | Address | Operand 'Address' is not dominated by its definition in function '$@'. | ir.cpp:1712:6:1712:21 | void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) | void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) |
|
||||
| ir.cpp:1716:20:1718:5 | Address | Operand 'Address' is not dominated by its definition in function '$@'. | ir.cpp:1712:6:1712:21 | void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) | void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) |
|
||||
| ir.cpp:1716:20:1718:5 | Address | Operand 'Address' is not dominated by its definition in function '$@'. | ir.cpp:1712:6:1712:21 | void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) | void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) |
|
||||
| ir.cpp:1716:20:1718:5 | Address | Operand 'Address' is not dominated by its definition in function '$@'. | ir.cpp:1712:6:1712:21 | void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) | void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) |
|
||||
| ir.cpp:1716:20:1718:5 | Address | Operand 'Address' is not dominated by its definition in function '$@'. | ir.cpp:1712:6:1712:21 | void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) | void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) |
|
||||
| ir.cpp:1716:20:1718:5 | Unary | Operand 'Unary' is not dominated by its definition in function '$@'. | ir.cpp:1712:6:1712:21 | void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) | void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) |
|
||||
| ir.cpp:1716:20:1718:5 | Unary | Operand 'Unary' is not dominated by its definition in function '$@'. | ir.cpp:1712:6:1712:21 | void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) | void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) |
|
||||
| ir.cpp:1716:20:1718:5 | Unary | Operand 'Unary' is not dominated by its definition in function '$@'. | ir.cpp:1712:6:1712:21 | void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) | void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) |
|
||||
| ir.cpp:1716:20:1718:5 | Unary | Operand 'Unary' is not dominated by its definition in function '$@'. | ir.cpp:1712:6:1712:21 | void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) | void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) |
|
||||
| ir.cpp:1716:42:1716:42 | Address | Operand 'Address' is not dominated by its definition in function '$@'. | ir.cpp:1716:42:1716:42 | void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1716, col. 21)::operator()() const | void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1716, col. 21)::operator()() const |
|
||||
| ir.cpp:1717:14:1717:21 | Address | Operand 'Address' is not dominated by its definition in function '$@'. | ir.cpp:1716:42:1716:42 | void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1716, col. 21)::operator()() const | void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1716, col. 21)::operator()() const |
|
||||
| ir.cpp:1717:24:1717:31 | Address | Operand 'Address' is not dominated by its definition in function '$@'. | ir.cpp:1716:42:1716:42 | void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1716, col. 21)::operator()() const | void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1716, col. 21)::operator()() const |
|
||||
| ir.cpp:1717:24:1717:31 | Address | Operand 'Address' is not dominated by its definition in function '$@'. | ir.cpp:1716:42:1716:42 | void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1716, col. 21)::operator()() const | void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1716, col. 21)::operator()() const |
|
||||
switchInstructionWithoutDefaultEdge
|
||||
notMarkedAsConflated
|
||||
wronglyMarkedAsConflated
|
||||
|
||||
@@ -8999,6 +8999,183 @@ ir.cpp:
|
||||
# 1693| v1693_6(void) = AliasedUse : ~m?
|
||||
# 1693| v1693_7(void) = ExitFunction :
|
||||
|
||||
# 1701| void TrivialLambdaClass::m() const
|
||||
# 1701| Block 0
|
||||
# 1701| v1701_1(void) = EnterFunction :
|
||||
# 1701| mu1701_2(unknown) = AliasedDefinition :
|
||||
# 1701| mu1701_3(unknown) = InitializeNonLocal :
|
||||
# 1701| r1701_4(glval<unknown>) = VariableAddress[#this] :
|
||||
# 1701| mu1701_5(glval<TrivialLambdaClass>) = InitializeParameter[#this] : &:r1701_4
|
||||
# 1701| r1701_6(glval<TrivialLambdaClass>) = Load[#this] : &:r1701_4, ~m?
|
||||
# 1701| mu1701_7(TrivialLambdaClass) = InitializeIndirection[#this] : &:r1701_6
|
||||
# 1702| r1702_1(glval<decltype([...](...){...})>) = VariableAddress[l_m_outer] :
|
||||
# 1702| r1702_2(glval<decltype([...](...){...})>) = VariableAddress[#temp1702:25] :
|
||||
# 1702| mu1702_3(decltype([...](...){...})) = Uninitialized[#temp1702:25] : &:r1702_2
|
||||
# 1702| r1702_4(glval<TrivialLambdaClass>) = FieldAddress[(captured this)] : r1702_2
|
||||
|
||||
# 1702| Block 1
|
||||
# 1702| mu1702_5(TrivialLambdaClass) = Store[?] : &:r1702_4
|
||||
# 1702| r1702_6(decltype([...](...){...})) = Load[#temp1702:25] : &:r1702_2, ~m?
|
||||
# 1702| mu1702_7(decltype([...](...){...})) = Store[l_m_outer] : &:r1702_1, r1702_6
|
||||
# 1709| v1709_1(void) = NoOp :
|
||||
# 1701| v1701_8(void) = ReturnIndirection[#this] : &:r1701_6, ~m?
|
||||
# 1701| v1701_9(void) = ReturnVoid :
|
||||
# 1701| v1701_10(void) = AliasedUse : ~m?
|
||||
# 1701| v1701_11(void) = ExitFunction :
|
||||
|
||||
# 1702| void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1702, col. 26)::operator()() const
|
||||
# 1702| Block 0
|
||||
# 1702| v1702_1(void) = EnterFunction :
|
||||
# 1702| mu1702_2(unknown) = AliasedDefinition :
|
||||
# 1702| mu1702_3(unknown) = InitializeNonLocal :
|
||||
# 1702| r1702_4(glval<unknown>) = VariableAddress[#this] :
|
||||
# 1702| mu1702_5(glval<decltype([...](...){...})>) = InitializeParameter[#this] : &:r1702_4
|
||||
# 1702| r1702_6(glval<decltype([...](...){...})>) = Load[#this] : &:r1702_4, ~m?
|
||||
# 1702| mu1702_7(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1702_6
|
||||
# 1703| r1703_1(glval<unknown>) = VariableAddress[#this] :
|
||||
# 1703| r1703_2(lambda [] type at line 1702, col. 26 *) = Load[#this] : &:r1703_1, ~m?
|
||||
# 1703| r1703_3(glval<TrivialLambdaClass>) = FieldAddress[(captured this)] : r1703_2
|
||||
# 1703| r1703_4(TrivialLambdaClass *) = CopyValue : r1703_3
|
||||
# 1703| r1703_5(glval<unknown>) = FunctionAddress[m] :
|
||||
# 1703| v1703_6(void) = Call[m] : func:r1703_5, this:r1703_4
|
||||
# 1703| mu1703_7(unknown) = ^CallSideEffect : ~m?
|
||||
# 1703| v1703_8(void) = ^IndirectReadSideEffect[-1] : &:r1703_4, ~m?
|
||||
# 1705| r1705_1(glval<decltype([...](...){...})>) = VariableAddress[l_m_inner] :
|
||||
# 1705| r1705_2(glval<decltype([...](...){...})>) = VariableAddress[#temp1705:29] :
|
||||
# 1705| mu1705_3(decltype([...](...){...})) = Uninitialized[#temp1705:29] : &:r1705_2
|
||||
# 1705| r1705_4(glval<TrivialLambdaClass>) = FieldAddress[(captured this)] : r1705_2
|
||||
|
||||
# 1705| Block 1
|
||||
# 1705| mu1705_5(TrivialLambdaClass) = Store[?] : &:r1705_4
|
||||
# 1705| r1705_6(decltype([...](...){...})) = Load[#temp1705:29] : &:r1705_2, ~m?
|
||||
# 1705| mu1705_7(decltype([...](...){...})) = Store[l_m_inner] : &:r1705_1, r1705_6
|
||||
# 1708| v1708_1(void) = NoOp :
|
||||
# 1702| v1702_8(void) = ReturnIndirection[#this] : &:r1702_6, ~m?
|
||||
# 1702| v1702_9(void) = ReturnVoid :
|
||||
# 1702| v1702_10(void) = AliasedUse : ~m?
|
||||
# 1702| v1702_11(void) = ExitFunction :
|
||||
|
||||
# 1705| void (void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1702, col. 26)::operator()() const)::(lambda [] type at line 1705, col. 30)::operator()() const
|
||||
# 1705| Block 0
|
||||
# 1705| v1705_1(void) = EnterFunction :
|
||||
# 1705| mu1705_2(unknown) = AliasedDefinition :
|
||||
# 1705| mu1705_3(unknown) = InitializeNonLocal :
|
||||
# 1705| r1705_4(glval<unknown>) = VariableAddress[#this] :
|
||||
# 1705| mu1705_5(glval<decltype([...](...){...})>) = InitializeParameter[#this] : &:r1705_4
|
||||
# 1705| r1705_6(glval<decltype([...](...){...})>) = Load[#this] : &:r1705_4, ~m?
|
||||
# 1705| mu1705_7(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1705_6
|
||||
# 1706| r1706_1(glval<unknown>) = VariableAddress[#this] :
|
||||
# 1706| r1706_2(lambda [] type at line 1705, col. 30 *) = Load[#this] : &:r1706_1, ~m?
|
||||
# 1706| r1706_3(glval<TrivialLambdaClass>) = FieldAddress[(captured this)] : r1706_2
|
||||
# 1706| r1706_4(TrivialLambdaClass *) = CopyValue : r1706_3
|
||||
# 1706| r1706_5(glval<unknown>) = FunctionAddress[m] :
|
||||
# 1706| v1706_6(void) = Call[m] : func:r1706_5, this:r1706_4
|
||||
# 1706| mu1706_7(unknown) = ^CallSideEffect : ~m?
|
||||
# 1706| v1706_8(void) = ^IndirectReadSideEffect[-1] : &:r1706_4, ~m?
|
||||
# 1707| v1707_1(void) = NoOp :
|
||||
# 1705| v1705_8(void) = ReturnIndirection[#this] : &:r1705_6, ~m?
|
||||
# 1705| v1705_9(void) = ReturnVoid :
|
||||
# 1705| v1705_10(void) = AliasedUse : ~m?
|
||||
# 1705| v1705_11(void) = ExitFunction :
|
||||
|
||||
# 1712| void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&)
|
||||
# 1712| Block 0
|
||||
# 1712| v1712_1(void) = EnterFunction :
|
||||
# 1712| mu1712_2(unknown) = AliasedDefinition :
|
||||
# 1712| mu1712_3(unknown) = InitializeNonLocal :
|
||||
# 1712| r1712_4(glval<TrivialLambdaClass>) = VariableAddress[p1] :
|
||||
# 1712| mu1712_5(TrivialLambdaClass) = InitializeParameter[p1] : &:r1712_4
|
||||
# 1712| r1712_6(glval<TrivialLambdaClass &>) = VariableAddress[p2] :
|
||||
# 1712| mu1712_7(TrivialLambdaClass &) = InitializeParameter[p2] : &:r1712_6
|
||||
# 1712| r1712_8(TrivialLambdaClass &) = Load[p2] : &:r1712_6, ~m?
|
||||
# 1712| mu1712_9(unknown) = InitializeIndirection[p2] : &:r1712_8
|
||||
# 1712| r1712_10(glval<TrivialLambdaClass &&>) = VariableAddress[p3] :
|
||||
# 1712| mu1712_11(TrivialLambdaClass &&) = InitializeParameter[p3] : &:r1712_10
|
||||
# 1712| r1712_12(TrivialLambdaClass &&) = Load[p3] : &:r1712_10, ~m?
|
||||
# 1712| mu1712_13(unknown) = InitializeIndirection[p3] : &:r1712_12
|
||||
# 1713| r1713_1(glval<TrivialLambdaClass>) = VariableAddress[l1] :
|
||||
# 1713| mu1713_2(TrivialLambdaClass) = Uninitialized[l1] : &:r1713_1
|
||||
# 1714| r1714_1(glval<TrivialLambdaClass &>) = VariableAddress[l2] :
|
||||
# 1714| r1714_2(glval<TrivialLambdaClass>) = VariableAddress[#temp1714:36] :
|
||||
# 1714| r1714_3(glval<TrivialLambdaClass>) = VariableAddress[#temp1714:36] :
|
||||
# 1714| r1714_4(TrivialLambdaClass) = Constant[0] :
|
||||
# 1714| mu1714_5(TrivialLambdaClass) = Store[#temp1714:36] : &:r1714_3, r1714_4
|
||||
# 1714| r1714_6(TrivialLambdaClass) = Load[#temp1714:36] : &:r1714_3, ~m?
|
||||
# 1714| mu1714_7(TrivialLambdaClass) = Store[#temp1714:36] : &:r1714_2, r1714_6
|
||||
# 1714| r1714_8(glval<TrivialLambdaClass>) = Convert : r1714_2
|
||||
# 1714| r1714_9(TrivialLambdaClass &) = CopyValue : r1714_8
|
||||
# 1714| mu1714_10(TrivialLambdaClass &) = Store[l2] : &:r1714_1, r1714_9
|
||||
# 1716| r1716_1(glval<decltype([...](...){...})>) = VariableAddress[l_outer1] :
|
||||
# 1716| r1716_2(glval<decltype([...](...){...})>) = VariableAddress[#temp1716:20] :
|
||||
# 1716| mu1716_3(decltype([...](...){...})) = Uninitialized[#temp1716:20] : &:r1716_2
|
||||
# 1716| r1716_4(glval<TrivialLambdaClass>) = FieldAddress[p1] : r1716_2
|
||||
|
||||
# 1716| Block 1
|
||||
# 1716| mu1716_5(TrivialLambdaClass) = Store[?] : &:r1716_4
|
||||
# 1716| r1716_6(glval<TrivialLambdaClass>) = FieldAddress[p2] : r1716_2
|
||||
|
||||
# 1716| Block 2
|
||||
# 1716| mu1716_7(TrivialLambdaClass) = Store[?] : &:r1716_6
|
||||
# 1716| r1716_8(glval<TrivialLambdaClass>) = FieldAddress[p3] : r1716_2
|
||||
|
||||
# 1716| Block 3
|
||||
# 1716| mu1716_9(TrivialLambdaClass) = Store[?] : &:r1716_8
|
||||
# 1716| r1716_10(glval<TrivialLambdaClass>) = FieldAddress[l1] : r1716_2
|
||||
|
||||
# 1716| Block 4
|
||||
# 1716| mu1716_11(TrivialLambdaClass) = Store[?] : &:r1716_10
|
||||
# 1716| r1716_12(glval<TrivialLambdaClass>) = FieldAddress[l2] : r1716_2
|
||||
|
||||
# 1716| Block 5
|
||||
# 1716| mu1716_13(TrivialLambdaClass) = Store[?] : &:r1716_12
|
||||
# 1716| r1716_14(decltype([...](...){...})) = Load[#temp1716:20] : &:r1716_2, ~m?
|
||||
# 1716| mu1716_15(decltype([...](...){...})) = Store[l_outer1] : &:r1716_1, r1716_14
|
||||
# 1719| v1719_1(void) = NoOp :
|
||||
# 1712| v1712_14(void) = ReturnIndirection[p2] : &:r1712_8, ~m?
|
||||
# 1712| v1712_15(void) = ReturnIndirection[p3] : &:r1712_12, ~m?
|
||||
# 1712| v1712_16(void) = ReturnVoid :
|
||||
# 1712| v1712_17(void) = AliasedUse : ~m?
|
||||
# 1712| v1712_18(void) = ExitFunction :
|
||||
|
||||
# 1716| void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1716, col. 21)::operator()() const
|
||||
# 1716| Block 0
|
||||
# 1716| v1716_1(void) = EnterFunction :
|
||||
# 1716| mu1716_2(unknown) = AliasedDefinition :
|
||||
# 1716| mu1716_3(unknown) = InitializeNonLocal :
|
||||
# 1716| r1716_4(glval<unknown>) = VariableAddress[#this] :
|
||||
# 1716| mu1716_5(glval<decltype([...](...){...})>) = InitializeParameter[#this] : &:r1716_4
|
||||
# 1716| r1716_6(glval<decltype([...](...){...})>) = Load[#this] : &:r1716_4, ~m?
|
||||
# 1716| mu1716_7(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1716_6
|
||||
# 1717| r1717_1(glval<decltype([...](...){...})>) = VariableAddress[l_inner1] :
|
||||
# 1717| r1717_2(glval<decltype([...](...){...})>) = VariableAddress[#temp1717:24] :
|
||||
# 1717| mu1717_3(decltype([...](...){...})) = Uninitialized[#temp1717:24] : &:r1717_2
|
||||
# 1717| r1717_4(glval<TrivialLambdaClass>) = FieldAddress[p1] : r1717_2
|
||||
|
||||
# 1717| Block 1
|
||||
# 1717| mu1717_5(TrivialLambdaClass) = Store[?] : &:r1717_4
|
||||
# 1717| r1717_6(decltype([...](...){...})) = Load[#temp1717:24] : &:r1717_2, ~m?
|
||||
# 1717| mu1717_7(decltype([...](...){...})) = Store[l_inner1] : &:r1717_1, r1717_6
|
||||
# 1718| v1718_1(void) = NoOp :
|
||||
# 1716| v1716_8(void) = ReturnIndirection[#this] : &:r1716_6, ~m?
|
||||
# 1716| v1716_9(void) = ReturnVoid :
|
||||
# 1716| v1716_10(void) = AliasedUse : ~m?
|
||||
# 1716| v1716_11(void) = ExitFunction :
|
||||
|
||||
# 1717| void (void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1716, col. 21)::operator()() const)::(lambda [] type at line 1717, col. 25)::operator()() const
|
||||
# 1717| Block 0
|
||||
# 1717| v1717_1(void) = EnterFunction :
|
||||
# 1717| mu1717_2(unknown) = AliasedDefinition :
|
||||
# 1717| mu1717_3(unknown) = InitializeNonLocal :
|
||||
# 1717| r1717_4(glval<unknown>) = VariableAddress[#this] :
|
||||
# 1717| mu1717_5(glval<decltype([...](...){...})>) = InitializeParameter[#this] : &:r1717_4
|
||||
# 1717| r1717_6(glval<decltype([...](...){...})>) = Load[#this] : &:r1717_4, ~m?
|
||||
# 1717| mu1717_7(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1717_6
|
||||
# 1717| v1717_8(void) = NoOp :
|
||||
# 1717| v1717_9(void) = ReturnIndirection[#this] : &:r1717_6, ~m?
|
||||
# 1717| v1717_10(void) = ReturnVoid :
|
||||
# 1717| v1717_11(void) = AliasedUse : ~m?
|
||||
# 1717| v1717_12(void) = ExitFunction :
|
||||
|
||||
perf-regression.cpp:
|
||||
# 6| void Big::Big()
|
||||
# 6| Block 0
|
||||
|
||||
@@ -8,6 +8,10 @@ sideEffectWithoutPrimary
|
||||
instructionWithoutSuccessor
|
||||
| ir.cpp:1688:24:1690:5 | FieldAddress: {...} | Instruction 'FieldAddress: {...}' has no successors in function '$@'. | ir.cpp:1683:6:1683:20 | void captured_lambda(int, int&, int&&) | void captured_lambda(int, int&, int&&) |
|
||||
| ir.cpp:1689:28:1689:54 | FieldAddress: {...} | Instruction 'FieldAddress: {...}' has no successors in function '$@'. | ir.cpp:1688:46:1688:46 | void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1688, col. 25)::operator()() const | void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1688, col. 25)::operator()() const |
|
||||
| ir.cpp:1702:25:1708:9 | FieldAddress: {...} | Instruction 'FieldAddress: {...}' has no successors in function '$@'. | ir.cpp:1701:10:1701:10 | void TrivialLambdaClass::m() const | void TrivialLambdaClass::m() const |
|
||||
| ir.cpp:1705:29:1707:13 | FieldAddress: {...} | Instruction 'FieldAddress: {...}' has no successors in function '$@'. | ir.cpp:1702:34:1702:34 | void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1702, col. 26)::operator()() const | void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1702, col. 26)::operator()() const |
|
||||
| ir.cpp:1716:20:1718:5 | FieldAddress: {...} | Instruction 'FieldAddress: {...}' has no successors in function '$@'. | ir.cpp:1712:6:1712:21 | void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) | void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) |
|
||||
| ir.cpp:1717:24:1717:31 | FieldAddress: {...} | Instruction 'FieldAddress: {...}' has no successors in function '$@'. | ir.cpp:1716:42:1716:42 | void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1716, col. 21)::operator()() const | void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1716, col. 21)::operator()() const |
|
||||
ambiguousSuccessors
|
||||
unexplainedLoop
|
||||
unnecessaryPhiInstruction
|
||||
|
||||
@@ -8,6 +8,10 @@ sideEffectWithoutPrimary
|
||||
instructionWithoutSuccessor
|
||||
| ir.cpp:1688:24:1690:5 | FieldAddress: {...} | Instruction 'FieldAddress: {...}' has no successors in function '$@'. | ir.cpp:1683:6:1683:20 | void captured_lambda(int, int&, int&&) | void captured_lambda(int, int&, int&&) |
|
||||
| ir.cpp:1689:28:1689:54 | FieldAddress: {...} | Instruction 'FieldAddress: {...}' has no successors in function '$@'. | ir.cpp:1688:46:1688:46 | void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1688, col. 25)::operator()() const | void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1688, col. 25)::operator()() const |
|
||||
| ir.cpp:1702:25:1708:9 | FieldAddress: {...} | Instruction 'FieldAddress: {...}' has no successors in function '$@'. | ir.cpp:1701:10:1701:10 | void TrivialLambdaClass::m() const | void TrivialLambdaClass::m() const |
|
||||
| ir.cpp:1705:29:1707:13 | FieldAddress: {...} | Instruction 'FieldAddress: {...}' has no successors in function '$@'. | ir.cpp:1702:34:1702:34 | void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1702, col. 26)::operator()() const | void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1702, col. 26)::operator()() const |
|
||||
| ir.cpp:1716:20:1718:5 | FieldAddress: {...} | Instruction 'FieldAddress: {...}' has no successors in function '$@'. | ir.cpp:1712:6:1712:21 | void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) | void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) |
|
||||
| ir.cpp:1717:24:1717:31 | FieldAddress: {...} | Instruction 'FieldAddress: {...}' has no successors in function '$@'. | ir.cpp:1716:42:1716:42 | void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1716, col. 21)::operator()() const | void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1716, col. 21)::operator()() const |
|
||||
ambiguousSuccessors
|
||||
unexplainedLoop
|
||||
unnecessaryPhiInstruction
|
||||
|
||||
Reference in New Issue
Block a user