Skip to content

Commit 8b1b161

Browse files
committed
CPP: Add tests for false positive in memory vulnerability queries.
1 parent 3b344c3 commit 8b1b161

File tree

8 files changed

+573
-1
lines changed

8 files changed

+573
-1
lines changed

cpp/ql/test/library-tests/ir/ir/PrintAST.expected

Lines changed: 163 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15553,6 +15553,169 @@ ir.cpp:
1555315553
# 2030| Type = [IntType] int
1555415554
# 2030| ValueCategory = prvalue
1555515555
# 2031| getStmt(2): [ReturnStmt] return ...
15556+
# 2033| [TopLevelFunction] void NewDeleteMem()
15557+
# 2033| <params>:
15558+
# 2033| getEntryPoint(): [BlockStmt] { ... }
15559+
# 2034| getStmt(0): [DeclStmt] declaration
15560+
# 2034| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x
15561+
# 2034| Type = [IntPointerType] int *
15562+
# 2034| getVariable().getInitializer(): [Initializer] initializer for x
15563+
# 2034| getExpr(): [NewExpr] new
15564+
# 2034| Type = [IntPointerType] int *
15565+
# 2034| ValueCategory = prvalue
15566+
# 2035| getStmt(1): [ExprStmt] ExprStmt
15567+
# 2035| getExpr(): [AssignExpr] ... = ...
15568+
# 2035| Type = [IntType] int
15569+
# 2035| ValueCategory = lvalue
15570+
# 2035| getLValue(): [PointerDereferenceExpr] * ...
15571+
# 2035| Type = [IntType] int
15572+
# 2035| ValueCategory = lvalue
15573+
# 2035| getOperand(): [VariableAccess] x
15574+
# 2035| Type = [IntPointerType] int *
15575+
# 2035| ValueCategory = prvalue(load)
15576+
# 2035| getRValue(): [Literal] 6
15577+
# 2035| Type = [IntType] int
15578+
# 2035| Value = [Literal] 6
15579+
# 2035| ValueCategory = prvalue
15580+
# 2036| getStmt(2): [ExprStmt] ExprStmt
15581+
# 2036| getExpr(): [DeleteExpr] delete
15582+
# 2036| Type = [VoidType] void
15583+
# 2036| ValueCategory = prvalue
15584+
# 2036| getExpr(): [VariableAccess] x
15585+
# 2036| Type = [IntPointerType] int *
15586+
# 2036| ValueCategory = prvalue(load)
15587+
# 2037| getStmt(3): [ReturnStmt] return ...
15588+
# 2039| [CopyAssignmentOperator] Base2& Base2::operator=(Base2 const&)
15589+
# 2039| <params>:
15590+
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
15591+
#-----| Type = [LValueReferenceType] const Base2 &
15592+
# 2039| [Constructor] void Base2::Base2()
15593+
# 2039| <params>:
15594+
# 2039| <initializations>:
15595+
# 2039| getEntryPoint(): [BlockStmt] { ... }
15596+
# 2039| getStmt(0): [ReturnStmt] return ...
15597+
# 2039| [CopyConstructor] void Base2::Base2(Base2 const&)
15598+
# 2039| <params>:
15599+
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
15600+
#-----| Type = [LValueReferenceType] const Base2 &
15601+
# 2041| [MemberFunction] void Base2::operator delete(void*)
15602+
# 2041| <params>:
15603+
# 2041| getParameter(0): [Parameter] p
15604+
# 2041| Type = [VoidPointerType] void *
15605+
# 2041| getEntryPoint(): [BlockStmt] { ... }
15606+
# 2042| getStmt(0): [ReturnStmt] return ...
15607+
# 2043| [Destructor,VirtualFunction] void Base2::~Base2()
15608+
# 2043| <params>:
15609+
# 2043| getEntryPoint(): [BlockStmt] { ... }
15610+
# 2043| getStmt(0): [ReturnStmt] return ...
15611+
# 2043| <destructions>:
15612+
# 2046| [CopyAssignmentOperator] Derived2& Derived2::operator=(Derived2 const&)
15613+
# 2046| <params>:
15614+
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
15615+
#-----| Type = [LValueReferenceType] const Derived2 &
15616+
# 2046| [Constructor] void Derived2::Derived2()
15617+
# 2046| <params>:
15618+
# 2046| <initializations>:
15619+
# 2046| getInitializer(0): [ConstructorDirectInit] call to Base2
15620+
# 2046| Type = [VoidType] void
15621+
# 2046| ValueCategory = prvalue
15622+
# 2046| getEntryPoint(): [BlockStmt] { ... }
15623+
# 2046| getStmt(0): [ReturnStmt] return ...
15624+
# 2046| [CopyConstructor] void Derived2::Derived2(Derived2 const&)
15625+
# 2046| <params>:
15626+
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
15627+
#-----| Type = [LValueReferenceType] const Derived2 &
15628+
# 2049| [Destructor,VirtualFunction] void Derived2::~Derived2()
15629+
# 2049| <params>:
15630+
# 2049| getEntryPoint(): [BlockStmt] { ... }
15631+
# 2049| getStmt(0): [ReturnStmt] return ...
15632+
# 2049| <destructions>:
15633+
# 2049| getDestruction(0): [DestructorDirectDestruction] call to ~Base2
15634+
# 2049| Type = [VoidType] void
15635+
# 2049| ValueCategory = prvalue
15636+
# 2051| [MemberFunction] void Derived2::operator delete(void*)
15637+
# 2051| <params>:
15638+
# 2051| getParameter(0): [Parameter] p
15639+
# 2051| Type = [VoidPointerType] void *
15640+
# 2051| getEntryPoint(): [BlockStmt] { ... }
15641+
# 2052| getStmt(0): [ReturnStmt] return ...
15642+
# 2056| [TopLevelFunction] int virtual_delete()
15643+
# 2056| <params>:
15644+
# 2057| getEntryPoint(): [BlockStmt] { ... }
15645+
# 2058| getStmt(0): [DeclStmt] declaration
15646+
# 2058| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b1
15647+
# 2058| Type = [PointerType] Base2 *
15648+
# 2058| getVariable().getInitializer(): [Initializer] initializer for b1
15649+
# 2058| getExpr(): [NewExpr] new
15650+
# 2058| Type = [PointerType] Base2 *
15651+
# 2058| ValueCategory = prvalue
15652+
# 2058| getInitializer(): [ConstructorCall] call to Base2
15653+
# 2058| Type = [VoidType] void
15654+
# 2058| ValueCategory = prvalue
15655+
# 2059| getStmt(1): [ExprStmt] ExprStmt
15656+
# 2059| getExpr(): [DeleteExpr] delete
15657+
# 2059| Type = [VoidType] void
15658+
# 2059| ValueCategory = prvalue
15659+
# 2059| getDeallocatorCall(): [FunctionCall] call to operator delete
15660+
# 2059| Type = [VoidType] void
15661+
# 2059| ValueCategory = prvalue
15662+
# 2059| getDestructorCall(): [DestructorCall] call to ~Base2
15663+
# 2059| Type = [VoidType] void
15664+
# 2059| ValueCategory = prvalue
15665+
# 2059| getQualifier(): [VariableAccess] b1
15666+
# 2059| Type = [PointerType] Base2 *
15667+
# 2059| ValueCategory = prvalue(load)
15668+
# 2061| getStmt(2): [DeclStmt] declaration
15669+
# 2061| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b2
15670+
# 2061| Type = [PointerType] Base2 *
15671+
# 2061| getVariable().getInitializer(): [Initializer] initializer for b2
15672+
# 2061| getExpr(): [NewExpr] new
15673+
# 2061| Type = [PointerType] Derived2 *
15674+
# 2061| ValueCategory = prvalue
15675+
# 2061| getInitializer(): [ConstructorCall] call to Derived2
15676+
# 2061| Type = [VoidType] void
15677+
# 2061| ValueCategory = prvalue
15678+
# 2061| getExpr().getFullyConverted(): [CStyleCast] (Base2 *)...
15679+
# 2061| Conversion = [BaseClassConversion] base class conversion
15680+
# 2061| Type = [PointerType] Base2 *
15681+
# 2061| ValueCategory = prvalue
15682+
# 2062| getStmt(3): [ExprStmt] ExprStmt
15683+
# 2062| getExpr(): [DeleteExpr] delete
15684+
# 2062| Type = [VoidType] void
15685+
# 2062| ValueCategory = prvalue
15686+
# 2062| getDeallocatorCall(): [FunctionCall] call to operator delete
15687+
# 2062| Type = [VoidType] void
15688+
# 2062| ValueCategory = prvalue
15689+
# 2062| getDestructorCall(): [DestructorCall] call to ~Base2
15690+
# 2062| Type = [VoidType] void
15691+
# 2062| ValueCategory = prvalue
15692+
# 2062| getQualifier(): [VariableAccess] b2
15693+
# 2062| Type = [PointerType] Base2 *
15694+
# 2062| ValueCategory = prvalue(load)
15695+
# 2064| getStmt(4): [DeclStmt] declaration
15696+
# 2064| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d
15697+
# 2064| Type = [PointerType] Derived2 *
15698+
# 2064| getVariable().getInitializer(): [Initializer] initializer for d
15699+
# 2064| getExpr(): [NewExpr] new
15700+
# 2064| Type = [PointerType] Derived2 *
15701+
# 2064| ValueCategory = prvalue
15702+
# 2064| getInitializer(): [ConstructorCall] call to Derived2
15703+
# 2064| Type = [VoidType] void
15704+
# 2064| ValueCategory = prvalue
15705+
# 2065| getStmt(5): [ExprStmt] ExprStmt
15706+
# 2065| getExpr(): [DeleteExpr] delete
15707+
# 2065| Type = [VoidType] void
15708+
# 2065| ValueCategory = prvalue
15709+
# 2065| getDeallocatorCall(): [FunctionCall] call to operator delete
15710+
# 2065| Type = [VoidType] void
15711+
# 2065| ValueCategory = prvalue
15712+
# 2065| getDestructorCall(): [DestructorCall] call to ~Derived2
15713+
# 2065| Type = [VoidType] void
15714+
# 2065| ValueCategory = prvalue
15715+
# 2065| getQualifier(): [VariableAccess] d
15716+
# 2065| Type = [PointerType] Derived2 *
15717+
# 2065| ValueCategory = prvalue(load)
15718+
# 2066| getStmt(6): [ReturnStmt] return ...
1555615719
perf-regression.cpp:
1555715720
# 4| [CopyAssignmentOperator] Big& Big::operator=(Big const&)
1555815721
# 4| <params>:

cpp/ql/test/library-tests/ir/ir/operand_locations.expected

Lines changed: 174 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9636,6 +9636,180 @@
96369636
| ir.cpp:2030:22:2030:22 | Arg(0) | 0:r2030_3 |
96379637
| ir.cpp:2030:22:2030:22 | Load | m2026_6 |
96389638
| ir.cpp:2030:26:2030:27 | Unary | r2030_7 |
9639+
| ir.cpp:2033:6:2033:17 | ChiPartial | partial:m2033_3 |
9640+
| ir.cpp:2033:6:2033:17 | ChiTotal | total:m2033_2 |
9641+
| ir.cpp:2033:6:2033:17 | SideEffect | ~m2036_6 |
9642+
| ir.cpp:2034:8:2034:8 | Address | &:r2034_1 |
9643+
| ir.cpp:2034:12:2034:18 | Address | &:r2034_4 |
9644+
| ir.cpp:2034:12:2034:18 | Arg(0) | 0:r2034_3 |
9645+
| ir.cpp:2034:12:2034:18 | CallTarget | func:r2034_2 |
9646+
| ir.cpp:2034:12:2034:18 | ChiPartial | partial:m2034_5 |
9647+
| ir.cpp:2034:12:2034:18 | ChiTotal | total:m2033_4 |
9648+
| ir.cpp:2034:12:2034:18 | SideEffect | ~m2033_4 |
9649+
| ir.cpp:2034:12:2034:18 | StoreValue | r2034_8 |
9650+
| ir.cpp:2034:12:2034:18 | Unary | r2034_4 |
9651+
| ir.cpp:2035:3:2035:4 | Address | &:r2035_4 |
9652+
| ir.cpp:2035:3:2035:8 | ChiPartial | partial:m2035_5 |
9653+
| ir.cpp:2035:3:2035:8 | ChiTotal | total:m2034_7 |
9654+
| ir.cpp:2035:4:2035:4 | Address | &:r2035_2 |
9655+
| ir.cpp:2035:4:2035:4 | Load | m2034_9 |
9656+
| ir.cpp:2035:4:2035:4 | Unary | r2035_3 |
9657+
| ir.cpp:2035:8:2035:8 | StoreValue | r2035_1 |
9658+
| ir.cpp:2036:3:2036:10 | CallTarget | func:r2036_1 |
9659+
| ir.cpp:2036:3:2036:10 | ChiPartial | partial:m2036_5 |
9660+
| ir.cpp:2036:3:2036:10 | ChiTotal | total:m2034_6 |
9661+
| ir.cpp:2036:3:2036:10 | SideEffect | ~m2034_6 |
9662+
| ir.cpp:2036:3:2036:10 | Unary | v2036_4 |
9663+
| ir.cpp:2036:10:2036:10 | Address | &:r2036_2 |
9664+
| ir.cpp:2036:10:2036:10 | Arg(0) | 0:r2036_3 |
9665+
| ir.cpp:2036:10:2036:10 | Load | m2034_9 |
9666+
| ir.cpp:2039:7:2039:7 | Address | &:r2039_5 |
9667+
| ir.cpp:2039:7:2039:7 | Address | &:r2039_5 |
9668+
| ir.cpp:2039:7:2039:7 | Address | &:r2039_7 |
9669+
| ir.cpp:2039:7:2039:7 | Address | &:r2039_7 |
9670+
| ir.cpp:2039:7:2039:7 | ChiPartial | partial:m2039_3 |
9671+
| ir.cpp:2039:7:2039:7 | ChiTotal | total:m2039_2 |
9672+
| ir.cpp:2039:7:2039:7 | Load | m2039_6 |
9673+
| ir.cpp:2039:7:2039:7 | SideEffect | m2039_3 |
9674+
| ir.cpp:2039:7:2039:7 | SideEffect | m2039_8 |
9675+
| ir.cpp:2041:10:2041:24 | ChiPartial | partial:m2041_3 |
9676+
| ir.cpp:2041:10:2041:24 | ChiTotal | total:m2041_2 |
9677+
| ir.cpp:2041:10:2041:24 | SideEffect | m2041_3 |
9678+
| ir.cpp:2041:32:2041:32 | Address | &:r2041_5 |
9679+
| ir.cpp:2041:32:2041:32 | Address | &:r2041_5 |
9680+
| ir.cpp:2041:32:2041:32 | Address | &:r2041_7 |
9681+
| ir.cpp:2041:32:2041:32 | Address | &:r2041_7 |
9682+
| ir.cpp:2041:32:2041:32 | Load | m2041_6 |
9683+
| ir.cpp:2041:32:2041:32 | SideEffect | m2041_8 |
9684+
| ir.cpp:2043:13:2043:18 | Address | &:r2043_5 |
9685+
| ir.cpp:2043:13:2043:18 | Address | &:r2043_5 |
9686+
| ir.cpp:2043:13:2043:18 | Address | &:r2043_7 |
9687+
| ir.cpp:2043:13:2043:18 | Address | &:r2043_7 |
9688+
| ir.cpp:2043:13:2043:18 | ChiPartial | partial:m2043_3 |
9689+
| ir.cpp:2043:13:2043:18 | ChiTotal | total:m2043_2 |
9690+
| ir.cpp:2043:13:2043:18 | Load | m2043_6 |
9691+
| ir.cpp:2043:13:2043:18 | SideEffect | m2043_3 |
9692+
| ir.cpp:2043:13:2043:18 | SideEffect | m2043_8 |
9693+
| ir.cpp:2046:7:2046:7 | Address | &:r2046_5 |
9694+
| ir.cpp:2046:7:2046:7 | Address | &:r2046_5 |
9695+
| ir.cpp:2046:7:2046:7 | Address | &:r2046_7 |
9696+
| ir.cpp:2046:7:2046:7 | Address | &:r2046_7 |
9697+
| ir.cpp:2046:7:2046:7 | Address | &:r2046_9 |
9698+
| ir.cpp:2046:7:2046:7 | Arg(this) | this:r2046_9 |
9699+
| ir.cpp:2046:7:2046:7 | CallTarget | func:r2046_10 |
9700+
| ir.cpp:2046:7:2046:7 | ChiPartial | partial:m2046_3 |
9701+
| ir.cpp:2046:7:2046:7 | ChiPartial | partial:m2046_12 |
9702+
| ir.cpp:2046:7:2046:7 | ChiPartial | partial:m2046_14 |
9703+
| ir.cpp:2046:7:2046:7 | ChiTotal | total:m2046_2 |
9704+
| ir.cpp:2046:7:2046:7 | ChiTotal | total:m2046_4 |
9705+
| ir.cpp:2046:7:2046:7 | ChiTotal | total:m2046_8 |
9706+
| ir.cpp:2046:7:2046:7 | Load | m2046_6 |
9707+
| ir.cpp:2046:7:2046:7 | SideEffect | m2046_15 |
9708+
| ir.cpp:2046:7:2046:7 | SideEffect | ~m2046_4 |
9709+
| ir.cpp:2046:7:2046:7 | SideEffect | ~m2046_13 |
9710+
| ir.cpp:2046:7:2046:7 | Unary | m2046_6 |
9711+
| ir.cpp:2049:5:2049:13 | Address | &:r2049_5 |
9712+
| ir.cpp:2049:5:2049:13 | Address | &:r2049_5 |
9713+
| ir.cpp:2049:5:2049:13 | Address | &:r2049_7 |
9714+
| ir.cpp:2049:5:2049:13 | Address | &:r2049_7 |
9715+
| ir.cpp:2049:5:2049:13 | ChiPartial | partial:m2049_3 |
9716+
| ir.cpp:2049:5:2049:13 | ChiTotal | total:m2049_2 |
9717+
| ir.cpp:2049:5:2049:13 | Load | m2049_6 |
9718+
| ir.cpp:2049:5:2049:13 | SideEffect | m2049_8 |
9719+
| ir.cpp:2049:5:2049:13 | SideEffect | ~m2049_14 |
9720+
| ir.cpp:2049:5:2049:13 | Unary | m2049_6 |
9721+
| ir.cpp:2049:18:2049:18 | Arg(this) | this:r2049_10 |
9722+
| ir.cpp:2049:18:2049:18 | CallTarget | func:r2049_11 |
9723+
| ir.cpp:2049:18:2049:18 | ChiPartial | partial:m2049_13 |
9724+
| ir.cpp:2049:18:2049:18 | ChiTotal | total:m2049_4 |
9725+
| ir.cpp:2049:18:2049:18 | SideEffect | ~m2049_4 |
9726+
| ir.cpp:2051:10:2051:24 | ChiPartial | partial:m2051_3 |
9727+
| ir.cpp:2051:10:2051:24 | ChiTotal | total:m2051_2 |
9728+
| ir.cpp:2051:10:2051:24 | SideEffect | m2051_3 |
9729+
| ir.cpp:2051:32:2051:32 | Address | &:r2051_5 |
9730+
| ir.cpp:2051:32:2051:32 | Address | &:r2051_5 |
9731+
| ir.cpp:2051:32:2051:32 | Address | &:r2051_7 |
9732+
| ir.cpp:2051:32:2051:32 | Address | &:r2051_7 |
9733+
| ir.cpp:2051:32:2051:32 | Load | m2051_6 |
9734+
| ir.cpp:2051:32:2051:32 | SideEffect | m2051_8 |
9735+
| ir.cpp:2056:5:2056:18 | ChiPartial | partial:m2056_3 |
9736+
| ir.cpp:2056:5:2056:18 | ChiTotal | total:m2056_2 |
9737+
| ir.cpp:2058:12:2058:13 | Address | &:r2058_1 |
9738+
| ir.cpp:2058:17:2058:27 | Address | &:r2058_4 |
9739+
| ir.cpp:2058:17:2058:27 | Address | &:r2058_8 |
9740+
| ir.cpp:2058:17:2058:27 | Arg(0) | 0:r2058_3 |
9741+
| ir.cpp:2058:17:2058:27 | Arg(this) | this:r2058_8 |
9742+
| ir.cpp:2058:17:2058:27 | CallTarget | func:r2058_2 |
9743+
| ir.cpp:2058:17:2058:27 | CallTarget | func:r2058_9 |
9744+
| ir.cpp:2058:17:2058:27 | ChiPartial | partial:m2058_5 |
9745+
| ir.cpp:2058:17:2058:27 | ChiPartial | partial:m2058_11 |
9746+
| ir.cpp:2058:17:2058:27 | ChiPartial | partial:m2058_13 |
9747+
| ir.cpp:2058:17:2058:27 | ChiTotal | total:m2056_4 |
9748+
| ir.cpp:2058:17:2058:27 | ChiTotal | total:m2058_6 |
9749+
| ir.cpp:2058:17:2058:27 | ChiTotal | total:m2058_7 |
9750+
| ir.cpp:2058:17:2058:27 | SideEffect | ~m2056_4 |
9751+
| ir.cpp:2058:17:2058:27 | SideEffect | ~m2058_6 |
9752+
| ir.cpp:2058:17:2058:27 | StoreValue | r2058_8 |
9753+
| ir.cpp:2058:17:2058:27 | Unary | r2058_4 |
9754+
| ir.cpp:2059:5:2059:13 | CallTarget | func:r2059_1 |
9755+
| ir.cpp:2059:5:2059:13 | ChiPartial | partial:m2059_5 |
9756+
| ir.cpp:2059:5:2059:13 | ChiTotal | total:m2058_12 |
9757+
| ir.cpp:2059:5:2059:13 | SideEffect | ~m2058_12 |
9758+
| ir.cpp:2059:5:2059:13 | Unary | v2059_4 |
9759+
| ir.cpp:2059:12:2059:13 | Address | &:r2059_2 |
9760+
| ir.cpp:2059:12:2059:13 | Arg(0) | 0:r2059_3 |
9761+
| ir.cpp:2059:12:2059:13 | Load | m2058_15 |
9762+
| ir.cpp:2061:12:2061:13 | Address | &:r2061_1 |
9763+
| ir.cpp:2061:17:2061:30 | Address | &:r2061_4 |
9764+
| ir.cpp:2061:17:2061:30 | Address | &:r2061_8 |
9765+
| ir.cpp:2061:17:2061:30 | Arg(0) | 0:r2061_3 |
9766+
| ir.cpp:2061:17:2061:30 | Arg(this) | this:r2061_8 |
9767+
| ir.cpp:2061:17:2061:30 | CallTarget | func:r2061_2 |
9768+
| ir.cpp:2061:17:2061:30 | CallTarget | func:r2061_9 |
9769+
| ir.cpp:2061:17:2061:30 | ChiPartial | partial:m2061_5 |
9770+
| ir.cpp:2061:17:2061:30 | ChiPartial | partial:m2061_11 |
9771+
| ir.cpp:2061:17:2061:30 | ChiPartial | partial:m2061_13 |
9772+
| ir.cpp:2061:17:2061:30 | ChiTotal | total:m2059_6 |
9773+
| ir.cpp:2061:17:2061:30 | ChiTotal | total:m2061_6 |
9774+
| ir.cpp:2061:17:2061:30 | ChiTotal | total:m2061_7 |
9775+
| ir.cpp:2061:17:2061:30 | SideEffect | ~m2059_6 |
9776+
| ir.cpp:2061:17:2061:30 | SideEffect | ~m2061_6 |
9777+
| ir.cpp:2061:17:2061:30 | StoreValue | r2061_15 |
9778+
| ir.cpp:2061:17:2061:30 | Unary | r2061_4 |
9779+
| ir.cpp:2061:17:2061:30 | Unary | r2061_8 |
9780+
| ir.cpp:2062:5:2062:13 | CallTarget | func:r2062_1 |
9781+
| ir.cpp:2062:5:2062:13 | ChiPartial | partial:m2062_5 |
9782+
| ir.cpp:2062:5:2062:13 | ChiTotal | total:m2061_12 |
9783+
| ir.cpp:2062:5:2062:13 | SideEffect | ~m2061_12 |
9784+
| ir.cpp:2062:5:2062:13 | Unary | v2062_4 |
9785+
| ir.cpp:2062:12:2062:13 | Address | &:r2062_2 |
9786+
| ir.cpp:2062:12:2062:13 | Arg(0) | 0:r2062_3 |
9787+
| ir.cpp:2062:12:2062:13 | Load | m2061_16 |
9788+
| ir.cpp:2064:15:2064:15 | Address | &:r2064_1 |
9789+
| ir.cpp:2064:19:2064:32 | Address | &:r2064_4 |
9790+
| ir.cpp:2064:19:2064:32 | Address | &:r2064_8 |
9791+
| ir.cpp:2064:19:2064:32 | Arg(0) | 0:r2064_3 |
9792+
| ir.cpp:2064:19:2064:32 | Arg(this) | this:r2064_8 |
9793+
| ir.cpp:2064:19:2064:32 | CallTarget | func:r2064_2 |
9794+
| ir.cpp:2064:19:2064:32 | CallTarget | func:r2064_9 |
9795+
| ir.cpp:2064:19:2064:32 | ChiPartial | partial:m2064_5 |
9796+
| ir.cpp:2064:19:2064:32 | ChiPartial | partial:m2064_11 |
9797+
| ir.cpp:2064:19:2064:32 | ChiPartial | partial:m2064_13 |
9798+
| ir.cpp:2064:19:2064:32 | ChiTotal | total:m2062_6 |
9799+
| ir.cpp:2064:19:2064:32 | ChiTotal | total:m2064_6 |
9800+
| ir.cpp:2064:19:2064:32 | ChiTotal | total:m2064_7 |
9801+
| ir.cpp:2064:19:2064:32 | SideEffect | ~m2062_6 |
9802+
| ir.cpp:2064:19:2064:32 | SideEffect | ~m2064_6 |
9803+
| ir.cpp:2064:19:2064:32 | StoreValue | r2064_8 |
9804+
| ir.cpp:2064:19:2064:32 | Unary | r2064_4 |
9805+
| ir.cpp:2065:5:2065:12 | CallTarget | func:r2065_1 |
9806+
| ir.cpp:2065:5:2065:12 | ChiPartial | partial:m2065_5 |
9807+
| ir.cpp:2065:5:2065:12 | ChiTotal | total:m2064_12 |
9808+
| ir.cpp:2065:5:2065:12 | SideEffect | ~m2064_12 |
9809+
| ir.cpp:2065:5:2065:12 | Unary | v2065_4 |
9810+
| ir.cpp:2065:12:2065:12 | Address | &:r2065_2 |
9811+
| ir.cpp:2065:12:2065:12 | Arg(0) | 0:r2065_3 |
9812+
| ir.cpp:2065:12:2065:12 | Load | m2064_15 |
96399813
| perf-regression.cpp:6:3:6:5 | Address | &:r6_5 |
96409814
| perf-regression.cpp:6:3:6:5 | Address | &:r6_5 |
96419815
| perf-regression.cpp:6:3:6:5 | Address | &:r6_7 |

0 commit comments

Comments
 (0)