Skip to content

Commit dd97584

Browse files
committed
C++: fix for duplicated parent of ReturnVoid statements
1 parent 6f7f68f commit dd97584

File tree

7 files changed

+187
-101
lines changed

7 files changed

+187
-101
lines changed

cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedElement.qll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -616,7 +616,7 @@ newtype TTranslatedElement =
616616
exists(ArrayOrVectorAggregateLiteral initList |
617617
initList.getAnElementExpr(_).getFullyConverted() = expr
618618
) or
619-
exists(ReturnStmt returnStmt | returnStmt.getExpr().getFullyConverted() = expr) or
619+
exists(ReturnStmt returnStmt | returnStmt.getExpr().getFullyConverted() = expr and hasReturnValue(returnStmt.getEnclosingFunction())) or
620620
exists(ConstructorFieldInit fieldInit | fieldInit.getExpr().getFullyConverted() = expr) or
621621
exists(NewExpr newExpr | newExpr.getInitializer().getFullyConverted() = expr) or
622622
exists(ThrowExpr throw | throw.getExpr().getFullyConverted() = expr) or

cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedStmt.qll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -474,7 +474,7 @@ class TranslatedReturnVoidExpressionStmt extends TranslatedReturnStmt {
474474
override Instruction getALastInstructionInternal() {
475475
if this.hasAnImplicitDestructorCall()
476476
then
477-
result = this.getChildInternal(max(int id | exists(this.getChild(id)))).getALastInstruction()
477+
result = this.getChild(max(int id | exists(this.getChild(id)))).getALastInstruction()
478478
else result = this.getInstruction(OnlyInstructionTag())
479479
}
480480

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

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17895,6 +17895,26 @@ ir.cpp:
1789517895
# 2292| getQualifier(): [VariableAccess] s
1789617896
# 2292| Type = [Struct] String
1789717897
# 2292| ValueCategory = lvalue
17898+
# 2294| [TopLevelFunction] void VoidReturnDestructors()
17899+
# 2294| <params>:
17900+
# 2294| getEntryPoint(): [BlockStmt] { ... }
17901+
# 2295| getStmt(0): [DeclStmt] declaration
17902+
# 2295| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s
17903+
# 2295| Type = [Struct] String
17904+
# 2295| getVariable().getInitializer(): [Initializer] initializer for s
17905+
# 2295| getExpr(): [ConstructorCall] call to String
17906+
# 2295| Type = [VoidType] void
17907+
# 2295| ValueCategory = prvalue
17908+
# 2296| getStmt(1): [ReturnStmt] return ...
17909+
# 2296| getExpr(): [FunctionCall] call to VoidFunc
17910+
# 2296| Type = [VoidType] void
17911+
# 2296| ValueCategory = prvalue
17912+
# 2297| getImplicitDestructorCall(0): [DestructorCall] call to ~String
17913+
# 2297| Type = [VoidType] void
17914+
# 2297| ValueCategory = prvalue
17915+
# 2297| getQualifier(): [VariableAccess] s
17916+
# 2297| Type = [Struct] String
17917+
# 2297| ValueCategory = lvalue
1789817918
perf-regression.cpp:
1789917919
# 4| [CopyAssignmentOperator] Big& Big::operator=(Big const&)
1790017920
# 4| <params>:

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

Lines changed: 70 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -14268,65 +14268,61 @@ ir.cpp:
1426814268
# 2277| r2277_1(glval<bool>) = VariableAddress[b] :
1426914269
# 2277| r2277_2(bool) = Load[b] : &:r2277_1, m2275_6
1427014270
# 2277| v2277_3(void) = ConditionalBranch : r2277_2
14271-
#-----| False -> Block 4
14272-
#-----| True -> Block 3
14271+
#-----| False -> Block 3
14272+
#-----| True -> Block 2
1427314273

1427414274
# 2275| Block 1
14275-
# 2275| m2275_7(unknown) = Phi : from 2:~m2284_21, from 2:~m2284_5, from 5:~m2284_21, from 5:~m2284_5, from 3:~m2284_13, from 2:~m2284_21, from 2:~m2284_5, from 5:~m2284_21, from 5:~m2284_5, from 6:~m2284_30
14275+
# 2275| m2275_7(unknown) = Phi : from 2:~m2284_5, from 4:~m2284_13, from 5:~m2284_22
1427614276
# 2275| v2275_8(void) = ReturnVoid :
1427714277
# 2275| v2275_9(void) = AliasedUse : ~m2275_7
1427814278
# 2275| v2275_10(void) = ExitFunction :
1427914279

14280-
# 2278| Block 3
14281-
# 2278| v2278_1(void) = NoOp :
14282-
# 2284| r2284_9(glval<String>) = VariableAddress[s] :
14283-
# 2284| r2284_10(glval<unknown>) = FunctionAddress[~String] :
14284-
# 2284| v2284_11(void) = Call[~String] : func:r2284_10, this:r2284_9
14285-
# 2284| m2284_12(unknown) = ^CallSideEffect : ~m2276_6
14286-
# 2284| m2284_13(unknown) = Chi : total:m2276_6, partial:m2284_12
14287-
# 2284| v2284_14(void) = ^IndirectReadSideEffect[-1] : &:r2284_9, m2276_8
14288-
# 2284| m2284_15(String) = ^IndirectMayWriteSideEffect[-1] : &:r2284_9
14289-
# 2284| m2284_16(String) = Chi : total:m2276_8, partial:m2284_15
14280+
# 2278| Block 2
14281+
# 2278| v2278_1(void) = NoOp :
14282+
# 2284| r2284_1(glval<String>) = VariableAddress[s] :
14283+
# 2284| r2284_2(glval<unknown>) = FunctionAddress[~String] :
14284+
# 2284| v2284_3(void) = Call[~String] : func:r2284_2, this:r2284_1
14285+
# 2284| m2284_4(unknown) = ^CallSideEffect : ~m2276_6
14286+
# 2284| m2284_5(unknown) = Chi : total:m2276_6, partial:m2284_4
14287+
# 2284| v2284_6(void) = ^IndirectReadSideEffect[-1] : &:r2284_1, m2276_8
14288+
# 2284| m2284_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2284_1
14289+
# 2284| m2284_8(String) = Chi : total:m2276_8, partial:m2284_7
1429014290
#-----| Goto -> Block 1
1429114291

14292-
# 2280| Block 4
14292+
# 2280| Block 3
1429314293
# 2280| r2280_1(glval<bool>) = VariableAddress[b] :
1429414294
# 2280| r2280_2(bool) = Load[b] : &:r2280_1, m2275_6
1429514295
# 2280| v2280_3(void) = ConditionalBranch : r2280_2
14296-
#-----| False -> Block 6
14297-
#-----| True -> Block 5
14298-
#-----| True -> Block 5
14296+
#-----| False -> Block 5
14297+
#-----| True -> Block 4
1429914298

14300-
# 2281| Block 5
14301-
# 2281| r2281_6(glval<unknown>) = FunctionAddress[VoidFunc] :
14302-
# 2281| v2281_7(void) = Call[VoidFunc] : func:r2281_1, func:r2281_6
14303-
# 2281| m2281_8(unknown) = ^CallSideEffect : ~m2276_6
14304-
# 2281| m2281_9(unknown) = Chi : total:m2276_6, partial:m2281_3, partial:m2281_8
14299+
# 2281| Block 4
14300+
# 2281| r2281_1(glval<unknown>) = FunctionAddress[VoidFunc] :
14301+
# 2281| v2281_2(void) = Call[VoidFunc] : func:r2281_1
14302+
# 2281| m2281_3(unknown) = ^CallSideEffect : ~m2276_6
14303+
# 2281| m2281_4(unknown) = Chi : total:m2276_6, partial:m2281_3
1430514304
# 2281| v2281_5(void) = NoOp :
14306-
# 2284| r2284_1(glval<String>) = VariableAddress[s] :
14307-
# 2284| r2284_2(glval<unknown>) = FunctionAddress[~String] :
14308-
# 2284| v2284_3(void) = Call[~String] : func:r2284_18, func:r2284_2, this:r2284_1, this:r2284_17
14309-
# 2284| m2284_4(unknown) = ^CallSideEffect : ~m2281_4, ~m2281_9
14310-
# 2284| m2284_5(unknown) = Chi : total:m2281_4, total:m2281_9, partial:m2284_20, partial:m2284_4
14311-
# 2284| v2284_6(void) = ^IndirectReadSideEffect[-1] : &:r2284_1, &:r2284_17, m2276_8
14312-
# 2284| m2284_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2284_1, &:r2284_17
14313-
# 2284| m2284_8(String) = Chi : total:m2276_8, partial:m2284_23, partial:m2284_7
14314-
#-----| Goto -> Block 1
14315-
14316-
# 2281| Block 5
14305+
# 2284| r2284_9(glval<String>) = VariableAddress[s] :
14306+
# 2284| r2284_10(glval<unknown>) = FunctionAddress[~String] :
14307+
# 2284| v2284_11(void) = Call[~String] : func:r2284_10, this:r2284_9
14308+
# 2284| m2284_12(unknown) = ^CallSideEffect : ~m2281_4
14309+
# 2284| m2284_13(unknown) = Chi : total:m2281_4, partial:m2284_12
14310+
# 2284| v2284_14(void) = ^IndirectReadSideEffect[-1] : &:r2284_9, m2276_8
14311+
# 2284| m2284_15(String) = ^IndirectMayWriteSideEffect[-1] : &:r2284_9
14312+
# 2284| m2284_16(String) = Chi : total:m2276_8, partial:m2284_15
1431714313
#-----| Goto -> Block 1
1431814314

14319-
# 2283| Block 6
14315+
# 2283| Block 5
1432014316
# 2283| r2283_1(glval<String>) = VariableAddress[s] :
14321-
# 2284| v2284_25(void) = NoOp :
14322-
# 2284| r2284_26(glval<String>) = VariableAddress[s] :
14323-
# 2284| r2284_27(glval<unknown>) = FunctionAddress[~String] :
14324-
# 2284| v2284_28(void) = Call[~String] : func:r2284_27, this:r2284_26
14325-
# 2284| m2284_29(unknown) = ^CallSideEffect : ~m2276_6
14326-
# 2284| m2284_30(unknown) = Chi : total:m2276_6, partial:m2284_29
14327-
# 2284| v2284_31(void) = ^IndirectReadSideEffect[-1] : &:r2284_26, m2276_8
14328-
# 2284| m2284_32(String) = ^IndirectMayWriteSideEffect[-1] : &:r2284_26
14329-
# 2284| m2284_33(String) = Chi : total:m2276_8, partial:m2284_32
14317+
# 2284| v2284_17(void) = NoOp :
14318+
# 2284| r2284_18(glval<String>) = VariableAddress[s] :
14319+
# 2284| r2284_19(glval<unknown>) = FunctionAddress[~String] :
14320+
# 2284| v2284_20(void) = Call[~String] : func:r2284_19, this:r2284_18
14321+
# 2284| m2284_21(unknown) = ^CallSideEffect : ~m2276_6
14322+
# 2284| m2284_22(unknown) = Chi : total:m2276_6, partial:m2284_21
14323+
# 2284| v2284_23(void) = ^IndirectReadSideEffect[-1] : &:r2284_18, m2276_8
14324+
# 2284| m2284_24(String) = ^IndirectMayWriteSideEffect[-1] : &:r2284_18
14325+
# 2284| m2284_25(String) = Chi : total:m2276_8, partial:m2284_24
1433014326
#-----| Goto -> Block 1
1433114327

1433214328
# 2286| int IfReturnDestructors3(bool)
@@ -14387,6 +14383,37 @@ ir.cpp:
1438714383
# 2292| m2292_16(String) = Chi : total:m2287_8, partial:m2292_15
1438814384
#-----| Goto -> Block 1
1438914385

14386+
# 2294| void VoidReturnDestructors()
14387+
# 2294| Block 0
14388+
# 2294| v2294_1(void) = EnterFunction :
14389+
# 2294| m2294_2(unknown) = AliasedDefinition :
14390+
# 2294| m2294_3(unknown) = InitializeNonLocal :
14391+
# 2294| m2294_4(unknown) = Chi : total:m2294_2, partial:m2294_3
14392+
# 2295| r2295_1(glval<String>) = VariableAddress[s] :
14393+
# 2295| m2295_2(String) = Uninitialized[s] : &:r2295_1
14394+
# 2295| r2295_3(glval<unknown>) = FunctionAddress[String] :
14395+
# 2295| v2295_4(void) = Call[String] : func:r2295_3, this:r2295_1
14396+
# 2295| m2295_5(unknown) = ^CallSideEffect : ~m2294_4
14397+
# 2295| m2295_6(unknown) = Chi : total:m2294_4, partial:m2295_5
14398+
# 2295| m2295_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2295_1
14399+
# 2295| m2295_8(String) = Chi : total:m2295_2, partial:m2295_7
14400+
# 2296| r2296_1(glval<unknown>) = FunctionAddress[VoidFunc] :
14401+
# 2296| v2296_2(void) = Call[VoidFunc] : func:r2296_1
14402+
# 2296| m2296_3(unknown) = ^CallSideEffect : ~m2295_6
14403+
# 2296| m2296_4(unknown) = Chi : total:m2295_6, partial:m2296_3
14404+
# 2296| v2296_5(void) = NoOp :
14405+
# 2297| r2297_1(glval<String>) = VariableAddress[s] :
14406+
# 2297| r2297_2(glval<unknown>) = FunctionAddress[~String] :
14407+
# 2297| v2297_3(void) = Call[~String] : func:r2297_2, this:r2297_1
14408+
# 2297| m2297_4(unknown) = ^CallSideEffect : ~m2296_4
14409+
# 2297| m2297_5(unknown) = Chi : total:m2296_4, partial:m2297_4
14410+
# 2297| v2297_6(void) = ^IndirectReadSideEffect[-1] : &:r2297_1, m2295_8
14411+
# 2297| m2297_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2297_1
14412+
# 2297| m2297_8(String) = Chi : total:m2295_8, partial:m2297_7
14413+
# 2294| v2294_5(void) = ReturnVoid :
14414+
# 2294| v2294_6(void) = AliasedUse : ~m2297_5
14415+
# 2294| v2294_7(void) = ExitFunction :
14416+
1439014417
perf-regression.cpp:
1439114418
# 6| void Big::Big()
1439214419
# 6| Block 0

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2291,4 +2291,9 @@ int IfReturnDestructors3(bool b) {
22912291
return 0;
22922292
}
22932293

2294+
void VoidReturnDestructors() {
2295+
String s;
2296+
return VoidFunc();
2297+
}
2298+
22942299
// semmle-extractor-options: -std=c++20 --clang

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

Lines changed: 34 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -11765,11 +11765,8 @@
1176511765
| ir.cpp:2275:6:2275:24 | ChiPartial | partial:m2275_3 |
1176611766
| ir.cpp:2275:6:2275:24 | ChiTotal | total:m2275_2 |
1176711767
| ir.cpp:2275:6:2275:24 | Phi | from 2:~m2284_5 |
11768-
| ir.cpp:2275:6:2275:24 | Phi | from 2:~m2284_21 |
11769-
| ir.cpp:2275:6:2275:24 | Phi | from 3:~m2284_13 |
11770-
| ir.cpp:2275:6:2275:24 | Phi | from 5:~m2284_5 |
11771-
| ir.cpp:2275:6:2275:24 | Phi | from 5:~m2284_21 |
11772-
| ir.cpp:2275:6:2275:24 | Phi | from 6:~m2284_30 |
11768+
| ir.cpp:2275:6:2275:24 | Phi | from 4:~m2284_13 |
11769+
| ir.cpp:2275:6:2275:24 | Phi | from 5:~m2284_22 |
1177311770
| ir.cpp:2275:6:2275:24 | SideEffect | ~m2275_7 |
1177411771
| ir.cpp:2275:31:2275:31 | Address | &:r2275_5 |
1177511772
| ir.cpp:2276:12:2276:12 | Address | &:r2276_1 |
@@ -11788,49 +11785,39 @@
1178811785
| ir.cpp:2280:8:2280:8 | Condition | r2280_2 |
1178911786
| ir.cpp:2280:8:2280:8 | Load | m2275_6 |
1179011787
| ir.cpp:2281:16:2281:23 | CallTarget | func:r2281_1 |
11791-
| ir.cpp:2281:16:2281:23 | CallTarget | func:r2281_6 |
1179211788
| ir.cpp:2281:16:2281:23 | ChiPartial | partial:m2281_3 |
11793-
| ir.cpp:2281:16:2281:23 | ChiPartial | partial:m2281_8 |
1179411789
| ir.cpp:2281:16:2281:23 | ChiTotal | total:m2276_6 |
1179511790
| ir.cpp:2281:16:2281:23 | SideEffect | ~m2276_6 |
1179611791
| ir.cpp:2284:1:2284:1 | Address | &:r2284_1 |
1179711792
| ir.cpp:2284:1:2284:1 | Address | &:r2284_1 |
1179811793
| ir.cpp:2284:1:2284:1 | Address | &:r2284_9 |
1179911794
| ir.cpp:2284:1:2284:1 | Address | &:r2284_9 |
11800-
| ir.cpp:2284:1:2284:1 | Address | &:r2284_17 |
11801-
| ir.cpp:2284:1:2284:1 | Address | &:r2284_17 |
11802-
| ir.cpp:2284:1:2284:1 | Address | &:r2284_26 |
11803-
| ir.cpp:2284:1:2284:1 | Address | &:r2284_26 |
11795+
| ir.cpp:2284:1:2284:1 | Address | &:r2284_18 |
11796+
| ir.cpp:2284:1:2284:1 | Address | &:r2284_18 |
1180411797
| ir.cpp:2284:1:2284:1 | Arg(this) | this:r2284_1 |
1180511798
| ir.cpp:2284:1:2284:1 | Arg(this) | this:r2284_9 |
11806-
| ir.cpp:2284:1:2284:1 | Arg(this) | this:r2284_17 |
11807-
| ir.cpp:2284:1:2284:1 | Arg(this) | this:r2284_26 |
11799+
| ir.cpp:2284:1:2284:1 | Arg(this) | this:r2284_18 |
1180811800
| ir.cpp:2284:1:2284:1 | CallTarget | func:r2284_2 |
1180911801
| ir.cpp:2284:1:2284:1 | CallTarget | func:r2284_10 |
11810-
| ir.cpp:2284:1:2284:1 | CallTarget | func:r2284_18 |
11811-
| ir.cpp:2284:1:2284:1 | CallTarget | func:r2284_27 |
11802+
| ir.cpp:2284:1:2284:1 | CallTarget | func:r2284_19 |
1181211803
| ir.cpp:2284:1:2284:1 | ChiPartial | partial:m2284_4 |
1181311804
| ir.cpp:2284:1:2284:1 | ChiPartial | partial:m2284_7 |
1181411805
| ir.cpp:2284:1:2284:1 | ChiPartial | partial:m2284_12 |
1181511806
| ir.cpp:2284:1:2284:1 | ChiPartial | partial:m2284_15 |
11816-
| ir.cpp:2284:1:2284:1 | ChiPartial | partial:m2284_20 |
11817-
| ir.cpp:2284:1:2284:1 | ChiPartial | partial:m2284_23 |
11818-
| ir.cpp:2284:1:2284:1 | ChiPartial | partial:m2284_29 |
11819-
| ir.cpp:2284:1:2284:1 | ChiPartial | partial:m2284_32 |
11807+
| ir.cpp:2284:1:2284:1 | ChiPartial | partial:m2284_21 |
11808+
| ir.cpp:2284:1:2284:1 | ChiPartial | partial:m2284_24 |
1182011809
| ir.cpp:2284:1:2284:1 | ChiTotal | total:m2276_6 |
1182111810
| ir.cpp:2284:1:2284:1 | ChiTotal | total:m2276_6 |
1182211811
| ir.cpp:2284:1:2284:1 | ChiTotal | total:m2276_8 |
1182311812
| ir.cpp:2284:1:2284:1 | ChiTotal | total:m2276_8 |
1182411813
| ir.cpp:2284:1:2284:1 | ChiTotal | total:m2276_8 |
1182511814
| ir.cpp:2284:1:2284:1 | ChiTotal | total:m2281_4 |
11826-
| ir.cpp:2284:1:2284:1 | ChiTotal | total:m2281_9 |
1182711815
| ir.cpp:2284:1:2284:1 | SideEffect | m2276_8 |
1182811816
| ir.cpp:2284:1:2284:1 | SideEffect | m2276_8 |
1182911817
| ir.cpp:2284:1:2284:1 | SideEffect | m2276_8 |
1183011818
| ir.cpp:2284:1:2284:1 | SideEffect | ~m2276_6 |
1183111819
| ir.cpp:2284:1:2284:1 | SideEffect | ~m2276_6 |
1183211820
| ir.cpp:2284:1:2284:1 | SideEffect | ~m2281_4 |
11833-
| ir.cpp:2284:1:2284:1 | SideEffect | ~m2281_9 |
1183411821
| ir.cpp:2286:5:2286:24 | Address | &:r2286_9 |
1183511822
| ir.cpp:2286:5:2286:24 | ChiPartial | partial:m2286_3 |
1183611823
| ir.cpp:2286:5:2286:24 | ChiTotal | total:m2286_2 |
@@ -11877,6 +11864,32 @@
1187711864
| ir.cpp:2292:1:2292:1 | SideEffect | m2287_8 |
1187811865
| ir.cpp:2292:1:2292:1 | SideEffect | ~m2287_6 |
1187911866
| ir.cpp:2292:1:2292:1 | SideEffect | ~m2287_6 |
11867+
| ir.cpp:2294:6:2294:26 | ChiPartial | partial:m2294_3 |
11868+
| ir.cpp:2294:6:2294:26 | ChiTotal | total:m2294_2 |
11869+
| ir.cpp:2294:6:2294:26 | SideEffect | ~m2297_5 |
11870+
| ir.cpp:2295:12:2295:12 | Address | &:r2295_1 |
11871+
| ir.cpp:2295:12:2295:12 | Address | &:r2295_1 |
11872+
| ir.cpp:2295:12:2295:12 | Arg(this) | this:r2295_1 |
11873+
| ir.cpp:2295:12:2295:12 | CallTarget | func:r2295_3 |
11874+
| ir.cpp:2295:12:2295:12 | ChiPartial | partial:m2295_5 |
11875+
| ir.cpp:2295:12:2295:12 | ChiPartial | partial:m2295_7 |
11876+
| ir.cpp:2295:12:2295:12 | ChiTotal | total:m2294_4 |
11877+
| ir.cpp:2295:12:2295:12 | ChiTotal | total:m2295_2 |
11878+
| ir.cpp:2295:12:2295:12 | SideEffect | ~m2294_4 |
11879+
| ir.cpp:2296:12:2296:19 | CallTarget | func:r2296_1 |
11880+
| ir.cpp:2296:12:2296:19 | ChiPartial | partial:m2296_3 |
11881+
| ir.cpp:2296:12:2296:19 | ChiTotal | total:m2295_6 |
11882+
| ir.cpp:2296:12:2296:19 | SideEffect | ~m2295_6 |
11883+
| ir.cpp:2297:1:2297:1 | Address | &:r2297_1 |
11884+
| ir.cpp:2297:1:2297:1 | Address | &:r2297_1 |
11885+
| ir.cpp:2297:1:2297:1 | Arg(this) | this:r2297_1 |
11886+
| ir.cpp:2297:1:2297:1 | CallTarget | func:r2297_2 |
11887+
| ir.cpp:2297:1:2297:1 | ChiPartial | partial:m2297_4 |
11888+
| ir.cpp:2297:1:2297:1 | ChiPartial | partial:m2297_7 |
11889+
| ir.cpp:2297:1:2297:1 | ChiTotal | total:m2295_8 |
11890+
| ir.cpp:2297:1:2297:1 | ChiTotal | total:m2296_4 |
11891+
| ir.cpp:2297:1:2297:1 | SideEffect | m2295_8 |
11892+
| ir.cpp:2297:1:2297:1 | SideEffect | ~m2296_4 |
1188011893
| perf-regression.cpp:6:3:6:5 | Address | &:r6_5 |
1188111894
| perf-regression.cpp:6:3:6:5 | Address | &:r6_5 |
1188211895
| perf-regression.cpp:6:3:6:5 | Address | &:r6_7 |

0 commit comments

Comments
 (0)