Skip to content

Commit 955f9c7

Browse files
committed
C++: Add a failing testcase.
1 parent 4c01c06 commit 955f9c7

10 files changed

+290
-0
lines changed

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

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20323,6 +20323,56 @@ ir.cpp:
2032320323
# 2445| Type = [Class] ClassWithDestructor
2032420324
# 2445| ValueCategory = xvalue
2032520325
# 2446| getStmt(1): [ReturnStmt] return ...
20326+
# 2449| [CopyAssignmentOperator] rvalue_conversion_with_destructor::A& rvalue_conversion_with_destructor::A::operator=(rvalue_conversion_with_destructor::A const&)
20327+
# 2449| <params>:
20328+
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
20329+
#-----| Type = [LValueReferenceType] const A &
20330+
# 2449| [MoveAssignmentOperator] rvalue_conversion_with_destructor::A& rvalue_conversion_with_destructor::A::operator=(rvalue_conversion_with_destructor::A&&)
20331+
# 2449| <params>:
20332+
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
20333+
#-----| Type = [RValueReferenceType] A &&
20334+
# 2453| [CopyAssignmentOperator] rvalue_conversion_with_destructor::B& rvalue_conversion_with_destructor::B::operator=(rvalue_conversion_with_destructor::B const&)
20335+
# 2453| <params>:
20336+
#-----| getParameter(0): [Parameter] (unnamed parameter 0)
20337+
#-----| Type = [LValueReferenceType] const B &
20338+
# 2453| [Constructor] void rvalue_conversion_with_destructor::B::B()
20339+
# 2453| <params>:
20340+
# 2455| [Destructor] void rvalue_conversion_with_destructor::B::~B()
20341+
# 2455| <params>:
20342+
# 2457| [ConstMemberFunction] rvalue_conversion_with_destructor::A* rvalue_conversion_with_destructor::B::operator->() const
20343+
# 2457| <params>:
20344+
# 2460| [TopLevelFunction] rvalue_conversion_with_destructor::B rvalue_conversion_with_destructor::get()
20345+
# 2460| <params>:
20346+
# 2462| [TopLevelFunction] void rvalue_conversion_with_destructor::test()
20347+
# 2462| <params>:
20348+
# 2463| getEntryPoint(): [BlockStmt] { ... }
20349+
# 2464| getStmt(0): [DeclStmt] declaration
20350+
# 2464| getDeclarationEntry(0): [VariableDeclarationEntry] definition of a
20351+
# 2464| Type = [IntType] unsigned int
20352+
# 2464| getVariable().getInitializer(): [Initializer] initializer for a
20353+
# 2464| getExpr(): [PointerFieldAccess] a
20354+
# 2464| Type = [IntType] unsigned int
20355+
# 2464| ValueCategory = prvalue(load)
20356+
# 2464| getQualifier(): [FunctionCall] call to operator->
20357+
# 2464| Type = [PointerType] A *
20358+
# 2464| ValueCategory = prvalue
20359+
# 2464| getQualifier(): [FunctionCall] call to get
20360+
# 2464| Type = [Struct] B
20361+
# 2464| ValueCategory = prvalue
20362+
# 2464| getQualifier().getFullyConverted(): [CStyleCast] (const B)...
20363+
# 2464| Conversion = [PrvalueAdjustmentConversion] prvalue adjustment conversion
20364+
# 2464| Type = [SpecifiedType] const B
20365+
# 2464| ValueCategory = prvalue
20366+
# 2464| getExpr(): [TemporaryObjectExpr] temporary object
20367+
# 2464| Type = [Struct] B
20368+
# 2464| ValueCategory = prvalue(load)
20369+
# 2464| getImplicitDestructorCall(0): [DestructorCall] call to ~B
20370+
# 2464| Type = [VoidType] void
20371+
# 2464| ValueCategory = prvalue
20372+
# 2464| getQualifier(): [ReuseExpr] reuse of temporary object
20373+
# 2464| Type = [Struct] B
20374+
# 2464| ValueCategory = xvalue
20375+
# 2465| getStmt(1): [ReturnStmt] return ...
2032620376
perf-regression.cpp:
2032720377
# 4| [CopyAssignmentOperator] Big& Big::operator=(Big const&)
2032820378
# 4| <params>:

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

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16067,6 +16067,59 @@ ir.cpp:
1606716067
# 2443| v2443_8(void) = AliasedUse : ~m2445_24
1606816068
# 2443| v2443_9(void) = ExitFunction :
1606916069

16070+
# 2462| void rvalue_conversion_with_destructor::test()
16071+
# 2462| Block 0
16072+
# 2462| v2462_1(void) = EnterFunction :
16073+
# 2462| m2462_2(unknown) = AliasedDefinition :
16074+
# 2462| m2462_3(unknown) = InitializeNonLocal :
16075+
# 2462| m2462_4(unknown) = Chi : total:m2462_2, partial:m2462_3
16076+
# 2464| r2464_1(glval<unsigned int>) = VariableAddress[a] :
16077+
# 2464| r2464_2(glval<B>) = VariableAddress[#temp2464:18] :
16078+
# 2464| r2464_3(glval<unknown>) = FunctionAddress[get] :
16079+
# 2464| r2464_4(B) = Call[get] : func:r2464_3
16080+
# 2464| m2464_5(unknown) = ^CallSideEffect : ~m2462_4
16081+
# 2464| m2464_6(unknown) = Chi : total:m2462_4, partial:m2464_5
16082+
# 2464| m2464_7(B) = Store[#temp2464:18] : &:r2464_2, r2464_4
16083+
# 2464| r2464_8(glval<B>) = Convert : r2464_2
16084+
# 2464| r2464_9(glval<unknown>) = FunctionAddress[operator->] :
16085+
# 2464| r2464_10(A *) = Call[operator->] : func:r2464_9, this:r2464_8
16086+
# 2464| m2464_11(unknown) = ^CallSideEffect : ~m2464_6
16087+
# 2464| m2464_12(unknown) = Chi : total:m2464_6, partial:m2464_11
16088+
# 2464| v2464_13(void) = ^IndirectReadSideEffect[-1] : &:r2464_8, m2464_7
16089+
# 2464| r2464_14(glval<unsigned int>) = FieldAddress[a] : r2464_10
16090+
#-----| Goto -> Block 3
16091+
#-----| Goto -> Block 3
16092+
16093+
# 2464| Block 1
16094+
# 2464| m2464_15(unsigned int) = Store[a] : &:r2464_1, r2464_16
16095+
# 2465| v2465_1(void) = NoOp :
16096+
# 2462| v2462_5(void) = ReturnVoid :
16097+
# 2462| v2462_6(void) = AliasedUse : ~m2464_25, ~m2464_37
16098+
# 2462| v2462_7(void) = ExitFunction :
16099+
16100+
# 2464| Block 2
16101+
# 2464| r2464_16(unsigned int) = Load[?] : &:r2464_14, ~m2464_25, ~m2464_37
16102+
#-----| Goto (back edge) -> Block 3
16103+
#-----| Goto (back edge) -> Block 3
16104+
16105+
# 2464| Block 3
16106+
# 2464| m2464_31(B) = Phi : from 0:m2464_7, from 2:m2464_28, from 2:m2464_40
16107+
# 2464| m2464_32(unknown) = Phi : from 0:~m2464_12, from 2:~m2464_25, from 2:~m2464_37
16108+
# 2464| r2464_33(glval<B>) = CopyValue : r2464_2
16109+
# 2464| r2464_34(glval<unknown>) = FunctionAddress[~B] :
16110+
# 2464| v2464_35(void) = Call[~B] : func:r2464_22, func:r2464_34, this:r2464_21, this:r2464_33
16111+
# 2464| m2464_36(unknown) = ^CallSideEffect : ~m2464_18, ~m2464_20, ~m2464_30, ~m2464_32
16112+
# 2464| m2464_37(unknown) = Chi : total:m2464_18, total:m2464_20, total:m2464_30, total:m2464_32, partial:m2464_24, partial:m2464_36
16113+
# 2464| v2464_38(void) = ^IndirectReadSideEffect[-1] : &:r2464_21, &:r2464_33, m2464_17, m2464_19, m2464_29, m2464_31
16114+
# 2464| m2464_39(B) = ^IndirectMayWriteSideEffect[-1] : &:r2464_21, &:r2464_33
16115+
# 2464| m2464_40(B) = Chi : total:m2464_17, total:m2464_19, total:m2464_29, total:m2464_31, partial:m2464_27, partial:m2464_39
16116+
#-----| Goto (back edge) -> Block 1
16117+
#-----| Goto (back edge) -> Block 2
16118+
16119+
# 2464| Block 3
16120+
#-----| Goto (back edge) -> Block 1
16121+
#-----| Goto (back edge) -> Block 2
16122+
1607016123
perf-regression.cpp:
1607116124
# 6| void Big::Big()
1607216125
# 6| Block 0

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

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,18 @@ duplicateChiOperand
77
sideEffectWithoutPrimary
88
instructionWithoutSuccessor
99
ambiguousSuccessors
10+
| ir.cpp:2464:18:2464:22 | Chi: reuse of temporary object | Instruction 'Chi: reuse of temporary object' has 2 successors of kind 'Goto' in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
1011
unexplainedLoop
12+
| ir.cpp:2464:18:2464:22 | Call: call to ~B | Instruction 'Call: call to ~B' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
13+
| ir.cpp:2464:18:2464:22 | CallSideEffect: call to ~B | Instruction 'CallSideEffect: call to ~B' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
14+
| ir.cpp:2464:18:2464:22 | Chi: call to ~B | Instruction 'Chi: call to ~B' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
15+
| ir.cpp:2464:18:2464:22 | Chi: reuse of temporary object | Instruction 'Chi: reuse of temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
16+
| ir.cpp:2464:18:2464:22 | CopyValue: reuse of temporary object | Instruction 'CopyValue: reuse of temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
17+
| ir.cpp:2464:18:2464:22 | FunctionAddress: call to ~B | Instruction 'FunctionAddress: call to ~B' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
18+
| ir.cpp:2464:18:2464:22 | IndirectMayWriteSideEffect: reuse of temporary object | Instruction 'IndirectMayWriteSideEffect: reuse of temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
19+
| ir.cpp:2464:18:2464:22 | IndirectReadSideEffect: reuse of temporary object | Instruction 'IndirectReadSideEffect: reuse of temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
20+
| ir.cpp:2464:18:2464:22 | Phi: reuse of temporary object | Instruction 'Phi: reuse of temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
21+
| ir.cpp:2464:25:2464:25 | Load: a | Instruction 'Load: a' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
1122
unnecessaryPhiInstruction
1223
memoryOperandDefinitionIsUnmodeled
1324
operandAcrossFunctions
@@ -18,8 +29,11 @@ containsLoopOfForwardEdges
1829
missingIRType
1930
multipleIRTypes
2031
lostReachability
32+
| ir.cpp:2464:25:2464:25 | Load: a | Block 'Load: a' is not reachable by traversing only forward edges in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
33+
| ir.cpp:2464:25:2464:25 | Store: a | Block 'Store: a' is not reachable by traversing only forward edges in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
2134
backEdgeCountMismatch
2235
useNotDominatedByDefinition
36+
| ir.cpp:2464:25:2464:25 | StoreValue | Operand 'StoreValue' is not dominated by its definition in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
2337
switchInstructionWithoutDefaultEdge
2438
notMarkedAsConflated
2539
wronglyMarkedAsConflated

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

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,19 @@ duplicateChiOperand
1010
sideEffectWithoutPrimary
1111
instructionWithoutSuccessor
1212
ambiguousSuccessors
13+
| ir.cpp:2464:18:2464:22 | Chi: reuse of temporary object | Instruction 'Chi: reuse of temporary object' has 2 successors of kind 'Goto' in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
1314
unexplainedLoop
15+
| ir.cpp:2464:18:2464:22 | Call: call to ~B | Instruction 'Call: call to ~B' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
16+
| ir.cpp:2464:18:2464:22 | CallSideEffect: call to ~B | Instruction 'CallSideEffect: call to ~B' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
17+
| ir.cpp:2464:18:2464:22 | Chi: call to ~B | Instruction 'Chi: call to ~B' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
18+
| ir.cpp:2464:18:2464:22 | Chi: reuse of temporary object | Instruction 'Chi: reuse of temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
19+
| ir.cpp:2464:18:2464:22 | CopyValue: reuse of temporary object | Instruction 'CopyValue: reuse of temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
20+
| ir.cpp:2464:18:2464:22 | FunctionAddress: call to ~B | Instruction 'FunctionAddress: call to ~B' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
21+
| ir.cpp:2464:18:2464:22 | IndirectMayWriteSideEffect: reuse of temporary object | Instruction 'IndirectMayWriteSideEffect: reuse of temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
22+
| ir.cpp:2464:18:2464:22 | IndirectReadSideEffect: reuse of temporary object | Instruction 'IndirectReadSideEffect: reuse of temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
23+
| ir.cpp:2464:18:2464:22 | Phi: reuse of temporary object | Instruction 'Phi: reuse of temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
24+
| ir.cpp:2464:18:2464:22 | Phi: reuse of temporary object | Instruction 'Phi: reuse of temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
25+
| ir.cpp:2464:25:2464:25 | Load: a | Instruction 'Load: a' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
1426
unnecessaryPhiInstruction
1527
memoryOperandDefinitionIsUnmodeled
1628
operandAcrossFunctions
@@ -21,8 +33,11 @@ containsLoopOfForwardEdges
2133
missingIRType
2234
multipleIRTypes
2335
lostReachability
36+
| ir.cpp:2464:25:2464:25 | Load: a | Block 'Load: a' is not reachable by traversing only forward edges in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
37+
| ir.cpp:2464:25:2464:25 | Store: a | Block 'Store: a' is not reachable by traversing only forward edges in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
2438
backEdgeCountMismatch
2539
useNotDominatedByDefinition
40+
| ir.cpp:2464:25:2464:25 | StoreValue | Operand 'StoreValue' is not dominated by its definition in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
2641
switchInstructionWithoutDefaultEdge
2742
notMarkedAsConflated
2843
wronglyMarkedAsConflated

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

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2445,4 +2445,24 @@ void new_with_destructor(ClassWithDestructor a)
24452445
ByValueConstructor* b = new ByValueConstructor(a);
24462446
}
24472447

2448+
namespace rvalue_conversion_with_destructor {
2449+
struct A {
2450+
unsigned a;
2451+
};
2452+
2453+
struct B
2454+
{
2455+
~B();
2456+
2457+
inline A *operator->() const;
2458+
};
2459+
2460+
B get();
2461+
2462+
void test()
2463+
{
2464+
auto a = get()->a;
2465+
}
2466+
}
2467+
24482468
// semmle-extractor-options: -std=c++20 --clang

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

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13515,6 +13515,65 @@
1351513515
| ir.cpp:2445:52:2445:52 | SideEffect | ~m2445_17 |
1351613516
| ir.cpp:2445:52:2445:52 | StoreValue | r2445_12 |
1351713517
| ir.cpp:2445:52:2445:52 | Unary | r2445_10 |
13518+
| ir.cpp:2462:10:2462:13 | ChiPartial | partial:m2462_3 |
13519+
| ir.cpp:2462:10:2462:13 | ChiTotal | total:m2462_2 |
13520+
| ir.cpp:2462:10:2462:13 | SideEffect | ~m2464_25 |
13521+
| ir.cpp:2462:10:2462:13 | SideEffect | ~m2464_37 |
13522+
| ir.cpp:2464:14:2464:14 | Address | &:r2464_1 |
13523+
| ir.cpp:2464:18:2464:20 | CallTarget | func:r2464_3 |
13524+
| ir.cpp:2464:18:2464:20 | ChiPartial | partial:m2464_5 |
13525+
| ir.cpp:2464:18:2464:20 | ChiTotal | total:m2462_4 |
13526+
| ir.cpp:2464:18:2464:20 | SideEffect | ~m2462_4 |
13527+
| ir.cpp:2464:18:2464:20 | StoreValue | r2464_4 |
13528+
| ir.cpp:2464:18:2464:22 | Address | &:r2464_2 |
13529+
| ir.cpp:2464:18:2464:22 | Address | &:r2464_8 |
13530+
| ir.cpp:2464:18:2464:22 | Address | &:r2464_21 |
13531+
| ir.cpp:2464:18:2464:22 | Address | &:r2464_21 |
13532+
| ir.cpp:2464:18:2464:22 | Address | &:r2464_33 |
13533+
| ir.cpp:2464:18:2464:22 | Address | &:r2464_33 |
13534+
| ir.cpp:2464:18:2464:22 | Arg(this) | this:r2464_8 |
13535+
| ir.cpp:2464:18:2464:22 | Arg(this) | this:r2464_21 |
13536+
| ir.cpp:2464:18:2464:22 | Arg(this) | this:r2464_33 |
13537+
| ir.cpp:2464:18:2464:22 | CallTarget | func:r2464_22 |
13538+
| ir.cpp:2464:18:2464:22 | CallTarget | func:r2464_34 |
13539+
| ir.cpp:2464:18:2464:22 | ChiPartial | partial:m2464_24 |
13540+
| ir.cpp:2464:18:2464:22 | ChiPartial | partial:m2464_27 |
13541+
| ir.cpp:2464:18:2464:22 | ChiPartial | partial:m2464_36 |
13542+
| ir.cpp:2464:18:2464:22 | ChiPartial | partial:m2464_39 |
13543+
| ir.cpp:2464:18:2464:22 | ChiTotal | total:m2464_17 |
13544+
| ir.cpp:2464:18:2464:22 | ChiTotal | total:m2464_18 |
13545+
| ir.cpp:2464:18:2464:22 | ChiTotal | total:m2464_19 |
13546+
| ir.cpp:2464:18:2464:22 | ChiTotal | total:m2464_20 |
13547+
| ir.cpp:2464:18:2464:22 | ChiTotal | total:m2464_29 |
13548+
| ir.cpp:2464:18:2464:22 | ChiTotal | total:m2464_30 |
13549+
| ir.cpp:2464:18:2464:22 | ChiTotal | total:m2464_31 |
13550+
| ir.cpp:2464:18:2464:22 | ChiTotal | total:m2464_32 |
13551+
| ir.cpp:2464:18:2464:22 | Phi | from 0:m2464_7 |
13552+
| ir.cpp:2464:18:2464:22 | Phi | from 0:~m2464_12 |
13553+
| ir.cpp:2464:18:2464:22 | Phi | from 2:m2464_28 |
13554+
| ir.cpp:2464:18:2464:22 | Phi | from 2:m2464_40 |
13555+
| ir.cpp:2464:18:2464:22 | Phi | from 2:~m2464_25 |
13556+
| ir.cpp:2464:18:2464:22 | Phi | from 2:~m2464_37 |
13557+
| ir.cpp:2464:18:2464:22 | SideEffect | m2464_7 |
13558+
| ir.cpp:2464:18:2464:22 | SideEffect | m2464_17 |
13559+
| ir.cpp:2464:18:2464:22 | SideEffect | m2464_19 |
13560+
| ir.cpp:2464:18:2464:22 | SideEffect | m2464_29 |
13561+
| ir.cpp:2464:18:2464:22 | SideEffect | m2464_31 |
13562+
| ir.cpp:2464:18:2464:22 | SideEffect | ~m2464_18 |
13563+
| ir.cpp:2464:18:2464:22 | SideEffect | ~m2464_20 |
13564+
| ir.cpp:2464:18:2464:22 | SideEffect | ~m2464_30 |
13565+
| ir.cpp:2464:18:2464:22 | SideEffect | ~m2464_32 |
13566+
| ir.cpp:2464:18:2464:22 | Unary | r2464_2 |
13567+
| ir.cpp:2464:18:2464:22 | Unary | r2464_2 |
13568+
| ir.cpp:2464:23:2464:23 | CallTarget | func:r2464_9 |
13569+
| ir.cpp:2464:23:2464:23 | ChiPartial | partial:m2464_11 |
13570+
| ir.cpp:2464:23:2464:23 | ChiTotal | total:m2464_6 |
13571+
| ir.cpp:2464:23:2464:23 | SideEffect | ~m2464_6 |
13572+
| ir.cpp:2464:23:2464:23 | Unary | r2464_10 |
13573+
| ir.cpp:2464:25:2464:25 | Address | &:r2464_14 |
13574+
| ir.cpp:2464:25:2464:25 | Load | ~m2464_25 |
13575+
| ir.cpp:2464:25:2464:25 | Load | ~m2464_37 |
13576+
| ir.cpp:2464:25:2464:25 | StoreValue | r2464_16 |
1351813577
| perf-regression.cpp:6:3:6:5 | Address | &:r6_5 |
1351913578
| perf-regression.cpp:6:3:6:5 | Address | &:r6_5 |
1352013579
| perf-regression.cpp:6:3:6:5 | Address | &:r6_7 |

0 commit comments

Comments
 (0)