mirror of
https://github.com/github/codeql.git
synced 2025-12-24 04:36:35 +01:00
C++: fix for duplicated parent of ReturnVoid statements
This commit is contained in:
@@ -616,7 +616,7 @@ newtype TTranslatedElement =
|
||||
exists(ArrayOrVectorAggregateLiteral initList |
|
||||
initList.getAnElementExpr(_).getFullyConverted() = expr
|
||||
) or
|
||||
exists(ReturnStmt returnStmt | returnStmt.getExpr().getFullyConverted() = expr) or
|
||||
exists(ReturnStmt returnStmt | returnStmt.getExpr().getFullyConverted() = expr and hasReturnValue(returnStmt.getEnclosingFunction())) or
|
||||
exists(ConstructorFieldInit fieldInit | fieldInit.getExpr().getFullyConverted() = expr) or
|
||||
exists(NewExpr newExpr | newExpr.getInitializer().getFullyConverted() = expr) or
|
||||
exists(ThrowExpr throw | throw.getExpr().getFullyConverted() = expr) or
|
||||
|
||||
@@ -474,7 +474,7 @@ class TranslatedReturnVoidExpressionStmt extends TranslatedReturnStmt {
|
||||
override Instruction getALastInstructionInternal() {
|
||||
if this.hasAnImplicitDestructorCall()
|
||||
then
|
||||
result = this.getChildInternal(max(int id | exists(this.getChild(id)))).getALastInstruction()
|
||||
result = this.getChild(max(int id | exists(this.getChild(id)))).getALastInstruction()
|
||||
else result = this.getInstruction(OnlyInstructionTag())
|
||||
}
|
||||
|
||||
|
||||
@@ -17895,6 +17895,26 @@ ir.cpp:
|
||||
# 2292| getQualifier(): [VariableAccess] s
|
||||
# 2292| Type = [Struct] String
|
||||
# 2292| ValueCategory = lvalue
|
||||
# 2294| [TopLevelFunction] void VoidReturnDestructors()
|
||||
# 2294| <params>:
|
||||
# 2294| getEntryPoint(): [BlockStmt] { ... }
|
||||
# 2295| getStmt(0): [DeclStmt] declaration
|
||||
# 2295| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s
|
||||
# 2295| Type = [Struct] String
|
||||
# 2295| getVariable().getInitializer(): [Initializer] initializer for s
|
||||
# 2295| getExpr(): [ConstructorCall] call to String
|
||||
# 2295| Type = [VoidType] void
|
||||
# 2295| ValueCategory = prvalue
|
||||
# 2296| getStmt(1): [ReturnStmt] return ...
|
||||
# 2296| getExpr(): [FunctionCall] call to VoidFunc
|
||||
# 2296| Type = [VoidType] void
|
||||
# 2296| ValueCategory = prvalue
|
||||
# 2297| getImplicitDestructorCall(0): [DestructorCall] call to ~String
|
||||
# 2297| Type = [VoidType] void
|
||||
# 2297| ValueCategory = prvalue
|
||||
# 2297| getQualifier(): [VariableAccess] s
|
||||
# 2297| Type = [Struct] String
|
||||
# 2297| ValueCategory = lvalue
|
||||
perf-regression.cpp:
|
||||
# 4| [CopyAssignmentOperator] Big& Big::operator=(Big const&)
|
||||
# 4| <params>:
|
||||
|
||||
@@ -14268,65 +14268,61 @@ ir.cpp:
|
||||
# 2277| r2277_1(glval<bool>) = VariableAddress[b] :
|
||||
# 2277| r2277_2(bool) = Load[b] : &:r2277_1, m2275_6
|
||||
# 2277| v2277_3(void) = ConditionalBranch : r2277_2
|
||||
#-----| False -> Block 4
|
||||
#-----| True -> Block 3
|
||||
#-----| False -> Block 3
|
||||
#-----| True -> Block 2
|
||||
|
||||
# 2275| Block 1
|
||||
# 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
|
||||
# 2275| m2275_7(unknown) = Phi : from 2:~m2284_5, from 4:~m2284_13, from 5:~m2284_22
|
||||
# 2275| v2275_8(void) = ReturnVoid :
|
||||
# 2275| v2275_9(void) = AliasedUse : ~m2275_7
|
||||
# 2275| v2275_10(void) = ExitFunction :
|
||||
|
||||
# 2278| Block 3
|
||||
# 2278| v2278_1(void) = NoOp :
|
||||
# 2278| Block 2
|
||||
# 2278| v2278_1(void) = NoOp :
|
||||
# 2284| r2284_1(glval<String>) = VariableAddress[s] :
|
||||
# 2284| r2284_2(glval<unknown>) = FunctionAddress[~String] :
|
||||
# 2284| v2284_3(void) = Call[~String] : func:r2284_2, this:r2284_1
|
||||
# 2284| m2284_4(unknown) = ^CallSideEffect : ~m2276_6
|
||||
# 2284| m2284_5(unknown) = Chi : total:m2276_6, partial:m2284_4
|
||||
# 2284| v2284_6(void) = ^IndirectReadSideEffect[-1] : &:r2284_1, m2276_8
|
||||
# 2284| m2284_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2284_1
|
||||
# 2284| m2284_8(String) = Chi : total:m2276_8, partial:m2284_7
|
||||
#-----| Goto -> Block 1
|
||||
|
||||
# 2280| Block 3
|
||||
# 2280| r2280_1(glval<bool>) = VariableAddress[b] :
|
||||
# 2280| r2280_2(bool) = Load[b] : &:r2280_1, m2275_6
|
||||
# 2280| v2280_3(void) = ConditionalBranch : r2280_2
|
||||
#-----| False -> Block 5
|
||||
#-----| True -> Block 4
|
||||
|
||||
# 2281| Block 4
|
||||
# 2281| r2281_1(glval<unknown>) = FunctionAddress[VoidFunc] :
|
||||
# 2281| v2281_2(void) = Call[VoidFunc] : func:r2281_1
|
||||
# 2281| m2281_3(unknown) = ^CallSideEffect : ~m2276_6
|
||||
# 2281| m2281_4(unknown) = Chi : total:m2276_6, partial:m2281_3
|
||||
# 2281| v2281_5(void) = NoOp :
|
||||
# 2284| r2284_9(glval<String>) = VariableAddress[s] :
|
||||
# 2284| r2284_10(glval<unknown>) = FunctionAddress[~String] :
|
||||
# 2284| v2284_11(void) = Call[~String] : func:r2284_10, this:r2284_9
|
||||
# 2284| m2284_12(unknown) = ^CallSideEffect : ~m2276_6
|
||||
# 2284| m2284_13(unknown) = Chi : total:m2276_6, partial:m2284_12
|
||||
# 2284| m2284_12(unknown) = ^CallSideEffect : ~m2281_4
|
||||
# 2284| m2284_13(unknown) = Chi : total:m2281_4, partial:m2284_12
|
||||
# 2284| v2284_14(void) = ^IndirectReadSideEffect[-1] : &:r2284_9, m2276_8
|
||||
# 2284| m2284_15(String) = ^IndirectMayWriteSideEffect[-1] : &:r2284_9
|
||||
# 2284| m2284_16(String) = Chi : total:m2276_8, partial:m2284_15
|
||||
#-----| Goto -> Block 1
|
||||
|
||||
# 2280| Block 4
|
||||
# 2280| r2280_1(glval<bool>) = VariableAddress[b] :
|
||||
# 2280| r2280_2(bool) = Load[b] : &:r2280_1, m2275_6
|
||||
# 2280| v2280_3(void) = ConditionalBranch : r2280_2
|
||||
#-----| False -> Block 6
|
||||
#-----| True -> Block 5
|
||||
#-----| True -> Block 5
|
||||
|
||||
# 2281| Block 5
|
||||
# 2281| r2281_6(glval<unknown>) = FunctionAddress[VoidFunc] :
|
||||
# 2281| v2281_7(void) = Call[VoidFunc] : func:r2281_1, func:r2281_6
|
||||
# 2281| m2281_8(unknown) = ^CallSideEffect : ~m2276_6
|
||||
# 2281| m2281_9(unknown) = Chi : total:m2276_6, partial:m2281_3, partial:m2281_8
|
||||
# 2281| v2281_5(void) = NoOp :
|
||||
# 2284| r2284_1(glval<String>) = VariableAddress[s] :
|
||||
# 2284| r2284_2(glval<unknown>) = FunctionAddress[~String] :
|
||||
# 2284| v2284_3(void) = Call[~String] : func:r2284_18, func:r2284_2, this:r2284_1, this:r2284_17
|
||||
# 2284| m2284_4(unknown) = ^CallSideEffect : ~m2281_4, ~m2281_9
|
||||
# 2284| m2284_5(unknown) = Chi : total:m2281_4, total:m2281_9, partial:m2284_20, partial:m2284_4
|
||||
# 2284| v2284_6(void) = ^IndirectReadSideEffect[-1] : &:r2284_1, &:r2284_17, m2276_8
|
||||
# 2284| m2284_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2284_1, &:r2284_17
|
||||
# 2284| m2284_8(String) = Chi : total:m2276_8, partial:m2284_23, partial:m2284_7
|
||||
#-----| Goto -> Block 1
|
||||
|
||||
# 2281| Block 5
|
||||
#-----| Goto -> Block 1
|
||||
|
||||
# 2283| Block 6
|
||||
# 2283| Block 5
|
||||
# 2283| r2283_1(glval<String>) = VariableAddress[s] :
|
||||
# 2284| v2284_25(void) = NoOp :
|
||||
# 2284| r2284_26(glval<String>) = VariableAddress[s] :
|
||||
# 2284| r2284_27(glval<unknown>) = FunctionAddress[~String] :
|
||||
# 2284| v2284_28(void) = Call[~String] : func:r2284_27, this:r2284_26
|
||||
# 2284| m2284_29(unknown) = ^CallSideEffect : ~m2276_6
|
||||
# 2284| m2284_30(unknown) = Chi : total:m2276_6, partial:m2284_29
|
||||
# 2284| v2284_31(void) = ^IndirectReadSideEffect[-1] : &:r2284_26, m2276_8
|
||||
# 2284| m2284_32(String) = ^IndirectMayWriteSideEffect[-1] : &:r2284_26
|
||||
# 2284| m2284_33(String) = Chi : total:m2276_8, partial:m2284_32
|
||||
# 2284| v2284_17(void) = NoOp :
|
||||
# 2284| r2284_18(glval<String>) = VariableAddress[s] :
|
||||
# 2284| r2284_19(glval<unknown>) = FunctionAddress[~String] :
|
||||
# 2284| v2284_20(void) = Call[~String] : func:r2284_19, this:r2284_18
|
||||
# 2284| m2284_21(unknown) = ^CallSideEffect : ~m2276_6
|
||||
# 2284| m2284_22(unknown) = Chi : total:m2276_6, partial:m2284_21
|
||||
# 2284| v2284_23(void) = ^IndirectReadSideEffect[-1] : &:r2284_18, m2276_8
|
||||
# 2284| m2284_24(String) = ^IndirectMayWriteSideEffect[-1] : &:r2284_18
|
||||
# 2284| m2284_25(String) = Chi : total:m2276_8, partial:m2284_24
|
||||
#-----| Goto -> Block 1
|
||||
|
||||
# 2286| int IfReturnDestructors3(bool)
|
||||
@@ -14387,6 +14383,37 @@ ir.cpp:
|
||||
# 2292| m2292_16(String) = Chi : total:m2287_8, partial:m2292_15
|
||||
#-----| Goto -> Block 1
|
||||
|
||||
# 2294| void VoidReturnDestructors()
|
||||
# 2294| Block 0
|
||||
# 2294| v2294_1(void) = EnterFunction :
|
||||
# 2294| m2294_2(unknown) = AliasedDefinition :
|
||||
# 2294| m2294_3(unknown) = InitializeNonLocal :
|
||||
# 2294| m2294_4(unknown) = Chi : total:m2294_2, partial:m2294_3
|
||||
# 2295| r2295_1(glval<String>) = VariableAddress[s] :
|
||||
# 2295| m2295_2(String) = Uninitialized[s] : &:r2295_1
|
||||
# 2295| r2295_3(glval<unknown>) = FunctionAddress[String] :
|
||||
# 2295| v2295_4(void) = Call[String] : func:r2295_3, this:r2295_1
|
||||
# 2295| m2295_5(unknown) = ^CallSideEffect : ~m2294_4
|
||||
# 2295| m2295_6(unknown) = Chi : total:m2294_4, partial:m2295_5
|
||||
# 2295| m2295_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2295_1
|
||||
# 2295| m2295_8(String) = Chi : total:m2295_2, partial:m2295_7
|
||||
# 2296| r2296_1(glval<unknown>) = FunctionAddress[VoidFunc] :
|
||||
# 2296| v2296_2(void) = Call[VoidFunc] : func:r2296_1
|
||||
# 2296| m2296_3(unknown) = ^CallSideEffect : ~m2295_6
|
||||
# 2296| m2296_4(unknown) = Chi : total:m2295_6, partial:m2296_3
|
||||
# 2296| v2296_5(void) = NoOp :
|
||||
# 2297| r2297_1(glval<String>) = VariableAddress[s] :
|
||||
# 2297| r2297_2(glval<unknown>) = FunctionAddress[~String] :
|
||||
# 2297| v2297_3(void) = Call[~String] : func:r2297_2, this:r2297_1
|
||||
# 2297| m2297_4(unknown) = ^CallSideEffect : ~m2296_4
|
||||
# 2297| m2297_5(unknown) = Chi : total:m2296_4, partial:m2297_4
|
||||
# 2297| v2297_6(void) = ^IndirectReadSideEffect[-1] : &:r2297_1, m2295_8
|
||||
# 2297| m2297_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2297_1
|
||||
# 2297| m2297_8(String) = Chi : total:m2295_8, partial:m2297_7
|
||||
# 2294| v2294_5(void) = ReturnVoid :
|
||||
# 2294| v2294_6(void) = AliasedUse : ~m2297_5
|
||||
# 2294| v2294_7(void) = ExitFunction :
|
||||
|
||||
perf-regression.cpp:
|
||||
# 6| void Big::Big()
|
||||
# 6| Block 0
|
||||
|
||||
@@ -2291,4 +2291,9 @@ int IfReturnDestructors3(bool b) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
void VoidReturnDestructors() {
|
||||
String s;
|
||||
return VoidFunc();
|
||||
}
|
||||
|
||||
// semmle-extractor-options: -std=c++20 --clang
|
||||
|
||||
@@ -11765,11 +11765,8 @@
|
||||
| ir.cpp:2275:6:2275:24 | ChiPartial | partial:m2275_3 |
|
||||
| ir.cpp:2275:6:2275:24 | ChiTotal | total:m2275_2 |
|
||||
| ir.cpp:2275:6:2275:24 | Phi | from 2:~m2284_5 |
|
||||
| ir.cpp:2275:6:2275:24 | Phi | from 2:~m2284_21 |
|
||||
| ir.cpp:2275:6:2275:24 | Phi | from 3:~m2284_13 |
|
||||
| ir.cpp:2275:6:2275:24 | Phi | from 5:~m2284_5 |
|
||||
| ir.cpp:2275:6:2275:24 | Phi | from 5:~m2284_21 |
|
||||
| ir.cpp:2275:6:2275:24 | Phi | from 6:~m2284_30 |
|
||||
| ir.cpp:2275:6:2275:24 | Phi | from 4:~m2284_13 |
|
||||
| ir.cpp:2275:6:2275:24 | Phi | from 5:~m2284_22 |
|
||||
| ir.cpp:2275:6:2275:24 | SideEffect | ~m2275_7 |
|
||||
| ir.cpp:2275:31:2275:31 | Address | &:r2275_5 |
|
||||
| ir.cpp:2276:12:2276:12 | Address | &:r2276_1 |
|
||||
@@ -11788,49 +11785,39 @@
|
||||
| ir.cpp:2280:8:2280:8 | Condition | r2280_2 |
|
||||
| ir.cpp:2280:8:2280:8 | Load | m2275_6 |
|
||||
| ir.cpp:2281:16:2281:23 | CallTarget | func:r2281_1 |
|
||||
| ir.cpp:2281:16:2281:23 | CallTarget | func:r2281_6 |
|
||||
| ir.cpp:2281:16:2281:23 | ChiPartial | partial:m2281_3 |
|
||||
| ir.cpp:2281:16:2281:23 | ChiPartial | partial:m2281_8 |
|
||||
| ir.cpp:2281:16:2281:23 | ChiTotal | total:m2276_6 |
|
||||
| ir.cpp:2281:16:2281:23 | SideEffect | ~m2276_6 |
|
||||
| ir.cpp:2284:1:2284:1 | Address | &:r2284_1 |
|
||||
| ir.cpp:2284:1:2284:1 | Address | &:r2284_1 |
|
||||
| ir.cpp:2284:1:2284:1 | Address | &:r2284_9 |
|
||||
| ir.cpp:2284:1:2284:1 | Address | &:r2284_9 |
|
||||
| ir.cpp:2284:1:2284:1 | Address | &:r2284_17 |
|
||||
| ir.cpp:2284:1:2284:1 | Address | &:r2284_17 |
|
||||
| ir.cpp:2284:1:2284:1 | Address | &:r2284_26 |
|
||||
| ir.cpp:2284:1:2284:1 | Address | &:r2284_26 |
|
||||
| ir.cpp:2284:1:2284:1 | Address | &:r2284_18 |
|
||||
| ir.cpp:2284:1:2284:1 | Address | &:r2284_18 |
|
||||
| ir.cpp:2284:1:2284:1 | Arg(this) | this:r2284_1 |
|
||||
| ir.cpp:2284:1:2284:1 | Arg(this) | this:r2284_9 |
|
||||
| ir.cpp:2284:1:2284:1 | Arg(this) | this:r2284_17 |
|
||||
| ir.cpp:2284:1:2284:1 | Arg(this) | this:r2284_26 |
|
||||
| ir.cpp:2284:1:2284:1 | Arg(this) | this:r2284_18 |
|
||||
| ir.cpp:2284:1:2284:1 | CallTarget | func:r2284_2 |
|
||||
| ir.cpp:2284:1:2284:1 | CallTarget | func:r2284_10 |
|
||||
| ir.cpp:2284:1:2284:1 | CallTarget | func:r2284_18 |
|
||||
| ir.cpp:2284:1:2284:1 | CallTarget | func:r2284_27 |
|
||||
| ir.cpp:2284:1:2284:1 | CallTarget | func:r2284_19 |
|
||||
| ir.cpp:2284:1:2284:1 | ChiPartial | partial:m2284_4 |
|
||||
| ir.cpp:2284:1:2284:1 | ChiPartial | partial:m2284_7 |
|
||||
| ir.cpp:2284:1:2284:1 | ChiPartial | partial:m2284_12 |
|
||||
| ir.cpp:2284:1:2284:1 | ChiPartial | partial:m2284_15 |
|
||||
| ir.cpp:2284:1:2284:1 | ChiPartial | partial:m2284_20 |
|
||||
| ir.cpp:2284:1:2284:1 | ChiPartial | partial:m2284_23 |
|
||||
| ir.cpp:2284:1:2284:1 | ChiPartial | partial:m2284_29 |
|
||||
| ir.cpp:2284:1:2284:1 | ChiPartial | partial:m2284_32 |
|
||||
| ir.cpp:2284:1:2284:1 | ChiPartial | partial:m2284_21 |
|
||||
| ir.cpp:2284:1:2284:1 | ChiPartial | partial:m2284_24 |
|
||||
| ir.cpp:2284:1:2284:1 | ChiTotal | total:m2276_6 |
|
||||
| ir.cpp:2284:1:2284:1 | ChiTotal | total:m2276_6 |
|
||||
| ir.cpp:2284:1:2284:1 | ChiTotal | total:m2276_8 |
|
||||
| ir.cpp:2284:1:2284:1 | ChiTotal | total:m2276_8 |
|
||||
| ir.cpp:2284:1:2284:1 | ChiTotal | total:m2276_8 |
|
||||
| ir.cpp:2284:1:2284:1 | ChiTotal | total:m2281_4 |
|
||||
| ir.cpp:2284:1:2284:1 | ChiTotal | total:m2281_9 |
|
||||
| ir.cpp:2284:1:2284:1 | SideEffect | m2276_8 |
|
||||
| ir.cpp:2284:1:2284:1 | SideEffect | m2276_8 |
|
||||
| ir.cpp:2284:1:2284:1 | SideEffect | m2276_8 |
|
||||
| ir.cpp:2284:1:2284:1 | SideEffect | ~m2276_6 |
|
||||
| ir.cpp:2284:1:2284:1 | SideEffect | ~m2276_6 |
|
||||
| ir.cpp:2284:1:2284:1 | SideEffect | ~m2281_4 |
|
||||
| ir.cpp:2284:1:2284:1 | SideEffect | ~m2281_9 |
|
||||
| ir.cpp:2286:5:2286:24 | Address | &:r2286_9 |
|
||||
| ir.cpp:2286:5:2286:24 | ChiPartial | partial:m2286_3 |
|
||||
| ir.cpp:2286:5:2286:24 | ChiTotal | total:m2286_2 |
|
||||
@@ -11877,6 +11864,32 @@
|
||||
| ir.cpp:2292:1:2292:1 | SideEffect | m2287_8 |
|
||||
| ir.cpp:2292:1:2292:1 | SideEffect | ~m2287_6 |
|
||||
| ir.cpp:2292:1:2292:1 | SideEffect | ~m2287_6 |
|
||||
| ir.cpp:2294:6:2294:26 | ChiPartial | partial:m2294_3 |
|
||||
| ir.cpp:2294:6:2294:26 | ChiTotal | total:m2294_2 |
|
||||
| ir.cpp:2294:6:2294:26 | SideEffect | ~m2297_5 |
|
||||
| ir.cpp:2295:12:2295:12 | Address | &:r2295_1 |
|
||||
| ir.cpp:2295:12:2295:12 | Address | &:r2295_1 |
|
||||
| ir.cpp:2295:12:2295:12 | Arg(this) | this:r2295_1 |
|
||||
| ir.cpp:2295:12:2295:12 | CallTarget | func:r2295_3 |
|
||||
| ir.cpp:2295:12:2295:12 | ChiPartial | partial:m2295_5 |
|
||||
| ir.cpp:2295:12:2295:12 | ChiPartial | partial:m2295_7 |
|
||||
| ir.cpp:2295:12:2295:12 | ChiTotal | total:m2294_4 |
|
||||
| ir.cpp:2295:12:2295:12 | ChiTotal | total:m2295_2 |
|
||||
| ir.cpp:2295:12:2295:12 | SideEffect | ~m2294_4 |
|
||||
| ir.cpp:2296:12:2296:19 | CallTarget | func:r2296_1 |
|
||||
| ir.cpp:2296:12:2296:19 | ChiPartial | partial:m2296_3 |
|
||||
| ir.cpp:2296:12:2296:19 | ChiTotal | total:m2295_6 |
|
||||
| ir.cpp:2296:12:2296:19 | SideEffect | ~m2295_6 |
|
||||
| ir.cpp:2297:1:2297:1 | Address | &:r2297_1 |
|
||||
| ir.cpp:2297:1:2297:1 | Address | &:r2297_1 |
|
||||
| ir.cpp:2297:1:2297:1 | Arg(this) | this:r2297_1 |
|
||||
| ir.cpp:2297:1:2297:1 | CallTarget | func:r2297_2 |
|
||||
| ir.cpp:2297:1:2297:1 | ChiPartial | partial:m2297_4 |
|
||||
| ir.cpp:2297:1:2297:1 | ChiPartial | partial:m2297_7 |
|
||||
| ir.cpp:2297:1:2297:1 | ChiTotal | total:m2295_8 |
|
||||
| ir.cpp:2297:1:2297:1 | ChiTotal | total:m2296_4 |
|
||||
| ir.cpp:2297:1:2297:1 | SideEffect | m2295_8 |
|
||||
| ir.cpp:2297:1:2297:1 | SideEffect | ~m2296_4 |
|
||||
| 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 |
|
||||
|
||||
@@ -13242,16 +13242,36 @@ ir.cpp:
|
||||
# 2277| r2277_1(glval<bool>) = VariableAddress[b] :
|
||||
# 2277| r2277_2(bool) = Load[b] : &:r2277_1, ~m?
|
||||
# 2277| v2277_3(void) = ConditionalBranch : r2277_2
|
||||
#-----| False -> Block 4
|
||||
#-----| True -> Block 3
|
||||
#-----| False -> Block 3
|
||||
#-----| True -> Block 2
|
||||
|
||||
# 2275| Block 1
|
||||
# 2275| v2275_6(void) = ReturnVoid :
|
||||
# 2275| v2275_7(void) = AliasedUse : ~m?
|
||||
# 2275| v2275_8(void) = ExitFunction :
|
||||
|
||||
# 2278| Block 3
|
||||
# 2278| Block 2
|
||||
# 2278| v2278_1(void) = NoOp :
|
||||
# 2284| r2284_1(glval<String>) = VariableAddress[s] :
|
||||
# 2284| r2284_2(glval<unknown>) = FunctionAddress[~String] :
|
||||
# 2284| v2284_3(void) = Call[~String] : func:r2284_2, this:r2284_1
|
||||
# 2284| mu2284_4(unknown) = ^CallSideEffect : ~m?
|
||||
# 2284| v2284_5(void) = ^IndirectReadSideEffect[-1] : &:r2284_1, ~m?
|
||||
# 2284| mu2284_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2284_1
|
||||
#-----| Goto -> Block 1
|
||||
|
||||
# 2280| Block 3
|
||||
# 2280| r2280_1(glval<bool>) = VariableAddress[b] :
|
||||
# 2280| r2280_2(bool) = Load[b] : &:r2280_1, ~m?
|
||||
# 2280| v2280_3(void) = ConditionalBranch : r2280_2
|
||||
#-----| False -> Block 5
|
||||
#-----| True -> Block 4
|
||||
|
||||
# 2281| Block 4
|
||||
# 2281| r2281_1(glval<unknown>) = FunctionAddress[VoidFunc] :
|
||||
# 2281| v2281_2(void) = Call[VoidFunc] : func:r2281_1
|
||||
# 2281| mu2281_3(unknown) = ^CallSideEffect : ~m?
|
||||
# 2281| v2281_4(void) = NoOp :
|
||||
# 2284| r2284_7(glval<String>) = VariableAddress[s] :
|
||||
# 2284| r2284_8(glval<unknown>) = FunctionAddress[~String] :
|
||||
# 2284| v2284_9(void) = Call[~String] : func:r2284_8, this:r2284_7
|
||||
@@ -13260,39 +13280,15 @@ ir.cpp:
|
||||
# 2284| mu2284_12(String) = ^IndirectMayWriteSideEffect[-1] : &:r2284_7
|
||||
#-----| Goto -> Block 1
|
||||
|
||||
# 2280| Block 4
|
||||
# 2280| r2280_1(glval<bool>) = VariableAddress[b] :
|
||||
# 2280| r2280_2(bool) = Load[b] : &:r2280_1, ~m?
|
||||
# 2280| v2280_3(void) = ConditionalBranch : r2280_2
|
||||
#-----| False -> Block 6
|
||||
#-----| True -> Block 5
|
||||
#-----| True -> Block 5
|
||||
|
||||
# 2281| Block 5
|
||||
# 2281| r2281_5(glval<unknown>) = FunctionAddress[VoidFunc] :
|
||||
# 2281| v2281_6(void) = Call[VoidFunc] : func:r2281_1, func:r2281_5
|
||||
# 2281| mu2281_7(unknown) = ^CallSideEffect : ~m?
|
||||
# 2281| v2281_8(void) = NoOp :
|
||||
# 2284| r2284_13(glval<String>) = VariableAddress[s] :
|
||||
# 2284| r2284_14(glval<unknown>) = FunctionAddress[~String] :
|
||||
# 2284| v2284_3(void) = Call[~String] : func:r2284_14, func:r2284_2, this:r2284_1, this:r2284_13
|
||||
# 2284| mu2284_4(unknown) = ^CallSideEffect : ~m?
|
||||
# 2284| v2284_5(void) = ^IndirectReadSideEffect[-1] : &:r2284_1, &:r2284_13, ~m?
|
||||
# 2284| mu2284_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2284_1, &:r2284_13
|
||||
#-----| Goto -> Block 1
|
||||
|
||||
# 2281| Block 5
|
||||
#-----| Goto -> Block 1
|
||||
|
||||
# 2283| Block 6
|
||||
# 2283| Block 5
|
||||
# 2283| r2283_1(glval<String>) = VariableAddress[s] :
|
||||
# 2284| v2284_19(void) = NoOp :
|
||||
# 2284| r2284_20(glval<String>) = VariableAddress[s] :
|
||||
# 2284| r2284_21(glval<unknown>) = FunctionAddress[~String] :
|
||||
# 2284| v2284_22(void) = Call[~String] : func:r2284_21, this:r2284_20
|
||||
# 2284| mu2284_23(unknown) = ^CallSideEffect : ~m?
|
||||
# 2284| v2284_24(void) = ^IndirectReadSideEffect[-1] : &:r2284_20, ~m?
|
||||
# 2284| mu2284_25(String) = ^IndirectMayWriteSideEffect[-1] : &:r2284_20
|
||||
# 2284| v2284_13(void) = NoOp :
|
||||
# 2284| r2284_14(glval<String>) = VariableAddress[s] :
|
||||
# 2284| r2284_15(glval<unknown>) = FunctionAddress[~String] :
|
||||
# 2284| v2284_16(void) = Call[~String] : func:r2284_15, this:r2284_14
|
||||
# 2284| mu2284_17(unknown) = ^CallSideEffect : ~m?
|
||||
# 2284| v2284_18(void) = ^IndirectReadSideEffect[-1] : &:r2284_14, ~m?
|
||||
# 2284| mu2284_19(String) = ^IndirectMayWriteSideEffect[-1] : &:r2284_14
|
||||
#-----| Goto -> Block 1
|
||||
|
||||
# 2286| int IfReturnDestructors3(bool)
|
||||
@@ -13344,6 +13340,31 @@ ir.cpp:
|
||||
# 2292| mu2292_12(String) = ^IndirectMayWriteSideEffect[-1] : &:r2292_7
|
||||
#-----| Goto -> Block 1
|
||||
|
||||
# 2294| void VoidReturnDestructors()
|
||||
# 2294| Block 0
|
||||
# 2294| v2294_1(void) = EnterFunction :
|
||||
# 2294| mu2294_2(unknown) = AliasedDefinition :
|
||||
# 2294| mu2294_3(unknown) = InitializeNonLocal :
|
||||
# 2295| r2295_1(glval<String>) = VariableAddress[s] :
|
||||
# 2295| mu2295_2(String) = Uninitialized[s] : &:r2295_1
|
||||
# 2295| r2295_3(glval<unknown>) = FunctionAddress[String] :
|
||||
# 2295| v2295_4(void) = Call[String] : func:r2295_3, this:r2295_1
|
||||
# 2295| mu2295_5(unknown) = ^CallSideEffect : ~m?
|
||||
# 2295| mu2295_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2295_1
|
||||
# 2296| r2296_1(glval<unknown>) = FunctionAddress[VoidFunc] :
|
||||
# 2296| v2296_2(void) = Call[VoidFunc] : func:r2296_1
|
||||
# 2296| mu2296_3(unknown) = ^CallSideEffect : ~m?
|
||||
# 2296| v2296_4(void) = NoOp :
|
||||
# 2297| r2297_1(glval<String>) = VariableAddress[s] :
|
||||
# 2297| r2297_2(glval<unknown>) = FunctionAddress[~String] :
|
||||
# 2297| v2297_3(void) = Call[~String] : func:r2297_2, this:r2297_1
|
||||
# 2297| mu2297_4(unknown) = ^CallSideEffect : ~m?
|
||||
# 2297| v2297_5(void) = ^IndirectReadSideEffect[-1] : &:r2297_1, ~m?
|
||||
# 2297| mu2297_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2297_1
|
||||
# 2294| v2294_4(void) = ReturnVoid :
|
||||
# 2294| v2294_5(void) = AliasedUse : ~m?
|
||||
# 2294| v2294_6(void) = ExitFunction :
|
||||
|
||||
perf-regression.cpp:
|
||||
# 6| void Big::Big()
|
||||
# 6| Block 0
|
||||
|
||||
Reference in New Issue
Block a user