diff --git a/cpp/ql/test/library-tests/ir/ir/PrintAST.expected b/cpp/ql/test/library-tests/ir/ir/PrintAST.expected index 62831586ead9..e6f88ceb7789 100644 --- a/cpp/ql/test/library-tests/ir/ir/PrintAST.expected +++ b/cpp/ql/test/library-tests/ir/ir/PrintAST.expected @@ -13331,755 +13331,751 @@ ir.cpp: # 1216| getRightOperand(): [VariableAccess] vi4_shuffle # 1216| Type = [SpecifiedType] __attribute((vector_size(16UL))) int # 1216| ValueCategory = prvalue(load) -# 1217| getStmt(5): [ReturnStmt] return ... -# 1219| [TopLevelFunction] void* memcpy(void*, void*, int) -# 1219| : -# 1219| getParameter(0): [Parameter] dst -# 1219| Type = [VoidPointerType] void * -# 1219| getParameter(1): [Parameter] src -# 1219| Type = [VoidPointerType] void * -# 1219| getParameter(2): [Parameter] size -# 1219| Type = [IntType] int -# 1221| [TopLevelFunction] int ModeledCallTarget(int) +# 1217| getStmt(5): [ExprStmt] ExprStmt +# 1217| getExpr(): [AssignExpr] ... = ... +# 1217| Type = [SpecifiedType] __attribute((vector_size(16UL))) int +# 1217| ValueCategory = lvalue +# 1217| getLValue(): [VariableAccess] vi4 +# 1217| Type = [SpecifiedType] __attribute((vector_size(16UL))) int +# 1217| ValueCategory = lvalue +# 1217| getRValue(): [LogicalAndExpr] ... && ... +# 1217| Type = [GNUVectorType] __attribute((vector_size(16))) int +# 1217| ValueCategory = prvalue +# 1217| getLeftOperand(): [VariableAccess] vi4 +# 1217| Type = [SpecifiedType] __attribute((vector_size(16UL))) int +# 1217| ValueCategory = prvalue(load) +# 1217| getRightOperand(): [VariableAccess] vi4_shuffle +# 1217| Type = [SpecifiedType] __attribute((vector_size(16UL))) int +# 1217| ValueCategory = prvalue(load) +# 1218| getStmt(6): [ExprStmt] ExprStmt +# 1218| getExpr(): [AssignExpr] ... = ... +# 1218| Type = [SpecifiedType] __attribute((vector_size(16UL))) int +# 1218| ValueCategory = lvalue +# 1218| getLValue(): [VariableAccess] vi4 +# 1218| Type = [SpecifiedType] __attribute((vector_size(16UL))) int +# 1218| ValueCategory = lvalue +# 1218| getRValue(): [LogicalOrExpr] ... || ... +# 1218| Type = [GNUVectorType] __attribute((vector_size(16))) int +# 1218| ValueCategory = prvalue +# 1218| getLeftOperand(): [VariableAccess] vi4 +# 1218| Type = [SpecifiedType] __attribute((vector_size(16UL))) int +# 1218| ValueCategory = prvalue(load) +# 1218| getRightOperand(): [VariableAccess] vi4_shuffle +# 1218| Type = [SpecifiedType] __attribute((vector_size(16UL))) int +# 1218| ValueCategory = prvalue(load) +# 1219| getStmt(7): [ReturnStmt] return ... +# 1221| [TopLevelFunction] void* memcpy(void*, void*, int) # 1221| : -# 1221| getParameter(0): [Parameter] x +# 1221| getParameter(0): [Parameter] dst +# 1221| Type = [VoidPointerType] void * +# 1221| getParameter(1): [Parameter] src +# 1221| Type = [VoidPointerType] void * +# 1221| getParameter(2): [Parameter] size # 1221| Type = [IntType] int -# 1221| getEntryPoint(): [BlockStmt] { ... } -# 1222| getStmt(0): [DeclStmt] declaration -# 1222| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y -# 1222| Type = [IntType] int -# 1223| getStmt(1): [ExprStmt] ExprStmt -# 1223| getExpr(): [FunctionCall] call to memcpy -# 1223| Type = [VoidPointerType] void * -# 1223| ValueCategory = prvalue -# 1223| getArgument(0): [AddressOfExpr] & ... -# 1223| Type = [IntPointerType] int * -# 1223| ValueCategory = prvalue -# 1223| getOperand(): [VariableAccess] y -# 1223| Type = [IntType] int -# 1223| ValueCategory = lvalue -# 1223| getArgument(1): [AddressOfExpr] & ... -# 1223| Type = [IntPointerType] int * -# 1223| ValueCategory = prvalue -# 1223| getOperand(): [VariableAccess] x -# 1223| Type = [IntType] int -# 1223| ValueCategory = lvalue -# 1223| getArgument(2): [SizeofTypeOperator] sizeof(int) -# 1223| Type = [LongType] unsigned long -# 1223| Value = [SizeofTypeOperator] 4 -# 1223| ValueCategory = prvalue -# 1223| getArgument(0).getFullyConverted(): [CStyleCast] (void *)... -# 1223| Conversion = [PointerConversion] pointer conversion -# 1223| Type = [VoidPointerType] void * -# 1223| ValueCategory = prvalue -# 1223| getArgument(1).getFullyConverted(): [CStyleCast] (void *)... -# 1223| Conversion = [PointerConversion] pointer conversion -# 1223| Type = [VoidPointerType] void * -# 1223| ValueCategory = prvalue -# 1223| getArgument(2).getFullyConverted(): [CStyleCast] (int)... -# 1223| Conversion = [IntegralConversion] integral conversion -# 1223| Type = [IntType] int -# 1223| Value = [CStyleCast] 4 -# 1223| ValueCategory = prvalue -# 1224| getStmt(2): [ReturnStmt] return ... -# 1224| getExpr(): [VariableAccess] y +# 1223| [TopLevelFunction] int ModeledCallTarget(int) +# 1223| : +# 1223| getParameter(0): [Parameter] x +# 1223| Type = [IntType] int +# 1223| getEntryPoint(): [BlockStmt] { ... } +# 1224| getStmt(0): [DeclStmt] declaration +# 1224| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y # 1224| Type = [IntType] int -# 1224| ValueCategory = prvalue(load) -# 1227| [TopLevelFunction] String ReturnObjectImpl() -# 1227| : -# 1227| getEntryPoint(): [BlockStmt] { ... } -# 1228| getStmt(0): [ReturnStmt] return ... -# 1228| getExpr(): [ConstructorCall] call to String -# 1228| Type = [VoidType] void -# 1228| ValueCategory = prvalue -# 1228| getArgument(0): foo -# 1228| Type = [ArrayType] const char[4] -# 1228| Value = [StringLiteral] "foo" -# 1228| ValueCategory = lvalue -# 1228| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 1228| Type = [PointerType] const char * -# 1228| ValueCategory = prvalue -# 1231| [TopLevelFunction] void switch1Case(int) -# 1231| : -# 1231| getParameter(0): [Parameter] x -# 1231| Type = [IntType] int -# 1231| getEntryPoint(): [BlockStmt] { ... } -# 1232| getStmt(0): [DeclStmt] declaration -# 1232| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y -# 1232| Type = [IntType] int -# 1232| getVariable().getInitializer(): [Initializer] initializer for y -# 1232| getExpr(): [Literal] 0 -# 1232| Type = [IntType] int -# 1232| Value = [Literal] 0 -# 1232| ValueCategory = prvalue -# 1233| getStmt(1): [SwitchStmt] switch (...) ... -# 1233| getExpr(): [VariableAccess] x -# 1233| Type = [IntType] int -# 1233| ValueCategory = prvalue(load) -# 1233| getStmt(): [BlockStmt] { ... } -# 1234| getStmt(0): [SwitchCase] case ...: -# 1234| getExpr(): [Literal] 1 +# 1225| getStmt(1): [ExprStmt] ExprStmt +# 1225| getExpr(): [FunctionCall] call to memcpy +# 1225| Type = [VoidPointerType] void * +# 1225| ValueCategory = prvalue +# 1225| getArgument(0): [AddressOfExpr] & ... +# 1225| Type = [IntPointerType] int * +# 1225| ValueCategory = prvalue +# 1225| getOperand(): [VariableAccess] y +# 1225| Type = [IntType] int +# 1225| ValueCategory = lvalue +# 1225| getArgument(1): [AddressOfExpr] & ... +# 1225| Type = [IntPointerType] int * +# 1225| ValueCategory = prvalue +# 1225| getOperand(): [VariableAccess] x +# 1225| Type = [IntType] int +# 1225| ValueCategory = lvalue +# 1225| getArgument(2): [SizeofTypeOperator] sizeof(int) +# 1225| Type = [LongType] unsigned long +# 1225| Value = [SizeofTypeOperator] 4 +# 1225| ValueCategory = prvalue +# 1225| getArgument(0).getFullyConverted(): [CStyleCast] (void *)... +# 1225| Conversion = [PointerConversion] pointer conversion +# 1225| Type = [VoidPointerType] void * +# 1225| ValueCategory = prvalue +# 1225| getArgument(1).getFullyConverted(): [CStyleCast] (void *)... +# 1225| Conversion = [PointerConversion] pointer conversion +# 1225| Type = [VoidPointerType] void * +# 1225| ValueCategory = prvalue +# 1225| getArgument(2).getFullyConverted(): [CStyleCast] (int)... +# 1225| Conversion = [IntegralConversion] integral conversion +# 1225| Type = [IntType] int +# 1225| Value = [CStyleCast] 4 +# 1225| ValueCategory = prvalue +# 1226| getStmt(2): [ReturnStmt] return ... +# 1226| getExpr(): [VariableAccess] y +# 1226| Type = [IntType] int +# 1226| ValueCategory = prvalue(load) +# 1229| [TopLevelFunction] String ReturnObjectImpl() +# 1229| : +# 1229| getEntryPoint(): [BlockStmt] { ... } +# 1230| getStmt(0): [ReturnStmt] return ... +# 1230| getExpr(): [ConstructorCall] call to String +# 1230| Type = [VoidType] void +# 1230| ValueCategory = prvalue +# 1230| getArgument(0): foo +# 1230| Type = [ArrayType] const char[4] +# 1230| Value = [StringLiteral] "foo" +# 1230| ValueCategory = lvalue +# 1230| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 1230| Type = [PointerType] const char * +# 1230| ValueCategory = prvalue +# 1233| [TopLevelFunction] void switch1Case(int) +# 1233| : +# 1233| getParameter(0): [Parameter] x +# 1233| Type = [IntType] int +# 1233| getEntryPoint(): [BlockStmt] { ... } +# 1234| getStmt(0): [DeclStmt] declaration +# 1234| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y +# 1234| Type = [IntType] int +# 1234| getVariable().getInitializer(): [Initializer] initializer for y +# 1234| getExpr(): [Literal] 0 # 1234| Type = [IntType] int -# 1234| Value = [Literal] 1 +# 1234| Value = [Literal] 0 # 1234| ValueCategory = prvalue -# 1235| getStmt(1): [ExprStmt] ExprStmt -# 1235| getExpr(): [AssignExpr] ... = ... -# 1235| Type = [IntType] int -# 1235| ValueCategory = lvalue -# 1235| getLValue(): [VariableAccess] y -# 1235| Type = [IntType] int -# 1235| ValueCategory = lvalue -# 1235| getRValue(): [Literal] 2 -# 1235| Type = [IntType] int -# 1235| Value = [Literal] 2 -# 1235| ValueCategory = prvalue -# 1237| getStmt(2): [DeclStmt] declaration -# 1237| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z -# 1237| Type = [IntType] int -# 1237| getVariable().getInitializer(): [Initializer] initializer for z -# 1237| getExpr(): [VariableAccess] y +# 1235| getStmt(1): [SwitchStmt] switch (...) ... +# 1235| getExpr(): [VariableAccess] x +# 1235| Type = [IntType] int +# 1235| ValueCategory = prvalue(load) +# 1235| getStmt(): [BlockStmt] { ... } +# 1236| getStmt(0): [SwitchCase] case ...: +# 1236| getExpr(): [Literal] 1 +# 1236| Type = [IntType] int +# 1236| Value = [Literal] 1 +# 1236| ValueCategory = prvalue +# 1237| getStmt(1): [ExprStmt] ExprStmt +# 1237| getExpr(): [AssignExpr] ... = ... # 1237| Type = [IntType] int -# 1237| ValueCategory = prvalue(load) -# 1238| getStmt(3): [ReturnStmt] return ... -# 1240| [TopLevelFunction] void switch2Case_fallthrough(int) -# 1240| : -# 1240| getParameter(0): [Parameter] x -# 1240| Type = [IntType] int -# 1240| getEntryPoint(): [BlockStmt] { ... } -# 1241| getStmt(0): [DeclStmt] declaration -# 1241| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y -# 1241| Type = [IntType] int -# 1241| getVariable().getInitializer(): [Initializer] initializer for y -# 1241| getExpr(): [Literal] 0 -# 1241| Type = [IntType] int -# 1241| Value = [Literal] 0 -# 1241| ValueCategory = prvalue -# 1242| getStmt(1): [SwitchStmt] switch (...) ... -# 1242| getExpr(): [VariableAccess] x -# 1242| Type = [IntType] int -# 1242| ValueCategory = prvalue(load) -# 1242| getStmt(): [BlockStmt] { ... } -# 1243| getStmt(0): [SwitchCase] case ...: -# 1243| getExpr(): [Literal] 1 +# 1237| ValueCategory = lvalue +# 1237| getLValue(): [VariableAccess] y +# 1237| Type = [IntType] int +# 1237| ValueCategory = lvalue +# 1237| getRValue(): [Literal] 2 +# 1237| Type = [IntType] int +# 1237| Value = [Literal] 2 +# 1237| ValueCategory = prvalue +# 1239| getStmt(2): [DeclStmt] declaration +# 1239| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z +# 1239| Type = [IntType] int +# 1239| getVariable().getInitializer(): [Initializer] initializer for z +# 1239| getExpr(): [VariableAccess] y +# 1239| Type = [IntType] int +# 1239| ValueCategory = prvalue(load) +# 1240| getStmt(3): [ReturnStmt] return ... +# 1242| [TopLevelFunction] void switch2Case_fallthrough(int) +# 1242| : +# 1242| getParameter(0): [Parameter] x +# 1242| Type = [IntType] int +# 1242| getEntryPoint(): [BlockStmt] { ... } +# 1243| getStmt(0): [DeclStmt] declaration +# 1243| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y +# 1243| Type = [IntType] int +# 1243| getVariable().getInitializer(): [Initializer] initializer for y +# 1243| getExpr(): [Literal] 0 # 1243| Type = [IntType] int -# 1243| Value = [Literal] 1 +# 1243| Value = [Literal] 0 # 1243| ValueCategory = prvalue -# 1244| getStmt(1): [ExprStmt] ExprStmt -# 1244| getExpr(): [AssignExpr] ... = ... -# 1244| Type = [IntType] int -# 1244| ValueCategory = lvalue -# 1244| getLValue(): [VariableAccess] y -# 1244| Type = [IntType] int -# 1244| ValueCategory = lvalue -# 1244| getRValue(): [Literal] 2 -# 1244| Type = [IntType] int -# 1244| Value = [Literal] 2 -# 1244| ValueCategory = prvalue -# 1245| getStmt(2): [SwitchCase] case ...: -# 1245| getExpr(): [Literal] 2 +# 1244| getStmt(1): [SwitchStmt] switch (...) ... +# 1244| getExpr(): [VariableAccess] x +# 1244| Type = [IntType] int +# 1244| ValueCategory = prvalue(load) +# 1244| getStmt(): [BlockStmt] { ... } +# 1245| getStmt(0): [SwitchCase] case ...: +# 1245| getExpr(): [Literal] 1 # 1245| Type = [IntType] int -# 1245| Value = [Literal] 2 +# 1245| Value = [Literal] 1 # 1245| ValueCategory = prvalue -# 1246| getStmt(3): [ExprStmt] ExprStmt +# 1246| getStmt(1): [ExprStmt] ExprStmt # 1246| getExpr(): [AssignExpr] ... = ... # 1246| Type = [IntType] int # 1246| ValueCategory = lvalue # 1246| getLValue(): [VariableAccess] y # 1246| Type = [IntType] int # 1246| ValueCategory = lvalue -# 1246| getRValue(): [Literal] 3 +# 1246| getRValue(): [Literal] 2 # 1246| Type = [IntType] int -# 1246| Value = [Literal] 3 +# 1246| Value = [Literal] 2 # 1246| ValueCategory = prvalue -# 1248| getStmt(2): [DeclStmt] declaration -# 1248| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z -# 1248| Type = [IntType] int -# 1248| getVariable().getInitializer(): [Initializer] initializer for z -# 1248| getExpr(): [VariableAccess] y +# 1247| getStmt(2): [SwitchCase] case ...: +# 1247| getExpr(): [Literal] 2 +# 1247| Type = [IntType] int +# 1247| Value = [Literal] 2 +# 1247| ValueCategory = prvalue +# 1248| getStmt(3): [ExprStmt] ExprStmt +# 1248| getExpr(): [AssignExpr] ... = ... # 1248| Type = [IntType] int -# 1248| ValueCategory = prvalue(load) -# 1249| getStmt(3): [ReturnStmt] return ... -# 1251| [TopLevelFunction] void switch2Case(int) -# 1251| : -# 1251| getParameter(0): [Parameter] x -# 1251| Type = [IntType] int -# 1251| getEntryPoint(): [BlockStmt] { ... } -# 1252| getStmt(0): [DeclStmt] declaration -# 1252| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y -# 1252| Type = [IntType] int -# 1252| getVariable().getInitializer(): [Initializer] initializer for y -# 1252| getExpr(): [Literal] 0 -# 1252| Type = [IntType] int -# 1252| Value = [Literal] 0 -# 1252| ValueCategory = prvalue -# 1253| getStmt(1): [SwitchStmt] switch (...) ... -# 1253| getExpr(): [VariableAccess] x -# 1253| Type = [IntType] int -# 1253| ValueCategory = prvalue(load) -# 1253| getStmt(): [BlockStmt] { ... } -# 1254| getStmt(0): [SwitchCase] case ...: -# 1254| getExpr(): [Literal] 1 +# 1248| ValueCategory = lvalue +# 1248| getLValue(): [VariableAccess] y +# 1248| Type = [IntType] int +# 1248| ValueCategory = lvalue +# 1248| getRValue(): [Literal] 3 +# 1248| Type = [IntType] int +# 1248| Value = [Literal] 3 +# 1248| ValueCategory = prvalue +# 1250| getStmt(2): [DeclStmt] declaration +# 1250| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z +# 1250| Type = [IntType] int +# 1250| getVariable().getInitializer(): [Initializer] initializer for z +# 1250| getExpr(): [VariableAccess] y +# 1250| Type = [IntType] int +# 1250| ValueCategory = prvalue(load) +# 1251| getStmt(3): [ReturnStmt] return ... +# 1253| [TopLevelFunction] void switch2Case(int) +# 1253| : +# 1253| getParameter(0): [Parameter] x +# 1253| Type = [IntType] int +# 1253| getEntryPoint(): [BlockStmt] { ... } +# 1254| getStmt(0): [DeclStmt] declaration +# 1254| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y +# 1254| Type = [IntType] int +# 1254| getVariable().getInitializer(): [Initializer] initializer for y +# 1254| getExpr(): [Literal] 0 # 1254| Type = [IntType] int -# 1254| Value = [Literal] 1 +# 1254| Value = [Literal] 0 # 1254| ValueCategory = prvalue -# 1255| getStmt(1): [ExprStmt] ExprStmt -# 1255| getExpr(): [AssignExpr] ... = ... -# 1255| Type = [IntType] int -# 1255| ValueCategory = lvalue -# 1255| getLValue(): [VariableAccess] y -# 1255| Type = [IntType] int -# 1255| ValueCategory = lvalue -# 1255| getRValue(): [Literal] 2 -# 1255| Type = [IntType] int -# 1255| Value = [Literal] 2 -# 1255| ValueCategory = prvalue -# 1256| getStmt(2): [BreakStmt] break; -# 1257| getStmt(3): [SwitchCase] case ...: -# 1257| getExpr(): [Literal] 2 +# 1255| getStmt(1): [SwitchStmt] switch (...) ... +# 1255| getExpr(): [VariableAccess] x +# 1255| Type = [IntType] int +# 1255| ValueCategory = prvalue(load) +# 1255| getStmt(): [BlockStmt] { ... } +# 1256| getStmt(0): [SwitchCase] case ...: +# 1256| getExpr(): [Literal] 1 +# 1256| Type = [IntType] int +# 1256| Value = [Literal] 1 +# 1256| ValueCategory = prvalue +# 1257| getStmt(1): [ExprStmt] ExprStmt +# 1257| getExpr(): [AssignExpr] ... = ... # 1257| Type = [IntType] int -# 1257| Value = [Literal] 2 -# 1257| ValueCategory = prvalue -# 1258| getStmt(4): [ExprStmt] ExprStmt -# 1258| getExpr(): [AssignExpr] ... = ... -# 1258| Type = [IntType] int -# 1258| ValueCategory = lvalue -# 1258| getLValue(): [VariableAccess] y -# 1258| Type = [IntType] int -# 1258| ValueCategory = lvalue -# 1258| getRValue(): [Literal] 3 -# 1258| Type = [IntType] int -# 1258| Value = [Literal] 3 -# 1258| ValueCategory = prvalue -# 1259| getStmt(2): [LabelStmt] label ...: -# 1260| getStmt(3): [DeclStmt] declaration -# 1260| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z -# 1260| Type = [IntType] int -# 1260| getVariable().getInitializer(): [Initializer] initializer for z -# 1260| getExpr(): [VariableAccess] y +# 1257| ValueCategory = lvalue +# 1257| getLValue(): [VariableAccess] y +# 1257| Type = [IntType] int +# 1257| ValueCategory = lvalue +# 1257| getRValue(): [Literal] 2 +# 1257| Type = [IntType] int +# 1257| Value = [Literal] 2 +# 1257| ValueCategory = prvalue +# 1258| getStmt(2): [BreakStmt] break; +# 1259| getStmt(3): [SwitchCase] case ...: +# 1259| getExpr(): [Literal] 2 +# 1259| Type = [IntType] int +# 1259| Value = [Literal] 2 +# 1259| ValueCategory = prvalue +# 1260| getStmt(4): [ExprStmt] ExprStmt +# 1260| getExpr(): [AssignExpr] ... = ... # 1260| Type = [IntType] int -# 1260| ValueCategory = prvalue(load) -# 1261| getStmt(4): [ReturnStmt] return ... -# 1263| [TopLevelFunction] void switch2Case_default(int) -# 1263| : -# 1263| getParameter(0): [Parameter] x -# 1263| Type = [IntType] int -# 1263| getEntryPoint(): [BlockStmt] { ... } -# 1264| getStmt(0): [DeclStmt] declaration -# 1264| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y -# 1264| Type = [IntType] int -# 1264| getVariable().getInitializer(): [Initializer] initializer for y -# 1264| getExpr(): [Literal] 0 -# 1264| Type = [IntType] int -# 1264| Value = [Literal] 0 -# 1264| ValueCategory = prvalue -# 1265| getStmt(1): [SwitchStmt] switch (...) ... -# 1265| getExpr(): [VariableAccess] x -# 1265| Type = [IntType] int -# 1265| ValueCategory = prvalue(load) -# 1265| getStmt(): [BlockStmt] { ... } -# 1266| getStmt(0): [SwitchCase] case ...: -# 1266| getExpr(): [Literal] 1 +# 1260| ValueCategory = lvalue +# 1260| getLValue(): [VariableAccess] y +# 1260| Type = [IntType] int +# 1260| ValueCategory = lvalue +# 1260| getRValue(): [Literal] 3 +# 1260| Type = [IntType] int +# 1260| Value = [Literal] 3 +# 1260| ValueCategory = prvalue +# 1261| getStmt(2): [LabelStmt] label ...: +# 1262| getStmt(3): [DeclStmt] declaration +# 1262| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z +# 1262| Type = [IntType] int +# 1262| getVariable().getInitializer(): [Initializer] initializer for z +# 1262| getExpr(): [VariableAccess] y +# 1262| Type = [IntType] int +# 1262| ValueCategory = prvalue(load) +# 1263| getStmt(4): [ReturnStmt] return ... +# 1265| [TopLevelFunction] void switch2Case_default(int) +# 1265| : +# 1265| getParameter(0): [Parameter] x +# 1265| Type = [IntType] int +# 1265| getEntryPoint(): [BlockStmt] { ... } +# 1266| getStmt(0): [DeclStmt] declaration +# 1266| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y +# 1266| Type = [IntType] int +# 1266| getVariable().getInitializer(): [Initializer] initializer for y +# 1266| getExpr(): [Literal] 0 # 1266| Type = [IntType] int -# 1266| Value = [Literal] 1 +# 1266| Value = [Literal] 0 # 1266| ValueCategory = prvalue -# 1267| getStmt(1): [ExprStmt] ExprStmt -# 1267| getExpr(): [AssignExpr] ... = ... -# 1267| Type = [IntType] int -# 1267| ValueCategory = lvalue -# 1267| getLValue(): [VariableAccess] y -# 1267| Type = [IntType] int -# 1267| ValueCategory = lvalue -# 1267| getRValue(): [Literal] 2 -# 1267| Type = [IntType] int -# 1267| Value = [Literal] 2 -# 1267| ValueCategory = prvalue -# 1268| getStmt(2): [BreakStmt] break; -# 1270| getStmt(3): [SwitchCase] case ...: -# 1270| getExpr(): [Literal] 2 -# 1270| Type = [IntType] int -# 1270| Value = [Literal] 2 -# 1270| ValueCategory = prvalue -# 1271| getStmt(4): [ExprStmt] ExprStmt -# 1271| getExpr(): [AssignExpr] ... = ... -# 1271| Type = [IntType] int -# 1271| ValueCategory = lvalue -# 1271| getLValue(): [VariableAccess] y -# 1271| Type = [IntType] int -# 1271| ValueCategory = lvalue -# 1271| getRValue(): [Literal] 3 -# 1271| Type = [IntType] int -# 1271| Value = [Literal] 3 -# 1271| ValueCategory = prvalue -# 1272| getStmt(5): [BreakStmt] break; -# 1274| getStmt(6): [SwitchCase] default: -# 1275| getStmt(7): [ExprStmt] ExprStmt -# 1275| getExpr(): [AssignExpr] ... = ... -# 1275| Type = [IntType] int -# 1275| ValueCategory = lvalue -# 1275| getLValue(): [VariableAccess] y -# 1275| Type = [IntType] int -# 1275| ValueCategory = lvalue -# 1275| getRValue(): [Literal] 4 -# 1275| Type = [IntType] int -# 1275| Value = [Literal] 4 -# 1275| ValueCategory = prvalue -# 1276| getStmt(2): [LabelStmt] label ...: -# 1277| getStmt(3): [DeclStmt] declaration -# 1277| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z -# 1277| Type = [IntType] int -# 1277| getVariable().getInitializer(): [Initializer] initializer for z -# 1277| getExpr(): [VariableAccess] y +# 1267| getStmt(1): [SwitchStmt] switch (...) ... +# 1267| getExpr(): [VariableAccess] x +# 1267| Type = [IntType] int +# 1267| ValueCategory = prvalue(load) +# 1267| getStmt(): [BlockStmt] { ... } +# 1268| getStmt(0): [SwitchCase] case ...: +# 1268| getExpr(): [Literal] 1 +# 1268| Type = [IntType] int +# 1268| Value = [Literal] 1 +# 1268| ValueCategory = prvalue +# 1269| getStmt(1): [ExprStmt] ExprStmt +# 1269| getExpr(): [AssignExpr] ... = ... +# 1269| Type = [IntType] int +# 1269| ValueCategory = lvalue +# 1269| getLValue(): [VariableAccess] y +# 1269| Type = [IntType] int +# 1269| ValueCategory = lvalue +# 1269| getRValue(): [Literal] 2 +# 1269| Type = [IntType] int +# 1269| Value = [Literal] 2 +# 1269| ValueCategory = prvalue +# 1270| getStmt(2): [BreakStmt] break; +# 1272| getStmt(3): [SwitchCase] case ...: +# 1272| getExpr(): [Literal] 2 +# 1272| Type = [IntType] int +# 1272| Value = [Literal] 2 +# 1272| ValueCategory = prvalue +# 1273| getStmt(4): [ExprStmt] ExprStmt +# 1273| getExpr(): [AssignExpr] ... = ... +# 1273| Type = [IntType] int +# 1273| ValueCategory = lvalue +# 1273| getLValue(): [VariableAccess] y +# 1273| Type = [IntType] int +# 1273| ValueCategory = lvalue +# 1273| getRValue(): [Literal] 3 +# 1273| Type = [IntType] int +# 1273| Value = [Literal] 3 +# 1273| ValueCategory = prvalue +# 1274| getStmt(5): [BreakStmt] break; +# 1276| getStmt(6): [SwitchCase] default: +# 1277| getStmt(7): [ExprStmt] ExprStmt +# 1277| getExpr(): [AssignExpr] ... = ... # 1277| Type = [IntType] int -# 1277| ValueCategory = prvalue(load) -# 1278| getStmt(4): [ReturnStmt] return ... -# 1280| [TopLevelFunction] int staticLocalInit(int) -# 1280| : -# 1280| getParameter(0): [Parameter] x -# 1280| Type = [IntType] int -# 1280| getEntryPoint(): [BlockStmt] { ... } -# 1281| getStmt(0): [DeclStmt] declaration -# 1281| getDeclarationEntry(0): [VariableDeclarationEntry] definition of a -# 1281| Type = [IntType] int -# 1281| getVariable().getInitializer(): [Initializer] initializer for a -# 1281| getExpr(): [Literal] 0 -# 1281| Type = [IntType] int -# 1281| Value = [Literal] 0 -# 1281| ValueCategory = prvalue -# 1282| getStmt(1): [DeclStmt] declaration -# 1282| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b -# 1282| Type = [IntType] int -# 1282| getVariable().getInitializer(): [Initializer] initializer for b -# 1282| getExpr(): [SizeofExprOperator] sizeof() -# 1282| Type = [LongType] unsigned long -# 1282| Value = [SizeofExprOperator] 4 -# 1282| ValueCategory = prvalue -# 1282| getExprOperand(): [VariableAccess] x -# 1282| Type = [IntType] int -# 1282| ValueCategory = lvalue -# 1282| getExprOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 1282| Type = [IntType] int -# 1282| ValueCategory = lvalue -# 1282| getExpr().getFullyConverted(): [CStyleCast] (int)... -# 1282| Conversion = [IntegralConversion] integral conversion -# 1282| Type = [IntType] int -# 1282| Value = [CStyleCast] 4 -# 1282| ValueCategory = prvalue -# 1283| getStmt(2): [DeclStmt] declaration -# 1283| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c +# 1277| ValueCategory = lvalue +# 1277| getLValue(): [VariableAccess] y +# 1277| Type = [IntType] int +# 1277| ValueCategory = lvalue +# 1277| getRValue(): [Literal] 4 +# 1277| Type = [IntType] int +# 1277| Value = [Literal] 4 +# 1277| ValueCategory = prvalue +# 1278| getStmt(2): [LabelStmt] label ...: +# 1279| getStmt(3): [DeclStmt] declaration +# 1279| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z +# 1279| Type = [IntType] int +# 1279| getVariable().getInitializer(): [Initializer] initializer for z +# 1279| getExpr(): [VariableAccess] y +# 1279| Type = [IntType] int +# 1279| ValueCategory = prvalue(load) +# 1280| getStmt(4): [ReturnStmt] return ... +# 1282| [TopLevelFunction] int staticLocalInit(int) +# 1282| : +# 1282| getParameter(0): [Parameter] x +# 1282| Type = [IntType] int +# 1282| getEntryPoint(): [BlockStmt] { ... } +# 1283| getStmt(0): [DeclStmt] declaration +# 1283| getDeclarationEntry(0): [VariableDeclarationEntry] definition of a # 1283| Type = [IntType] int -# 1283| getVariable().getInitializer(): [Initializer] initializer for c -# 1283| getExpr(): [VariableAccess] x +# 1283| getVariable().getInitializer(): [Initializer] initializer for a +# 1283| getExpr(): [Literal] 0 # 1283| Type = [IntType] int -# 1283| ValueCategory = prvalue(load) -# 1284| getStmt(3): [DeclStmt] declaration -# 1284| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d +# 1283| Value = [Literal] 0 +# 1283| ValueCategory = prvalue +# 1284| getStmt(1): [DeclStmt] declaration +# 1284| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b # 1284| Type = [IntType] int -# 1286| getStmt(4): [ReturnStmt] return ... -# 1286| getExpr(): [AddExpr] ... + ... +# 1284| getVariable().getInitializer(): [Initializer] initializer for b +# 1284| getExpr(): [SizeofExprOperator] sizeof() +# 1284| Type = [LongType] unsigned long +# 1284| Value = [SizeofExprOperator] 4 +# 1284| ValueCategory = prvalue +# 1284| getExprOperand(): [VariableAccess] x +# 1284| Type = [IntType] int +# 1284| ValueCategory = lvalue +# 1284| getExprOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 1284| Type = [IntType] int +# 1284| ValueCategory = lvalue +# 1284| getExpr().getFullyConverted(): [CStyleCast] (int)... +# 1284| Conversion = [IntegralConversion] integral conversion +# 1284| Type = [IntType] int +# 1284| Value = [CStyleCast] 4 +# 1284| ValueCategory = prvalue +# 1285| getStmt(2): [DeclStmt] declaration +# 1285| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c +# 1285| Type = [IntType] int +# 1285| getVariable().getInitializer(): [Initializer] initializer for c +# 1285| getExpr(): [VariableAccess] x +# 1285| Type = [IntType] int +# 1285| ValueCategory = prvalue(load) +# 1286| getStmt(3): [DeclStmt] declaration +# 1286| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d # 1286| Type = [IntType] int -# 1286| ValueCategory = prvalue -# 1286| getLeftOperand(): [AddExpr] ... + ... -# 1286| Type = [IntType] int -# 1286| ValueCategory = prvalue -# 1286| getLeftOperand(): [AddExpr] ... + ... -# 1286| Type = [IntType] int -# 1286| ValueCategory = prvalue -# 1286| getLeftOperand(): [VariableAccess] a -# 1286| Type = [IntType] int -# 1286| ValueCategory = prvalue(load) -# 1286| getRightOperand(): [VariableAccess] b -# 1286| Type = [IntType] int -# 1286| ValueCategory = prvalue(load) -# 1286| getRightOperand(): [VariableAccess] c -# 1286| Type = [IntType] int -# 1286| ValueCategory = prvalue(load) -# 1286| getRightOperand(): [VariableAccess] d -# 1286| Type = [IntType] int -# 1286| ValueCategory = prvalue(load) -# 1289| [TopLevelFunction] void staticLocalWithConstructor(char const*) -# 1289| : -# 1289| getParameter(0): [Parameter] dynamic -# 1289| Type = [PointerType] const char * -# 1289| getEntryPoint(): [BlockStmt] { ... } -# 1290| getStmt(0): [DeclStmt] declaration -# 1290| getDeclarationEntry(0): [VariableDeclarationEntry] definition of a -# 1290| Type = [Struct] String +# 1288| getStmt(4): [ReturnStmt] return ... +# 1288| getExpr(): [AddExpr] ... + ... +# 1288| Type = [IntType] int +# 1288| ValueCategory = prvalue +# 1288| getLeftOperand(): [AddExpr] ... + ... +# 1288| Type = [IntType] int +# 1288| ValueCategory = prvalue +# 1288| getLeftOperand(): [AddExpr] ... + ... +# 1288| Type = [IntType] int +# 1288| ValueCategory = prvalue +# 1288| getLeftOperand(): [VariableAccess] a +# 1288| Type = [IntType] int +# 1288| ValueCategory = prvalue(load) +# 1288| getRightOperand(): [VariableAccess] b +# 1288| Type = [IntType] int +# 1288| ValueCategory = prvalue(load) +# 1288| getRightOperand(): [VariableAccess] c +# 1288| Type = [IntType] int +# 1288| ValueCategory = prvalue(load) +# 1288| getRightOperand(): [VariableAccess] d +# 1288| Type = [IntType] int +# 1288| ValueCategory = prvalue(load) +# 1291| [TopLevelFunction] void staticLocalWithConstructor(char const*) +# 1291| : +# 1291| getParameter(0): [Parameter] dynamic +# 1291| Type = [PointerType] const char * +# 1291| getEntryPoint(): [BlockStmt] { ... } +# 1292| getStmt(0): [DeclStmt] declaration +# 1292| getDeclarationEntry(0): [VariableDeclarationEntry] definition of a +# 1292| Type = [Struct] String #-----| getVariable().getInitializer(): [Initializer] initializer for a #-----| getExpr(): [ConstructorCall] call to String #-----| Type = [VoidType] void #-----| ValueCategory = prvalue -# 1291| getStmt(1): [DeclStmt] declaration -# 1291| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b -# 1291| Type = [Struct] String -# 1291| getVariable().getInitializer(): [Initializer] initializer for b -# 1291| getExpr(): [ConstructorCall] call to String -# 1291| Type = [VoidType] void -# 1291| ValueCategory = prvalue -# 1291| getArgument(0): static -# 1291| Type = [ArrayType] const char[7] -# 1291| Value = [StringLiteral] "static" -# 1291| ValueCategory = lvalue -# 1291| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 1291| Type = [PointerType] const char * -# 1291| ValueCategory = prvalue -# 1292| getStmt(2): [DeclStmt] declaration -# 1292| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c -# 1292| Type = [Struct] String -# 1292| getVariable().getInitializer(): [Initializer] initializer for c -# 1292| getExpr(): [ConstructorCall] call to String -# 1292| Type = [VoidType] void -# 1292| ValueCategory = prvalue -# 1292| getArgument(0): [VariableAccess] dynamic -# 1292| Type = [PointerType] const char * -# 1292| ValueCategory = prvalue(load) -# 1293| getStmt(3): [ReturnStmt] return ... -# 1297| [TopLevelFunction] char* strcpy(char*, char const*) -# 1297| : -# 1297| getParameter(0): [Parameter] destination -# 1297| Type = [CharPointerType] char * -# 1297| getParameter(1): [Parameter] source -# 1297| Type = [PointerType] const char * -# 1298| [TopLevelFunction] char* strcat(char*, char const*) -# 1298| : -# 1298| getParameter(0): [Parameter] destination -# 1298| Type = [CharPointerType] char * -# 1298| getParameter(1): [Parameter] source -# 1298| Type = [PointerType] const char * -# 1300| [TopLevelFunction] void test_strings(char*, char*) +# 1293| getStmt(1): [DeclStmt] declaration +# 1293| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b +# 1293| Type = [Struct] String +# 1293| getVariable().getInitializer(): [Initializer] initializer for b +# 1293| getExpr(): [ConstructorCall] call to String +# 1293| Type = [VoidType] void +# 1293| ValueCategory = prvalue +# 1293| getArgument(0): static +# 1293| Type = [ArrayType] const char[7] +# 1293| Value = [StringLiteral] "static" +# 1293| ValueCategory = lvalue +# 1293| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 1293| Type = [PointerType] const char * +# 1293| ValueCategory = prvalue +# 1294| getStmt(2): [DeclStmt] declaration +# 1294| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c +# 1294| Type = [Struct] String +# 1294| getVariable().getInitializer(): [Initializer] initializer for c +# 1294| getExpr(): [ConstructorCall] call to String +# 1294| Type = [VoidType] void +# 1294| ValueCategory = prvalue +# 1294| getArgument(0): [VariableAccess] dynamic +# 1294| Type = [PointerType] const char * +# 1294| ValueCategory = prvalue(load) +# 1295| getStmt(3): [ReturnStmt] return ... +# 1299| [TopLevelFunction] char* strcpy(char*, char const*) +# 1299| : +# 1299| getParameter(0): [Parameter] destination +# 1299| Type = [CharPointerType] char * +# 1299| getParameter(1): [Parameter] source +# 1299| Type = [PointerType] const char * +# 1300| [TopLevelFunction] char* strcat(char*, char const*) # 1300| : -# 1300| getParameter(0): [Parameter] s1 +# 1300| getParameter(0): [Parameter] destination # 1300| Type = [CharPointerType] char * -# 1300| getParameter(1): [Parameter] s2 -# 1300| Type = [CharPointerType] char * -# 1300| getEntryPoint(): [BlockStmt] { ... } -# 1301| getStmt(0): [DeclStmt] declaration -# 1301| getDeclarationEntry(0): [VariableDeclarationEntry] definition of buffer -# 1301| Type = [ArrayType] char[1024] -# 1301| getVariable().getInitializer(): [Initializer] initializer for buffer -# 1301| getExpr(): [ArrayAggregateLiteral] {...} -# 1301| Type = [ArrayType] char[1024] -# 1301| ValueCategory = prvalue -# 1301| getAnElementExpr(0): [Literal] 0 -# 1301| Type = [IntType] int -# 1301| Value = [Literal] 0 -# 1301| ValueCategory = prvalue -# 1301| getAnElementExpr(0).getFullyConverted(): [CStyleCast] (char)... -# 1301| Conversion = [IntegralConversion] integral conversion -# 1301| Type = [PlainCharType] char -# 1301| Value = [CStyleCast] 0 -# 1301| ValueCategory = prvalue -# 1303| getStmt(1): [ExprStmt] ExprStmt -# 1303| getExpr(): [FunctionCall] call to strcpy -# 1303| Type = [CharPointerType] char * -# 1303| ValueCategory = prvalue -# 1303| getArgument(0): [VariableAccess] buffer -# 1303| Type = [ArrayType] char[1024] -# 1303| ValueCategory = lvalue -# 1303| getArgument(1): [VariableAccess] s1 -# 1303| Type = [CharPointerType] char * -# 1303| ValueCategory = prvalue(load) -# 1303| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 1303| Type = [CharPointerType] char * -# 1303| ValueCategory = prvalue -# 1303| getArgument(1).getFullyConverted(): [CStyleCast] (const char *)... -# 1303| Conversion = [PointerConversion] pointer conversion -# 1303| Type = [PointerType] const char * -# 1303| ValueCategory = prvalue -# 1304| getStmt(2): [ExprStmt] ExprStmt -# 1304| getExpr(): [FunctionCall] call to strcat -# 1304| Type = [CharPointerType] char * -# 1304| ValueCategory = prvalue -# 1304| getArgument(0): [VariableAccess] buffer -# 1304| Type = [ArrayType] char[1024] -# 1304| ValueCategory = lvalue -# 1304| getArgument(1): [VariableAccess] s2 -# 1304| Type = [CharPointerType] char * -# 1304| ValueCategory = prvalue(load) -# 1304| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 1304| Type = [CharPointerType] char * -# 1304| ValueCategory = prvalue -# 1304| getArgument(1).getFullyConverted(): [CStyleCast] (const char *)... -# 1304| Conversion = [PointerConversion] pointer conversion -# 1304| Type = [PointerType] const char * -# 1304| ValueCategory = prvalue -# 1305| getStmt(3): [ReturnStmt] return ... -# 1307| [CopyAssignmentOperator] A& A::operator=(A const&) -# 1307| : +# 1300| getParameter(1): [Parameter] source +# 1300| Type = [PointerType] const char * +# 1302| [TopLevelFunction] void test_strings(char*, char*) +# 1302| : +# 1302| getParameter(0): [Parameter] s1 +# 1302| Type = [CharPointerType] char * +# 1302| getParameter(1): [Parameter] s2 +# 1302| Type = [CharPointerType] char * +# 1302| getEntryPoint(): [BlockStmt] { ... } +# 1303| getStmt(0): [DeclStmt] declaration +# 1303| getDeclarationEntry(0): [VariableDeclarationEntry] definition of buffer +# 1303| Type = [ArrayType] char[1024] +# 1303| getVariable().getInitializer(): [Initializer] initializer for buffer +# 1303| getExpr(): [ArrayAggregateLiteral] {...} +# 1303| Type = [ArrayType] char[1024] +# 1303| ValueCategory = prvalue +# 1303| getAnElementExpr(0): [Literal] 0 +# 1303| Type = [IntType] int +# 1303| Value = [Literal] 0 +# 1303| ValueCategory = prvalue +# 1303| getAnElementExpr(0).getFullyConverted(): [CStyleCast] (char)... +# 1303| Conversion = [IntegralConversion] integral conversion +# 1303| Type = [PlainCharType] char +# 1303| Value = [CStyleCast] 0 +# 1303| ValueCategory = prvalue +# 1305| getStmt(1): [ExprStmt] ExprStmt +# 1305| getExpr(): [FunctionCall] call to strcpy +# 1305| Type = [CharPointerType] char * +# 1305| ValueCategory = prvalue +# 1305| getArgument(0): [VariableAccess] buffer +# 1305| Type = [ArrayType] char[1024] +# 1305| ValueCategory = lvalue +# 1305| getArgument(1): [VariableAccess] s1 +# 1305| Type = [CharPointerType] char * +# 1305| ValueCategory = prvalue(load) +# 1305| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 1305| Type = [CharPointerType] char * +# 1305| ValueCategory = prvalue +# 1305| getArgument(1).getFullyConverted(): [CStyleCast] (const char *)... +# 1305| Conversion = [PointerConversion] pointer conversion +# 1305| Type = [PointerType] const char * +# 1305| ValueCategory = prvalue +# 1306| getStmt(2): [ExprStmt] ExprStmt +# 1306| getExpr(): [FunctionCall] call to strcat +# 1306| Type = [CharPointerType] char * +# 1306| ValueCategory = prvalue +# 1306| getArgument(0): [VariableAccess] buffer +# 1306| Type = [ArrayType] char[1024] +# 1306| ValueCategory = lvalue +# 1306| getArgument(1): [VariableAccess] s2 +# 1306| Type = [CharPointerType] char * +# 1306| ValueCategory = prvalue(load) +# 1306| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 1306| Type = [CharPointerType] char * +# 1306| ValueCategory = prvalue +# 1306| getArgument(1).getFullyConverted(): [CStyleCast] (const char *)... +# 1306| Conversion = [PointerConversion] pointer conversion +# 1306| Type = [PointerType] const char * +# 1306| ValueCategory = prvalue +# 1307| getStmt(3): [ReturnStmt] return ... +# 1309| [CopyAssignmentOperator] A& A::operator=(A const&) +# 1309| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const A & -# 1307| [MoveAssignmentOperator] A& A::operator=(A&&) -# 1307| : +# 1309| [MoveAssignmentOperator] A& A::operator=(A&&) +# 1309| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] A && -# 1310| [MemberFunction] void A::static_member(A*, int) -# 1310| : -# 1310| getParameter(0): [Parameter] a -# 1310| Type = [PointerType] A * -# 1310| getParameter(1): [Parameter] x -# 1310| Type = [IntType] int -# 1310| getEntryPoint(): [BlockStmt] { ... } -# 1311| getStmt(0): [ExprStmt] ExprStmt -# 1311| getExpr(): [AssignExpr] ... = ... -# 1311| Type = [IntType] int -# 1311| ValueCategory = lvalue -# 1311| getLValue(): [PointerFieldAccess] member -# 1311| Type = [IntType] int -# 1311| ValueCategory = lvalue -# 1311| getQualifier(): [VariableAccess] a -# 1311| Type = [PointerType] A * -# 1311| ValueCategory = prvalue(load) -# 1311| getRValue(): [VariableAccess] x -# 1311| Type = [IntType] int -# 1311| ValueCategory = prvalue(load) -# 1312| getStmt(1): [ReturnStmt] return ... -# 1314| [MemberFunction] void A::static_member_without_def() -# 1314| : -# 1317| [TopLevelFunction] A* getAnInstanceOfA() -# 1317| : -# 1319| [TopLevelFunction] void test_static_member_functions(int, A*) +# 1312| [MemberFunction] void A::static_member(A*, int) +# 1312| : +# 1312| getParameter(0): [Parameter] a +# 1312| Type = [PointerType] A * +# 1312| getParameter(1): [Parameter] x +# 1312| Type = [IntType] int +# 1312| getEntryPoint(): [BlockStmt] { ... } +# 1313| getStmt(0): [ExprStmt] ExprStmt +# 1313| getExpr(): [AssignExpr] ... = ... +# 1313| Type = [IntType] int +# 1313| ValueCategory = lvalue +# 1313| getLValue(): [PointerFieldAccess] member +# 1313| Type = [IntType] int +# 1313| ValueCategory = lvalue +# 1313| getQualifier(): [VariableAccess] a +# 1313| Type = [PointerType] A * +# 1313| ValueCategory = prvalue(load) +# 1313| getRValue(): [VariableAccess] x +# 1313| Type = [IntType] int +# 1313| ValueCategory = prvalue(load) +# 1314| getStmt(1): [ReturnStmt] return ... +# 1316| [MemberFunction] void A::static_member_without_def() +# 1316| : +# 1319| [TopLevelFunction] A* getAnInstanceOfA() # 1319| : -# 1319| getParameter(0): [Parameter] int_arg -# 1319| Type = [IntType] int -# 1319| getParameter(1): [Parameter] a_arg -# 1319| Type = [PointerType] A * -# 1319| getEntryPoint(): [BlockStmt] { ... } -# 1320| getStmt(0): [DeclStmt] declaration -# 1320| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c -# 1320| Type = [Class] C -# 1320| getVariable().getInitializer(): [Initializer] initializer for c -# 1320| getExpr(): [ConstructorCall] call to C -# 1320| Type = [VoidType] void -# 1320| ValueCategory = prvalue -# 1321| getStmt(1): [ExprStmt] ExprStmt -# 1321| getExpr(): [FunctionCall] call to StaticMemberFunction -# 1321| Type = [IntType] int -# 1321| ValueCategory = prvalue -# 1321| getQualifier(): [VariableAccess] c -# 1321| Type = [Class] C -# 1321| ValueCategory = lvalue -# 1321| getArgument(0): [Literal] 10 -# 1321| Type = [IntType] int -# 1321| Value = [Literal] 10 -# 1321| ValueCategory = prvalue -# 1322| getStmt(2): [ExprStmt] ExprStmt -# 1322| getExpr(): [FunctionCall] call to StaticMemberFunction -# 1322| Type = [IntType] int -# 1322| ValueCategory = prvalue -# 1322| getArgument(0): [Literal] 10 -# 1322| Type = [IntType] int -# 1322| Value = [Literal] 10 -# 1322| ValueCategory = prvalue -# 1324| getStmt(3): [DeclStmt] declaration -# 1324| getDeclarationEntry(0): [VariableDeclarationEntry] definition of a -# 1324| Type = [Struct] A -# 1325| getStmt(4): [ExprStmt] ExprStmt -# 1325| getExpr(): [FunctionCall] call to static_member -# 1325| Type = [VoidType] void -# 1325| ValueCategory = prvalue -# 1325| getQualifier(): [VariableAccess] a -# 1325| Type = [Struct] A -# 1325| ValueCategory = lvalue -# 1325| getArgument(0): [AddressOfExpr] & ... -# 1325| Type = [PointerType] A * -# 1325| ValueCategory = prvalue -# 1325| getOperand(): [VariableAccess] a -# 1325| Type = [Struct] A -# 1325| ValueCategory = lvalue -# 1325| getArgument(1): [VariableAccess] int_arg -# 1325| Type = [IntType] int -# 1325| ValueCategory = prvalue(load) -# 1326| getStmt(5): [ExprStmt] ExprStmt -# 1326| getExpr(): [FunctionCall] call to static_member -# 1326| Type = [VoidType] void -# 1326| ValueCategory = prvalue -# 1326| getArgument(0): [AddressOfExpr] & ... -# 1326| Type = [PointerType] A * -# 1326| ValueCategory = prvalue -# 1326| getOperand(): [VariableAccess] a -# 1326| Type = [Struct] A -# 1326| ValueCategory = lvalue -# 1326| getArgument(1): [VariableAccess] int_arg -# 1326| Type = [IntType] int -# 1326| ValueCategory = prvalue(load) -# 1328| getStmt(6): [ExprStmt] ExprStmt +# 1321| [TopLevelFunction] void test_static_member_functions(int, A*) +# 1321| : +# 1321| getParameter(0): [Parameter] int_arg +# 1321| Type = [IntType] int +# 1321| getParameter(1): [Parameter] a_arg +# 1321| Type = [PointerType] A * +# 1321| getEntryPoint(): [BlockStmt] { ... } +# 1322| getStmt(0): [DeclStmt] declaration +# 1322| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c +# 1322| Type = [Class] C +# 1322| getVariable().getInitializer(): [Initializer] initializer for c +# 1322| getExpr(): [ConstructorCall] call to C +# 1322| Type = [VoidType] void +# 1322| ValueCategory = prvalue +# 1323| getStmt(1): [ExprStmt] ExprStmt +# 1323| getExpr(): [FunctionCall] call to StaticMemberFunction +# 1323| Type = [IntType] int +# 1323| ValueCategory = prvalue +# 1323| getQualifier(): [VariableAccess] c +# 1323| Type = [Class] C +# 1323| ValueCategory = lvalue +# 1323| getArgument(0): [Literal] 10 +# 1323| Type = [IntType] int +# 1323| Value = [Literal] 10 +# 1323| ValueCategory = prvalue +# 1324| getStmt(2): [ExprStmt] ExprStmt +# 1324| getExpr(): [FunctionCall] call to StaticMemberFunction +# 1324| Type = [IntType] int +# 1324| ValueCategory = prvalue +# 1324| getArgument(0): [Literal] 10 +# 1324| Type = [IntType] int +# 1324| Value = [Literal] 10 +# 1324| ValueCategory = prvalue +# 1326| getStmt(3): [DeclStmt] declaration +# 1326| getDeclarationEntry(0): [VariableDeclarationEntry] definition of a +# 1326| Type = [Struct] A +# 1327| getStmt(4): [ExprStmt] ExprStmt +# 1327| getExpr(): [FunctionCall] call to static_member +# 1327| Type = [VoidType] void +# 1327| ValueCategory = prvalue +# 1327| getQualifier(): [VariableAccess] a +# 1327| Type = [Struct] A +# 1327| ValueCategory = lvalue +# 1327| getArgument(0): [AddressOfExpr] & ... +# 1327| Type = [PointerType] A * +# 1327| ValueCategory = prvalue +# 1327| getOperand(): [VariableAccess] a +# 1327| Type = [Struct] A +# 1327| ValueCategory = lvalue +# 1327| getArgument(1): [VariableAccess] int_arg +# 1327| Type = [IntType] int +# 1327| ValueCategory = prvalue(load) +# 1328| getStmt(5): [ExprStmt] ExprStmt # 1328| getExpr(): [FunctionCall] call to static_member # 1328| Type = [VoidType] void # 1328| ValueCategory = prvalue -# 1328| getQualifier(): [AddressOfExpr] & ... +# 1328| getArgument(0): [AddressOfExpr] & ... # 1328| Type = [PointerType] A * # 1328| ValueCategory = prvalue # 1328| getOperand(): [VariableAccess] a # 1328| Type = [Struct] A # 1328| ValueCategory = lvalue -# 1328| getArgument(0): [VariableAccess] a_arg -# 1328| Type = [PointerType] A * -# 1328| ValueCategory = prvalue(load) -# 1328| getArgument(1): [AddExpr] ... + ... +# 1328| getArgument(1): [VariableAccess] int_arg # 1328| Type = [IntType] int -# 1328| ValueCategory = prvalue -# 1328| getLeftOperand(): [VariableAccess] int_arg -# 1328| Type = [IntType] int -# 1328| ValueCategory = prvalue(load) -# 1328| getRightOperand(): [Literal] 2 -# 1328| Type = [IntType] int -# 1328| Value = [Literal] 2 -# 1328| ValueCategory = prvalue -# 1328| getQualifier().getFullyConverted(): [ParenthesisExpr] (...) -# 1328| Type = [PointerType] A * -# 1328| ValueCategory = prvalue -# 1329| getStmt(7): [ExprStmt] ExprStmt -# 1329| getExpr(): [FunctionCall] call to static_member -# 1329| Type = [VoidType] void -# 1329| ValueCategory = prvalue -# 1329| getQualifier(): [PointerDereferenceExpr] * ... -# 1329| Type = [Struct] A -# 1329| ValueCategory = lvalue -# 1329| getOperand(): [VariableAccess] a_arg -# 1329| Type = [PointerType] A * -# 1329| ValueCategory = prvalue(load) -# 1329| getArgument(0): [AddressOfExpr] & ... -# 1329| Type = [PointerType] A * -# 1329| ValueCategory = prvalue -# 1329| getOperand(): [VariableAccess] a -# 1329| Type = [Struct] A -# 1329| ValueCategory = lvalue -# 1329| getArgument(1): [Literal] 99 -# 1329| Type = [IntType] int -# 1329| Value = [Literal] 99 -# 1329| ValueCategory = prvalue -# 1329| getQualifier().getFullyConverted(): [ParenthesisExpr] (...) -# 1329| Type = [Struct] A -# 1329| ValueCategory = lvalue -# 1330| getStmt(8): [ExprStmt] ExprStmt +# 1328| ValueCategory = prvalue(load) +# 1330| getStmt(6): [ExprStmt] ExprStmt # 1330| getExpr(): [FunctionCall] call to static_member # 1330| Type = [VoidType] void # 1330| ValueCategory = prvalue -# 1330| getQualifier(): [VariableAccess] a_arg +# 1330| getQualifier(): [AddressOfExpr] & ... # 1330| Type = [PointerType] A * -# 1330| ValueCategory = prvalue(load) +# 1330| ValueCategory = prvalue +# 1330| getOperand(): [VariableAccess] a +# 1330| Type = [Struct] A +# 1330| ValueCategory = lvalue # 1330| getArgument(0): [VariableAccess] a_arg # 1330| Type = [PointerType] A * # 1330| ValueCategory = prvalue(load) -# 1330| getArgument(1): [UnaryMinusExpr] - ... +# 1330| getArgument(1): [AddExpr] ... + ... # 1330| Type = [IntType] int -# 1330| Value = [UnaryMinusExpr] -1 # 1330| ValueCategory = prvalue -# 1330| getOperand(): [Literal] 1 +# 1330| getLeftOperand(): [VariableAccess] int_arg # 1330| Type = [IntType] int -# 1330| Value = [Literal] 1 +# 1330| ValueCategory = prvalue(load) +# 1330| getRightOperand(): [Literal] 2 +# 1330| Type = [IntType] int +# 1330| Value = [Literal] 2 # 1330| ValueCategory = prvalue -# 1332| getStmt(9): [ExprStmt] ExprStmt -# 1332| getExpr(): [FunctionCall] call to static_member_without_def +# 1330| getQualifier().getFullyConverted(): [ParenthesisExpr] (...) +# 1330| Type = [PointerType] A * +# 1330| ValueCategory = prvalue +# 1331| getStmt(7): [ExprStmt] ExprStmt +# 1331| getExpr(): [FunctionCall] call to static_member +# 1331| Type = [VoidType] void +# 1331| ValueCategory = prvalue +# 1331| getQualifier(): [PointerDereferenceExpr] * ... +# 1331| Type = [Struct] A +# 1331| ValueCategory = lvalue +# 1331| getOperand(): [VariableAccess] a_arg +# 1331| Type = [PointerType] A * +# 1331| ValueCategory = prvalue(load) +# 1331| getArgument(0): [AddressOfExpr] & ... +# 1331| Type = [PointerType] A * +# 1331| ValueCategory = prvalue +# 1331| getOperand(): [VariableAccess] a +# 1331| Type = [Struct] A +# 1331| ValueCategory = lvalue +# 1331| getArgument(1): [Literal] 99 +# 1331| Type = [IntType] int +# 1331| Value = [Literal] 99 +# 1331| ValueCategory = prvalue +# 1331| getQualifier().getFullyConverted(): [ParenthesisExpr] (...) +# 1331| Type = [Struct] A +# 1331| ValueCategory = lvalue +# 1332| getStmt(8): [ExprStmt] ExprStmt +# 1332| getExpr(): [FunctionCall] call to static_member # 1332| Type = [VoidType] void # 1332| ValueCategory = prvalue -# 1332| getQualifier(): [VariableAccess] a -# 1332| Type = [Struct] A -# 1332| ValueCategory = lvalue -# 1333| getStmt(10): [ExprStmt] ExprStmt -# 1333| getExpr(): [FunctionCall] call to static_member_without_def -# 1333| Type = [VoidType] void -# 1333| ValueCategory = prvalue -# 1335| getStmt(11): [ExprStmt] ExprStmt +# 1332| getQualifier(): [VariableAccess] a_arg +# 1332| Type = [PointerType] A * +# 1332| ValueCategory = prvalue(load) +# 1332| getArgument(0): [VariableAccess] a_arg +# 1332| Type = [PointerType] A * +# 1332| ValueCategory = prvalue(load) +# 1332| getArgument(1): [UnaryMinusExpr] - ... +# 1332| Type = [IntType] int +# 1332| Value = [UnaryMinusExpr] -1 +# 1332| ValueCategory = prvalue +# 1332| getOperand(): [Literal] 1 +# 1332| Type = [IntType] int +# 1332| Value = [Literal] 1 +# 1332| ValueCategory = prvalue +# 1334| getStmt(9): [ExprStmt] ExprStmt +# 1334| getExpr(): [FunctionCall] call to static_member_without_def +# 1334| Type = [VoidType] void +# 1334| ValueCategory = prvalue +# 1334| getQualifier(): [VariableAccess] a +# 1334| Type = [Struct] A +# 1334| ValueCategory = lvalue +# 1335| getStmt(10): [ExprStmt] ExprStmt # 1335| getExpr(): [FunctionCall] call to static_member_without_def # 1335| Type = [VoidType] void # 1335| ValueCategory = prvalue -# 1335| getQualifier(): [FunctionCall] call to getAnInstanceOfA -# 1335| Type = [PointerType] A * -# 1335| ValueCategory = prvalue -# 1336| getStmt(12): [ReturnStmt] return ... -# 1336| getImplicitDestructorCall(0): [DestructorCall] call to ~C -# 1336| Type = [VoidType] void -# 1336| ValueCategory = prvalue -# 1336| getQualifier(): [VariableAccess] c -# 1336| Type = [Class] C -# 1336| ValueCategory = lvalue -# 1338| [TopLevelFunction] int missingReturnValue(bool, int) -# 1338| : -# 1338| getParameter(0): [Parameter] b -# 1338| Type = [BoolType] bool -# 1338| getParameter(1): [Parameter] x -# 1338| Type = [IntType] int -# 1338| getEntryPoint(): [BlockStmt] { ... } -# 1339| getStmt(0): [IfStmt] if (...) ... -# 1339| getCondition(): [VariableAccess] b -# 1339| Type = [BoolType] bool -# 1339| ValueCategory = prvalue(load) -# 1339| getThen(): [BlockStmt] { ... } -# 1340| getStmt(0): [ReturnStmt] return ... -# 1340| getExpr(): [VariableAccess] x -# 1340| Type = [IntType] int -# 1340| ValueCategory = prvalue(load) -# 1342| getStmt(1): [ReturnStmt] return ... -# 1344| [TopLevelFunction] void returnVoid(int, int) -# 1344| : -# 1344| getParameter(0): [Parameter] x -# 1344| Type = [IntType] int -# 1344| getParameter(1): [Parameter] y -# 1344| Type = [IntType] int -# 1344| getEntryPoint(): [BlockStmt] { ... } -# 1345| getStmt(0): [ReturnStmt] return ... -# 1345| getExpr(): [FunctionCall] call to IntegerOps -# 1345| Type = [VoidType] void -# 1345| ValueCategory = prvalue -# 1345| getArgument(0): [VariableAccess] x -# 1345| Type = [IntType] int -# 1345| ValueCategory = prvalue(load) -# 1345| getArgument(1): [VariableAccess] y -# 1345| Type = [IntType] int -# 1345| ValueCategory = prvalue(load) -# 1348| [TopLevelFunction] void gccBinaryConditional(bool, int, long) -# 1348| : -# 1348| getParameter(0): [Parameter] b -# 1348| Type = [BoolType] bool -# 1348| getParameter(1): [Parameter] x -# 1348| Type = [IntType] int -# 1348| getParameter(2): [Parameter] y -# 1348| Type = [LongType] long -# 1348| getEntryPoint(): [BlockStmt] { ... } -# 1349| getStmt(0): [DeclStmt] declaration -# 1349| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z -# 1349| Type = [IntType] int -# 1349| getVariable().getInitializer(): [Initializer] initializer for z -# 1349| getExpr(): [VariableAccess] x -# 1349| Type = [IntType] int -# 1349| ValueCategory = prvalue(load) -# 1350| getStmt(1): [ExprStmt] ExprStmt -# 1350| getExpr(): [AssignExpr] ... = ... -# 1350| Type = [IntType] int -# 1350| ValueCategory = lvalue -# 1350| getLValue(): [VariableAccess] z -# 1350| Type = [IntType] int -# 1350| ValueCategory = lvalue -# 1350| getRValue(): [ConditionalExpr] ... ? ... : ... -# 1350| Type = [IntType] int -# 1350| ValueCategory = prvalue(load) -# 1350| getCondition(): [VariableAccess] b -# 1350| Type = [BoolType] bool -# 1350| ValueCategory = prvalue(load) -# 1350| getElse(): [VariableAccess] x -# 1350| Type = [IntType] int -# 1350| ValueCategory = prvalue(load) -# 1351| getStmt(2): [ExprStmt] ExprStmt -# 1351| getExpr(): [AssignExpr] ... = ... +# 1337| getStmt(11): [ExprStmt] ExprStmt +# 1337| getExpr(): [FunctionCall] call to static_member_without_def +# 1337| Type = [VoidType] void +# 1337| ValueCategory = prvalue +# 1337| getQualifier(): [FunctionCall] call to getAnInstanceOfA +# 1337| Type = [PointerType] A * +# 1337| ValueCategory = prvalue +# 1338| getStmt(12): [ReturnStmt] return ... +# 1338| getImplicitDestructorCall(0): [DestructorCall] call to ~C +# 1338| Type = [VoidType] void +# 1338| ValueCategory = prvalue +# 1338| getQualifier(): [VariableAccess] c +# 1338| Type = [Class] C +# 1338| ValueCategory = lvalue +# 1340| [TopLevelFunction] int missingReturnValue(bool, int) +# 1340| : +# 1340| getParameter(0): [Parameter] b +# 1340| Type = [BoolType] bool +# 1340| getParameter(1): [Parameter] x +# 1340| Type = [IntType] int +# 1340| getEntryPoint(): [BlockStmt] { ... } +# 1341| getStmt(0): [IfStmt] if (...) ... +# 1341| getCondition(): [VariableAccess] b +# 1341| Type = [BoolType] bool +# 1341| ValueCategory = prvalue(load) +# 1341| getThen(): [BlockStmt] { ... } +# 1342| getStmt(0): [ReturnStmt] return ... +# 1342| getExpr(): [VariableAccess] x +# 1342| Type = [IntType] int +# 1342| ValueCategory = prvalue(load) +# 1344| getStmt(1): [ReturnStmt] return ... +# 1346| [TopLevelFunction] void returnVoid(int, int) +# 1346| : +# 1346| getParameter(0): [Parameter] x +# 1346| Type = [IntType] int +# 1346| getParameter(1): [Parameter] y +# 1346| Type = [IntType] int +# 1346| getEntryPoint(): [BlockStmt] { ... } +# 1347| getStmt(0): [ReturnStmt] return ... +# 1347| getExpr(): [FunctionCall] call to IntegerOps +# 1347| Type = [VoidType] void +# 1347| ValueCategory = prvalue +# 1347| getArgument(0): [VariableAccess] x +# 1347| Type = [IntType] int +# 1347| ValueCategory = prvalue(load) +# 1347| getArgument(1): [VariableAccess] y +# 1347| Type = [IntType] int +# 1347| ValueCategory = prvalue(load) +# 1350| [TopLevelFunction] void gccBinaryConditional(bool, int, long) +# 1350| : +# 1350| getParameter(0): [Parameter] b +# 1350| Type = [BoolType] bool +# 1350| getParameter(1): [Parameter] x +# 1350| Type = [IntType] int +# 1350| getParameter(2): [Parameter] y +# 1350| Type = [LongType] long +# 1350| getEntryPoint(): [BlockStmt] { ... } +# 1351| getStmt(0): [DeclStmt] declaration +# 1351| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z # 1351| Type = [IntType] int -# 1351| ValueCategory = lvalue -# 1351| getLValue(): [VariableAccess] z -# 1351| Type = [IntType] int -# 1351| ValueCategory = lvalue -# 1351| getRValue(): [ConditionalExpr] ... ? ... : ... -# 1351| Type = [LongType] long -# 1351| ValueCategory = prvalue(load) -# 1351| getCondition(): [VariableAccess] b -# 1351| Type = [BoolType] bool +# 1351| getVariable().getInitializer(): [Initializer] initializer for z +# 1351| getExpr(): [VariableAccess] x +# 1351| Type = [IntType] int # 1351| ValueCategory = prvalue(load) -# 1351| getElse(): [VariableAccess] y -# 1351| Type = [LongType] long -# 1351| ValueCategory = prvalue(load) -# 1351| getRValue().getFullyConverted(): [CStyleCast] (int)... -# 1351| Conversion = [IntegralConversion] integral conversion -# 1351| Type = [IntType] int -# 1351| ValueCategory = prvalue -# 1352| getStmt(3): [ExprStmt] ExprStmt +# 1352| getStmt(1): [ExprStmt] ExprStmt # 1352| getExpr(): [AssignExpr] ... = ... # 1352| Type = [IntType] int # 1352| ValueCategory = lvalue @@ -14089,17 +14085,13 @@ ir.cpp: # 1352| getRValue(): [ConditionalExpr] ... ? ... : ... # 1352| Type = [IntType] int # 1352| ValueCategory = prvalue(load) -# 1352| getCondition(): [VariableAccess] x -# 1352| Type = [IntType] int +# 1352| getCondition(): [VariableAccess] b +# 1352| Type = [BoolType] bool # 1352| ValueCategory = prvalue(load) # 1352| getElse(): [VariableAccess] x # 1352| Type = [IntType] int # 1352| ValueCategory = prvalue(load) -# 1352| getCondition().getFullyConverted(): [CStyleCast] (bool)... -# 1352| Conversion = [BoolConversion] conversion to bool -# 1352| Type = [BoolType] bool -# 1352| ValueCategory = prvalue -# 1353| getStmt(4): [ExprStmt] ExprStmt +# 1353| getStmt(2): [ExprStmt] ExprStmt # 1353| getExpr(): [AssignExpr] ... = ... # 1353| Type = [IntType] int # 1353| ValueCategory = lvalue @@ -14109,21 +14101,17 @@ ir.cpp: # 1353| getRValue(): [ConditionalExpr] ... ? ... : ... # 1353| Type = [LongType] long # 1353| ValueCategory = prvalue(load) -# 1353| getCondition(): [VariableAccess] x -# 1353| Type = [IntType] int +# 1353| getCondition(): [VariableAccess] b +# 1353| Type = [BoolType] bool # 1353| ValueCategory = prvalue(load) # 1353| getElse(): [VariableAccess] y # 1353| Type = [LongType] long # 1353| ValueCategory = prvalue(load) -# 1353| getCondition().getFullyConverted(): [CStyleCast] (bool)... -# 1353| Conversion = [BoolConversion] conversion to bool -# 1353| Type = [BoolType] bool -# 1353| ValueCategory = prvalue # 1353| getRValue().getFullyConverted(): [CStyleCast] (int)... # 1353| Conversion = [IntegralConversion] integral conversion # 1353| Type = [IntType] int # 1353| ValueCategory = prvalue -# 1354| getStmt(5): [ExprStmt] ExprStmt +# 1354| getStmt(3): [ExprStmt] ExprStmt # 1354| getExpr(): [AssignExpr] ... = ... # 1354| Type = [IntType] int # 1354| ValueCategory = lvalue @@ -14131,10 +14119,10 @@ ir.cpp: # 1354| Type = [IntType] int # 1354| ValueCategory = lvalue # 1354| getRValue(): [ConditionalExpr] ... ? ... : ... -# 1354| Type = [LongType] long +# 1354| Type = [IntType] int # 1354| ValueCategory = prvalue(load) -# 1354| getCondition(): [VariableAccess] y -# 1354| Type = [LongType] long +# 1354| getCondition(): [VariableAccess] x +# 1354| Type = [IntType] int # 1354| ValueCategory = prvalue(load) # 1354| getElse(): [VariableAccess] x # 1354| Type = [IntType] int @@ -14143,15 +14131,7 @@ ir.cpp: # 1354| Conversion = [BoolConversion] conversion to bool # 1354| Type = [BoolType] bool # 1354| ValueCategory = prvalue -# 1354| getElse().getFullyConverted(): [CStyleCast] (long)... -# 1354| Conversion = [IntegralConversion] integral conversion -# 1354| Type = [LongType] long -# 1354| ValueCategory = prvalue -# 1354| getRValue().getFullyConverted(): [CStyleCast] (int)... -# 1354| Conversion = [IntegralConversion] integral conversion -# 1354| Type = [IntType] int -# 1354| ValueCategory = prvalue -# 1355| getStmt(6): [ExprStmt] ExprStmt +# 1355| getStmt(4): [ExprStmt] ExprStmt # 1355| getExpr(): [AssignExpr] ... = ... # 1355| Type = [IntType] int # 1355| ValueCategory = lvalue @@ -14161,8 +14141,8 @@ ir.cpp: # 1355| getRValue(): [ConditionalExpr] ... ? ... : ... # 1355| Type = [LongType] long # 1355| ValueCategory = prvalue(load) -# 1355| getCondition(): [VariableAccess] y -# 1355| Type = [LongType] long +# 1355| getCondition(): [VariableAccess] x +# 1355| Type = [IntType] int # 1355| ValueCategory = prvalue(load) # 1355| getElse(): [VariableAccess] y # 1355| Type = [LongType] long @@ -14175,7 +14155,35 @@ ir.cpp: # 1355| Conversion = [IntegralConversion] integral conversion # 1355| Type = [IntType] int # 1355| ValueCategory = prvalue -# 1357| getStmt(7): [ExprStmt] ExprStmt +# 1356| getStmt(5): [ExprStmt] ExprStmt +# 1356| getExpr(): [AssignExpr] ... = ... +# 1356| Type = [IntType] int +# 1356| ValueCategory = lvalue +# 1356| getLValue(): [VariableAccess] z +# 1356| Type = [IntType] int +# 1356| ValueCategory = lvalue +# 1356| getRValue(): [ConditionalExpr] ... ? ... : ... +# 1356| Type = [LongType] long +# 1356| ValueCategory = prvalue(load) +# 1356| getCondition(): [VariableAccess] y +# 1356| Type = [LongType] long +# 1356| ValueCategory = prvalue(load) +# 1356| getElse(): [VariableAccess] x +# 1356| Type = [IntType] int +# 1356| ValueCategory = prvalue(load) +# 1356| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1356| Conversion = [BoolConversion] conversion to bool +# 1356| Type = [BoolType] bool +# 1356| ValueCategory = prvalue +# 1356| getElse().getFullyConverted(): [CStyleCast] (long)... +# 1356| Conversion = [IntegralConversion] integral conversion +# 1356| Type = [LongType] long +# 1356| ValueCategory = prvalue +# 1356| getRValue().getFullyConverted(): [CStyleCast] (int)... +# 1356| Conversion = [IntegralConversion] integral conversion +# 1356| Type = [IntType] int +# 1356| ValueCategory = prvalue +# 1357| getStmt(6): [ExprStmt] ExprStmt # 1357| getExpr(): [AssignExpr] ... = ... # 1357| Type = [IntType] int # 1357| ValueCategory = lvalue @@ -14183,331 +14191,303 @@ ir.cpp: # 1357| Type = [IntType] int # 1357| ValueCategory = lvalue # 1357| getRValue(): [ConditionalExpr] ... ? ... : ... -# 1357| Type = [IntType] int +# 1357| Type = [LongType] long # 1357| ValueCategory = prvalue(load) -# 1357| getCondition(): [LogicalOrExpr] ... || ... -# 1357| Type = [BoolType] bool -# 1357| ValueCategory = prvalue -# 1357| getLeftOperand(): [LogicalAndExpr] ... && ... -# 1357| Type = [BoolType] bool -# 1357| ValueCategory = prvalue -# 1357| getLeftOperand(): [VariableAccess] x -# 1357| Type = [IntType] int -# 1357| ValueCategory = prvalue(load) -# 1357| getRightOperand(): [VariableAccess] b -# 1357| Type = [BoolType] bool -# 1357| ValueCategory = prvalue(load) -# 1357| getLeftOperand().getFullyConverted(): [CStyleCast] (bool)... -# 1357| Conversion = [BoolConversion] conversion to bool -# 1357| Type = [BoolType] bool -# 1357| ValueCategory = prvalue -# 1357| getRightOperand(): [VariableAccess] y -# 1357| Type = [LongType] long -# 1357| ValueCategory = prvalue(load) -# 1357| getRightOperand().getFullyConverted(): [CStyleCast] (bool)... -# 1357| Conversion = [BoolConversion] conversion to bool -# 1357| Type = [BoolType] bool -# 1357| ValueCategory = prvalue -# 1357| getElse(): [VariableAccess] x -# 1357| Type = [IntType] int +# 1357| getCondition(): [VariableAccess] y +# 1357| Type = [LongType] long +# 1357| ValueCategory = prvalue(load) +# 1357| getElse(): [VariableAccess] y +# 1357| Type = [LongType] long # 1357| ValueCategory = prvalue(load) -# 1357| getCondition().getFullyConverted(): [ParenthesisExpr] (...) +# 1357| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1357| Conversion = [BoolConversion] conversion to bool # 1357| Type = [BoolType] bool # 1357| ValueCategory = prvalue -# 1358| getStmt(8): [ReturnStmt] return ... -# 1360| [TopLevelFunction] bool predicateA() -# 1360| : -# 1361| [TopLevelFunction] bool predicateB() -# 1361| : -# 1363| [TopLevelFunction] int shortCircuitConditional(int, int) +# 1357| getRValue().getFullyConverted(): [CStyleCast] (int)... +# 1357| Conversion = [IntegralConversion] integral conversion +# 1357| Type = [IntType] int +# 1357| ValueCategory = prvalue +# 1359| getStmt(7): [ExprStmt] ExprStmt +# 1359| getExpr(): [AssignExpr] ... = ... +# 1359| Type = [IntType] int +# 1359| ValueCategory = lvalue +# 1359| getLValue(): [VariableAccess] z +# 1359| Type = [IntType] int +# 1359| ValueCategory = lvalue +# 1359| getRValue(): [ConditionalExpr] ... ? ... : ... +# 1359| Type = [IntType] int +# 1359| ValueCategory = prvalue(load) +# 1359| getCondition(): [LogicalOrExpr] ... || ... +# 1359| Type = [BoolType] bool +# 1359| ValueCategory = prvalue +# 1359| getLeftOperand(): [LogicalAndExpr] ... && ... +# 1359| Type = [BoolType] bool +# 1359| ValueCategory = prvalue +# 1359| getLeftOperand(): [VariableAccess] x +# 1359| Type = [IntType] int +# 1359| ValueCategory = prvalue(load) +# 1359| getRightOperand(): [VariableAccess] b +# 1359| Type = [BoolType] bool +# 1359| ValueCategory = prvalue(load) +# 1359| getLeftOperand().getFullyConverted(): [CStyleCast] (bool)... +# 1359| Conversion = [BoolConversion] conversion to bool +# 1359| Type = [BoolType] bool +# 1359| ValueCategory = prvalue +# 1359| getRightOperand(): [VariableAccess] y +# 1359| Type = [LongType] long +# 1359| ValueCategory = prvalue(load) +# 1359| getRightOperand().getFullyConverted(): [CStyleCast] (bool)... +# 1359| Conversion = [BoolConversion] conversion to bool +# 1359| Type = [BoolType] bool +# 1359| ValueCategory = prvalue +# 1359| getElse(): [VariableAccess] x +# 1359| Type = [IntType] int +# 1359| ValueCategory = prvalue(load) +# 1359| getCondition().getFullyConverted(): [ParenthesisExpr] (...) +# 1359| Type = [BoolType] bool +# 1359| ValueCategory = prvalue +# 1360| getStmt(8): [ReturnStmt] return ... +# 1362| [TopLevelFunction] bool predicateA() +# 1362| : +# 1363| [TopLevelFunction] bool predicateB() # 1363| : -# 1363| getParameter(0): [Parameter] x -# 1363| Type = [IntType] int -# 1363| getParameter(1): [Parameter] y -# 1363| Type = [IntType] int -# 1363| getEntryPoint(): [BlockStmt] { ... } -# 1364| getStmt(0): [ReturnStmt] return ... -# 1364| getExpr(): [ConditionalExpr] ... ? ... : ... -# 1364| Type = [IntType] int -# 1364| ValueCategory = prvalue(load) -# 1364| getCondition(): [LogicalAndExpr] ... && ... -# 1364| Type = [BoolType] bool -# 1364| ValueCategory = prvalue -# 1364| getLeftOperand(): [FunctionCall] call to predicateA -# 1364| Type = [BoolType] bool -# 1364| ValueCategory = prvalue -# 1364| getRightOperand(): [FunctionCall] call to predicateB -# 1364| Type = [BoolType] bool -# 1364| ValueCategory = prvalue -# 1364| getThen(): [VariableAccess] x -# 1364| Type = [IntType] int -# 1364| ValueCategory = prvalue(load) -# 1364| getElse(): [VariableAccess] y -# 1364| Type = [IntType] int -# 1364| ValueCategory = prvalue(load) -# 1367| [Operator,TopLevelFunction] void* operator new(size_t, void*) -# 1367| : -# 1367| getParameter(0): [Parameter] (unnamed parameter 0) -# 1367| Type = [CTypedefType,Size_t] size_t -# 1367| getParameter(1): [Parameter] (unnamed parameter 1) -# 1367| Type = [VoidPointerType] void * -# 1369| [TopLevelFunction] void f(int*) +# 1365| [TopLevelFunction] int shortCircuitConditional(int, int) +# 1365| : +# 1365| getParameter(0): [Parameter] x +# 1365| Type = [IntType] int +# 1365| getParameter(1): [Parameter] y +# 1365| Type = [IntType] int +# 1365| getEntryPoint(): [BlockStmt] { ... } +# 1366| getStmt(0): [ReturnStmt] return ... +# 1366| getExpr(): [ConditionalExpr] ... ? ... : ... +# 1366| Type = [IntType] int +# 1366| ValueCategory = prvalue(load) +# 1366| getCondition(): [LogicalAndExpr] ... && ... +# 1366| Type = [BoolType] bool +# 1366| ValueCategory = prvalue +# 1366| getLeftOperand(): [FunctionCall] call to predicateA +# 1366| Type = [BoolType] bool +# 1366| ValueCategory = prvalue +# 1366| getRightOperand(): [FunctionCall] call to predicateB +# 1366| Type = [BoolType] bool +# 1366| ValueCategory = prvalue +# 1366| getThen(): [VariableAccess] x +# 1366| Type = [IntType] int +# 1366| ValueCategory = prvalue(load) +# 1366| getElse(): [VariableAccess] y +# 1366| Type = [IntType] int +# 1366| ValueCategory = prvalue(load) +# 1369| [Operator,TopLevelFunction] void* operator new(size_t, void*) # 1369| : -# 1369| getParameter(0): [Parameter] p -# 1369| Type = [IntPointerType] int * -# 1370| getEntryPoint(): [BlockStmt] { ... } -# 1371| getStmt(0): [ExprStmt] ExprStmt -# 1371| getExpr(): [NewExpr] new -# 1371| Type = [IntPointerType] int * -# 1371| ValueCategory = prvalue -# 1371| getAllocatorCall(): [FunctionCall] call to operator new -# 1371| Type = [VoidPointerType] void * -# 1371| ValueCategory = prvalue -# 1371| getArgument(0): [ErrorExpr] -# 1371| Type = [LongType] unsigned long -# 1371| ValueCategory = prvalue -# 1371| getArgument(1): [VariableAccess] p -# 1371| Type = [IntPointerType] int * -# 1371| ValueCategory = prvalue(load) -# 1371| getArgument(1).getFullyConverted(): [CStyleCast] (void *)... -# 1371| Conversion = [PointerConversion] pointer conversion -# 1371| Type = [VoidPointerType] void * -# 1371| ValueCategory = prvalue -# 1372| getStmt(1): [ReturnStmt] return ... -# 1375| [FunctionTemplateInstantiation,TopLevelFunction] Point defaultConstruct() -# 1375| : -# 1375| getEntryPoint(): [BlockStmt] { ... } -# 1376| getStmt(0): [ReturnStmt] return ... -# 1376| getExpr(): [Literal] 0 -# 1376| Type = [Struct] Point -# 1376| Value = [Literal] 0 -# 1376| ValueCategory = prvalue -# 1375| [FunctionTemplateInstantiation,TopLevelFunction] String defaultConstruct() -# 1375| : -# 1375| getEntryPoint(): [BlockStmt] { ... } -# 1376| getStmt(0): [ReturnStmt] return ... -# 1376| getExpr(): [ConstructorCall] call to String -# 1376| Type = [VoidType] void -# 1376| ValueCategory = prvalue -# 1375| [TemplateFunction,TopLevelFunction] T defaultConstruct() -# 1375| : -# 1375| getEntryPoint(): [BlockStmt] { ... } -# 1376| getStmt(0): [ReturnStmt] return ... -# 1376| getExpr(): [Literal] 0 -# 1376| Type = [TypeTemplateParameter] T -# 1376| Value = [Literal] 0 -# 1376| ValueCategory = prvalue -# 1376| getExpr().getFullyConverted(): [TemporaryObjectExpr] temporary object -# 1376| Type = [TypeTemplateParameter] T -# 1376| ValueCategory = prvalue(load) -# 1375| [FunctionTemplateInstantiation,TopLevelFunction] copy_constructor defaultConstruct() -# 1375| : -# 1375| getEntryPoint(): [BlockStmt] { ... } -# 1376| getStmt(0): [ReturnStmt] return ... -# 1376| getExpr(): [ConstructorCall] call to copy_constructor -# 1376| Type = [VoidType] void -# 1376| ValueCategory = prvalue -# 1375| [FunctionTemplateInstantiation,TopLevelFunction] destructor_only defaultConstruct() -# 1375| : -# 1375| getEntryPoint(): [BlockStmt] { ... } -# 1376| getStmt(0): [ReturnStmt] return ... -# 1376| getExpr(): [Literal] 0 -# 1376| Type = [Class] destructor_only -# 1376| Value = [Literal] 0 -# 1376| ValueCategory = prvalue -# 1379| [CopyAssignmentOperator] constructor_only& constructor_only::operator=(constructor_only const&) -# 1379| : +# 1369| getParameter(0): [Parameter] (unnamed parameter 0) +# 1369| Type = [CTypedefType,Size_t] size_t +# 1369| getParameter(1): [Parameter] (unnamed parameter 1) +# 1369| Type = [VoidPointerType] void * +# 1371| [TopLevelFunction] void f(int*) +# 1371| : +# 1371| getParameter(0): [Parameter] p +# 1371| Type = [IntPointerType] int * +# 1372| getEntryPoint(): [BlockStmt] { ... } +# 1373| getStmt(0): [ExprStmt] ExprStmt +# 1373| getExpr(): [NewExpr] new +# 1373| Type = [IntPointerType] int * +# 1373| ValueCategory = prvalue +# 1373| getAllocatorCall(): [FunctionCall] call to operator new +# 1373| Type = [VoidPointerType] void * +# 1373| ValueCategory = prvalue +# 1373| getArgument(0): [ErrorExpr] +# 1373| Type = [LongType] unsigned long +# 1373| ValueCategory = prvalue +# 1373| getArgument(1): [VariableAccess] p +# 1373| Type = [IntPointerType] int * +# 1373| ValueCategory = prvalue(load) +# 1373| getArgument(1).getFullyConverted(): [CStyleCast] (void *)... +# 1373| Conversion = [PointerConversion] pointer conversion +# 1373| Type = [VoidPointerType] void * +# 1373| ValueCategory = prvalue +# 1374| getStmt(1): [ReturnStmt] return ... +# 1377| [FunctionTemplateInstantiation,TopLevelFunction] Point defaultConstruct() +# 1377| : +# 1377| getEntryPoint(): [BlockStmt] { ... } +# 1378| getStmt(0): [ReturnStmt] return ... +# 1378| getExpr(): [Literal] 0 +# 1378| Type = [Struct] Point +# 1378| Value = [Literal] 0 +# 1378| ValueCategory = prvalue +# 1377| [FunctionTemplateInstantiation,TopLevelFunction] String defaultConstruct() +# 1377| : +# 1377| getEntryPoint(): [BlockStmt] { ... } +# 1378| getStmt(0): [ReturnStmt] return ... +# 1378| getExpr(): [ConstructorCall] call to String +# 1378| Type = [VoidType] void +# 1378| ValueCategory = prvalue +# 1377| [TemplateFunction,TopLevelFunction] T defaultConstruct() +# 1377| : +# 1377| getEntryPoint(): [BlockStmt] { ... } +# 1378| getStmt(0): [ReturnStmt] return ... +# 1378| getExpr(): [Literal] 0 +# 1378| Type = [TypeTemplateParameter] T +# 1378| Value = [Literal] 0 +# 1378| ValueCategory = prvalue +# 1378| getExpr().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 1378| Type = [TypeTemplateParameter] T +# 1378| ValueCategory = prvalue(load) +# 1377| [FunctionTemplateInstantiation,TopLevelFunction] copy_constructor defaultConstruct() +# 1377| : +# 1377| getEntryPoint(): [BlockStmt] { ... } +# 1378| getStmt(0): [ReturnStmt] return ... +# 1378| getExpr(): [ConstructorCall] call to copy_constructor +# 1378| Type = [VoidType] void +# 1378| ValueCategory = prvalue +# 1377| [FunctionTemplateInstantiation,TopLevelFunction] destructor_only defaultConstruct() +# 1377| : +# 1377| getEntryPoint(): [BlockStmt] { ... } +# 1378| getStmt(0): [ReturnStmt] return ... +# 1378| getExpr(): [Literal] 0 +# 1378| Type = [Class] destructor_only +# 1378| Value = [Literal] 0 +# 1378| ValueCategory = prvalue +# 1381| [CopyAssignmentOperator] constructor_only& constructor_only::operator=(constructor_only const&) +# 1381| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const constructor_only & -# 1379| [MoveAssignmentOperator] constructor_only& constructor_only::operator=(constructor_only&&) -# 1379| : +# 1381| [MoveAssignmentOperator] constructor_only& constructor_only::operator=(constructor_only&&) +# 1381| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] constructor_only && -# 1379| [CopyConstructor] void constructor_only::constructor_only(constructor_only const&) -# 1379| : +# 1381| [CopyConstructor] void constructor_only::constructor_only(constructor_only const&) +# 1381| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const constructor_only & -# 1379| [MoveConstructor] void constructor_only::constructor_only(constructor_only&&) -# 1379| : +# 1381| [MoveConstructor] void constructor_only::constructor_only(constructor_only&&) +# 1381| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] constructor_only && -# 1384| [Constructor] void constructor_only::constructor_only(int) -# 1384| : -# 1384| getParameter(0): [Parameter] x -# 1384| Type = [IntType] int -# 1387| [CopyAssignmentOperator] copy_constructor& copy_constructor::operator=(copy_constructor const&) -# 1387| : +# 1386| [Constructor] void constructor_only::constructor_only(int) +# 1386| : +# 1386| getParameter(0): [Parameter] x +# 1386| Type = [IntType] int +# 1389| [CopyAssignmentOperator] copy_constructor& copy_constructor::operator=(copy_constructor const&) +# 1389| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const copy_constructor & -# 1392| [Constructor] void copy_constructor::copy_constructor() -# 1392| : -# 1393| [CopyConstructor] void copy_constructor::copy_constructor(copy_constructor const&) -# 1393| : -# 1393| getParameter(0): [Parameter] (unnamed parameter 0) -# 1393| Type = [LValueReferenceType] const copy_constructor & -# 1395| [MemberFunction] void copy_constructor::method() +# 1394| [Constructor] void copy_constructor::copy_constructor() +# 1394| : +# 1395| [CopyConstructor] void copy_constructor::copy_constructor(copy_constructor const&) # 1395| : -# 1398| [CopyAssignmentOperator] destructor_only& destructor_only::operator=(destructor_only const&) -# 1398| : +# 1395| getParameter(0): [Parameter] (unnamed parameter 0) +# 1395| Type = [LValueReferenceType] const copy_constructor & +# 1397| [MemberFunction] void copy_constructor::method() +# 1397| : +# 1400| [CopyAssignmentOperator] destructor_only& destructor_only::operator=(destructor_only const&) +# 1400| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const destructor_only & -# 1398| [Constructor] void destructor_only::destructor_only() -# 1398| : -# 1400| [Destructor] void destructor_only::~destructor_only() +# 1400| [Constructor] void destructor_only::destructor_only() # 1400| : -# 1402| [MemberFunction] void destructor_only::method() +# 1402| [Destructor] void destructor_only::~destructor_only() # 1402| : -# 1406| [FunctionTemplateInstantiation,TopLevelFunction] void acceptRef(Point const&) -# 1406| : -# 1406| getParameter(0): [Parameter] v -# 1406| Type = [LValueReferenceType] const Point & -# 1406| [FunctionTemplateInstantiation,TopLevelFunction] void acceptRef(String const&) -# 1406| : -# 1406| getParameter(0): [Parameter] v -# 1406| Type = [LValueReferenceType] const String & -# 1406| [TemplateFunction,TopLevelFunction] void acceptRef(T const&) -# 1406| : -# 1406| getParameter(0): [Parameter] v -# 1406| Type = [LValueReferenceType] const T & -# 1406| [FunctionTemplateInstantiation,TopLevelFunction] void acceptRef(copy_constructor const&) -# 1406| : -# 1406| getParameter(0): [Parameter] v -# 1406| Type = [LValueReferenceType] const copy_constructor & -# 1406| [FunctionTemplateInstantiation,TopLevelFunction] void acceptRef(destructor_only const&) -# 1406| : -# 1406| getParameter(0): [Parameter] v -# 1406| Type = [LValueReferenceType] const destructor_only & -# 1409| [FunctionTemplateInstantiation,TopLevelFunction] void acceptValue(Point) -# 1409| : -# 1409| getParameter(0): [Parameter] v -# 1409| Type = [Struct] Point -# 1409| [FunctionTemplateInstantiation,TopLevelFunction] void acceptValue(String) -# 1409| : -# 1409| getParameter(0): [Parameter] v -# 1409| Type = [Struct] String -# 1409| [TemplateFunction,TopLevelFunction] void acceptValue(T) -# 1409| : -# 1409| getParameter(0): [Parameter] v -# 1409| Type = [TypeTemplateParameter] T -# 1409| [FunctionTemplateInstantiation,TopLevelFunction] void acceptValue(copy_constructor) -# 1409| : -# 1409| getParameter(0): [Parameter] v -# 1409| Type = [Class] copy_constructor -# 1409| [FunctionTemplateInstantiation,TopLevelFunction] void acceptValue(destructor_only) -# 1409| : -# 1409| getParameter(0): [Parameter] v -# 1409| Type = [Class] destructor_only -# 1412| [FunctionTemplateInstantiation,TopLevelFunction] POD_Derived returnValue() -# 1412| : -# 1412| [FunctionTemplateInstantiation,TopLevelFunction] POD_Middle returnValue() -# 1412| : -# 1412| [FunctionTemplateInstantiation,TopLevelFunction] Point returnValue() -# 1412| : -# 1412| [FunctionTemplateInstantiation,TopLevelFunction] String returnValue() -# 1412| : -# 1412| [TemplateFunction,TopLevelFunction] T returnValue() -# 1412| : -# 1412| [FunctionTemplateInstantiation,TopLevelFunction] UnusualFields returnValue() -# 1412| : -# 1412| [FunctionTemplateInstantiation,TopLevelFunction] copy_constructor returnValue() -# 1412| : -# 1412| [FunctionTemplateInstantiation,TopLevelFunction] destructor_only returnValue() -# 1412| : -# 1414| [TopLevelFunction] void temporary_string() +# 1404| [MemberFunction] void destructor_only::method() +# 1404| : +# 1408| [FunctionTemplateInstantiation,TopLevelFunction] void acceptRef(Point const&) +# 1408| : +# 1408| getParameter(0): [Parameter] v +# 1408| Type = [LValueReferenceType] const Point & +# 1408| [FunctionTemplateInstantiation,TopLevelFunction] void acceptRef(String const&) +# 1408| : +# 1408| getParameter(0): [Parameter] v +# 1408| Type = [LValueReferenceType] const String & +# 1408| [TemplateFunction,TopLevelFunction] void acceptRef(T const&) +# 1408| : +# 1408| getParameter(0): [Parameter] v +# 1408| Type = [LValueReferenceType] const T & +# 1408| [FunctionTemplateInstantiation,TopLevelFunction] void acceptRef(copy_constructor const&) +# 1408| : +# 1408| getParameter(0): [Parameter] v +# 1408| Type = [LValueReferenceType] const copy_constructor & +# 1408| [FunctionTemplateInstantiation,TopLevelFunction] void acceptRef(destructor_only const&) +# 1408| : +# 1408| getParameter(0): [Parameter] v +# 1408| Type = [LValueReferenceType] const destructor_only & +# 1411| [FunctionTemplateInstantiation,TopLevelFunction] void acceptValue(Point) +# 1411| : +# 1411| getParameter(0): [Parameter] v +# 1411| Type = [Struct] Point +# 1411| [FunctionTemplateInstantiation,TopLevelFunction] void acceptValue(String) +# 1411| : +# 1411| getParameter(0): [Parameter] v +# 1411| Type = [Struct] String +# 1411| [TemplateFunction,TopLevelFunction] void acceptValue(T) +# 1411| : +# 1411| getParameter(0): [Parameter] v +# 1411| Type = [TypeTemplateParameter] T +# 1411| [FunctionTemplateInstantiation,TopLevelFunction] void acceptValue(copy_constructor) +# 1411| : +# 1411| getParameter(0): [Parameter] v +# 1411| Type = [Class] copy_constructor +# 1411| [FunctionTemplateInstantiation,TopLevelFunction] void acceptValue(destructor_only) +# 1411| : +# 1411| getParameter(0): [Parameter] v +# 1411| Type = [Class] destructor_only +# 1414| [FunctionTemplateInstantiation,TopLevelFunction] POD_Derived returnValue() +# 1414| : +# 1414| [FunctionTemplateInstantiation,TopLevelFunction] POD_Middle returnValue() +# 1414| : +# 1414| [FunctionTemplateInstantiation,TopLevelFunction] Point returnValue() +# 1414| : +# 1414| [FunctionTemplateInstantiation,TopLevelFunction] String returnValue() # 1414| : -# 1414| getEntryPoint(): [BlockStmt] { ... } -# 1415| getStmt(0): [DeclStmt] declaration -# 1415| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s -# 1415| Type = [Struct] String -# 1415| getVariable().getInitializer(): [Initializer] initializer for s -# 1415| getExpr(): [FunctionCall] call to returnValue -# 1415| Type = [Struct] String -# 1415| ValueCategory = prvalue -# 1416| getStmt(1): [DeclStmt] declaration -# 1416| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rs -# 1416| Type = [LValueReferenceType] const String & -# 1416| getVariable().getInitializer(): [Initializer] initializer for rs -# 1416| getExpr(): [FunctionCall] call to returnValue -# 1416| Type = [Struct] String -# 1416| ValueCategory = prvalue -# 1416| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1416| Type = [LValueReferenceType] const String & -# 1416| ValueCategory = prvalue -# 1416| getExpr(): [CStyleCast] (const String)... -# 1416| Conversion = [GlvalueConversion] glvalue conversion -# 1416| Type = [SpecifiedType] const String -# 1416| ValueCategory = lvalue -# 1416| getExpr(): [TemporaryObjectExpr] temporary object -# 1416| Type = [Struct] String -# 1416| ValueCategory = lvalue -# 1418| getStmt(2): [ExprStmt] ExprStmt -# 1418| getExpr(): [FunctionCall] call to acceptRef -# 1418| Type = [VoidType] void -# 1418| ValueCategory = prvalue -# 1418| getArgument(0): [VariableAccess] s -# 1418| Type = [Struct] String -# 1418| ValueCategory = lvalue -# 1418| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) -# 1418| Type = [LValueReferenceType] const String & -# 1418| ValueCategory = prvalue -# 1418| getExpr(): [CStyleCast] (const String)... -# 1418| Conversion = [GlvalueConversion] glvalue conversion -# 1418| Type = [SpecifiedType] const String -# 1418| ValueCategory = lvalue -# 1419| getStmt(3): [ExprStmt] ExprStmt -# 1419| getExpr(): [FunctionCall] call to acceptRef -# 1419| Type = [VoidType] void -# 1419| ValueCategory = prvalue -# 1419| getArgument(0): [ConstructorCall] call to String -# 1419| Type = [VoidType] void -# 1419| ValueCategory = prvalue -# 1419| getArgument(0): foo -# 1419| Type = [ArrayType] const char[4] -# 1419| Value = [StringLiteral] "foo" -# 1419| ValueCategory = lvalue -# 1419| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 1419| Type = [PointerType] const char * -# 1419| ValueCategory = prvalue -# 1419| getImplicitDestructorCall(0): [DestructorCall] call to ~String -# 1419| Type = [VoidType] void -# 1419| ValueCategory = prvalue -# 1419| getQualifier(): [ReuseExpr] reuse of temporary object -# 1419| Type = [SpecifiedType] const String -# 1419| ValueCategory = xvalue -# 1419| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) -# 1419| Type = [LValueReferenceType] const String & -# 1419| ValueCategory = prvalue -# 1419| getExpr(): [TemporaryObjectExpr] temporary object -# 1419| Type = [SpecifiedType] const String -# 1419| ValueCategory = lvalue -# 1420| getStmt(4): [ExprStmt] ExprStmt -# 1420| getExpr(): [FunctionCall] call to acceptValue +# 1414| [TemplateFunction,TopLevelFunction] T returnValue() +# 1414| : +# 1414| [FunctionTemplateInstantiation,TopLevelFunction] UnusualFields returnValue() +# 1414| : +# 1414| [FunctionTemplateInstantiation,TopLevelFunction] copy_constructor returnValue() +# 1414| : +# 1414| [FunctionTemplateInstantiation,TopLevelFunction] destructor_only returnValue() +# 1414| : +# 1416| [TopLevelFunction] void temporary_string() +# 1416| : +# 1416| getEntryPoint(): [BlockStmt] { ... } +# 1417| getStmt(0): [DeclStmt] declaration +# 1417| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s +# 1417| Type = [Struct] String +# 1417| getVariable().getInitializer(): [Initializer] initializer for s +# 1417| getExpr(): [FunctionCall] call to returnValue +# 1417| Type = [Struct] String +# 1417| ValueCategory = prvalue +# 1418| getStmt(1): [DeclStmt] declaration +# 1418| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rs +# 1418| Type = [LValueReferenceType] const String & +# 1418| getVariable().getInitializer(): [Initializer] initializer for rs +# 1418| getExpr(): [FunctionCall] call to returnValue +# 1418| Type = [Struct] String +# 1418| ValueCategory = prvalue +# 1418| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1418| Type = [LValueReferenceType] const String & +# 1418| ValueCategory = prvalue +# 1418| getExpr(): [CStyleCast] (const String)... +# 1418| Conversion = [GlvalueConversion] glvalue conversion +# 1418| Type = [SpecifiedType] const String +# 1418| ValueCategory = lvalue +# 1418| getExpr(): [TemporaryObjectExpr] temporary object +# 1418| Type = [Struct] String +# 1418| ValueCategory = lvalue +# 1420| getStmt(2): [ExprStmt] ExprStmt +# 1420| getExpr(): [FunctionCall] call to acceptRef # 1420| Type = [VoidType] void # 1420| ValueCategory = prvalue -# 1420| getArgument(0): [ConstructorCall] call to String -# 1420| Type = [VoidType] void -# 1420| ValueCategory = prvalue -# 1420| getArgument(0): [VariableAccess] s -# 1420| Type = [Struct] String -# 1420| ValueCategory = lvalue -# 1420| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) -# 1420| Type = [LValueReferenceType] const String & -# 1420| ValueCategory = prvalue -# 1420| getExpr(): [CStyleCast] (const String)... -# 1420| Conversion = [GlvalueConversion] glvalue conversion -# 1420| Type = [SpecifiedType] const String -# 1420| ValueCategory = lvalue -# 1420| getImplicitDestructorCall(0): [DestructorCall] call to ~String -# 1420| Type = [VoidType] void -# 1420| ValueCategory = prvalue -# 1420| getQualifier(): [ReuseExpr] reuse of temporary object -# 1420| Type = [Struct] String -# 1420| ValueCategory = xvalue -# 1420| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object +# 1420| getArgument(0): [VariableAccess] s # 1420| Type = [Struct] String # 1420| ValueCategory = lvalue -# 1421| getStmt(5): [ExprStmt] ExprStmt -# 1421| getExpr(): [FunctionCall] call to acceptValue +# 1420| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) +# 1420| Type = [LValueReferenceType] const String & +# 1420| ValueCategory = prvalue +# 1420| getExpr(): [CStyleCast] (const String)... +# 1420| Conversion = [GlvalueConversion] glvalue conversion +# 1420| Type = [SpecifiedType] const String +# 1420| ValueCategory = lvalue +# 1421| getStmt(3): [ExprStmt] ExprStmt +# 1421| getExpr(): [FunctionCall] call to acceptRef # 1421| Type = [VoidType] void # 1421| ValueCategory = prvalue # 1421| getArgument(0): [ConstructorCall] call to String @@ -14524,524 +14504,576 @@ ir.cpp: # 1421| Type = [VoidType] void # 1421| ValueCategory = prvalue # 1421| getQualifier(): [ReuseExpr] reuse of temporary object -# 1421| Type = [Struct] String +# 1421| Type = [SpecifiedType] const String # 1421| ValueCategory = xvalue -# 1421| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object -# 1421| Type = [Struct] String -# 1421| ValueCategory = lvalue -# 1422| getStmt(6): [ExprStmt] ExprStmt -# 1422| getExpr(): [FunctionCall] call to c_str -# 1422| Type = [PointerType] const char * +# 1421| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) +# 1421| Type = [LValueReferenceType] const String & +# 1421| ValueCategory = prvalue +# 1421| getExpr(): [TemporaryObjectExpr] temporary object +# 1421| Type = [SpecifiedType] const String +# 1421| ValueCategory = lvalue +# 1422| getStmt(4): [ExprStmt] ExprStmt +# 1422| getExpr(): [FunctionCall] call to acceptValue +# 1422| Type = [VoidType] void # 1422| ValueCategory = prvalue -# 1422| getQualifier(): [ConstructorCall] call to String +# 1422| getArgument(0): [ConstructorCall] call to String # 1422| Type = [VoidType] void # 1422| ValueCategory = prvalue +# 1422| getArgument(0): [VariableAccess] s +# 1422| Type = [Struct] String +# 1422| ValueCategory = lvalue +# 1422| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) +# 1422| Type = [LValueReferenceType] const String & +# 1422| ValueCategory = prvalue +# 1422| getExpr(): [CStyleCast] (const String)... +# 1422| Conversion = [GlvalueConversion] glvalue conversion +# 1422| Type = [SpecifiedType] const String +# 1422| ValueCategory = lvalue # 1422| getImplicitDestructorCall(0): [DestructorCall] call to ~String # 1422| Type = [VoidType] void # 1422| ValueCategory = prvalue # 1422| getQualifier(): [ReuseExpr] reuse of temporary object # 1422| Type = [Struct] String # 1422| ValueCategory = xvalue -# 1422| getQualifier().getFullyConverted(): [CStyleCast] (const String)... -# 1422| Conversion = [PrvalueAdjustmentConversion] prvalue adjustment conversion -# 1422| Type = [SpecifiedType] const String -# 1422| ValueCategory = prvalue -# 1422| getExpr(): [TemporaryObjectExpr] temporary object -# 1422| Type = [Struct] String -# 1422| ValueCategory = prvalue(load) -# 1423| getStmt(7): [ExprStmt] ExprStmt -# 1423| getExpr(): [FunctionCall] call to c_str -# 1423| Type = [PointerType] const char * +# 1422| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object +# 1422| Type = [Struct] String +# 1422| ValueCategory = lvalue +# 1423| getStmt(5): [ExprStmt] ExprStmt +# 1423| getExpr(): [FunctionCall] call to acceptValue +# 1423| Type = [VoidType] void # 1423| ValueCategory = prvalue -# 1423| getQualifier(): [FunctionCall] call to returnValue -# 1423| Type = [Struct] String +# 1423| getArgument(0): [ConstructorCall] call to String +# 1423| Type = [VoidType] void # 1423| ValueCategory = prvalue +# 1423| getArgument(0): foo +# 1423| Type = [ArrayType] const char[4] +# 1423| Value = [StringLiteral] "foo" +# 1423| ValueCategory = lvalue +# 1423| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 1423| Type = [PointerType] const char * +# 1423| ValueCategory = prvalue # 1423| getImplicitDestructorCall(0): [DestructorCall] call to ~String # 1423| Type = [VoidType] void # 1423| ValueCategory = prvalue # 1423| getQualifier(): [ReuseExpr] reuse of temporary object # 1423| Type = [Struct] String # 1423| ValueCategory = xvalue -# 1423| getQualifier().getFullyConverted(): [CStyleCast] (const String)... -# 1423| Conversion = [PrvalueAdjustmentConversion] prvalue adjustment conversion -# 1423| Type = [SpecifiedType] const String -# 1423| ValueCategory = prvalue -# 1423| getExpr(): [TemporaryObjectExpr] temporary object -# 1423| Type = [Struct] String -# 1423| ValueCategory = prvalue(load) -# 1425| getStmt(8): [ExprStmt] ExprStmt -# 1425| getExpr(): [FunctionCall] call to defaultConstruct -# 1425| Type = [Struct] String -# 1425| ValueCategory = prvalue -# 1425| getExpr().getFullyConverted(): [TemporaryObjectExpr] temporary object -# 1425| Type = [Struct] String +# 1423| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object +# 1423| Type = [Struct] String +# 1423| ValueCategory = lvalue +# 1424| getStmt(6): [ExprStmt] ExprStmt +# 1424| getExpr(): [FunctionCall] call to c_str +# 1424| Type = [PointerType] const char * +# 1424| ValueCategory = prvalue +# 1424| getQualifier(): [ConstructorCall] call to String +# 1424| Type = [VoidType] void +# 1424| ValueCategory = prvalue +# 1424| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1424| Type = [VoidType] void +# 1424| ValueCategory = prvalue +# 1424| getQualifier(): [ReuseExpr] reuse of temporary object +# 1424| Type = [Struct] String +# 1424| ValueCategory = xvalue +# 1424| getQualifier().getFullyConverted(): [CStyleCast] (const String)... +# 1424| Conversion = [PrvalueAdjustmentConversion] prvalue adjustment conversion +# 1424| Type = [SpecifiedType] const String +# 1424| ValueCategory = prvalue +# 1424| getExpr(): [TemporaryObjectExpr] temporary object +# 1424| Type = [Struct] String +# 1424| ValueCategory = prvalue(load) +# 1425| getStmt(7): [ExprStmt] ExprStmt +# 1425| getExpr(): [FunctionCall] call to c_str +# 1425| Type = [PointerType] const char * # 1425| ValueCategory = prvalue +# 1425| getQualifier(): [FunctionCall] call to returnValue +# 1425| Type = [Struct] String +# 1425| ValueCategory = prvalue # 1425| getImplicitDestructorCall(0): [DestructorCall] call to ~String # 1425| Type = [VoidType] void # 1425| ValueCategory = prvalue # 1425| getQualifier(): [ReuseExpr] reuse of temporary object # 1425| Type = [Struct] String # 1425| ValueCategory = xvalue -# 1426| getStmt(9): [ReturnStmt] return ... -# 1426| getImplicitDestructorCall(0): [DestructorCall] call to ~String -# 1426| Type = [VoidType] void -# 1426| ValueCategory = prvalue -# 1426| getQualifier(): [ReuseExpr] reuse of temporary object -# 1426| Type = [Struct] String -# 1426| ValueCategory = xvalue -# 1426| getImplicitDestructorCall(1): [DestructorCall] call to ~String -# 1426| Type = [VoidType] void -# 1426| ValueCategory = prvalue -# 1426| getQualifier(): [VariableAccess] s -# 1426| Type = [Struct] String -# 1426| ValueCategory = lvalue -# 1428| [TopLevelFunction] void temporary_destructor_only() -# 1428| : -# 1428| getEntryPoint(): [BlockStmt] { ... } -# 1429| getStmt(0): [DeclStmt] declaration -# 1429| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d -# 1429| Type = [Class] destructor_only -# 1429| getVariable().getInitializer(): [Initializer] initializer for d -# 1429| getExpr(): [FunctionCall] call to returnValue -# 1429| Type = [Class] destructor_only -# 1429| ValueCategory = prvalue -# 1430| getStmt(1): [DeclStmt] declaration -# 1430| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rd -# 1430| Type = [LValueReferenceType] const destructor_only & -# 1430| getVariable().getInitializer(): [Initializer] initializer for rd -# 1430| getExpr(): [FunctionCall] call to returnValue -# 1430| Type = [Class] destructor_only -# 1430| ValueCategory = prvalue -# 1430| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1430| Type = [LValueReferenceType] const destructor_only & -# 1430| ValueCategory = prvalue -# 1430| getExpr(): [CStyleCast] (const destructor_only)... -# 1430| Conversion = [GlvalueConversion] glvalue conversion -# 1430| Type = [SpecifiedType] const destructor_only -# 1430| ValueCategory = lvalue -# 1430| getExpr(): [TemporaryObjectExpr] temporary object -# 1430| Type = [Class] destructor_only -# 1430| ValueCategory = lvalue -# 1431| getStmt(2): [DeclStmt] declaration -# 1431| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d2 +# 1425| getQualifier().getFullyConverted(): [CStyleCast] (const String)... +# 1425| Conversion = [PrvalueAdjustmentConversion] prvalue adjustment conversion +# 1425| Type = [SpecifiedType] const String +# 1425| ValueCategory = prvalue +# 1425| getExpr(): [TemporaryObjectExpr] temporary object +# 1425| Type = [Struct] String +# 1425| ValueCategory = prvalue(load) +# 1427| getStmt(8): [ExprStmt] ExprStmt +# 1427| getExpr(): [FunctionCall] call to defaultConstruct +# 1427| Type = [Struct] String +# 1427| ValueCategory = prvalue +# 1427| getExpr().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 1427| Type = [Struct] String +# 1427| ValueCategory = prvalue +# 1427| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1427| Type = [VoidType] void +# 1427| ValueCategory = prvalue +# 1427| getQualifier(): [ReuseExpr] reuse of temporary object +# 1427| Type = [Struct] String +# 1427| ValueCategory = xvalue +# 1428| getStmt(9): [ReturnStmt] return ... +# 1428| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1428| Type = [VoidType] void +# 1428| ValueCategory = prvalue +# 1428| getQualifier(): [ReuseExpr] reuse of temporary object +# 1428| Type = [Struct] String +# 1428| ValueCategory = xvalue +# 1428| getImplicitDestructorCall(1): [DestructorCall] call to ~String +# 1428| Type = [VoidType] void +# 1428| ValueCategory = prvalue +# 1428| getQualifier(): [VariableAccess] s +# 1428| Type = [Struct] String +# 1428| ValueCategory = lvalue +# 1430| [TopLevelFunction] void temporary_destructor_only() +# 1430| : +# 1430| getEntryPoint(): [BlockStmt] { ... } +# 1431| getStmt(0): [DeclStmt] declaration +# 1431| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d # 1431| Type = [Class] destructor_only -# 1432| getStmt(3): [ExprStmt] ExprStmt -# 1432| getExpr(): [FunctionCall] call to acceptRef -# 1432| Type = [VoidType] void -# 1432| ValueCategory = prvalue -# 1432| getArgument(0): [VariableAccess] d -# 1432| Type = [Class] destructor_only -# 1432| ValueCategory = lvalue -# 1432| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) -# 1432| Type = [LValueReferenceType] const destructor_only & -# 1432| ValueCategory = prvalue -# 1432| getExpr(): [CStyleCast] (const destructor_only)... -# 1432| Conversion = [GlvalueConversion] glvalue conversion -# 1432| Type = [SpecifiedType] const destructor_only -# 1432| ValueCategory = lvalue -# 1433| getStmt(4): [ExprStmt] ExprStmt -# 1433| getExpr(): [FunctionCall] call to acceptValue -# 1433| Type = [VoidType] void -# 1433| ValueCategory = prvalue -# 1433| getArgument(0): [VariableAccess] d -# 1433| Type = [Class] destructor_only -# 1433| ValueCategory = prvalue(load) -# 1433| getImplicitDestructorCall(0): [DestructorCall] call to ~destructor_only -# 1433| Type = [VoidType] void -# 1433| ValueCategory = prvalue -# 1433| getQualifier(): [ReuseExpr] reuse of temporary object -# 1433| Type = [Class] destructor_only -# 1433| ValueCategory = xvalue -# 1433| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object -# 1433| Type = [Class] destructor_only -# 1433| ValueCategory = lvalue -# 1434| getStmt(5): [ExprStmt] ExprStmt -# 1434| getExpr(): [FunctionCall] call to method +# 1431| getVariable().getInitializer(): [Initializer] initializer for d +# 1431| getExpr(): [FunctionCall] call to returnValue +# 1431| Type = [Class] destructor_only +# 1431| ValueCategory = prvalue +# 1432| getStmt(1): [DeclStmt] declaration +# 1432| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rd +# 1432| Type = [LValueReferenceType] const destructor_only & +# 1432| getVariable().getInitializer(): [Initializer] initializer for rd +# 1432| getExpr(): [FunctionCall] call to returnValue +# 1432| Type = [Class] destructor_only +# 1432| ValueCategory = prvalue +# 1432| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1432| Type = [LValueReferenceType] const destructor_only & +# 1432| ValueCategory = prvalue +# 1432| getExpr(): [CStyleCast] (const destructor_only)... +# 1432| Conversion = [GlvalueConversion] glvalue conversion +# 1432| Type = [SpecifiedType] const destructor_only +# 1432| ValueCategory = lvalue +# 1432| getExpr(): [TemporaryObjectExpr] temporary object +# 1432| Type = [Class] destructor_only +# 1432| ValueCategory = lvalue +# 1433| getStmt(2): [DeclStmt] declaration +# 1433| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d2 +# 1433| Type = [Class] destructor_only +# 1434| getStmt(3): [ExprStmt] ExprStmt +# 1434| getExpr(): [FunctionCall] call to acceptRef # 1434| Type = [VoidType] void # 1434| ValueCategory = prvalue -# 1434| getQualifier(): [Literal] 0 +# 1434| getArgument(0): [VariableAccess] d # 1434| Type = [Class] destructor_only -# 1434| Value = [Literal] 0 -# 1434| ValueCategory = prvalue -# 1434| getImplicitDestructorCall(0): [DestructorCall] call to ~destructor_only -# 1434| Type = [VoidType] void +# 1434| ValueCategory = lvalue +# 1434| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) +# 1434| Type = [LValueReferenceType] const destructor_only & # 1434| ValueCategory = prvalue -# 1434| getQualifier(): [ReuseExpr] reuse of temporary object -# 1434| Type = [Class] destructor_only -# 1434| ValueCategory = xvalue -# 1434| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object -# 1434| Type = [Class] destructor_only -# 1434| ValueCategory = prvalue(load) -# 1435| getStmt(6): [ExprStmt] ExprStmt -# 1435| getExpr(): [FunctionCall] call to method +# 1434| getExpr(): [CStyleCast] (const destructor_only)... +# 1434| Conversion = [GlvalueConversion] glvalue conversion +# 1434| Type = [SpecifiedType] const destructor_only +# 1434| ValueCategory = lvalue +# 1435| getStmt(4): [ExprStmt] ExprStmt +# 1435| getExpr(): [FunctionCall] call to acceptValue # 1435| Type = [VoidType] void # 1435| ValueCategory = prvalue -# 1435| getQualifier(): [FunctionCall] call to returnValue +# 1435| getArgument(0): [VariableAccess] d # 1435| Type = [Class] destructor_only -# 1435| ValueCategory = prvalue +# 1435| ValueCategory = prvalue(load) # 1435| getImplicitDestructorCall(0): [DestructorCall] call to ~destructor_only # 1435| Type = [VoidType] void # 1435| ValueCategory = prvalue # 1435| getQualifier(): [ReuseExpr] reuse of temporary object # 1435| Type = [Class] destructor_only # 1435| ValueCategory = xvalue -# 1435| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 1435| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object # 1435| Type = [Class] destructor_only -# 1435| ValueCategory = prvalue(load) -# 1437| getStmt(7): [ExprStmt] ExprStmt -# 1437| getExpr(): [FunctionCall] call to defaultConstruct -# 1437| Type = [Class] destructor_only -# 1437| ValueCategory = prvalue -# 1437| getExpr().getFullyConverted(): [TemporaryObjectExpr] temporary object -# 1437| Type = [Class] destructor_only +# 1435| ValueCategory = lvalue +# 1436| getStmt(5): [ExprStmt] ExprStmt +# 1436| getExpr(): [FunctionCall] call to method +# 1436| Type = [VoidType] void +# 1436| ValueCategory = prvalue +# 1436| getQualifier(): [Literal] 0 +# 1436| Type = [Class] destructor_only +# 1436| Value = [Literal] 0 +# 1436| ValueCategory = prvalue +# 1436| getImplicitDestructorCall(0): [DestructorCall] call to ~destructor_only +# 1436| Type = [VoidType] void +# 1436| ValueCategory = prvalue +# 1436| getQualifier(): [ReuseExpr] reuse of temporary object +# 1436| Type = [Class] destructor_only +# 1436| ValueCategory = xvalue +# 1436| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 1436| Type = [Class] destructor_only +# 1436| ValueCategory = prvalue(load) +# 1437| getStmt(6): [ExprStmt] ExprStmt +# 1437| getExpr(): [FunctionCall] call to method +# 1437| Type = [VoidType] void # 1437| ValueCategory = prvalue +# 1437| getQualifier(): [FunctionCall] call to returnValue +# 1437| Type = [Class] destructor_only +# 1437| ValueCategory = prvalue # 1437| getImplicitDestructorCall(0): [DestructorCall] call to ~destructor_only # 1437| Type = [VoidType] void # 1437| ValueCategory = prvalue # 1437| getQualifier(): [ReuseExpr] reuse of temporary object # 1437| Type = [Class] destructor_only # 1437| ValueCategory = xvalue -# 1438| getStmt(8): [ReturnStmt] return ... -# 1438| getImplicitDestructorCall(0): [DestructorCall] call to ~destructor_only -# 1438| Type = [VoidType] void -# 1438| ValueCategory = prvalue -# 1438| getQualifier(): [VariableAccess] d2 -# 1438| Type = [Class] destructor_only -# 1438| ValueCategory = lvalue -# 1438| getImplicitDestructorCall(1): [DestructorCall] call to ~destructor_only -# 1438| Type = [VoidType] void -# 1438| ValueCategory = prvalue -# 1438| getQualifier(): [ReuseExpr] reuse of temporary object -# 1438| Type = [Class] destructor_only -# 1438| ValueCategory = xvalue -# 1438| getImplicitDestructorCall(2): [DestructorCall] call to ~destructor_only -# 1438| Type = [VoidType] void -# 1438| ValueCategory = prvalue -# 1438| getQualifier(): [VariableAccess] d -# 1438| Type = [Class] destructor_only -# 1438| ValueCategory = lvalue -# 1440| [TopLevelFunction] void temporary_copy_constructor() -# 1440| : -# 1440| getEntryPoint(): [BlockStmt] { ... } -# 1441| getStmt(0): [DeclStmt] declaration -# 1441| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d -# 1441| Type = [Class] copy_constructor -# 1441| getVariable().getInitializer(): [Initializer] initializer for d -# 1441| getExpr(): [FunctionCall] call to returnValue -# 1441| Type = [Class] copy_constructor -# 1441| ValueCategory = prvalue -# 1442| getStmt(1): [DeclStmt] declaration -# 1442| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rd -# 1442| Type = [LValueReferenceType] const copy_constructor & -# 1442| getVariable().getInitializer(): [Initializer] initializer for rd -# 1442| getExpr(): [FunctionCall] call to returnValue -# 1442| Type = [Class] copy_constructor -# 1442| ValueCategory = prvalue -# 1442| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1442| Type = [LValueReferenceType] const copy_constructor & -# 1442| ValueCategory = prvalue -# 1442| getExpr(): [CStyleCast] (const copy_constructor)... -# 1442| Conversion = [GlvalueConversion] glvalue conversion -# 1442| Type = [SpecifiedType] const copy_constructor -# 1442| ValueCategory = lvalue -# 1442| getExpr(): [TemporaryObjectExpr] temporary object -# 1442| Type = [Class] copy_constructor -# 1442| ValueCategory = lvalue -# 1443| getStmt(2): [DeclStmt] declaration -# 1443| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d2 +# 1437| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 1437| Type = [Class] destructor_only +# 1437| ValueCategory = prvalue(load) +# 1439| getStmt(7): [ExprStmt] ExprStmt +# 1439| getExpr(): [FunctionCall] call to defaultConstruct +# 1439| Type = [Class] destructor_only +# 1439| ValueCategory = prvalue +# 1439| getExpr().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 1439| Type = [Class] destructor_only +# 1439| ValueCategory = prvalue +# 1439| getImplicitDestructorCall(0): [DestructorCall] call to ~destructor_only +# 1439| Type = [VoidType] void +# 1439| ValueCategory = prvalue +# 1439| getQualifier(): [ReuseExpr] reuse of temporary object +# 1439| Type = [Class] destructor_only +# 1439| ValueCategory = xvalue +# 1440| getStmt(8): [ReturnStmt] return ... +# 1440| getImplicitDestructorCall(0): [DestructorCall] call to ~destructor_only +# 1440| Type = [VoidType] void +# 1440| ValueCategory = prvalue +# 1440| getQualifier(): [VariableAccess] d2 +# 1440| Type = [Class] destructor_only +# 1440| ValueCategory = lvalue +# 1440| getImplicitDestructorCall(1): [DestructorCall] call to ~destructor_only +# 1440| Type = [VoidType] void +# 1440| ValueCategory = prvalue +# 1440| getQualifier(): [ReuseExpr] reuse of temporary object +# 1440| Type = [Class] destructor_only +# 1440| ValueCategory = xvalue +# 1440| getImplicitDestructorCall(2): [DestructorCall] call to ~destructor_only +# 1440| Type = [VoidType] void +# 1440| ValueCategory = prvalue +# 1440| getQualifier(): [VariableAccess] d +# 1440| Type = [Class] destructor_only +# 1440| ValueCategory = lvalue +# 1442| [TopLevelFunction] void temporary_copy_constructor() +# 1442| : +# 1442| getEntryPoint(): [BlockStmt] { ... } +# 1443| getStmt(0): [DeclStmt] declaration +# 1443| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d # 1443| Type = [Class] copy_constructor -# 1443| getVariable().getInitializer(): [Initializer] initializer for d2 -# 1443| getExpr(): [ConstructorCall] call to copy_constructor -# 1443| Type = [VoidType] void +# 1443| getVariable().getInitializer(): [Initializer] initializer for d +# 1443| getExpr(): [FunctionCall] call to returnValue +# 1443| Type = [Class] copy_constructor # 1443| ValueCategory = prvalue -# 1444| getStmt(3): [ExprStmt] ExprStmt -# 1444| getExpr(): [FunctionCall] call to acceptRef -# 1444| Type = [VoidType] void -# 1444| ValueCategory = prvalue -# 1444| getArgument(0): [VariableAccess] d -# 1444| Type = [Class] copy_constructor -# 1444| ValueCategory = lvalue -# 1444| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) -# 1444| Type = [LValueReferenceType] const copy_constructor & -# 1444| ValueCategory = prvalue -# 1444| getExpr(): [CStyleCast] (const copy_constructor)... -# 1444| Conversion = [GlvalueConversion] glvalue conversion -# 1444| Type = [SpecifiedType] const copy_constructor -# 1444| ValueCategory = lvalue -# 1445| getStmt(4): [ExprStmt] ExprStmt -# 1445| getExpr(): [FunctionCall] call to acceptValue -# 1445| Type = [VoidType] void -# 1445| ValueCategory = prvalue -# 1445| getArgument(0): [ConstructorCall] call to copy_constructor -# 1445| Type = [VoidType] void -# 1445| ValueCategory = prvalue -# 1445| getArgument(0): [VariableAccess] d -# 1445| Type = [Class] copy_constructor -# 1445| ValueCategory = lvalue -# 1445| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) -# 1445| Type = [LValueReferenceType] const copy_constructor & +# 1444| getStmt(1): [DeclStmt] declaration +# 1444| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rd +# 1444| Type = [LValueReferenceType] const copy_constructor & +# 1444| getVariable().getInitializer(): [Initializer] initializer for rd +# 1444| getExpr(): [FunctionCall] call to returnValue +# 1444| Type = [Class] copy_constructor +# 1444| ValueCategory = prvalue +# 1444| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1444| Type = [LValueReferenceType] const copy_constructor & +# 1444| ValueCategory = prvalue +# 1444| getExpr(): [CStyleCast] (const copy_constructor)... +# 1444| Conversion = [GlvalueConversion] glvalue conversion +# 1444| Type = [SpecifiedType] const copy_constructor +# 1444| ValueCategory = lvalue +# 1444| getExpr(): [TemporaryObjectExpr] temporary object +# 1444| Type = [Class] copy_constructor +# 1444| ValueCategory = lvalue +# 1445| getStmt(2): [DeclStmt] declaration +# 1445| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d2 +# 1445| Type = [Class] copy_constructor +# 1445| getVariable().getInitializer(): [Initializer] initializer for d2 +# 1445| getExpr(): [ConstructorCall] call to copy_constructor +# 1445| Type = [VoidType] void # 1445| ValueCategory = prvalue -# 1445| getExpr(): [CStyleCast] (const copy_constructor)... -# 1445| Conversion = [GlvalueConversion] glvalue conversion -# 1445| Type = [SpecifiedType] const copy_constructor -# 1445| ValueCategory = lvalue -# 1445| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object -# 1445| Type = [Class] copy_constructor -# 1445| ValueCategory = lvalue -# 1446| getStmt(5): [ExprStmt] ExprStmt -# 1446| getExpr(): [FunctionCall] call to method +# 1446| getStmt(3): [ExprStmt] ExprStmt +# 1446| getExpr(): [FunctionCall] call to acceptRef # 1446| Type = [VoidType] void # 1446| ValueCategory = prvalue -# 1446| getQualifier(): [ConstructorCall] call to copy_constructor -# 1446| Type = [VoidType] void -# 1446| ValueCategory = prvalue -# 1446| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 1446| getArgument(0): [VariableAccess] d # 1446| Type = [Class] copy_constructor -# 1446| ValueCategory = prvalue(load) -# 1447| getStmt(6): [ExprStmt] ExprStmt -# 1447| getExpr(): [FunctionCall] call to method +# 1446| ValueCategory = lvalue +# 1446| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) +# 1446| Type = [LValueReferenceType] const copy_constructor & +# 1446| ValueCategory = prvalue +# 1446| getExpr(): [CStyleCast] (const copy_constructor)... +# 1446| Conversion = [GlvalueConversion] glvalue conversion +# 1446| Type = [SpecifiedType] const copy_constructor +# 1446| ValueCategory = lvalue +# 1447| getStmt(4): [ExprStmt] ExprStmt +# 1447| getExpr(): [FunctionCall] call to acceptValue # 1447| Type = [VoidType] void # 1447| ValueCategory = prvalue -# 1447| getQualifier(): [FunctionCall] call to returnValue -# 1447| Type = [Class] copy_constructor +# 1447| getArgument(0): [ConstructorCall] call to copy_constructor +# 1447| Type = [VoidType] void # 1447| ValueCategory = prvalue -# 1447| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 1447| getArgument(0): [VariableAccess] d +# 1447| Type = [Class] copy_constructor +# 1447| ValueCategory = lvalue +# 1447| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) +# 1447| Type = [LValueReferenceType] const copy_constructor & +# 1447| ValueCategory = prvalue +# 1447| getExpr(): [CStyleCast] (const copy_constructor)... +# 1447| Conversion = [GlvalueConversion] glvalue conversion +# 1447| Type = [SpecifiedType] const copy_constructor +# 1447| ValueCategory = lvalue +# 1447| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object # 1447| Type = [Class] copy_constructor -# 1447| ValueCategory = prvalue(load) -# 1448| getStmt(7): [ExprStmt] ExprStmt -# 1448| getExpr(): [FunctionCall] call to defaultConstruct -# 1448| Type = [Class] copy_constructor -# 1448| ValueCategory = prvalue -# 1448| getExpr().getFullyConverted(): [TemporaryObjectExpr] temporary object -# 1448| Type = [Class] copy_constructor +# 1447| ValueCategory = lvalue +# 1448| getStmt(5): [ExprStmt] ExprStmt +# 1448| getExpr(): [FunctionCall] call to method +# 1448| Type = [VoidType] void # 1448| ValueCategory = prvalue -# 1450| getStmt(8): [DeclStmt] declaration -# 1450| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y -# 1450| Type = [IntType] int -# 1450| getVariable().getInitializer(): [Initializer] initializer for y -# 1450| getExpr(): [ValueFieldAccess] y -# 1450| Type = [IntType] int -# 1450| ValueCategory = prvalue -# 1450| getQualifier(): [FunctionCall] call to returnValue -# 1450| Type = [Class] copy_constructor -# 1450| ValueCategory = prvalue -# 1450| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object -# 1450| Type = [Class] copy_constructor -# 1450| ValueCategory = prvalue(load) -# 1451| getStmt(9): [ReturnStmt] return ... -# 1453| [TopLevelFunction] void temporary_point() -# 1453| : -# 1453| getEntryPoint(): [BlockStmt] { ... } -# 1454| getStmt(0): [DeclStmt] declaration -# 1454| getDeclarationEntry(0): [VariableDeclarationEntry] definition of p -# 1454| Type = [Struct] Point -# 1454| getVariable().getInitializer(): [Initializer] initializer for p -# 1454| getExpr(): [FunctionCall] call to returnValue -# 1454| Type = [Struct] Point -# 1454| ValueCategory = prvalue -# 1455| getStmt(1): [DeclStmt] declaration -# 1455| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rp -# 1455| Type = [LValueReferenceType] const Point & -# 1455| getVariable().getInitializer(): [Initializer] initializer for rp -# 1455| getExpr(): [FunctionCall] call to returnValue -# 1455| Type = [Struct] Point -# 1455| ValueCategory = prvalue -# 1455| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1455| Type = [LValueReferenceType] const Point & -# 1455| ValueCategory = prvalue -# 1455| getExpr(): [CStyleCast] (const Point)... -# 1455| Conversion = [GlvalueConversion] glvalue conversion -# 1455| Type = [SpecifiedType] const Point -# 1455| ValueCategory = lvalue -# 1455| getExpr(): [TemporaryObjectExpr] temporary object -# 1455| Type = [Struct] Point -# 1455| ValueCategory = lvalue -# 1457| getStmt(2): [ExprStmt] ExprStmt -# 1457| getExpr(): [FunctionCall] call to acceptRef -# 1457| Type = [VoidType] void -# 1457| ValueCategory = prvalue -# 1457| getArgument(0): [VariableAccess] p -# 1457| Type = [Struct] Point -# 1457| ValueCategory = lvalue -# 1457| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) -# 1457| Type = [LValueReferenceType] const Point & -# 1457| ValueCategory = prvalue -# 1457| getExpr(): [CStyleCast] (const Point)... -# 1457| Conversion = [GlvalueConversion] glvalue conversion -# 1457| Type = [SpecifiedType] const Point -# 1457| ValueCategory = lvalue -# 1458| getStmt(3): [ExprStmt] ExprStmt -# 1458| getExpr(): [FunctionCall] call to acceptValue -# 1458| Type = [VoidType] void -# 1458| ValueCategory = prvalue -# 1458| getArgument(0): [VariableAccess] p -# 1458| Type = [Struct] Point -# 1458| ValueCategory = prvalue(load) -# 1459| getStmt(4): [ExprStmt] ExprStmt -# 1459| getExpr(): [ValueFieldAccess] x -# 1459| Type = [IntType] int -# 1459| Value = [ValueFieldAccess] 0 +# 1448| getQualifier(): [ConstructorCall] call to copy_constructor +# 1448| Type = [VoidType] void +# 1448| ValueCategory = prvalue +# 1448| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 1448| Type = [Class] copy_constructor +# 1448| ValueCategory = prvalue(load) +# 1449| getStmt(6): [ExprStmt] ExprStmt +# 1449| getExpr(): [FunctionCall] call to method +# 1449| Type = [VoidType] void +# 1449| ValueCategory = prvalue +# 1449| getQualifier(): [FunctionCall] call to returnValue +# 1449| Type = [Class] copy_constructor +# 1449| ValueCategory = prvalue +# 1449| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 1449| Type = [Class] copy_constructor +# 1449| ValueCategory = prvalue(load) +# 1450| getStmt(7): [ExprStmt] ExprStmt +# 1450| getExpr(): [FunctionCall] call to defaultConstruct +# 1450| Type = [Class] copy_constructor +# 1450| ValueCategory = prvalue +# 1450| getExpr().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 1450| Type = [Class] copy_constructor +# 1450| ValueCategory = prvalue +# 1452| getStmt(8): [DeclStmt] declaration +# 1452| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y +# 1452| Type = [IntType] int +# 1452| getVariable().getInitializer(): [Initializer] initializer for y +# 1452| getExpr(): [ValueFieldAccess] y +# 1452| Type = [IntType] int +# 1452| ValueCategory = prvalue +# 1452| getQualifier(): [FunctionCall] call to returnValue +# 1452| Type = [Class] copy_constructor +# 1452| ValueCategory = prvalue +# 1452| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 1452| Type = [Class] copy_constructor +# 1452| ValueCategory = prvalue(load) +# 1453| getStmt(9): [ReturnStmt] return ... +# 1455| [TopLevelFunction] void temporary_point() +# 1455| : +# 1455| getEntryPoint(): [BlockStmt] { ... } +# 1456| getStmt(0): [DeclStmt] declaration +# 1456| getDeclarationEntry(0): [VariableDeclarationEntry] definition of p +# 1456| Type = [Struct] Point +# 1456| getVariable().getInitializer(): [Initializer] initializer for p +# 1456| getExpr(): [FunctionCall] call to returnValue +# 1456| Type = [Struct] Point +# 1456| ValueCategory = prvalue +# 1457| getStmt(1): [DeclStmt] declaration +# 1457| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rp +# 1457| Type = [LValueReferenceType] const Point & +# 1457| getVariable().getInitializer(): [Initializer] initializer for rp +# 1457| getExpr(): [FunctionCall] call to returnValue +# 1457| Type = [Struct] Point +# 1457| ValueCategory = prvalue +# 1457| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1457| Type = [LValueReferenceType] const Point & +# 1457| ValueCategory = prvalue +# 1457| getExpr(): [CStyleCast] (const Point)... +# 1457| Conversion = [GlvalueConversion] glvalue conversion +# 1457| Type = [SpecifiedType] const Point +# 1457| ValueCategory = lvalue +# 1457| getExpr(): [TemporaryObjectExpr] temporary object +# 1457| Type = [Struct] Point +# 1457| ValueCategory = lvalue +# 1459| getStmt(2): [ExprStmt] ExprStmt +# 1459| getExpr(): [FunctionCall] call to acceptRef +# 1459| Type = [VoidType] void # 1459| ValueCategory = prvalue -# 1459| getQualifier(): [Literal] 0 +# 1459| getArgument(0): [VariableAccess] p # 1459| Type = [Struct] Point -# 1459| Value = [Literal] 0 +# 1459| ValueCategory = lvalue +# 1459| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) +# 1459| Type = [LValueReferenceType] const Point & # 1459| ValueCategory = prvalue -# 1459| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object -# 1459| Type = [Struct] Point -# 1459| ValueCategory = prvalue(load) -# 1460| getStmt(5): [DeclStmt] declaration -# 1460| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y -# 1460| Type = [IntType] int -# 1460| getVariable().getInitializer(): [Initializer] initializer for y -# 1460| getExpr(): [ValueFieldAccess] y -# 1460| Type = [IntType] int -# 1460| ValueCategory = prvalue -# 1460| getQualifier(): [FunctionCall] call to returnValue -# 1460| Type = [Struct] Point -# 1460| ValueCategory = prvalue -# 1462| getStmt(6): [ExprStmt] ExprStmt -# 1462| getExpr(): [FunctionCall] call to defaultConstruct -# 1462| Type = [Struct] Point -# 1462| ValueCategory = prvalue -# 1463| getStmt(7): [ReturnStmt] return ... -# 1465| [CopyAssignmentOperator] UnusualFields& UnusualFields::operator=(UnusualFields const&) -# 1465| : +# 1459| getExpr(): [CStyleCast] (const Point)... +# 1459| Conversion = [GlvalueConversion] glvalue conversion +# 1459| Type = [SpecifiedType] const Point +# 1459| ValueCategory = lvalue +# 1460| getStmt(3): [ExprStmt] ExprStmt +# 1460| getExpr(): [FunctionCall] call to acceptValue +# 1460| Type = [VoidType] void +# 1460| ValueCategory = prvalue +# 1460| getArgument(0): [VariableAccess] p +# 1460| Type = [Struct] Point +# 1460| ValueCategory = prvalue(load) +# 1461| getStmt(4): [ExprStmt] ExprStmt +# 1461| getExpr(): [ValueFieldAccess] x +# 1461| Type = [IntType] int +# 1461| Value = [ValueFieldAccess] 0 +# 1461| ValueCategory = prvalue +# 1461| getQualifier(): [Literal] 0 +# 1461| Type = [Struct] Point +# 1461| Value = [Literal] 0 +# 1461| ValueCategory = prvalue +# 1461| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 1461| Type = [Struct] Point +# 1461| ValueCategory = prvalue(load) +# 1462| getStmt(5): [DeclStmt] declaration +# 1462| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y +# 1462| Type = [IntType] int +# 1462| getVariable().getInitializer(): [Initializer] initializer for y +# 1462| getExpr(): [ValueFieldAccess] y +# 1462| Type = [IntType] int +# 1462| ValueCategory = prvalue +# 1462| getQualifier(): [FunctionCall] call to returnValue +# 1462| Type = [Struct] Point +# 1462| ValueCategory = prvalue +# 1464| getStmt(6): [ExprStmt] ExprStmt +# 1464| getExpr(): [FunctionCall] call to defaultConstruct +# 1464| Type = [Struct] Point +# 1464| ValueCategory = prvalue +# 1465| getStmt(7): [ReturnStmt] return ... +# 1467| [CopyAssignmentOperator] UnusualFields& UnusualFields::operator=(UnusualFields const&) +# 1467| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const UnusualFields & -# 1465| [Constructor] void UnusualFields::UnusualFields() -# 1465| : -# 1465| [CopyConstructor] void UnusualFields::UnusualFields(UnusualFields const&) -# 1465| : +# 1467| [Constructor] void UnusualFields::UnusualFields() +# 1467| : +# 1467| [CopyConstructor] void UnusualFields::UnusualFields(UnusualFields const&) +# 1467| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const UnusualFields & -# 1465| [MoveConstructor] void UnusualFields::UnusualFields(UnusualFields&&) -# 1465| : +# 1467| [MoveConstructor] void UnusualFields::UnusualFields(UnusualFields&&) +# 1467| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] UnusualFields && -# 1470| [TopLevelFunction] void temporary_unusual_fields() -# 1470| : -# 1470| getEntryPoint(): [BlockStmt] { ... } -# 1471| getStmt(0): [DeclStmt] declaration -# 1471| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rx -# 1471| Type = [LValueReferenceType] const int & -# 1471| getVariable().getInitializer(): [Initializer] initializer for rx -# 1471| getExpr(): [ValueFieldAccess] r -# 1471| Type = [LValueReferenceType] int & -# 1471| ValueCategory = prvalue -# 1471| getQualifier(): [FunctionCall] call to returnValue -# 1471| Type = [Struct] UnusualFields -# 1471| ValueCategory = prvalue -# 1471| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1471| Type = [LValueReferenceType] const int & -# 1471| ValueCategory = prvalue -# 1471| getExpr(): [CStyleCast] (const int)... -# 1471| Conversion = [GlvalueConversion] glvalue conversion -# 1471| Type = [SpecifiedType] const int -# 1471| ValueCategory = lvalue -# 1471| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1471| Type = [IntType] int -# 1471| ValueCategory = lvalue -# 1472| getStmt(1): [DeclStmt] declaration -# 1472| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x -# 1472| Type = [IntType] int -# 1472| getVariable().getInitializer(): [Initializer] initializer for x -# 1472| getExpr(): [ValueFieldAccess] r -# 1472| Type = [LValueReferenceType] int & -# 1472| ValueCategory = prvalue -# 1472| getQualifier(): [FunctionCall] call to returnValue -# 1472| Type = [Struct] UnusualFields -# 1472| ValueCategory = prvalue -# 1472| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1472| Type = [IntType] int -# 1472| ValueCategory = prvalue(load) -# 1474| getStmt(2): [DeclStmt] declaration -# 1474| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rf -# 1474| Type = [LValueReferenceType] const float & -# 1474| getVariable().getInitializer(): [Initializer] initializer for rf -# 1474| getExpr(): [ArrayExpr] access to array -# 1474| Type = [FloatType] float -# 1474| ValueCategory = lvalue -# 1474| getArrayBase(): [ValueFieldAccess] a -# 1474| Type = [ArrayType] float[10] -# 1474| ValueCategory = prvalue -# 1474| getQualifier(): [FunctionCall] call to returnValue -# 1474| Type = [Struct] UnusualFields -# 1474| ValueCategory = prvalue -# 1474| getArrayOffset(): [Literal] 3 -# 1474| Type = [IntType] int -# 1474| Value = [Literal] 3 -# 1474| ValueCategory = prvalue -# 1474| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 1474| Type = [PointerType] float * -# 1474| ValueCategory = prvalue -# 1474| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1474| Type = [LValueReferenceType] const float & +# 1472| [TopLevelFunction] void temporary_unusual_fields() +# 1472| : +# 1472| getEntryPoint(): [BlockStmt] { ... } +# 1473| getStmt(0): [DeclStmt] declaration +# 1473| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rx +# 1473| Type = [LValueReferenceType] const int & +# 1473| getVariable().getInitializer(): [Initializer] initializer for rx +# 1473| getExpr(): [ValueFieldAccess] r +# 1473| Type = [LValueReferenceType] int & +# 1473| ValueCategory = prvalue +# 1473| getQualifier(): [FunctionCall] call to returnValue +# 1473| Type = [Struct] UnusualFields +# 1473| ValueCategory = prvalue +# 1473| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1473| Type = [LValueReferenceType] const int & +# 1473| ValueCategory = prvalue +# 1473| getExpr(): [CStyleCast] (const int)... +# 1473| Conversion = [GlvalueConversion] glvalue conversion +# 1473| Type = [SpecifiedType] const int +# 1473| ValueCategory = lvalue +# 1473| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1473| Type = [IntType] int +# 1473| ValueCategory = lvalue +# 1474| getStmt(1): [DeclStmt] declaration +# 1474| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x +# 1474| Type = [IntType] int +# 1474| getVariable().getInitializer(): [Initializer] initializer for x +# 1474| getExpr(): [ValueFieldAccess] r +# 1474| Type = [LValueReferenceType] int & # 1474| ValueCategory = prvalue -# 1474| getExpr(): [CStyleCast] (const float)... -# 1474| Conversion = [GlvalueConversion] glvalue conversion -# 1474| Type = [SpecifiedType] const float -# 1474| ValueCategory = lvalue -# 1475| getStmt(3): [DeclStmt] declaration -# 1475| getDeclarationEntry(0): [VariableDeclarationEntry] definition of f -# 1475| Type = [FloatType] float -# 1475| getVariable().getInitializer(): [Initializer] initializer for f -# 1475| getExpr(): [ArrayExpr] access to array -# 1475| Type = [FloatType] float -# 1475| ValueCategory = prvalue(load) -# 1475| getArrayBase(): [ValueFieldAccess] a -# 1475| Type = [ArrayType] float[10] -# 1475| ValueCategory = prvalue -# 1475| getQualifier(): [FunctionCall] call to returnValue -# 1475| Type = [Struct] UnusualFields -# 1475| ValueCategory = prvalue -# 1475| getArrayOffset(): [Literal] 5 -# 1475| Type = [IntType] int -# 1475| Value = [Literal] 5 -# 1475| ValueCategory = prvalue -# 1475| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 1475| Type = [PointerType] float * -# 1475| ValueCategory = prvalue -# 1476| getStmt(4): [ReturnStmt] return ... -# 1478| [CopyAssignmentOperator] POD_Base& POD_Base::operator=(POD_Base const&) -# 1478| : +# 1474| getQualifier(): [FunctionCall] call to returnValue +# 1474| Type = [Struct] UnusualFields +# 1474| ValueCategory = prvalue +# 1474| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1474| Type = [IntType] int +# 1474| ValueCategory = prvalue(load) +# 1476| getStmt(2): [DeclStmt] declaration +# 1476| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rf +# 1476| Type = [LValueReferenceType] const float & +# 1476| getVariable().getInitializer(): [Initializer] initializer for rf +# 1476| getExpr(): [ArrayExpr] access to array +# 1476| Type = [FloatType] float +# 1476| ValueCategory = lvalue +# 1476| getArrayBase(): [ValueFieldAccess] a +# 1476| Type = [ArrayType] float[10] +# 1476| ValueCategory = prvalue +# 1476| getQualifier(): [FunctionCall] call to returnValue +# 1476| Type = [Struct] UnusualFields +# 1476| ValueCategory = prvalue +# 1476| getArrayOffset(): [Literal] 3 +# 1476| Type = [IntType] int +# 1476| Value = [Literal] 3 +# 1476| ValueCategory = prvalue +# 1476| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 1476| Type = [PointerType] float * +# 1476| ValueCategory = prvalue +# 1476| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1476| Type = [LValueReferenceType] const float & +# 1476| ValueCategory = prvalue +# 1476| getExpr(): [CStyleCast] (const float)... +# 1476| Conversion = [GlvalueConversion] glvalue conversion +# 1476| Type = [SpecifiedType] const float +# 1476| ValueCategory = lvalue +# 1477| getStmt(3): [DeclStmt] declaration +# 1477| getDeclarationEntry(0): [VariableDeclarationEntry] definition of f +# 1477| Type = [FloatType] float +# 1477| getVariable().getInitializer(): [Initializer] initializer for f +# 1477| getExpr(): [ArrayExpr] access to array +# 1477| Type = [FloatType] float +# 1477| ValueCategory = prvalue(load) +# 1477| getArrayBase(): [ValueFieldAccess] a +# 1477| Type = [ArrayType] float[10] +# 1477| ValueCategory = prvalue +# 1477| getQualifier(): [FunctionCall] call to returnValue +# 1477| Type = [Struct] UnusualFields +# 1477| ValueCategory = prvalue +# 1477| getArrayOffset(): [Literal] 5 +# 1477| Type = [IntType] int +# 1477| Value = [Literal] 5 +# 1477| ValueCategory = prvalue +# 1477| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 1477| Type = [PointerType] float * +# 1477| ValueCategory = prvalue +# 1478| getStmt(4): [ReturnStmt] return ... +# 1480| [CopyAssignmentOperator] POD_Base& POD_Base::operator=(POD_Base const&) +# 1480| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const POD_Base & -# 1478| [MoveAssignmentOperator] POD_Base& POD_Base::operator=(POD_Base&&) -# 1478| : +# 1480| [MoveAssignmentOperator] POD_Base& POD_Base::operator=(POD_Base&&) +# 1480| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] POD_Base && -# 1481| [ConstMemberFunction] float POD_Base::f() const -# 1481| : -# 1484| [CopyAssignmentOperator] POD_Middle& POD_Middle::operator=(POD_Middle const&) -# 1484| : +# 1483| [ConstMemberFunction] float POD_Base::f() const +# 1483| : +# 1486| [CopyAssignmentOperator] POD_Middle& POD_Middle::operator=(POD_Middle const&) +# 1486| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const POD_Middle & -# 1484| [MoveAssignmentOperator] POD_Middle& POD_Middle::operator=(POD_Middle&&) -# 1484| : +# 1486| [MoveAssignmentOperator] POD_Middle& POD_Middle::operator=(POD_Middle&&) +# 1486| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] POD_Middle && -# 1484| [Constructor] void POD_Middle::POD_Middle() -# 1484| : -# 1488| [CopyAssignmentOperator] POD_Derived& POD_Derived::operator=(POD_Derived const&) -# 1488| : +# 1486| [Constructor] void POD_Middle::POD_Middle() +# 1486| : +# 1490| [CopyAssignmentOperator] POD_Derived& POD_Derived::operator=(POD_Derived const&) +# 1490| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const POD_Derived & -# 1488| [MoveAssignmentOperator] POD_Derived& POD_Derived::operator=(POD_Derived&&) -# 1488| : +# 1490| [MoveAssignmentOperator] POD_Derived& POD_Derived::operator=(POD_Derived&&) +# 1490| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] POD_Derived && -# 1488| [Constructor] void POD_Derived::POD_Derived() -# 1488| : -# 1492| [TopLevelFunction] void temporary_hierarchy() -# 1492| : -# 1492| getEntryPoint(): [BlockStmt] { ... } -# 1493| getStmt(0): [DeclStmt] declaration -# 1493| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b -# 1493| Type = [Struct] POD_Base -# 1493| getVariable().getInitializer(): [Initializer] initializer for b -# 1493| getExpr(): [FunctionCall] call to returnValue -# 1493| Type = [Struct] POD_Middle -# 1493| ValueCategory = prvalue +# 1490| [Constructor] void POD_Derived::POD_Derived() +# 1490| : +# 1494| [TopLevelFunction] void temporary_hierarchy() +# 1494| : +# 1494| getEntryPoint(): [BlockStmt] { ... } +# 1495| getStmt(0): [DeclStmt] declaration +# 1495| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b +# 1495| Type = [Struct] POD_Base +# 1495| getVariable().getInitializer(): [Initializer] initializer for b +# 1495| getExpr(): [FunctionCall] call to returnValue +# 1495| Type = [Struct] POD_Middle +# 1495| ValueCategory = prvalue #-----| getExpr().getFullyConverted(): [CStyleCast] (POD_Base)... #-----| Conversion = [BaseClassConversion] base class conversion #-----| Type = [Struct] POD_Base @@ -15049,40 +15081,40 @@ ir.cpp: #-----| getExpr(): [TemporaryObjectExpr] temporary object #-----| Type = [Struct] POD_Middle #-----| ValueCategory = xvalue -# 1494| getStmt(1): [ExprStmt] ExprStmt -# 1494| getExpr(): [AssignExpr] ... = ... -# 1494| Type = [Struct] POD_Base -# 1494| ValueCategory = lvalue -# 1494| getLValue(): [VariableAccess] b -# 1494| Type = [Struct] POD_Base -# 1494| ValueCategory = lvalue -# 1494| getRValue(): [FunctionCall] call to returnValue -# 1494| Type = [Struct] POD_Derived -# 1494| ValueCategory = prvalue -# 1494| getRValue().getFullyConverted(): [CStyleCast] (POD_Base)... -# 1494| Conversion = [BaseClassConversion] base class conversion -# 1494| Type = [Struct] POD_Base -# 1494| ValueCategory = prvalue(load) -# 1494| getExpr(): [CStyleCast] (POD_Middle)... -# 1494| Conversion = [BaseClassConversion] base class conversion -# 1494| Type = [Struct] POD_Middle -# 1494| ValueCategory = lvalue -# 1494| getExpr(): [TemporaryObjectExpr] temporary object -# 1494| Type = [Struct] POD_Derived -# 1494| ValueCategory = lvalue -# 1494| getExpr(): [ParenthesisExpr] (...) -# 1494| Type = [Struct] POD_Derived -# 1494| ValueCategory = prvalue -# 1495| getStmt(2): [DeclStmt] declaration -# 1495| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x -# 1495| Type = [IntType] int -# 1495| getVariable().getInitializer(): [Initializer] initializer for x -# 1495| getExpr(): [ValueFieldAccess] x -# 1495| Type = [IntType] int -# 1495| ValueCategory = prvalue(load) -# 1495| getQualifier(): [FunctionCall] call to returnValue -# 1495| Type = [Struct] POD_Derived -# 1495| ValueCategory = prvalue +# 1496| getStmt(1): [ExprStmt] ExprStmt +# 1496| getExpr(): [AssignExpr] ... = ... +# 1496| Type = [Struct] POD_Base +# 1496| ValueCategory = lvalue +# 1496| getLValue(): [VariableAccess] b +# 1496| Type = [Struct] POD_Base +# 1496| ValueCategory = lvalue +# 1496| getRValue(): [FunctionCall] call to returnValue +# 1496| Type = [Struct] POD_Derived +# 1496| ValueCategory = prvalue +# 1496| getRValue().getFullyConverted(): [CStyleCast] (POD_Base)... +# 1496| Conversion = [BaseClassConversion] base class conversion +# 1496| Type = [Struct] POD_Base +# 1496| ValueCategory = prvalue(load) +# 1496| getExpr(): [CStyleCast] (POD_Middle)... +# 1496| Conversion = [BaseClassConversion] base class conversion +# 1496| Type = [Struct] POD_Middle +# 1496| ValueCategory = lvalue +# 1496| getExpr(): [TemporaryObjectExpr] temporary object +# 1496| Type = [Struct] POD_Derived +# 1496| ValueCategory = lvalue +# 1496| getExpr(): [ParenthesisExpr] (...) +# 1496| Type = [Struct] POD_Derived +# 1496| ValueCategory = prvalue +# 1497| getStmt(2): [DeclStmt] declaration +# 1497| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x +# 1497| Type = [IntType] int +# 1497| getVariable().getInitializer(): [Initializer] initializer for x +# 1497| getExpr(): [ValueFieldAccess] x +# 1497| Type = [IntType] int +# 1497| ValueCategory = prvalue(load) +# 1497| getQualifier(): [FunctionCall] call to returnValue +# 1497| Type = [Struct] POD_Derived +# 1497| ValueCategory = prvalue #-----| getQualifier().getFullyConverted(): [CStyleCast] (POD_Base)... #-----| Conversion = [BaseClassConversion] base class conversion #-----| Type = [Struct] POD_Base @@ -15094,16 +15126,16 @@ ir.cpp: #-----| getExpr(): [TemporaryObjectExpr] temporary object #-----| Type = [Struct] POD_Derived #-----| ValueCategory = xvalue -# 1496| getStmt(3): [DeclStmt] declaration -# 1496| getDeclarationEntry(0): [VariableDeclarationEntry] definition of f -# 1496| Type = [FloatType] float -# 1496| getVariable().getInitializer(): [Initializer] initializer for f -# 1496| getExpr(): [FunctionCall] call to f -# 1496| Type = [FloatType] float -# 1496| ValueCategory = prvalue -# 1496| getQualifier(): [FunctionCall] call to returnValue -# 1496| Type = [Struct] POD_Derived -# 1496| ValueCategory = prvalue +# 1498| getStmt(3): [DeclStmt] declaration +# 1498| getDeclarationEntry(0): [VariableDeclarationEntry] definition of f +# 1498| Type = [FloatType] float +# 1498| getVariable().getInitializer(): [Initializer] initializer for f +# 1498| getExpr(): [FunctionCall] call to f +# 1498| Type = [FloatType] float +# 1498| ValueCategory = prvalue +# 1498| getQualifier(): [FunctionCall] call to returnValue +# 1498| Type = [Struct] POD_Derived +# 1498| ValueCategory = prvalue #-----| getQualifier().getFullyConverted(): [CStyleCast] (const POD_Base)... #-----| Conversion = [GlvalueConversion] glvalue conversion #-----| Type = [SpecifiedType] const POD_Base @@ -15119,99 +15151,99 @@ ir.cpp: #-----| getExpr(): [TemporaryObjectExpr] temporary object #-----| Type = [Struct] POD_Derived #-----| ValueCategory = xvalue -# 1496| getExpr(): [ParenthesisExpr] (...) -# 1496| Type = [Struct] POD_Derived -# 1496| ValueCategory = prvalue -# 1497| getStmt(4): [ReturnStmt] return ... -# 1499| [CopyAssignmentOperator] Inheritance_Test_B& Inheritance_Test_B::operator=(Inheritance_Test_B const&) -# 1499| : +# 1498| getExpr(): [ParenthesisExpr] (...) +# 1498| Type = [Struct] POD_Derived +# 1498| ValueCategory = prvalue +# 1499| getStmt(4): [ReturnStmt] return ... +# 1501| [CopyAssignmentOperator] Inheritance_Test_B& Inheritance_Test_B::operator=(Inheritance_Test_B const&) +# 1501| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const Inheritance_Test_B & -# 1499| [Constructor] void Inheritance_Test_B::Inheritance_Test_B() -# 1499| : -# 1500| [Destructor] void Inheritance_Test_B::~Inheritance_Test_B() -# 1500| : -# 1500| getEntryPoint(): [BlockStmt] { ... } -# 1500| getStmt(0): [ReturnStmt] return ... -# 1500| : -# 1503| [CopyAssignmentOperator] Inheritance_Test_A& Inheritance_Test_A::operator=(Inheritance_Test_A const&) -# 1503| : +# 1501| [Constructor] void Inheritance_Test_B::Inheritance_Test_B() +# 1501| : +# 1502| [Destructor] void Inheritance_Test_B::~Inheritance_Test_B() +# 1502| : +# 1502| getEntryPoint(): [BlockStmt] { ... } +# 1502| getStmt(0): [ReturnStmt] return ... +# 1502| : +# 1505| [CopyAssignmentOperator] Inheritance_Test_A& Inheritance_Test_A::operator=(Inheritance_Test_A const&) +# 1505| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const Inheritance_Test_A & -# 1503| [MoveAssignmentOperator] Inheritance_Test_A& Inheritance_Test_A::operator=(Inheritance_Test_A&&) -# 1503| : +# 1505| [MoveAssignmentOperator] Inheritance_Test_A& Inheritance_Test_A::operator=(Inheritance_Test_A&&) +# 1505| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] Inheritance_Test_A && -# 1503| [CopyConstructor] void Inheritance_Test_A::Inheritance_Test_A(Inheritance_Test_A const&) -# 1503| : +# 1505| [CopyConstructor] void Inheritance_Test_A::Inheritance_Test_A(Inheritance_Test_A const&) +# 1505| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const Inheritance_Test_A & -# 1503| [MoveConstructor] void Inheritance_Test_A::Inheritance_Test_A(Inheritance_Test_A&&) -# 1503| : +# 1505| [MoveConstructor] void Inheritance_Test_A::Inheritance_Test_A(Inheritance_Test_A&&) +# 1505| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] Inheritance_Test_A && -# 1503| [Destructor] void Inheritance_Test_A::~Inheritance_Test_A() -# 1503| : -# 1506| [Constructor] void Inheritance_Test_A::Inheritance_Test_A() -# 1506| : -# 1506| : -# 1506| getInitializer(0): [ConstructorInit] constructor init -# 1506| Type = [Struct] Inheritance_Test_B -# 1506| ValueCategory = prvalue -# 1506| getInitializer(1): [ConstructorFieldInit] constructor init of field x -# 1506| Type = [IntType] int -# 1506| ValueCategory = prvalue -# 1506| getExpr(): [Literal] 42 -# 1506| Type = [IntType] int -# 1506| Value = [Literal] 42 -# 1506| ValueCategory = prvalue -# 1506| getEntryPoint(): [BlockStmt] { ... } -# 1507| getStmt(0): [ExprStmt] ExprStmt -# 1507| getExpr(): [AssignExpr] ... = ... -# 1507| Type = [IntType] int -# 1507| ValueCategory = lvalue -# 1507| getLValue(): [ImplicitThisFieldAccess,PointerFieldAccess] y -# 1507| Type = [IntType] int -# 1507| ValueCategory = lvalue -# 1507| getQualifier(): [ThisExpr] this -# 1507| Type = [PointerType] Inheritance_Test_A * -# 1507| ValueCategory = prvalue(load) -# 1507| getRValue(): [Literal] 3 -# 1507| Type = [IntType] int -# 1507| Value = [Literal] 3 -# 1507| ValueCategory = prvalue -# 1508| getStmt(1): [ReturnStmt] return ... -# 1511| [TopLevelFunction] void array_structured_binding() -# 1511| : -# 1511| getEntryPoint(): [BlockStmt] { ... } -# 1512| getStmt(0): [DeclStmt] declaration -# 1512| getDeclarationEntry(0): [VariableDeclarationEntry] definition of xs -# 1512| Type = [ArrayType] int[2] -# 1512| getVariable().getInitializer(): [Initializer] initializer for xs -# 1512| getExpr(): [ArrayAggregateLiteral] {...} -# 1512| Type = [ArrayType] int[2] -# 1512| ValueCategory = prvalue -# 1512| getAnElementExpr(0): [Literal] 1 -# 1512| Type = [IntType] int -# 1512| Value = [Literal] 1 -# 1512| ValueCategory = prvalue -# 1512| getAnElementExpr(1): [Literal] 2 -# 1512| Type = [IntType] int -# 1512| Value = [Literal] 2 -# 1512| ValueCategory = prvalue -# 1514| getStmt(1): [BlockStmt] { ... } -# 1515| getStmt(0): [DeclStmt] declaration -# 1515| getDeclarationEntry(0): [VariableDeclarationEntry] definition of (unnamed local variable) -# 1515| Type = [LValueReferenceType] int(&)[2] -# 1515| getVariable().getInitializer(): [Initializer] initializer for (unnamed local variable) -# 1515| getExpr(): [VariableAccess] xs -# 1515| Type = [ArrayType] int[2] -# 1515| ValueCategory = lvalue -# 1515| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1515| Type = [LValueReferenceType] int(&)[2] -# 1515| ValueCategory = prvalue -# 1515| getDeclarationEntry(1): [VariableDeclarationEntry] definition of x0 -# 1515| Type = [IntType] int +# 1505| [Destructor] void Inheritance_Test_A::~Inheritance_Test_A() +# 1505| : +# 1508| [Constructor] void Inheritance_Test_A::Inheritance_Test_A() +# 1508| : +# 1508| : +# 1508| getInitializer(0): [ConstructorInit] constructor init +# 1508| Type = [Struct] Inheritance_Test_B +# 1508| ValueCategory = prvalue +# 1508| getInitializer(1): [ConstructorFieldInit] constructor init of field x +# 1508| Type = [IntType] int +# 1508| ValueCategory = prvalue +# 1508| getExpr(): [Literal] 42 +# 1508| Type = [IntType] int +# 1508| Value = [Literal] 42 +# 1508| ValueCategory = prvalue +# 1508| getEntryPoint(): [BlockStmt] { ... } +# 1509| getStmt(0): [ExprStmt] ExprStmt +# 1509| getExpr(): [AssignExpr] ... = ... +# 1509| Type = [IntType] int +# 1509| ValueCategory = lvalue +# 1509| getLValue(): [ImplicitThisFieldAccess,PointerFieldAccess] y +# 1509| Type = [IntType] int +# 1509| ValueCategory = lvalue +# 1509| getQualifier(): [ThisExpr] this +# 1509| Type = [PointerType] Inheritance_Test_A * +# 1509| ValueCategory = prvalue(load) +# 1509| getRValue(): [Literal] 3 +# 1509| Type = [IntType] int +# 1509| Value = [Literal] 3 +# 1509| ValueCategory = prvalue +# 1510| getStmt(1): [ReturnStmt] return ... +# 1513| [TopLevelFunction] void array_structured_binding() +# 1513| : +# 1513| getEntryPoint(): [BlockStmt] { ... } +# 1514| getStmt(0): [DeclStmt] declaration +# 1514| getDeclarationEntry(0): [VariableDeclarationEntry] definition of xs +# 1514| Type = [ArrayType] int[2] +# 1514| getVariable().getInitializer(): [Initializer] initializer for xs +# 1514| getExpr(): [ArrayAggregateLiteral] {...} +# 1514| Type = [ArrayType] int[2] +# 1514| ValueCategory = prvalue +# 1514| getAnElementExpr(0): [Literal] 1 +# 1514| Type = [IntType] int +# 1514| Value = [Literal] 1 +# 1514| ValueCategory = prvalue +# 1514| getAnElementExpr(1): [Literal] 2 +# 1514| Type = [IntType] int +# 1514| Value = [Literal] 2 +# 1514| ValueCategory = prvalue +# 1516| getStmt(1): [BlockStmt] { ... } +# 1517| getStmt(0): [DeclStmt] declaration +# 1517| getDeclarationEntry(0): [VariableDeclarationEntry] definition of (unnamed local variable) +# 1517| Type = [LValueReferenceType] int(&)[2] +# 1517| getVariable().getInitializer(): [Initializer] initializer for (unnamed local variable) +# 1517| getExpr(): [VariableAccess] xs +# 1517| Type = [ArrayType] int[2] +# 1517| ValueCategory = lvalue +# 1517| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1517| Type = [LValueReferenceType] int(&)[2] +# 1517| ValueCategory = prvalue +# 1517| getDeclarationEntry(1): [VariableDeclarationEntry] definition of x0 +# 1517| Type = [IntType] int #-----| getVariable().getInitializer(): [Initializer] initializer for x0 #-----| getExpr(): [ArrayExpr] access to array #-----| Type = [IntType] int @@ -15229,8 +15261,8 @@ ir.cpp: #-----| getExpr(): [ReferenceDereferenceExpr] (reference dereference) #-----| Type = [ArrayType] int[2] #-----| ValueCategory = lvalue -# 1515| getDeclarationEntry(2): [VariableDeclarationEntry] definition of x1 -# 1515| Type = [IntType] int +# 1517| getDeclarationEntry(2): [VariableDeclarationEntry] definition of x1 +# 1517| Type = [IntType] int #-----| getVariable().getInitializer(): [Initializer] initializer for x1 #-----| getExpr(): [ArrayExpr] access to array #-----| Type = [IntType] int @@ -15248,1345 +15280,1307 @@ ir.cpp: #-----| getExpr(): [ReferenceDereferenceExpr] (reference dereference) #-----| Type = [ArrayType] int[2] #-----| ValueCategory = lvalue -# 1516| getStmt(1): [ExprStmt] ExprStmt -# 1516| getExpr(): [AssignExpr] ... = ... -# 1516| Type = [IntType] int -# 1516| ValueCategory = lvalue -# 1516| getLValue(): [VariableAccess] x1 -# 1516| Type = [IntType] int -# 1516| ValueCategory = lvalue -# 1516| getRValue(): [Literal] 3 -# 1516| Type = [IntType] int -# 1516| Value = [Literal] 3 -# 1516| ValueCategory = prvalue -# 1517| getStmt(2): [DeclStmt] declaration -# 1517| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rx1 -# 1517| Type = [LValueReferenceType] int & -# 1517| getVariable().getInitializer(): [Initializer] initializer for rx1 -# 1517| getExpr(): [VariableAccess] x1 -# 1517| Type = [IntType] int -# 1517| ValueCategory = lvalue -# 1517| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1517| Type = [LValueReferenceType] int & -# 1517| ValueCategory = prvalue -# 1518| getStmt(3): [DeclStmt] declaration -# 1518| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x +# 1518| getStmt(1): [ExprStmt] ExprStmt +# 1518| getExpr(): [AssignExpr] ... = ... # 1518| Type = [IntType] int -# 1518| getVariable().getInitializer(): [Initializer] initializer for x -# 1518| getExpr(): [VariableAccess] x1 -# 1518| Type = [IntType] int -# 1518| ValueCategory = prvalue(load) -# 1521| getStmt(2): [BlockStmt] { ... } -# 1522| getStmt(0): [DeclStmt] declaration -# 1522| getDeclarationEntry(0): [VariableDeclarationEntry] definition of unnamed_local_variable -# 1522| Type = [LValueReferenceType] int(&)[2] -# 1522| getVariable().getInitializer(): [Initializer] initializer for unnamed_local_variable -# 1522| getExpr(): [VariableAccess] xs -# 1522| Type = [ArrayType] int[2] -# 1522| ValueCategory = lvalue -# 1522| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1522| Type = [LValueReferenceType] int(&)[2] -# 1522| ValueCategory = prvalue -# 1523| getStmt(1): [DeclStmt] declaration -# 1523| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x0 -# 1523| Type = [LValueReferenceType] int & -# 1523| getVariable().getInitializer(): [Initializer] initializer for x0 -# 1523| getExpr(): [ArrayExpr] access to array -# 1523| Type = [IntType] int -# 1523| ValueCategory = lvalue -# 1523| getArrayBase(): [VariableAccess] unnamed_local_variable -# 1523| Type = [LValueReferenceType] int(&)[2] -# 1523| ValueCategory = prvalue(load) -# 1523| getArrayOffset(): [Literal] 0 -# 1523| Type = [IntType] int -# 1523| Value = [Literal] 0 -# 1523| ValueCategory = prvalue -# 1523| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 1523| Type = [IntPointerType] int * -# 1523| ValueCategory = prvalue -# 1523| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1523| Type = [ArrayType] int[2] -# 1523| ValueCategory = lvalue -# 1523| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1523| Type = [LValueReferenceType] int & -# 1523| ValueCategory = prvalue -# 1524| getStmt(2): [DeclStmt] declaration -# 1524| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x1 -# 1524| Type = [LValueReferenceType] int & -# 1524| getVariable().getInitializer(): [Initializer] initializer for x1 -# 1524| getExpr(): [ArrayExpr] access to array -# 1524| Type = [IntType] int +# 1518| ValueCategory = lvalue +# 1518| getLValue(): [VariableAccess] x1 +# 1518| Type = [IntType] int +# 1518| ValueCategory = lvalue +# 1518| getRValue(): [Literal] 3 +# 1518| Type = [IntType] int +# 1518| Value = [Literal] 3 +# 1518| ValueCategory = prvalue +# 1519| getStmt(2): [DeclStmt] declaration +# 1519| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rx1 +# 1519| Type = [LValueReferenceType] int & +# 1519| getVariable().getInitializer(): [Initializer] initializer for rx1 +# 1519| getExpr(): [VariableAccess] x1 +# 1519| Type = [IntType] int +# 1519| ValueCategory = lvalue +# 1519| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1519| Type = [LValueReferenceType] int & +# 1519| ValueCategory = prvalue +# 1520| getStmt(3): [DeclStmt] declaration +# 1520| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x +# 1520| Type = [IntType] int +# 1520| getVariable().getInitializer(): [Initializer] initializer for x +# 1520| getExpr(): [VariableAccess] x1 +# 1520| Type = [IntType] int +# 1520| ValueCategory = prvalue(load) +# 1523| getStmt(2): [BlockStmt] { ... } +# 1524| getStmt(0): [DeclStmt] declaration +# 1524| getDeclarationEntry(0): [VariableDeclarationEntry] definition of unnamed_local_variable +# 1524| Type = [LValueReferenceType] int(&)[2] +# 1524| getVariable().getInitializer(): [Initializer] initializer for unnamed_local_variable +# 1524| getExpr(): [VariableAccess] xs +# 1524| Type = [ArrayType] int[2] # 1524| ValueCategory = lvalue -# 1524| getArrayBase(): [VariableAccess] unnamed_local_variable -# 1524| Type = [LValueReferenceType] int(&)[2] -# 1524| ValueCategory = prvalue(load) -# 1524| getArrayOffset(): [Literal] 1 -# 1524| Type = [IntType] int -# 1524| Value = [Literal] 1 -# 1524| ValueCategory = prvalue -# 1524| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 1524| Type = [IntPointerType] int * -# 1524| ValueCategory = prvalue -# 1524| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1524| Type = [ArrayType] int[2] -# 1524| ValueCategory = lvalue # 1524| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1524| Type = [LValueReferenceType] int & +# 1524| Type = [LValueReferenceType] int(&)[2] # 1524| ValueCategory = prvalue -# 1525| getStmt(3): [ExprStmt] ExprStmt -# 1525| getExpr(): [AssignExpr] ... = ... -# 1525| Type = [IntType] int -# 1525| ValueCategory = lvalue -# 1525| getLValue(): [VariableAccess] x1 -# 1525| Type = [LValueReferenceType] int & -# 1525| ValueCategory = prvalue(load) -# 1525| getRValue(): [Literal] 3 -# 1525| Type = [IntType] int -# 1525| Value = [Literal] 3 -# 1525| ValueCategory = prvalue -# 1525| getLValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1525| Type = [IntType] int -# 1525| ValueCategory = lvalue -# 1526| getStmt(4): [DeclStmt] declaration -# 1526| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rx1 +# 1525| getStmt(1): [DeclStmt] declaration +# 1525| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x0 +# 1525| Type = [LValueReferenceType] int & +# 1525| getVariable().getInitializer(): [Initializer] initializer for x0 +# 1525| getExpr(): [ArrayExpr] access to array +# 1525| Type = [IntType] int +# 1525| ValueCategory = lvalue +# 1525| getArrayBase(): [VariableAccess] unnamed_local_variable +# 1525| Type = [LValueReferenceType] int(&)[2] +# 1525| ValueCategory = prvalue(load) +# 1525| getArrayOffset(): [Literal] 0 +# 1525| Type = [IntType] int +# 1525| Value = [Literal] 0 +# 1525| ValueCategory = prvalue +# 1525| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 1525| Type = [IntPointerType] int * +# 1525| ValueCategory = prvalue +# 1525| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1525| Type = [ArrayType] int[2] +# 1525| ValueCategory = lvalue +# 1525| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1525| Type = [LValueReferenceType] int & +# 1525| ValueCategory = prvalue +# 1526| getStmt(2): [DeclStmt] declaration +# 1526| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x1 # 1526| Type = [LValueReferenceType] int & -# 1526| getVariable().getInitializer(): [Initializer] initializer for rx1 -# 1526| getExpr(): [VariableAccess] x1 -# 1526| Type = [LValueReferenceType] int & -# 1526| ValueCategory = prvalue(load) +# 1526| getVariable().getInitializer(): [Initializer] initializer for x1 +# 1526| getExpr(): [ArrayExpr] access to array +# 1526| Type = [IntType] int +# 1526| ValueCategory = lvalue +# 1526| getArrayBase(): [VariableAccess] unnamed_local_variable +# 1526| Type = [LValueReferenceType] int(&)[2] +# 1526| ValueCategory = prvalue(load) +# 1526| getArrayOffset(): [Literal] 1 +# 1526| Type = [IntType] int +# 1526| Value = [Literal] 1 +# 1526| ValueCategory = prvalue +# 1526| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 1526| Type = [IntPointerType] int * +# 1526| ValueCategory = prvalue +# 1526| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1526| Type = [ArrayType] int[2] +# 1526| ValueCategory = lvalue # 1526| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) # 1526| Type = [LValueReferenceType] int & # 1526| ValueCategory = prvalue -# 1526| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1526| Type = [IntType] int -# 1526| ValueCategory = lvalue -# 1527| getStmt(5): [DeclStmt] declaration -# 1527| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x +# 1527| getStmt(3): [ExprStmt] ExprStmt +# 1527| getExpr(): [AssignExpr] ... = ... # 1527| Type = [IntType] int -# 1527| getVariable().getInitializer(): [Initializer] initializer for x -# 1527| getExpr(): [VariableAccess] x1 -# 1527| Type = [LValueReferenceType] int & -# 1527| ValueCategory = prvalue(load) -# 1527| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1527| Type = [IntType] int -# 1527| ValueCategory = prvalue(load) -# 1529| getStmt(3): [ReturnStmt] return ... -# 1531| [CopyAssignmentOperator] StructuredBindingDataMemberMemberStruct& StructuredBindingDataMemberMemberStruct::operator=(StructuredBindingDataMemberMemberStruct const&) -# 1531| : +# 1527| ValueCategory = lvalue +# 1527| getLValue(): [VariableAccess] x1 +# 1527| Type = [LValueReferenceType] int & +# 1527| ValueCategory = prvalue(load) +# 1527| getRValue(): [Literal] 3 +# 1527| Type = [IntType] int +# 1527| Value = [Literal] 3 +# 1527| ValueCategory = prvalue +# 1527| getLValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1527| Type = [IntType] int +# 1527| ValueCategory = lvalue +# 1528| getStmt(4): [DeclStmt] declaration +# 1528| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rx1 +# 1528| Type = [LValueReferenceType] int & +# 1528| getVariable().getInitializer(): [Initializer] initializer for rx1 +# 1528| getExpr(): [VariableAccess] x1 +# 1528| Type = [LValueReferenceType] int & +# 1528| ValueCategory = prvalue(load) +# 1528| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1528| Type = [LValueReferenceType] int & +# 1528| ValueCategory = prvalue +# 1528| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1528| Type = [IntType] int +# 1528| ValueCategory = lvalue +# 1529| getStmt(5): [DeclStmt] declaration +# 1529| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x +# 1529| Type = [IntType] int +# 1529| getVariable().getInitializer(): [Initializer] initializer for x +# 1529| getExpr(): [VariableAccess] x1 +# 1529| Type = [LValueReferenceType] int & +# 1529| ValueCategory = prvalue(load) +# 1529| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1529| Type = [IntType] int +# 1529| ValueCategory = prvalue(load) +# 1531| getStmt(3): [ReturnStmt] return ... +# 1533| [CopyAssignmentOperator] StructuredBindingDataMemberMemberStruct& StructuredBindingDataMemberMemberStruct::operator=(StructuredBindingDataMemberMemberStruct const&) +# 1533| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const StructuredBindingDataMemberMemberStruct & -# 1531| [MoveAssignmentOperator] StructuredBindingDataMemberMemberStruct& StructuredBindingDataMemberMemberStruct::operator=(StructuredBindingDataMemberMemberStruct&&) -# 1531| : +# 1533| [MoveAssignmentOperator] StructuredBindingDataMemberMemberStruct& StructuredBindingDataMemberMemberStruct::operator=(StructuredBindingDataMemberMemberStruct&&) +# 1533| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] StructuredBindingDataMemberMemberStruct && -# 1531| [Constructor] void StructuredBindingDataMemberMemberStruct::StructuredBindingDataMemberMemberStruct() -# 1531| : -# 1531| : -# 1531| getInitializer(0): [ConstructorFieldInit] constructor init of field x -# 1531| Type = [IntType] int -# 1531| ValueCategory = prvalue -# 1531| getEntryPoint(): [BlockStmt] { ... } -# 1531| getStmt(0): [ReturnStmt] return ... -# 1531| [CopyConstructor] void StructuredBindingDataMemberMemberStruct::StructuredBindingDataMemberMemberStruct(StructuredBindingDataMemberMemberStruct const&) -# 1531| : +# 1533| [Constructor] void StructuredBindingDataMemberMemberStruct::StructuredBindingDataMemberMemberStruct() +# 1533| : +# 1533| : +# 1533| getInitializer(0): [ConstructorFieldInit] constructor init of field x +# 1533| Type = [IntType] int +# 1533| ValueCategory = prvalue +# 1533| getEntryPoint(): [BlockStmt] { ... } +# 1533| getStmt(0): [ReturnStmt] return ... +# 1533| [CopyConstructor] void StructuredBindingDataMemberMemberStruct::StructuredBindingDataMemberMemberStruct(StructuredBindingDataMemberMemberStruct const&) +# 1533| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const StructuredBindingDataMemberMemberStruct & -# 1531| [MoveConstructor] void StructuredBindingDataMemberMemberStruct::StructuredBindingDataMemberMemberStruct(StructuredBindingDataMemberMemberStruct&&) -# 1531| : +# 1533| [MoveConstructor] void StructuredBindingDataMemberMemberStruct::StructuredBindingDataMemberMemberStruct(StructuredBindingDataMemberMemberStruct&&) +# 1533| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] StructuredBindingDataMemberMemberStruct && -# 1535| [CopyAssignmentOperator] StructuredBindingDataMemberStruct& StructuredBindingDataMemberStruct::operator=(StructuredBindingDataMemberStruct const&) -# 1535| : +# 1537| [CopyAssignmentOperator] StructuredBindingDataMemberStruct& StructuredBindingDataMemberStruct::operator=(StructuredBindingDataMemberStruct const&) +# 1537| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const StructuredBindingDataMemberStruct & -# 1535| [Constructor] void StructuredBindingDataMemberStruct::StructuredBindingDataMemberStruct() -# 1535| : -# 1535| : -# 1535| getInitializer(0): [ConstructorFieldInit] constructor init of field i -# 1535| Type = [IntType] int -# 1535| ValueCategory = prvalue -# 1535| getInitializer(1): [ConstructorFieldInit] constructor init of field d -# 1535| Type = [DoubleType] double -# 1535| ValueCategory = prvalue -# 1535| getInitializer(2): [ConstructorFieldInit] constructor init of field r -# 1535| Type = [LValueReferenceType] int & -# 1535| ValueCategory = prvalue -# 1535| getInitializer(3): [ConstructorFieldInit] constructor init of field p -# 1535| Type = [IntPointerType] int * -# 1535| ValueCategory = prvalue -# 1535| getInitializer(4): [ConstructorFieldInit] constructor init of field xs -# 1535| Type = [CTypedefType,NestedTypedefType] ArrayType -# 1535| ValueCategory = prvalue -# 1535| getInitializer(5): [ConstructorFieldInit] constructor init of field r_alt -# 1535| Type = [CTypedefType,NestedTypedefType] RefType -# 1535| ValueCategory = prvalue -# 1535| getInitializer(6): [ConstructorFieldInit] constructor init of field m -# 1535| Type = [Struct] StructuredBindingDataMemberMemberStruct -# 1535| ValueCategory = prvalue -# 1535| getExpr(): [ConstructorCall] call to StructuredBindingDataMemberMemberStruct -# 1535| Type = [VoidType] void -# 1535| ValueCategory = prvalue -# 1535| getEntryPoint(): [BlockStmt] { ... } -# 1535| getStmt(0): [ReturnStmt] return ... -# 1535| [CopyConstructor] void StructuredBindingDataMemberStruct::StructuredBindingDataMemberStruct(StructuredBindingDataMemberStruct const&) -# 1535| : +# 1537| [Constructor] void StructuredBindingDataMemberStruct::StructuredBindingDataMemberStruct() +# 1537| : +# 1537| : +# 1537| getInitializer(0): [ConstructorFieldInit] constructor init of field i +# 1537| Type = [IntType] int +# 1537| ValueCategory = prvalue +# 1537| getInitializer(1): [ConstructorFieldInit] constructor init of field d +# 1537| Type = [DoubleType] double +# 1537| ValueCategory = prvalue +# 1537| getInitializer(2): [ConstructorFieldInit] constructor init of field r +# 1537| Type = [LValueReferenceType] int & +# 1537| ValueCategory = prvalue +# 1537| getInitializer(3): [ConstructorFieldInit] constructor init of field p +# 1537| Type = [IntPointerType] int * +# 1537| ValueCategory = prvalue +# 1537| getInitializer(4): [ConstructorFieldInit] constructor init of field xs +# 1537| Type = [CTypedefType,NestedTypedefType] ArrayType +# 1537| ValueCategory = prvalue +# 1537| getInitializer(5): [ConstructorFieldInit] constructor init of field r_alt +# 1537| Type = [CTypedefType,NestedTypedefType] RefType +# 1537| ValueCategory = prvalue +# 1537| getInitializer(6): [ConstructorFieldInit] constructor init of field m +# 1537| Type = [Struct] StructuredBindingDataMemberMemberStruct +# 1537| ValueCategory = prvalue +# 1537| getExpr(): [ConstructorCall] call to StructuredBindingDataMemberMemberStruct +# 1537| Type = [VoidType] void +# 1537| ValueCategory = prvalue +# 1537| getEntryPoint(): [BlockStmt] { ... } +# 1537| getStmt(0): [ReturnStmt] return ... +# 1537| [CopyConstructor] void StructuredBindingDataMemberStruct::StructuredBindingDataMemberStruct(StructuredBindingDataMemberStruct const&) +# 1537| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const StructuredBindingDataMemberStruct & -# 1535| : -# 1535| getInitializer(0): [ConstructorFieldInit] constructor init of field i -# 1535| Type = [IntType] int -# 1535| ValueCategory = prvalue -# 1535| getExpr(): [ReferenceFieldAccess] i -# 1535| Type = [IntType] int -# 1535| ValueCategory = prvalue(load) -# 1535| getQualifier(): [VariableAccess] (unnamed parameter 0) -# 1535| Type = [LValueReferenceType] const StructuredBindingDataMemberStruct & -# 1535| ValueCategory = prvalue(load) -# 1535| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1535| Type = [SpecifiedType] const StructuredBindingDataMemberStruct -# 1535| ValueCategory = lvalue -# 1535| getInitializer(1): [ConstructorFieldInit] constructor init of field d -# 1535| Type = [DoubleType] double -# 1535| ValueCategory = prvalue -# 1535| getExpr(): [ReferenceFieldAccess] d -# 1535| Type = [DoubleType] double -# 1535| ValueCategory = prvalue(load) -# 1535| getQualifier(): [VariableAccess] (unnamed parameter 0) -# 1535| Type = [LValueReferenceType] const StructuredBindingDataMemberStruct & -# 1535| ValueCategory = prvalue(load) -# 1535| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1535| Type = [SpecifiedType] const StructuredBindingDataMemberStruct -# 1535| ValueCategory = lvalue -# 1535| getInitializer(2): [ConstructorFieldInit] constructor init of field b -# 1535| Type = [IntType] unsigned int -# 1535| ValueCategory = prvalue -# 1535| getExpr(): [ReferenceFieldAccess] b -# 1535| Type = [IntType] unsigned int -# 1535| ValueCategory = prvalue(load) -# 1535| getQualifier(): [VariableAccess] (unnamed parameter 0) -# 1535| Type = [LValueReferenceType] const StructuredBindingDataMemberStruct & -# 1535| ValueCategory = prvalue(load) -# 1535| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1535| Type = [SpecifiedType] const StructuredBindingDataMemberStruct -# 1535| ValueCategory = lvalue -# 1535| getInitializer(3): [ConstructorFieldInit] constructor init of field r -# 1535| Type = [LValueReferenceType] int & -# 1535| ValueCategory = prvalue -# 1535| getExpr(): [ReferenceFieldAccess] r -# 1535| Type = [LValueReferenceType] int & -# 1535| ValueCategory = prvalue(load) -# 1535| getQualifier(): [VariableAccess] (unnamed parameter 0) -# 1535| Type = [LValueReferenceType] const StructuredBindingDataMemberStruct & -# 1535| ValueCategory = prvalue(load) -# 1535| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1535| Type = [SpecifiedType] const StructuredBindingDataMemberStruct -# 1535| ValueCategory = lvalue -# 1535| getInitializer(4): [ConstructorFieldInit] constructor init of field p -# 1535| Type = [IntPointerType] int * -# 1535| ValueCategory = prvalue -# 1535| getExpr(): [ReferenceFieldAccess] p -# 1535| Type = [IntPointerType] int * -# 1535| ValueCategory = prvalue(load) -# 1535| getQualifier(): [VariableAccess] (unnamed parameter 0) -# 1535| Type = [LValueReferenceType] const StructuredBindingDataMemberStruct & -# 1535| ValueCategory = prvalue(load) -# 1535| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1535| Type = [SpecifiedType] const StructuredBindingDataMemberStruct -# 1535| ValueCategory = lvalue -# 1535| getInitializer(5): [ConstructorFieldInit] constructor init of field xs -# 1535| Type = [CTypedefType,NestedTypedefType] ArrayType -# 1535| ValueCategory = prvalue -# 1535| getExpr(): [ReferenceFieldAccess] xs -# 1535| Type = [CTypedefType,NestedTypedefType] ArrayType -# 1535| ValueCategory = prvalue(load) -# 1535| getQualifier(): [VariableAccess] (unnamed parameter 0) -# 1535| Type = [LValueReferenceType] const StructuredBindingDataMemberStruct & -# 1535| ValueCategory = prvalue(load) -# 1535| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1535| Type = [SpecifiedType] const StructuredBindingDataMemberStruct -# 1535| ValueCategory = lvalue -# 1535| getInitializer(6): [ConstructorFieldInit] constructor init of field r_alt -# 1535| Type = [CTypedefType,NestedTypedefType] RefType -# 1535| ValueCategory = prvalue -# 1535| getExpr(): [ReferenceFieldAccess] r_alt -# 1535| Type = [CTypedefType,NestedTypedefType] RefType -# 1535| ValueCategory = prvalue(load) -# 1535| getQualifier(): [VariableAccess] (unnamed parameter 0) -# 1535| Type = [LValueReferenceType] const StructuredBindingDataMemberStruct & -# 1535| ValueCategory = prvalue(load) -# 1535| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1535| Type = [SpecifiedType] const StructuredBindingDataMemberStruct -# 1535| ValueCategory = lvalue -# 1535| getInitializer(7): [ConstructorFieldInit] constructor init of field m -# 1535| Type = [Struct] StructuredBindingDataMemberMemberStruct -# 1535| ValueCategory = prvalue -# 1535| getExpr(): [ReferenceFieldAccess] m -# 1535| Type = [Struct] StructuredBindingDataMemberMemberStruct -# 1535| ValueCategory = prvalue(load) -# 1535| getQualifier(): [VariableAccess] (unnamed parameter 0) -# 1535| Type = [LValueReferenceType] const StructuredBindingDataMemberStruct & -# 1535| ValueCategory = prvalue(load) -# 1535| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1535| Type = [SpecifiedType] const StructuredBindingDataMemberStruct -# 1535| ValueCategory = lvalue -# 1535| getEntryPoint(): [BlockStmt] { ... } -# 1535| getStmt(0): [ReturnStmt] return ... -# 1535| [MoveConstructor] void StructuredBindingDataMemberStruct::StructuredBindingDataMemberStruct(StructuredBindingDataMemberStruct&&) -# 1535| : +# 1537| : +# 1537| getInitializer(0): [ConstructorFieldInit] constructor init of field i +# 1537| Type = [IntType] int +# 1537| ValueCategory = prvalue +# 1537| getExpr(): [ReferenceFieldAccess] i +# 1537| Type = [IntType] int +# 1537| ValueCategory = prvalue(load) +# 1537| getQualifier(): [VariableAccess] (unnamed parameter 0) +# 1537| Type = [LValueReferenceType] const StructuredBindingDataMemberStruct & +# 1537| ValueCategory = prvalue(load) +# 1537| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1537| Type = [SpecifiedType] const StructuredBindingDataMemberStruct +# 1537| ValueCategory = lvalue +# 1537| getInitializer(1): [ConstructorFieldInit] constructor init of field d +# 1537| Type = [DoubleType] double +# 1537| ValueCategory = prvalue +# 1537| getExpr(): [ReferenceFieldAccess] d +# 1537| Type = [DoubleType] double +# 1537| ValueCategory = prvalue(load) +# 1537| getQualifier(): [VariableAccess] (unnamed parameter 0) +# 1537| Type = [LValueReferenceType] const StructuredBindingDataMemberStruct & +# 1537| ValueCategory = prvalue(load) +# 1537| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1537| Type = [SpecifiedType] const StructuredBindingDataMemberStruct +# 1537| ValueCategory = lvalue +# 1537| getInitializer(2): [ConstructorFieldInit] constructor init of field b +# 1537| Type = [IntType] unsigned int +# 1537| ValueCategory = prvalue +# 1537| getExpr(): [ReferenceFieldAccess] b +# 1537| Type = [IntType] unsigned int +# 1537| ValueCategory = prvalue(load) +# 1537| getQualifier(): [VariableAccess] (unnamed parameter 0) +# 1537| Type = [LValueReferenceType] const StructuredBindingDataMemberStruct & +# 1537| ValueCategory = prvalue(load) +# 1537| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1537| Type = [SpecifiedType] const StructuredBindingDataMemberStruct +# 1537| ValueCategory = lvalue +# 1537| getInitializer(3): [ConstructorFieldInit] constructor init of field r +# 1537| Type = [LValueReferenceType] int & +# 1537| ValueCategory = prvalue +# 1537| getExpr(): [ReferenceFieldAccess] r +# 1537| Type = [LValueReferenceType] int & +# 1537| ValueCategory = prvalue(load) +# 1537| getQualifier(): [VariableAccess] (unnamed parameter 0) +# 1537| Type = [LValueReferenceType] const StructuredBindingDataMemberStruct & +# 1537| ValueCategory = prvalue(load) +# 1537| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1537| Type = [SpecifiedType] const StructuredBindingDataMemberStruct +# 1537| ValueCategory = lvalue +# 1537| getInitializer(4): [ConstructorFieldInit] constructor init of field p +# 1537| Type = [IntPointerType] int * +# 1537| ValueCategory = prvalue +# 1537| getExpr(): [ReferenceFieldAccess] p +# 1537| Type = [IntPointerType] int * +# 1537| ValueCategory = prvalue(load) +# 1537| getQualifier(): [VariableAccess] (unnamed parameter 0) +# 1537| Type = [LValueReferenceType] const StructuredBindingDataMemberStruct & +# 1537| ValueCategory = prvalue(load) +# 1537| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1537| Type = [SpecifiedType] const StructuredBindingDataMemberStruct +# 1537| ValueCategory = lvalue +# 1537| getInitializer(5): [ConstructorFieldInit] constructor init of field xs +# 1537| Type = [CTypedefType,NestedTypedefType] ArrayType +# 1537| ValueCategory = prvalue +# 1537| getExpr(): [ReferenceFieldAccess] xs +# 1537| Type = [CTypedefType,NestedTypedefType] ArrayType +# 1537| ValueCategory = prvalue(load) +# 1537| getQualifier(): [VariableAccess] (unnamed parameter 0) +# 1537| Type = [LValueReferenceType] const StructuredBindingDataMemberStruct & +# 1537| ValueCategory = prvalue(load) +# 1537| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1537| Type = [SpecifiedType] const StructuredBindingDataMemberStruct +# 1537| ValueCategory = lvalue +# 1537| getInitializer(6): [ConstructorFieldInit] constructor init of field r_alt +# 1537| Type = [CTypedefType,NestedTypedefType] RefType +# 1537| ValueCategory = prvalue +# 1537| getExpr(): [ReferenceFieldAccess] r_alt +# 1537| Type = [CTypedefType,NestedTypedefType] RefType +# 1537| ValueCategory = prvalue(load) +# 1537| getQualifier(): [VariableAccess] (unnamed parameter 0) +# 1537| Type = [LValueReferenceType] const StructuredBindingDataMemberStruct & +# 1537| ValueCategory = prvalue(load) +# 1537| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1537| Type = [SpecifiedType] const StructuredBindingDataMemberStruct +# 1537| ValueCategory = lvalue +# 1537| getInitializer(7): [ConstructorFieldInit] constructor init of field m +# 1537| Type = [Struct] StructuredBindingDataMemberMemberStruct +# 1537| ValueCategory = prvalue +# 1537| getExpr(): [ReferenceFieldAccess] m +# 1537| Type = [Struct] StructuredBindingDataMemberMemberStruct +# 1537| ValueCategory = prvalue(load) +# 1537| getQualifier(): [VariableAccess] (unnamed parameter 0) +# 1537| Type = [LValueReferenceType] const StructuredBindingDataMemberStruct & +# 1537| ValueCategory = prvalue(load) +# 1537| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1537| Type = [SpecifiedType] const StructuredBindingDataMemberStruct +# 1537| ValueCategory = lvalue +# 1537| getEntryPoint(): [BlockStmt] { ... } +# 1537| getStmt(0): [ReturnStmt] return ... +# 1537| [MoveConstructor] void StructuredBindingDataMemberStruct::StructuredBindingDataMemberStruct(StructuredBindingDataMemberStruct&&) +# 1537| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] StructuredBindingDataMemberStruct && -# 1548| [TopLevelFunction] void data_member_structured_binding() -# 1548| : -# 1548| getEntryPoint(): [BlockStmt] { ... } -# 1549| getStmt(0): [DeclStmt] declaration -# 1549| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s -# 1549| Type = [Struct] StructuredBindingDataMemberStruct -# 1549| getVariable().getInitializer(): [Initializer] initializer for s -# 1549| getExpr(): [ConstructorCall] call to StructuredBindingDataMemberStruct -# 1549| Type = [VoidType] void -# 1549| ValueCategory = prvalue -# 1551| getStmt(1): [BlockStmt] { ... } -# 1552| getStmt(0): [DeclStmt] declaration -# 1552| getDeclarationEntry(0): [VariableDeclarationEntry] definition of (unnamed local variable) -# 1552| Type = [Struct] StructuredBindingDataMemberStruct -# 1552| getVariable().getInitializer(): [Initializer] initializer for (unnamed local variable) -# 1552| getExpr(): [VariableAccess] s -# 1552| Type = [Struct] StructuredBindingDataMemberStruct -# 1552| ValueCategory = prvalue(load) -# 1552| getDeclarationEntry(1): [VariableDeclarationEntry] definition of i -# 1552| Type = [IntType] int +# 1550| [TopLevelFunction] void data_member_structured_binding() +# 1550| : +# 1550| getEntryPoint(): [BlockStmt] { ... } +# 1551| getStmt(0): [DeclStmt] declaration +# 1551| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s +# 1551| Type = [Struct] StructuredBindingDataMemberStruct +# 1551| getVariable().getInitializer(): [Initializer] initializer for s +# 1551| getExpr(): [ConstructorCall] call to StructuredBindingDataMemberStruct +# 1551| Type = [VoidType] void +# 1551| ValueCategory = prvalue +# 1553| getStmt(1): [BlockStmt] { ... } +# 1554| getStmt(0): [DeclStmt] declaration +# 1554| getDeclarationEntry(0): [VariableDeclarationEntry] definition of (unnamed local variable) +# 1554| Type = [Struct] StructuredBindingDataMemberStruct +# 1554| getVariable().getInitializer(): [Initializer] initializer for (unnamed local variable) +# 1554| getExpr(): [VariableAccess] s +# 1554| Type = [Struct] StructuredBindingDataMemberStruct +# 1554| ValueCategory = prvalue(load) +# 1554| getDeclarationEntry(1): [VariableDeclarationEntry] definition of i +# 1554| Type = [IntType] int #-----| getVariable().getInitializer(): [Initializer] initializer for i -# 1552| getExpr(): [ValueFieldAccess] i -# 1552| Type = [IntType] int -# 1552| ValueCategory = lvalue -# 1552| getQualifier(): [VariableAccess] (unnamed local variable) -# 1552| Type = [Struct] StructuredBindingDataMemberStruct -# 1552| ValueCategory = lvalue -# 1552| getDeclarationEntry(2): [VariableDeclarationEntry] definition of d -# 1552| Type = [DoubleType] double +# 1554| getExpr(): [ValueFieldAccess] i +# 1554| Type = [IntType] int +# 1554| ValueCategory = lvalue +# 1554| getQualifier(): [VariableAccess] (unnamed local variable) +# 1554| Type = [Struct] StructuredBindingDataMemberStruct +# 1554| ValueCategory = lvalue +# 1554| getDeclarationEntry(2): [VariableDeclarationEntry] definition of d +# 1554| Type = [DoubleType] double #-----| getVariable().getInitializer(): [Initializer] initializer for d -# 1552| getExpr(): [ValueFieldAccess] d -# 1552| Type = [DoubleType] double -# 1552| ValueCategory = lvalue -# 1552| getQualifier(): [VariableAccess] (unnamed local variable) -# 1552| Type = [Struct] StructuredBindingDataMemberStruct -# 1552| ValueCategory = lvalue -# 1552| getDeclarationEntry(3): [VariableDeclarationEntry] definition of b -# 1552| Type = [IntType] unsigned int +# 1554| getExpr(): [ValueFieldAccess] d +# 1554| Type = [DoubleType] double +# 1554| ValueCategory = lvalue +# 1554| getQualifier(): [VariableAccess] (unnamed local variable) +# 1554| Type = [Struct] StructuredBindingDataMemberStruct +# 1554| ValueCategory = lvalue +# 1554| getDeclarationEntry(3): [VariableDeclarationEntry] definition of b +# 1554| Type = [IntType] unsigned int #-----| getVariable().getInitializer(): [Initializer] initializer for b -# 1552| getExpr(): [ValueFieldAccess] b -# 1552| Type = [IntType] unsigned int -# 1552| ValueCategory = lvalue -# 1552| getQualifier(): [VariableAccess] (unnamed local variable) -# 1552| Type = [Struct] StructuredBindingDataMemberStruct -# 1552| ValueCategory = lvalue -# 1552| getDeclarationEntry(4): [VariableDeclarationEntry] definition of r -# 1552| Type = [IntType] int +# 1554| getExpr(): [ValueFieldAccess] b +# 1554| Type = [IntType] unsigned int +# 1554| ValueCategory = lvalue +# 1554| getQualifier(): [VariableAccess] (unnamed local variable) +# 1554| Type = [Struct] StructuredBindingDataMemberStruct +# 1554| ValueCategory = lvalue +# 1554| getDeclarationEntry(4): [VariableDeclarationEntry] definition of r +# 1554| Type = [IntType] int #-----| getVariable().getInitializer(): [Initializer] initializer for r -# 1552| getExpr(): [ValueFieldAccess] r -# 1552| Type = [LValueReferenceType] int & -# 1552| ValueCategory = prvalue(load) -# 1552| getQualifier(): [VariableAccess] (unnamed local variable) -# 1552| Type = [Struct] StructuredBindingDataMemberStruct -# 1552| ValueCategory = lvalue -# 1552| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1552| Type = [IntType] int -# 1552| ValueCategory = lvalue -# 1552| getDeclarationEntry(5): [VariableDeclarationEntry] definition of p -# 1552| Type = [IntPointerType] int * +# 1554| getExpr(): [ValueFieldAccess] r +# 1554| Type = [LValueReferenceType] int & +# 1554| ValueCategory = prvalue(load) +# 1554| getQualifier(): [VariableAccess] (unnamed local variable) +# 1554| Type = [Struct] StructuredBindingDataMemberStruct +# 1554| ValueCategory = lvalue +# 1554| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1554| Type = [IntType] int +# 1554| ValueCategory = lvalue +# 1554| getDeclarationEntry(5): [VariableDeclarationEntry] definition of p +# 1554| Type = [IntPointerType] int * #-----| getVariable().getInitializer(): [Initializer] initializer for p -# 1552| getExpr(): [ValueFieldAccess] p -# 1552| Type = [IntPointerType] int * -# 1552| ValueCategory = lvalue -# 1552| getQualifier(): [VariableAccess] (unnamed local variable) -# 1552| Type = [Struct] StructuredBindingDataMemberStruct -# 1552| ValueCategory = lvalue -# 1552| getDeclarationEntry(6): [VariableDeclarationEntry] definition of xs -# 1552| Type = [CTypedefType,NestedTypedefType] ArrayType +# 1554| getExpr(): [ValueFieldAccess] p +# 1554| Type = [IntPointerType] int * +# 1554| ValueCategory = lvalue +# 1554| getQualifier(): [VariableAccess] (unnamed local variable) +# 1554| Type = [Struct] StructuredBindingDataMemberStruct +# 1554| ValueCategory = lvalue +# 1554| getDeclarationEntry(6): [VariableDeclarationEntry] definition of xs +# 1554| Type = [CTypedefType,NestedTypedefType] ArrayType #-----| getVariable().getInitializer(): [Initializer] initializer for xs -# 1552| getExpr(): [ValueFieldAccess] xs -# 1552| Type = [CTypedefType,NestedTypedefType] ArrayType -# 1552| ValueCategory = lvalue -# 1552| getQualifier(): [VariableAccess] (unnamed local variable) -# 1552| Type = [Struct] StructuredBindingDataMemberStruct -# 1552| ValueCategory = lvalue -# 1552| getDeclarationEntry(7): [VariableDeclarationEntry] definition of r_alt -# 1552| Type = [IntType] int +# 1554| getExpr(): [ValueFieldAccess] xs +# 1554| Type = [CTypedefType,NestedTypedefType] ArrayType +# 1554| ValueCategory = lvalue +# 1554| getQualifier(): [VariableAccess] (unnamed local variable) +# 1554| Type = [Struct] StructuredBindingDataMemberStruct +# 1554| ValueCategory = lvalue +# 1554| getDeclarationEntry(7): [VariableDeclarationEntry] definition of r_alt +# 1554| Type = [IntType] int #-----| getVariable().getInitializer(): [Initializer] initializer for r_alt -# 1552| getExpr(): [ValueFieldAccess] r_alt -# 1552| Type = [CTypedefType,NestedTypedefType] RefType -# 1552| ValueCategory = prvalue(load) -# 1552| getQualifier(): [VariableAccess] (unnamed local variable) -# 1552| Type = [Struct] StructuredBindingDataMemberStruct -# 1552| ValueCategory = lvalue -# 1552| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1552| Type = [IntType] int -# 1552| ValueCategory = lvalue -# 1552| getDeclarationEntry(8): [VariableDeclarationEntry] definition of m -# 1552| Type = [Struct] StructuredBindingDataMemberMemberStruct +# 1554| getExpr(): [ValueFieldAccess] r_alt +# 1554| Type = [CTypedefType,NestedTypedefType] RefType +# 1554| ValueCategory = prvalue(load) +# 1554| getQualifier(): [VariableAccess] (unnamed local variable) +# 1554| Type = [Struct] StructuredBindingDataMemberStruct +# 1554| ValueCategory = lvalue +# 1554| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1554| Type = [IntType] int +# 1554| ValueCategory = lvalue +# 1554| getDeclarationEntry(8): [VariableDeclarationEntry] definition of m +# 1554| Type = [Struct] StructuredBindingDataMemberMemberStruct #-----| getVariable().getInitializer(): [Initializer] initializer for m -# 1552| getExpr(): [ValueFieldAccess] m -# 1552| Type = [Struct] StructuredBindingDataMemberMemberStruct -# 1552| ValueCategory = lvalue -# 1552| getQualifier(): [VariableAccess] (unnamed local variable) -# 1552| Type = [Struct] StructuredBindingDataMemberStruct -# 1552| ValueCategory = lvalue -# 1553| getStmt(1): [ExprStmt] ExprStmt -# 1553| getExpr(): [AssignExpr] ... = ... -# 1553| Type = [DoubleType] double -# 1553| ValueCategory = lvalue -# 1553| getLValue(): [VariableAccess] d -# 1553| Type = [DoubleType] double -# 1553| ValueCategory = lvalue -# 1553| getRValue(): [Literal] 4.0 -# 1553| Type = [DoubleType] double -# 1553| Value = [Literal] 4.0 -# 1553| ValueCategory = prvalue -# 1554| getStmt(2): [DeclStmt] declaration -# 1554| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rd -# 1554| Type = [LValueReferenceType] double & -# 1554| getVariable().getInitializer(): [Initializer] initializer for rd -# 1554| getExpr(): [VariableAccess] d -# 1554| Type = [DoubleType] double +# 1554| getExpr(): [ValueFieldAccess] m +# 1554| Type = [Struct] StructuredBindingDataMemberMemberStruct # 1554| ValueCategory = lvalue -# 1554| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1554| Type = [LValueReferenceType] double & -# 1554| ValueCategory = prvalue -# 1555| getStmt(3): [DeclStmt] declaration -# 1555| getDeclarationEntry(0): [VariableDeclarationEntry] definition of v -# 1555| Type = [IntType] int -# 1555| getVariable().getInitializer(): [Initializer] initializer for v -# 1555| getExpr(): [VariableAccess] i -# 1555| Type = [IntType] int -# 1555| ValueCategory = prvalue(load) -# 1556| getStmt(4): [ExprStmt] ExprStmt -# 1556| getExpr(): [AssignExpr] ... = ... -# 1556| Type = [IntType] int -# 1556| ValueCategory = lvalue -# 1556| getLValue(): [VariableAccess] r -# 1556| Type = [IntType] int -# 1556| ValueCategory = lvalue -# 1556| getRValue(): [Literal] 5 -# 1556| Type = [IntType] int -# 1556| Value = [Literal] 5 -# 1556| ValueCategory = prvalue -# 1557| getStmt(5): [ExprStmt] ExprStmt -# 1557| getExpr(): [AssignExpr] ... = ... +# 1554| getQualifier(): [VariableAccess] (unnamed local variable) +# 1554| Type = [Struct] StructuredBindingDataMemberStruct +# 1554| ValueCategory = lvalue +# 1555| getStmt(1): [ExprStmt] ExprStmt +# 1555| getExpr(): [AssignExpr] ... = ... +# 1555| Type = [DoubleType] double +# 1555| ValueCategory = lvalue +# 1555| getLValue(): [VariableAccess] d +# 1555| Type = [DoubleType] double +# 1555| ValueCategory = lvalue +# 1555| getRValue(): [Literal] 4.0 +# 1555| Type = [DoubleType] double +# 1555| Value = [Literal] 4.0 +# 1555| ValueCategory = prvalue +# 1556| getStmt(2): [DeclStmt] declaration +# 1556| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rd +# 1556| Type = [LValueReferenceType] double & +# 1556| getVariable().getInitializer(): [Initializer] initializer for rd +# 1556| getExpr(): [VariableAccess] d +# 1556| Type = [DoubleType] double +# 1556| ValueCategory = lvalue +# 1556| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1556| Type = [LValueReferenceType] double & +# 1556| ValueCategory = prvalue +# 1557| getStmt(3): [DeclStmt] declaration +# 1557| getDeclarationEntry(0): [VariableDeclarationEntry] definition of v # 1557| Type = [IntType] int -# 1557| ValueCategory = lvalue -# 1557| getLValue(): [PointerDereferenceExpr] * ... -# 1557| Type = [IntType] int -# 1557| ValueCategory = lvalue -# 1557| getOperand(): [VariableAccess] p -# 1557| Type = [IntPointerType] int * +# 1557| getVariable().getInitializer(): [Initializer] initializer for v +# 1557| getExpr(): [VariableAccess] i +# 1557| Type = [IntType] int # 1557| ValueCategory = prvalue(load) -# 1557| getRValue(): [Literal] 6 -# 1557| Type = [IntType] int -# 1557| Value = [Literal] 6 -# 1557| ValueCategory = prvalue -# 1558| getStmt(6): [DeclStmt] declaration -# 1558| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rr -# 1558| Type = [LValueReferenceType] int & -# 1558| getVariable().getInitializer(): [Initializer] initializer for rr -# 1558| getExpr(): [VariableAccess] r -# 1558| Type = [IntType] int -# 1558| ValueCategory = lvalue -# 1558| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1558| Type = [LValueReferenceType] int & -# 1558| ValueCategory = prvalue -# 1559| getStmt(7): [DeclStmt] declaration -# 1559| getDeclarationEntry(0): [VariableDeclarationEntry] definition of pr -# 1559| Type = [IntPointerType] int * -# 1559| getVariable().getInitializer(): [Initializer] initializer for pr -# 1559| getExpr(): [AddressOfExpr] & ... +# 1558| getStmt(4): [ExprStmt] ExprStmt +# 1558| getExpr(): [AssignExpr] ... = ... +# 1558| Type = [IntType] int +# 1558| ValueCategory = lvalue +# 1558| getLValue(): [VariableAccess] r +# 1558| Type = [IntType] int +# 1558| ValueCategory = lvalue +# 1558| getRValue(): [Literal] 5 +# 1558| Type = [IntType] int +# 1558| Value = [Literal] 5 +# 1558| ValueCategory = prvalue +# 1559| getStmt(5): [ExprStmt] ExprStmt +# 1559| getExpr(): [AssignExpr] ... = ... +# 1559| Type = [IntType] int +# 1559| ValueCategory = lvalue +# 1559| getLValue(): [PointerDereferenceExpr] * ... +# 1559| Type = [IntType] int +# 1559| ValueCategory = lvalue +# 1559| getOperand(): [VariableAccess] p # 1559| Type = [IntPointerType] int * -# 1559| ValueCategory = prvalue -# 1559| getOperand(): [VariableAccess] r -# 1559| Type = [IntType] int -# 1559| ValueCategory = lvalue -# 1560| getStmt(8): [DeclStmt] declaration -# 1560| getDeclarationEntry(0): [VariableDeclarationEntry] definition of w -# 1560| Type = [IntType] int -# 1560| getVariable().getInitializer(): [Initializer] initializer for w +# 1559| ValueCategory = prvalue(load) +# 1559| getRValue(): [Literal] 6 +# 1559| Type = [IntType] int +# 1559| Value = [Literal] 6 +# 1559| ValueCategory = prvalue +# 1560| getStmt(6): [DeclStmt] declaration +# 1560| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rr +# 1560| Type = [LValueReferenceType] int & +# 1560| getVariable().getInitializer(): [Initializer] initializer for rr # 1560| getExpr(): [VariableAccess] r # 1560| Type = [IntType] int -# 1560| ValueCategory = prvalue(load) -# 1563| getStmt(2): [BlockStmt] { ... } -# 1564| getStmt(0): [DeclStmt] declaration -# 1564| getDeclarationEntry(0): [VariableDeclarationEntry] definition of unnamed_local_variable -# 1564| Type = [Struct] StructuredBindingDataMemberStruct -# 1564| getVariable().getInitializer(): [Initializer] initializer for unnamed_local_variable -# 1564| getExpr(): [VariableAccess] s -# 1564| Type = [Struct] StructuredBindingDataMemberStruct -# 1564| ValueCategory = prvalue(load) -# 1565| getStmt(1): [DeclStmt] declaration -# 1565| getDeclarationEntry(0): [VariableDeclarationEntry] definition of i -# 1565| Type = [LValueReferenceType] int & -# 1565| getVariable().getInitializer(): [Initializer] initializer for i -# 1565| getExpr(): [ValueFieldAccess] i -# 1565| Type = [IntType] int -# 1565| ValueCategory = lvalue -# 1565| getQualifier(): [VariableAccess] unnamed_local_variable -# 1565| Type = [Struct] StructuredBindingDataMemberStruct -# 1565| ValueCategory = lvalue -# 1565| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1565| Type = [LValueReferenceType] int & -# 1565| ValueCategory = prvalue -# 1566| getStmt(2): [DeclStmt] declaration -# 1566| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d -# 1566| Type = [LValueReferenceType] double & -# 1566| getVariable().getInitializer(): [Initializer] initializer for d -# 1566| getExpr(): [ValueFieldAccess] d -# 1566| Type = [DoubleType] double -# 1566| ValueCategory = lvalue -# 1566| getQualifier(): [VariableAccess] unnamed_local_variable -# 1566| Type = [Struct] StructuredBindingDataMemberStruct -# 1566| ValueCategory = lvalue -# 1566| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1566| Type = [LValueReferenceType] double & -# 1566| ValueCategory = prvalue -# 1568| getStmt(3): [DeclStmt] declaration -# 1568| getDeclarationEntry(0): [VariableDeclarationEntry] definition of r -# 1568| Type = [LValueReferenceType] int & -# 1568| getVariable().getInitializer(): [Initializer] initializer for r -# 1568| getExpr(): [ValueFieldAccess] r -# 1568| Type = [LValueReferenceType] int & -# 1568| ValueCategory = prvalue(load) +# 1560| ValueCategory = lvalue +# 1560| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1560| Type = [LValueReferenceType] int & +# 1560| ValueCategory = prvalue +# 1561| getStmt(7): [DeclStmt] declaration +# 1561| getDeclarationEntry(0): [VariableDeclarationEntry] definition of pr +# 1561| Type = [IntPointerType] int * +# 1561| getVariable().getInitializer(): [Initializer] initializer for pr +# 1561| getExpr(): [AddressOfExpr] & ... +# 1561| Type = [IntPointerType] int * +# 1561| ValueCategory = prvalue +# 1561| getOperand(): [VariableAccess] r +# 1561| Type = [IntType] int +# 1561| ValueCategory = lvalue +# 1562| getStmt(8): [DeclStmt] declaration +# 1562| getDeclarationEntry(0): [VariableDeclarationEntry] definition of w +# 1562| Type = [IntType] int +# 1562| getVariable().getInitializer(): [Initializer] initializer for w +# 1562| getExpr(): [VariableAccess] r +# 1562| Type = [IntType] int +# 1562| ValueCategory = prvalue(load) +# 1565| getStmt(2): [BlockStmt] { ... } +# 1566| getStmt(0): [DeclStmt] declaration +# 1566| getDeclarationEntry(0): [VariableDeclarationEntry] definition of unnamed_local_variable +# 1566| Type = [Struct] StructuredBindingDataMemberStruct +# 1566| getVariable().getInitializer(): [Initializer] initializer for unnamed_local_variable +# 1566| getExpr(): [VariableAccess] s +# 1566| Type = [Struct] StructuredBindingDataMemberStruct +# 1566| ValueCategory = prvalue(load) +# 1567| getStmt(1): [DeclStmt] declaration +# 1567| getDeclarationEntry(0): [VariableDeclarationEntry] definition of i +# 1567| Type = [LValueReferenceType] int & +# 1567| getVariable().getInitializer(): [Initializer] initializer for i +# 1567| getExpr(): [ValueFieldAccess] i +# 1567| Type = [IntType] int +# 1567| ValueCategory = lvalue +# 1567| getQualifier(): [VariableAccess] unnamed_local_variable +# 1567| Type = [Struct] StructuredBindingDataMemberStruct +# 1567| ValueCategory = lvalue +# 1567| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1567| Type = [LValueReferenceType] int & +# 1567| ValueCategory = prvalue +# 1568| getStmt(2): [DeclStmt] declaration +# 1568| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d +# 1568| Type = [LValueReferenceType] double & +# 1568| getVariable().getInitializer(): [Initializer] initializer for d +# 1568| getExpr(): [ValueFieldAccess] d +# 1568| Type = [DoubleType] double +# 1568| ValueCategory = lvalue # 1568| getQualifier(): [VariableAccess] unnamed_local_variable # 1568| Type = [Struct] StructuredBindingDataMemberStruct # 1568| ValueCategory = lvalue # 1568| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1568| Type = [LValueReferenceType] int & +# 1568| Type = [LValueReferenceType] double & # 1568| ValueCategory = prvalue -# 1568| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1568| Type = [IntType] int -# 1568| ValueCategory = lvalue -# 1569| getStmt(4): [DeclStmt] declaration -# 1569| getDeclarationEntry(0): [VariableDeclarationEntry] definition of p -# 1569| Type = [LValueReferenceType] int *& -# 1569| getVariable().getInitializer(): [Initializer] initializer for p -# 1569| getExpr(): [ValueFieldAccess] p -# 1569| Type = [IntPointerType] int * -# 1569| ValueCategory = lvalue -# 1569| getQualifier(): [VariableAccess] unnamed_local_variable -# 1569| Type = [Struct] StructuredBindingDataMemberStruct -# 1569| ValueCategory = lvalue -# 1569| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1569| Type = [LValueReferenceType] int *& -# 1569| ValueCategory = prvalue -# 1570| getStmt(5): [ExprStmt] ExprStmt -# 1570| getExpr(): [AssignExpr] ... = ... -# 1570| Type = [DoubleType] double -# 1570| ValueCategory = lvalue -# 1570| getLValue(): [VariableAccess] d -# 1570| Type = [LValueReferenceType] double & -# 1570| ValueCategory = prvalue(load) -# 1570| getRValue(): [Literal] 4.0 -# 1570| Type = [DoubleType] double -# 1570| Value = [Literal] 4.0 -# 1570| ValueCategory = prvalue -# 1570| getLValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1570| Type = [DoubleType] double -# 1570| ValueCategory = lvalue -# 1571| getStmt(6): [DeclStmt] declaration -# 1571| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rd -# 1571| Type = [LValueReferenceType] double & -# 1571| getVariable().getInitializer(): [Initializer] initializer for rd -# 1571| getExpr(): [VariableAccess] d -# 1571| Type = [LValueReferenceType] double & -# 1571| ValueCategory = prvalue(load) +# 1570| getStmt(3): [DeclStmt] declaration +# 1570| getDeclarationEntry(0): [VariableDeclarationEntry] definition of r +# 1570| Type = [LValueReferenceType] int & +# 1570| getVariable().getInitializer(): [Initializer] initializer for r +# 1570| getExpr(): [ValueFieldAccess] r +# 1570| Type = [LValueReferenceType] int & +# 1570| ValueCategory = prvalue(load) +# 1570| getQualifier(): [VariableAccess] unnamed_local_variable +# 1570| Type = [Struct] StructuredBindingDataMemberStruct +# 1570| ValueCategory = lvalue +# 1570| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1570| Type = [LValueReferenceType] int & +# 1570| ValueCategory = prvalue +# 1570| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1570| Type = [IntType] int +# 1570| ValueCategory = lvalue +# 1571| getStmt(4): [DeclStmt] declaration +# 1571| getDeclarationEntry(0): [VariableDeclarationEntry] definition of p +# 1571| Type = [LValueReferenceType] int *& +# 1571| getVariable().getInitializer(): [Initializer] initializer for p +# 1571| getExpr(): [ValueFieldAccess] p +# 1571| Type = [IntPointerType] int * +# 1571| ValueCategory = lvalue +# 1571| getQualifier(): [VariableAccess] unnamed_local_variable +# 1571| Type = [Struct] StructuredBindingDataMemberStruct +# 1571| ValueCategory = lvalue # 1571| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1571| Type = [LValueReferenceType] double & +# 1571| Type = [LValueReferenceType] int *& # 1571| ValueCategory = prvalue -# 1571| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1571| Type = [DoubleType] double -# 1571| ValueCategory = lvalue -# 1572| getStmt(7): [DeclStmt] declaration -# 1572| getDeclarationEntry(0): [VariableDeclarationEntry] definition of v -# 1572| Type = [IntType] int -# 1572| getVariable().getInitializer(): [Initializer] initializer for v -# 1572| getExpr(): [VariableAccess] i -# 1572| Type = [LValueReferenceType] int & -# 1572| ValueCategory = prvalue(load) -# 1572| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1572| Type = [IntType] int -# 1572| ValueCategory = prvalue(load) -# 1573| getStmt(8): [ExprStmt] ExprStmt -# 1573| getExpr(): [AssignExpr] ... = ... -# 1573| Type = [IntType] int -# 1573| ValueCategory = lvalue -# 1573| getLValue(): [VariableAccess] r -# 1573| Type = [LValueReferenceType] int & -# 1573| ValueCategory = prvalue(load) -# 1573| getRValue(): [Literal] 5 -# 1573| Type = [IntType] int -# 1573| Value = [Literal] 5 -# 1573| ValueCategory = prvalue -# 1573| getLValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1573| Type = [IntType] int -# 1573| ValueCategory = lvalue -# 1574| getStmt(9): [ExprStmt] ExprStmt -# 1574| getExpr(): [AssignExpr] ... = ... +# 1572| getStmt(5): [ExprStmt] ExprStmt +# 1572| getExpr(): [AssignExpr] ... = ... +# 1572| Type = [DoubleType] double +# 1572| ValueCategory = lvalue +# 1572| getLValue(): [VariableAccess] d +# 1572| Type = [LValueReferenceType] double & +# 1572| ValueCategory = prvalue(load) +# 1572| getRValue(): [Literal] 4.0 +# 1572| Type = [DoubleType] double +# 1572| Value = [Literal] 4.0 +# 1572| ValueCategory = prvalue +# 1572| getLValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1572| Type = [DoubleType] double +# 1572| ValueCategory = lvalue +# 1573| getStmt(6): [DeclStmt] declaration +# 1573| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rd +# 1573| Type = [LValueReferenceType] double & +# 1573| getVariable().getInitializer(): [Initializer] initializer for rd +# 1573| getExpr(): [VariableAccess] d +# 1573| Type = [LValueReferenceType] double & +# 1573| ValueCategory = prvalue(load) +# 1573| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1573| Type = [LValueReferenceType] double & +# 1573| ValueCategory = prvalue +# 1573| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1573| Type = [DoubleType] double +# 1573| ValueCategory = lvalue +# 1574| getStmt(7): [DeclStmt] declaration +# 1574| getDeclarationEntry(0): [VariableDeclarationEntry] definition of v # 1574| Type = [IntType] int -# 1574| ValueCategory = lvalue -# 1574| getLValue(): [PointerDereferenceExpr] * ... -# 1574| Type = [IntType] int -# 1574| ValueCategory = lvalue -# 1574| getOperand(): [VariableAccess] p -# 1574| Type = [LValueReferenceType] int *& +# 1574| getVariable().getInitializer(): [Initializer] initializer for v +# 1574| getExpr(): [VariableAccess] i +# 1574| Type = [LValueReferenceType] int & # 1574| ValueCategory = prvalue(load) -# 1574| getOperand().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1574| Type = [IntPointerType] int * +# 1574| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1574| Type = [IntType] int # 1574| ValueCategory = prvalue(load) -# 1574| getRValue(): [Literal] 6 -# 1574| Type = [IntType] int -# 1574| Value = [Literal] 6 -# 1574| ValueCategory = prvalue -# 1575| getStmt(10): [DeclStmt] declaration -# 1575| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rr -# 1575| Type = [LValueReferenceType] int & -# 1575| getVariable().getInitializer(): [Initializer] initializer for rr -# 1575| getExpr(): [VariableAccess] r -# 1575| Type = [LValueReferenceType] int & -# 1575| ValueCategory = prvalue(load) -# 1575| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1575| Type = [LValueReferenceType] int & -# 1575| ValueCategory = prvalue -# 1575| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1575| Type = [IntType] int -# 1575| ValueCategory = lvalue -# 1576| getStmt(11): [DeclStmt] declaration -# 1576| getDeclarationEntry(0): [VariableDeclarationEntry] definition of pr -# 1576| Type = [IntPointerType] int * -# 1576| getVariable().getInitializer(): [Initializer] initializer for pr -# 1576| getExpr(): [AddressOfExpr] & ... +# 1575| getStmt(8): [ExprStmt] ExprStmt +# 1575| getExpr(): [AssignExpr] ... = ... +# 1575| Type = [IntType] int +# 1575| ValueCategory = lvalue +# 1575| getLValue(): [VariableAccess] r +# 1575| Type = [LValueReferenceType] int & +# 1575| ValueCategory = prvalue(load) +# 1575| getRValue(): [Literal] 5 +# 1575| Type = [IntType] int +# 1575| Value = [Literal] 5 +# 1575| ValueCategory = prvalue +# 1575| getLValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1575| Type = [IntType] int +# 1575| ValueCategory = lvalue +# 1576| getStmt(9): [ExprStmt] ExprStmt +# 1576| getExpr(): [AssignExpr] ... = ... +# 1576| Type = [IntType] int +# 1576| ValueCategory = lvalue +# 1576| getLValue(): [PointerDereferenceExpr] * ... +# 1576| Type = [IntType] int +# 1576| ValueCategory = lvalue +# 1576| getOperand(): [VariableAccess] p +# 1576| Type = [LValueReferenceType] int *& +# 1576| ValueCategory = prvalue(load) +# 1576| getOperand().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) # 1576| Type = [IntPointerType] int * -# 1576| ValueCategory = prvalue -# 1576| getOperand(): [VariableAccess] r -# 1576| Type = [LValueReferenceType] int & -# 1576| ValueCategory = prvalue(load) -# 1576| getOperand().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1576| Type = [IntType] int -# 1576| ValueCategory = lvalue -# 1577| getStmt(12): [DeclStmt] declaration -# 1577| getDeclarationEntry(0): [VariableDeclarationEntry] definition of w -# 1577| Type = [IntType] int -# 1577| getVariable().getInitializer(): [Initializer] initializer for w +# 1576| ValueCategory = prvalue(load) +# 1576| getRValue(): [Literal] 6 +# 1576| Type = [IntType] int +# 1576| Value = [Literal] 6 +# 1576| ValueCategory = prvalue +# 1577| getStmt(10): [DeclStmt] declaration +# 1577| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rr +# 1577| Type = [LValueReferenceType] int & +# 1577| getVariable().getInitializer(): [Initializer] initializer for rr # 1577| getExpr(): [VariableAccess] r # 1577| Type = [LValueReferenceType] int & # 1577| ValueCategory = prvalue(load) -# 1577| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1577| Type = [IntType] int -# 1577| ValueCategory = prvalue(load) -# 1579| getStmt(3): [ReturnStmt] return ... -# 1588| [CopyAssignmentOperator] StructuredBindingTupleRefGet& StructuredBindingTupleRefGet::operator=(StructuredBindingTupleRefGet const&) -# 1588| : +# 1577| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1577| Type = [LValueReferenceType] int & +# 1577| ValueCategory = prvalue +# 1577| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1577| Type = [IntType] int +# 1577| ValueCategory = lvalue +# 1578| getStmt(11): [DeclStmt] declaration +# 1578| getDeclarationEntry(0): [VariableDeclarationEntry] definition of pr +# 1578| Type = [IntPointerType] int * +# 1578| getVariable().getInitializer(): [Initializer] initializer for pr +# 1578| getExpr(): [AddressOfExpr] & ... +# 1578| Type = [IntPointerType] int * +# 1578| ValueCategory = prvalue +# 1578| getOperand(): [VariableAccess] r +# 1578| Type = [LValueReferenceType] int & +# 1578| ValueCategory = prvalue(load) +# 1578| getOperand().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1578| Type = [IntType] int +# 1578| ValueCategory = lvalue +# 1579| getStmt(12): [DeclStmt] declaration +# 1579| getDeclarationEntry(0): [VariableDeclarationEntry] definition of w +# 1579| Type = [IntType] int +# 1579| getVariable().getInitializer(): [Initializer] initializer for w +# 1579| getExpr(): [VariableAccess] r +# 1579| Type = [LValueReferenceType] int & +# 1579| ValueCategory = prvalue(load) +# 1579| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1579| Type = [IntType] int +# 1579| ValueCategory = prvalue(load) +# 1581| getStmt(3): [ReturnStmt] return ... +# 1590| [CopyAssignmentOperator] StructuredBindingTupleRefGet& StructuredBindingTupleRefGet::operator=(StructuredBindingTupleRefGet const&) +# 1590| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const StructuredBindingTupleRefGet & -# 1588| [Constructor] void StructuredBindingTupleRefGet::StructuredBindingTupleRefGet() -# 1588| : -# 1588| : -# 1588| getInitializer(0): [ConstructorFieldInit] constructor init of field i -# 1588| Type = [IntType] int -# 1588| ValueCategory = prvalue -# 1588| getInitializer(1): [ConstructorFieldInit] constructor init of field d -# 1588| Type = [DoubleType] double -# 1588| ValueCategory = prvalue -# 1588| getInitializer(2): [ConstructorFieldInit] constructor init of field r -# 1588| Type = [LValueReferenceType] int & -# 1588| ValueCategory = prvalue -# 1588| getEntryPoint(): [BlockStmt] { ... } -# 1588| getStmt(0): [ReturnStmt] return ... -# 1588| [CopyConstructor] void StructuredBindingTupleRefGet::StructuredBindingTupleRefGet(StructuredBindingTupleRefGet const&) -# 1588| : +# 1590| [Constructor] void StructuredBindingTupleRefGet::StructuredBindingTupleRefGet() +# 1590| : +# 1590| : +# 1590| getInitializer(0): [ConstructorFieldInit] constructor init of field i +# 1590| Type = [IntType] int +# 1590| ValueCategory = prvalue +# 1590| getInitializer(1): [ConstructorFieldInit] constructor init of field d +# 1590| Type = [DoubleType] double +# 1590| ValueCategory = prvalue +# 1590| getInitializer(2): [ConstructorFieldInit] constructor init of field r +# 1590| Type = [LValueReferenceType] int & +# 1590| ValueCategory = prvalue +# 1590| getEntryPoint(): [BlockStmt] { ... } +# 1590| getStmt(0): [ReturnStmt] return ... +# 1590| [CopyConstructor] void StructuredBindingTupleRefGet::StructuredBindingTupleRefGet(StructuredBindingTupleRefGet const&) +# 1590| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const StructuredBindingTupleRefGet & -# 1588| : -# 1588| getInitializer(0): [ConstructorFieldInit] constructor init of field i -# 1588| Type = [IntType] int -# 1588| ValueCategory = prvalue -# 1588| getExpr(): [ReferenceFieldAccess] i -# 1588| Type = [IntType] int -# 1588| ValueCategory = prvalue(load) -# 1588| getQualifier(): [VariableAccess] (unnamed parameter 0) -# 1588| Type = [LValueReferenceType] const StructuredBindingTupleRefGet & -# 1588| ValueCategory = prvalue(load) -# 1588| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1588| Type = [SpecifiedType] const StructuredBindingTupleRefGet -# 1588| ValueCategory = lvalue -# 1588| getInitializer(1): [ConstructorFieldInit] constructor init of field d -# 1588| Type = [DoubleType] double -# 1588| ValueCategory = prvalue -# 1588| getExpr(): [ReferenceFieldAccess] d -# 1588| Type = [DoubleType] double -# 1588| ValueCategory = prvalue(load) -# 1588| getQualifier(): [VariableAccess] (unnamed parameter 0) -# 1588| Type = [LValueReferenceType] const StructuredBindingTupleRefGet & -# 1588| ValueCategory = prvalue(load) -# 1588| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1588| Type = [SpecifiedType] const StructuredBindingTupleRefGet -# 1588| ValueCategory = lvalue -# 1588| getInitializer(2): [ConstructorFieldInit] constructor init of field r -# 1588| Type = [LValueReferenceType] int & -# 1588| ValueCategory = prvalue -# 1588| getExpr(): [ReferenceFieldAccess] r -# 1588| Type = [LValueReferenceType] int & -# 1588| ValueCategory = prvalue(load) -# 1588| getQualifier(): [VariableAccess] (unnamed parameter 0) -# 1588| Type = [LValueReferenceType] const StructuredBindingTupleRefGet & -# 1588| ValueCategory = prvalue(load) -# 1588| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1588| Type = [SpecifiedType] const StructuredBindingTupleRefGet -# 1588| ValueCategory = lvalue -# 1588| getEntryPoint(): [BlockStmt] { ... } -# 1588| getStmt(0): [ReturnStmt] return ... -# 1588| [MoveConstructor] void StructuredBindingTupleRefGet::StructuredBindingTupleRefGet(StructuredBindingTupleRefGet&&) -# 1588| : +# 1590| : +# 1590| getInitializer(0): [ConstructorFieldInit] constructor init of field i +# 1590| Type = [IntType] int +# 1590| ValueCategory = prvalue +# 1590| getExpr(): [ReferenceFieldAccess] i +# 1590| Type = [IntType] int +# 1590| ValueCategory = prvalue(load) +# 1590| getQualifier(): [VariableAccess] (unnamed parameter 0) +# 1590| Type = [LValueReferenceType] const StructuredBindingTupleRefGet & +# 1590| ValueCategory = prvalue(load) +# 1590| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1590| Type = [SpecifiedType] const StructuredBindingTupleRefGet +# 1590| ValueCategory = lvalue +# 1590| getInitializer(1): [ConstructorFieldInit] constructor init of field d +# 1590| Type = [DoubleType] double +# 1590| ValueCategory = prvalue +# 1590| getExpr(): [ReferenceFieldAccess] d +# 1590| Type = [DoubleType] double +# 1590| ValueCategory = prvalue(load) +# 1590| getQualifier(): [VariableAccess] (unnamed parameter 0) +# 1590| Type = [LValueReferenceType] const StructuredBindingTupleRefGet & +# 1590| ValueCategory = prvalue(load) +# 1590| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1590| Type = [SpecifiedType] const StructuredBindingTupleRefGet +# 1590| ValueCategory = lvalue +# 1590| getInitializer(2): [ConstructorFieldInit] constructor init of field r +# 1590| Type = [LValueReferenceType] int & +# 1590| ValueCategory = prvalue +# 1590| getExpr(): [ReferenceFieldAccess] r +# 1590| Type = [LValueReferenceType] int & +# 1590| ValueCategory = prvalue(load) +# 1590| getQualifier(): [VariableAccess] (unnamed parameter 0) +# 1590| Type = [LValueReferenceType] const StructuredBindingTupleRefGet & +# 1590| ValueCategory = prvalue(load) +# 1590| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1590| Type = [SpecifiedType] const StructuredBindingTupleRefGet +# 1590| ValueCategory = lvalue +# 1590| getEntryPoint(): [BlockStmt] { ... } +# 1590| getStmt(0): [ReturnStmt] return ... +# 1590| [MoveConstructor] void StructuredBindingTupleRefGet::StructuredBindingTupleRefGet(StructuredBindingTupleRefGet&&) +# 1590| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] StructuredBindingTupleRefGet && -# 1594| [MemberFunction,TemplateFunction] type& StructuredBindingTupleRefGet::get() -# 1594| : -# 1598| [CopyAssignmentOperator] std::tuple_size& std::tuple_size::operator=(std::tuple_size const&) -# 1598| : +# 1596| [MemberFunction,TemplateFunction] type& StructuredBindingTupleRefGet::get() +# 1596| : +# 1600| [CopyAssignmentOperator] std::tuple_size& std::tuple_size::operator=(std::tuple_size const&) +# 1600| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const tuple_size & -# 1598| [MoveAssignmentOperator] std::tuple_size& std::tuple_size::operator=(std::tuple_size&&) -# 1598| : +# 1600| [MoveAssignmentOperator] std::tuple_size& std::tuple_size::operator=(std::tuple_size&&) +# 1600| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] tuple_size && -# 1603| [CopyAssignmentOperator] std::tuple_element& std::tuple_element::operator=(std::tuple_element const&) -# 1603| : +# 1605| [CopyAssignmentOperator] std::tuple_element& std::tuple_element::operator=(std::tuple_element const&) +# 1605| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const tuple_element<0, StructuredBindingTupleRefGet> & -# 1603| [MoveAssignmentOperator] std::tuple_element& std::tuple_element::operator=(std::tuple_element&&) -# 1603| : +# 1605| [MoveAssignmentOperator] std::tuple_element& std::tuple_element::operator=(std::tuple_element&&) +# 1605| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] tuple_element<0, StructuredBindingTupleRefGet> && -# 1607| [CopyAssignmentOperator] std::tuple_element& std::tuple_element::operator=(std::tuple_element const&) -# 1607| : +# 1609| [CopyAssignmentOperator] std::tuple_element& std::tuple_element::operator=(std::tuple_element const&) +# 1609| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const tuple_element<1, StructuredBindingTupleRefGet> & -# 1607| [MoveAssignmentOperator] std::tuple_element& std::tuple_element::operator=(std::tuple_element&&) -# 1607| : +# 1609| [MoveAssignmentOperator] std::tuple_element& std::tuple_element::operator=(std::tuple_element&&) +# 1609| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] tuple_element<1, StructuredBindingTupleRefGet> && -# 1611| [CopyAssignmentOperator] std::tuple_element& std::tuple_element::operator=(std::tuple_element const&) -# 1611| : +# 1613| [CopyAssignmentOperator] std::tuple_element& std::tuple_element::operator=(std::tuple_element const&) +# 1613| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const tuple_element<2, StructuredBindingTupleRefGet> & -# 1611| [MoveAssignmentOperator] std::tuple_element& std::tuple_element::operator=(std::tuple_element&&) -# 1611| : +# 1613| [MoveAssignmentOperator] std::tuple_element& std::tuple_element::operator=(std::tuple_element&&) +# 1613| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] tuple_element<2, StructuredBindingTupleRefGet> && -# 1616| [FunctionTemplateSpecialization,MemberFunction] std::tuple_element::type& StructuredBindingTupleRefGet::get() -# 1616| : -# 1616| getEntryPoint(): [BlockStmt] { ... } -# 1617| getStmt(0): [ReturnStmt] return ... -# 1617| getExpr(): [ImplicitThisFieldAccess,PointerFieldAccess] i -# 1617| Type = [IntType] int -# 1617| ValueCategory = lvalue -# 1617| getQualifier(): [ThisExpr] this -# 1617| Type = [PointerType] StructuredBindingTupleRefGet * -# 1617| ValueCategory = prvalue(load) +# 1618| [FunctionTemplateSpecialization,MemberFunction] std::tuple_element::type& StructuredBindingTupleRefGet::get() +# 1618| : +# 1618| getEntryPoint(): [BlockStmt] { ... } +# 1619| getStmt(0): [ReturnStmt] return ... +# 1619| getExpr(): [ImplicitThisFieldAccess,PointerFieldAccess] i +# 1619| Type = [IntType] int +# 1619| ValueCategory = lvalue +# 1619| getQualifier(): [ThisExpr] this +# 1619| Type = [PointerType] StructuredBindingTupleRefGet * +# 1619| ValueCategory = prvalue(load) #-----| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) #-----| Type = [LValueReferenceType] int & #-----| ValueCategory = prvalue -# 1620| [FunctionTemplateSpecialization,MemberFunction] std::tuple_element::type& StructuredBindingTupleRefGet::get() -# 1620| : -# 1620| getEntryPoint(): [BlockStmt] { ... } -# 1621| getStmt(0): [ReturnStmt] return ... -# 1621| getExpr(): [ImplicitThisFieldAccess,PointerFieldAccess] d -# 1621| Type = [DoubleType] double -# 1621| ValueCategory = lvalue -# 1621| getQualifier(): [ThisExpr] this -# 1621| Type = [PointerType] StructuredBindingTupleRefGet * -# 1621| ValueCategory = prvalue(load) +# 1622| [FunctionTemplateSpecialization,MemberFunction] std::tuple_element::type& StructuredBindingTupleRefGet::get() +# 1622| : +# 1622| getEntryPoint(): [BlockStmt] { ... } +# 1623| getStmt(0): [ReturnStmt] return ... +# 1623| getExpr(): [ImplicitThisFieldAccess,PointerFieldAccess] d +# 1623| Type = [DoubleType] double +# 1623| ValueCategory = lvalue +# 1623| getQualifier(): [ThisExpr] this +# 1623| Type = [PointerType] StructuredBindingTupleRefGet * +# 1623| ValueCategory = prvalue(load) #-----| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) #-----| Type = [LValueReferenceType] double & #-----| ValueCategory = prvalue -# 1624| [FunctionTemplateSpecialization,MemberFunction] std::tuple_element::type StructuredBindingTupleRefGet::get() -# 1624| : -# 1624| getEntryPoint(): [BlockStmt] { ... } -# 1625| getStmt(0): [ReturnStmt] return ... -# 1625| getExpr(): [ImplicitThisFieldAccess,PointerFieldAccess] r -# 1625| Type = [LValueReferenceType] int & -# 1625| ValueCategory = prvalue(load) -# 1625| getQualifier(): [ThisExpr] this -# 1625| Type = [PointerType] StructuredBindingTupleRefGet * -# 1625| ValueCategory = prvalue(load) -# 1625| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1625| Type = [LValueReferenceType] int & -# 1625| ValueCategory = prvalue -# 1625| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1625| Type = [IntType] int -# 1625| ValueCategory = lvalue -# 1628| [TopLevelFunction] void tuple_structured_binding_ref_get() -# 1628| : -# 1628| getEntryPoint(): [BlockStmt] { ... } -# 1629| getStmt(0): [DeclStmt] declaration -# 1629| getDeclarationEntry(0): [VariableDeclarationEntry] definition of t -# 1629| Type = [Struct] StructuredBindingTupleRefGet -# 1629| getVariable().getInitializer(): [Initializer] initializer for t -# 1629| getExpr(): [ConstructorCall] call to StructuredBindingTupleRefGet -# 1629| Type = [VoidType] void -# 1629| ValueCategory = prvalue -# 1631| getStmt(1): [BlockStmt] { ... } -# 1632| getStmt(0): [DeclStmt] declaration -# 1632| getDeclarationEntry(0): [VariableDeclarationEntry] definition of (unnamed local variable) -# 1632| Type = [Struct] StructuredBindingTupleRefGet -# 1632| getVariable().getInitializer(): [Initializer] initializer for (unnamed local variable) -# 1632| getExpr(): [VariableAccess] t -# 1632| Type = [Struct] StructuredBindingTupleRefGet -# 1632| ValueCategory = prvalue(load) -# 1632| getDeclarationEntry(1): [VariableDeclarationEntry] definition of i -# 1632| Type = [LValueReferenceType] type & +# 1626| [FunctionTemplateSpecialization,MemberFunction] std::tuple_element::type StructuredBindingTupleRefGet::get() +# 1626| : +# 1626| getEntryPoint(): [BlockStmt] { ... } +# 1627| getStmt(0): [ReturnStmt] return ... +# 1627| getExpr(): [ImplicitThisFieldAccess,PointerFieldAccess] r +# 1627| Type = [LValueReferenceType] int & +# 1627| ValueCategory = prvalue(load) +# 1627| getQualifier(): [ThisExpr] this +# 1627| Type = [PointerType] StructuredBindingTupleRefGet * +# 1627| ValueCategory = prvalue(load) +# 1627| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1627| Type = [LValueReferenceType] int & +# 1627| ValueCategory = prvalue +# 1627| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1627| Type = [IntType] int +# 1627| ValueCategory = lvalue +# 1630| [TopLevelFunction] void tuple_structured_binding_ref_get() +# 1630| : +# 1630| getEntryPoint(): [BlockStmt] { ... } +# 1631| getStmt(0): [DeclStmt] declaration +# 1631| getDeclarationEntry(0): [VariableDeclarationEntry] definition of t +# 1631| Type = [Struct] StructuredBindingTupleRefGet +# 1631| getVariable().getInitializer(): [Initializer] initializer for t +# 1631| getExpr(): [ConstructorCall] call to StructuredBindingTupleRefGet +# 1631| Type = [VoidType] void +# 1631| ValueCategory = prvalue +# 1633| getStmt(1): [BlockStmt] { ... } +# 1634| getStmt(0): [DeclStmt] declaration +# 1634| getDeclarationEntry(0): [VariableDeclarationEntry] definition of (unnamed local variable) +# 1634| Type = [Struct] StructuredBindingTupleRefGet +# 1634| getVariable().getInitializer(): [Initializer] initializer for (unnamed local variable) +# 1634| getExpr(): [VariableAccess] t +# 1634| Type = [Struct] StructuredBindingTupleRefGet +# 1634| ValueCategory = prvalue(load) +# 1634| getDeclarationEntry(1): [VariableDeclarationEntry] definition of i +# 1634| Type = [LValueReferenceType] type & #-----| getVariable().getInitializer(): [Initializer] initializer for i -# 1632| getExpr(): [FunctionCall] call to get -# 1632| Type = [LValueReferenceType] type & -# 1632| ValueCategory = prvalue -# 1632| getQualifier(): [VariableAccess] (unnamed local variable) -# 1632| Type = [Struct] StructuredBindingTupleRefGet -# 1632| ValueCategory = xvalue -# 1632| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1632| Type = [LValueReferenceType] type & -# 1632| ValueCategory = prvalue -# 1632| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1632| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1632| ValueCategory = lvalue -# 1632| getDeclarationEntry(2): [VariableDeclarationEntry] definition of d -# 1632| Type = [LValueReferenceType] type & +# 1634| getExpr(): [FunctionCall] call to get +# 1634| Type = [LValueReferenceType] type & +# 1634| ValueCategory = prvalue +# 1634| getQualifier(): [VariableAccess] (unnamed local variable) +# 1634| Type = [Struct] StructuredBindingTupleRefGet +# 1634| ValueCategory = xvalue +# 1634| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1634| Type = [LValueReferenceType] type & +# 1634| ValueCategory = prvalue +# 1634| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1634| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1634| ValueCategory = lvalue +# 1634| getDeclarationEntry(2): [VariableDeclarationEntry] definition of d +# 1634| Type = [LValueReferenceType] type & #-----| getVariable().getInitializer(): [Initializer] initializer for d -# 1632| getExpr(): [FunctionCall] call to get -# 1632| Type = [LValueReferenceType] type & -# 1632| ValueCategory = prvalue -# 1632| getQualifier(): [VariableAccess] (unnamed local variable) -# 1632| Type = [Struct] StructuredBindingTupleRefGet -# 1632| ValueCategory = xvalue -# 1632| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1632| Type = [LValueReferenceType] type & -# 1632| ValueCategory = prvalue -# 1632| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1632| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1632| ValueCategory = lvalue -# 1632| getDeclarationEntry(3): [VariableDeclarationEntry] definition of r -# 1632| Type = [NestedTypedefType,UsingAliasTypedefType] type -#-----| getVariable().getInitializer(): [Initializer] initializer for r -# 1632| getExpr(): [FunctionCall] call to get -# 1632| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1632| ValueCategory = prvalue -# 1632| getQualifier(): [VariableAccess] (unnamed local variable) -# 1632| Type = [Struct] StructuredBindingTupleRefGet -# 1632| ValueCategory = xvalue -# 1632| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1632| Type = [LValueReferenceType] int & -# 1632| ValueCategory = prvalue -# 1632| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1632| Type = [IntType] int -# 1632| ValueCategory = lvalue -# 1633| getStmt(1): [ExprStmt] ExprStmt -# 1633| getExpr(): [AssignExpr] ... = ... -# 1633| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1633| ValueCategory = lvalue -# 1633| getLValue(): [VariableAccess] d -# 1633| Type = [LValueReferenceType] type & -# 1633| ValueCategory = prvalue(load) -# 1633| getRValue(): [Literal] 4.0 -# 1633| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1633| Value = [Literal] 4.0 -# 1633| ValueCategory = prvalue -# 1633| getLValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1633| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1633| ValueCategory = lvalue -# 1634| getStmt(2): [DeclStmt] declaration -# 1634| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rd -# 1634| Type = [LValueReferenceType] double & -# 1634| getVariable().getInitializer(): [Initializer] initializer for rd -# 1634| getExpr(): [VariableAccess] d +# 1634| getExpr(): [FunctionCall] call to get # 1634| Type = [LValueReferenceType] type & -# 1634| ValueCategory = prvalue(load) +# 1634| ValueCategory = prvalue +# 1634| getQualifier(): [VariableAccess] (unnamed local variable) +# 1634| Type = [Struct] StructuredBindingTupleRefGet +# 1634| ValueCategory = xvalue # 1634| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) # 1634| Type = [LValueReferenceType] type & # 1634| ValueCategory = prvalue # 1634| getExpr(): [ReferenceDereferenceExpr] (reference dereference) # 1634| Type = [NestedTypedefType,UsingAliasTypedefType] type # 1634| ValueCategory = lvalue -# 1635| getStmt(3): [DeclStmt] declaration -# 1635| getDeclarationEntry(0): [VariableDeclarationEntry] definition of v -# 1635| Type = [IntType] int -# 1635| getVariable().getInitializer(): [Initializer] initializer for v -# 1635| getExpr(): [VariableAccess] i -# 1635| Type = [LValueReferenceType] type & -# 1635| ValueCategory = prvalue(load) -# 1635| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1635| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1635| ValueCategory = prvalue(load) -# 1636| getStmt(4): [ExprStmt] ExprStmt -# 1636| getExpr(): [AssignExpr] ... = ... -# 1636| Type = [IntType] int -# 1636| ValueCategory = lvalue -# 1636| getLValue(): [VariableAccess] r -# 1636| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1636| ValueCategory = prvalue(load) -# 1636| getRValue(): [Literal] 5 -# 1636| Type = [IntType] int -# 1636| Value = [Literal] 5 -# 1636| ValueCategory = prvalue -# 1636| getLValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1636| Type = [IntType] int -# 1636| ValueCategory = lvalue -# 1637| getStmt(5): [DeclStmt] declaration -# 1637| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rr -# 1637| Type = [LValueReferenceType] int & -# 1637| getVariable().getInitializer(): [Initializer] initializer for rr -# 1637| getExpr(): [VariableAccess] r +# 1634| getDeclarationEntry(3): [VariableDeclarationEntry] definition of r +# 1634| Type = [NestedTypedefType,UsingAliasTypedefType] type +#-----| getVariable().getInitializer(): [Initializer] initializer for r +# 1634| getExpr(): [FunctionCall] call to get +# 1634| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1634| ValueCategory = prvalue +# 1634| getQualifier(): [VariableAccess] (unnamed local variable) +# 1634| Type = [Struct] StructuredBindingTupleRefGet +# 1634| ValueCategory = xvalue +# 1634| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1634| Type = [LValueReferenceType] int & +# 1634| ValueCategory = prvalue +# 1634| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1634| Type = [IntType] int +# 1634| ValueCategory = lvalue +# 1635| getStmt(1): [ExprStmt] ExprStmt +# 1635| getExpr(): [AssignExpr] ... = ... +# 1635| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1635| ValueCategory = lvalue +# 1635| getLValue(): [VariableAccess] d +# 1635| Type = [LValueReferenceType] type & +# 1635| ValueCategory = prvalue(load) +# 1635| getRValue(): [Literal] 4.0 +# 1635| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1635| Value = [Literal] 4.0 +# 1635| ValueCategory = prvalue +# 1635| getLValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1635| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1635| ValueCategory = lvalue +# 1636| getStmt(2): [DeclStmt] declaration +# 1636| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rd +# 1636| Type = [LValueReferenceType] double & +# 1636| getVariable().getInitializer(): [Initializer] initializer for rd +# 1636| getExpr(): [VariableAccess] d +# 1636| Type = [LValueReferenceType] type & +# 1636| ValueCategory = prvalue(load) +# 1636| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1636| Type = [LValueReferenceType] type & +# 1636| ValueCategory = prvalue +# 1636| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1636| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1636| ValueCategory = lvalue +# 1637| getStmt(3): [DeclStmt] declaration +# 1637| getDeclarationEntry(0): [VariableDeclarationEntry] definition of v +# 1637| Type = [IntType] int +# 1637| getVariable().getInitializer(): [Initializer] initializer for v +# 1637| getExpr(): [VariableAccess] i +# 1637| Type = [LValueReferenceType] type & +# 1637| ValueCategory = prvalue(load) +# 1637| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) # 1637| Type = [NestedTypedefType,UsingAliasTypedefType] type # 1637| ValueCategory = prvalue(load) -# 1637| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1637| Type = [LValueReferenceType] int & -# 1637| ValueCategory = prvalue -# 1637| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1637| Type = [IntType] int -# 1637| ValueCategory = lvalue -# 1638| getStmt(6): [DeclStmt] declaration -# 1638| getDeclarationEntry(0): [VariableDeclarationEntry] definition of w +# 1638| getStmt(4): [ExprStmt] ExprStmt +# 1638| getExpr(): [AssignExpr] ... = ... # 1638| Type = [IntType] int -# 1638| getVariable().getInitializer(): [Initializer] initializer for w -# 1638| getExpr(): [VariableAccess] r -# 1638| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1638| ValueCategory = prvalue(load) -# 1638| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1638| Type = [IntType] int -# 1638| ValueCategory = prvalue(load) -# 1641| getStmt(2): [BlockStmt] { ... } -# 1642| getStmt(0): [DeclStmt] declaration -# 1642| getDeclarationEntry(0): [VariableDeclarationEntry] definition of unnamed_local_variable -# 1642| Type = [Struct] StructuredBindingTupleRefGet -# 1642| getVariable().getInitializer(): [Initializer] initializer for unnamed_local_variable -# 1642| getExpr(): [VariableAccess] t -# 1642| Type = [Struct] StructuredBindingTupleRefGet -# 1642| ValueCategory = prvalue(load) -# 1643| getStmt(1): [DeclStmt] declaration -# 1643| getDeclarationEntry(0): [VariableDeclarationEntry] definition of i -# 1643| Type = [LValueReferenceType] type & -# 1643| getVariable().getInitializer(): [Initializer] initializer for i -# 1643| getExpr(): [FunctionCall] call to get -# 1643| Type = [LValueReferenceType] type & -# 1643| ValueCategory = prvalue -# 1643| getQualifier(): [VariableAccess] unnamed_local_variable -# 1643| Type = [Struct] StructuredBindingTupleRefGet -# 1643| ValueCategory = lvalue -# 1643| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1643| Type = [LValueReferenceType] type & -# 1643| ValueCategory = prvalue -# 1643| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1643| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1643| ValueCategory = lvalue -# 1644| getStmt(2): [DeclStmt] declaration -# 1644| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d -# 1644| Type = [LValueReferenceType] type & -# 1644| getVariable().getInitializer(): [Initializer] initializer for d -# 1644| getExpr(): [FunctionCall] call to get -# 1644| Type = [LValueReferenceType] type & -# 1644| ValueCategory = prvalue -# 1644| getQualifier(): [VariableAccess] unnamed_local_variable -# 1644| Type = [Struct] StructuredBindingTupleRefGet -# 1644| ValueCategory = lvalue -# 1644| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1644| Type = [LValueReferenceType] type & -# 1644| ValueCategory = prvalue -# 1644| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1644| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1644| ValueCategory = lvalue -# 1645| getStmt(3): [DeclStmt] declaration -# 1645| getDeclarationEntry(0): [VariableDeclarationEntry] definition of r -# 1645| Type = [LValueReferenceType] int & -# 1645| getVariable().getInitializer(): [Initializer] initializer for r +# 1638| ValueCategory = lvalue +# 1638| getLValue(): [VariableAccess] r +# 1638| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1638| ValueCategory = prvalue(load) +# 1638| getRValue(): [Literal] 5 +# 1638| Type = [IntType] int +# 1638| Value = [Literal] 5 +# 1638| ValueCategory = prvalue +# 1638| getLValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1638| Type = [IntType] int +# 1638| ValueCategory = lvalue +# 1639| getStmt(5): [DeclStmt] declaration +# 1639| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rr +# 1639| Type = [LValueReferenceType] int & +# 1639| getVariable().getInitializer(): [Initializer] initializer for rr +# 1639| getExpr(): [VariableAccess] r +# 1639| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1639| ValueCategory = prvalue(load) +# 1639| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1639| Type = [LValueReferenceType] int & +# 1639| ValueCategory = prvalue +# 1639| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1639| Type = [IntType] int +# 1639| ValueCategory = lvalue +# 1640| getStmt(6): [DeclStmt] declaration +# 1640| getDeclarationEntry(0): [VariableDeclarationEntry] definition of w +# 1640| Type = [IntType] int +# 1640| getVariable().getInitializer(): [Initializer] initializer for w +# 1640| getExpr(): [VariableAccess] r +# 1640| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1640| ValueCategory = prvalue(load) +# 1640| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1640| Type = [IntType] int +# 1640| ValueCategory = prvalue(load) +# 1643| getStmt(2): [BlockStmt] { ... } +# 1644| getStmt(0): [DeclStmt] declaration +# 1644| getDeclarationEntry(0): [VariableDeclarationEntry] definition of unnamed_local_variable +# 1644| Type = [Struct] StructuredBindingTupleRefGet +# 1644| getVariable().getInitializer(): [Initializer] initializer for unnamed_local_variable +# 1644| getExpr(): [VariableAccess] t +# 1644| Type = [Struct] StructuredBindingTupleRefGet +# 1644| ValueCategory = prvalue(load) +# 1645| getStmt(1): [DeclStmt] declaration +# 1645| getDeclarationEntry(0): [VariableDeclarationEntry] definition of i +# 1645| Type = [LValueReferenceType] type & +# 1645| getVariable().getInitializer(): [Initializer] initializer for i # 1645| getExpr(): [FunctionCall] call to get -# 1645| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1645| Type = [LValueReferenceType] type & # 1645| ValueCategory = prvalue # 1645| getQualifier(): [VariableAccess] unnamed_local_variable # 1645| Type = [Struct] StructuredBindingTupleRefGet # 1645| ValueCategory = lvalue # 1645| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1645| Type = [LValueReferenceType] int & +# 1645| Type = [LValueReferenceType] type & # 1645| ValueCategory = prvalue # 1645| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1645| Type = [IntType] int +# 1645| Type = [NestedTypedefType,UsingAliasTypedefType] type # 1645| ValueCategory = lvalue -# 1646| getStmt(4): [ExprStmt] ExprStmt -# 1646| getExpr(): [AssignExpr] ... = ... -# 1646| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1646| ValueCategory = lvalue -# 1646| getLValue(): [VariableAccess] d -# 1646| Type = [LValueReferenceType] type & -# 1646| ValueCategory = prvalue(load) -# 1646| getRValue(): [Literal] 4.0 -# 1646| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1646| Value = [Literal] 4.0 -# 1646| ValueCategory = prvalue -# 1646| getLValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1646| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1646| ValueCategory = lvalue -# 1647| getStmt(5): [DeclStmt] declaration -# 1647| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rd -# 1647| Type = [LValueReferenceType] double & -# 1647| getVariable().getInitializer(): [Initializer] initializer for rd -# 1647| getExpr(): [VariableAccess] d -# 1647| Type = [LValueReferenceType] type & -# 1647| ValueCategory = prvalue(load) +# 1646| getStmt(2): [DeclStmt] declaration +# 1646| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d +# 1646| Type = [LValueReferenceType] type & +# 1646| getVariable().getInitializer(): [Initializer] initializer for d +# 1646| getExpr(): [FunctionCall] call to get +# 1646| Type = [LValueReferenceType] type & +# 1646| ValueCategory = prvalue +# 1646| getQualifier(): [VariableAccess] unnamed_local_variable +# 1646| Type = [Struct] StructuredBindingTupleRefGet +# 1646| ValueCategory = lvalue +# 1646| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1646| Type = [LValueReferenceType] type & +# 1646| ValueCategory = prvalue +# 1646| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1646| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1646| ValueCategory = lvalue +# 1647| getStmt(3): [DeclStmt] declaration +# 1647| getDeclarationEntry(0): [VariableDeclarationEntry] definition of r +# 1647| Type = [LValueReferenceType] int & +# 1647| getVariable().getInitializer(): [Initializer] initializer for r +# 1647| getExpr(): [FunctionCall] call to get +# 1647| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1647| ValueCategory = prvalue +# 1647| getQualifier(): [VariableAccess] unnamed_local_variable +# 1647| Type = [Struct] StructuredBindingTupleRefGet +# 1647| ValueCategory = lvalue # 1647| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1647| Type = [LValueReferenceType] type & +# 1647| Type = [LValueReferenceType] int & # 1647| ValueCategory = prvalue # 1647| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1647| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1647| Type = [IntType] int # 1647| ValueCategory = lvalue -# 1648| getStmt(6): [DeclStmt] declaration -# 1648| getDeclarationEntry(0): [VariableDeclarationEntry] definition of v -# 1648| Type = [IntType] int -# 1648| getVariable().getInitializer(): [Initializer] initializer for v -# 1648| getExpr(): [VariableAccess] i -# 1648| Type = [LValueReferenceType] type & -# 1648| ValueCategory = prvalue(load) -# 1648| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1648| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1648| ValueCategory = prvalue(load) -# 1649| getStmt(7): [ExprStmt] ExprStmt -# 1649| getExpr(): [AssignExpr] ... = ... -# 1649| Type = [IntType] int -# 1649| ValueCategory = lvalue -# 1649| getLValue(): [VariableAccess] r -# 1649| Type = [LValueReferenceType] int & -# 1649| ValueCategory = prvalue(load) -# 1649| getRValue(): [Literal] 5 -# 1649| Type = [IntType] int -# 1649| Value = [Literal] 5 -# 1649| ValueCategory = prvalue -# 1649| getLValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1649| Type = [IntType] int -# 1649| ValueCategory = lvalue -# 1650| getStmt(8): [DeclStmt] declaration -# 1650| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rr -# 1650| Type = [LValueReferenceType] int & -# 1650| getVariable().getInitializer(): [Initializer] initializer for rr -# 1650| getExpr(): [VariableAccess] r -# 1650| Type = [LValueReferenceType] int & +# 1648| getStmt(4): [ExprStmt] ExprStmt +# 1648| getExpr(): [AssignExpr] ... = ... +# 1648| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1648| ValueCategory = lvalue +# 1648| getLValue(): [VariableAccess] d +# 1648| Type = [LValueReferenceType] type & +# 1648| ValueCategory = prvalue(load) +# 1648| getRValue(): [Literal] 4.0 +# 1648| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1648| Value = [Literal] 4.0 +# 1648| ValueCategory = prvalue +# 1648| getLValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1648| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1648| ValueCategory = lvalue +# 1649| getStmt(5): [DeclStmt] declaration +# 1649| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rd +# 1649| Type = [LValueReferenceType] double & +# 1649| getVariable().getInitializer(): [Initializer] initializer for rd +# 1649| getExpr(): [VariableAccess] d +# 1649| Type = [LValueReferenceType] type & +# 1649| ValueCategory = prvalue(load) +# 1649| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1649| Type = [LValueReferenceType] type & +# 1649| ValueCategory = prvalue +# 1649| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1649| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1649| ValueCategory = lvalue +# 1650| getStmt(6): [DeclStmt] declaration +# 1650| getDeclarationEntry(0): [VariableDeclarationEntry] definition of v +# 1650| Type = [IntType] int +# 1650| getVariable().getInitializer(): [Initializer] initializer for v +# 1650| getExpr(): [VariableAccess] i +# 1650| Type = [LValueReferenceType] type & +# 1650| ValueCategory = prvalue(load) +# 1650| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1650| Type = [NestedTypedefType,UsingAliasTypedefType] type # 1650| ValueCategory = prvalue(load) -# 1650| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1650| Type = [LValueReferenceType] int & -# 1650| ValueCategory = prvalue -# 1650| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1650| Type = [IntType] int -# 1650| ValueCategory = lvalue -# 1651| getStmt(9): [DeclStmt] declaration -# 1651| getDeclarationEntry(0): [VariableDeclarationEntry] definition of w +# 1651| getStmt(7): [ExprStmt] ExprStmt +# 1651| getExpr(): [AssignExpr] ... = ... # 1651| Type = [IntType] int -# 1651| getVariable().getInitializer(): [Initializer] initializer for w -# 1651| getExpr(): [VariableAccess] r -# 1651| Type = [LValueReferenceType] int & -# 1651| ValueCategory = prvalue(load) -# 1651| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1651| Type = [IntType] int -# 1651| ValueCategory = prvalue(load) -# 1653| getStmt(3): [ReturnStmt] return ... -# 1655| [CopyAssignmentOperator] StructuredBindingTupleNoRefGet& StructuredBindingTupleNoRefGet::operator=(StructuredBindingTupleNoRefGet const&) -# 1655| : +# 1651| ValueCategory = lvalue +# 1651| getLValue(): [VariableAccess] r +# 1651| Type = [LValueReferenceType] int & +# 1651| ValueCategory = prvalue(load) +# 1651| getRValue(): [Literal] 5 +# 1651| Type = [IntType] int +# 1651| Value = [Literal] 5 +# 1651| ValueCategory = prvalue +# 1651| getLValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1651| Type = [IntType] int +# 1651| ValueCategory = lvalue +# 1652| getStmt(8): [DeclStmt] declaration +# 1652| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rr +# 1652| Type = [LValueReferenceType] int & +# 1652| getVariable().getInitializer(): [Initializer] initializer for rr +# 1652| getExpr(): [VariableAccess] r +# 1652| Type = [LValueReferenceType] int & +# 1652| ValueCategory = prvalue(load) +# 1652| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1652| Type = [LValueReferenceType] int & +# 1652| ValueCategory = prvalue +# 1652| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1652| Type = [IntType] int +# 1652| ValueCategory = lvalue +# 1653| getStmt(9): [DeclStmt] declaration +# 1653| getDeclarationEntry(0): [VariableDeclarationEntry] definition of w +# 1653| Type = [IntType] int +# 1653| getVariable().getInitializer(): [Initializer] initializer for w +# 1653| getExpr(): [VariableAccess] r +# 1653| Type = [LValueReferenceType] int & +# 1653| ValueCategory = prvalue(load) +# 1653| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1653| Type = [IntType] int +# 1653| ValueCategory = prvalue(load) +# 1655| getStmt(3): [ReturnStmt] return ... +# 1657| [CopyAssignmentOperator] StructuredBindingTupleNoRefGet& StructuredBindingTupleNoRefGet::operator=(StructuredBindingTupleNoRefGet const&) +# 1657| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const StructuredBindingTupleNoRefGet & -# 1655| [Constructor] void StructuredBindingTupleNoRefGet::StructuredBindingTupleNoRefGet() -# 1655| : -# 1655| : -# 1655| getInitializer(0): [ConstructorFieldInit] constructor init of field i -# 1655| Type = [IntType] int -# 1655| ValueCategory = prvalue -# 1655| getInitializer(1): [ConstructorFieldInit] constructor init of field r -# 1655| Type = [LValueReferenceType] int & -# 1655| ValueCategory = prvalue -# 1655| getEntryPoint(): [BlockStmt] { ... } -# 1655| getStmt(0): [ReturnStmt] return ... -# 1655| [CopyConstructor] void StructuredBindingTupleNoRefGet::StructuredBindingTupleNoRefGet(StructuredBindingTupleNoRefGet const&) -# 1655| : +# 1657| [Constructor] void StructuredBindingTupleNoRefGet::StructuredBindingTupleNoRefGet() +# 1657| : +# 1657| : +# 1657| getInitializer(0): [ConstructorFieldInit] constructor init of field i +# 1657| Type = [IntType] int +# 1657| ValueCategory = prvalue +# 1657| getInitializer(1): [ConstructorFieldInit] constructor init of field r +# 1657| Type = [LValueReferenceType] int & +# 1657| ValueCategory = prvalue +# 1657| getEntryPoint(): [BlockStmt] { ... } +# 1657| getStmt(0): [ReturnStmt] return ... +# 1657| [CopyConstructor] void StructuredBindingTupleNoRefGet::StructuredBindingTupleNoRefGet(StructuredBindingTupleNoRefGet const&) +# 1657| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const StructuredBindingTupleNoRefGet & -# 1655| [MoveConstructor] void StructuredBindingTupleNoRefGet::StructuredBindingTupleNoRefGet(StructuredBindingTupleNoRefGet&&) -# 1655| : +# 1657| [MoveConstructor] void StructuredBindingTupleNoRefGet::StructuredBindingTupleNoRefGet(StructuredBindingTupleNoRefGet&&) +# 1657| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] StructuredBindingTupleNoRefGet && -# 1660| [MemberFunction,TemplateFunction] type StructuredBindingTupleNoRefGet::get() -# 1660| : -# 1664| [CopyAssignmentOperator] std::tuple_size& std::tuple_size::operator=(std::tuple_size const&) -# 1664| : +# 1662| [MemberFunction,TemplateFunction] type StructuredBindingTupleNoRefGet::get() +# 1662| : +# 1666| [CopyAssignmentOperator] std::tuple_size& std::tuple_size::operator=(std::tuple_size const&) +# 1666| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const tuple_size & -# 1664| [MoveAssignmentOperator] std::tuple_size& std::tuple_size::operator=(std::tuple_size&&) -# 1664| : +# 1666| [MoveAssignmentOperator] std::tuple_size& std::tuple_size::operator=(std::tuple_size&&) +# 1666| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] tuple_size && -# 1669| [CopyAssignmentOperator] std::tuple_element& std::tuple_element::operator=(std::tuple_element const&) -# 1669| : +# 1671| [CopyAssignmentOperator] std::tuple_element& std::tuple_element::operator=(std::tuple_element const&) +# 1671| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const tuple_element<0, StructuredBindingTupleNoRefGet> & -# 1669| [MoveAssignmentOperator] std::tuple_element& std::tuple_element::operator=(std::tuple_element&&) -# 1669| : +# 1671| [MoveAssignmentOperator] std::tuple_element& std::tuple_element::operator=(std::tuple_element&&) +# 1671| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] tuple_element<0, StructuredBindingTupleNoRefGet> && -# 1673| [CopyAssignmentOperator] std::tuple_element& std::tuple_element::operator=(std::tuple_element const&) -# 1673| : +# 1675| [CopyAssignmentOperator] std::tuple_element& std::tuple_element::operator=(std::tuple_element const&) +# 1675| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const tuple_element<1, StructuredBindingTupleNoRefGet> & -# 1673| [MoveAssignmentOperator] std::tuple_element& std::tuple_element::operator=(std::tuple_element&&) -# 1673| : +# 1675| [MoveAssignmentOperator] std::tuple_element& std::tuple_element::operator=(std::tuple_element&&) +# 1675| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] tuple_element<1, StructuredBindingTupleNoRefGet> && -# 1677| [CopyAssignmentOperator] std::tuple_element& std::tuple_element::operator=(std::tuple_element const&) -# 1677| : +# 1679| [CopyAssignmentOperator] std::tuple_element& std::tuple_element::operator=(std::tuple_element const&) +# 1679| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const tuple_element<2, StructuredBindingTupleNoRefGet> & -# 1677| [MoveAssignmentOperator] std::tuple_element& std::tuple_element::operator=(std::tuple_element&&) -# 1677| : +# 1679| [MoveAssignmentOperator] std::tuple_element& std::tuple_element::operator=(std::tuple_element&&) +# 1679| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] tuple_element<2, StructuredBindingTupleNoRefGet> && -# 1682| [FunctionTemplateSpecialization,MemberFunction] std::tuple_element::type StructuredBindingTupleNoRefGet::get() -# 1682| : -# 1682| getEntryPoint(): [BlockStmt] { ... } -# 1683| getStmt(0): [ReturnStmt] return ... -# 1683| getExpr(): [ImplicitThisFieldAccess,PointerFieldAccess] i -# 1683| Type = [IntType] int -# 1683| ValueCategory = prvalue(load) -# 1683| getQualifier(): [ThisExpr] this -# 1683| Type = [PointerType] StructuredBindingTupleNoRefGet * -# 1683| ValueCategory = prvalue(load) -# 1686| [FunctionTemplateSpecialization,MemberFunction] std::tuple_element::type StructuredBindingTupleNoRefGet::get() -# 1686| : -# 1686| getEntryPoint(): [BlockStmt] { ... } -# 1687| getStmt(0): [ReturnStmt] return ... -# 1687| getExpr(): [ImplicitThisFieldAccess,PointerFieldAccess] r -# 1687| Type = [LValueReferenceType] int & -# 1687| ValueCategory = prvalue(load) -# 1687| getQualifier(): [ThisExpr] this -# 1687| Type = [PointerType] StructuredBindingTupleNoRefGet * -# 1687| ValueCategory = prvalue(load) -# 1687| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1687| Type = [LValueReferenceType] int & -# 1687| ValueCategory = prvalue -# 1687| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1687| Type = [IntType] int -# 1687| ValueCategory = lvalue -# 1690| [FunctionTemplateSpecialization,MemberFunction] std::tuple_element::type StructuredBindingTupleNoRefGet::get() -# 1690| : -# 1690| getEntryPoint(): [BlockStmt] { ... } -# 1691| getStmt(0): [ReturnStmt] return ... -# 1691| getExpr(): [Literal] 5 -# 1691| Type = [IntType] int -# 1691| Value = [Literal] 5 -# 1691| ValueCategory = prvalue -# 1691| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1691| Type = [LValueReferenceType] int & -# 1691| ValueCategory = prvalue -# 1691| getExpr(): [TemporaryObjectExpr] temporary object -# 1691| Type = [IntType] int -# 1691| ValueCategory = lvalue -# 1694| [TopLevelFunction] void tuple_structured_binding_no_ref_get() -# 1694| : -# 1694| getEntryPoint(): [BlockStmt] { ... } -# 1695| getStmt(0): [DeclStmt] declaration -# 1695| getDeclarationEntry(0): [VariableDeclarationEntry] definition of t -# 1695| Type = [Struct] StructuredBindingTupleNoRefGet -# 1695| getVariable().getInitializer(): [Initializer] initializer for t -# 1695| getExpr(): [ConstructorCall] call to StructuredBindingTupleNoRefGet -# 1695| Type = [VoidType] void -# 1695| ValueCategory = prvalue -# 1697| getStmt(1): [BlockStmt] { ... } -# 1698| getStmt(0): [DeclStmt] declaration -# 1698| getDeclarationEntry(0): [VariableDeclarationEntry] definition of (unnamed local variable) -# 1698| Type = [LValueReferenceType] StructuredBindingTupleNoRefGet & -# 1698| getVariable().getInitializer(): [Initializer] initializer for (unnamed local variable) -# 1698| getExpr(): [VariableAccess] t -# 1698| Type = [Struct] StructuredBindingTupleNoRefGet -# 1698| ValueCategory = lvalue -# 1698| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1698| Type = [LValueReferenceType] StructuredBindingTupleNoRefGet & -# 1698| ValueCategory = prvalue -# 1698| getDeclarationEntry(1): [VariableDeclarationEntry] definition of i -# 1698| Type = [RValueReferenceType] type && +# 1684| [FunctionTemplateSpecialization,MemberFunction] std::tuple_element::type StructuredBindingTupleNoRefGet::get() +# 1684| : +# 1684| getEntryPoint(): [BlockStmt] { ... } +# 1685| getStmt(0): [ReturnStmt] return ... +# 1685| getExpr(): [ImplicitThisFieldAccess,PointerFieldAccess] i +# 1685| Type = [IntType] int +# 1685| ValueCategory = prvalue(load) +# 1685| getQualifier(): [ThisExpr] this +# 1685| Type = [PointerType] StructuredBindingTupleNoRefGet * +# 1685| ValueCategory = prvalue(load) +# 1688| [FunctionTemplateSpecialization,MemberFunction] std::tuple_element::type StructuredBindingTupleNoRefGet::get() +# 1688| : +# 1688| getEntryPoint(): [BlockStmt] { ... } +# 1689| getStmt(0): [ReturnStmt] return ... +# 1689| getExpr(): [ImplicitThisFieldAccess,PointerFieldAccess] r +# 1689| Type = [LValueReferenceType] int & +# 1689| ValueCategory = prvalue(load) +# 1689| getQualifier(): [ThisExpr] this +# 1689| Type = [PointerType] StructuredBindingTupleNoRefGet * +# 1689| ValueCategory = prvalue(load) +# 1689| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1689| Type = [LValueReferenceType] int & +# 1689| ValueCategory = prvalue +# 1689| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1689| Type = [IntType] int +# 1689| ValueCategory = lvalue +# 1692| [FunctionTemplateSpecialization,MemberFunction] std::tuple_element::type StructuredBindingTupleNoRefGet::get() +# 1692| : +# 1692| getEntryPoint(): [BlockStmt] { ... } +# 1693| getStmt(0): [ReturnStmt] return ... +# 1693| getExpr(): [Literal] 5 +# 1693| Type = [IntType] int +# 1693| Value = [Literal] 5 +# 1693| ValueCategory = prvalue +# 1693| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1693| Type = [LValueReferenceType] int & +# 1693| ValueCategory = prvalue +# 1693| getExpr(): [TemporaryObjectExpr] temporary object +# 1693| Type = [IntType] int +# 1693| ValueCategory = lvalue +# 1696| [TopLevelFunction] void tuple_structured_binding_no_ref_get() +# 1696| : +# 1696| getEntryPoint(): [BlockStmt] { ... } +# 1697| getStmt(0): [DeclStmt] declaration +# 1697| getDeclarationEntry(0): [VariableDeclarationEntry] definition of t +# 1697| Type = [Struct] StructuredBindingTupleNoRefGet +# 1697| getVariable().getInitializer(): [Initializer] initializer for t +# 1697| getExpr(): [ConstructorCall] call to StructuredBindingTupleNoRefGet +# 1697| Type = [VoidType] void +# 1697| ValueCategory = prvalue +# 1699| getStmt(1): [BlockStmt] { ... } +# 1700| getStmt(0): [DeclStmt] declaration +# 1700| getDeclarationEntry(0): [VariableDeclarationEntry] definition of (unnamed local variable) +# 1700| Type = [LValueReferenceType] StructuredBindingTupleNoRefGet & +# 1700| getVariable().getInitializer(): [Initializer] initializer for (unnamed local variable) +# 1700| getExpr(): [VariableAccess] t +# 1700| Type = [Struct] StructuredBindingTupleNoRefGet +# 1700| ValueCategory = lvalue +# 1700| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1700| Type = [LValueReferenceType] StructuredBindingTupleNoRefGet & +# 1700| ValueCategory = prvalue +# 1700| getDeclarationEntry(1): [VariableDeclarationEntry] definition of i +# 1700| Type = [RValueReferenceType] type && #-----| getVariable().getInitializer(): [Initializer] initializer for i -# 1698| getExpr(): [FunctionCall] call to get -# 1698| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1698| ValueCategory = prvalue -# 1698| getQualifier(): [VariableAccess] (unnamed local variable) -# 1698| Type = [LValueReferenceType] StructuredBindingTupleNoRefGet & -# 1698| ValueCategory = prvalue(load) -# 1698| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1698| Type = [Struct] StructuredBindingTupleNoRefGet -# 1698| ValueCategory = lvalue -# 1698| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1698| Type = [LValueReferenceType] type & -# 1698| ValueCategory = prvalue -# 1698| getExpr(): [TemporaryObjectExpr] temporary object -# 1698| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1698| ValueCategory = lvalue -# 1698| getDeclarationEntry(2): [VariableDeclarationEntry] definition of r -# 1698| Type = [NestedTypedefType,UsingAliasTypedefType] type -#-----| getVariable().getInitializer(): [Initializer] initializer for r -# 1698| getExpr(): [FunctionCall] call to get -# 1698| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1698| ValueCategory = prvalue -# 1698| getQualifier(): [VariableAccess] (unnamed local variable) -# 1698| Type = [LValueReferenceType] StructuredBindingTupleNoRefGet & -# 1698| ValueCategory = prvalue(load) -# 1698| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1698| Type = [Struct] StructuredBindingTupleNoRefGet -# 1698| ValueCategory = lvalue -# 1698| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1698| Type = [LValueReferenceType] int & -# 1698| ValueCategory = prvalue -# 1698| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1698| Type = [IntType] int -# 1698| ValueCategory = lvalue -# 1698| getDeclarationEntry(3): [VariableDeclarationEntry] definition of rv -# 1698| Type = [NestedTypedefType,UsingAliasTypedefType] type -#-----| getVariable().getInitializer(): [Initializer] initializer for rv -# 1698| getExpr(): [FunctionCall] call to get -# 1698| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1698| ValueCategory = prvalue -# 1698| getQualifier(): [VariableAccess] (unnamed local variable) -# 1698| Type = [LValueReferenceType] StructuredBindingTupleNoRefGet & -# 1698| ValueCategory = prvalue(load) -# 1698| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1698| Type = [Struct] StructuredBindingTupleNoRefGet -# 1698| ValueCategory = lvalue -# 1698| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1698| Type = [LValueReferenceType] int & -# 1698| ValueCategory = prvalue -# 1698| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1698| Type = [IntType] int -# 1698| ValueCategory = xvalue -# 1699| getStmt(1): [ExprStmt] ExprStmt -# 1699| getExpr(): [AssignExpr] ... = ... -# 1699| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1699| ValueCategory = lvalue -# 1699| getLValue(): [VariableAccess] i -# 1699| Type = [RValueReferenceType] type && -# 1699| ValueCategory = prvalue(load) -# 1699| getRValue(): [Literal] 4 -# 1699| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1699| Value = [Literal] 4 -# 1699| ValueCategory = prvalue -# 1699| getLValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1699| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1699| ValueCategory = lvalue -# 1700| getStmt(2): [DeclStmt] declaration -# 1700| getDeclarationEntry(0): [VariableDeclarationEntry] definition of ri -# 1700| Type = [LValueReferenceType] int & -# 1700| getVariable().getInitializer(): [Initializer] initializer for ri -# 1700| getExpr(): [VariableAccess] i -# 1700| Type = [RValueReferenceType] type && -# 1700| ValueCategory = prvalue(load) +# 1700| getExpr(): [FunctionCall] call to get +# 1700| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1700| ValueCategory = prvalue +# 1700| getQualifier(): [VariableAccess] (unnamed local variable) +# 1700| Type = [LValueReferenceType] StructuredBindingTupleNoRefGet & +# 1700| ValueCategory = prvalue(load) +# 1700| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1700| Type = [Struct] StructuredBindingTupleNoRefGet +# 1700| ValueCategory = lvalue # 1700| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) # 1700| Type = [LValueReferenceType] type & # 1700| ValueCategory = prvalue -# 1700| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1700| getExpr(): [TemporaryObjectExpr] temporary object # 1700| Type = [NestedTypedefType,UsingAliasTypedefType] type # 1700| ValueCategory = lvalue -# 1701| getStmt(3): [DeclStmt] declaration -# 1701| getDeclarationEntry(0): [VariableDeclarationEntry] definition of v -# 1701| Type = [IntType] int -# 1701| getVariable().getInitializer(): [Initializer] initializer for v -# 1701| getExpr(): [VariableAccess] i -# 1701| Type = [RValueReferenceType] type && -# 1701| ValueCategory = prvalue(load) -# 1701| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1701| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1701| ValueCategory = prvalue(load) -# 1702| getStmt(4): [ExprStmt] ExprStmt -# 1702| getExpr(): [AssignExpr] ... = ... -# 1702| Type = [IntType] int -# 1702| ValueCategory = lvalue -# 1702| getLValue(): [VariableAccess] r -# 1702| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1702| ValueCategory = prvalue(load) -# 1702| getRValue(): [Literal] 5 -# 1702| Type = [IntType] int -# 1702| Value = [Literal] 5 -# 1702| ValueCategory = prvalue -# 1702| getLValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1702| Type = [IntType] int -# 1702| ValueCategory = lvalue -# 1703| getStmt(5): [DeclStmt] declaration -# 1703| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rr -# 1703| Type = [LValueReferenceType] int & -# 1703| getVariable().getInitializer(): [Initializer] initializer for rr -# 1703| getExpr(): [VariableAccess] r +# 1700| getDeclarationEntry(2): [VariableDeclarationEntry] definition of r +# 1700| Type = [NestedTypedefType,UsingAliasTypedefType] type +#-----| getVariable().getInitializer(): [Initializer] initializer for r +# 1700| getExpr(): [FunctionCall] call to get +# 1700| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1700| ValueCategory = prvalue +# 1700| getQualifier(): [VariableAccess] (unnamed local variable) +# 1700| Type = [LValueReferenceType] StructuredBindingTupleNoRefGet & +# 1700| ValueCategory = prvalue(load) +# 1700| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1700| Type = [Struct] StructuredBindingTupleNoRefGet +# 1700| ValueCategory = lvalue +# 1700| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1700| Type = [LValueReferenceType] int & +# 1700| ValueCategory = prvalue +# 1700| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1700| Type = [IntType] int +# 1700| ValueCategory = lvalue +# 1700| getDeclarationEntry(3): [VariableDeclarationEntry] definition of rv +# 1700| Type = [NestedTypedefType,UsingAliasTypedefType] type +#-----| getVariable().getInitializer(): [Initializer] initializer for rv +# 1700| getExpr(): [FunctionCall] call to get +# 1700| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1700| ValueCategory = prvalue +# 1700| getQualifier(): [VariableAccess] (unnamed local variable) +# 1700| Type = [LValueReferenceType] StructuredBindingTupleNoRefGet & +# 1700| ValueCategory = prvalue(load) +# 1700| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1700| Type = [Struct] StructuredBindingTupleNoRefGet +# 1700| ValueCategory = lvalue +# 1700| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1700| Type = [LValueReferenceType] int & +# 1700| ValueCategory = prvalue +# 1700| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1700| Type = [IntType] int +# 1700| ValueCategory = xvalue +# 1701| getStmt(1): [ExprStmt] ExprStmt +# 1701| getExpr(): [AssignExpr] ... = ... +# 1701| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1701| ValueCategory = lvalue +# 1701| getLValue(): [VariableAccess] i +# 1701| Type = [RValueReferenceType] type && +# 1701| ValueCategory = prvalue(load) +# 1701| getRValue(): [Literal] 4 +# 1701| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1701| Value = [Literal] 4 +# 1701| ValueCategory = prvalue +# 1701| getLValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1701| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1701| ValueCategory = lvalue +# 1702| getStmt(2): [DeclStmt] declaration +# 1702| getDeclarationEntry(0): [VariableDeclarationEntry] definition of ri +# 1702| Type = [LValueReferenceType] int & +# 1702| getVariable().getInitializer(): [Initializer] initializer for ri +# 1702| getExpr(): [VariableAccess] i +# 1702| Type = [RValueReferenceType] type && +# 1702| ValueCategory = prvalue(load) +# 1702| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1702| Type = [LValueReferenceType] type & +# 1702| ValueCategory = prvalue +# 1702| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1702| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1702| ValueCategory = lvalue +# 1703| getStmt(3): [DeclStmt] declaration +# 1703| getDeclarationEntry(0): [VariableDeclarationEntry] definition of v +# 1703| Type = [IntType] int +# 1703| getVariable().getInitializer(): [Initializer] initializer for v +# 1703| getExpr(): [VariableAccess] i +# 1703| Type = [RValueReferenceType] type && +# 1703| ValueCategory = prvalue(load) +# 1703| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) # 1703| Type = [NestedTypedefType,UsingAliasTypedefType] type # 1703| ValueCategory = prvalue(load) -# 1703| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1703| Type = [LValueReferenceType] int & -# 1703| ValueCategory = prvalue -# 1703| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1703| Type = [IntType] int -# 1703| ValueCategory = lvalue -# 1704| getStmt(6): [DeclStmt] declaration -# 1704| getDeclarationEntry(0): [VariableDeclarationEntry] definition of w +# 1704| getStmt(4): [ExprStmt] ExprStmt +# 1704| getExpr(): [AssignExpr] ... = ... # 1704| Type = [IntType] int -# 1704| getVariable().getInitializer(): [Initializer] initializer for w -# 1704| getExpr(): [VariableAccess] r -# 1704| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1704| ValueCategory = prvalue(load) -# 1704| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1704| Type = [IntType] int -# 1704| ValueCategory = prvalue(load) -# 1707| getStmt(2): [BlockStmt] { ... } -# 1708| getStmt(0): [DeclStmt] declaration -# 1708| getDeclarationEntry(0): [VariableDeclarationEntry] definition of unnamed_local_variable -# 1708| Type = [LValueReferenceType] StructuredBindingTupleNoRefGet & -# 1708| getVariable().getInitializer(): [Initializer] initializer for unnamed_local_variable -# 1708| getExpr(): [VariableAccess] t -# 1708| Type = [Struct] StructuredBindingTupleNoRefGet -# 1708| ValueCategory = lvalue -# 1708| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1708| Type = [LValueReferenceType] StructuredBindingTupleNoRefGet & -# 1708| ValueCategory = prvalue -# 1709| getStmt(1): [DeclStmt] declaration -# 1709| getDeclarationEntry(0): [VariableDeclarationEntry] definition of i -# 1709| Type = [RValueReferenceType] type && -# 1709| getVariable().getInitializer(): [Initializer] initializer for i -# 1709| getExpr(): [FunctionCall] call to get -# 1709| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1709| ValueCategory = prvalue -# 1709| getQualifier(): [VariableAccess] unnamed_local_variable -# 1709| Type = [LValueReferenceType] StructuredBindingTupleNoRefGet & -# 1709| ValueCategory = prvalue(load) -# 1709| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1709| Type = [Struct] StructuredBindingTupleNoRefGet -# 1709| ValueCategory = lvalue -# 1709| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1709| Type = [LValueReferenceType] type & -# 1709| ValueCategory = prvalue -# 1709| getExpr(): [TemporaryObjectExpr] temporary object -# 1709| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1709| ValueCategory = lvalue -# 1710| getStmt(2): [DeclStmt] declaration -# 1710| getDeclarationEntry(0): [VariableDeclarationEntry] definition of r -# 1710| Type = [LValueReferenceType] int & -# 1710| getVariable().getInitializer(): [Initializer] initializer for r -# 1710| getExpr(): [FunctionCall] call to get -# 1710| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1710| ValueCategory = prvalue -# 1710| getQualifier(): [VariableAccess] unnamed_local_variable -# 1710| Type = [LValueReferenceType] StructuredBindingTupleNoRefGet & -# 1710| ValueCategory = prvalue(load) -# 1710| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1710| Type = [Struct] StructuredBindingTupleNoRefGet -# 1710| ValueCategory = lvalue +# 1704| ValueCategory = lvalue +# 1704| getLValue(): [VariableAccess] r +# 1704| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1704| ValueCategory = prvalue(load) +# 1704| getRValue(): [Literal] 5 +# 1704| Type = [IntType] int +# 1704| Value = [Literal] 5 +# 1704| ValueCategory = prvalue +# 1704| getLValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1704| Type = [IntType] int +# 1704| ValueCategory = lvalue +# 1705| getStmt(5): [DeclStmt] declaration +# 1705| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rr +# 1705| Type = [LValueReferenceType] int & +# 1705| getVariable().getInitializer(): [Initializer] initializer for rr +# 1705| getExpr(): [VariableAccess] r +# 1705| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1705| ValueCategory = prvalue(load) +# 1705| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1705| Type = [LValueReferenceType] int & +# 1705| ValueCategory = prvalue +# 1705| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1705| Type = [IntType] int +# 1705| ValueCategory = lvalue +# 1706| getStmt(6): [DeclStmt] declaration +# 1706| getDeclarationEntry(0): [VariableDeclarationEntry] definition of w +# 1706| Type = [IntType] int +# 1706| getVariable().getInitializer(): [Initializer] initializer for w +# 1706| getExpr(): [VariableAccess] r +# 1706| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1706| ValueCategory = prvalue(load) +# 1706| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1706| Type = [IntType] int +# 1706| ValueCategory = prvalue(load) +# 1709| getStmt(2): [BlockStmt] { ... } +# 1710| getStmt(0): [DeclStmt] declaration +# 1710| getDeclarationEntry(0): [VariableDeclarationEntry] definition of unnamed_local_variable +# 1710| Type = [LValueReferenceType] StructuredBindingTupleNoRefGet & +# 1710| getVariable().getInitializer(): [Initializer] initializer for unnamed_local_variable +# 1710| getExpr(): [VariableAccess] t +# 1710| Type = [Struct] StructuredBindingTupleNoRefGet +# 1710| ValueCategory = lvalue # 1710| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1710| Type = [LValueReferenceType] int & +# 1710| Type = [LValueReferenceType] StructuredBindingTupleNoRefGet & # 1710| ValueCategory = prvalue -# 1710| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1710| Type = [IntType] int -# 1710| ValueCategory = lvalue -# 1711| getStmt(3): [DeclStmt] declaration -# 1711| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rv -# 1711| Type = [RValueReferenceType] int && -# 1711| getVariable().getInitializer(): [Initializer] initializer for rv +# 1711| getStmt(1): [DeclStmt] declaration +# 1711| getDeclarationEntry(0): [VariableDeclarationEntry] definition of i +# 1711| Type = [RValueReferenceType] type && +# 1711| getVariable().getInitializer(): [Initializer] initializer for i # 1711| getExpr(): [FunctionCall] call to get # 1711| Type = [NestedTypedefType,UsingAliasTypedefType] type # 1711| ValueCategory = prvalue @@ -16597,113 +16591,151 @@ ir.cpp: # 1711| Type = [Struct] StructuredBindingTupleNoRefGet # 1711| ValueCategory = lvalue # 1711| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1711| Type = [LValueReferenceType] int & +# 1711| Type = [LValueReferenceType] type & # 1711| ValueCategory = prvalue -# 1711| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1711| Type = [IntType] int -# 1711| ValueCategory = xvalue -# 1712| getStmt(4): [ExprStmt] ExprStmt -# 1712| getExpr(): [AssignExpr] ... = ... -# 1712| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1712| ValueCategory = lvalue -# 1712| getLValue(): [VariableAccess] i -# 1712| Type = [RValueReferenceType] type && -# 1712| ValueCategory = prvalue(load) -# 1712| getRValue(): [Literal] 4 -# 1712| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1712| Value = [Literal] 4 -# 1712| ValueCategory = prvalue -# 1712| getLValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1712| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1712| ValueCategory = lvalue -# 1713| getStmt(5): [DeclStmt] declaration -# 1713| getDeclarationEntry(0): [VariableDeclarationEntry] definition of ri -# 1713| Type = [LValueReferenceType] int & -# 1713| getVariable().getInitializer(): [Initializer] initializer for ri -# 1713| getExpr(): [VariableAccess] i -# 1713| Type = [RValueReferenceType] type && -# 1713| ValueCategory = prvalue(load) +# 1711| getExpr(): [TemporaryObjectExpr] temporary object +# 1711| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1711| ValueCategory = lvalue +# 1712| getStmt(2): [DeclStmt] declaration +# 1712| getDeclarationEntry(0): [VariableDeclarationEntry] definition of r +# 1712| Type = [LValueReferenceType] int & +# 1712| getVariable().getInitializer(): [Initializer] initializer for r +# 1712| getExpr(): [FunctionCall] call to get +# 1712| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1712| ValueCategory = prvalue +# 1712| getQualifier(): [VariableAccess] unnamed_local_variable +# 1712| Type = [LValueReferenceType] StructuredBindingTupleNoRefGet & +# 1712| ValueCategory = prvalue(load) +# 1712| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1712| Type = [Struct] StructuredBindingTupleNoRefGet +# 1712| ValueCategory = lvalue +# 1712| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1712| Type = [LValueReferenceType] int & +# 1712| ValueCategory = prvalue +# 1712| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1712| Type = [IntType] int +# 1712| ValueCategory = lvalue +# 1713| getStmt(3): [DeclStmt] declaration +# 1713| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rv +# 1713| Type = [RValueReferenceType] int && +# 1713| getVariable().getInitializer(): [Initializer] initializer for rv +# 1713| getExpr(): [FunctionCall] call to get +# 1713| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1713| ValueCategory = prvalue +# 1713| getQualifier(): [VariableAccess] unnamed_local_variable +# 1713| Type = [LValueReferenceType] StructuredBindingTupleNoRefGet & +# 1713| ValueCategory = prvalue(load) +# 1713| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1713| Type = [Struct] StructuredBindingTupleNoRefGet +# 1713| ValueCategory = lvalue # 1713| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1713| Type = [LValueReferenceType] type & +# 1713| Type = [LValueReferenceType] int & # 1713| ValueCategory = prvalue # 1713| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1713| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1713| ValueCategory = lvalue -# 1714| getStmt(6): [DeclStmt] declaration -# 1714| getDeclarationEntry(0): [VariableDeclarationEntry] definition of v -# 1714| Type = [IntType] int -# 1714| getVariable().getInitializer(): [Initializer] initializer for v -# 1714| getExpr(): [VariableAccess] i -# 1714| Type = [RValueReferenceType] type && -# 1714| ValueCategory = prvalue(load) -# 1714| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1714| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1714| ValueCategory = prvalue(load) -# 1715| getStmt(7): [ExprStmt] ExprStmt -# 1715| getExpr(): [AssignExpr] ... = ... -# 1715| Type = [IntType] int -# 1715| ValueCategory = lvalue -# 1715| getLValue(): [VariableAccess] r -# 1715| Type = [LValueReferenceType] int & -# 1715| ValueCategory = prvalue(load) -# 1715| getRValue(): [Literal] 5 -# 1715| Type = [IntType] int -# 1715| Value = [Literal] 5 -# 1715| ValueCategory = prvalue -# 1715| getLValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1715| Type = [IntType] int -# 1715| ValueCategory = lvalue -# 1716| getStmt(8): [DeclStmt] declaration -# 1716| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rr -# 1716| Type = [LValueReferenceType] int & -# 1716| getVariable().getInitializer(): [Initializer] initializer for rr -# 1716| getExpr(): [VariableAccess] r -# 1716| Type = [LValueReferenceType] int & +# 1713| Type = [IntType] int +# 1713| ValueCategory = xvalue +# 1714| getStmt(4): [ExprStmt] ExprStmt +# 1714| getExpr(): [AssignExpr] ... = ... +# 1714| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1714| ValueCategory = lvalue +# 1714| getLValue(): [VariableAccess] i +# 1714| Type = [RValueReferenceType] type && +# 1714| ValueCategory = prvalue(load) +# 1714| getRValue(): [Literal] 4 +# 1714| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1714| Value = [Literal] 4 +# 1714| ValueCategory = prvalue +# 1714| getLValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1714| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1714| ValueCategory = lvalue +# 1715| getStmt(5): [DeclStmt] declaration +# 1715| getDeclarationEntry(0): [VariableDeclarationEntry] definition of ri +# 1715| Type = [LValueReferenceType] int & +# 1715| getVariable().getInitializer(): [Initializer] initializer for ri +# 1715| getExpr(): [VariableAccess] i +# 1715| Type = [RValueReferenceType] type && +# 1715| ValueCategory = prvalue(load) +# 1715| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1715| Type = [LValueReferenceType] type & +# 1715| ValueCategory = prvalue +# 1715| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1715| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1715| ValueCategory = lvalue +# 1716| getStmt(6): [DeclStmt] declaration +# 1716| getDeclarationEntry(0): [VariableDeclarationEntry] definition of v +# 1716| Type = [IntType] int +# 1716| getVariable().getInitializer(): [Initializer] initializer for v +# 1716| getExpr(): [VariableAccess] i +# 1716| Type = [RValueReferenceType] type && +# 1716| ValueCategory = prvalue(load) +# 1716| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1716| Type = [NestedTypedefType,UsingAliasTypedefType] type # 1716| ValueCategory = prvalue(load) -# 1716| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1716| Type = [LValueReferenceType] int & -# 1716| ValueCategory = prvalue -# 1716| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1716| Type = [IntType] int -# 1716| ValueCategory = lvalue -# 1717| getStmt(9): [DeclStmt] declaration -# 1717| getDeclarationEntry(0): [VariableDeclarationEntry] definition of w +# 1717| getStmt(7): [ExprStmt] ExprStmt +# 1717| getExpr(): [AssignExpr] ... = ... # 1717| Type = [IntType] int -# 1717| getVariable().getInitializer(): [Initializer] initializer for w -# 1717| getExpr(): [VariableAccess] r -# 1717| Type = [LValueReferenceType] int & -# 1717| ValueCategory = prvalue(load) -# 1717| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1717| Type = [IntType] int -# 1717| ValueCategory = prvalue(load) -# 1719| getStmt(3): [ReturnStmt] return ... -# 1721| [TopLevelFunction] void array_structured_binding_non_ref_init() -# 1721| : -# 1721| getEntryPoint(): [BlockStmt] { ... } -# 1722| getStmt(0): [DeclStmt] declaration -# 1722| getDeclarationEntry(0): [VariableDeclarationEntry] definition of xs -# 1722| Type = [ArrayType] int[2] -# 1722| getVariable().getInitializer(): [Initializer] initializer for xs -# 1722| getExpr(): [ArrayAggregateLiteral] {...} -# 1722| Type = [ArrayType] int[2] -# 1722| ValueCategory = prvalue -# 1722| getAnElementExpr(0): [Literal] 1 -# 1722| Type = [IntType] int -# 1722| Value = [Literal] 1 -# 1722| ValueCategory = prvalue -# 1722| getAnElementExpr(1): [Literal] 2 -# 1722| Type = [IntType] int -# 1722| Value = [Literal] 2 -# 1722| ValueCategory = prvalue -# 1723| getStmt(1): [DeclStmt] declaration -# 1723| getDeclarationEntry(0): [VariableDeclarationEntry] definition of (unnamed local variable) -# 1723| Type = [ArrayType] int[2] -# 1723| getVariable().getInitializer(): [Initializer] initializer for (unnamed local variable) -# 1723| getExpr(): [VariableAccess] xs -# 1723| Type = [ArrayType] int[2] -# 1723| ValueCategory = prvalue(load) -# 1723| getDeclarationEntry(1): [VariableDeclarationEntry] definition of x0 -# 1723| Type = [IntType] int +# 1717| ValueCategory = lvalue +# 1717| getLValue(): [VariableAccess] r +# 1717| Type = [LValueReferenceType] int & +# 1717| ValueCategory = prvalue(load) +# 1717| getRValue(): [Literal] 5 +# 1717| Type = [IntType] int +# 1717| Value = [Literal] 5 +# 1717| ValueCategory = prvalue +# 1717| getLValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1717| Type = [IntType] int +# 1717| ValueCategory = lvalue +# 1718| getStmt(8): [DeclStmt] declaration +# 1718| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rr +# 1718| Type = [LValueReferenceType] int & +# 1718| getVariable().getInitializer(): [Initializer] initializer for rr +# 1718| getExpr(): [VariableAccess] r +# 1718| Type = [LValueReferenceType] int & +# 1718| ValueCategory = prvalue(load) +# 1718| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1718| Type = [LValueReferenceType] int & +# 1718| ValueCategory = prvalue +# 1718| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1718| Type = [IntType] int +# 1718| ValueCategory = lvalue +# 1719| getStmt(9): [DeclStmt] declaration +# 1719| getDeclarationEntry(0): [VariableDeclarationEntry] definition of w +# 1719| Type = [IntType] int +# 1719| getVariable().getInitializer(): [Initializer] initializer for w +# 1719| getExpr(): [VariableAccess] r +# 1719| Type = [LValueReferenceType] int & +# 1719| ValueCategory = prvalue(load) +# 1719| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1719| Type = [IntType] int +# 1719| ValueCategory = prvalue(load) +# 1721| getStmt(3): [ReturnStmt] return ... +# 1723| [TopLevelFunction] void array_structured_binding_non_ref_init() +# 1723| : +# 1723| getEntryPoint(): [BlockStmt] { ... } +# 1724| getStmt(0): [DeclStmt] declaration +# 1724| getDeclarationEntry(0): [VariableDeclarationEntry] definition of xs +# 1724| Type = [ArrayType] int[2] +# 1724| getVariable().getInitializer(): [Initializer] initializer for xs +# 1724| getExpr(): [ArrayAggregateLiteral] {...} +# 1724| Type = [ArrayType] int[2] +# 1724| ValueCategory = prvalue +# 1724| getAnElementExpr(0): [Literal] 1 +# 1724| Type = [IntType] int +# 1724| Value = [Literal] 1 +# 1724| ValueCategory = prvalue +# 1724| getAnElementExpr(1): [Literal] 2 +# 1724| Type = [IntType] int +# 1724| Value = [Literal] 2 +# 1724| ValueCategory = prvalue +# 1725| getStmt(1): [DeclStmt] declaration +# 1725| getDeclarationEntry(0): [VariableDeclarationEntry] definition of (unnamed local variable) +# 1725| Type = [ArrayType] int[2] +# 1725| getVariable().getInitializer(): [Initializer] initializer for (unnamed local variable) +# 1725| getExpr(): [VariableAccess] xs +# 1725| Type = [ArrayType] int[2] +# 1725| ValueCategory = prvalue(load) +# 1725| getDeclarationEntry(1): [VariableDeclarationEntry] definition of x0 +# 1725| Type = [IntType] int #-----| getVariable().getInitializer(): [Initializer] initializer for x0 #-----| getExpr(): [ArrayExpr] access to array #-----| Type = [IntType] int @@ -16718,8 +16750,8 @@ ir.cpp: #-----| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion #-----| Type = [IntPointerType] int * #-----| ValueCategory = prvalue -# 1723| getDeclarationEntry(2): [VariableDeclarationEntry] definition of x1 -# 1723| Type = [IntType] int +# 1725| getDeclarationEntry(2): [VariableDeclarationEntry] definition of x1 +# 1725| Type = [IntType] int #-----| getVariable().getInitializer(): [Initializer] initializer for x1 #-----| getExpr(): [ArrayExpr] access to array #-----| Type = [IntType] int @@ -16734,351 +16766,351 @@ ir.cpp: #-----| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion #-----| Type = [IntPointerType] int * #-----| ValueCategory = prvalue -# 1724| getStmt(2): [ReturnStmt] return ... -# 1726| [CopyAssignmentOperator] CapturedLambdaMyObj& CapturedLambdaMyObj::operator=(CapturedLambdaMyObj const&) -# 1726| : +# 1726| getStmt(2): [ReturnStmt] return ... +# 1728| [CopyAssignmentOperator] CapturedLambdaMyObj& CapturedLambdaMyObj::operator=(CapturedLambdaMyObj const&) +# 1728| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const CapturedLambdaMyObj & -# 1726| [MoveAssignmentOperator] CapturedLambdaMyObj& CapturedLambdaMyObj::operator=(CapturedLambdaMyObj&&) -# 1726| : +# 1728| [MoveAssignmentOperator] CapturedLambdaMyObj& CapturedLambdaMyObj::operator=(CapturedLambdaMyObj&&) +# 1728| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] CapturedLambdaMyObj && -# 1726| [CopyConstructor] void CapturedLambdaMyObj::CapturedLambdaMyObj(CapturedLambdaMyObj const&) -# 1726| : +# 1728| [CopyConstructor] void CapturedLambdaMyObj::CapturedLambdaMyObj(CapturedLambdaMyObj const&) +# 1728| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const CapturedLambdaMyObj & -# 1726| [MoveConstructor] void CapturedLambdaMyObj::CapturedLambdaMyObj(CapturedLambdaMyObj&&) -# 1726| : +# 1728| [MoveConstructor] void CapturedLambdaMyObj::CapturedLambdaMyObj(CapturedLambdaMyObj&&) +# 1728| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] CapturedLambdaMyObj && -# 1729| [Constructor] void CapturedLambdaMyObj::CapturedLambdaMyObj() -# 1729| : -# 1729| : -# 1729| getEntryPoint(): [BlockStmt] { ... } -# 1729| getStmt(0): [ReturnStmt] return ... -# 1732| [TopLevelFunction] void captured_lambda(int, int&, int&&) -# 1732| : -# 1732| getParameter(0): [Parameter] x -# 1732| Type = [IntType] int -# 1732| getParameter(1): [Parameter] y -# 1732| Type = [LValueReferenceType] int & -# 1732| getParameter(2): [Parameter] z -# 1732| Type = [RValueReferenceType] int && -# 1733| getEntryPoint(): [BlockStmt] { ... } -# 1734| getStmt(0): [DeclStmt] declaration -# 1734| getDeclarationEntry(0): [VariableDeclarationEntry] definition of obj1 -# 1734| Type = [LValueReferenceType] const CapturedLambdaMyObj & -# 1734| getVariable().getInitializer(): [Initializer] initializer for obj1 -# 1734| getExpr(): [ConstructorCall] call to CapturedLambdaMyObj -# 1734| Type = [VoidType] void -# 1734| ValueCategory = prvalue -# 1734| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1734| Type = [LValueReferenceType] const CapturedLambdaMyObj & -# 1734| ValueCategory = prvalue -# 1734| getExpr(): [CStyleCast] (const CapturedLambdaMyObj)... -# 1734| Conversion = [GlvalueConversion] glvalue conversion -# 1734| Type = [SpecifiedType] const CapturedLambdaMyObj -# 1734| ValueCategory = lvalue -# 1734| getExpr(): [TemporaryObjectExpr] temporary object -# 1734| Type = [Class] CapturedLambdaMyObj -# 1734| ValueCategory = lvalue -# 1735| getStmt(1): [DeclStmt] declaration -# 1735| getDeclarationEntry(0): [VariableDeclarationEntry] definition of obj2 -# 1735| Type = [Class] CapturedLambdaMyObj -# 1735| getVariable().getInitializer(): [Initializer] initializer for obj2 -# 1735| getExpr(): [ConstructorCall] call to CapturedLambdaMyObj -# 1735| Type = [VoidType] void -# 1735| ValueCategory = prvalue -# 1737| getStmt(2): [DeclStmt] declaration -# 1737| getDeclarationEntry(0): [VariableDeclarationEntry] definition of lambda_outer -# 1737| Type = [Closure,LocalClass] decltype([...](...){...}) -# 1737| getVariable().getInitializer(): [Initializer] initializer for lambda_outer -# 1737| getExpr(): [LambdaExpression] [...](...){...} -# 1737| Type = [Closure,LocalClass] decltype([...](...){...}) +# 1731| [Constructor] void CapturedLambdaMyObj::CapturedLambdaMyObj() +# 1731| : +# 1731| : +# 1731| getEntryPoint(): [BlockStmt] { ... } +# 1731| getStmt(0): [ReturnStmt] return ... +# 1734| [TopLevelFunction] void captured_lambda(int, int&, int&&) +# 1734| : +# 1734| getParameter(0): [Parameter] x +# 1734| Type = [IntType] int +# 1734| getParameter(1): [Parameter] y +# 1734| Type = [LValueReferenceType] int & +# 1734| getParameter(2): [Parameter] z +# 1734| Type = [RValueReferenceType] int && +# 1735| getEntryPoint(): [BlockStmt] { ... } +# 1736| getStmt(0): [DeclStmt] declaration +# 1736| getDeclarationEntry(0): [VariableDeclarationEntry] definition of obj1 +# 1736| Type = [LValueReferenceType] const CapturedLambdaMyObj & +# 1736| getVariable().getInitializer(): [Initializer] initializer for obj1 +# 1736| getExpr(): [ConstructorCall] call to CapturedLambdaMyObj +# 1736| Type = [VoidType] void +# 1736| ValueCategory = prvalue +# 1736| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1736| Type = [LValueReferenceType] const CapturedLambdaMyObj & +# 1736| ValueCategory = prvalue +# 1736| getExpr(): [CStyleCast] (const CapturedLambdaMyObj)... +# 1736| Conversion = [GlvalueConversion] glvalue conversion +# 1736| Type = [SpecifiedType] const CapturedLambdaMyObj +# 1736| ValueCategory = lvalue +# 1736| getExpr(): [TemporaryObjectExpr] temporary object +# 1736| Type = [Class] CapturedLambdaMyObj +# 1736| ValueCategory = lvalue +# 1737| getStmt(1): [DeclStmt] declaration +# 1737| getDeclarationEntry(0): [VariableDeclarationEntry] definition of obj2 +# 1737| Type = [Class] CapturedLambdaMyObj +# 1737| getVariable().getInitializer(): [Initializer] initializer for obj2 +# 1737| getExpr(): [ConstructorCall] call to CapturedLambdaMyObj +# 1737| Type = [VoidType] void # 1737| ValueCategory = prvalue -# 1737| getInitializer(): [ClassAggregateLiteral] {...} -# 1737| Type = [Closure,LocalClass] decltype([...](...){...}) -# 1737| ValueCategory = prvalue -# 1737| getAFieldExpr(obj1): [VariableAccess] obj1 -# 1737| Type = [LValueReferenceType] const CapturedLambdaMyObj & -# 1737| ValueCategory = prvalue(load) -# 1737| getAFieldExpr(obj2): [VariableAccess] obj2 -# 1737| Type = [Class] CapturedLambdaMyObj -# 1737| ValueCategory = prvalue(load) -# 1737| getAFieldExpr(x): [VariableAccess] x -# 1737| Type = [IntType] int -# 1737| ValueCategory = prvalue(load) -# 1737| getAFieldExpr(y): [VariableAccess] y -# 1737| Type = [LValueReferenceType] int & -# 1737| ValueCategory = prvalue(load) -# 1737| getAFieldExpr(z): [VariableAccess] z -# 1737| Type = [RValueReferenceType] int && -# 1737| ValueCategory = prvalue(load) -#-----| getAFieldExpr(obj1).getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -#-----| Type = [SpecifiedType] const CapturedLambdaMyObj -#-----| ValueCategory = prvalue(load) -# 1739| getAFieldExpr(y).getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1739| Type = [IntType] int +# 1739| getStmt(2): [DeclStmt] declaration +# 1739| getDeclarationEntry(0): [VariableDeclarationEntry] definition of lambda_outer +# 1739| Type = [Closure,LocalClass] decltype([...](...){...}) +# 1739| getVariable().getInitializer(): [Initializer] initializer for lambda_outer +# 1739| getExpr(): [LambdaExpression] [...](...){...} +# 1739| Type = [Closure,LocalClass] decltype([...](...){...}) +# 1739| ValueCategory = prvalue +# 1739| getInitializer(): [ClassAggregateLiteral] {...} +# 1739| Type = [Closure,LocalClass] decltype([...](...){...}) +# 1739| ValueCategory = prvalue +# 1739| getAFieldExpr(obj1): [VariableAccess] obj1 +# 1739| Type = [LValueReferenceType] const CapturedLambdaMyObj & +# 1739| ValueCategory = prvalue(load) +# 1739| getAFieldExpr(obj2): [VariableAccess] obj2 +# 1739| Type = [Class] CapturedLambdaMyObj # 1739| ValueCategory = prvalue(load) -# 1739| getAFieldExpr(z).getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1739| getAFieldExpr(x): [VariableAccess] x # 1739| Type = [IntType] int # 1739| ValueCategory = prvalue(load) -# 1740| getStmt(3): [ReturnStmt] return ... -# 1737| [CopyAssignmentOperator] (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1737, col. 25)& (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1737, col. 25)::operator=((void captured_lambda(int, int&, int&&))::(lambda [] type at line 1737, col. 25) const&) -# 1737| : +# 1739| getAFieldExpr(y): [VariableAccess] y +# 1739| Type = [LValueReferenceType] int & +# 1739| ValueCategory = prvalue(load) +# 1739| getAFieldExpr(z): [VariableAccess] z +# 1739| Type = [RValueReferenceType] int && +# 1739| ValueCategory = prvalue(load) +#-----| getAFieldExpr(obj1).getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +#-----| Type = [SpecifiedType] const CapturedLambdaMyObj +#-----| ValueCategory = prvalue(load) +# 1741| getAFieldExpr(y).getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1741| Type = [IntType] int +# 1741| ValueCategory = prvalue(load) +# 1741| getAFieldExpr(z).getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1741| Type = [IntType] int +# 1741| ValueCategory = prvalue(load) +# 1742| getStmt(3): [ReturnStmt] return ... +# 1739| [CopyAssignmentOperator] (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1739, col. 25)& (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1739, col. 25)::operator=((void captured_lambda(int, int&, int&&))::(lambda [] type at line 1739, col. 25) const&) +# 1739| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) -#-----| Type = [LValueReferenceType] const lambda [] type at line 1737, col. 25 & -# 1737| [CopyConstructor] void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1737, col. 25)::(unnamed constructor)((void captured_lambda(int, int&, int&&))::(lambda [] type at line 1737, col. 25) const&) -# 1737| : +#-----| Type = [LValueReferenceType] const lambda [] type at line 1739, col. 25 & +# 1739| [CopyConstructor] void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1739, col. 25)::(unnamed constructor)((void captured_lambda(int, int&, int&&))::(lambda [] type at line 1739, col. 25) const&) +# 1739| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) -#-----| Type = [LValueReferenceType] const lambda [] type at line 1737, col. 25 & -# 1737| [MoveConstructor] void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1737, col. 25)::(unnamed constructor)((void captured_lambda(int, int&, int&&))::(lambda [] type at line 1737, col. 25)&&) -# 1737| : +#-----| Type = [LValueReferenceType] const lambda [] type at line 1739, col. 25 & +# 1739| [MoveConstructor] void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1739, col. 25)::(unnamed constructor)((void captured_lambda(int, int&, int&&))::(lambda [] type at line 1739, col. 25)&&) +# 1739| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) -#-----| Type = [RValueReferenceType] lambda [] type at line 1737, col. 25 && -# 1737| [Constructor] void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1737, col. 25)::(unnamed constructor)() -# 1737| : -# 1737| [ConstMemberFunction] void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1737, col. 25)::operator()() const -# 1737| : -# 1737| getEntryPoint(): [BlockStmt] { ... } -# 1738| getStmt(0): [DeclStmt] declaration -# 1738| getDeclarationEntry(0): [VariableDeclarationEntry] definition of lambda_inner -# 1738| Type = [Closure,LocalClass] decltype([...](...){...}) -# 1738| getVariable().getInitializer(): [Initializer] initializer for lambda_inner -# 1738| getExpr(): [LambdaExpression] [...](...){...} -# 1738| Type = [Closure,LocalClass] decltype([...](...){...}) -# 1738| ValueCategory = prvalue -# 1738| getInitializer(): [ClassAggregateLiteral] {...} -# 1738| Type = [Closure,LocalClass] decltype([...](...){...}) -# 1738| ValueCategory = prvalue -# 1738| getAFieldExpr(obj1): [PointerFieldAccess] obj1 -# 1738| Type = [SpecifiedType] const CapturedLambdaMyObj -# 1738| ValueCategory = prvalue(load) -# 1738| getQualifier(): [ThisExpr] this -# 1738| Type = [PointerType] lambda [] type at line 1738, col. 29 * -# 1738| ValueCategory = prvalue(load) -# 1738| getAFieldExpr(obj2): [PointerFieldAccess] obj2 -# 1738| Type = [Class] CapturedLambdaMyObj -# 1738| ValueCategory = prvalue(load) -# 1738| getQualifier(): [ThisExpr] this -# 1738| Type = [PointerType] lambda [] type at line 1738, col. 29 * -# 1738| ValueCategory = prvalue(load) -# 1738| getAFieldExpr(x): [PointerFieldAccess] x -# 1738| Type = [IntType] int -# 1738| ValueCategory = prvalue(load) -# 1738| getQualifier(): [ThisExpr] this -# 1738| Type = [PointerType] const lambda [] type at line 1737, col. 25 * -# 1738| ValueCategory = prvalue(load) -# 1738| getAFieldExpr(y): [PointerFieldAccess] y -# 1738| Type = [IntType] int -# 1738| ValueCategory = prvalue(load) -# 1738| getQualifier(): [ThisExpr] this -# 1738| Type = [PointerType] const lambda [] type at line 1737, col. 25 * -# 1738| ValueCategory = prvalue(load) -# 1738| getAFieldExpr(z): [PointerFieldAccess] z -# 1738| Type = [IntType] int -# 1738| ValueCategory = prvalue(load) -# 1738| getQualifier(): [ThisExpr] this -# 1738| Type = [PointerType] const lambda [] type at line 1737, col. 25 * -# 1738| ValueCategory = prvalue(load) -# 1739| getStmt(1): [ReturnStmt] return ... -# 1738| [CopyAssignmentOperator] (void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1737, col. 25)::operator()() const)::(lambda [] type at line 1738, col. 29)& (void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1737, col. 25)::operator()() const)::(lambda [] type at line 1738, col. 29)::operator=((void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1737, col. 25)::operator()() const)::(lambda [] type at line 1738, col. 29) const&) -# 1738| : +#-----| Type = [RValueReferenceType] lambda [] type at line 1739, col. 25 && +# 1739| [Constructor] void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1739, col. 25)::(unnamed constructor)() +# 1739| : +# 1739| [ConstMemberFunction] void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1739, col. 25)::operator()() const +# 1739| : +# 1739| getEntryPoint(): [BlockStmt] { ... } +# 1740| getStmt(0): [DeclStmt] declaration +# 1740| getDeclarationEntry(0): [VariableDeclarationEntry] definition of lambda_inner +# 1740| Type = [Closure,LocalClass] decltype([...](...){...}) +# 1740| getVariable().getInitializer(): [Initializer] initializer for lambda_inner +# 1740| getExpr(): [LambdaExpression] [...](...){...} +# 1740| Type = [Closure,LocalClass] decltype([...](...){...}) +# 1740| ValueCategory = prvalue +# 1740| getInitializer(): [ClassAggregateLiteral] {...} +# 1740| Type = [Closure,LocalClass] decltype([...](...){...}) +# 1740| ValueCategory = prvalue +# 1740| getAFieldExpr(obj1): [PointerFieldAccess] obj1 +# 1740| Type = [SpecifiedType] const CapturedLambdaMyObj +# 1740| ValueCategory = prvalue(load) +# 1740| getQualifier(): [ThisExpr] this +# 1740| Type = [PointerType] lambda [] type at line 1740, col. 29 * +# 1740| ValueCategory = prvalue(load) +# 1740| getAFieldExpr(obj2): [PointerFieldAccess] obj2 +# 1740| Type = [Class] CapturedLambdaMyObj +# 1740| ValueCategory = prvalue(load) +# 1740| getQualifier(): [ThisExpr] this +# 1740| Type = [PointerType] lambda [] type at line 1740, col. 29 * +# 1740| ValueCategory = prvalue(load) +# 1740| getAFieldExpr(x): [PointerFieldAccess] x +# 1740| Type = [IntType] int +# 1740| ValueCategory = prvalue(load) +# 1740| getQualifier(): [ThisExpr] this +# 1740| Type = [PointerType] const lambda [] type at line 1739, col. 25 * +# 1740| ValueCategory = prvalue(load) +# 1740| getAFieldExpr(y): [PointerFieldAccess] y +# 1740| Type = [IntType] int +# 1740| ValueCategory = prvalue(load) +# 1740| getQualifier(): [ThisExpr] this +# 1740| Type = [PointerType] const lambda [] type at line 1739, col. 25 * +# 1740| ValueCategory = prvalue(load) +# 1740| getAFieldExpr(z): [PointerFieldAccess] z +# 1740| Type = [IntType] int +# 1740| ValueCategory = prvalue(load) +# 1740| getQualifier(): [ThisExpr] this +# 1740| Type = [PointerType] const lambda [] type at line 1739, col. 25 * +# 1740| ValueCategory = prvalue(load) +# 1741| getStmt(1): [ReturnStmt] return ... +# 1740| [CopyAssignmentOperator] (void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1739, col. 25)::operator()() const)::(lambda [] type at line 1740, col. 29)& (void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1739, col. 25)::operator()() const)::(lambda [] type at line 1740, col. 29)::operator=((void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1739, col. 25)::operator()() const)::(lambda [] type at line 1740, col. 29) const&) +# 1740| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) -#-----| Type = [LValueReferenceType] const lambda [] type at line 1738, col. 29 & -# 1738| [CopyConstructor] void (void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1737, col. 25)::operator()() const)::(lambda [] type at line 1738, col. 29)::(unnamed constructor)((void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1737, col. 25)::operator()() const)::(lambda [] type at line 1738, col. 29) const&) -# 1738| : +#-----| Type = [LValueReferenceType] const lambda [] type at line 1740, col. 29 & +# 1740| [CopyConstructor] void (void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1739, col. 25)::operator()() const)::(lambda [] type at line 1740, col. 29)::(unnamed constructor)((void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1739, col. 25)::operator()() const)::(lambda [] type at line 1740, col. 29) const&) +# 1740| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) -#-----| Type = [LValueReferenceType] const lambda [] type at line 1738, col. 29 & -# 1738| [MoveConstructor] void (void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1737, col. 25)::operator()() const)::(lambda [] type at line 1738, col. 29)::(unnamed constructor)((void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1737, col. 25)::operator()() const)::(lambda [] type at line 1738, col. 29)&&) -# 1738| : +#-----| Type = [LValueReferenceType] const lambda [] type at line 1740, col. 29 & +# 1740| [MoveConstructor] void (void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1739, col. 25)::operator()() const)::(lambda [] type at line 1740, col. 29)::(unnamed constructor)((void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1739, col. 25)::operator()() const)::(lambda [] type at line 1740, col. 29)&&) +# 1740| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) -#-----| Type = [RValueReferenceType] lambda [] type at line 1738, col. 29 && -# 1738| [Constructor] void (void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1737, col. 25)::operator()() const)::(lambda [] type at line 1738, col. 29)::(unnamed constructor)() -# 1738| : -# 1738| [ConstMemberFunction] void (void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1737, col. 25)::operator()() const)::(lambda [] type at line 1738, col. 29)::operator()() const -# 1738| : -# 1738| getEntryPoint(): [BlockStmt] { ... } -# 1738| getStmt(0): [EmptyStmt] ; -# 1738| getStmt(1): [ReturnStmt] return ... -# 1742| [TopLevelFunction] int goto_on_same_line() -# 1742| : -# 1742| getEntryPoint(): [BlockStmt] { ... } -# 1743| getStmt(0): [DeclStmt] declaration -# 1743| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x -# 1743| Type = [IntType] int -# 1743| getVariable().getInitializer(): [Initializer] initializer for x -# 1743| getExpr(): [Literal] 42 -# 1743| Type = [IntType] int -# 1743| Value = [Literal] 42 -# 1743| ValueCategory = prvalue -# 1744| getStmt(1): [GotoStmt] goto ... -# 1744| getStmt(2): [LabelStmt] label ...: -# 1745| getStmt(3): [ReturnStmt] return ... -# 1745| getExpr(): [VariableAccess] x +#-----| Type = [RValueReferenceType] lambda [] type at line 1740, col. 29 && +# 1740| [Constructor] void (void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1739, col. 25)::operator()() const)::(lambda [] type at line 1740, col. 29)::(unnamed constructor)() +# 1740| : +# 1740| [ConstMemberFunction] void (void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1739, col. 25)::operator()() const)::(lambda [] type at line 1740, col. 29)::operator()() const +# 1740| : +# 1740| getEntryPoint(): [BlockStmt] { ... } +# 1740| getStmt(0): [EmptyStmt] ; +# 1740| getStmt(1): [ReturnStmt] return ... +# 1744| [TopLevelFunction] int goto_on_same_line() +# 1744| : +# 1744| getEntryPoint(): [BlockStmt] { ... } +# 1745| getStmt(0): [DeclStmt] declaration +# 1745| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x # 1745| Type = [IntType] int -# 1745| ValueCategory = prvalue(load) -# 1748| [CopyAssignmentOperator] TrivialLambdaClass& TrivialLambdaClass::operator=(TrivialLambdaClass const&) -# 1748| : +# 1745| getVariable().getInitializer(): [Initializer] initializer for x +# 1745| getExpr(): [Literal] 42 +# 1745| Type = [IntType] int +# 1745| Value = [Literal] 42 +# 1745| ValueCategory = prvalue +# 1746| getStmt(1): [GotoStmt] goto ... +# 1746| getStmt(2): [LabelStmt] label ...: +# 1747| getStmt(3): [ReturnStmt] return ... +# 1747| getExpr(): [VariableAccess] x +# 1747| Type = [IntType] int +# 1747| ValueCategory = prvalue(load) +# 1750| [CopyAssignmentOperator] TrivialLambdaClass& TrivialLambdaClass::operator=(TrivialLambdaClass const&) +# 1750| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const TrivialLambdaClass & -# 1748| [MoveAssignmentOperator] TrivialLambdaClass& TrivialLambdaClass::operator=(TrivialLambdaClass&&) -# 1748| : +# 1750| [MoveAssignmentOperator] TrivialLambdaClass& TrivialLambdaClass::operator=(TrivialLambdaClass&&) +# 1750| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] TrivialLambdaClass && -# 1750| [ConstMemberFunction] void TrivialLambdaClass::m() const -# 1750| : -# 1750| getEntryPoint(): [BlockStmt] { ... } -# 1751| getStmt(0): [DeclStmt] declaration -# 1751| getDeclarationEntry(0): [VariableDeclarationEntry] definition of l_m_outer -# 1751| Type = [Closure,LocalClass] decltype([...](...){...}) -# 1751| getVariable().getInitializer(): [Initializer] initializer for l_m_outer -# 1751| getExpr(): [LambdaExpression] [...](...){...} -# 1751| Type = [Closure,LocalClass] decltype([...](...){...}) -# 1751| ValueCategory = prvalue -# 1751| getInitializer(): [ClassAggregateLiteral] {...} -# 1751| Type = [Closure,LocalClass] decltype([...](...){...}) -# 1751| ValueCategory = prvalue -# 1751| getAFieldExpr((captured this)): [PointerDereferenceExpr] * ... -# 1751| Type = [SpecifiedType] const TrivialLambdaClass -# 1751| ValueCategory = prvalue(load) -# 1751| getOperand(): [ThisExpr] this -# 1751| Type = [SpecifiedType] const TrivialLambdaClass *const -# 1751| ValueCategory = prvalue(load) -# 1758| getStmt(1): [ReturnStmt] return ... -# 1751| [CopyAssignmentOperator] (void TrivialLambdaClass::m() const)::(lambda [] type at line 1751, col. 26)& (void TrivialLambdaClass::m() const)::(lambda [] type at line 1751, col. 26)::operator=((void TrivialLambdaClass::m() const)::(lambda [] type at line 1751, col. 26) const&) -# 1751| : +# 1752| [ConstMemberFunction] void TrivialLambdaClass::m() const +# 1752| : +# 1752| getEntryPoint(): [BlockStmt] { ... } +# 1753| getStmt(0): [DeclStmt] declaration +# 1753| getDeclarationEntry(0): [VariableDeclarationEntry] definition of l_m_outer +# 1753| Type = [Closure,LocalClass] decltype([...](...){...}) +# 1753| getVariable().getInitializer(): [Initializer] initializer for l_m_outer +# 1753| getExpr(): [LambdaExpression] [...](...){...} +# 1753| Type = [Closure,LocalClass] decltype([...](...){...}) +# 1753| ValueCategory = prvalue +# 1753| getInitializer(): [ClassAggregateLiteral] {...} +# 1753| Type = [Closure,LocalClass] decltype([...](...){...}) +# 1753| ValueCategory = prvalue +# 1753| getAFieldExpr((captured this)): [PointerDereferenceExpr] * ... +# 1753| Type = [SpecifiedType] const TrivialLambdaClass +# 1753| ValueCategory = prvalue(load) +# 1753| getOperand(): [ThisExpr] this +# 1753| Type = [SpecifiedType] const TrivialLambdaClass *const +# 1753| ValueCategory = prvalue(load) +# 1760| getStmt(1): [ReturnStmt] return ... +# 1753| [CopyAssignmentOperator] (void TrivialLambdaClass::m() const)::(lambda [] type at line 1753, col. 26)& (void TrivialLambdaClass::m() const)::(lambda [] type at line 1753, col. 26)::operator=((void TrivialLambdaClass::m() const)::(lambda [] type at line 1753, col. 26) const&) +# 1753| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) -#-----| Type = [LValueReferenceType] const lambda [] type at line 1751, col. 26 & -# 1751| [CopyConstructor] void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1751, col. 26)::(unnamed constructor)((void TrivialLambdaClass::m() const)::(lambda [] type at line 1751, col. 26) const&) -# 1751| : +#-----| Type = [LValueReferenceType] const lambda [] type at line 1753, col. 26 & +# 1753| [CopyConstructor] void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1753, col. 26)::(unnamed constructor)((void TrivialLambdaClass::m() const)::(lambda [] type at line 1753, col. 26) const&) +# 1753| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) -#-----| Type = [LValueReferenceType] const lambda [] type at line 1751, col. 26 & -# 1751| [MoveConstructor] void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1751, col. 26)::(unnamed constructor)((void TrivialLambdaClass::m() const)::(lambda [] type at line 1751, col. 26)&&) -# 1751| : +#-----| Type = [LValueReferenceType] const lambda [] type at line 1753, col. 26 & +# 1753| [MoveConstructor] void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1753, col. 26)::(unnamed constructor)((void TrivialLambdaClass::m() const)::(lambda [] type at line 1753, col. 26)&&) +# 1753| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) -#-----| Type = [RValueReferenceType] lambda [] type at line 1751, col. 26 && -# 1751| [Constructor] void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1751, col. 26)::(unnamed constructor)() -# 1751| : -# 1751| [ConstMemberFunction] void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1751, col. 26)::operator()() const -# 1751| : -# 1751| getEntryPoint(): [BlockStmt] { ... } -# 1752| getStmt(0): [ExprStmt] ExprStmt -# 1752| getExpr(): [FunctionCall] call to m -# 1752| Type = [VoidType] void -# 1752| ValueCategory = prvalue -# 1752| getQualifier(): [AddressOfExpr] & ... -# 1752| Type = [PointerType] const TrivialLambdaClass * -# 1752| ValueCategory = prvalue -# 1752| getOperand(): [ImplicitThisFieldAccess,PointerFieldAccess] (captured this) -# 1752| Type = [SpecifiedType] const TrivialLambdaClass -# 1752| ValueCategory = lvalue -# 1752| getQualifier(): [ThisExpr] this -# 1752| Type = [PointerType] const lambda [] type at line 1751, col. 26 * -# 1752| ValueCategory = prvalue(load) -# 1754| getStmt(1): [DeclStmt] declaration -# 1754| getDeclarationEntry(0): [VariableDeclarationEntry] definition of l_m_inner -# 1754| Type = [Closure,LocalClass] decltype([...](...){...}) -# 1754| getVariable().getInitializer(): [Initializer] initializer for l_m_inner -# 1754| getExpr(): [LambdaExpression] [...](...){...} -# 1754| Type = [Closure,LocalClass] decltype([...](...){...}) -# 1754| ValueCategory = prvalue -# 1754| getInitializer(): [ClassAggregateLiteral] {...} -# 1754| Type = [Closure,LocalClass] decltype([...](...){...}) -# 1754| ValueCategory = prvalue -# 1754| getAFieldExpr((captured this)): [PointerFieldAccess] (captured this) -# 1754| Type = [SpecifiedType] const TrivialLambdaClass -# 1754| ValueCategory = prvalue(load) -# 1754| getQualifier(): [ThisExpr] this -# 1754| Type = [PointerType] lambda [] type at line 1754, col. 30 * -# 1754| ValueCategory = prvalue(load) -# 1757| getStmt(2): [ReturnStmt] return ... -# 1754| [CopyAssignmentOperator] (void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1751, col. 26)::operator()() const)::(lambda [] type at line 1754, col. 30)& (void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1751, col. 26)::operator()() const)::(lambda [] type at line 1754, col. 30)::operator=((void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1751, col. 26)::operator()() const)::(lambda [] type at line 1754, col. 30) const&) -# 1754| : +#-----| Type = [RValueReferenceType] lambda [] type at line 1753, col. 26 && +# 1753| [Constructor] void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1753, col. 26)::(unnamed constructor)() +# 1753| : +# 1753| [ConstMemberFunction] void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1753, col. 26)::operator()() const +# 1753| : +# 1753| getEntryPoint(): [BlockStmt] { ... } +# 1754| getStmt(0): [ExprStmt] ExprStmt +# 1754| getExpr(): [FunctionCall] call to m +# 1754| Type = [VoidType] void +# 1754| ValueCategory = prvalue +# 1754| getQualifier(): [AddressOfExpr] & ... +# 1754| Type = [PointerType] const TrivialLambdaClass * +# 1754| ValueCategory = prvalue +# 1754| getOperand(): [ImplicitThisFieldAccess,PointerFieldAccess] (captured this) +# 1754| Type = [SpecifiedType] const TrivialLambdaClass +# 1754| ValueCategory = lvalue +# 1754| getQualifier(): [ThisExpr] this +# 1754| Type = [PointerType] const lambda [] type at line 1753, col. 26 * +# 1754| ValueCategory = prvalue(load) +# 1756| getStmt(1): [DeclStmt] declaration +# 1756| getDeclarationEntry(0): [VariableDeclarationEntry] definition of l_m_inner +# 1756| Type = [Closure,LocalClass] decltype([...](...){...}) +# 1756| getVariable().getInitializer(): [Initializer] initializer for l_m_inner +# 1756| getExpr(): [LambdaExpression] [...](...){...} +# 1756| Type = [Closure,LocalClass] decltype([...](...){...}) +# 1756| ValueCategory = prvalue +# 1756| getInitializer(): [ClassAggregateLiteral] {...} +# 1756| Type = [Closure,LocalClass] decltype([...](...){...}) +# 1756| ValueCategory = prvalue +# 1756| getAFieldExpr((captured this)): [PointerFieldAccess] (captured this) +# 1756| Type = [SpecifiedType] const TrivialLambdaClass +# 1756| ValueCategory = prvalue(load) +# 1756| getQualifier(): [ThisExpr] this +# 1756| Type = [PointerType] lambda [] type at line 1756, col. 30 * +# 1756| ValueCategory = prvalue(load) +# 1759| getStmt(2): [ReturnStmt] return ... +# 1756| [CopyAssignmentOperator] (void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1753, col. 26)::operator()() const)::(lambda [] type at line 1756, col. 30)& (void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1753, col. 26)::operator()() const)::(lambda [] type at line 1756, col. 30)::operator=((void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1753, col. 26)::operator()() const)::(lambda [] type at line 1756, col. 30) const&) +# 1756| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) -#-----| Type = [LValueReferenceType] const lambda [] type at line 1754, col. 30 & -# 1754| [CopyConstructor] void (void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1751, col. 26)::operator()() const)::(lambda [] type at line 1754, col. 30)::(unnamed constructor)((void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1751, col. 26)::operator()() const)::(lambda [] type at line 1754, col. 30) const&) -# 1754| : +#-----| Type = [LValueReferenceType] const lambda [] type at line 1756, col. 30 & +# 1756| [CopyConstructor] void (void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1753, col. 26)::operator()() const)::(lambda [] type at line 1756, col. 30)::(unnamed constructor)((void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1753, col. 26)::operator()() const)::(lambda [] type at line 1756, col. 30) const&) +# 1756| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) -#-----| Type = [LValueReferenceType] const lambda [] type at line 1754, col. 30 & -# 1754| [MoveConstructor] void (void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1751, col. 26)::operator()() const)::(lambda [] type at line 1754, col. 30)::(unnamed constructor)((void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1751, col. 26)::operator()() const)::(lambda [] type at line 1754, col. 30)&&) -# 1754| : +#-----| Type = [LValueReferenceType] const lambda [] type at line 1756, col. 30 & +# 1756| [MoveConstructor] void (void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1753, col. 26)::operator()() const)::(lambda [] type at line 1756, col. 30)::(unnamed constructor)((void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1753, col. 26)::operator()() const)::(lambda [] type at line 1756, col. 30)&&) +# 1756| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) -#-----| Type = [RValueReferenceType] lambda [] type at line 1754, col. 30 && -# 1754| [Constructor] void (void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1751, col. 26)::operator()() const)::(lambda [] type at line 1754, col. 30)::(unnamed constructor)() -# 1754| : -# 1754| [ConstMemberFunction] void (void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1751, col. 26)::operator()() const)::(lambda [] type at line 1754, col. 30)::operator()() const -# 1754| : -# 1754| getEntryPoint(): [BlockStmt] { ... } -# 1755| getStmt(0): [ExprStmt] ExprStmt -# 1755| getExpr(): [FunctionCall] call to m -# 1755| Type = [VoidType] void -# 1755| ValueCategory = prvalue -# 1755| getQualifier(): [AddressOfExpr] & ... -# 1755| Type = [PointerType] const TrivialLambdaClass * -# 1755| ValueCategory = prvalue -# 1755| getOperand(): [ImplicitThisFieldAccess,PointerFieldAccess] (captured this) -# 1755| Type = [SpecifiedType] const TrivialLambdaClass -# 1755| ValueCategory = lvalue -# 1755| getQualifier(): [ThisExpr] this -# 1755| Type = [PointerType] const lambda [] type at line 1754, col. 30 * -# 1755| ValueCategory = prvalue(load) -# 1756| getStmt(1): [ReturnStmt] return ... -# 1761| [TopLevelFunction] void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) -# 1761| : -# 1761| getParameter(0): [Parameter] p1 -# 1761| Type = [Class] TrivialLambdaClass -# 1761| getParameter(1): [Parameter] p2 -# 1761| Type = [LValueReferenceType] TrivialLambdaClass & -# 1761| getParameter(2): [Parameter] p3 -# 1761| Type = [RValueReferenceType] TrivialLambdaClass && -# 1761| getEntryPoint(): [BlockStmt] { ... } -# 1762| getStmt(0): [DeclStmt] declaration -# 1762| getDeclarationEntry(0): [VariableDeclarationEntry] definition of l1 -# 1762| Type = [SpecifiedType] const TrivialLambdaClass -# 1763| getStmt(1): [DeclStmt] declaration -# 1763| getDeclarationEntry(0): [VariableDeclarationEntry] definition of l2 -# 1763| Type = [LValueReferenceType] const TrivialLambdaClass & -# 1763| getVariable().getInitializer(): [Initializer] initializer for l2 -# 1763| getExpr(): [Literal] 0 -# 1763| Type = [Class] TrivialLambdaClass -# 1763| Value = [Literal] 0 -# 1763| ValueCategory = prvalue -# 1763| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1763| Type = [LValueReferenceType] const TrivialLambdaClass & -# 1763| ValueCategory = prvalue -# 1763| getExpr(): [CStyleCast] (const TrivialLambdaClass)... -# 1763| Conversion = [GlvalueConversion] glvalue conversion -# 1763| Type = [SpecifiedType] const TrivialLambdaClass -# 1763| ValueCategory = lvalue -# 1763| getExpr(): [TemporaryObjectExpr] temporary object -# 1763| Type = [Class] TrivialLambdaClass -# 1763| ValueCategory = lvalue -# 1765| getStmt(2): [DeclStmt] declaration -# 1765| getDeclarationEntry(0): [VariableDeclarationEntry] definition of l_outer1 -# 1765| Type = [Closure,LocalClass] decltype([...](...){...}) -# 1765| getVariable().getInitializer(): [Initializer] initializer for l_outer1 -# 1765| getExpr(): [LambdaExpression] [...](...){...} -# 1765| Type = [Closure,LocalClass] decltype([...](...){...}) +#-----| Type = [RValueReferenceType] lambda [] type at line 1756, col. 30 && +# 1756| [Constructor] void (void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1753, col. 26)::operator()() const)::(lambda [] type at line 1756, col. 30)::(unnamed constructor)() +# 1756| : +# 1756| [ConstMemberFunction] void (void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1753, col. 26)::operator()() const)::(lambda [] type at line 1756, col. 30)::operator()() const +# 1756| : +# 1756| getEntryPoint(): [BlockStmt] { ... } +# 1757| getStmt(0): [ExprStmt] ExprStmt +# 1757| getExpr(): [FunctionCall] call to m +# 1757| Type = [VoidType] void +# 1757| ValueCategory = prvalue +# 1757| getQualifier(): [AddressOfExpr] & ... +# 1757| Type = [PointerType] const TrivialLambdaClass * +# 1757| ValueCategory = prvalue +# 1757| getOperand(): [ImplicitThisFieldAccess,PointerFieldAccess] (captured this) +# 1757| Type = [SpecifiedType] const TrivialLambdaClass +# 1757| ValueCategory = lvalue +# 1757| getQualifier(): [ThisExpr] this +# 1757| Type = [PointerType] const lambda [] type at line 1756, col. 30 * +# 1757| ValueCategory = prvalue(load) +# 1758| getStmt(1): [ReturnStmt] return ... +# 1763| [TopLevelFunction] void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) +# 1763| : +# 1763| getParameter(0): [Parameter] p1 +# 1763| Type = [Class] TrivialLambdaClass +# 1763| getParameter(1): [Parameter] p2 +# 1763| Type = [LValueReferenceType] TrivialLambdaClass & +# 1763| getParameter(2): [Parameter] p3 +# 1763| Type = [RValueReferenceType] TrivialLambdaClass && +# 1763| getEntryPoint(): [BlockStmt] { ... } +# 1764| getStmt(0): [DeclStmt] declaration +# 1764| getDeclarationEntry(0): [VariableDeclarationEntry] definition of l1 +# 1764| Type = [SpecifiedType] const TrivialLambdaClass +# 1765| getStmt(1): [DeclStmt] declaration +# 1765| getDeclarationEntry(0): [VariableDeclarationEntry] definition of l2 +# 1765| Type = [LValueReferenceType] const TrivialLambdaClass & +# 1765| getVariable().getInitializer(): [Initializer] initializer for l2 +# 1765| getExpr(): [Literal] 0 +# 1765| Type = [Class] TrivialLambdaClass +# 1765| Value = [Literal] 0 +# 1765| ValueCategory = prvalue +# 1765| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1765| Type = [LValueReferenceType] const TrivialLambdaClass & # 1765| ValueCategory = prvalue -# 1765| getInitializer(): [ClassAggregateLiteral] {...} -# 1765| Type = [Closure,LocalClass] decltype([...](...){...}) -# 1765| ValueCategory = prvalue -# 1765| getAFieldExpr(p1): [VariableAccess] p1 +# 1765| getExpr(): [CStyleCast] (const TrivialLambdaClass)... +# 1765| Conversion = [GlvalueConversion] glvalue conversion +# 1765| Type = [SpecifiedType] const TrivialLambdaClass +# 1765| ValueCategory = lvalue +# 1765| getExpr(): [TemporaryObjectExpr] temporary object # 1765| Type = [Class] TrivialLambdaClass -# 1765| ValueCategory = prvalue(load) -# 1765| getAFieldExpr(p2): [VariableAccess] p2 -# 1765| Type = [LValueReferenceType] TrivialLambdaClass & -# 1765| ValueCategory = prvalue(load) -# 1765| getAFieldExpr(p3): [VariableAccess] p3 -# 1765| Type = [RValueReferenceType] TrivialLambdaClass && -# 1765| ValueCategory = prvalue(load) -# 1765| getAFieldExpr(l1): [VariableAccess] l1 -# 1765| Type = [SpecifiedType] const TrivialLambdaClass -# 1765| ValueCategory = prvalue(load) -# 1765| getAFieldExpr(l2): [VariableAccess] l2 -# 1765| Type = [LValueReferenceType] const TrivialLambdaClass & -# 1765| ValueCategory = prvalue(load) +# 1765| ValueCategory = lvalue +# 1767| getStmt(2): [DeclStmt] declaration +# 1767| getDeclarationEntry(0): [VariableDeclarationEntry] definition of l_outer1 +# 1767| Type = [Closure,LocalClass] decltype([...](...){...}) +# 1767| getVariable().getInitializer(): [Initializer] initializer for l_outer1 +# 1767| getExpr(): [LambdaExpression] [...](...){...} +# 1767| Type = [Closure,LocalClass] decltype([...](...){...}) +# 1767| ValueCategory = prvalue +# 1767| getInitializer(): [ClassAggregateLiteral] {...} +# 1767| Type = [Closure,LocalClass] decltype([...](...){...}) +# 1767| ValueCategory = prvalue +# 1767| getAFieldExpr(p1): [VariableAccess] p1 +# 1767| Type = [Class] TrivialLambdaClass +# 1767| ValueCategory = prvalue(load) +# 1767| getAFieldExpr(p2): [VariableAccess] p2 +# 1767| Type = [LValueReferenceType] TrivialLambdaClass & +# 1767| ValueCategory = prvalue(load) +# 1767| getAFieldExpr(p3): [VariableAccess] p3 +# 1767| Type = [RValueReferenceType] TrivialLambdaClass && +# 1767| ValueCategory = prvalue(load) +# 1767| getAFieldExpr(l1): [VariableAccess] l1 +# 1767| Type = [SpecifiedType] const TrivialLambdaClass +# 1767| ValueCategory = prvalue(load) +# 1767| getAFieldExpr(l2): [VariableAccess] l2 +# 1767| Type = [LValueReferenceType] const TrivialLambdaClass & +# 1767| ValueCategory = prvalue(load) #-----| getAFieldExpr(p2).getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) #-----| Type = [Class] TrivialLambdaClass #-----| ValueCategory = prvalue(load) @@ -17088,741 +17120,741 @@ ir.cpp: #-----| getAFieldExpr(l2).getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) #-----| Type = [SpecifiedType] const TrivialLambdaClass #-----| ValueCategory = prvalue(load) -# 1768| getStmt(3): [ReturnStmt] return ... -# 1765| [CopyAssignmentOperator] (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1765, col. 21)& (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1765, col. 21)::operator=((void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1765, col. 21) const&) -# 1765| : +# 1770| getStmt(3): [ReturnStmt] return ... +# 1767| [CopyAssignmentOperator] (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1767, col. 21)& (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1767, col. 21)::operator=((void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1767, col. 21) const&) +# 1767| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) -#-----| Type = [LValueReferenceType] const lambda [] type at line 1765, col. 21 & -# 1765| [CopyConstructor] void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1765, col. 21)::(unnamed constructor)((void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1765, col. 21) const&) -# 1765| : +#-----| Type = [LValueReferenceType] const lambda [] type at line 1767, col. 21 & +# 1767| [CopyConstructor] void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1767, col. 21)::(unnamed constructor)((void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1767, col. 21) const&) +# 1767| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) -#-----| Type = [LValueReferenceType] const lambda [] type at line 1765, col. 21 & -# 1765| [MoveConstructor] void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1765, col. 21)::(unnamed constructor)((void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1765, col. 21)&&) -# 1765| : +#-----| Type = [LValueReferenceType] const lambda [] type at line 1767, col. 21 & +# 1767| [MoveConstructor] void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1767, col. 21)::(unnamed constructor)((void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1767, col. 21)&&) +# 1767| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) -#-----| Type = [RValueReferenceType] lambda [] type at line 1765, col. 21 && -# 1765| [Constructor] void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1765, col. 21)::(unnamed constructor)() -# 1765| : -# 1765| [ConstMemberFunction] void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1765, col. 21)::operator()() const -# 1765| : -# 1765| getEntryPoint(): [BlockStmt] { ... } -# 1766| getStmt(0): [DeclStmt] declaration -# 1766| getDeclarationEntry(0): [VariableDeclarationEntry] definition of l_inner1 -# 1766| Type = [Closure,LocalClass] decltype([...](...){...}) -# 1766| getVariable().getInitializer(): [Initializer] initializer for l_inner1 -# 1766| getExpr(): [LambdaExpression] [...](...){...} -# 1766| Type = [Closure,LocalClass] decltype([...](...){...}) -# 1766| ValueCategory = prvalue -# 1766| getInitializer(): [ClassAggregateLiteral] {...} -# 1766| Type = [Closure,LocalClass] decltype([...](...){...}) -# 1766| ValueCategory = prvalue -# 1766| getAFieldExpr(p1): [PointerFieldAccess] p1 -# 1766| Type = [Class] TrivialLambdaClass -# 1766| ValueCategory = prvalue(load) -# 1766| getQualifier(): [ThisExpr] this -# 1766| Type = [PointerType] lambda [] type at line 1766, col. 25 * -# 1766| ValueCategory = prvalue(load) -# 1767| getStmt(1): [ReturnStmt] return ... -# 1766| [CopyAssignmentOperator] (void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1765, col. 21)::operator()() const)::(lambda [] type at line 1766, col. 25)& (void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1765, col. 21)::operator()() const)::(lambda [] type at line 1766, col. 25)::operator=((void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1765, col. 21)::operator()() const)::(lambda [] type at line 1766, col. 25) const&) -# 1766| : +#-----| Type = [RValueReferenceType] lambda [] type at line 1767, col. 21 && +# 1767| [Constructor] void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1767, col. 21)::(unnamed constructor)() +# 1767| : +# 1767| [ConstMemberFunction] void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1767, col. 21)::operator()() const +# 1767| : +# 1767| getEntryPoint(): [BlockStmt] { ... } +# 1768| getStmt(0): [DeclStmt] declaration +# 1768| getDeclarationEntry(0): [VariableDeclarationEntry] definition of l_inner1 +# 1768| Type = [Closure,LocalClass] decltype([...](...){...}) +# 1768| getVariable().getInitializer(): [Initializer] initializer for l_inner1 +# 1768| getExpr(): [LambdaExpression] [...](...){...} +# 1768| Type = [Closure,LocalClass] decltype([...](...){...}) +# 1768| ValueCategory = prvalue +# 1768| getInitializer(): [ClassAggregateLiteral] {...} +# 1768| Type = [Closure,LocalClass] decltype([...](...){...}) +# 1768| ValueCategory = prvalue +# 1768| getAFieldExpr(p1): [PointerFieldAccess] p1 +# 1768| Type = [Class] TrivialLambdaClass +# 1768| ValueCategory = prvalue(load) +# 1768| getQualifier(): [ThisExpr] this +# 1768| Type = [PointerType] lambda [] type at line 1768, col. 25 * +# 1768| ValueCategory = prvalue(load) +# 1769| getStmt(1): [ReturnStmt] return ... +# 1768| [CopyAssignmentOperator] (void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1767, col. 21)::operator()() const)::(lambda [] type at line 1768, col. 25)& (void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1767, col. 21)::operator()() const)::(lambda [] type at line 1768, col. 25)::operator=((void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1767, col. 21)::operator()() const)::(lambda [] type at line 1768, col. 25) const&) +# 1768| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) -#-----| Type = [LValueReferenceType] const lambda [] type at line 1766, col. 25 & -# 1766| [CopyConstructor] void (void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1765, col. 21)::operator()() const)::(lambda [] type at line 1766, col. 25)::(unnamed constructor)((void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1765, col. 21)::operator()() const)::(lambda [] type at line 1766, col. 25) const&) -# 1766| : +#-----| Type = [LValueReferenceType] const lambda [] type at line 1768, col. 25 & +# 1768| [CopyConstructor] void (void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1767, col. 21)::operator()() const)::(lambda [] type at line 1768, col. 25)::(unnamed constructor)((void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1767, col. 21)::operator()() const)::(lambda [] type at line 1768, col. 25) const&) +# 1768| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) -#-----| Type = [LValueReferenceType] const lambda [] type at line 1766, col. 25 & -# 1766| [MoveConstructor] void (void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1765, col. 21)::operator()() const)::(lambda [] type at line 1766, col. 25)::(unnamed constructor)((void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1765, col. 21)::operator()() const)::(lambda [] type at line 1766, col. 25)&&) -# 1766| : +#-----| Type = [LValueReferenceType] const lambda [] type at line 1768, col. 25 & +# 1768| [MoveConstructor] void (void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1767, col. 21)::operator()() const)::(lambda [] type at line 1768, col. 25)::(unnamed constructor)((void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1767, col. 21)::operator()() const)::(lambda [] type at line 1768, col. 25)&&) +# 1768| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) -#-----| Type = [RValueReferenceType] lambda [] type at line 1766, col. 25 && -# 1766| [Constructor] void (void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1765, col. 21)::operator()() const)::(lambda [] type at line 1766, col. 25)::(unnamed constructor)() -# 1766| : -# 1766| [ConstMemberFunction] void (void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1765, col. 21)::operator()() const)::(lambda [] type at line 1766, col. 25)::operator()() const -# 1766| : -# 1766| getEntryPoint(): [BlockStmt] { ... } -# 1766| getStmt(0): [ReturnStmt] return ... -# 1770| [CopyAssignmentOperator] CopyConstructorWithImplicitArgumentClass& CopyConstructorWithImplicitArgumentClass::operator=(CopyConstructorWithImplicitArgumentClass const&) -# 1770| : +#-----| Type = [RValueReferenceType] lambda [] type at line 1768, col. 25 && +# 1768| [Constructor] void (void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1767, col. 21)::operator()() const)::(lambda [] type at line 1768, col. 25)::(unnamed constructor)() +# 1768| : +# 1768| [ConstMemberFunction] void (void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1767, col. 21)::operator()() const)::(lambda [] type at line 1768, col. 25)::operator()() const +# 1768| : +# 1768| getEntryPoint(): [BlockStmt] { ... } +# 1768| getStmt(0): [ReturnStmt] return ... +# 1772| [CopyAssignmentOperator] CopyConstructorWithImplicitArgumentClass& CopyConstructorWithImplicitArgumentClass::operator=(CopyConstructorWithImplicitArgumentClass const&) +# 1772| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const CopyConstructorWithImplicitArgumentClass & -# 1773| [Constructor] void CopyConstructorWithImplicitArgumentClass::CopyConstructorWithImplicitArgumentClass() -# 1773| : -# 1773| : -# 1773| getEntryPoint(): [BlockStmt] { ... } -# 1773| getStmt(0): [ReturnStmt] return ... -# 1774| [CopyConstructor] void CopyConstructorWithImplicitArgumentClass::CopyConstructorWithImplicitArgumentClass(CopyConstructorWithImplicitArgumentClass const&) -# 1774| : -# 1774| getParameter(0): [Parameter] c -# 1774| Type = [LValueReferenceType] const CopyConstructorWithImplicitArgumentClass & -# 1774| : -# 1774| getEntryPoint(): [BlockStmt] { ... } -# 1775| getStmt(0): [ExprStmt] ExprStmt -# 1775| getExpr(): [AssignExpr] ... = ... -# 1775| Type = [IntType] int -# 1775| ValueCategory = lvalue -# 1775| getLValue(): [ImplicitThisFieldAccess,PointerFieldAccess] x -# 1775| Type = [IntType] int -# 1775| ValueCategory = lvalue -# 1775| getQualifier(): [ThisExpr] this -# 1775| Type = [PointerType] CopyConstructorWithImplicitArgumentClass * -# 1775| ValueCategory = prvalue(load) -# 1775| getRValue(): [ReferenceFieldAccess] x -# 1775| Type = [IntType] int -# 1775| ValueCategory = prvalue(load) -# 1775| getQualifier(): [VariableAccess] c -# 1775| Type = [LValueReferenceType] const CopyConstructorWithImplicitArgumentClass & -# 1775| ValueCategory = prvalue(load) -# 1775| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1775| Type = [SpecifiedType] const CopyConstructorWithImplicitArgumentClass -# 1775| ValueCategory = lvalue -# 1776| getStmt(1): [ReturnStmt] return ... -# 1779| [CopyAssignmentOperator] CopyConstructorWithBitwiseCopyClass& CopyConstructorWithBitwiseCopyClass::operator=(CopyConstructorWithBitwiseCopyClass const&) -# 1779| : +# 1775| [Constructor] void CopyConstructorWithImplicitArgumentClass::CopyConstructorWithImplicitArgumentClass() +# 1775| : +# 1775| : +# 1775| getEntryPoint(): [BlockStmt] { ... } +# 1775| getStmt(0): [ReturnStmt] return ... +# 1776| [CopyConstructor] void CopyConstructorWithImplicitArgumentClass::CopyConstructorWithImplicitArgumentClass(CopyConstructorWithImplicitArgumentClass const&) +# 1776| : +# 1776| getParameter(0): [Parameter] c +# 1776| Type = [LValueReferenceType] const CopyConstructorWithImplicitArgumentClass & +# 1776| : +# 1776| getEntryPoint(): [BlockStmt] { ... } +# 1777| getStmt(0): [ExprStmt] ExprStmt +# 1777| getExpr(): [AssignExpr] ... = ... +# 1777| Type = [IntType] int +# 1777| ValueCategory = lvalue +# 1777| getLValue(): [ImplicitThisFieldAccess,PointerFieldAccess] x +# 1777| Type = [IntType] int +# 1777| ValueCategory = lvalue +# 1777| getQualifier(): [ThisExpr] this +# 1777| Type = [PointerType] CopyConstructorWithImplicitArgumentClass * +# 1777| ValueCategory = prvalue(load) +# 1777| getRValue(): [ReferenceFieldAccess] x +# 1777| Type = [IntType] int +# 1777| ValueCategory = prvalue(load) +# 1777| getQualifier(): [VariableAccess] c +# 1777| Type = [LValueReferenceType] const CopyConstructorWithImplicitArgumentClass & +# 1777| ValueCategory = prvalue(load) +# 1777| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1777| Type = [SpecifiedType] const CopyConstructorWithImplicitArgumentClass +# 1777| ValueCategory = lvalue +# 1778| getStmt(1): [ReturnStmt] return ... +# 1781| [CopyAssignmentOperator] CopyConstructorWithBitwiseCopyClass& CopyConstructorWithBitwiseCopyClass::operator=(CopyConstructorWithBitwiseCopyClass const&) +# 1781| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const CopyConstructorWithBitwiseCopyClass & -# 1779| [MoveAssignmentOperator] CopyConstructorWithBitwiseCopyClass& CopyConstructorWithBitwiseCopyClass::operator=(CopyConstructorWithBitwiseCopyClass&&) -# 1779| : +# 1781| [MoveAssignmentOperator] CopyConstructorWithBitwiseCopyClass& CopyConstructorWithBitwiseCopyClass::operator=(CopyConstructorWithBitwiseCopyClass&&) +# 1781| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] CopyConstructorWithBitwiseCopyClass && -# 1779| [CopyConstructor] void CopyConstructorWithBitwiseCopyClass::CopyConstructorWithBitwiseCopyClass(CopyConstructorWithBitwiseCopyClass const&) -# 1779| : +# 1781| [CopyConstructor] void CopyConstructorWithBitwiseCopyClass::CopyConstructorWithBitwiseCopyClass(CopyConstructorWithBitwiseCopyClass const&) +# 1781| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const CopyConstructorWithBitwiseCopyClass & -# 1779| [MoveConstructor] void CopyConstructorWithBitwiseCopyClass::CopyConstructorWithBitwiseCopyClass(CopyConstructorWithBitwiseCopyClass&&) -# 1779| : +# 1781| [MoveConstructor] void CopyConstructorWithBitwiseCopyClass::CopyConstructorWithBitwiseCopyClass(CopyConstructorWithBitwiseCopyClass&&) +# 1781| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] CopyConstructorWithBitwiseCopyClass && -# 1782| [Constructor] void CopyConstructorWithBitwiseCopyClass::CopyConstructorWithBitwiseCopyClass() -# 1782| : -# 1782| : -# 1782| getEntryPoint(): [BlockStmt] { ... } -# 1782| getStmt(0): [ReturnStmt] return ... -# 1785| [CopyAssignmentOperator] CopyConstructorTestNonVirtualClass& CopyConstructorTestNonVirtualClass::operator=(CopyConstructorTestNonVirtualClass const&) -# 1785| : +# 1784| [Constructor] void CopyConstructorWithBitwiseCopyClass::CopyConstructorWithBitwiseCopyClass() +# 1784| : +# 1784| : +# 1784| getEntryPoint(): [BlockStmt] { ... } +# 1784| getStmt(0): [ReturnStmt] return ... +# 1787| [CopyAssignmentOperator] CopyConstructorTestNonVirtualClass& CopyConstructorTestNonVirtualClass::operator=(CopyConstructorTestNonVirtualClass const&) +# 1787| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const CopyConstructorTestNonVirtualClass & -# 1785| [MoveAssignmentOperator] CopyConstructorTestNonVirtualClass& CopyConstructorTestNonVirtualClass::operator=(CopyConstructorTestNonVirtualClass&&) -# 1785| : +# 1787| [MoveAssignmentOperator] CopyConstructorTestNonVirtualClass& CopyConstructorTestNonVirtualClass::operator=(CopyConstructorTestNonVirtualClass&&) +# 1787| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] CopyConstructorTestNonVirtualClass && -# 1785| [CopyConstructor] void CopyConstructorTestNonVirtualClass::CopyConstructorTestNonVirtualClass(CopyConstructorTestNonVirtualClass const&) -# 1785| : +# 1787| [CopyConstructor] void CopyConstructorTestNonVirtualClass::CopyConstructorTestNonVirtualClass(CopyConstructorTestNonVirtualClass const&) +# 1787| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const CopyConstructorTestNonVirtualClass & -# 1785| : -# 1785| getInitializer(0): [ConstructorDirectInit] call to CopyConstructorWithImplicitArgumentClass -# 1785| Type = [VoidType] void -# 1785| ValueCategory = prvalue -# 1785| getArgument(0): [VariableAccess] (unnamed parameter 0) -# 1785| Type = [LValueReferenceType] const CopyConstructorTestNonVirtualClass & -# 1785| ValueCategory = prvalue(load) -# 1785| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) -# 1785| Type = [LValueReferenceType] const CopyConstructorWithImplicitArgumentClass & -# 1785| ValueCategory = prvalue -# 1785| getExpr(): [CStyleCast] (const CopyConstructorWithImplicitArgumentClass)... -# 1785| Conversion = [BaseClassConversion] base class conversion -# 1785| Type = [SpecifiedType] const CopyConstructorWithImplicitArgumentClass -# 1785| ValueCategory = lvalue -# 1785| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1785| Type = [SpecifiedType] const CopyConstructorTestNonVirtualClass -# 1785| ValueCategory = lvalue -# 1785| getInitializer(1): [ConstructorInit] constructor init -# 1785| Type = [VirtualBaseClass] CopyConstructorWithBitwiseCopyClass -# 1785| ValueCategory = prvalue -# 1785| getEntryPoint(): [BlockStmt] { ... } -# 1785| getStmt(0): [ReturnStmt] return ... -# 1785| [MoveConstructor] void CopyConstructorTestNonVirtualClass::CopyConstructorTestNonVirtualClass(CopyConstructorTestNonVirtualClass&&) -# 1785| : +# 1787| : +# 1787| getInitializer(0): [ConstructorDirectInit] call to CopyConstructorWithImplicitArgumentClass +# 1787| Type = [VoidType] void +# 1787| ValueCategory = prvalue +# 1787| getArgument(0): [VariableAccess] (unnamed parameter 0) +# 1787| Type = [LValueReferenceType] const CopyConstructorTestNonVirtualClass & +# 1787| ValueCategory = prvalue(load) +# 1787| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) +# 1787| Type = [LValueReferenceType] const CopyConstructorWithImplicitArgumentClass & +# 1787| ValueCategory = prvalue +# 1787| getExpr(): [CStyleCast] (const CopyConstructorWithImplicitArgumentClass)... +# 1787| Conversion = [BaseClassConversion] base class conversion +# 1787| Type = [SpecifiedType] const CopyConstructorWithImplicitArgumentClass +# 1787| ValueCategory = lvalue +# 1787| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1787| Type = [SpecifiedType] const CopyConstructorTestNonVirtualClass +# 1787| ValueCategory = lvalue +# 1787| getInitializer(1): [ConstructorInit] constructor init +# 1787| Type = [VirtualBaseClass] CopyConstructorWithBitwiseCopyClass +# 1787| ValueCategory = prvalue +# 1787| getEntryPoint(): [BlockStmt] { ... } +# 1787| getStmt(0): [ReturnStmt] return ... +# 1787| [MoveConstructor] void CopyConstructorTestNonVirtualClass::CopyConstructorTestNonVirtualClass(CopyConstructorTestNonVirtualClass&&) +# 1787| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] CopyConstructorTestNonVirtualClass && -# 1789| [Constructor] void CopyConstructorTestNonVirtualClass::CopyConstructorTestNonVirtualClass() -# 1789| : -# 1789| : -# 1789| getInitializer(0): [ConstructorDirectInit] call to CopyConstructorWithImplicitArgumentClass -# 1789| Type = [VoidType] void -# 1789| ValueCategory = prvalue -# 1789| getInitializer(1): [ConstructorDirectInit] call to CopyConstructorWithBitwiseCopyClass -# 1789| Type = [VoidType] void -# 1789| ValueCategory = prvalue -# 1789| getEntryPoint(): [BlockStmt] { ... } -# 1789| getStmt(0): [ReturnStmt] return ... -# 1792| [CopyAssignmentOperator] CopyConstructorTestVirtualClass& CopyConstructorTestVirtualClass::operator=(CopyConstructorTestVirtualClass const&) -# 1792| : +# 1791| [Constructor] void CopyConstructorTestNonVirtualClass::CopyConstructorTestNonVirtualClass() +# 1791| : +# 1791| : +# 1791| getInitializer(0): [ConstructorDirectInit] call to CopyConstructorWithImplicitArgumentClass +# 1791| Type = [VoidType] void +# 1791| ValueCategory = prvalue +# 1791| getInitializer(1): [ConstructorDirectInit] call to CopyConstructorWithBitwiseCopyClass +# 1791| Type = [VoidType] void +# 1791| ValueCategory = prvalue +# 1791| getEntryPoint(): [BlockStmt] { ... } +# 1791| getStmt(0): [ReturnStmt] return ... +# 1794| [CopyAssignmentOperator] CopyConstructorTestVirtualClass& CopyConstructorTestVirtualClass::operator=(CopyConstructorTestVirtualClass const&) +# 1794| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const CopyConstructorTestVirtualClass & -# 1792| [MoveAssignmentOperator] CopyConstructorTestVirtualClass& CopyConstructorTestVirtualClass::operator=(CopyConstructorTestVirtualClass&&) -# 1792| : +# 1794| [MoveAssignmentOperator] CopyConstructorTestVirtualClass& CopyConstructorTestVirtualClass::operator=(CopyConstructorTestVirtualClass&&) +# 1794| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] CopyConstructorTestVirtualClass && -# 1792| [CopyConstructor] void CopyConstructorTestVirtualClass::CopyConstructorTestVirtualClass(CopyConstructorTestVirtualClass const&) -# 1792| : +# 1794| [CopyConstructor] void CopyConstructorTestVirtualClass::CopyConstructorTestVirtualClass(CopyConstructorTestVirtualClass const&) +# 1794| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const CopyConstructorTestVirtualClass & -# 1792| : -# 1792| getInitializer(0): [ConstructorVirtualInit] call to CopyConstructorWithImplicitArgumentClass -# 1792| Type = [VoidType] void -# 1792| ValueCategory = prvalue -# 1792| getArgument(0): [VariableAccess] (unnamed parameter 0) -# 1792| Type = [LValueReferenceType] const CopyConstructorTestVirtualClass & -# 1792| ValueCategory = prvalue(load) -# 1792| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) -# 1792| Type = [LValueReferenceType] const CopyConstructorWithImplicitArgumentClass & -# 1792| ValueCategory = prvalue -# 1792| getExpr(): [CStyleCast] (const CopyConstructorWithImplicitArgumentClass)... -# 1792| Conversion = [BaseClassConversion] base class conversion -# 1792| Type = [SpecifiedType] const CopyConstructorWithImplicitArgumentClass -# 1792| ValueCategory = lvalue -# 1792| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1792| Type = [SpecifiedType] const CopyConstructorTestVirtualClass -# 1792| ValueCategory = lvalue -# 1792| getInitializer(1): [ConstructorInit] constructor init -# 1792| Type = [VirtualBaseClass] CopyConstructorWithBitwiseCopyClass -# 1792| ValueCategory = prvalue -# 1792| getEntryPoint(): [BlockStmt] { ... } -# 1792| getStmt(0): [ReturnStmt] return ... -# 1792| [MoveConstructor] void CopyConstructorTestVirtualClass::CopyConstructorTestVirtualClass(CopyConstructorTestVirtualClass&&) -# 1792| : +# 1794| : +# 1794| getInitializer(0): [ConstructorVirtualInit] call to CopyConstructorWithImplicitArgumentClass +# 1794| Type = [VoidType] void +# 1794| ValueCategory = prvalue +# 1794| getArgument(0): [VariableAccess] (unnamed parameter 0) +# 1794| Type = [LValueReferenceType] const CopyConstructorTestVirtualClass & +# 1794| ValueCategory = prvalue(load) +# 1794| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) +# 1794| Type = [LValueReferenceType] const CopyConstructorWithImplicitArgumentClass & +# 1794| ValueCategory = prvalue +# 1794| getExpr(): [CStyleCast] (const CopyConstructorWithImplicitArgumentClass)... +# 1794| Conversion = [BaseClassConversion] base class conversion +# 1794| Type = [SpecifiedType] const CopyConstructorWithImplicitArgumentClass +# 1794| ValueCategory = lvalue +# 1794| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1794| Type = [SpecifiedType] const CopyConstructorTestVirtualClass +# 1794| ValueCategory = lvalue +# 1794| getInitializer(1): [ConstructorInit] constructor init +# 1794| Type = [VirtualBaseClass] CopyConstructorWithBitwiseCopyClass +# 1794| ValueCategory = prvalue +# 1794| getEntryPoint(): [BlockStmt] { ... } +# 1794| getStmt(0): [ReturnStmt] return ... +# 1794| [MoveConstructor] void CopyConstructorTestVirtualClass::CopyConstructorTestVirtualClass(CopyConstructorTestVirtualClass&&) +# 1794| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] CopyConstructorTestVirtualClass && -# 1796| [Constructor] void CopyConstructorTestVirtualClass::CopyConstructorTestVirtualClass() -# 1796| : -# 1796| : -# 1796| getInitializer(0): [ConstructorVirtualInit] call to CopyConstructorWithImplicitArgumentClass -# 1796| Type = [VoidType] void -# 1796| ValueCategory = prvalue -# 1796| getInitializer(1): [ConstructorVirtualInit] call to CopyConstructorWithBitwiseCopyClass -# 1796| Type = [VoidType] void -# 1796| ValueCategory = prvalue -# 1796| getEntryPoint(): [BlockStmt] { ... } -# 1796| getStmt(0): [ReturnStmt] return ... -# 1799| [TopLevelFunction] int implicit_copy_constructor_test(CopyConstructorTestNonVirtualClass const&, CopyConstructorTestVirtualClass const&) -# 1799| : -# 1800| getParameter(0): [Parameter] x -# 1800| Type = [LValueReferenceType] const CopyConstructorTestNonVirtualClass & -# 1801| getParameter(1): [Parameter] y -# 1801| Type = [LValueReferenceType] const CopyConstructorTestVirtualClass & -# 1801| getEntryPoint(): [BlockStmt] { ... } -# 1802| getStmt(0): [DeclStmt] declaration -# 1802| getDeclarationEntry(0): [VariableDeclarationEntry] definition of cx -# 1802| Type = [Class] CopyConstructorTestNonVirtualClass -# 1802| getVariable().getInitializer(): [Initializer] initializer for cx -# 1802| getExpr(): [ConstructorCall] call to CopyConstructorTestNonVirtualClass -# 1802| Type = [VoidType] void -# 1802| ValueCategory = prvalue -# 1802| getArgument(0): [VariableAccess] x -# 1802| Type = [LValueReferenceType] const CopyConstructorTestNonVirtualClass & -# 1802| ValueCategory = prvalue(load) -# 1802| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) -# 1802| Type = [LValueReferenceType] const CopyConstructorTestNonVirtualClass & -# 1802| ValueCategory = prvalue -# 1802| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1802| Type = [SpecifiedType] const CopyConstructorTestNonVirtualClass -# 1802| ValueCategory = lvalue -# 1803| getStmt(1): [DeclStmt] declaration -# 1803| getDeclarationEntry(0): [VariableDeclarationEntry] definition of cy -# 1803| Type = [Class] CopyConstructorTestVirtualClass -# 1803| getVariable().getInitializer(): [Initializer] initializer for cy -# 1803| getExpr(): [ConstructorCall] call to CopyConstructorTestVirtualClass -# 1803| Type = [VoidType] void -# 1803| ValueCategory = prvalue -# 1803| getArgument(0): [VariableAccess] y -# 1803| Type = [LValueReferenceType] const CopyConstructorTestVirtualClass & -# 1803| ValueCategory = prvalue(load) -# 1803| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) -# 1803| Type = [LValueReferenceType] const CopyConstructorTestVirtualClass & -# 1803| ValueCategory = prvalue -# 1803| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1803| Type = [SpecifiedType] const CopyConstructorTestVirtualClass -# 1803| ValueCategory = lvalue -# 1804| getStmt(2): [ReturnStmt] return ... -# 1806| [TopLevelFunction] void if_initialization(int) -# 1806| : -# 1806| getParameter(0): [Parameter] x -# 1806| Type = [IntType] int -# 1806| getEntryPoint(): [BlockStmt] { ... } -# 1807| getStmt(0): [IfStmt] if (...) ... -# 1807| getInitialization(): [DeclStmt] declaration -# 1807| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y -# 1807| Type = [IntType] int -# 1807| getVariable().getInitializer(): [Initializer] initializer for y -# 1807| getExpr(): [VariableAccess] x -# 1807| Type = [IntType] int -# 1807| ValueCategory = prvalue(load) -# 1807| getCondition(): [AddExpr] ... + ... -# 1807| Type = [IntType] int -# 1807| ValueCategory = prvalue -# 1807| getLeftOperand(): [VariableAccess] x -# 1807| Type = [IntType] int -# 1807| ValueCategory = prvalue(load) -# 1807| getRightOperand(): [Literal] 1 -# 1807| Type = [IntType] int -# 1807| Value = [Literal] 1 -# 1807| ValueCategory = prvalue -# 1807| getThen(): [BlockStmt] { ... } -# 1808| getStmt(0): [ExprStmt] ExprStmt -# 1808| getExpr(): [AssignExpr] ... = ... -# 1808| Type = [IntType] int -# 1808| ValueCategory = lvalue -# 1808| getLValue(): [VariableAccess] x -# 1808| Type = [IntType] int -# 1808| ValueCategory = lvalue -# 1808| getRValue(): [AddExpr] ... + ... -# 1808| Type = [IntType] int -# 1808| ValueCategory = prvalue -# 1808| getLeftOperand(): [VariableAccess] x -# 1808| Type = [IntType] int -# 1808| ValueCategory = prvalue(load) -# 1808| getRightOperand(): [VariableAccess] y -# 1808| Type = [IntType] int -# 1808| ValueCategory = prvalue(load) -# 1807| getCondition().getFullyConverted(): [CStyleCast] (bool)... -# 1807| Conversion = [BoolConversion] conversion to bool -# 1807| Type = [BoolType] bool -# 1807| ValueCategory = prvalue -# 1811| getStmt(1): [DeclStmt] declaration -# 1811| getDeclarationEntry(0): [VariableDeclarationEntry] definition of w -# 1811| Type = [IntType] int -# 1812| getStmt(2): [IfStmt] if (...) ... -# 1812| getInitialization(): [ExprStmt] ExprStmt -# 1812| getExpr(): [AssignExpr] ... = ... -# 1812| Type = [IntType] int -# 1812| ValueCategory = lvalue -# 1812| getLValue(): [VariableAccess] w -# 1812| Type = [IntType] int -# 1812| ValueCategory = lvalue -# 1812| getRValue(): [VariableAccess] x -# 1812| Type = [IntType] int -# 1812| ValueCategory = prvalue(load) -# 1812| getCondition(): [AddExpr] ... + ... -# 1812| Type = [IntType] int -# 1812| ValueCategory = prvalue -# 1812| getLeftOperand(): [VariableAccess] x -# 1812| Type = [IntType] int -# 1812| ValueCategory = prvalue(load) -# 1812| getRightOperand(): [Literal] 1 -# 1812| Type = [IntType] int -# 1812| Value = [Literal] 1 -# 1812| ValueCategory = prvalue -# 1812| getThen(): [BlockStmt] { ... } -# 1813| getStmt(0): [ExprStmt] ExprStmt -# 1813| getExpr(): [AssignExpr] ... = ... -# 1813| Type = [IntType] int -# 1813| ValueCategory = lvalue -# 1813| getLValue(): [VariableAccess] x -# 1813| Type = [IntType] int -# 1813| ValueCategory = lvalue -# 1813| getRValue(): [AddExpr] ... + ... -# 1813| Type = [IntType] int -# 1813| ValueCategory = prvalue -# 1813| getLeftOperand(): [VariableAccess] x -# 1813| Type = [IntType] int -# 1813| ValueCategory = prvalue(load) -# 1813| getRightOperand(): [VariableAccess] w -# 1813| Type = [IntType] int -# 1813| ValueCategory = prvalue(load) -# 1812| getCondition().getFullyConverted(): [CStyleCast] (bool)... -# 1812| Conversion = [BoolConversion] conversion to bool -# 1812| Type = [BoolType] bool -# 1812| ValueCategory = prvalue -# 1816| getStmt(3): [IfStmt] if (...) ... -# 1816| getInitialization(): [ExprStmt] ExprStmt -# 1816| getExpr(): [AssignExpr] ... = ... -# 1816| Type = [IntType] int -# 1816| ValueCategory = lvalue -# 1816| getLValue(): [VariableAccess] w -# 1816| Type = [IntType] int -# 1816| ValueCategory = lvalue -# 1816| getRValue(): [VariableAccess] x -# 1816| Type = [IntType] int -# 1816| ValueCategory = prvalue(load) -# 1816| getCondition(): [ConditionDeclExpr] (condition decl) -# 1816| Type = [BoolType] bool -# 1816| ValueCategory = prvalue -# 1816| getVariableAccess(): [VariableAccess] w2 -# 1816| Type = [IntType] int -# 1816| ValueCategory = prvalue(load) -# 1816| getInitializingExpr(): [VariableAccess] w -# 1816| Type = [IntType] int -# 1816| ValueCategory = prvalue(load) -# 1816| getVariableAccess().getFullyConverted(): [CStyleCast] (bool)... -# 1816| Conversion = [BoolConversion] conversion to bool -# 1816| Type = [BoolType] bool -# 1816| ValueCategory = prvalue -# 1816| getThen(): [BlockStmt] { ... } -# 1817| getStmt(0): [ExprStmt] ExprStmt -# 1817| getExpr(): [AssignExpr] ... = ... -# 1817| Type = [IntType] int -# 1817| ValueCategory = lvalue -# 1817| getLValue(): [VariableAccess] x -# 1817| Type = [IntType] int -# 1817| ValueCategory = lvalue -# 1817| getRValue(): [AddExpr] ... + ... -# 1817| Type = [IntType] int -# 1817| ValueCategory = prvalue -# 1817| getLeftOperand(): [VariableAccess] x -# 1817| Type = [IntType] int -# 1817| ValueCategory = prvalue(load) -# 1817| getRightOperand(): [VariableAccess] w -# 1817| Type = [IntType] int -# 1817| ValueCategory = prvalue(load) -# 1820| getStmt(4): [IfStmt] if (...) ... -# 1820| getInitialization(): [DeclStmt] declaration -# 1820| getDeclarationEntry(0): [VariableDeclarationEntry] definition of v -# 1820| Type = [IntType] int -# 1820| getVariable().getInitializer(): [Initializer] initializer for v -# 1820| getExpr(): [VariableAccess] x -# 1820| Type = [IntType] int -# 1820| ValueCategory = prvalue(load) -# 1820| getCondition(): [ConditionDeclExpr] (condition decl) -# 1820| Type = [BoolType] bool -# 1820| ValueCategory = prvalue -# 1820| getVariableAccess(): [VariableAccess] v2 -# 1820| Type = [IntType] int -# 1820| ValueCategory = prvalue(load) -# 1820| getInitializingExpr(): [VariableAccess] v -# 1820| Type = [IntType] int -# 1820| ValueCategory = prvalue(load) -# 1820| getVariableAccess().getFullyConverted(): [CStyleCast] (bool)... -# 1820| Conversion = [BoolConversion] conversion to bool -# 1820| Type = [BoolType] bool -# 1820| ValueCategory = prvalue -# 1820| getThen(): [BlockStmt] { ... } -# 1821| getStmt(0): [ExprStmt] ExprStmt -# 1821| getExpr(): [AssignExpr] ... = ... -# 1821| Type = [IntType] int -# 1821| ValueCategory = lvalue -# 1821| getLValue(): [VariableAccess] x -# 1821| Type = [IntType] int -# 1821| ValueCategory = lvalue -# 1821| getRValue(): [AddExpr] ... + ... -# 1821| Type = [IntType] int -# 1821| ValueCategory = prvalue -# 1821| getLeftOperand(): [VariableAccess] x -# 1821| Type = [IntType] int -# 1821| ValueCategory = prvalue(load) -# 1821| getRightOperand(): [VariableAccess] v -# 1821| Type = [IntType] int -# 1821| ValueCategory = prvalue(load) -# 1824| getStmt(5): [DeclStmt] declaration -# 1824| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z -# 1824| Type = [IntType] int -# 1824| getVariable().getInitializer(): [Initializer] initializer for z -# 1824| getExpr(): [VariableAccess] x -# 1824| Type = [IntType] int -# 1824| ValueCategory = prvalue(load) -# 1825| getStmt(6): [IfStmt] if (...) ... -# 1825| getCondition(): [VariableAccess] z -# 1825| Type = [IntType] int -# 1825| ValueCategory = prvalue(load) -# 1825| getThen(): [BlockStmt] { ... } -# 1826| getStmt(0): [ExprStmt] ExprStmt -# 1826| getExpr(): [AssignExpr] ... = ... +# 1798| [Constructor] void CopyConstructorTestVirtualClass::CopyConstructorTestVirtualClass() +# 1798| : +# 1798| : +# 1798| getInitializer(0): [ConstructorVirtualInit] call to CopyConstructorWithImplicitArgumentClass +# 1798| Type = [VoidType] void +# 1798| ValueCategory = prvalue +# 1798| getInitializer(1): [ConstructorVirtualInit] call to CopyConstructorWithBitwiseCopyClass +# 1798| Type = [VoidType] void +# 1798| ValueCategory = prvalue +# 1798| getEntryPoint(): [BlockStmt] { ... } +# 1798| getStmt(0): [ReturnStmt] return ... +# 1801| [TopLevelFunction] int implicit_copy_constructor_test(CopyConstructorTestNonVirtualClass const&, CopyConstructorTestVirtualClass const&) +# 1801| : +# 1802| getParameter(0): [Parameter] x +# 1802| Type = [LValueReferenceType] const CopyConstructorTestNonVirtualClass & +# 1803| getParameter(1): [Parameter] y +# 1803| Type = [LValueReferenceType] const CopyConstructorTestVirtualClass & +# 1803| getEntryPoint(): [BlockStmt] { ... } +# 1804| getStmt(0): [DeclStmt] declaration +# 1804| getDeclarationEntry(0): [VariableDeclarationEntry] definition of cx +# 1804| Type = [Class] CopyConstructorTestNonVirtualClass +# 1804| getVariable().getInitializer(): [Initializer] initializer for cx +# 1804| getExpr(): [ConstructorCall] call to CopyConstructorTestNonVirtualClass +# 1804| Type = [VoidType] void +# 1804| ValueCategory = prvalue +# 1804| getArgument(0): [VariableAccess] x +# 1804| Type = [LValueReferenceType] const CopyConstructorTestNonVirtualClass & +# 1804| ValueCategory = prvalue(load) +# 1804| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) +# 1804| Type = [LValueReferenceType] const CopyConstructorTestNonVirtualClass & +# 1804| ValueCategory = prvalue +# 1804| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1804| Type = [SpecifiedType] const CopyConstructorTestNonVirtualClass +# 1804| ValueCategory = lvalue +# 1805| getStmt(1): [DeclStmt] declaration +# 1805| getDeclarationEntry(0): [VariableDeclarationEntry] definition of cy +# 1805| Type = [Class] CopyConstructorTestVirtualClass +# 1805| getVariable().getInitializer(): [Initializer] initializer for cy +# 1805| getExpr(): [ConstructorCall] call to CopyConstructorTestVirtualClass +# 1805| Type = [VoidType] void +# 1805| ValueCategory = prvalue +# 1805| getArgument(0): [VariableAccess] y +# 1805| Type = [LValueReferenceType] const CopyConstructorTestVirtualClass & +# 1805| ValueCategory = prvalue(load) +# 1805| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) +# 1805| Type = [LValueReferenceType] const CopyConstructorTestVirtualClass & +# 1805| ValueCategory = prvalue +# 1805| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1805| Type = [SpecifiedType] const CopyConstructorTestVirtualClass +# 1805| ValueCategory = lvalue +# 1806| getStmt(2): [ReturnStmt] return ... +# 1808| [TopLevelFunction] void if_initialization(int) +# 1808| : +# 1808| getParameter(0): [Parameter] x +# 1808| Type = [IntType] int +# 1808| getEntryPoint(): [BlockStmt] { ... } +# 1809| getStmt(0): [IfStmt] if (...) ... +# 1809| getInitialization(): [DeclStmt] declaration +# 1809| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y +# 1809| Type = [IntType] int +# 1809| getVariable().getInitializer(): [Initializer] initializer for y +# 1809| getExpr(): [VariableAccess] x +# 1809| Type = [IntType] int +# 1809| ValueCategory = prvalue(load) +# 1809| getCondition(): [AddExpr] ... + ... +# 1809| Type = [IntType] int +# 1809| ValueCategory = prvalue +# 1809| getLeftOperand(): [VariableAccess] x +# 1809| Type = [IntType] int +# 1809| ValueCategory = prvalue(load) +# 1809| getRightOperand(): [Literal] 1 +# 1809| Type = [IntType] int +# 1809| Value = [Literal] 1 +# 1809| ValueCategory = prvalue +# 1809| getThen(): [BlockStmt] { ... } +# 1810| getStmt(0): [ExprStmt] ExprStmt +# 1810| getExpr(): [AssignExpr] ... = ... +# 1810| Type = [IntType] int +# 1810| ValueCategory = lvalue +# 1810| getLValue(): [VariableAccess] x +# 1810| Type = [IntType] int +# 1810| ValueCategory = lvalue +# 1810| getRValue(): [AddExpr] ... + ... +# 1810| Type = [IntType] int +# 1810| ValueCategory = prvalue +# 1810| getLeftOperand(): [VariableAccess] x +# 1810| Type = [IntType] int +# 1810| ValueCategory = prvalue(load) +# 1810| getRightOperand(): [VariableAccess] y +# 1810| Type = [IntType] int +# 1810| ValueCategory = prvalue(load) +# 1809| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1809| Conversion = [BoolConversion] conversion to bool +# 1809| Type = [BoolType] bool +# 1809| ValueCategory = prvalue +# 1813| getStmt(1): [DeclStmt] declaration +# 1813| getDeclarationEntry(0): [VariableDeclarationEntry] definition of w +# 1813| Type = [IntType] int +# 1814| getStmt(2): [IfStmt] if (...) ... +# 1814| getInitialization(): [ExprStmt] ExprStmt +# 1814| getExpr(): [AssignExpr] ... = ... +# 1814| Type = [IntType] int +# 1814| ValueCategory = lvalue +# 1814| getLValue(): [VariableAccess] w +# 1814| Type = [IntType] int +# 1814| ValueCategory = lvalue +# 1814| getRValue(): [VariableAccess] x +# 1814| Type = [IntType] int +# 1814| ValueCategory = prvalue(load) +# 1814| getCondition(): [AddExpr] ... + ... +# 1814| Type = [IntType] int +# 1814| ValueCategory = prvalue +# 1814| getLeftOperand(): [VariableAccess] x +# 1814| Type = [IntType] int +# 1814| ValueCategory = prvalue(load) +# 1814| getRightOperand(): [Literal] 1 +# 1814| Type = [IntType] int +# 1814| Value = [Literal] 1 +# 1814| ValueCategory = prvalue +# 1814| getThen(): [BlockStmt] { ... } +# 1815| getStmt(0): [ExprStmt] ExprStmt +# 1815| getExpr(): [AssignExpr] ... = ... +# 1815| Type = [IntType] int +# 1815| ValueCategory = lvalue +# 1815| getLValue(): [VariableAccess] x +# 1815| Type = [IntType] int +# 1815| ValueCategory = lvalue +# 1815| getRValue(): [AddExpr] ... + ... +# 1815| Type = [IntType] int +# 1815| ValueCategory = prvalue +# 1815| getLeftOperand(): [VariableAccess] x +# 1815| Type = [IntType] int +# 1815| ValueCategory = prvalue(load) +# 1815| getRightOperand(): [VariableAccess] w +# 1815| Type = [IntType] int +# 1815| ValueCategory = prvalue(load) +# 1814| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1814| Conversion = [BoolConversion] conversion to bool +# 1814| Type = [BoolType] bool +# 1814| ValueCategory = prvalue +# 1818| getStmt(3): [IfStmt] if (...) ... +# 1818| getInitialization(): [ExprStmt] ExprStmt +# 1818| getExpr(): [AssignExpr] ... = ... +# 1818| Type = [IntType] int +# 1818| ValueCategory = lvalue +# 1818| getLValue(): [VariableAccess] w +# 1818| Type = [IntType] int +# 1818| ValueCategory = lvalue +# 1818| getRValue(): [VariableAccess] x +# 1818| Type = [IntType] int +# 1818| ValueCategory = prvalue(load) +# 1818| getCondition(): [ConditionDeclExpr] (condition decl) +# 1818| Type = [BoolType] bool +# 1818| ValueCategory = prvalue +# 1818| getVariableAccess(): [VariableAccess] w2 +# 1818| Type = [IntType] int +# 1818| ValueCategory = prvalue(load) +# 1818| getInitializingExpr(): [VariableAccess] w +# 1818| Type = [IntType] int +# 1818| ValueCategory = prvalue(load) +# 1818| getVariableAccess().getFullyConverted(): [CStyleCast] (bool)... +# 1818| Conversion = [BoolConversion] conversion to bool +# 1818| Type = [BoolType] bool +# 1818| ValueCategory = prvalue +# 1818| getThen(): [BlockStmt] { ... } +# 1819| getStmt(0): [ExprStmt] ExprStmt +# 1819| getExpr(): [AssignExpr] ... = ... +# 1819| Type = [IntType] int +# 1819| ValueCategory = lvalue +# 1819| getLValue(): [VariableAccess] x +# 1819| Type = [IntType] int +# 1819| ValueCategory = lvalue +# 1819| getRValue(): [AddExpr] ... + ... +# 1819| Type = [IntType] int +# 1819| ValueCategory = prvalue +# 1819| getLeftOperand(): [VariableAccess] x +# 1819| Type = [IntType] int +# 1819| ValueCategory = prvalue(load) +# 1819| getRightOperand(): [VariableAccess] w +# 1819| Type = [IntType] int +# 1819| ValueCategory = prvalue(load) +# 1822| getStmt(4): [IfStmt] if (...) ... +# 1822| getInitialization(): [DeclStmt] declaration +# 1822| getDeclarationEntry(0): [VariableDeclarationEntry] definition of v +# 1822| Type = [IntType] int +# 1822| getVariable().getInitializer(): [Initializer] initializer for v +# 1822| getExpr(): [VariableAccess] x +# 1822| Type = [IntType] int +# 1822| ValueCategory = prvalue(load) +# 1822| getCondition(): [ConditionDeclExpr] (condition decl) +# 1822| Type = [BoolType] bool +# 1822| ValueCategory = prvalue +# 1822| getVariableAccess(): [VariableAccess] v2 +# 1822| Type = [IntType] int +# 1822| ValueCategory = prvalue(load) +# 1822| getInitializingExpr(): [VariableAccess] v +# 1822| Type = [IntType] int +# 1822| ValueCategory = prvalue(load) +# 1822| getVariableAccess().getFullyConverted(): [CStyleCast] (bool)... +# 1822| Conversion = [BoolConversion] conversion to bool +# 1822| Type = [BoolType] bool +# 1822| ValueCategory = prvalue +# 1822| getThen(): [BlockStmt] { ... } +# 1823| getStmt(0): [ExprStmt] ExprStmt +# 1823| getExpr(): [AssignExpr] ... = ... +# 1823| Type = [IntType] int +# 1823| ValueCategory = lvalue +# 1823| getLValue(): [VariableAccess] x +# 1823| Type = [IntType] int +# 1823| ValueCategory = lvalue +# 1823| getRValue(): [AddExpr] ... + ... +# 1823| Type = [IntType] int +# 1823| ValueCategory = prvalue +# 1823| getLeftOperand(): [VariableAccess] x +# 1823| Type = [IntType] int +# 1823| ValueCategory = prvalue(load) +# 1823| getRightOperand(): [VariableAccess] v +# 1823| Type = [IntType] int +# 1823| ValueCategory = prvalue(load) +# 1826| getStmt(5): [DeclStmt] declaration +# 1826| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z +# 1826| Type = [IntType] int +# 1826| getVariable().getInitializer(): [Initializer] initializer for z +# 1826| getExpr(): [VariableAccess] x # 1826| Type = [IntType] int -# 1826| ValueCategory = lvalue -# 1826| getLValue(): [VariableAccess] x -# 1826| Type = [IntType] int -# 1826| ValueCategory = lvalue -# 1826| getRValue(): [AddExpr] ... + ... -# 1826| Type = [IntType] int -# 1826| ValueCategory = prvalue -# 1826| getLeftOperand(): [VariableAccess] x -# 1826| Type = [IntType] int -# 1826| ValueCategory = prvalue(load) -# 1826| getRightOperand(): [VariableAccess] z -# 1826| Type = [IntType] int -# 1826| ValueCategory = prvalue(load) -# 1825| getCondition().getFullyConverted(): [CStyleCast] (bool)... -# 1825| Conversion = [BoolConversion] conversion to bool -# 1825| Type = [BoolType] bool -# 1825| ValueCategory = prvalue -# 1829| getStmt(7): [IfStmt] if (...) ... -# 1829| getCondition(): [ConditionDeclExpr] (condition decl) -# 1829| Type = [BoolType] bool -# 1829| ValueCategory = prvalue -# 1829| getVariableAccess(): [VariableAccess] z2 -# 1829| Type = [IntType] int -# 1829| ValueCategory = prvalue(load) -# 1829| getInitializingExpr(): [VariableAccess] z -# 1829| Type = [IntType] int -# 1829| ValueCategory = prvalue(load) -# 1829| getVariableAccess().getFullyConverted(): [CStyleCast] (bool)... -# 1829| Conversion = [BoolConversion] conversion to bool -# 1829| Type = [BoolType] bool -# 1829| ValueCategory = prvalue -# 1829| getThen(): [BlockStmt] { ... } -# 1830| getStmt(0): [ExprStmt] ExprStmt -# 1830| getExpr(): [AssignAddExpr] ... += ... -# 1830| Type = [IntType] int -# 1830| ValueCategory = lvalue -# 1830| getLValue(): [VariableAccess] x -# 1830| Type = [IntType] int -# 1830| ValueCategory = lvalue -# 1830| getRValue(): [VariableAccess] z2 -# 1830| Type = [IntType] int -# 1830| ValueCategory = prvalue(load) -# 1832| getStmt(8): [ReturnStmt] return ... -# 1834| [TopLevelFunction] void switch_initialization(int) -# 1834| : -# 1834| getParameter(0): [Parameter] x -# 1834| Type = [IntType] int -# 1834| getEntryPoint(): [BlockStmt] { ... } -# 1835| getStmt(0): [SwitchStmt] switch (...) ... -# 1835| getInitialization(): [DeclStmt] declaration -# 1835| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y -# 1835| Type = [IntType] int -# 1835| getVariable().getInitializer(): [Initializer] initializer for y -# 1835| getExpr(): [VariableAccess] x -# 1835| Type = [IntType] int -# 1835| ValueCategory = prvalue(load) -# 1835| getExpr(): [AddExpr] ... + ... -# 1835| Type = [IntType] int -# 1835| ValueCategory = prvalue -# 1835| getLeftOperand(): [VariableAccess] x -# 1835| Type = [IntType] int -# 1835| ValueCategory = prvalue(load) -# 1835| getRightOperand(): [Literal] 1 -# 1835| Type = [IntType] int -# 1835| Value = [Literal] 1 -# 1835| ValueCategory = prvalue -# 1835| getStmt(): [BlockStmt] { ... } -# 1836| getStmt(0): [SwitchCase] default: -# 1837| getStmt(1): [ExprStmt] ExprStmt -# 1837| getExpr(): [AssignExpr] ... = ... -# 1837| Type = [IntType] int -# 1837| ValueCategory = lvalue -# 1837| getLValue(): [VariableAccess] x +# 1826| ValueCategory = prvalue(load) +# 1827| getStmt(6): [IfStmt] if (...) ... +# 1827| getCondition(): [VariableAccess] z +# 1827| Type = [IntType] int +# 1827| ValueCategory = prvalue(load) +# 1827| getThen(): [BlockStmt] { ... } +# 1828| getStmt(0): [ExprStmt] ExprStmt +# 1828| getExpr(): [AssignExpr] ... = ... +# 1828| Type = [IntType] int +# 1828| ValueCategory = lvalue +# 1828| getLValue(): [VariableAccess] x +# 1828| Type = [IntType] int +# 1828| ValueCategory = lvalue +# 1828| getRValue(): [AddExpr] ... + ... +# 1828| Type = [IntType] int +# 1828| ValueCategory = prvalue +# 1828| getLeftOperand(): [VariableAccess] x +# 1828| Type = [IntType] int +# 1828| ValueCategory = prvalue(load) +# 1828| getRightOperand(): [VariableAccess] z +# 1828| Type = [IntType] int +# 1828| ValueCategory = prvalue(load) +# 1827| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1827| Conversion = [BoolConversion] conversion to bool +# 1827| Type = [BoolType] bool +# 1827| ValueCategory = prvalue +# 1831| getStmt(7): [IfStmt] if (...) ... +# 1831| getCondition(): [ConditionDeclExpr] (condition decl) +# 1831| Type = [BoolType] bool +# 1831| ValueCategory = prvalue +# 1831| getVariableAccess(): [VariableAccess] z2 +# 1831| Type = [IntType] int +# 1831| ValueCategory = prvalue(load) +# 1831| getInitializingExpr(): [VariableAccess] z +# 1831| Type = [IntType] int +# 1831| ValueCategory = prvalue(load) +# 1831| getVariableAccess().getFullyConverted(): [CStyleCast] (bool)... +# 1831| Conversion = [BoolConversion] conversion to bool +# 1831| Type = [BoolType] bool +# 1831| ValueCategory = prvalue +# 1831| getThen(): [BlockStmt] { ... } +# 1832| getStmt(0): [ExprStmt] ExprStmt +# 1832| getExpr(): [AssignAddExpr] ... += ... +# 1832| Type = [IntType] int +# 1832| ValueCategory = lvalue +# 1832| getLValue(): [VariableAccess] x +# 1832| Type = [IntType] int +# 1832| ValueCategory = lvalue +# 1832| getRValue(): [VariableAccess] z2 +# 1832| Type = [IntType] int +# 1832| ValueCategory = prvalue(load) +# 1834| getStmt(8): [ReturnStmt] return ... +# 1836| [TopLevelFunction] void switch_initialization(int) +# 1836| : +# 1836| getParameter(0): [Parameter] x +# 1836| Type = [IntType] int +# 1836| getEntryPoint(): [BlockStmt] { ... } +# 1837| getStmt(0): [SwitchStmt] switch (...) ... +# 1837| getInitialization(): [DeclStmt] declaration +# 1837| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y +# 1837| Type = [IntType] int +# 1837| getVariable().getInitializer(): [Initializer] initializer for y +# 1837| getExpr(): [VariableAccess] x # 1837| Type = [IntType] int -# 1837| ValueCategory = lvalue -# 1837| getRValue(): [AddExpr] ... + ... -# 1837| Type = [IntType] int -# 1837| ValueCategory = prvalue -# 1837| getLeftOperand(): [VariableAccess] x -# 1837| Type = [IntType] int -# 1837| ValueCategory = prvalue(load) -# 1837| getRightOperand(): [VariableAccess] y -# 1837| Type = [IntType] int -# 1837| ValueCategory = prvalue(load) -# 1840| getStmt(1): [DeclStmt] declaration -# 1840| getDeclarationEntry(0): [VariableDeclarationEntry] definition of w -# 1840| Type = [IntType] int -# 1841| getStmt(2): [SwitchStmt] switch (...) ... -# 1841| getInitialization(): [ExprStmt] ExprStmt -# 1841| getExpr(): [AssignExpr] ... = ... -# 1841| Type = [IntType] int -# 1841| ValueCategory = lvalue -# 1841| getLValue(): [VariableAccess] w -# 1841| Type = [IntType] int -# 1841| ValueCategory = lvalue -# 1841| getRValue(): [VariableAccess] x -# 1841| Type = [IntType] int -# 1841| ValueCategory = prvalue(load) -# 1841| getExpr(): [AddExpr] ... + ... -# 1841| Type = [IntType] int -# 1841| ValueCategory = prvalue -# 1841| getLeftOperand(): [VariableAccess] x -# 1841| Type = [IntType] int -# 1841| ValueCategory = prvalue(load) -# 1841| getRightOperand(): [Literal] 1 -# 1841| Type = [IntType] int -# 1841| Value = [Literal] 1 -# 1841| ValueCategory = prvalue -# 1841| getStmt(): [BlockStmt] { ... } -# 1842| getStmt(0): [SwitchCase] default: -# 1843| getStmt(1): [ExprStmt] ExprStmt -# 1843| getExpr(): [AssignExpr] ... = ... +# 1837| ValueCategory = prvalue(load) +# 1837| getExpr(): [AddExpr] ... + ... +# 1837| Type = [IntType] int +# 1837| ValueCategory = prvalue +# 1837| getLeftOperand(): [VariableAccess] x +# 1837| Type = [IntType] int +# 1837| ValueCategory = prvalue(load) +# 1837| getRightOperand(): [Literal] 1 +# 1837| Type = [IntType] int +# 1837| Value = [Literal] 1 +# 1837| ValueCategory = prvalue +# 1837| getStmt(): [BlockStmt] { ... } +# 1838| getStmt(0): [SwitchCase] default: +# 1839| getStmt(1): [ExprStmt] ExprStmt +# 1839| getExpr(): [AssignExpr] ... = ... +# 1839| Type = [IntType] int +# 1839| ValueCategory = lvalue +# 1839| getLValue(): [VariableAccess] x +# 1839| Type = [IntType] int +# 1839| ValueCategory = lvalue +# 1839| getRValue(): [AddExpr] ... + ... +# 1839| Type = [IntType] int +# 1839| ValueCategory = prvalue +# 1839| getLeftOperand(): [VariableAccess] x +# 1839| Type = [IntType] int +# 1839| ValueCategory = prvalue(load) +# 1839| getRightOperand(): [VariableAccess] y +# 1839| Type = [IntType] int +# 1839| ValueCategory = prvalue(load) +# 1842| getStmt(1): [DeclStmt] declaration +# 1842| getDeclarationEntry(0): [VariableDeclarationEntry] definition of w +# 1842| Type = [IntType] int +# 1843| getStmt(2): [SwitchStmt] switch (...) ... +# 1843| getInitialization(): [ExprStmt] ExprStmt +# 1843| getExpr(): [AssignExpr] ... = ... +# 1843| Type = [IntType] int +# 1843| ValueCategory = lvalue +# 1843| getLValue(): [VariableAccess] w # 1843| Type = [IntType] int # 1843| ValueCategory = lvalue -# 1843| getLValue(): [VariableAccess] x -# 1843| Type = [IntType] int -# 1843| ValueCategory = lvalue -# 1843| getRValue(): [AddExpr] ... + ... -# 1843| Type = [IntType] int -# 1843| ValueCategory = prvalue -# 1843| getLeftOperand(): [VariableAccess] x -# 1843| Type = [IntType] int -# 1843| ValueCategory = prvalue(load) -# 1843| getRightOperand(): [VariableAccess] w -# 1843| Type = [IntType] int -# 1843| ValueCategory = prvalue(load) -# 1846| getStmt(3): [SwitchStmt] switch (...) ... -# 1846| getInitialization(): [ExprStmt] ExprStmt -# 1846| getExpr(): [AssignExpr] ... = ... -# 1846| Type = [IntType] int -# 1846| ValueCategory = lvalue -# 1846| getLValue(): [VariableAccess] w -# 1846| Type = [IntType] int -# 1846| ValueCategory = lvalue -# 1846| getRValue(): [VariableAccess] x -# 1846| Type = [IntType] int -# 1846| ValueCategory = prvalue(load) -# 1846| getExpr(): [ConditionDeclExpr] (condition decl) -# 1846| Type = [IntType] int -# 1846| ValueCategory = prvalue -# 1846| getVariableAccess(): [VariableAccess] w2 -# 1846| Type = [IntType] int -# 1846| ValueCategory = prvalue(load) -# 1846| getInitializingExpr(): [VariableAccess] w -# 1846| Type = [IntType] int -# 1846| ValueCategory = prvalue(load) -# 1846| getStmt(): [BlockStmt] { ... } -# 1847| getStmt(0): [SwitchCase] default: -# 1848| getStmt(1): [ExprStmt] ExprStmt -# 1848| getExpr(): [AssignExpr] ... = ... +# 1843| getRValue(): [VariableAccess] x +# 1843| Type = [IntType] int +# 1843| ValueCategory = prvalue(load) +# 1843| getExpr(): [AddExpr] ... + ... +# 1843| Type = [IntType] int +# 1843| ValueCategory = prvalue +# 1843| getLeftOperand(): [VariableAccess] x +# 1843| Type = [IntType] int +# 1843| ValueCategory = prvalue(load) +# 1843| getRightOperand(): [Literal] 1 +# 1843| Type = [IntType] int +# 1843| Value = [Literal] 1 +# 1843| ValueCategory = prvalue +# 1843| getStmt(): [BlockStmt] { ... } +# 1844| getStmt(0): [SwitchCase] default: +# 1845| getStmt(1): [ExprStmt] ExprStmt +# 1845| getExpr(): [AssignExpr] ... = ... +# 1845| Type = [IntType] int +# 1845| ValueCategory = lvalue +# 1845| getLValue(): [VariableAccess] x +# 1845| Type = [IntType] int +# 1845| ValueCategory = lvalue +# 1845| getRValue(): [AddExpr] ... + ... +# 1845| Type = [IntType] int +# 1845| ValueCategory = prvalue +# 1845| getLeftOperand(): [VariableAccess] x +# 1845| Type = [IntType] int +# 1845| ValueCategory = prvalue(load) +# 1845| getRightOperand(): [VariableAccess] w +# 1845| Type = [IntType] int +# 1845| ValueCategory = prvalue(load) +# 1848| getStmt(3): [SwitchStmt] switch (...) ... +# 1848| getInitialization(): [ExprStmt] ExprStmt +# 1848| getExpr(): [AssignExpr] ... = ... +# 1848| Type = [IntType] int +# 1848| ValueCategory = lvalue +# 1848| getLValue(): [VariableAccess] w # 1848| Type = [IntType] int # 1848| ValueCategory = lvalue -# 1848| getLValue(): [VariableAccess] x -# 1848| Type = [IntType] int -# 1848| ValueCategory = lvalue -# 1848| getRValue(): [AddExpr] ... + ... -# 1848| Type = [IntType] int -# 1848| ValueCategory = prvalue -# 1848| getLeftOperand(): [VariableAccess] x -# 1848| Type = [IntType] int -# 1848| ValueCategory = prvalue(load) -# 1848| getRightOperand(): [VariableAccess] w -# 1848| Type = [IntType] int -# 1848| ValueCategory = prvalue(load) -# 1851| getStmt(4): [SwitchStmt] switch (...) ... -# 1851| getInitialization(): [DeclStmt] declaration -# 1851| getDeclarationEntry(0): [VariableDeclarationEntry] definition of v -# 1851| Type = [IntType] int -# 1851| getVariable().getInitializer(): [Initializer] initializer for v -# 1851| getExpr(): [VariableAccess] x -# 1851| Type = [IntType] int -# 1851| ValueCategory = prvalue(load) -# 1851| getExpr(): [ConditionDeclExpr] (condition decl) -# 1851| Type = [IntType] int -# 1851| ValueCategory = prvalue -# 1851| getVariableAccess(): [VariableAccess] v2 -# 1851| Type = [IntType] int -# 1851| ValueCategory = prvalue(load) -# 1851| getInitializingExpr(): [VariableAccess] v -# 1851| Type = [IntType] int -# 1851| ValueCategory = prvalue(load) -# 1851| getStmt(): [BlockStmt] { ... } -# 1852| getStmt(0): [SwitchCase] default: -# 1853| getStmt(1): [ExprStmt] ExprStmt -# 1853| getExpr(): [AssignExpr] ... = ... -# 1853| Type = [IntType] int -# 1853| ValueCategory = lvalue -# 1853| getLValue(): [VariableAccess] x -# 1853| Type = [IntType] int -# 1853| ValueCategory = lvalue -# 1853| getRValue(): [AddExpr] ... + ... +# 1848| getRValue(): [VariableAccess] x +# 1848| Type = [IntType] int +# 1848| ValueCategory = prvalue(load) +# 1848| getExpr(): [ConditionDeclExpr] (condition decl) +# 1848| Type = [IntType] int +# 1848| ValueCategory = prvalue +# 1848| getVariableAccess(): [VariableAccess] w2 +# 1848| Type = [IntType] int +# 1848| ValueCategory = prvalue(load) +# 1848| getInitializingExpr(): [VariableAccess] w +# 1848| Type = [IntType] int +# 1848| ValueCategory = prvalue(load) +# 1848| getStmt(): [BlockStmt] { ... } +# 1849| getStmt(0): [SwitchCase] default: +# 1850| getStmt(1): [ExprStmt] ExprStmt +# 1850| getExpr(): [AssignExpr] ... = ... +# 1850| Type = [IntType] int +# 1850| ValueCategory = lvalue +# 1850| getLValue(): [VariableAccess] x +# 1850| Type = [IntType] int +# 1850| ValueCategory = lvalue +# 1850| getRValue(): [AddExpr] ... + ... +# 1850| Type = [IntType] int +# 1850| ValueCategory = prvalue +# 1850| getLeftOperand(): [VariableAccess] x +# 1850| Type = [IntType] int +# 1850| ValueCategory = prvalue(load) +# 1850| getRightOperand(): [VariableAccess] w +# 1850| Type = [IntType] int +# 1850| ValueCategory = prvalue(load) +# 1853| getStmt(4): [SwitchStmt] switch (...) ... +# 1853| getInitialization(): [DeclStmt] declaration +# 1853| getDeclarationEntry(0): [VariableDeclarationEntry] definition of v +# 1853| Type = [IntType] int +# 1853| getVariable().getInitializer(): [Initializer] initializer for v +# 1853| getExpr(): [VariableAccess] x # 1853| Type = [IntType] int -# 1853| ValueCategory = prvalue -# 1853| getLeftOperand(): [VariableAccess] x -# 1853| Type = [IntType] int -# 1853| ValueCategory = prvalue(load) -# 1853| getRightOperand(): [VariableAccess] v -# 1853| Type = [IntType] int -# 1853| ValueCategory = prvalue(load) -# 1856| getStmt(5): [DeclStmt] declaration -# 1856| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z -# 1856| Type = [IntType] int -# 1856| getVariable().getInitializer(): [Initializer] initializer for z -# 1856| getExpr(): [VariableAccess] x -# 1856| Type = [IntType] int -# 1856| ValueCategory = prvalue(load) -# 1857| getStmt(6): [SwitchStmt] switch (...) ... -# 1857| getExpr(): [VariableAccess] z -# 1857| Type = [IntType] int -# 1857| ValueCategory = prvalue(load) -# 1857| getStmt(): [BlockStmt] { ... } -# 1858| getStmt(0): [SwitchCase] default: -# 1859| getStmt(1): [ExprStmt] ExprStmt -# 1859| getExpr(): [AssignExpr] ... = ... -# 1859| Type = [IntType] int -# 1859| ValueCategory = lvalue -# 1859| getLValue(): [VariableAccess] x -# 1859| Type = [IntType] int -# 1859| ValueCategory = lvalue -# 1859| getRValue(): [AddExpr] ... + ... -# 1859| Type = [IntType] int -# 1859| ValueCategory = prvalue -# 1859| getLeftOperand(): [VariableAccess] x -# 1859| Type = [IntType] int -# 1859| ValueCategory = prvalue(load) -# 1859| getRightOperand(): [VariableAccess] z -# 1859| Type = [IntType] int -# 1859| ValueCategory = prvalue(load) -# 1862| getStmt(7): [SwitchStmt] switch (...) ... -# 1862| getExpr(): [ConditionDeclExpr] (condition decl) -# 1862| Type = [IntType] int -# 1862| ValueCategory = prvalue -# 1862| getVariableAccess(): [VariableAccess] z2 -# 1862| Type = [IntType] int -# 1862| ValueCategory = prvalue(load) -# 1862| getInitializingExpr(): [VariableAccess] z -# 1862| Type = [IntType] int -# 1862| ValueCategory = prvalue(load) -# 1862| getStmt(): [BlockStmt] { ... } -# 1863| getStmt(0): [SwitchCase] default: -# 1864| getStmt(1): [ExprStmt] ExprStmt -# 1864| getExpr(): [AssignAddExpr] ... += ... -# 1864| Type = [IntType] int -# 1864| ValueCategory = lvalue -# 1864| getLValue(): [VariableAccess] x -# 1864| Type = [IntType] int -# 1864| ValueCategory = lvalue -# 1864| getRValue(): [VariableAccess] z2 -# 1864| Type = [IntType] int -# 1864| ValueCategory = prvalue(load) -# 1866| getStmt(8): [ReturnStmt] return ... -# 1870| [GlobalVariable] int global_2 -# 1870| getInitializer(): [Initializer] initializer for global_2 -# 1870| getExpr(): [Literal] 1 -# 1870| Type = [IntType] int -# 1870| Value = [Literal] 1 -# 1870| ValueCategory = prvalue -# 1872| [GlobalVariable] int const global_3 -# 1872| getInitializer(): [Initializer] initializer for global_3 -# 1872| getExpr(): [Literal] 2 +# 1853| ValueCategory = prvalue(load) +# 1853| getExpr(): [ConditionDeclExpr] (condition decl) +# 1853| Type = [IntType] int +# 1853| ValueCategory = prvalue +# 1853| getVariableAccess(): [VariableAccess] v2 +# 1853| Type = [IntType] int +# 1853| ValueCategory = prvalue(load) +# 1853| getInitializingExpr(): [VariableAccess] v +# 1853| Type = [IntType] int +# 1853| ValueCategory = prvalue(load) +# 1853| getStmt(): [BlockStmt] { ... } +# 1854| getStmt(0): [SwitchCase] default: +# 1855| getStmt(1): [ExprStmt] ExprStmt +# 1855| getExpr(): [AssignExpr] ... = ... +# 1855| Type = [IntType] int +# 1855| ValueCategory = lvalue +# 1855| getLValue(): [VariableAccess] x +# 1855| Type = [IntType] int +# 1855| ValueCategory = lvalue +# 1855| getRValue(): [AddExpr] ... + ... +# 1855| Type = [IntType] int +# 1855| ValueCategory = prvalue +# 1855| getLeftOperand(): [VariableAccess] x +# 1855| Type = [IntType] int +# 1855| ValueCategory = prvalue(load) +# 1855| getRightOperand(): [VariableAccess] v +# 1855| Type = [IntType] int +# 1855| ValueCategory = prvalue(load) +# 1858| getStmt(5): [DeclStmt] declaration +# 1858| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z +# 1858| Type = [IntType] int +# 1858| getVariable().getInitializer(): [Initializer] initializer for z +# 1858| getExpr(): [VariableAccess] x +# 1858| Type = [IntType] int +# 1858| ValueCategory = prvalue(load) +# 1859| getStmt(6): [SwitchStmt] switch (...) ... +# 1859| getExpr(): [VariableAccess] z +# 1859| Type = [IntType] int +# 1859| ValueCategory = prvalue(load) +# 1859| getStmt(): [BlockStmt] { ... } +# 1860| getStmt(0): [SwitchCase] default: +# 1861| getStmt(1): [ExprStmt] ExprStmt +# 1861| getExpr(): [AssignExpr] ... = ... +# 1861| Type = [IntType] int +# 1861| ValueCategory = lvalue +# 1861| getLValue(): [VariableAccess] x +# 1861| Type = [IntType] int +# 1861| ValueCategory = lvalue +# 1861| getRValue(): [AddExpr] ... + ... +# 1861| Type = [IntType] int +# 1861| ValueCategory = prvalue +# 1861| getLeftOperand(): [VariableAccess] x +# 1861| Type = [IntType] int +# 1861| ValueCategory = prvalue(load) +# 1861| getRightOperand(): [VariableAccess] z +# 1861| Type = [IntType] int +# 1861| ValueCategory = prvalue(load) +# 1864| getStmt(7): [SwitchStmt] switch (...) ... +# 1864| getExpr(): [ConditionDeclExpr] (condition decl) +# 1864| Type = [IntType] int +# 1864| ValueCategory = prvalue +# 1864| getVariableAccess(): [VariableAccess] z2 +# 1864| Type = [IntType] int +# 1864| ValueCategory = prvalue(load) +# 1864| getInitializingExpr(): [VariableAccess] z +# 1864| Type = [IntType] int +# 1864| ValueCategory = prvalue(load) +# 1864| getStmt(): [BlockStmt] { ... } +# 1865| getStmt(0): [SwitchCase] default: +# 1866| getStmt(1): [ExprStmt] ExprStmt +# 1866| getExpr(): [AssignAddExpr] ... += ... +# 1866| Type = [IntType] int +# 1866| ValueCategory = lvalue +# 1866| getLValue(): [VariableAccess] x +# 1866| Type = [IntType] int +# 1866| ValueCategory = lvalue +# 1866| getRValue(): [VariableAccess] z2 +# 1866| Type = [IntType] int +# 1866| ValueCategory = prvalue(load) +# 1868| getStmt(8): [ReturnStmt] return ... +# 1872| [GlobalVariable] int global_2 +# 1872| getInitializer(): [Initializer] initializer for global_2 +# 1872| getExpr(): [Literal] 1 # 1872| Type = [IntType] int -# 1872| Value = [Literal] 2 +# 1872| Value = [Literal] 1 # 1872| ValueCategory = prvalue -# 1874| [GlobalVariable] constructor_only global_4 -# 1874| getInitializer(): [Initializer] initializer for global_4 -# 1874| getExpr(): [ConstructorCall] call to constructor_only -# 1874| Type = [VoidType] void +# 1874| [GlobalVariable] int const global_3 +# 1874| getInitializer(): [Initializer] initializer for global_3 +# 1874| getExpr(): [Literal] 2 +# 1874| Type = [IntType] int +# 1874| Value = [Literal] 2 # 1874| ValueCategory = prvalue -# 1874| getArgument(0): [Literal] 1 -# 1874| Type = [IntType] int -# 1874| Value = [Literal] 1 -# 1874| ValueCategory = prvalue -# 1876| [GlobalVariable] constructor_only global_5 -# 1876| getInitializer(): [Initializer] initializer for global_5 +# 1876| [GlobalVariable] constructor_only global_4 +# 1876| getInitializer(): [Initializer] initializer for global_4 # 1876| getExpr(): [ConstructorCall] call to constructor_only # 1876| Type = [VoidType] void # 1876| ValueCategory = prvalue -# 1876| getArgument(0): [Literal] 2 +# 1876| getArgument(0): [Literal] 1 # 1876| Type = [IntType] int -# 1876| Value = [Literal] 2 +# 1876| Value = [Literal] 1 # 1876| ValueCategory = prvalue -# 1878| [GlobalVariable] char* global_string -# 1878| getInitializer(): [Initializer] initializer for global_string -# 1878| getExpr(): global string -# 1878| Type = [ArrayType] const char[14] -# 1878| Value = [StringLiteral] "global string" -# 1878| ValueCategory = lvalue -# 1878| getExpr().getFullyConverted(): [CStyleCast] (char *)... -# 1878| Conversion = [PointerConversion] pointer conversion -# 1878| Type = [CharPointerType] char * +# 1878| [GlobalVariable] constructor_only global_5 +# 1878| getInitializer(): [Initializer] initializer for global_5 +# 1878| getExpr(): [ConstructorCall] call to constructor_only +# 1878| Type = [VoidType] void # 1878| ValueCategory = prvalue -# 1878| getExpr(): [ArrayToPointerConversion] array to pointer conversion -# 1878| Type = [PointerType] const char * +# 1878| getArgument(0): [Literal] 2 +# 1878| Type = [IntType] int +# 1878| Value = [Literal] 2 # 1878| ValueCategory = prvalue -# 1880| [GlobalVariable] int global_6 -# 1880| getInitializer(): [Initializer] initializer for global_6 -# 1880| getExpr(): [VariableAccess] global_2 -# 1880| Type = [IntType] int -# 1880| ValueCategory = prvalue(load) -# 1883| [CopyAssignmentOperator] block_assignment::A& block_assignment::A::operator=(block_assignment::A const&) -# 1883| : +# 1880| [GlobalVariable] char* global_string +# 1880| getInitializer(): [Initializer] initializer for global_string +# 1880| getExpr(): global string +# 1880| Type = [ArrayType] const char[14] +# 1880| Value = [StringLiteral] "global string" +# 1880| ValueCategory = lvalue +# 1880| getExpr().getFullyConverted(): [CStyleCast] (char *)... +# 1880| Conversion = [PointerConversion] pointer conversion +# 1880| Type = [CharPointerType] char * +# 1880| ValueCategory = prvalue +# 1880| getExpr(): [ArrayToPointerConversion] array to pointer conversion +# 1880| Type = [PointerType] const char * +# 1880| ValueCategory = prvalue +# 1882| [GlobalVariable] int global_6 +# 1882| getInitializer(): [Initializer] initializer for global_6 +# 1882| getExpr(): [VariableAccess] global_2 +# 1882| Type = [IntType] int +# 1882| ValueCategory = prvalue(load) +# 1885| [CopyAssignmentOperator] block_assignment::A& block_assignment::A::operator=(block_assignment::A const&) +# 1885| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const A & -# 1883| [MoveAssignmentOperator] block_assignment::A& block_assignment::A::operator=(block_assignment::A&&) -# 1883| : +# 1885| [MoveAssignmentOperator] block_assignment::A& block_assignment::A::operator=(block_assignment::A&&) +# 1885| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] A && #-----| getEntryPoint(): [BlockStmt] { ... } @@ -17855,43 +17887,43 @@ ir.cpp: #-----| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) #-----| Type = [LValueReferenceType] A & #-----| ValueCategory = prvalue -# 1883| [Constructor] void block_assignment::A::A() -# 1883| : -# 1883| [CopyConstructor] void block_assignment::A::A(block_assignment::A const&) -# 1883| : +# 1885| [Constructor] void block_assignment::A::A() +# 1885| : +# 1885| [CopyConstructor] void block_assignment::A::A(block_assignment::A const&) +# 1885| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const A & -# 1883| [MoveConstructor] void block_assignment::A::A(block_assignment::A&&) -# 1883| : +# 1885| [MoveConstructor] void block_assignment::A::A(block_assignment::A&&) +# 1885| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] A && -# 1885| [VirtualFunction] void block_assignment::A::f() -# 1885| : -# 1888| [CopyAssignmentOperator] block_assignment::B& block_assignment::B::operator=(block_assignment::B const&) -# 1888| : +# 1887| [VirtualFunction] void block_assignment::A::f() +# 1887| : +# 1890| [CopyAssignmentOperator] block_assignment::B& block_assignment::B::operator=(block_assignment::B const&) +# 1890| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const B & -# 1888| [MoveAssignmentOperator] block_assignment::B& block_assignment::B::operator=(block_assignment::B&&) -# 1888| : +# 1890| [MoveAssignmentOperator] block_assignment::B& block_assignment::B::operator=(block_assignment::B&&) +# 1890| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] B && #-----| getEntryPoint(): [BlockStmt] { ... } #-----| getStmt(0): [ExprStmt] ExprStmt -# 1888| getExpr(): [FunctionCall] call to operator= -# 1888| Type = [LValueReferenceType] A & -# 1888| ValueCategory = prvalue -# 1888| getQualifier(): [ThisExpr] this -# 1888| Type = [PointerType] B * -# 1888| ValueCategory = prvalue(load) -# 1888| getArgument(0): [PointerDereferenceExpr] * ... -# 1888| Type = [Class] A -# 1888| ValueCategory = xvalue -# 1888| getOperand(): [AddressOfExpr] & ... -# 1888| Type = [PointerType] B * -# 1888| ValueCategory = prvalue -# 1888| getOperand(): [VariableAccess] (unnamed parameter 0) -# 1888| Type = [RValueReferenceType] B && -# 1888| ValueCategory = prvalue(load) +# 1890| getExpr(): [FunctionCall] call to operator= +# 1890| Type = [LValueReferenceType] A & +# 1890| ValueCategory = prvalue +# 1890| getQualifier(): [ThisExpr] this +# 1890| Type = [PointerType] B * +# 1890| ValueCategory = prvalue(load) +# 1890| getArgument(0): [PointerDereferenceExpr] * ... +# 1890| Type = [Class] A +# 1890| ValueCategory = xvalue +# 1890| getOperand(): [AddressOfExpr] & ... +# 1890| Type = [PointerType] B * +# 1890| ValueCategory = prvalue +# 1890| getOperand(): [VariableAccess] (unnamed parameter 0) +# 1890| Type = [RValueReferenceType] B && +# 1890| ValueCategory = prvalue(load) #-----| getOperand().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) #-----| Type = [Struct] B #-----| ValueCategory = lvalue @@ -17919,780 +17951,742 @@ ir.cpp: #-----| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) #-----| Type = [LValueReferenceType] B & #-----| ValueCategory = prvalue -# 1888| [CopyConstructor] void block_assignment::B::B(block_assignment::B const&) -# 1888| : +# 1890| [CopyConstructor] void block_assignment::B::B(block_assignment::B const&) +# 1890| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const B & -# 1888| [MoveConstructor] void block_assignment::B::B(block_assignment::B&&) -# 1888| : +# 1890| [MoveConstructor] void block_assignment::B::B(block_assignment::B&&) +# 1890| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] B && -# 1889| [Constructor] void block_assignment::B::B(block_assignment::A*) -# 1889| : -# 1889| getParameter(0): [Parameter] (unnamed parameter 0) -# 1889| Type = [PointerType] A * -# 1892| [TopLevelFunction] void block_assignment::foo() -# 1892| : -# 1892| getEntryPoint(): [BlockStmt] { ... } -# 1893| getStmt(0): [DeclStmt] declaration -# 1893| getDeclarationEntry(0): [VariableDeclarationEntry] definition of v -# 1893| Type = [Struct] B -# 1893| getVariable().getInitializer(): [Initializer] initializer for v -# 1893| getExpr(): [ConstructorCall] call to B -# 1893| Type = [VoidType] void -# 1893| ValueCategory = prvalue -# 1893| getArgument(0): [Literal] 0 -# 1893| Type = [IntType] int -# 1893| Value = [Literal] 0 -# 1893| ValueCategory = prvalue -# 1893| getArgument(0).getFullyConverted(): [CStyleCast] (A *)... -# 1893| Conversion = [IntegralToPointerConversion] integral to pointer conversion -# 1893| Type = [PointerType] A * -# 1893| Value = [CStyleCast] 0 -# 1893| ValueCategory = prvalue -# 1894| getStmt(1): [ExprStmt] ExprStmt -# 1894| getExpr(): [FunctionCall] call to operator= -# 1894| Type = [LValueReferenceType] B & -# 1894| ValueCategory = prvalue -# 1894| getQualifier(): [VariableAccess] v -# 1894| Type = [Struct] B -# 1894| ValueCategory = lvalue -# 1894| getArgument(0): [ConstructorCall] call to B -# 1894| Type = [VoidType] void -# 1894| ValueCategory = prvalue -# 1894| getArgument(0): [Literal] 0 -# 1894| Type = [IntType] int -# 1894| Value = [Literal] 0 -# 1894| ValueCategory = prvalue -# 1894| getArgument(0).getFullyConverted(): [CStyleCast] (A *)... -# 1894| Conversion = [IntegralToPointerConversion] integral to pointer conversion -# 1894| Type = [PointerType] A * -# 1894| Value = [CStyleCast] 0 -# 1894| ValueCategory = prvalue -# 1894| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) -# 1894| Type = [LValueReferenceType] B & -# 1894| ValueCategory = prvalue -# 1894| getExpr(): [TemporaryObjectExpr] temporary object -# 1894| Type = [Struct] B -# 1894| ValueCategory = lvalue -# 1894| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1894| Type = [Struct] B -# 1894| ValueCategory = lvalue -# 1895| getStmt(2): [ReturnStmt] return ... -# 1898| [TopLevelFunction] void magicvars() -# 1898| : -# 1898| getEntryPoint(): [BlockStmt] { ... } -# 1899| getStmt(0): [DeclStmt] declaration -# 1899| getDeclarationEntry(0): [VariableDeclarationEntry] definition of pf -# 1899| Type = [PointerType] const char * -# 1899| getVariable().getInitializer(): [Initializer] initializer for pf -# 1899| getExpr(): [VariableAccess] __PRETTY_FUNCTION__ -# 1899| Type = [ArrayType] const char[17] -# 1899| ValueCategory = lvalue -# 1899| getExpr().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 1899| Type = [PointerType] const char * -# 1899| ValueCategory = prvalue -# 1900| getStmt(1): [DeclStmt] declaration -# 1900| getDeclarationEntry(0): [VariableDeclarationEntry] definition of strfunc -# 1900| Type = [PointerType] const char * -# 1900| getVariable().getInitializer(): [Initializer] initializer for strfunc -# 1900| getExpr(): [VariableAccess] __func__ -# 1900| Type = [ArrayType] const char[10] -# 1900| ValueCategory = lvalue -# 1900| getExpr().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 1900| Type = [PointerType] const char * -# 1900| ValueCategory = prvalue -# 1901| getStmt(2): [ReturnStmt] return ... -# 1904| [CopyAssignmentOperator] missing_declaration_entries::S& missing_declaration_entries::S::operator=(missing_declaration_entries::S const&) -# 1904| : +# 1891| [Constructor] void block_assignment::B::B(block_assignment::A*) +# 1891| : +# 1891| getParameter(0): [Parameter] (unnamed parameter 0) +# 1891| Type = [PointerType] A * +# 1894| [TopLevelFunction] void block_assignment::foo() +# 1894| : +# 1894| getEntryPoint(): [BlockStmt] { ... } +# 1895| getStmt(0): [DeclStmt] declaration +# 1895| getDeclarationEntry(0): [VariableDeclarationEntry] definition of v +# 1895| Type = [Struct] B +# 1895| getVariable().getInitializer(): [Initializer] initializer for v +# 1895| getExpr(): [ConstructorCall] call to B +# 1895| Type = [VoidType] void +# 1895| ValueCategory = prvalue +# 1895| getArgument(0): [Literal] 0 +# 1895| Type = [IntType] int +# 1895| Value = [Literal] 0 +# 1895| ValueCategory = prvalue +# 1895| getArgument(0).getFullyConverted(): [CStyleCast] (A *)... +# 1895| Conversion = [IntegralToPointerConversion] integral to pointer conversion +# 1895| Type = [PointerType] A * +# 1895| Value = [CStyleCast] 0 +# 1895| ValueCategory = prvalue +# 1896| getStmt(1): [ExprStmt] ExprStmt +# 1896| getExpr(): [FunctionCall] call to operator= +# 1896| Type = [LValueReferenceType] B & +# 1896| ValueCategory = prvalue +# 1896| getQualifier(): [VariableAccess] v +# 1896| Type = [Struct] B +# 1896| ValueCategory = lvalue +# 1896| getArgument(0): [ConstructorCall] call to B +# 1896| Type = [VoidType] void +# 1896| ValueCategory = prvalue +# 1896| getArgument(0): [Literal] 0 +# 1896| Type = [IntType] int +# 1896| Value = [Literal] 0 +# 1896| ValueCategory = prvalue +# 1896| getArgument(0).getFullyConverted(): [CStyleCast] (A *)... +# 1896| Conversion = [IntegralToPointerConversion] integral to pointer conversion +# 1896| Type = [PointerType] A * +# 1896| Value = [CStyleCast] 0 +# 1896| ValueCategory = prvalue +# 1896| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) +# 1896| Type = [LValueReferenceType] B & +# 1896| ValueCategory = prvalue +# 1896| getExpr(): [TemporaryObjectExpr] temporary object +# 1896| Type = [Struct] B +# 1896| ValueCategory = lvalue +# 1896| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1896| Type = [Struct] B +# 1896| ValueCategory = lvalue +# 1897| getStmt(2): [ReturnStmt] return ... +# 1900| [TopLevelFunction] void magicvars() +# 1900| : +# 1900| getEntryPoint(): [BlockStmt] { ... } +# 1901| getStmt(0): [DeclStmt] declaration +# 1901| getDeclarationEntry(0): [VariableDeclarationEntry] definition of pf +# 1901| Type = [PointerType] const char * +# 1901| getVariable().getInitializer(): [Initializer] initializer for pf +# 1901| getExpr(): [VariableAccess] __PRETTY_FUNCTION__ +# 1901| Type = [ArrayType] const char[17] +# 1901| ValueCategory = lvalue +# 1901| getExpr().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 1901| Type = [PointerType] const char * +# 1901| ValueCategory = prvalue +# 1902| getStmt(1): [DeclStmt] declaration +# 1902| getDeclarationEntry(0): [VariableDeclarationEntry] definition of strfunc +# 1902| Type = [PointerType] const char * +# 1902| getVariable().getInitializer(): [Initializer] initializer for strfunc +# 1902| getExpr(): [VariableAccess] __func__ +# 1902| Type = [ArrayType] const char[10] +# 1902| ValueCategory = lvalue +# 1902| getExpr().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 1902| Type = [PointerType] const char * +# 1902| ValueCategory = prvalue +# 1903| getStmt(2): [ReturnStmt] return ... +# 1906| [CopyAssignmentOperator] missing_declaration_entries::S& missing_declaration_entries::S::operator=(missing_declaration_entries::S const&) +# 1906| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const S & -# 1904| [MoveAssignmentOperator] missing_declaration_entries::S& missing_declaration_entries::S::operator=(missing_declaration_entries::S&&) -# 1904| : +# 1906| [MoveAssignmentOperator] missing_declaration_entries::S& missing_declaration_entries::S::operator=(missing_declaration_entries::S&&) +# 1906| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] S && -# 1911| [MemberFunction] void* missing_declaration_entries::Bar1::missing_type_decl_entry(missing_declaration_entries::Bar1::pointer) -# 1911| : -# 1911| getParameter(0): [Parameter] p -# 1911| Type = [CTypedefType,NestedTypedefType] pointer -# 1911| getEntryPoint(): [BlockStmt] { ... } -# 1912| getStmt(0): [DeclStmt] declaration -# 1912| getDeclarationEntry(0): [TypeDeclarationEntry] declaration of _Res -# 1912| Type = [CTypedefType,LocalTypedefType] _Res -# 1913| getStmt(1): [ReturnStmt] return ... -# 1913| getExpr(): [VariableAccess] p -# 1913| Type = [CTypedefType,NestedTypedefType] pointer -# 1913| ValueCategory = prvalue(load) -# 1913| getExpr().getFullyConverted(): [CStyleCast] (void *)... -# 1913| Conversion = [PointerConversion] pointer conversion -# 1913| Type = [VoidPointerType] void * -# 1913| ValueCategory = prvalue -# 1911| [MemberFunction] void* missing_declaration_entries::Bar1::missing_type_decl_entry(missing_declaration_entries::Bar1::pointer) -# 1911| : -# 1911| getParameter(0): [Parameter] p -# 1911| Type = [CTypedefType,NestedTypedefType] pointer -# 1911| getEntryPoint(): [BlockStmt] { ... } -# 1912| getStmt(0): [DeclStmt] declaration -# 1912| getDeclarationEntry(0): [TypeDeclarationEntry] declaration of _Res -# 1912| Type = [CTypedefType,LocalTypedefType] _Res -# 1913| getStmt(1): [ReturnStmt] return ... -# 1913| getExpr(): [VariableAccess] p -# 1913| Type = [CTypedefType,NestedTypedefType] pointer -# 1913| ValueCategory = prvalue(load) -# 1913| getExpr().getFullyConverted(): [CStyleCast] (void *)... -# 1913| Conversion = [PointerConversion] pointer conversion -# 1913| Type = [VoidPointerType] void * -# 1913| ValueCategory = prvalue -# 1917| [TopLevelFunction] void missing_declaration_entries::test1() -# 1917| : -# 1917| getEntryPoint(): [BlockStmt] { ... } -# 1918| getStmt(0): [DeclStmt] declaration -# 1918| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b -# 1918| Type = [ClassTemplateInstantiation,Struct] Bar1 -# 1919| getStmt(1): [ExprStmt] ExprStmt -# 1919| getExpr(): [FunctionCall] call to missing_type_decl_entry -# 1919| Type = [VoidPointerType] void * -# 1919| ValueCategory = prvalue -# 1919| getQualifier(): [VariableAccess] b -# 1919| Type = [ClassTemplateInstantiation,Struct] Bar1 -# 1919| ValueCategory = lvalue -# 1919| getArgument(0): [Literal] 0 -# 1919| Type = [NullPointerType] decltype(nullptr) -# 1919| Value = [Literal] 0 -# 1919| ValueCategory = prvalue -# 1919| getArgument(0).getFullyConverted(): [CStyleCast] (pointer)... -# 1919| Conversion = [PointerConversion] pointer conversion -# 1919| Type = [CTypedefType,NestedTypedefType] pointer -# 1919| Value = [CStyleCast] 0 -# 1919| ValueCategory = prvalue -# 1920| getStmt(2): [ReturnStmt] return ... -# 1924| [MemberFunction] int missing_declaration_entries::Bar2::two_missing_variable_declaration_entries() -# 1924| : -# 1924| getEntryPoint(): [BlockStmt] { ... } -# 1925| getStmt(0): [DeclStmt] declaration -# 1925| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x -# 1925| Type = [ArrayType] int[10] -# 1925| getDeclarationEntry(1): [VariableDeclarationEntry] definition of y -# 1925| Type = [ArrayType] int[10] -# 1926| getStmt(1): [ExprStmt] ExprStmt -# 1926| getExpr(): [AssignExpr] ... = ... -# 1926| Type = [IntType] int -# 1926| ValueCategory = lvalue -# 1926| getLValue(): [PointerDereferenceExpr] * ... -# 1926| Type = [IntType] int -# 1926| ValueCategory = lvalue -# 1926| getOperand(): [VariableAccess] x -# 1926| Type = [ArrayType] int[10] -# 1926| ValueCategory = lvalue -# 1926| getOperand().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 1926| Type = [IntPointerType] int * -# 1926| ValueCategory = prvalue -# 1926| getRValue(): [Literal] 10 -# 1926| Type = [IntType] int -# 1926| Value = [Literal] 10 -# 1926| ValueCategory = prvalue -# 1927| getStmt(2): [ExprStmt] ExprStmt -# 1927| getExpr(): [AssignExpr] ... = ... -# 1927| Type = [IntType] int -# 1927| ValueCategory = lvalue -# 1927| getLValue(): [PointerDereferenceExpr] * ... -# 1927| Type = [IntType] int -# 1927| ValueCategory = lvalue -# 1927| getOperand(): [VariableAccess] y -# 1927| Type = [ArrayType] int[10] -# 1927| ValueCategory = lvalue -# 1927| getOperand().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 1927| Type = [IntPointerType] int * -# 1927| ValueCategory = prvalue -# 1927| getRValue(): [Literal] 10 -# 1927| Type = [IntType] int -# 1927| Value = [Literal] 10 -# 1927| ValueCategory = prvalue -# 1928| getStmt(3): [ReturnStmt] return ... -# 1928| getExpr(): [AddExpr] ... + ... +# 1913| [MemberFunction] void* missing_declaration_entries::Bar1::missing_type_decl_entry(missing_declaration_entries::Bar1::pointer) +# 1913| : +# 1913| getParameter(0): [Parameter] p +# 1913| Type = [CTypedefType,NestedTypedefType] pointer +# 1913| getEntryPoint(): [BlockStmt] { ... } +# 1914| getStmt(0): [DeclStmt] declaration +# 1914| getDeclarationEntry(0): [TypeDeclarationEntry] declaration of _Res +# 1914| Type = [CTypedefType,LocalTypedefType] _Res +# 1915| getStmt(1): [ReturnStmt] return ... +# 1915| getExpr(): [VariableAccess] p +# 1915| Type = [CTypedefType,NestedTypedefType] pointer +# 1915| ValueCategory = prvalue(load) +# 1915| getExpr().getFullyConverted(): [CStyleCast] (void *)... +# 1915| Conversion = [PointerConversion] pointer conversion +# 1915| Type = [VoidPointerType] void * +# 1915| ValueCategory = prvalue +# 1913| [MemberFunction] void* missing_declaration_entries::Bar1::missing_type_decl_entry(missing_declaration_entries::Bar1::pointer) +# 1913| : +# 1913| getParameter(0): [Parameter] p +# 1913| Type = [CTypedefType,NestedTypedefType] pointer +# 1913| getEntryPoint(): [BlockStmt] { ... } +# 1914| getStmt(0): [DeclStmt] declaration +# 1914| getDeclarationEntry(0): [TypeDeclarationEntry] declaration of _Res +# 1914| Type = [CTypedefType,LocalTypedefType] _Res +# 1915| getStmt(1): [ReturnStmt] return ... +# 1915| getExpr(): [VariableAccess] p +# 1915| Type = [CTypedefType,NestedTypedefType] pointer +# 1915| ValueCategory = prvalue(load) +# 1915| getExpr().getFullyConverted(): [CStyleCast] (void *)... +# 1915| Conversion = [PointerConversion] pointer conversion +# 1915| Type = [VoidPointerType] void * +# 1915| ValueCategory = prvalue +# 1919| [TopLevelFunction] void missing_declaration_entries::test1() +# 1919| : +# 1919| getEntryPoint(): [BlockStmt] { ... } +# 1920| getStmt(0): [DeclStmt] declaration +# 1920| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b +# 1920| Type = [ClassTemplateInstantiation,Struct] Bar1 +# 1921| getStmt(1): [ExprStmt] ExprStmt +# 1921| getExpr(): [FunctionCall] call to missing_type_decl_entry +# 1921| Type = [VoidPointerType] void * +# 1921| ValueCategory = prvalue +# 1921| getQualifier(): [VariableAccess] b +# 1921| Type = [ClassTemplateInstantiation,Struct] Bar1 +# 1921| ValueCategory = lvalue +# 1921| getArgument(0): [Literal] 0 +# 1921| Type = [NullPointerType] decltype(nullptr) +# 1921| Value = [Literal] 0 +# 1921| ValueCategory = prvalue +# 1921| getArgument(0).getFullyConverted(): [CStyleCast] (pointer)... +# 1921| Conversion = [PointerConversion] pointer conversion +# 1921| Type = [CTypedefType,NestedTypedefType] pointer +# 1921| Value = [CStyleCast] 0 +# 1921| ValueCategory = prvalue +# 1922| getStmt(2): [ReturnStmt] return ... +# 1926| [MemberFunction] int missing_declaration_entries::Bar2::two_missing_variable_declaration_entries() +# 1926| : +# 1926| getEntryPoint(): [BlockStmt] { ... } +# 1927| getStmt(0): [DeclStmt] declaration +# 1927| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x +# 1927| Type = [ArrayType] int[10] +# 1927| getDeclarationEntry(1): [VariableDeclarationEntry] definition of y +# 1927| Type = [ArrayType] int[10] +# 1928| getStmt(1): [ExprStmt] ExprStmt +# 1928| getExpr(): [AssignExpr] ... = ... # 1928| Type = [IntType] int -# 1928| ValueCategory = prvalue -# 1928| getLeftOperand(): [PointerDereferenceExpr] * ... +# 1928| ValueCategory = lvalue +# 1928| getLValue(): [PointerDereferenceExpr] * ... # 1928| Type = [IntType] int -# 1928| ValueCategory = prvalue(load) +# 1928| ValueCategory = lvalue # 1928| getOperand(): [VariableAccess] x # 1928| Type = [ArrayType] int[10] # 1928| ValueCategory = lvalue # 1928| getOperand().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion # 1928| Type = [IntPointerType] int * # 1928| ValueCategory = prvalue -# 1928| getRightOperand(): [PointerDereferenceExpr] * ... +# 1928| getRValue(): [Literal] 10 # 1928| Type = [IntType] int -# 1928| ValueCategory = prvalue(load) -# 1928| getOperand(): [VariableAccess] y -# 1928| Type = [ArrayType] int[10] -# 1928| ValueCategory = lvalue -# 1928| getOperand().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 1928| Type = [IntPointerType] int * -# 1928| ValueCategory = prvalue -# 1924| [MemberFunction] int missing_declaration_entries::Bar2::two_missing_variable_declaration_entries() -# 1924| : -# 1924| getEntryPoint(): [BlockStmt] { ... } -# 1925| getStmt(0): [DeclStmt] declaration -# 1925| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x -# 1925| Type = [ArrayType] int[10] -# 1925| getDeclarationEntry(1): [VariableDeclarationEntry] definition of y -# 1925| Type = [ArrayType] int[10] -# 1926| getStmt(1): [ExprStmt] ExprStmt -# 1926| getExpr(): [AssignExpr] ... = ... -# 1926| Type = [IntType] int -# 1926| ValueCategory = lvalue -# 1926| getLValue(): [PointerDereferenceExpr] * ... -# 1926| Type = [IntType] int -# 1926| ValueCategory = lvalue -# 1926| getOperand(): [VariableAccess] x -# 1926| Type = [ArrayType] int[10] -# 1926| ValueCategory = lvalue -# 1926| getOperand().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 1926| Type = [IntPointerType] int * -# 1926| ValueCategory = prvalue -# 1926| getRValue(): [Literal] 10 -# 1926| Type = [IntType] int -# 1926| Value = [Literal] 10 -# 1926| ValueCategory = prvalue -# 1927| getStmt(2): [ExprStmt] ExprStmt -# 1927| getExpr(): [AssignExpr] ... = ... -# 1927| Type = [IntType] int -# 1927| ValueCategory = lvalue -# 1927| getLValue(): [PointerDereferenceExpr] * ... -# 1927| Type = [IntType] int -# 1927| ValueCategory = lvalue -# 1927| getOperand(): [VariableAccess] y -# 1927| Type = [ArrayType] int[10] -# 1927| ValueCategory = lvalue -# 1927| getOperand().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 1927| Type = [IntPointerType] int * -# 1927| ValueCategory = prvalue -# 1927| getRValue(): [Literal] 10 -# 1927| Type = [IntType] int -# 1927| Value = [Literal] 10 -# 1927| ValueCategory = prvalue -# 1928| getStmt(3): [ReturnStmt] return ... -# 1928| getExpr(): [AddExpr] ... + ... +# 1928| Value = [Literal] 10 +# 1928| ValueCategory = prvalue +# 1929| getStmt(2): [ExprStmt] ExprStmt +# 1929| getExpr(): [AssignExpr] ... = ... +# 1929| Type = [IntType] int +# 1929| ValueCategory = lvalue +# 1929| getLValue(): [PointerDereferenceExpr] * ... +# 1929| Type = [IntType] int +# 1929| ValueCategory = lvalue +# 1929| getOperand(): [VariableAccess] y +# 1929| Type = [ArrayType] int[10] +# 1929| ValueCategory = lvalue +# 1929| getOperand().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 1929| Type = [IntPointerType] int * +# 1929| ValueCategory = prvalue +# 1929| getRValue(): [Literal] 10 +# 1929| Type = [IntType] int +# 1929| Value = [Literal] 10 +# 1929| ValueCategory = prvalue +# 1930| getStmt(3): [ReturnStmt] return ... +# 1930| getExpr(): [AddExpr] ... + ... +# 1930| Type = [IntType] int +# 1930| ValueCategory = prvalue +# 1930| getLeftOperand(): [PointerDereferenceExpr] * ... +# 1930| Type = [IntType] int +# 1930| ValueCategory = prvalue(load) +# 1930| getOperand(): [VariableAccess] x +# 1930| Type = [ArrayType] int[10] +# 1930| ValueCategory = lvalue +# 1930| getOperand().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 1930| Type = [IntPointerType] int * +# 1930| ValueCategory = prvalue +# 1930| getRightOperand(): [PointerDereferenceExpr] * ... +# 1930| Type = [IntType] int +# 1930| ValueCategory = prvalue(load) +# 1930| getOperand(): [VariableAccess] y +# 1930| Type = [ArrayType] int[10] +# 1930| ValueCategory = lvalue +# 1930| getOperand().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 1930| Type = [IntPointerType] int * +# 1930| ValueCategory = prvalue +# 1926| [MemberFunction] int missing_declaration_entries::Bar2::two_missing_variable_declaration_entries() +# 1926| : +# 1926| getEntryPoint(): [BlockStmt] { ... } +# 1927| getStmt(0): [DeclStmt] declaration +# 1927| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x +# 1927| Type = [ArrayType] int[10] +# 1927| getDeclarationEntry(1): [VariableDeclarationEntry] definition of y +# 1927| Type = [ArrayType] int[10] +# 1928| getStmt(1): [ExprStmt] ExprStmt +# 1928| getExpr(): [AssignExpr] ... = ... # 1928| Type = [IntType] int -# 1928| ValueCategory = prvalue -# 1928| getLeftOperand(): [PointerDereferenceExpr] * ... +# 1928| ValueCategory = lvalue +# 1928| getLValue(): [PointerDereferenceExpr] * ... # 1928| Type = [IntType] int -# 1928| ValueCategory = prvalue(load) +# 1928| ValueCategory = lvalue # 1928| getOperand(): [VariableAccess] x # 1928| Type = [ArrayType] int[10] # 1928| ValueCategory = lvalue # 1928| getOperand().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion # 1928| Type = [IntPointerType] int * # 1928| ValueCategory = prvalue -# 1928| getRightOperand(): [PointerDereferenceExpr] * ... +# 1928| getRValue(): [Literal] 10 # 1928| Type = [IntType] int -# 1928| ValueCategory = prvalue(load) -# 1928| getOperand(): [VariableAccess] y -# 1928| Type = [ArrayType] int[10] -# 1928| ValueCategory = lvalue -# 1928| getOperand().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 1928| Type = [IntPointerType] int * -# 1928| ValueCategory = prvalue -# 1932| [TopLevelFunction] void missing_declaration_entries::test2() -# 1932| : -# 1932| getEntryPoint(): [BlockStmt] { ... } -# 1933| getStmt(0): [DeclStmt] declaration -# 1933| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b -# 1933| Type = [ClassTemplateInstantiation,Struct] Bar2 -# 1934| getStmt(1): [ExprStmt] ExprStmt -# 1934| getExpr(): [FunctionCall] call to two_missing_variable_declaration_entries -# 1934| Type = [IntType] int -# 1934| ValueCategory = prvalue -# 1934| getQualifier(): [VariableAccess] b -# 1934| Type = [ClassTemplateInstantiation,Struct] Bar2 -# 1934| ValueCategory = lvalue -# 1935| getStmt(2): [ReturnStmt] return ... -# 1939| [MemberFunction] int missing_declaration_entries::Bar3::two_more_missing_variable_declaration_entries() -# 1939| : -# 1939| getEntryPoint(): [BlockStmt] { ... } -# 1940| getStmt(0): [DeclStmt] declaration -# 1940| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of g -# 1940| Type = [IntType] int -# 1941| getStmt(1): [DeclStmt] declaration -# 1941| getDeclarationEntry(0): [FunctionDeclarationEntry] declaration of z -# 1941| Type = [IntType] int -# 1942| getStmt(2): [ReturnStmt] return ... -# 1942| getExpr(): [VariableAccess] g -# 1942| Type = [IntType] int -# 1942| ValueCategory = prvalue(load) -# 1939| [MemberFunction] int missing_declaration_entries::Bar3::two_more_missing_variable_declaration_entries() -# 1939| : -# 1939| getEntryPoint(): [BlockStmt] { ... } -# 1940| getStmt(0): [DeclStmt] declaration -# 1940| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of g -# 1940| Type = [IntType] int -# 1941| getStmt(1): [DeclStmt] declaration -# 1941| getDeclarationEntry(0): [FunctionDeclarationEntry] declaration of z -# 1941| Type = [IntType] int -# 1942| getStmt(2): [ReturnStmt] return ... -# 1942| getExpr(): [VariableAccess] g +# 1928| Value = [Literal] 10 +# 1928| ValueCategory = prvalue +# 1929| getStmt(2): [ExprStmt] ExprStmt +# 1929| getExpr(): [AssignExpr] ... = ... +# 1929| Type = [IntType] int +# 1929| ValueCategory = lvalue +# 1929| getLValue(): [PointerDereferenceExpr] * ... +# 1929| Type = [IntType] int +# 1929| ValueCategory = lvalue +# 1929| getOperand(): [VariableAccess] y +# 1929| Type = [ArrayType] int[10] +# 1929| ValueCategory = lvalue +# 1929| getOperand().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 1929| Type = [IntPointerType] int * +# 1929| ValueCategory = prvalue +# 1929| getRValue(): [Literal] 10 +# 1929| Type = [IntType] int +# 1929| Value = [Literal] 10 +# 1929| ValueCategory = prvalue +# 1930| getStmt(3): [ReturnStmt] return ... +# 1930| getExpr(): [AddExpr] ... + ... +# 1930| Type = [IntType] int +# 1930| ValueCategory = prvalue +# 1930| getLeftOperand(): [PointerDereferenceExpr] * ... +# 1930| Type = [IntType] int +# 1930| ValueCategory = prvalue(load) +# 1930| getOperand(): [VariableAccess] x +# 1930| Type = [ArrayType] int[10] +# 1930| ValueCategory = lvalue +# 1930| getOperand().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 1930| Type = [IntPointerType] int * +# 1930| ValueCategory = prvalue +# 1930| getRightOperand(): [PointerDereferenceExpr] * ... +# 1930| Type = [IntType] int +# 1930| ValueCategory = prvalue(load) +# 1930| getOperand(): [VariableAccess] y +# 1930| Type = [ArrayType] int[10] +# 1930| ValueCategory = lvalue +# 1930| getOperand().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 1930| Type = [IntPointerType] int * +# 1930| ValueCategory = prvalue +# 1934| [TopLevelFunction] void missing_declaration_entries::test2() +# 1934| : +# 1934| getEntryPoint(): [BlockStmt] { ... } +# 1935| getStmt(0): [DeclStmt] declaration +# 1935| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b +# 1935| Type = [ClassTemplateInstantiation,Struct] Bar2 +# 1936| getStmt(1): [ExprStmt] ExprStmt +# 1936| getExpr(): [FunctionCall] call to two_missing_variable_declaration_entries +# 1936| Type = [IntType] int +# 1936| ValueCategory = prvalue +# 1936| getQualifier(): [VariableAccess] b +# 1936| Type = [ClassTemplateInstantiation,Struct] Bar2 +# 1936| ValueCategory = lvalue +# 1937| getStmt(2): [ReturnStmt] return ... +# 1941| [MemberFunction] int missing_declaration_entries::Bar3::two_more_missing_variable_declaration_entries() +# 1941| : +# 1941| getEntryPoint(): [BlockStmt] { ... } +# 1942| getStmt(0): [DeclStmt] declaration +# 1942| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of g # 1942| Type = [IntType] int -# 1942| ValueCategory = prvalue(load) -# 1941| [TopLevelFunction] int missing_declaration_entries::z(float) +# 1943| getStmt(1): [DeclStmt] declaration +# 1943| getDeclarationEntry(0): [FunctionDeclarationEntry] declaration of z +# 1943| Type = [IntType] int +# 1944| getStmt(2): [ReturnStmt] return ... +# 1944| getExpr(): [VariableAccess] g +# 1944| Type = [IntType] int +# 1944| ValueCategory = prvalue(load) +# 1941| [MemberFunction] int missing_declaration_entries::Bar3::two_more_missing_variable_declaration_entries() # 1941| : -# 1941| getParameter(0): [Parameter] (unnamed parameter 0) -# 1941| Type = [FloatType] float -# 1946| [TopLevelFunction] void missing_declaration_entries::test3() -# 1946| : -# 1946| getEntryPoint(): [BlockStmt] { ... } -# 1947| getStmt(0): [DeclStmt] declaration -# 1947| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b -# 1947| Type = [ClassTemplateInstantiation,Struct] Bar3 -# 1948| getStmt(1): [ExprStmt] ExprStmt -# 1948| getExpr(): [FunctionCall] call to two_more_missing_variable_declaration_entries -# 1948| Type = [IntType] int -# 1948| ValueCategory = prvalue -# 1948| getQualifier(): [VariableAccess] b -# 1948| Type = [ClassTemplateInstantiation,Struct] Bar3 -# 1948| ValueCategory = lvalue -# 1949| getStmt(2): [ReturnStmt] return ... -# 1952| [GlobalVariable,VariableTemplateInstantiation] char global_template -# 1952| getInitializer(): [Initializer] initializer for global_template -# 1952| getExpr(): [Literal] 42 -# 1952| Type = [IntType] int -# 1952| Value = [Literal] 42 -# 1952| ValueCategory = prvalue -# 1952| getExpr().getFullyConverted(): [CStyleCast] (char)... -# 1952| Conversion = [IntegralConversion] integral conversion -# 1952| Type = [PlainCharType] char -# 1952| Value = [CStyleCast] 42 -# 1952| ValueCategory = prvalue -# 1952| [GlobalVariable,VariableTemplateInstantiation] int global_template -# 1952| getInitializer(): [Initializer] initializer for global_template -# 1952| getExpr(): [Literal] 42 -# 1952| Type = [IntType] int -# 1952| Value = [Literal] 42 -# 1952| ValueCategory = prvalue -# 1954| [TopLevelFunction] int test_global_template_int() -# 1954| : -# 1954| getEntryPoint(): [BlockStmt] { ... } -# 1955| getStmt(0): [DeclStmt] declaration -# 1955| getDeclarationEntry(0): [VariableDeclarationEntry] definition of local_int -# 1955| Type = [IntType] int -# 1955| getVariable().getInitializer(): [Initializer] initializer for local_int -# 1955| getExpr(): [VariableAccess] global_template -# 1955| Type = [IntType] int -# 1955| ValueCategory = prvalue(load) -# 1956| getStmt(1): [DeclStmt] declaration -# 1956| getDeclarationEntry(0): [VariableDeclarationEntry] definition of local_char -# 1956| Type = [PlainCharType] char -# 1956| getVariable().getInitializer(): [Initializer] initializer for local_char -# 1956| getExpr(): [VariableAccess] global_template -# 1956| Type = [PlainCharType] char -# 1956| ValueCategory = prvalue(load) -# 1957| getStmt(2): [ReturnStmt] return ... -# 1957| getExpr(): [AddExpr] ... + ... +# 1941| getEntryPoint(): [BlockStmt] { ... } +# 1942| getStmt(0): [DeclStmt] declaration +# 1942| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of g +# 1942| Type = [IntType] int +# 1943| getStmt(1): [DeclStmt] declaration +# 1943| getDeclarationEntry(0): [FunctionDeclarationEntry] declaration of z +# 1943| Type = [IntType] int +# 1944| getStmt(2): [ReturnStmt] return ... +# 1944| getExpr(): [VariableAccess] g +# 1944| Type = [IntType] int +# 1944| ValueCategory = prvalue(load) +# 1943| [TopLevelFunction] int missing_declaration_entries::z(float) +# 1943| : +# 1943| getParameter(0): [Parameter] (unnamed parameter 0) +# 1943| Type = [FloatType] float +# 1948| [TopLevelFunction] void missing_declaration_entries::test3() +# 1948| : +# 1948| getEntryPoint(): [BlockStmt] { ... } +# 1949| getStmt(0): [DeclStmt] declaration +# 1949| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b +# 1949| Type = [ClassTemplateInstantiation,Struct] Bar3 +# 1950| getStmt(1): [ExprStmt] ExprStmt +# 1950| getExpr(): [FunctionCall] call to two_more_missing_variable_declaration_entries +# 1950| Type = [IntType] int +# 1950| ValueCategory = prvalue +# 1950| getQualifier(): [VariableAccess] b +# 1950| Type = [ClassTemplateInstantiation,Struct] Bar3 +# 1950| ValueCategory = lvalue +# 1951| getStmt(2): [ReturnStmt] return ... +# 1954| [GlobalVariable,VariableTemplateInstantiation] char global_template +# 1954| getInitializer(): [Initializer] initializer for global_template +# 1954| getExpr(): [Literal] 42 +# 1954| Type = [IntType] int +# 1954| Value = [Literal] 42 +# 1954| ValueCategory = prvalue +# 1954| getExpr().getFullyConverted(): [CStyleCast] (char)... +# 1954| Conversion = [IntegralConversion] integral conversion +# 1954| Type = [PlainCharType] char +# 1954| Value = [CStyleCast] 42 +# 1954| ValueCategory = prvalue +# 1954| [GlobalVariable,VariableTemplateInstantiation] int global_template +# 1954| getInitializer(): [Initializer] initializer for global_template +# 1954| getExpr(): [Literal] 42 +# 1954| Type = [IntType] int +# 1954| Value = [Literal] 42 +# 1954| ValueCategory = prvalue +# 1956| [TopLevelFunction] int test_global_template_int() +# 1956| : +# 1956| getEntryPoint(): [BlockStmt] { ... } +# 1957| getStmt(0): [DeclStmt] declaration +# 1957| getDeclarationEntry(0): [VariableDeclarationEntry] definition of local_int # 1957| Type = [IntType] int -# 1957| ValueCategory = prvalue -# 1957| getLeftOperand(): [VariableAccess] local_int -# 1957| Type = [IntType] int -# 1957| ValueCategory = prvalue(load) -# 1957| getRightOperand(): [VariableAccess] local_char -# 1957| Type = [PlainCharType] char -# 1957| ValueCategory = prvalue(load) -# 1957| getRightOperand().getFullyConverted(): [CStyleCast] (int)... -# 1957| Conversion = [IntegralConversion] integral conversion -# 1957| Type = [IntType] int -# 1957| ValueCategory = prvalue -# 1960| [TopLevelFunction] void noreturnFunc() -# 1960| : -# 1962| [TopLevelFunction] int noreturnTest(int) +# 1957| getVariable().getInitializer(): [Initializer] initializer for local_int +# 1957| getExpr(): [VariableAccess] global_template +# 1957| Type = [IntType] int +# 1957| ValueCategory = prvalue(load) +# 1958| getStmt(1): [DeclStmt] declaration +# 1958| getDeclarationEntry(0): [VariableDeclarationEntry] definition of local_char +# 1958| Type = [PlainCharType] char +# 1958| getVariable().getInitializer(): [Initializer] initializer for local_char +# 1958| getExpr(): [VariableAccess] global_template +# 1958| Type = [PlainCharType] char +# 1958| ValueCategory = prvalue(load) +# 1959| getStmt(2): [ReturnStmt] return ... +# 1959| getExpr(): [AddExpr] ... + ... +# 1959| Type = [IntType] int +# 1959| ValueCategory = prvalue +# 1959| getLeftOperand(): [VariableAccess] local_int +# 1959| Type = [IntType] int +# 1959| ValueCategory = prvalue(load) +# 1959| getRightOperand(): [VariableAccess] local_char +# 1959| Type = [PlainCharType] char +# 1959| ValueCategory = prvalue(load) +# 1959| getRightOperand().getFullyConverted(): [CStyleCast] (int)... +# 1959| Conversion = [IntegralConversion] integral conversion +# 1959| Type = [IntType] int +# 1959| ValueCategory = prvalue +# 1962| [TopLevelFunction] void noreturnFunc() # 1962| : -# 1962| getParameter(0): [Parameter] x -# 1962| Type = [IntType] int -# 1962| getEntryPoint(): [BlockStmt] { ... } -# 1963| getStmt(0): [IfStmt] if (...) ... -# 1963| getCondition(): [LTExpr] ... < ... -# 1963| Type = [BoolType] bool -# 1963| ValueCategory = prvalue -# 1963| getLesserOperand(): [VariableAccess] x -# 1963| Type = [IntType] int -# 1963| ValueCategory = prvalue(load) -# 1963| getGreaterOperand(): [Literal] 10 -# 1963| Type = [IntType] int -# 1963| Value = [Literal] 10 -# 1963| ValueCategory = prvalue -# 1963| getThen(): [BlockStmt] { ... } -# 1964| getStmt(0): [ReturnStmt] return ... -# 1964| getExpr(): [VariableAccess] x -# 1964| Type = [IntType] int -# 1964| ValueCategory = prvalue(load) -# 1965| getElse(): [BlockStmt] { ... } -# 1966| getStmt(0): [ExprStmt] ExprStmt -# 1966| getExpr(): [FunctionCall] call to noreturnFunc -# 1966| Type = [VoidType] void -# 1966| ValueCategory = prvalue -# 1968| getStmt(1): [ReturnStmt] return ... -# 1970| [TopLevelFunction] int noreturnTest2(int) -# 1970| : -# 1970| getParameter(0): [Parameter] x -# 1970| Type = [IntType] int -# 1970| getEntryPoint(): [BlockStmt] { ... } -# 1971| getStmt(0): [IfStmt] if (...) ... -# 1971| getCondition(): [LTExpr] ... < ... -# 1971| Type = [BoolType] bool -# 1971| ValueCategory = prvalue -# 1971| getLesserOperand(): [VariableAccess] x -# 1971| Type = [IntType] int -# 1971| ValueCategory = prvalue(load) -# 1971| getGreaterOperand(): [Literal] 10 -# 1971| Type = [IntType] int -# 1971| Value = [Literal] 10 -# 1971| ValueCategory = prvalue -# 1971| getThen(): [BlockStmt] { ... } -# 1972| getStmt(0): [ExprStmt] ExprStmt -# 1972| getExpr(): [FunctionCall] call to noreturnFunc -# 1972| Type = [VoidType] void -# 1972| ValueCategory = prvalue -# 1974| getStmt(1): [ReturnStmt] return ... -# 1974| getExpr(): [VariableAccess] x -# 1974| Type = [IntType] int -# 1974| ValueCategory = prvalue(load) -# 1977| [TopLevelFunction] int static_function(int) -# 1977| : -# 1977| getParameter(0): [Parameter] x -# 1977| Type = [IntType] int -# 1977| getEntryPoint(): [BlockStmt] { ... } -# 1978| getStmt(0): [ReturnStmt] return ... -# 1978| getExpr(): [VariableAccess] x -# 1978| Type = [IntType] int -# 1978| ValueCategory = prvalue(load) -# 1981| [TopLevelFunction] void test_static_functions_with_assignments() -# 1981| : -# 1981| getEntryPoint(): [BlockStmt] { ... } -# 1982| getStmt(0): [DeclStmt] declaration -# 1982| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c -# 1982| Type = [Class] C -# 1982| getVariable().getInitializer(): [Initializer] initializer for c -# 1982| getExpr(): [ConstructorCall] call to C -# 1982| Type = [VoidType] void -# 1982| ValueCategory = prvalue -# 1983| getStmt(1): [DeclStmt] declaration -# 1983| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x -# 1983| Type = [IntType] int -# 1984| getStmt(2): [ExprStmt] ExprStmt -# 1984| getExpr(): [AssignExpr] ... = ... -# 1984| Type = [IntType] int -# 1984| ValueCategory = lvalue -# 1984| getLValue(): [VariableAccess] x -# 1984| Type = [IntType] int -# 1984| ValueCategory = lvalue -# 1984| getRValue(): [FunctionCall] call to StaticMemberFunction -# 1984| Type = [IntType] int -# 1984| ValueCategory = prvalue -# 1984| getQualifier(): [VariableAccess] c -# 1984| Type = [Class] C -# 1984| ValueCategory = lvalue -# 1984| getArgument(0): [Literal] 10 -# 1984| Type = [IntType] int -# 1984| Value = [Literal] 10 +# 1964| [TopLevelFunction] int noreturnTest(int) +# 1964| : +# 1964| getParameter(0): [Parameter] x +# 1964| Type = [IntType] int +# 1964| getEntryPoint(): [BlockStmt] { ... } +# 1965| getStmt(0): [IfStmt] if (...) ... +# 1965| getCondition(): [LTExpr] ... < ... +# 1965| Type = [BoolType] bool +# 1965| ValueCategory = prvalue +# 1965| getLesserOperand(): [VariableAccess] x +# 1965| Type = [IntType] int +# 1965| ValueCategory = prvalue(load) +# 1965| getGreaterOperand(): [Literal] 10 +# 1965| Type = [IntType] int +# 1965| Value = [Literal] 10 +# 1965| ValueCategory = prvalue +# 1965| getThen(): [BlockStmt] { ... } +# 1966| getStmt(0): [ReturnStmt] return ... +# 1966| getExpr(): [VariableAccess] x +# 1966| Type = [IntType] int +# 1966| ValueCategory = prvalue(load) +# 1967| getElse(): [BlockStmt] { ... } +# 1968| getStmt(0): [ExprStmt] ExprStmt +# 1968| getExpr(): [FunctionCall] call to noreturnFunc +# 1968| Type = [VoidType] void +# 1968| ValueCategory = prvalue +# 1970| getStmt(1): [ReturnStmt] return ... +# 1972| [TopLevelFunction] int noreturnTest2(int) +# 1972| : +# 1972| getParameter(0): [Parameter] x +# 1972| Type = [IntType] int +# 1972| getEntryPoint(): [BlockStmt] { ... } +# 1973| getStmt(0): [IfStmt] if (...) ... +# 1973| getCondition(): [LTExpr] ... < ... +# 1973| Type = [BoolType] bool +# 1973| ValueCategory = prvalue +# 1973| getLesserOperand(): [VariableAccess] x +# 1973| Type = [IntType] int +# 1973| ValueCategory = prvalue(load) +# 1973| getGreaterOperand(): [Literal] 10 +# 1973| Type = [IntType] int +# 1973| Value = [Literal] 10 +# 1973| ValueCategory = prvalue +# 1973| getThen(): [BlockStmt] { ... } +# 1974| getStmt(0): [ExprStmt] ExprStmt +# 1974| getExpr(): [FunctionCall] call to noreturnFunc +# 1974| Type = [VoidType] void +# 1974| ValueCategory = prvalue +# 1976| getStmt(1): [ReturnStmt] return ... +# 1976| getExpr(): [VariableAccess] x +# 1976| Type = [IntType] int +# 1976| ValueCategory = prvalue(load) +# 1979| [TopLevelFunction] int static_function(int) +# 1979| : +# 1979| getParameter(0): [Parameter] x +# 1979| Type = [IntType] int +# 1979| getEntryPoint(): [BlockStmt] { ... } +# 1980| getStmt(0): [ReturnStmt] return ... +# 1980| getExpr(): [VariableAccess] x +# 1980| Type = [IntType] int +# 1980| ValueCategory = prvalue(load) +# 1983| [TopLevelFunction] void test_static_functions_with_assignments() +# 1983| : +# 1983| getEntryPoint(): [BlockStmt] { ... } +# 1984| getStmt(0): [DeclStmt] declaration +# 1984| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c +# 1984| Type = [Class] C +# 1984| getVariable().getInitializer(): [Initializer] initializer for c +# 1984| getExpr(): [ConstructorCall] call to C +# 1984| Type = [VoidType] void # 1984| ValueCategory = prvalue -# 1985| getStmt(3): [DeclStmt] declaration -# 1985| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y +# 1985| getStmt(1): [DeclStmt] declaration +# 1985| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x # 1985| Type = [IntType] int -# 1986| getStmt(4): [ExprStmt] ExprStmt +# 1986| getStmt(2): [ExprStmt] ExprStmt # 1986| getExpr(): [AssignExpr] ... = ... # 1986| Type = [IntType] int # 1986| ValueCategory = lvalue -# 1986| getLValue(): [VariableAccess] y +# 1986| getLValue(): [VariableAccess] x # 1986| Type = [IntType] int # 1986| ValueCategory = lvalue # 1986| getRValue(): [FunctionCall] call to StaticMemberFunction # 1986| Type = [IntType] int # 1986| ValueCategory = prvalue +# 1986| getQualifier(): [VariableAccess] c +# 1986| Type = [Class] C +# 1986| ValueCategory = lvalue # 1986| getArgument(0): [Literal] 10 # 1986| Type = [IntType] int # 1986| Value = [Literal] 10 # 1986| ValueCategory = prvalue -# 1987| getStmt(5): [DeclStmt] declaration -# 1987| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z +# 1987| getStmt(3): [DeclStmt] declaration +# 1987| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y # 1987| Type = [IntType] int -# 1988| getStmt(6): [ExprStmt] ExprStmt +# 1988| getStmt(4): [ExprStmt] ExprStmt # 1988| getExpr(): [AssignExpr] ... = ... # 1988| Type = [IntType] int # 1988| ValueCategory = lvalue -# 1988| getLValue(): [VariableAccess] z +# 1988| getLValue(): [VariableAccess] y # 1988| Type = [IntType] int # 1988| ValueCategory = lvalue -# 1988| getRValue(): [FunctionCall] call to static_function +# 1988| getRValue(): [FunctionCall] call to StaticMemberFunction # 1988| Type = [IntType] int # 1988| ValueCategory = prvalue # 1988| getArgument(0): [Literal] 10 # 1988| Type = [IntType] int # 1988| Value = [Literal] 10 # 1988| ValueCategory = prvalue -# 1989| getStmt(7): [ReturnStmt] return ... -# 1989| getImplicitDestructorCall(0): [DestructorCall] call to ~C -# 1989| Type = [VoidType] void -# 1989| ValueCategory = prvalue -# 1989| getQualifier(): [VariableAccess] c -# 1989| Type = [Class] C -# 1989| ValueCategory = lvalue -# 1991| [TopLevelFunction] void test_double_assign() -# 1991| : -# 1991| getEntryPoint(): [BlockStmt] { ... } -# 1992| getStmt(0): [DeclStmt] declaration -# 1992| getDeclarationEntry(0): [VariableDeclarationEntry] definition of i -# 1992| Type = [IntType] int -# 1992| getDeclarationEntry(1): [VariableDeclarationEntry] definition of j -# 1992| Type = [IntType] int -# 1993| getStmt(1): [ExprStmt] ExprStmt -# 1993| getExpr(): [AssignExpr] ... = ... -# 1993| Type = [IntType] int -# 1993| ValueCategory = lvalue -# 1993| getLValue(): [VariableAccess] i -# 1993| Type = [IntType] int -# 1993| ValueCategory = lvalue -# 1993| getRValue(): [AssignExpr] ... = ... -# 1993| Type = [IntType] int -# 1993| ValueCategory = prvalue(load) -# 1993| getLValue(): [VariableAccess] j -# 1993| Type = [IntType] int -# 1993| ValueCategory = lvalue -# 1993| getRValue(): [Literal] 40 -# 1993| Type = [IntType] int -# 1993| Value = [Literal] 40 -# 1993| ValueCategory = prvalue -# 1994| getStmt(2): [ReturnStmt] return ... -# 1996| [TopLevelFunction] void test_assign_with_assign_operation() -# 1996| : -# 1996| getEntryPoint(): [BlockStmt] { ... } -# 1997| getStmt(0): [DeclStmt] declaration -# 1997| getDeclarationEntry(0): [VariableDeclarationEntry] definition of i -# 1997| Type = [IntType] int -# 1997| getDeclarationEntry(1): [VariableDeclarationEntry] definition of j -# 1997| Type = [IntType] int -# 1997| getVariable().getInitializer(): [Initializer] initializer for j -# 1997| getExpr(): [Literal] 0 -# 1997| Type = [IntType] int -# 1997| Value = [Literal] 0 -# 1997| ValueCategory = prvalue -# 1998| getStmt(1): [ExprStmt] ExprStmt -# 1998| getExpr(): [AssignExpr] ... = ... -# 1998| Type = [IntType] int -# 1998| ValueCategory = lvalue -# 1998| getLValue(): [VariableAccess] i -# 1998| Type = [IntType] int -# 1998| ValueCategory = lvalue -# 1998| getRValue(): [AssignAddExpr] ... += ... -# 1998| Type = [IntType] int -# 1998| ValueCategory = prvalue(load) -# 1998| getLValue(): [VariableAccess] j -# 1998| Type = [IntType] int -# 1998| ValueCategory = lvalue -# 1998| getRValue(): [Literal] 40 -# 1998| Type = [IntType] int -# 1998| Value = [Literal] 40 -# 1998| ValueCategory = prvalue -# 1998| getRValue().getFullyConverted(): [ParenthesisExpr] (...) -# 1998| Type = [IntType] int -# 1998| ValueCategory = prvalue(load) -# 1999| getStmt(2): [ReturnStmt] return ... -# 2001| [CopyAssignmentOperator] D& D::operator=(D const&) -# 2001| : +# 1989| getStmt(5): [DeclStmt] declaration +# 1989| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z +# 1989| Type = [IntType] int +# 1990| getStmt(6): [ExprStmt] ExprStmt +# 1990| getExpr(): [AssignExpr] ... = ... +# 1990| Type = [IntType] int +# 1990| ValueCategory = lvalue +# 1990| getLValue(): [VariableAccess] z +# 1990| Type = [IntType] int +# 1990| ValueCategory = lvalue +# 1990| getRValue(): [FunctionCall] call to static_function +# 1990| Type = [IntType] int +# 1990| ValueCategory = prvalue +# 1990| getArgument(0): [Literal] 10 +# 1990| Type = [IntType] int +# 1990| Value = [Literal] 10 +# 1990| ValueCategory = prvalue +# 1991| getStmt(7): [ReturnStmt] return ... +# 1991| getImplicitDestructorCall(0): [DestructorCall] call to ~C +# 1991| Type = [VoidType] void +# 1991| ValueCategory = prvalue +# 1991| getQualifier(): [VariableAccess] c +# 1991| Type = [Class] C +# 1991| ValueCategory = lvalue +# 1993| [TopLevelFunction] void test_double_assign() +# 1993| : +# 1993| getEntryPoint(): [BlockStmt] { ... } +# 1994| getStmt(0): [DeclStmt] declaration +# 1994| getDeclarationEntry(0): [VariableDeclarationEntry] definition of i +# 1994| Type = [IntType] int +# 1994| getDeclarationEntry(1): [VariableDeclarationEntry] definition of j +# 1994| Type = [IntType] int +# 1995| getStmt(1): [ExprStmt] ExprStmt +# 1995| getExpr(): [AssignExpr] ... = ... +# 1995| Type = [IntType] int +# 1995| ValueCategory = lvalue +# 1995| getLValue(): [VariableAccess] i +# 1995| Type = [IntType] int +# 1995| ValueCategory = lvalue +# 1995| getRValue(): [AssignExpr] ... = ... +# 1995| Type = [IntType] int +# 1995| ValueCategory = prvalue(load) +# 1995| getLValue(): [VariableAccess] j +# 1995| Type = [IntType] int +# 1995| ValueCategory = lvalue +# 1995| getRValue(): [Literal] 40 +# 1995| Type = [IntType] int +# 1995| Value = [Literal] 40 +# 1995| ValueCategory = prvalue +# 1996| getStmt(2): [ReturnStmt] return ... +# 1998| [TopLevelFunction] void test_assign_with_assign_operation() +# 1998| : +# 1998| getEntryPoint(): [BlockStmt] { ... } +# 1999| getStmt(0): [DeclStmt] declaration +# 1999| getDeclarationEntry(0): [VariableDeclarationEntry] definition of i +# 1999| Type = [IntType] int +# 1999| getDeclarationEntry(1): [VariableDeclarationEntry] definition of j +# 1999| Type = [IntType] int +# 1999| getVariable().getInitializer(): [Initializer] initializer for j +# 1999| getExpr(): [Literal] 0 +# 1999| Type = [IntType] int +# 1999| Value = [Literal] 0 +# 1999| ValueCategory = prvalue +# 2000| getStmt(1): [ExprStmt] ExprStmt +# 2000| getExpr(): [AssignExpr] ... = ... +# 2000| Type = [IntType] int +# 2000| ValueCategory = lvalue +# 2000| getLValue(): [VariableAccess] i +# 2000| Type = [IntType] int +# 2000| ValueCategory = lvalue +# 2000| getRValue(): [AssignAddExpr] ... += ... +# 2000| Type = [IntType] int +# 2000| ValueCategory = prvalue(load) +# 2000| getLValue(): [VariableAccess] j +# 2000| Type = [IntType] int +# 2000| ValueCategory = lvalue +# 2000| getRValue(): [Literal] 40 +# 2000| Type = [IntType] int +# 2000| Value = [Literal] 40 +# 2000| ValueCategory = prvalue +# 2000| getRValue().getFullyConverted(): [ParenthesisExpr] (...) +# 2000| Type = [IntType] int +# 2000| ValueCategory = prvalue(load) +# 2001| getStmt(2): [ReturnStmt] return ... +# 2003| [CopyAssignmentOperator] D& D::operator=(D const&) +# 2003| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const D & -# 2001| [MoveAssignmentOperator] D& D::operator=(D&&) -# 2001| : +# 2003| [MoveAssignmentOperator] D& D::operator=(D&&) +# 2003| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] D && -# 2005| [MemberFunction] D& D::ReferenceStaticMemberFunction() -# 2005| : -# 2005| getEntryPoint(): [BlockStmt] { ... } -# 2006| getStmt(0): [ReturnStmt] return ... -# 2006| getExpr(): [VariableAccess] x -# 2006| Type = [Class] D -# 2006| ValueCategory = lvalue -# 2006| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 2006| Type = [LValueReferenceType] D & -# 2006| ValueCategory = prvalue -# 2008| [MemberFunction] D D::ObjectStaticMemberFunction() -# 2008| : -# 2008| getEntryPoint(): [BlockStmt] { ... } -# 2009| getStmt(0): [ReturnStmt] return ... -# 2009| getExpr(): [VariableAccess] x -# 2009| Type = [Class] D -# 2009| ValueCategory = prvalue(load) -# 2013| [TopLevelFunction] void test_static_member_functions_with_reference_return() -# 2013| : -# 2013| getEntryPoint(): [BlockStmt] { ... } -# 2014| getStmt(0): [DeclStmt] declaration -# 2014| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d -# 2014| Type = [Class] D -# 2016| getStmt(1): [ExprStmt] ExprStmt -# 2016| getExpr(): [FunctionCall] call to ReferenceStaticMemberFunction -# 2016| Type = [LValueReferenceType] D & -# 2016| ValueCategory = prvalue -# 2016| getQualifier(): [VariableAccess] d -# 2016| Type = [Class] D -# 2016| ValueCategory = lvalue -# 2016| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 2007| [MemberFunction] D& D::ReferenceStaticMemberFunction() +# 2007| : +# 2007| getEntryPoint(): [BlockStmt] { ... } +# 2008| getStmt(0): [ReturnStmt] return ... +# 2008| getExpr(): [VariableAccess] x +# 2008| Type = [Class] D +# 2008| ValueCategory = lvalue +# 2008| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 2008| Type = [LValueReferenceType] D & +# 2008| ValueCategory = prvalue +# 2010| [MemberFunction] D D::ObjectStaticMemberFunction() +# 2010| : +# 2010| getEntryPoint(): [BlockStmt] { ... } +# 2011| getStmt(0): [ReturnStmt] return ... +# 2011| getExpr(): [VariableAccess] x +# 2011| Type = [Class] D +# 2011| ValueCategory = prvalue(load) +# 2015| [TopLevelFunction] void test_static_member_functions_with_reference_return() +# 2015| : +# 2015| getEntryPoint(): [BlockStmt] { ... } +# 2016| getStmt(0): [DeclStmt] declaration +# 2016| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d # 2016| Type = [Class] D -# 2016| ValueCategory = lvalue -# 2017| getStmt(2): [ExprStmt] ExprStmt -# 2017| getExpr(): [FunctionCall] call to ReferenceStaticMemberFunction -# 2017| Type = [LValueReferenceType] D & -# 2017| ValueCategory = prvalue -# 2017| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 2017| Type = [Class] D -# 2017| ValueCategory = lvalue -# 2018| getStmt(3): [ExprStmt] ExprStmt -# 2018| getExpr(): [FunctionCall] call to ObjectStaticMemberFunction -# 2018| Type = [Class] D +# 2018| getStmt(1): [ExprStmt] ExprStmt +# 2018| getExpr(): [FunctionCall] call to ReferenceStaticMemberFunction +# 2018| Type = [LValueReferenceType] D & # 2018| ValueCategory = prvalue # 2018| getQualifier(): [VariableAccess] d # 2018| Type = [Class] D # 2018| ValueCategory = lvalue -# 2019| getStmt(4): [ExprStmt] ExprStmt -# 2019| getExpr(): [FunctionCall] call to ObjectStaticMemberFunction -# 2019| Type = [Class] D +# 2018| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 2018| Type = [Class] D +# 2018| ValueCategory = lvalue +# 2019| getStmt(2): [ExprStmt] ExprStmt +# 2019| getExpr(): [FunctionCall] call to ReferenceStaticMemberFunction +# 2019| Type = [LValueReferenceType] D & # 2019| ValueCategory = prvalue -# 2021| getStmt(5): [DeclStmt] declaration -# 2021| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x +# 2019| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 2019| Type = [Class] D +# 2019| ValueCategory = lvalue +# 2020| getStmt(3): [ExprStmt] ExprStmt +# 2020| getExpr(): [FunctionCall] call to ObjectStaticMemberFunction +# 2020| Type = [Class] D +# 2020| ValueCategory = prvalue +# 2020| getQualifier(): [VariableAccess] d +# 2020| Type = [Class] D +# 2020| ValueCategory = lvalue +# 2021| getStmt(4): [ExprStmt] ExprStmt +# 2021| getExpr(): [FunctionCall] call to ObjectStaticMemberFunction # 2021| Type = [Class] D -# 2022| getStmt(6): [ExprStmt] ExprStmt -# 2022| getExpr(): [AssignExpr] ... = ... -# 2022| Type = [Class] D -# 2022| ValueCategory = lvalue -# 2022| getLValue(): [VariableAccess] x -# 2022| Type = [Class] D -# 2022| ValueCategory = lvalue -# 2022| getRValue(): [FunctionCall] call to ReferenceStaticMemberFunction -# 2022| Type = [LValueReferenceType] D & -# 2022| ValueCategory = prvalue -# 2022| getQualifier(): [VariableAccess] d -# 2022| Type = [Class] D -# 2022| ValueCategory = lvalue -# 2022| getRValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 2022| Type = [Class] D -# 2022| ValueCategory = prvalue(load) -# 2023| getStmt(7): [DeclStmt] declaration -# 2023| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y +# 2021| ValueCategory = prvalue +# 2023| getStmt(5): [DeclStmt] declaration +# 2023| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x # 2023| Type = [Class] D -# 2024| getStmt(8): [ExprStmt] ExprStmt +# 2024| getStmt(6): [ExprStmt] ExprStmt # 2024| getExpr(): [AssignExpr] ... = ... # 2024| Type = [Class] D # 2024| ValueCategory = lvalue -# 2024| getLValue(): [VariableAccess] y +# 2024| getLValue(): [VariableAccess] x # 2024| Type = [Class] D # 2024| ValueCategory = lvalue # 2024| getRValue(): [FunctionCall] call to ReferenceStaticMemberFunction # 2024| Type = [LValueReferenceType] D & # 2024| ValueCategory = prvalue +# 2024| getQualifier(): [VariableAccess] d +# 2024| Type = [Class] D +# 2024| ValueCategory = lvalue # 2024| getRValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) # 2024| Type = [Class] D # 2024| ValueCategory = prvalue(load) -# 2025| getStmt(9): [DeclStmt] declaration -# 2025| getDeclarationEntry(0): [VariableDeclarationEntry] definition of j +# 2025| getStmt(7): [DeclStmt] declaration +# 2025| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y # 2025| Type = [Class] D -# 2026| getStmt(10): [ExprStmt] ExprStmt +# 2026| getStmt(8): [ExprStmt] ExprStmt # 2026| getExpr(): [AssignExpr] ... = ... # 2026| Type = [Class] D # 2026| ValueCategory = lvalue -# 2026| getLValue(): [VariableAccess] j +# 2026| getLValue(): [VariableAccess] y # 2026| Type = [Class] D # 2026| ValueCategory = lvalue -# 2026| getRValue(): [FunctionCall] call to ObjectStaticMemberFunction -# 2026| Type = [Class] D +# 2026| getRValue(): [FunctionCall] call to ReferenceStaticMemberFunction +# 2026| Type = [LValueReferenceType] D & # 2026| ValueCategory = prvalue -# 2026| getQualifier(): [VariableAccess] d -# 2026| Type = [Class] D -# 2026| ValueCategory = lvalue -# 2027| getStmt(11): [DeclStmt] declaration -# 2027| getDeclarationEntry(0): [VariableDeclarationEntry] definition of k +# 2026| getRValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 2026| Type = [Class] D +# 2026| ValueCategory = prvalue(load) +# 2027| getStmt(9): [DeclStmt] declaration +# 2027| getDeclarationEntry(0): [VariableDeclarationEntry] definition of j # 2027| Type = [Class] D -# 2028| getStmt(12): [ExprStmt] ExprStmt +# 2028| getStmt(10): [ExprStmt] ExprStmt # 2028| getExpr(): [AssignExpr] ... = ... # 2028| Type = [Class] D # 2028| ValueCategory = lvalue -# 2028| getLValue(): [VariableAccess] k +# 2028| getLValue(): [VariableAccess] j # 2028| Type = [Class] D # 2028| ValueCategory = lvalue # 2028| getRValue(): [FunctionCall] call to ObjectStaticMemberFunction # 2028| Type = [Class] D # 2028| ValueCategory = prvalue -# 2029| getStmt(13): [ReturnStmt] return ... -# 2031| [TopLevelFunction] void test_volatile() -# 2031| : -# 2031| getEntryPoint(): [BlockStmt] { ... } -# 2032| getStmt(0): [DeclStmt] declaration -# 2032| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x -# 2032| Type = [SpecifiedType] volatile int -# 2033| getStmt(1): [ExprStmt] ExprStmt -# 2033| getExpr(): [VariableAccess] x -# 2033| Type = [IntType] int -# 2033| ValueCategory = prvalue(load) -# 2034| getStmt(2): [ReturnStmt] return ... -# 2036| [CopyAssignmentOperator] ValCat& ValCat::operator=(ValCat const&) -# 2036| : +# 2028| getQualifier(): [VariableAccess] d +# 2028| Type = [Class] D +# 2028| ValueCategory = lvalue +# 2029| getStmt(11): [DeclStmt] declaration +# 2029| getDeclarationEntry(0): [VariableDeclarationEntry] definition of k +# 2029| Type = [Class] D +# 2030| getStmt(12): [ExprStmt] ExprStmt +# 2030| getExpr(): [AssignExpr] ... = ... +# 2030| Type = [Class] D +# 2030| ValueCategory = lvalue +# 2030| getLValue(): [VariableAccess] k +# 2030| Type = [Class] D +# 2030| ValueCategory = lvalue +# 2030| getRValue(): [FunctionCall] call to ObjectStaticMemberFunction +# 2030| Type = [Class] D +# 2030| ValueCategory = prvalue +# 2031| getStmt(13): [ReturnStmt] return ... +# 2033| [TopLevelFunction] void test_volatile() +# 2033| : +# 2033| getEntryPoint(): [BlockStmt] { ... } +# 2034| getStmt(0): [DeclStmt] declaration +# 2034| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x +# 2034| Type = [SpecifiedType] volatile int +# 2035| getStmt(1): [ExprStmt] ExprStmt +# 2035| getExpr(): [VariableAccess] x +# 2035| Type = [IntType] int +# 2035| ValueCategory = prvalue(load) +# 2036| getStmt(2): [ReturnStmt] return ... +# 2038| [CopyAssignmentOperator] ValCat& ValCat::operator=(ValCat const&) +# 2038| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const ValCat & -# 2036| [MoveAssignmentOperator] ValCat& ValCat::operator=(ValCat&&) -# 2036| : +# 2038| [MoveAssignmentOperator] ValCat& ValCat::operator=(ValCat&&) +# 2038| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] ValCat && -# 2037| [MemberFunction] ValCat& ValCat::lvalue() -# 2037| : -# 2038| [MemberFunction] ValCat&& ValCat::xvalue() -# 2038| : -# 2039| [MemberFunction] ValCat ValCat::prvalue() +# 2039| [MemberFunction] ValCat& ValCat::lvalue() # 2039| : -# 2042| [TopLevelFunction] void value_category_test() -# 2042| : -# 2042| getEntryPoint(): [BlockStmt] { ... } -# 2043| getStmt(0): [DeclStmt] declaration -# 2043| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c -# 2043| Type = [Struct] ValCat -# 2045| getStmt(1): [ExprStmt] ExprStmt -# 2045| getExpr(): [AssignExpr] ... = ... +# 2040| [MemberFunction] ValCat&& ValCat::xvalue() +# 2040| : +# 2041| [MemberFunction] ValCat ValCat::prvalue() +# 2041| : +# 2044| [TopLevelFunction] void value_category_test() +# 2044| : +# 2044| getEntryPoint(): [BlockStmt] { ... } +# 2045| getStmt(0): [DeclStmt] declaration +# 2045| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c # 2045| Type = [Struct] ValCat -# 2045| ValueCategory = lvalue -# 2045| getLValue(): [FunctionCall] call to lvalue -# 2045| Type = [LValueReferenceType] ValCat & -# 2045| ValueCategory = prvalue -# 2045| getQualifier(): [VariableAccess] c -# 2045| Type = [Struct] ValCat -# 2045| ValueCategory = lvalue -# 2045| getRValue(): [ClassAggregateLiteral] {...} -# 2045| Type = [Struct] ValCat -# 2045| ValueCategory = prvalue -# 2045| getLValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 2045| Type = [Struct] ValCat -# 2045| ValueCategory = lvalue -#-----| getRValue().getFullyConverted(): [TemporaryObjectExpr] temporary object -#-----| Type = [Struct] ValCat -#-----| ValueCategory = prvalue(load) -# 2046| getStmt(2): [ExprStmt] ExprStmt -# 2046| getExpr(): [AssignExpr] ... = ... -# 2046| Type = [Struct] ValCat -# 2046| ValueCategory = lvalue -# 2046| getLValue(): [FunctionCall] call to xvalue -# 2046| Type = [RValueReferenceType] ValCat && -# 2046| ValueCategory = prvalue -# 2046| getQualifier(): [VariableAccess] c -# 2046| Type = [Struct] ValCat -# 2046| ValueCategory = lvalue -# 2046| getRValue(): [ClassAggregateLiteral] {...} -# 2046| Type = [Struct] ValCat -# 2046| ValueCategory = prvalue -# 2046| getLValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 2046| Type = [Struct] ValCat -# 2046| ValueCategory = lvalue -#-----| getRValue().getFullyConverted(): [TemporaryObjectExpr] temporary object -#-----| Type = [Struct] ValCat -#-----| ValueCategory = prvalue(load) -# 2047| getStmt(3): [ExprStmt] ExprStmt +# 2047| getStmt(1): [ExprStmt] ExprStmt # 2047| getExpr(): [AssignExpr] ... = ... # 2047| Type = [Struct] ValCat # 2047| ValueCategory = lvalue -# 2047| getLValue(): [FunctionCall] call to prvalue -# 2047| Type = [Struct] ValCat +# 2047| getLValue(): [FunctionCall] call to lvalue +# 2047| Type = [LValueReferenceType] ValCat & # 2047| ValueCategory = prvalue # 2047| getQualifier(): [VariableAccess] c # 2047| Type = [Struct] ValCat @@ -18700,19 +18694,22 @@ ir.cpp: # 2047| getRValue(): [ClassAggregateLiteral] {...} # 2047| Type = [Struct] ValCat # 2047| ValueCategory = prvalue -# 2047| getLValue().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 2047| getLValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) # 2047| Type = [Struct] ValCat # 2047| ValueCategory = lvalue #-----| getRValue().getFullyConverted(): [TemporaryObjectExpr] temporary object #-----| Type = [Struct] ValCat #-----| ValueCategory = prvalue(load) -# 2048| getStmt(4): [ExprStmt] ExprStmt +# 2048| getStmt(2): [ExprStmt] ExprStmt # 2048| getExpr(): [AssignExpr] ... = ... # 2048| Type = [Struct] ValCat # 2048| ValueCategory = lvalue -# 2048| getLValue(): [FunctionCall] call to lvalue -# 2048| Type = [LValueReferenceType] ValCat & +# 2048| getLValue(): [FunctionCall] call to xvalue +# 2048| Type = [RValueReferenceType] ValCat && # 2048| ValueCategory = prvalue +# 2048| getQualifier(): [VariableAccess] c +# 2048| Type = [Struct] ValCat +# 2048| ValueCategory = lvalue # 2048| getRValue(): [ClassAggregateLiteral] {...} # 2048| Type = [Struct] ValCat # 2048| ValueCategory = prvalue @@ -18722,127 +18719,123 @@ ir.cpp: #-----| getRValue().getFullyConverted(): [TemporaryObjectExpr] temporary object #-----| Type = [Struct] ValCat #-----| ValueCategory = prvalue(load) -# 2049| getStmt(5): [ExprStmt] ExprStmt +# 2049| getStmt(3): [ExprStmt] ExprStmt # 2049| getExpr(): [AssignExpr] ... = ... # 2049| Type = [Struct] ValCat # 2049| ValueCategory = lvalue -# 2049| getLValue(): [FunctionCall] call to xvalue -# 2049| Type = [RValueReferenceType] ValCat && +# 2049| getLValue(): [FunctionCall] call to prvalue +# 2049| Type = [Struct] ValCat # 2049| ValueCategory = prvalue +# 2049| getQualifier(): [VariableAccess] c +# 2049| Type = [Struct] ValCat +# 2049| ValueCategory = lvalue # 2049| getRValue(): [ClassAggregateLiteral] {...} # 2049| Type = [Struct] ValCat # 2049| ValueCategory = prvalue -# 2049| getLValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 2049| getLValue().getFullyConverted(): [TemporaryObjectExpr] temporary object # 2049| Type = [Struct] ValCat # 2049| ValueCategory = lvalue #-----| getRValue().getFullyConverted(): [TemporaryObjectExpr] temporary object #-----| Type = [Struct] ValCat #-----| ValueCategory = prvalue(load) -# 2050| getStmt(6): [ExprStmt] ExprStmt +# 2050| getStmt(4): [ExprStmt] ExprStmt # 2050| getExpr(): [AssignExpr] ... = ... # 2050| Type = [Struct] ValCat # 2050| ValueCategory = lvalue -# 2050| getLValue(): [FunctionCall] call to prvalue -# 2050| Type = [Struct] ValCat +# 2050| getLValue(): [FunctionCall] call to lvalue +# 2050| Type = [LValueReferenceType] ValCat & # 2050| ValueCategory = prvalue # 2050| getRValue(): [ClassAggregateLiteral] {...} # 2050| Type = [Struct] ValCat # 2050| ValueCategory = prvalue -# 2050| getLValue().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 2050| getLValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) # 2050| Type = [Struct] ValCat # 2050| ValueCategory = lvalue #-----| getRValue().getFullyConverted(): [TemporaryObjectExpr] temporary object #-----| Type = [Struct] ValCat #-----| ValueCategory = prvalue(load) -# 2051| getStmt(7): [ReturnStmt] return ... -# 2053| [TopLevelFunction] void SetStaticFuncPtr() -# 2053| : -# 2053| getEntryPoint(): [BlockStmt] { ... } -# 2054| getStmt(0): [DeclStmt] declaration -# 2054| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c -# 2054| Type = [Class] C -# 2054| getVariable().getInitializer(): [Initializer] initializer for c -# 2054| getExpr(): [ConstructorCall] call to C -# 2054| Type = [VoidType] void -# 2054| ValueCategory = prvalue -# 2055| getStmt(1): [DeclStmt] declaration -# 2055| getDeclarationEntry(0): [VariableDeclarationEntry] definition of pfn -# 2055| Type = [FunctionPointerType] ..(*)(..) -# 2055| getVariable().getInitializer(): [Initializer] initializer for pfn -# 2055| getExpr(): [FunctionAccess] StaticMemberFunction -# 2055| Type = [FunctionPointerType] ..(*)(..) -# 2055| ValueCategory = prvalue(load) -# 2056| getStmt(2): [ExprStmt] ExprStmt -# 2056| getExpr(): [AssignExpr] ... = ... -# 2056| Type = [FunctionPointerType] ..(*)(..) -# 2056| ValueCategory = lvalue -# 2056| getLValue(): [VariableAccess] pfn -# 2056| Type = [FunctionPointerType] ..(*)(..) -# 2056| ValueCategory = lvalue -# 2056| getRValue(): [FunctionAccess] StaticMemberFunction -# 2056| Type = [FunctionPointerType] ..(*)(..) -# 2056| ValueCategory = prvalue(load) -# 2056| getQualifier(): [VariableAccess] c -# 2056| Type = [Class] C -# 2056| ValueCategory = lvalue -# 2057| getStmt(3): [ReturnStmt] return ... -# 2057| getImplicitDestructorCall(0): [DestructorCall] call to ~C -# 2057| Type = [VoidType] void -# 2057| ValueCategory = prvalue -# 2057| getQualifier(): [VariableAccess] c -# 2057| Type = [Class] C -# 2057| ValueCategory = lvalue -# 2059| [TopLevelFunction] void TernaryTestInt(bool, int, int, int) -# 2059| : -# 2059| getParameter(0): [Parameter] a -# 2059| Type = [BoolType] bool -# 2059| getParameter(1): [Parameter] x -# 2059| Type = [IntType] int -# 2059| getParameter(2): [Parameter] y -# 2059| Type = [IntType] int -# 2059| getParameter(3): [Parameter] z -# 2059| Type = [IntType] int -# 2059| getEntryPoint(): [BlockStmt] { ... } -# 2060| getStmt(0): [ExprStmt] ExprStmt -# 2060| getExpr(): [AssignExpr] ... = ... -# 2060| Type = [IntType] int -# 2060| ValueCategory = lvalue -# 2060| getLValue(): [VariableAccess] z -# 2060| Type = [IntType] int -# 2060| ValueCategory = lvalue -# 2060| getRValue(): [ConditionalExpr] ... ? ... : ... -# 2060| Type = [IntType] int -# 2060| ValueCategory = prvalue(load) -# 2060| getCondition(): [VariableAccess] a -# 2060| Type = [BoolType] bool -# 2060| ValueCategory = prvalue(load) -# 2060| getThen(): [VariableAccess] x -# 2060| Type = [IntType] int -# 2060| ValueCategory = prvalue(load) -# 2060| getElse(): [VariableAccess] y -# 2060| Type = [IntType] int -# 2060| ValueCategory = prvalue(load) -# 2061| getStmt(1): [ExprStmt] ExprStmt -# 2061| getExpr(): [AssignExpr] ... = ... -# 2061| Type = [IntType] int -# 2061| ValueCategory = lvalue -# 2061| getLValue(): [VariableAccess] z -# 2061| Type = [IntType] int -# 2061| ValueCategory = lvalue -# 2061| getRValue(): [ConditionalExpr] ... ? ... : ... -# 2061| Type = [IntType] int -# 2061| ValueCategory = prvalue(load) -# 2061| getCondition(): [VariableAccess] a -# 2061| Type = [BoolType] bool -# 2061| ValueCategory = prvalue(load) -# 2061| getThen(): [VariableAccess] x -# 2061| Type = [IntType] int -# 2061| ValueCategory = prvalue(load) -# 2061| getElse(): [Literal] 5 -# 2061| Type = [IntType] int -# 2061| Value = [Literal] 5 -# 2061| ValueCategory = prvalue -# 2062| getStmt(2): [ExprStmt] ExprStmt +# 2051| getStmt(5): [ExprStmt] ExprStmt +# 2051| getExpr(): [AssignExpr] ... = ... +# 2051| Type = [Struct] ValCat +# 2051| ValueCategory = lvalue +# 2051| getLValue(): [FunctionCall] call to xvalue +# 2051| Type = [RValueReferenceType] ValCat && +# 2051| ValueCategory = prvalue +# 2051| getRValue(): [ClassAggregateLiteral] {...} +# 2051| Type = [Struct] ValCat +# 2051| ValueCategory = prvalue +# 2051| getLValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 2051| Type = [Struct] ValCat +# 2051| ValueCategory = lvalue +#-----| getRValue().getFullyConverted(): [TemporaryObjectExpr] temporary object +#-----| Type = [Struct] ValCat +#-----| ValueCategory = prvalue(load) +# 2052| getStmt(6): [ExprStmt] ExprStmt +# 2052| getExpr(): [AssignExpr] ... = ... +# 2052| Type = [Struct] ValCat +# 2052| ValueCategory = lvalue +# 2052| getLValue(): [FunctionCall] call to prvalue +# 2052| Type = [Struct] ValCat +# 2052| ValueCategory = prvalue +# 2052| getRValue(): [ClassAggregateLiteral] {...} +# 2052| Type = [Struct] ValCat +# 2052| ValueCategory = prvalue +# 2052| getLValue().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 2052| Type = [Struct] ValCat +# 2052| ValueCategory = lvalue +#-----| getRValue().getFullyConverted(): [TemporaryObjectExpr] temporary object +#-----| Type = [Struct] ValCat +#-----| ValueCategory = prvalue(load) +# 2053| getStmt(7): [ReturnStmt] return ... +# 2055| [TopLevelFunction] void SetStaticFuncPtr() +# 2055| : +# 2055| getEntryPoint(): [BlockStmt] { ... } +# 2056| getStmt(0): [DeclStmt] declaration +# 2056| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c +# 2056| Type = [Class] C +# 2056| getVariable().getInitializer(): [Initializer] initializer for c +# 2056| getExpr(): [ConstructorCall] call to C +# 2056| Type = [VoidType] void +# 2056| ValueCategory = prvalue +# 2057| getStmt(1): [DeclStmt] declaration +# 2057| getDeclarationEntry(0): [VariableDeclarationEntry] definition of pfn +# 2057| Type = [FunctionPointerType] ..(*)(..) +# 2057| getVariable().getInitializer(): [Initializer] initializer for pfn +# 2057| getExpr(): [FunctionAccess] StaticMemberFunction +# 2057| Type = [FunctionPointerType] ..(*)(..) +# 2057| ValueCategory = prvalue(load) +# 2058| getStmt(2): [ExprStmt] ExprStmt +# 2058| getExpr(): [AssignExpr] ... = ... +# 2058| Type = [FunctionPointerType] ..(*)(..) +# 2058| ValueCategory = lvalue +# 2058| getLValue(): [VariableAccess] pfn +# 2058| Type = [FunctionPointerType] ..(*)(..) +# 2058| ValueCategory = lvalue +# 2058| getRValue(): [FunctionAccess] StaticMemberFunction +# 2058| Type = [FunctionPointerType] ..(*)(..) +# 2058| ValueCategory = prvalue(load) +# 2058| getQualifier(): [VariableAccess] c +# 2058| Type = [Class] C +# 2058| ValueCategory = lvalue +# 2059| getStmt(3): [ReturnStmt] return ... +# 2059| getImplicitDestructorCall(0): [DestructorCall] call to ~C +# 2059| Type = [VoidType] void +# 2059| ValueCategory = prvalue +# 2059| getQualifier(): [VariableAccess] c +# 2059| Type = [Class] C +# 2059| ValueCategory = lvalue +# 2061| [TopLevelFunction] void TernaryTestInt(bool, int, int, int) +# 2061| : +# 2061| getParameter(0): [Parameter] a +# 2061| Type = [BoolType] bool +# 2061| getParameter(1): [Parameter] x +# 2061| Type = [IntType] int +# 2061| getParameter(2): [Parameter] y +# 2061| Type = [IntType] int +# 2061| getParameter(3): [Parameter] z +# 2061| Type = [IntType] int +# 2061| getEntryPoint(): [BlockStmt] { ... } +# 2062| getStmt(0): [ExprStmt] ExprStmt # 2062| getExpr(): [AssignExpr] ... = ... # 2062| Type = [IntType] int # 2062| ValueCategory = lvalue @@ -18851,110 +18844,101 @@ ir.cpp: # 2062| ValueCategory = lvalue # 2062| getRValue(): [ConditionalExpr] ... ? ... : ... # 2062| Type = [IntType] int -# 2062| ValueCategory = prvalue +# 2062| ValueCategory = prvalue(load) # 2062| getCondition(): [VariableAccess] a # 2062| Type = [BoolType] bool # 2062| ValueCategory = prvalue(load) -# 2062| getThen(): [Literal] 3 +# 2062| getThen(): [VariableAccess] x # 2062| Type = [IntType] int -# 2062| Value = [Literal] 3 -# 2062| ValueCategory = prvalue -# 2062| getElse(): [Literal] 5 +# 2062| ValueCategory = prvalue(load) +# 2062| getElse(): [VariableAccess] y # 2062| Type = [IntType] int -# 2062| Value = [Literal] 5 -# 2062| ValueCategory = prvalue -# 2063| getStmt(3): [ExprStmt] ExprStmt +# 2062| ValueCategory = prvalue(load) +# 2063| getStmt(1): [ExprStmt] ExprStmt # 2063| getExpr(): [AssignExpr] ... = ... # 2063| Type = [IntType] int # 2063| ValueCategory = lvalue -# 2063| getLValue(): [ConditionalExpr] ... ? ... : ... +# 2063| getLValue(): [VariableAccess] z # 2063| Type = [IntType] int # 2063| ValueCategory = lvalue +# 2063| getRValue(): [ConditionalExpr] ... ? ... : ... +# 2063| Type = [IntType] int +# 2063| ValueCategory = prvalue(load) # 2063| getCondition(): [VariableAccess] a # 2063| Type = [BoolType] bool # 2063| ValueCategory = prvalue(load) # 2063| getThen(): [VariableAccess] x # 2063| Type = [IntType] int -# 2063| ValueCategory = lvalue -# 2063| getElse(): [VariableAccess] y +# 2063| ValueCategory = prvalue(load) +# 2063| getElse(): [Literal] 5 # 2063| Type = [IntType] int -# 2063| ValueCategory = lvalue -# 2063| getRValue(): [Literal] 7 -# 2063| Type = [IntType] int -# 2063| Value = [Literal] 7 -# 2063| ValueCategory = prvalue -# 2063| getLValue().getFullyConverted(): [ParenthesisExpr] (...) -# 2063| Type = [IntType] int -# 2063| ValueCategory = lvalue -# 2064| getStmt(4): [ReturnStmt] return ... -# 2066| [CopyAssignmentOperator] TernaryPodObj& TernaryPodObj::operator=(TernaryPodObj const&) -# 2066| : +# 2063| Value = [Literal] 5 +# 2063| ValueCategory = prvalue +# 2064| getStmt(2): [ExprStmt] ExprStmt +# 2064| getExpr(): [AssignExpr] ... = ... +# 2064| Type = [IntType] int +# 2064| ValueCategory = lvalue +# 2064| getLValue(): [VariableAccess] z +# 2064| Type = [IntType] int +# 2064| ValueCategory = lvalue +# 2064| getRValue(): [ConditionalExpr] ... ? ... : ... +# 2064| Type = [IntType] int +# 2064| ValueCategory = prvalue +# 2064| getCondition(): [VariableAccess] a +# 2064| Type = [BoolType] bool +# 2064| ValueCategory = prvalue(load) +# 2064| getThen(): [Literal] 3 +# 2064| Type = [IntType] int +# 2064| Value = [Literal] 3 +# 2064| ValueCategory = prvalue +# 2064| getElse(): [Literal] 5 +# 2064| Type = [IntType] int +# 2064| Value = [Literal] 5 +# 2064| ValueCategory = prvalue +# 2065| getStmt(3): [ExprStmt] ExprStmt +# 2065| getExpr(): [AssignExpr] ... = ... +# 2065| Type = [IntType] int +# 2065| ValueCategory = lvalue +# 2065| getLValue(): [ConditionalExpr] ... ? ... : ... +# 2065| Type = [IntType] int +# 2065| ValueCategory = lvalue +# 2065| getCondition(): [VariableAccess] a +# 2065| Type = [BoolType] bool +# 2065| ValueCategory = prvalue(load) +# 2065| getThen(): [VariableAccess] x +# 2065| Type = [IntType] int +# 2065| ValueCategory = lvalue +# 2065| getElse(): [VariableAccess] y +# 2065| Type = [IntType] int +# 2065| ValueCategory = lvalue +# 2065| getRValue(): [Literal] 7 +# 2065| Type = [IntType] int +# 2065| Value = [Literal] 7 +# 2065| ValueCategory = prvalue +# 2065| getLValue().getFullyConverted(): [ParenthesisExpr] (...) +# 2065| Type = [IntType] int +# 2065| ValueCategory = lvalue +# 2066| getStmt(4): [ReturnStmt] return ... +# 2068| [CopyAssignmentOperator] TernaryPodObj& TernaryPodObj::operator=(TernaryPodObj const&) +# 2068| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const TernaryPodObj & -# 2066| [MoveAssignmentOperator] TernaryPodObj& TernaryPodObj::operator=(TernaryPodObj&&) -# 2066| : +# 2068| [MoveAssignmentOperator] TernaryPodObj& TernaryPodObj::operator=(TernaryPodObj&&) +# 2068| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] TernaryPodObj && -# 2069| [TopLevelFunction] void TernaryTestPodObj(bool, TernaryPodObj, TernaryPodObj, TernaryPodObj) -# 2069| : -# 2069| getParameter(0): [Parameter] a -# 2069| Type = [BoolType] bool -# 2069| getParameter(1): [Parameter] x -# 2069| Type = [Struct] TernaryPodObj -# 2069| getParameter(2): [Parameter] y -# 2069| Type = [Struct] TernaryPodObj -# 2069| getParameter(3): [Parameter] z -# 2069| Type = [Struct] TernaryPodObj -# 2069| getEntryPoint(): [BlockStmt] { ... } -# 2070| getStmt(0): [ExprStmt] ExprStmt -# 2070| getExpr(): [AssignExpr] ... = ... -# 2070| Type = [Struct] TernaryPodObj -# 2070| ValueCategory = lvalue -# 2070| getLValue(): [VariableAccess] z -# 2070| Type = [Struct] TernaryPodObj -# 2070| ValueCategory = lvalue -# 2070| getRValue(): [ConditionalExpr] ... ? ... : ... -# 2070| Type = [Struct] TernaryPodObj -# 2070| ValueCategory = prvalue(load) -# 2070| getCondition(): [VariableAccess] a -# 2070| Type = [BoolType] bool -# 2070| ValueCategory = prvalue(load) -# 2070| getThen(): [VariableAccess] x -# 2070| Type = [Struct] TernaryPodObj -# 2070| ValueCategory = prvalue(load) -# 2070| getElse(): [VariableAccess] y -# 2070| Type = [Struct] TernaryPodObj -# 2070| ValueCategory = prvalue(load) -# 2071| getStmt(1): [ExprStmt] ExprStmt -# 2071| getExpr(): [AssignExpr] ... = ... -# 2071| Type = [Struct] TernaryPodObj -# 2071| ValueCategory = lvalue -# 2071| getLValue(): [VariableAccess] z -# 2071| Type = [Struct] TernaryPodObj -# 2071| ValueCategory = lvalue -# 2071| getRValue(): [ConditionalExpr] ... ? ... : ... -# 2071| Type = [Struct] TernaryPodObj -# 2071| ValueCategory = prvalue -# 2071| getCondition(): [VariableAccess] a -# 2071| Type = [BoolType] bool -# 2071| ValueCategory = prvalue(load) -# 2071| getThen(): [VariableAccess] x -# 2071| Type = [Struct] TernaryPodObj -# 2071| ValueCategory = prvalue(load) -# 2071| getElse(): [Literal] 0 -# 2071| Type = [Struct] TernaryPodObj -# 2071| Value = [Literal] 0 -# 2071| ValueCategory = prvalue -# 2071| getThen().getFullyConverted(): [TemporaryObjectExpr] temporary object -# 2071| Type = [Struct] TernaryPodObj -# 2071| ValueCategory = prvalue(load) -# 2071| getElse().getFullyConverted(): [TemporaryObjectExpr] temporary object -# 2071| Type = [Struct] TernaryPodObj -# 2071| ValueCategory = prvalue(load) -# 2071| getRValue().getFullyConverted(): [TemporaryObjectExpr] temporary object -# 2071| Type = [Struct] TernaryPodObj -# 2071| ValueCategory = prvalue(load) -# 2072| getStmt(2): [ExprStmt] ExprStmt +# 2071| [TopLevelFunction] void TernaryTestPodObj(bool, TernaryPodObj, TernaryPodObj, TernaryPodObj) +# 2071| : +# 2071| getParameter(0): [Parameter] a +# 2071| Type = [BoolType] bool +# 2071| getParameter(1): [Parameter] x +# 2071| Type = [Struct] TernaryPodObj +# 2071| getParameter(2): [Parameter] y +# 2071| Type = [Struct] TernaryPodObj +# 2071| getParameter(3): [Parameter] z +# 2071| Type = [Struct] TernaryPodObj +# 2071| getEntryPoint(): [BlockStmt] { ... } +# 2072| getStmt(0): [ExprStmt] ExprStmt # 2072| getExpr(): [AssignExpr] ... = ... # 2072| Type = [Struct] TernaryPodObj # 2072| ValueCategory = lvalue @@ -18963,62 +18947,110 @@ ir.cpp: # 2072| ValueCategory = lvalue # 2072| getRValue(): [ConditionalExpr] ... ? ... : ... # 2072| Type = [Struct] TernaryPodObj -# 2072| ValueCategory = prvalue +# 2072| ValueCategory = prvalue(load) # 2072| getCondition(): [VariableAccess] a # 2072| Type = [BoolType] bool # 2072| ValueCategory = prvalue(load) -# 2072| getThen(): [Literal] 0 -# 2072| Type = [Struct] TernaryPodObj -# 2072| Value = [Literal] 0 -# 2072| ValueCategory = prvalue -# 2072| getElse(): [Literal] 0 -# 2072| Type = [Struct] TernaryPodObj -# 2072| Value = [Literal] 0 -# 2072| ValueCategory = prvalue -# 2072| getThen().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 2072| getThen(): [VariableAccess] x # 2072| Type = [Struct] TernaryPodObj # 2072| ValueCategory = prvalue(load) -# 2072| getElse().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 2072| getElse(): [VariableAccess] y # 2072| Type = [Struct] TernaryPodObj # 2072| ValueCategory = prvalue(load) -# 2072| getRValue().getFullyConverted(): [TemporaryObjectExpr] temporary object -# 2072| Type = [Struct] TernaryPodObj -# 2072| ValueCategory = prvalue(load) -# 2073| getStmt(3): [ExprStmt] ExprStmt +# 2073| getStmt(1): [ExprStmt] ExprStmt # 2073| getExpr(): [AssignExpr] ... = ... # 2073| Type = [Struct] TernaryPodObj # 2073| ValueCategory = lvalue -# 2073| getLValue(): [AssignExpr] ... = ... +# 2073| getLValue(): [VariableAccess] z # 2073| Type = [Struct] TernaryPodObj # 2073| ValueCategory = lvalue -# 2073| getLValue(): [VariableAccess] z +# 2073| getRValue(): [ConditionalExpr] ... ? ... : ... +# 2073| Type = [Struct] TernaryPodObj +# 2073| ValueCategory = prvalue +# 2073| getCondition(): [VariableAccess] a +# 2073| Type = [BoolType] bool +# 2073| ValueCategory = prvalue(load) +# 2073| getThen(): [VariableAccess] x # 2073| Type = [Struct] TernaryPodObj -# 2073| ValueCategory = lvalue -# 2073| getRValue(): [ConditionalExpr] ... ? ... : ... +# 2073| ValueCategory = prvalue(load) +# 2073| getElse(): [Literal] 0 +# 2073| Type = [Struct] TernaryPodObj +# 2073| Value = [Literal] 0 +# 2073| ValueCategory = prvalue +# 2073| getThen().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 2073| Type = [Struct] TernaryPodObj +# 2073| ValueCategory = prvalue(load) +# 2073| getElse().getFullyConverted(): [TemporaryObjectExpr] temporary object # 2073| Type = [Struct] TernaryPodObj # 2073| ValueCategory = prvalue(load) -# 2073| getCondition(): [VariableAccess] a -# 2073| Type = [BoolType] bool -# 2073| ValueCategory = prvalue(load) -# 2073| getThen(): [VariableAccess] x -# 2073| Type = [Struct] TernaryPodObj -# 2073| ValueCategory = prvalue(load) -# 2073| getElse(): [VariableAccess] y -# 2073| Type = [Struct] TernaryPodObj -# 2073| ValueCategory = prvalue(load) -# 2073| getRValue(): [Literal] 0 -# 2073| Type = [Struct] TernaryPodObj -# 2073| Value = [Literal] 0 -# 2073| ValueCategory = prvalue -# 2073| getLValue().getFullyConverted(): [ParenthesisExpr] (...) -# 2073| Type = [Struct] TernaryPodObj -# 2073| ValueCategory = lvalue # 2073| getRValue().getFullyConverted(): [TemporaryObjectExpr] temporary object # 2073| Type = [Struct] TernaryPodObj # 2073| ValueCategory = prvalue(load) -# 2074| getStmt(4): [ReturnStmt] return ... -# 2076| [CopyAssignmentOperator] TernaryNonPodObj& TernaryNonPodObj::operator=(TernaryNonPodObj const&) -# 2076| : +# 2074| getStmt(2): [ExprStmt] ExprStmt +# 2074| getExpr(): [AssignExpr] ... = ... +# 2074| Type = [Struct] TernaryPodObj +# 2074| ValueCategory = lvalue +# 2074| getLValue(): [VariableAccess] z +# 2074| Type = [Struct] TernaryPodObj +# 2074| ValueCategory = lvalue +# 2074| getRValue(): [ConditionalExpr] ... ? ... : ... +# 2074| Type = [Struct] TernaryPodObj +# 2074| ValueCategory = prvalue +# 2074| getCondition(): [VariableAccess] a +# 2074| Type = [BoolType] bool +# 2074| ValueCategory = prvalue(load) +# 2074| getThen(): [Literal] 0 +# 2074| Type = [Struct] TernaryPodObj +# 2074| Value = [Literal] 0 +# 2074| ValueCategory = prvalue +# 2074| getElse(): [Literal] 0 +# 2074| Type = [Struct] TernaryPodObj +# 2074| Value = [Literal] 0 +# 2074| ValueCategory = prvalue +# 2074| getThen().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 2074| Type = [Struct] TernaryPodObj +# 2074| ValueCategory = prvalue(load) +# 2074| getElse().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 2074| Type = [Struct] TernaryPodObj +# 2074| ValueCategory = prvalue(load) +# 2074| getRValue().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 2074| Type = [Struct] TernaryPodObj +# 2074| ValueCategory = prvalue(load) +# 2075| getStmt(3): [ExprStmt] ExprStmt +# 2075| getExpr(): [AssignExpr] ... = ... +# 2075| Type = [Struct] TernaryPodObj +# 2075| ValueCategory = lvalue +# 2075| getLValue(): [AssignExpr] ... = ... +# 2075| Type = [Struct] TernaryPodObj +# 2075| ValueCategory = lvalue +# 2075| getLValue(): [VariableAccess] z +# 2075| Type = [Struct] TernaryPodObj +# 2075| ValueCategory = lvalue +# 2075| getRValue(): [ConditionalExpr] ... ? ... : ... +# 2075| Type = [Struct] TernaryPodObj +# 2075| ValueCategory = prvalue(load) +# 2075| getCondition(): [VariableAccess] a +# 2075| Type = [BoolType] bool +# 2075| ValueCategory = prvalue(load) +# 2075| getThen(): [VariableAccess] x +# 2075| Type = [Struct] TernaryPodObj +# 2075| ValueCategory = prvalue(load) +# 2075| getElse(): [VariableAccess] y +# 2075| Type = [Struct] TernaryPodObj +# 2075| ValueCategory = prvalue(load) +# 2075| getRValue(): [Literal] 0 +# 2075| Type = [Struct] TernaryPodObj +# 2075| Value = [Literal] 0 +# 2075| ValueCategory = prvalue +# 2075| getLValue().getFullyConverted(): [ParenthesisExpr] (...) +# 2075| Type = [Struct] TernaryPodObj +# 2075| ValueCategory = lvalue +# 2075| getRValue().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 2075| Type = [Struct] TernaryPodObj +# 2075| ValueCategory = prvalue(load) +# 2076| getStmt(4): [ReturnStmt] return ... +# 2078| [CopyAssignmentOperator] TernaryNonPodObj& TernaryNonPodObj::operator=(TernaryNonPodObj const&) +# 2078| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const TernaryNonPodObj & #-----| getEntryPoint(): [BlockStmt] { ... } @@ -19032,118 +19064,35 @@ ir.cpp: #-----| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) #-----| Type = [LValueReferenceType] TernaryNonPodObj & #-----| ValueCategory = prvalue -# 2076| [Constructor] void TernaryNonPodObj::TernaryNonPodObj() -# 2076| : -# 2076| : -# 2076| getEntryPoint(): [BlockStmt] { ... } -# 2076| getStmt(0): [ReturnStmt] return ... -# 2076| [CopyConstructor] void TernaryNonPodObj::TernaryNonPodObj(TernaryNonPodObj const&) -# 2076| : +# 2078| [Constructor] void TernaryNonPodObj::TernaryNonPodObj() +# 2078| : +# 2078| : +# 2078| getEntryPoint(): [BlockStmt] { ... } +# 2078| getStmt(0): [ReturnStmt] return ... +# 2078| [CopyConstructor] void TernaryNonPodObj::TernaryNonPodObj(TernaryNonPodObj const&) +# 2078| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const TernaryNonPodObj & -# 2076| : -# 2076| getEntryPoint(): [BlockStmt] { ... } -# 2076| getStmt(0): [ReturnStmt] return ... -# 2077| [Destructor,VirtualFunction] void TernaryNonPodObj::~TernaryNonPodObj() -# 2077| : -# 2077| getEntryPoint(): [BlockStmt] { ... } -# 2077| getStmt(0): [ReturnStmt] return ... -# 2077| : -# 2080| [TopLevelFunction] void TernaryTestNonPodObj(bool, TernaryNonPodObj, TernaryNonPodObj, TernaryNonPodObj) -# 2080| : -# 2080| getParameter(0): [Parameter] a -# 2080| Type = [BoolType] bool -# 2080| getParameter(1): [Parameter] x -# 2080| Type = [Struct] TernaryNonPodObj -# 2080| getParameter(2): [Parameter] y -# 2080| Type = [Struct] TernaryNonPodObj -# 2080| getParameter(3): [Parameter] z -# 2080| Type = [Struct] TernaryNonPodObj -# 2080| getEntryPoint(): [BlockStmt] { ... } -# 2081| getStmt(0): [ExprStmt] ExprStmt -# 2081| getExpr(): [FunctionCall] call to operator= -# 2081| Type = [LValueReferenceType] TernaryNonPodObj & -# 2081| ValueCategory = prvalue -# 2081| getQualifier(): [VariableAccess] z -# 2081| Type = [Struct] TernaryNonPodObj -# 2081| ValueCategory = lvalue -# 2081| getArgument(0): [ConditionalExpr] ... ? ... : ... -# 2081| Type = [Struct] TernaryNonPodObj -# 2081| ValueCategory = lvalue -# 2081| getCondition(): [VariableAccess] a -# 2081| Type = [BoolType] bool -# 2081| ValueCategory = prvalue(load) -# 2081| getThen(): [VariableAccess] x -# 2081| Type = [Struct] TernaryNonPodObj -# 2081| ValueCategory = lvalue -# 2081| getElse(): [VariableAccess] y -# 2081| Type = [Struct] TernaryNonPodObj -# 2081| ValueCategory = lvalue -# 2081| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) -# 2081| Type = [LValueReferenceType] const TernaryNonPodObj & -# 2081| ValueCategory = prvalue -# 2081| getExpr(): [CStyleCast] (const TernaryNonPodObj)... -# 2081| Conversion = [GlvalueConversion] glvalue conversion -# 2081| Type = [SpecifiedType] const TernaryNonPodObj -# 2081| ValueCategory = lvalue -# 2081| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 2081| Type = [Struct] TernaryNonPodObj -# 2081| ValueCategory = lvalue -# 2082| getStmt(1): [ExprStmt] ExprStmt -# 2082| getExpr(): [FunctionCall] call to operator= -# 2082| Type = [LValueReferenceType] TernaryNonPodObj & -# 2082| ValueCategory = prvalue -# 2082| getQualifier(): [VariableAccess] z -# 2082| Type = [Struct] TernaryNonPodObj -# 2082| ValueCategory = lvalue -# 2082| getArgument(0): [ConditionalExpr] ... ? ... : ... -# 2082| Type = [Struct] TernaryNonPodObj -# 2082| ValueCategory = prvalue -# 2082| getCondition(): [VariableAccess] a -# 2082| Type = [BoolType] bool -# 2082| ValueCategory = prvalue(load) -# 2082| getThen(): [ConstructorCall] call to TernaryNonPodObj -# 2082| Type = [VoidType] void -# 2082| ValueCategory = prvalue -# 2082| getArgument(0): [VariableAccess] x -# 2082| Type = [Struct] TernaryNonPodObj -# 2082| ValueCategory = lvalue -# 2082| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) -# 2082| Type = [LValueReferenceType] const TernaryNonPodObj & -# 2082| ValueCategory = prvalue -# 2082| getExpr(): [CStyleCast] (const TernaryNonPodObj)... -# 2082| Conversion = [GlvalueConversion] glvalue conversion -# 2082| Type = [SpecifiedType] const TernaryNonPodObj -# 2082| ValueCategory = lvalue -# 2082| getElse(): [ConstructorCall] call to TernaryNonPodObj -# 2082| Type = [VoidType] void -# 2082| ValueCategory = prvalue -# 2082| getThen().getFullyConverted(): [TemporaryObjectExpr] temporary object -# 2082| Type = [Struct] TernaryNonPodObj -# 2082| ValueCategory = prvalue(load) -# 2082| getElse().getFullyConverted(): [TemporaryObjectExpr] temporary object -# 2082| Type = [Struct] TernaryNonPodObj -# 2082| ValueCategory = prvalue(load) -# 2082| getImplicitDestructorCall(0): [DestructorCall] call to ~TernaryNonPodObj -# 2082| Type = [VoidType] void -# 2082| ValueCategory = prvalue -# 2082| getQualifier(): [ReuseExpr] reuse of temporary object -# 2082| Type = [Struct] TernaryNonPodObj -# 2082| ValueCategory = xvalue -# 2082| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) -# 2082| Type = [LValueReferenceType] const TernaryNonPodObj & -# 2082| ValueCategory = prvalue -# 2082| getExpr(): [CStyleCast] (const TernaryNonPodObj)... -# 2082| Conversion = [GlvalueConversion] glvalue conversion -# 2082| Type = [SpecifiedType] const TernaryNonPodObj -# 2082| ValueCategory = lvalue -# 2082| getExpr(): [TemporaryObjectExpr] temporary object -# 2082| Type = [Struct] TernaryNonPodObj -# 2082| ValueCategory = lvalue -# 2082| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 2082| Type = [Struct] TernaryNonPodObj -# 2082| ValueCategory = lvalue -# 2083| getStmt(2): [ExprStmt] ExprStmt +# 2078| : +# 2078| getEntryPoint(): [BlockStmt] { ... } +# 2078| getStmt(0): [ReturnStmt] return ... +# 2079| [Destructor,VirtualFunction] void TernaryNonPodObj::~TernaryNonPodObj() +# 2079| : +# 2079| getEntryPoint(): [BlockStmt] { ... } +# 2079| getStmt(0): [ReturnStmt] return ... +# 2079| : +# 2082| [TopLevelFunction] void TernaryTestNonPodObj(bool, TernaryNonPodObj, TernaryNonPodObj, TernaryNonPodObj) +# 2082| : +# 2082| getParameter(0): [Parameter] a +# 2082| Type = [BoolType] bool +# 2082| getParameter(1): [Parameter] x +# 2082| Type = [Struct] TernaryNonPodObj +# 2082| getParameter(2): [Parameter] y +# 2082| Type = [Struct] TernaryNonPodObj +# 2082| getParameter(3): [Parameter] z +# 2082| Type = [Struct] TernaryNonPodObj +# 2082| getEntryPoint(): [BlockStmt] { ... } +# 2083| getStmt(0): [ExprStmt] ExprStmt # 2083| getExpr(): [FunctionCall] call to operator= # 2083| Type = [LValueReferenceType] TernaryNonPodObj & # 2083| ValueCategory = prvalue @@ -19152,28 +19101,16 @@ ir.cpp: # 2083| ValueCategory = lvalue # 2083| getArgument(0): [ConditionalExpr] ... ? ... : ... # 2083| Type = [Struct] TernaryNonPodObj -# 2083| ValueCategory = prvalue +# 2083| ValueCategory = lvalue # 2083| getCondition(): [VariableAccess] a # 2083| Type = [BoolType] bool # 2083| ValueCategory = prvalue(load) -# 2083| getThen(): [ConstructorCall] call to TernaryNonPodObj -# 2083| Type = [VoidType] void -# 2083| ValueCategory = prvalue -# 2083| getElse(): [ConstructorCall] call to TernaryNonPodObj -# 2083| Type = [VoidType] void -# 2083| ValueCategory = prvalue -# 2083| getThen().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 2083| getThen(): [VariableAccess] x # 2083| Type = [Struct] TernaryNonPodObj -# 2083| ValueCategory = prvalue(load) -# 2083| getElse().getFullyConverted(): [TemporaryObjectExpr] temporary object -# 2083| Type = [Struct] TernaryNonPodObj -# 2083| ValueCategory = prvalue(load) -# 2083| getImplicitDestructorCall(0): [DestructorCall] call to ~TernaryNonPodObj -# 2083| Type = [VoidType] void -# 2083| ValueCategory = prvalue -# 2083| getQualifier(): [ReuseExpr] reuse of temporary object +# 2083| ValueCategory = lvalue +# 2083| getElse(): [VariableAccess] y # 2083| Type = [Struct] TernaryNonPodObj -# 2083| ValueCategory = xvalue +# 2083| ValueCategory = lvalue # 2083| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) # 2083| Type = [LValueReferenceType] const TernaryNonPodObj & # 2083| ValueCategory = prvalue @@ -19181,56 +19118,50 @@ ir.cpp: # 2083| Conversion = [GlvalueConversion] glvalue conversion # 2083| Type = [SpecifiedType] const TernaryNonPodObj # 2083| ValueCategory = lvalue -# 2083| getExpr(): [TemporaryObjectExpr] temporary object -# 2083| Type = [Struct] TernaryNonPodObj -# 2083| ValueCategory = lvalue # 2083| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) # 2083| Type = [Struct] TernaryNonPodObj # 2083| ValueCategory = lvalue -# 2084| getStmt(3): [ExprStmt] ExprStmt +# 2084| getStmt(1): [ExprStmt] ExprStmt # 2084| getExpr(): [FunctionCall] call to operator= # 2084| Type = [LValueReferenceType] TernaryNonPodObj & # 2084| ValueCategory = prvalue -# 2084| getQualifier(): [FunctionCall] call to operator= -# 2084| Type = [LValueReferenceType] TernaryNonPodObj & +# 2084| getQualifier(): [VariableAccess] z +# 2084| Type = [Struct] TernaryNonPodObj +# 2084| ValueCategory = lvalue +# 2084| getArgument(0): [ConditionalExpr] ... ? ... : ... +# 2084| Type = [Struct] TernaryNonPodObj # 2084| ValueCategory = prvalue -# 2084| getQualifier(): [VariableAccess] z -# 2084| Type = [Struct] TernaryNonPodObj -# 2084| ValueCategory = lvalue -# 2084| getArgument(0): [ConditionalExpr] ... ? ... : ... -# 2084| Type = [Struct] TernaryNonPodObj -# 2084| ValueCategory = lvalue -# 2084| getCondition(): [VariableAccess] a -# 2084| Type = [BoolType] bool -# 2084| ValueCategory = prvalue(load) -# 2084| getThen(): [VariableAccess] x -# 2084| Type = [Struct] TernaryNonPodObj -# 2084| ValueCategory = lvalue -# 2084| getElse(): [VariableAccess] y +# 2084| getCondition(): [VariableAccess] a +# 2084| Type = [BoolType] bool +# 2084| ValueCategory = prvalue(load) +# 2084| getThen(): [ConstructorCall] call to TernaryNonPodObj +# 2084| Type = [VoidType] void +# 2084| ValueCategory = prvalue +# 2084| getArgument(0): [VariableAccess] x # 2084| Type = [Struct] TernaryNonPodObj # 2084| ValueCategory = lvalue -# 2084| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) -# 2084| Type = [LValueReferenceType] const TernaryNonPodObj & +# 2084| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) +# 2084| Type = [LValueReferenceType] const TernaryNonPodObj & +# 2084| ValueCategory = prvalue +# 2084| getExpr(): [CStyleCast] (const TernaryNonPodObj)... +# 2084| Conversion = [GlvalueConversion] glvalue conversion +# 2084| Type = [SpecifiedType] const TernaryNonPodObj +# 2084| ValueCategory = lvalue +# 2084| getElse(): [ConstructorCall] call to TernaryNonPodObj +# 2084| Type = [VoidType] void # 2084| ValueCategory = prvalue -# 2084| getExpr(): [CStyleCast] (const TernaryNonPodObj)... -# 2084| Conversion = [GlvalueConversion] glvalue conversion -# 2084| Type = [SpecifiedType] const TernaryNonPodObj -# 2084| ValueCategory = lvalue -# 2084| getArgument(0): [ConstructorCall] call to TernaryNonPodObj -# 2084| Type = [VoidType] void -# 2084| ValueCategory = prvalue +# 2084| getThen().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 2084| Type = [Struct] TernaryNonPodObj +# 2084| ValueCategory = prvalue(load) +# 2084| getElse().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 2084| Type = [Struct] TernaryNonPodObj +# 2084| ValueCategory = prvalue(load) # 2084| getImplicitDestructorCall(0): [DestructorCall] call to ~TernaryNonPodObj # 2084| Type = [VoidType] void # 2084| ValueCategory = prvalue # 2084| getQualifier(): [ReuseExpr] reuse of temporary object # 2084| Type = [Struct] TernaryNonPodObj # 2084| ValueCategory = xvalue -# 2084| getQualifier().getFullyConverted(): [ParenthesisExpr] (...) -# 2084| Type = [Struct] TernaryNonPodObj -# 2084| ValueCategory = lvalue -# 2084| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 2084| Type = [Struct] TernaryNonPodObj -# 2084| ValueCategory = lvalue # 2084| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) # 2084| Type = [LValueReferenceType] const TernaryNonPodObj & # 2084| ValueCategory = prvalue @@ -19244,818 +19175,919 @@ ir.cpp: # 2084| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) # 2084| Type = [Struct] TernaryNonPodObj # 2084| ValueCategory = lvalue -# 2085| getStmt(4): [ReturnStmt] return ... -# 2087| [TopLevelFunction] void CommaTestHelper(unsigned int) -# 2087| : -# 2087| getParameter(0): [Parameter] (unnamed parameter 0) -# 2087| Type = [IntType] unsigned int -# 2089| [TopLevelFunction] unsigned int CommaTest(unsigned int) +# 2085| getStmt(2): [ExprStmt] ExprStmt +# 2085| getExpr(): [FunctionCall] call to operator= +# 2085| Type = [LValueReferenceType] TernaryNonPodObj & +# 2085| ValueCategory = prvalue +# 2085| getQualifier(): [VariableAccess] z +# 2085| Type = [Struct] TernaryNonPodObj +# 2085| ValueCategory = lvalue +# 2085| getArgument(0): [ConditionalExpr] ... ? ... : ... +# 2085| Type = [Struct] TernaryNonPodObj +# 2085| ValueCategory = prvalue +# 2085| getCondition(): [VariableAccess] a +# 2085| Type = [BoolType] bool +# 2085| ValueCategory = prvalue(load) +# 2085| getThen(): [ConstructorCall] call to TernaryNonPodObj +# 2085| Type = [VoidType] void +# 2085| ValueCategory = prvalue +# 2085| getElse(): [ConstructorCall] call to TernaryNonPodObj +# 2085| Type = [VoidType] void +# 2085| ValueCategory = prvalue +# 2085| getThen().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 2085| Type = [Struct] TernaryNonPodObj +# 2085| ValueCategory = prvalue(load) +# 2085| getElse().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 2085| Type = [Struct] TernaryNonPodObj +# 2085| ValueCategory = prvalue(load) +# 2085| getImplicitDestructorCall(0): [DestructorCall] call to ~TernaryNonPodObj +# 2085| Type = [VoidType] void +# 2085| ValueCategory = prvalue +# 2085| getQualifier(): [ReuseExpr] reuse of temporary object +# 2085| Type = [Struct] TernaryNonPodObj +# 2085| ValueCategory = xvalue +# 2085| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) +# 2085| Type = [LValueReferenceType] const TernaryNonPodObj & +# 2085| ValueCategory = prvalue +# 2085| getExpr(): [CStyleCast] (const TernaryNonPodObj)... +# 2085| Conversion = [GlvalueConversion] glvalue conversion +# 2085| Type = [SpecifiedType] const TernaryNonPodObj +# 2085| ValueCategory = lvalue +# 2085| getExpr(): [TemporaryObjectExpr] temporary object +# 2085| Type = [Struct] TernaryNonPodObj +# 2085| ValueCategory = lvalue +# 2085| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 2085| Type = [Struct] TernaryNonPodObj +# 2085| ValueCategory = lvalue +# 2086| getStmt(3): [ExprStmt] ExprStmt +# 2086| getExpr(): [FunctionCall] call to operator= +# 2086| Type = [LValueReferenceType] TernaryNonPodObj & +# 2086| ValueCategory = prvalue +# 2086| getQualifier(): [FunctionCall] call to operator= +# 2086| Type = [LValueReferenceType] TernaryNonPodObj & +# 2086| ValueCategory = prvalue +# 2086| getQualifier(): [VariableAccess] z +# 2086| Type = [Struct] TernaryNonPodObj +# 2086| ValueCategory = lvalue +# 2086| getArgument(0): [ConditionalExpr] ... ? ... : ... +# 2086| Type = [Struct] TernaryNonPodObj +# 2086| ValueCategory = lvalue +# 2086| getCondition(): [VariableAccess] a +# 2086| Type = [BoolType] bool +# 2086| ValueCategory = prvalue(load) +# 2086| getThen(): [VariableAccess] x +# 2086| Type = [Struct] TernaryNonPodObj +# 2086| ValueCategory = lvalue +# 2086| getElse(): [VariableAccess] y +# 2086| Type = [Struct] TernaryNonPodObj +# 2086| ValueCategory = lvalue +# 2086| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) +# 2086| Type = [LValueReferenceType] const TernaryNonPodObj & +# 2086| ValueCategory = prvalue +# 2086| getExpr(): [CStyleCast] (const TernaryNonPodObj)... +# 2086| Conversion = [GlvalueConversion] glvalue conversion +# 2086| Type = [SpecifiedType] const TernaryNonPodObj +# 2086| ValueCategory = lvalue +# 2086| getArgument(0): [ConstructorCall] call to TernaryNonPodObj +# 2086| Type = [VoidType] void +# 2086| ValueCategory = prvalue +# 2086| getImplicitDestructorCall(0): [DestructorCall] call to ~TernaryNonPodObj +# 2086| Type = [VoidType] void +# 2086| ValueCategory = prvalue +# 2086| getQualifier(): [ReuseExpr] reuse of temporary object +# 2086| Type = [Struct] TernaryNonPodObj +# 2086| ValueCategory = xvalue +# 2086| getQualifier().getFullyConverted(): [ParenthesisExpr] (...) +# 2086| Type = [Struct] TernaryNonPodObj +# 2086| ValueCategory = lvalue +# 2086| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 2086| Type = [Struct] TernaryNonPodObj +# 2086| ValueCategory = lvalue +# 2086| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) +# 2086| Type = [LValueReferenceType] const TernaryNonPodObj & +# 2086| ValueCategory = prvalue +# 2086| getExpr(): [CStyleCast] (const TernaryNonPodObj)... +# 2086| Conversion = [GlvalueConversion] glvalue conversion +# 2086| Type = [SpecifiedType] const TernaryNonPodObj +# 2086| ValueCategory = lvalue +# 2086| getExpr(): [TemporaryObjectExpr] temporary object +# 2086| Type = [Struct] TernaryNonPodObj +# 2086| ValueCategory = lvalue +# 2086| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 2086| Type = [Struct] TernaryNonPodObj +# 2086| ValueCategory = lvalue +# 2087| getStmt(4): [ReturnStmt] return ... +# 2089| [TopLevelFunction] void CommaTestHelper(unsigned int) # 2089| : -# 2089| getParameter(0): [Parameter] x +# 2089| getParameter(0): [Parameter] (unnamed parameter 0) # 2089| Type = [IntType] unsigned int -# 2089| getEntryPoint(): [BlockStmt] { ... } -# 2090| getStmt(0): [DeclStmt] declaration -# 2090| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y -# 2090| Type = [IntType] unsigned int -# 2091| getStmt(1): [ExprStmt] ExprStmt -# 2091| getExpr(): [AssignExpr] ... = ... -# 2091| Type = [IntType] unsigned int -# 2091| ValueCategory = lvalue -# 2091| getLValue(): [VariableAccess] y -# 2091| Type = [IntType] unsigned int -# 2091| ValueCategory = lvalue -# 2091| getRValue(): [ConditionalExpr] ... ? ... : ... -# 2091| Type = [IntType] unsigned int -# 2091| ValueCategory = prvalue(load) -# 2091| getCondition(): [LTExpr] ... < ... -# 2091| Type = [BoolType] bool -# 2091| ValueCategory = prvalue -# 2091| getLesserOperand(): [VariableAccess] x -# 2091| Type = [IntType] unsigned int -# 2091| ValueCategory = prvalue(load) -# 2091| getGreaterOperand(): [Literal] 100 -# 2091| Type = [IntType] int -# 2091| Value = [Literal] 100 -# 2091| ValueCategory = prvalue -# 2091| getGreaterOperand().getFullyConverted(): [CStyleCast] (unsigned int)... -# 2091| Conversion = [IntegralConversion] integral conversion -# 2091| Type = [IntType] unsigned int -# 2091| Value = [CStyleCast] 100 -# 2091| ValueCategory = prvalue -# 2092| getThen(): [CommaExpr] ... , ... -# 2092| Type = [IntType] unsigned int -# 2092| ValueCategory = prvalue(load) -# 2092| getLeftOperand(): [FunctionCall] call to CommaTestHelper -# 2092| Type = [VoidType] void -# 2092| ValueCategory = prvalue -# 2092| getArgument(0): [VariableAccess] x -# 2092| Type = [IntType] unsigned int -# 2092| ValueCategory = prvalue(load) -# 2092| getRightOperand(): [VariableAccess] x -# 2092| Type = [IntType] unsigned int -# 2092| ValueCategory = prvalue(load) -# 2093| getElse(): [CommaExpr] ... , ... -# 2093| Type = [IntType] int +# 2091| [TopLevelFunction] unsigned int CommaTest(unsigned int) +# 2091| : +# 2091| getParameter(0): [Parameter] x +# 2091| Type = [IntType] unsigned int +# 2091| getEntryPoint(): [BlockStmt] { ... } +# 2092| getStmt(0): [DeclStmt] declaration +# 2092| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y +# 2092| Type = [IntType] unsigned int +# 2093| getStmt(1): [ExprStmt] ExprStmt +# 2093| getExpr(): [AssignExpr] ... = ... +# 2093| Type = [IntType] unsigned int +# 2093| ValueCategory = lvalue +# 2093| getLValue(): [VariableAccess] y +# 2093| Type = [IntType] unsigned int +# 2093| ValueCategory = lvalue +# 2093| getRValue(): [ConditionalExpr] ... ? ... : ... +# 2093| Type = [IntType] unsigned int +# 2093| ValueCategory = prvalue(load) +# 2093| getCondition(): [LTExpr] ... < ... +# 2093| Type = [BoolType] bool # 2093| ValueCategory = prvalue -# 2093| getLeftOperand(): [FunctionCall] call to CommaTestHelper -# 2093| Type = [VoidType] void -# 2093| ValueCategory = prvalue -# 2093| getArgument(0): [VariableAccess] x -# 2093| Type = [IntType] unsigned int -# 2093| ValueCategory = prvalue(load) -# 2093| getRightOperand(): [Literal] 10 +# 2093| getLesserOperand(): [VariableAccess] x +# 2093| Type = [IntType] unsigned int +# 2093| ValueCategory = prvalue(load) +# 2093| getGreaterOperand(): [Literal] 100 # 2093| Type = [IntType] int -# 2093| Value = [Literal] 10 +# 2093| Value = [Literal] 100 # 2093| ValueCategory = prvalue -# 2092| getThen().getFullyConverted(): [ParenthesisExpr] (...) -# 2092| Type = [IntType] unsigned int -# 2092| ValueCategory = prvalue(load) -# 2093| getElse().getFullyConverted(): [CStyleCast] (unsigned int)... -# 2093| Conversion = [IntegralConversion] integral conversion -# 2093| Type = [IntType] unsigned int -# 2093| ValueCategory = prvalue -# 2093| getExpr(): [ParenthesisExpr] (...) -# 2093| Type = [IntType] int +# 2093| getGreaterOperand().getFullyConverted(): [CStyleCast] (unsigned int)... +# 2093| Conversion = [IntegralConversion] integral conversion +# 2093| Type = [IntType] unsigned int +# 2093| Value = [CStyleCast] 100 # 2093| ValueCategory = prvalue -# 2094| getStmt(2): [ReturnStmt] return ... -# 2096| [TopLevelFunction] void NewDeleteMem() -# 2096| : -# 2096| getEntryPoint(): [BlockStmt] { ... } -# 2097| getStmt(0): [DeclStmt] declaration -# 2097| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x -# 2097| Type = [IntPointerType] int * -# 2097| getVariable().getInitializer(): [Initializer] initializer for x -# 2097| getExpr(): [NewExpr] new -# 2097| Type = [IntPointerType] int * -# 2097| ValueCategory = prvalue -# 2098| getStmt(1): [ExprStmt] ExprStmt -# 2098| getExpr(): [AssignExpr] ... = ... -# 2098| Type = [IntType] int -# 2098| ValueCategory = lvalue -# 2098| getLValue(): [PointerDereferenceExpr] * ... -# 2098| Type = [IntType] int -# 2098| ValueCategory = lvalue -# 2098| getOperand(): [VariableAccess] x -# 2098| Type = [IntPointerType] int * -# 2098| ValueCategory = prvalue(load) -# 2098| getRValue(): [Literal] 6 -# 2098| Type = [IntType] int -# 2098| Value = [Literal] 6 -# 2098| ValueCategory = prvalue -# 2099| getStmt(2): [ExprStmt] ExprStmt -# 2099| getExpr(): [DeleteExpr] delete -# 2099| Type = [VoidType] void -# 2099| ValueCategory = prvalue -# 2099| getExprWithReuse(): [VariableAccess] x -# 2099| Type = [IntPointerType] int * -# 2099| ValueCategory = prvalue(load) -# 2100| getStmt(3): [ReturnStmt] return ... -# 2102| [CopyAssignmentOperator] Base2& Base2::operator=(Base2 const&) -# 2102| : -#-----| getParameter(0): [Parameter] (unnamed parameter 0) -#-----| Type = [LValueReferenceType] const Base2 & -# 2102| [Constructor] void Base2::Base2() -# 2102| : -# 2102| : -# 2102| getEntryPoint(): [BlockStmt] { ... } -# 2102| getStmt(0): [ReturnStmt] return ... -# 2102| [CopyConstructor] void Base2::Base2(Base2 const&) -# 2102| : +# 2094| getThen(): [CommaExpr] ... , ... +# 2094| Type = [IntType] unsigned int +# 2094| ValueCategory = prvalue(load) +# 2094| getLeftOperand(): [FunctionCall] call to CommaTestHelper +# 2094| Type = [VoidType] void +# 2094| ValueCategory = prvalue +# 2094| getArgument(0): [VariableAccess] x +# 2094| Type = [IntType] unsigned int +# 2094| ValueCategory = prvalue(load) +# 2094| getRightOperand(): [VariableAccess] x +# 2094| Type = [IntType] unsigned int +# 2094| ValueCategory = prvalue(load) +# 2095| getElse(): [CommaExpr] ... , ... +# 2095| Type = [IntType] int +# 2095| ValueCategory = prvalue +# 2095| getLeftOperand(): [FunctionCall] call to CommaTestHelper +# 2095| Type = [VoidType] void +# 2095| ValueCategory = prvalue +# 2095| getArgument(0): [VariableAccess] x +# 2095| Type = [IntType] unsigned int +# 2095| ValueCategory = prvalue(load) +# 2095| getRightOperand(): [Literal] 10 +# 2095| Type = [IntType] int +# 2095| Value = [Literal] 10 +# 2095| ValueCategory = prvalue +# 2094| getThen().getFullyConverted(): [ParenthesisExpr] (...) +# 2094| Type = [IntType] unsigned int +# 2094| ValueCategory = prvalue(load) +# 2095| getElse().getFullyConverted(): [CStyleCast] (unsigned int)... +# 2095| Conversion = [IntegralConversion] integral conversion +# 2095| Type = [IntType] unsigned int +# 2095| ValueCategory = prvalue +# 2095| getExpr(): [ParenthesisExpr] (...) +# 2095| Type = [IntType] int +# 2095| ValueCategory = prvalue +# 2096| getStmt(2): [ReturnStmt] return ... +# 2098| [TopLevelFunction] void NewDeleteMem() +# 2098| : +# 2098| getEntryPoint(): [BlockStmt] { ... } +# 2099| getStmt(0): [DeclStmt] declaration +# 2099| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x +# 2099| Type = [IntPointerType] int * +# 2099| getVariable().getInitializer(): [Initializer] initializer for x +# 2099| getExpr(): [NewExpr] new +# 2099| Type = [IntPointerType] int * +# 2099| ValueCategory = prvalue +# 2100| getStmt(1): [ExprStmt] ExprStmt +# 2100| getExpr(): [AssignExpr] ... = ... +# 2100| Type = [IntType] int +# 2100| ValueCategory = lvalue +# 2100| getLValue(): [PointerDereferenceExpr] * ... +# 2100| Type = [IntType] int +# 2100| ValueCategory = lvalue +# 2100| getOperand(): [VariableAccess] x +# 2100| Type = [IntPointerType] int * +# 2100| ValueCategory = prvalue(load) +# 2100| getRValue(): [Literal] 6 +# 2100| Type = [IntType] int +# 2100| Value = [Literal] 6 +# 2100| ValueCategory = prvalue +# 2101| getStmt(2): [ExprStmt] ExprStmt +# 2101| getExpr(): [DeleteExpr] delete +# 2101| Type = [VoidType] void +# 2101| ValueCategory = prvalue +# 2101| getExprWithReuse(): [VariableAccess] x +# 2101| Type = [IntPointerType] int * +# 2101| ValueCategory = prvalue(load) +# 2102| getStmt(3): [ReturnStmt] return ... +# 2104| [CopyAssignmentOperator] Base2& Base2::operator=(Base2 const&) +# 2104| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const Base2 & -# 2104| [MemberFunction] void Base2::operator delete(void*) +# 2104| [Constructor] void Base2::Base2() # 2104| : -# 2104| getParameter(0): [Parameter] p -# 2104| Type = [VoidPointerType] void * +# 2104| : # 2104| getEntryPoint(): [BlockStmt] { ... } -# 2105| getStmt(0): [ReturnStmt] return ... -# 2106| [Destructor,VirtualFunction] void Base2::~Base2() +# 2104| getStmt(0): [ReturnStmt] return ... +# 2104| [CopyConstructor] void Base2::Base2(Base2 const&) +# 2104| : +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [LValueReferenceType] const Base2 & +# 2106| [MemberFunction] void Base2::operator delete(void*) # 2106| : +# 2106| getParameter(0): [Parameter] p +# 2106| Type = [VoidPointerType] void * # 2106| getEntryPoint(): [BlockStmt] { ... } -# 2106| getStmt(0): [ReturnStmt] return ... -# 2106| : -# 2109| [CopyAssignmentOperator] Derived2& Derived2::operator=(Derived2 const&) -# 2109| : +# 2107| getStmt(0): [ReturnStmt] return ... +# 2108| [Destructor,VirtualFunction] void Base2::~Base2() +# 2108| : +# 2108| getEntryPoint(): [BlockStmt] { ... } +# 2108| getStmt(0): [ReturnStmt] return ... +# 2108| : +# 2111| [CopyAssignmentOperator] Derived2& Derived2::operator=(Derived2 const&) +# 2111| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const Derived2 & -# 2109| [Constructor] void Derived2::Derived2() -# 2109| : -# 2109| : -# 2109| getInitializer(0): [ConstructorDirectInit] call to Base2 -# 2109| Type = [VoidType] void -# 2109| ValueCategory = prvalue -# 2109| getEntryPoint(): [BlockStmt] { ... } -# 2109| getStmt(0): [ReturnStmt] return ... -# 2109| [CopyConstructor] void Derived2::Derived2(Derived2 const&) -# 2109| : +# 2111| [Constructor] void Derived2::Derived2() +# 2111| : +# 2111| : +# 2111| getInitializer(0): [ConstructorDirectInit] call to Base2 +# 2111| Type = [VoidType] void +# 2111| ValueCategory = prvalue +# 2111| getEntryPoint(): [BlockStmt] { ... } +# 2111| getStmt(0): [ReturnStmt] return ... +# 2111| [CopyConstructor] void Derived2::Derived2(Derived2 const&) +# 2111| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const Derived2 & -# 2112| [Destructor,VirtualFunction] void Derived2::~Derived2() -# 2112| : -# 2112| getEntryPoint(): [BlockStmt] { ... } -# 2112| getStmt(0): [ReturnStmt] return ... -# 2112| : -# 2112| getDestruction(0): [DestructorDirectDestruction] call to ~Base2 -# 2112| Type = [VoidType] void -# 2112| ValueCategory = prvalue -# 2114| [MemberFunction] void Derived2::operator delete(void*) +# 2114| [Destructor,VirtualFunction] void Derived2::~Derived2() # 2114| : -# 2114| getParameter(0): [Parameter] p -# 2114| Type = [VoidPointerType] void * # 2114| getEntryPoint(): [BlockStmt] { ... } -# 2115| getStmt(0): [ReturnStmt] return ... -# 2119| [TopLevelFunction] int virtual_delete() -# 2119| : -# 2120| getEntryPoint(): [BlockStmt] { ... } -# 2121| getStmt(0): [DeclStmt] declaration -# 2121| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b1 -# 2121| Type = [PointerType] Base2 * -# 2121| getVariable().getInitializer(): [Initializer] initializer for b1 -# 2121| getExpr(): [NewExpr] new -# 2121| Type = [PointerType] Base2 * -# 2121| ValueCategory = prvalue -# 2121| getInitializer(): [ConstructorCall] call to Base2 -# 2121| Type = [VoidType] void -# 2121| ValueCategory = prvalue -# 2122| getStmt(1): [ExprStmt] ExprStmt -# 2122| getExpr(): [DeleteExpr] delete -# 2122| Type = [VoidType] void -# 2122| ValueCategory = prvalue -# 2122| getDeallocatorCall(): [FunctionCall] call to operator delete -# 2122| Type = [VoidType] void -# 2122| ValueCategory = prvalue -# 2122| getDestructorCall(): [DestructorCall] call to ~Base2 -# 2122| Type = [VoidType] void -# 2122| ValueCategory = prvalue -# 2122| getQualifier(): [VariableAccess] b1 -# 2122| Type = [PointerType] Base2 * -# 2122| ValueCategory = prvalue(load) -# 2122| getExprWithReuse(): [ReuseExpr] reuse of b1 -# 2122| Type = [PointerType] Base2 * -# 2122| ValueCategory = prvalue -# 2124| getStmt(2): [DeclStmt] declaration -# 2124| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b2 -# 2124| Type = [PointerType] Base2 * -# 2124| getVariable().getInitializer(): [Initializer] initializer for b2 -# 2124| getExpr(): [NewExpr] new -# 2124| Type = [PointerType] Derived2 * -# 2124| ValueCategory = prvalue -# 2124| getInitializer(): [ConstructorCall] call to Derived2 -# 2124| Type = [VoidType] void -# 2124| ValueCategory = prvalue -# 2124| getExpr().getFullyConverted(): [CStyleCast] (Base2 *)... -# 2124| Conversion = [BaseClassConversion] base class conversion +# 2114| getStmt(0): [ReturnStmt] return ... +# 2114| : +# 2114| getDestruction(0): [DestructorDirectDestruction] call to ~Base2 +# 2114| Type = [VoidType] void +# 2114| ValueCategory = prvalue +# 2116| [MemberFunction] void Derived2::operator delete(void*) +# 2116| : +# 2116| getParameter(0): [Parameter] p +# 2116| Type = [VoidPointerType] void * +# 2116| getEntryPoint(): [BlockStmt] { ... } +# 2117| getStmt(0): [ReturnStmt] return ... +# 2121| [TopLevelFunction] int virtual_delete() +# 2121| : +# 2122| getEntryPoint(): [BlockStmt] { ... } +# 2123| getStmt(0): [DeclStmt] declaration +# 2123| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b1 +# 2123| Type = [PointerType] Base2 * +# 2123| getVariable().getInitializer(): [Initializer] initializer for b1 +# 2123| getExpr(): [NewExpr] new +# 2123| Type = [PointerType] Base2 * +# 2123| ValueCategory = prvalue +# 2123| getInitializer(): [ConstructorCall] call to Base2 +# 2123| Type = [VoidType] void +# 2123| ValueCategory = prvalue +# 2124| getStmt(1): [ExprStmt] ExprStmt +# 2124| getExpr(): [DeleteExpr] delete +# 2124| Type = [VoidType] void +# 2124| ValueCategory = prvalue +# 2124| getDeallocatorCall(): [FunctionCall] call to operator delete +# 2124| Type = [VoidType] void +# 2124| ValueCategory = prvalue +# 2124| getDestructorCall(): [DestructorCall] call to ~Base2 +# 2124| Type = [VoidType] void +# 2124| ValueCategory = prvalue +# 2124| getQualifier(): [VariableAccess] b1 # 2124| Type = [PointerType] Base2 * -# 2124| ValueCategory = prvalue -# 2125| getStmt(3): [ExprStmt] ExprStmt -# 2125| getExpr(): [DeleteExpr] delete -# 2125| Type = [VoidType] void -# 2125| ValueCategory = prvalue -# 2125| getDeallocatorCall(): [FunctionCall] call to operator delete -# 2125| Type = [VoidType] void -# 2125| ValueCategory = prvalue -# 2125| getDestructorCall(): [DestructorCall] call to ~Base2 -# 2125| Type = [VoidType] void -# 2125| ValueCategory = prvalue -# 2125| getQualifier(): [VariableAccess] b2 -# 2125| Type = [PointerType] Base2 * -# 2125| ValueCategory = prvalue(load) -# 2125| getExprWithReuse(): [ReuseExpr] reuse of b2 -# 2125| Type = [PointerType] Base2 * -# 2125| ValueCategory = prvalue -# 2127| getStmt(4): [DeclStmt] declaration -# 2127| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d -# 2127| Type = [PointerType] Derived2 * -# 2127| getVariable().getInitializer(): [Initializer] initializer for d -# 2127| getExpr(): [NewExpr] new -# 2127| Type = [PointerType] Derived2 * -# 2127| ValueCategory = prvalue -# 2127| getInitializer(): [ConstructorCall] call to Derived2 -# 2127| Type = [VoidType] void -# 2127| ValueCategory = prvalue -# 2128| getStmt(5): [ExprStmt] ExprStmt -# 2128| getExpr(): [DeleteExpr] delete -# 2128| Type = [VoidType] void -# 2128| ValueCategory = prvalue -# 2128| getDeallocatorCall(): [FunctionCall] call to operator delete -# 2128| Type = [VoidType] void -# 2128| ValueCategory = prvalue -# 2128| getDestructorCall(): [DestructorCall] call to ~Derived2 -# 2128| Type = [VoidType] void -# 2128| ValueCategory = prvalue -# 2128| getQualifier(): [VariableAccess] d -# 2128| Type = [PointerType] Derived2 * -# 2128| ValueCategory = prvalue(load) -# 2128| getExprWithReuse(): [ReuseExpr] reuse of d -# 2128| Type = [PointerType] Derived2 * -# 2128| ValueCategory = prvalue -# 2129| getStmt(6): [ReturnStmt] return ... -# 2131| [TopLevelFunction] void test_constant_folding_use(int) -# 2131| : -# 2131| getParameter(0): [Parameter] (unnamed parameter 0) -# 2131| Type = [IntType] int -# 2133| [TopLevelFunction] void test_constant_folding() +# 2124| ValueCategory = prvalue(load) +# 2124| getExprWithReuse(): [ReuseExpr] reuse of b1 +# 2124| Type = [PointerType] Base2 * +# 2124| ValueCategory = prvalue +# 2126| getStmt(2): [DeclStmt] declaration +# 2126| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b2 +# 2126| Type = [PointerType] Base2 * +# 2126| getVariable().getInitializer(): [Initializer] initializer for b2 +# 2126| getExpr(): [NewExpr] new +# 2126| Type = [PointerType] Derived2 * +# 2126| ValueCategory = prvalue +# 2126| getInitializer(): [ConstructorCall] call to Derived2 +# 2126| Type = [VoidType] void +# 2126| ValueCategory = prvalue +# 2126| getExpr().getFullyConverted(): [CStyleCast] (Base2 *)... +# 2126| Conversion = [BaseClassConversion] base class conversion +# 2126| Type = [PointerType] Base2 * +# 2126| ValueCategory = prvalue +# 2127| getStmt(3): [ExprStmt] ExprStmt +# 2127| getExpr(): [DeleteExpr] delete +# 2127| Type = [VoidType] void +# 2127| ValueCategory = prvalue +# 2127| getDeallocatorCall(): [FunctionCall] call to operator delete +# 2127| Type = [VoidType] void +# 2127| ValueCategory = prvalue +# 2127| getDestructorCall(): [DestructorCall] call to ~Base2 +# 2127| Type = [VoidType] void +# 2127| ValueCategory = prvalue +# 2127| getQualifier(): [VariableAccess] b2 +# 2127| Type = [PointerType] Base2 * +# 2127| ValueCategory = prvalue(load) +# 2127| getExprWithReuse(): [ReuseExpr] reuse of b2 +# 2127| Type = [PointerType] Base2 * +# 2127| ValueCategory = prvalue +# 2129| getStmt(4): [DeclStmt] declaration +# 2129| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d +# 2129| Type = [PointerType] Derived2 * +# 2129| getVariable().getInitializer(): [Initializer] initializer for d +# 2129| getExpr(): [NewExpr] new +# 2129| Type = [PointerType] Derived2 * +# 2129| ValueCategory = prvalue +# 2129| getInitializer(): [ConstructorCall] call to Derived2 +# 2129| Type = [VoidType] void +# 2129| ValueCategory = prvalue +# 2130| getStmt(5): [ExprStmt] ExprStmt +# 2130| getExpr(): [DeleteExpr] delete +# 2130| Type = [VoidType] void +# 2130| ValueCategory = prvalue +# 2130| getDeallocatorCall(): [FunctionCall] call to operator delete +# 2130| Type = [VoidType] void +# 2130| ValueCategory = prvalue +# 2130| getDestructorCall(): [DestructorCall] call to ~Derived2 +# 2130| Type = [VoidType] void +# 2130| ValueCategory = prvalue +# 2130| getQualifier(): [VariableAccess] d +# 2130| Type = [PointerType] Derived2 * +# 2130| ValueCategory = prvalue(load) +# 2130| getExprWithReuse(): [ReuseExpr] reuse of d +# 2130| Type = [PointerType] Derived2 * +# 2130| ValueCategory = prvalue +# 2131| getStmt(6): [ReturnStmt] return ... +# 2133| [TopLevelFunction] void test_constant_folding_use(int) # 2133| : -# 2133| getEntryPoint(): [BlockStmt] { ... } -# 2134| getStmt(0): [DeclStmt] declaration -# 2134| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x -# 2134| Type = [SpecifiedType] const int -# 2134| getVariable().getInitializer(): [Initializer] initializer for x -# 2134| getExpr(): [Literal] 116 -# 2134| Type = [IntType] int -# 2134| Value = [Literal] 116 -# 2134| ValueCategory = prvalue -# 2135| getStmt(1): [ExprStmt] ExprStmt -# 2135| getExpr(): [FunctionCall] call to test_constant_folding_use -# 2135| Type = [VoidType] void -# 2135| ValueCategory = prvalue -# 2135| getArgument(0): [VariableAccess] x -# 2135| Type = [IntType] int -# 2135| Value = [VariableAccess] 116 -# 2135| ValueCategory = prvalue(load) -# 2136| getStmt(2): [ReturnStmt] return ... -# 2138| [TopLevelFunction] void exit(int) -# 2138| : -# 2138| getParameter(0): [Parameter] code -# 2138| Type = [IntType] int -# 2140| [TopLevelFunction] int NonExit() +# 2133| getParameter(0): [Parameter] (unnamed parameter 0) +# 2133| Type = [IntType] int +# 2135| [TopLevelFunction] void test_constant_folding() +# 2135| : +# 2135| getEntryPoint(): [BlockStmt] { ... } +# 2136| getStmt(0): [DeclStmt] declaration +# 2136| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x +# 2136| Type = [SpecifiedType] const int +# 2136| getVariable().getInitializer(): [Initializer] initializer for x +# 2136| getExpr(): [Literal] 116 +# 2136| Type = [IntType] int +# 2136| Value = [Literal] 116 +# 2136| ValueCategory = prvalue +# 2137| getStmt(1): [ExprStmt] ExprStmt +# 2137| getExpr(): [FunctionCall] call to test_constant_folding_use +# 2137| Type = [VoidType] void +# 2137| ValueCategory = prvalue +# 2137| getArgument(0): [VariableAccess] x +# 2137| Type = [IntType] int +# 2137| Value = [VariableAccess] 116 +# 2137| ValueCategory = prvalue(load) +# 2138| getStmt(2): [ReturnStmt] return ... +# 2140| [TopLevelFunction] void exit(int) # 2140| : -# 2140| getEntryPoint(): [BlockStmt] { ... } -# 2141| getStmt(0): [DeclStmt] declaration -# 2141| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x -# 2141| Type = [IntType] int -# 2141| getVariable().getInitializer(): [Initializer] initializer for x -# 2141| getExpr(): [FunctionCall] call to Add -# 2141| Type = [IntType] int -# 2141| ValueCategory = prvalue -# 2141| getArgument(0): [Literal] 3 -# 2141| Type = [IntType] int -# 2141| Value = [Literal] 3 -# 2141| ValueCategory = prvalue -# 2141| getArgument(1): [Literal] 4 -# 2141| Type = [IntType] int -# 2141| Value = [Literal] 4 -# 2141| ValueCategory = prvalue -# 2142| getStmt(1): [IfStmt] if (...) ... -# 2142| getCondition(): [EQExpr] ... == ... -# 2142| Type = [BoolType] bool -# 2142| ValueCategory = prvalue -# 2142| getLeftOperand(): [VariableAccess] x -# 2142| Type = [IntType] int -# 2142| ValueCategory = prvalue(load) -# 2142| getRightOperand(): [Literal] 7 -# 2142| Type = [IntType] int -# 2142| Value = [Literal] 7 -# 2142| ValueCategory = prvalue -# 2143| getThen(): [ExprStmt] ExprStmt -# 2143| getExpr(): [FunctionCall] call to exit -# 2143| Type = [VoidType] void -# 2143| ValueCategory = prvalue -# 2143| getArgument(0): [Literal] 3 +# 2140| getParameter(0): [Parameter] code +# 2140| Type = [IntType] int +# 2142| [TopLevelFunction] int NonExit() +# 2142| : +# 2142| getEntryPoint(): [BlockStmt] { ... } +# 2143| getStmt(0): [DeclStmt] declaration +# 2143| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x +# 2143| Type = [IntType] int +# 2143| getVariable().getInitializer(): [Initializer] initializer for x +# 2143| getExpr(): [FunctionCall] call to Add # 2143| Type = [IntType] int -# 2143| Value = [Literal] 3 # 2143| ValueCategory = prvalue -# 2144| getStmt(2): [ExprStmt] ExprStmt -# 2144| getExpr(): [FunctionCall] call to VoidFunc -# 2144| Type = [VoidType] void +# 2143| getArgument(0): [Literal] 3 +# 2143| Type = [IntType] int +# 2143| Value = [Literal] 3 +# 2143| ValueCategory = prvalue +# 2143| getArgument(1): [Literal] 4 +# 2143| Type = [IntType] int +# 2143| Value = [Literal] 4 +# 2143| ValueCategory = prvalue +# 2144| getStmt(1): [IfStmt] if (...) ... +# 2144| getCondition(): [EQExpr] ... == ... +# 2144| Type = [BoolType] bool # 2144| ValueCategory = prvalue -# 2145| getStmt(3): [ReturnStmt] return ... -# 2145| getExpr(): [VariableAccess] x -# 2145| Type = [IntType] int -# 2145| ValueCategory = prvalue(load) -# 2148| [TopLevelFunction] void CallsNonExit() -# 2148| : -# 2148| getEntryPoint(): [BlockStmt] { ... } -# 2149| getStmt(0): [ExprStmt] ExprStmt -# 2149| getExpr(): [FunctionCall] call to VoidFunc -# 2149| Type = [VoidType] void -# 2149| ValueCategory = prvalue -# 2150| getStmt(1): [ExprStmt] ExprStmt -# 2150| getExpr(): [FunctionCall] call to exit -# 2150| Type = [VoidType] void -# 2150| ValueCategory = prvalue -# 2150| getArgument(0): [Literal] 3 -# 2150| Type = [IntType] int -# 2150| Value = [Literal] 3 -# 2150| ValueCategory = prvalue -# 2151| getStmt(2): [ReturnStmt] return ... -# 2153| [TopLevelFunction] int TransNonExit() -# 2153| : -# 2153| getEntryPoint(): [BlockStmt] { ... } -# 2154| getStmt(0): [DeclStmt] declaration -# 2154| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x -# 2154| Type = [IntType] int -# 2154| getVariable().getInitializer(): [Initializer] initializer for x -# 2154| getExpr(): [FunctionCall] call to Add -# 2154| Type = [IntType] int -# 2154| ValueCategory = prvalue -# 2154| getArgument(0): [Literal] 3 -# 2154| Type = [IntType] int -# 2154| Value = [Literal] 3 -# 2154| ValueCategory = prvalue -# 2154| getArgument(1): [Literal] 4 -# 2154| Type = [IntType] int -# 2154| Value = [Literal] 4 -# 2154| ValueCategory = prvalue -# 2155| getStmt(1): [IfStmt] if (...) ... -# 2155| getCondition(): [EQExpr] ... == ... -# 2155| Type = [BoolType] bool -# 2155| ValueCategory = prvalue -# 2155| getLeftOperand(): [VariableAccess] x -# 2155| Type = [IntType] int -# 2155| ValueCategory = prvalue(load) -# 2155| getRightOperand(): [Literal] 7 -# 2155| Type = [IntType] int -# 2155| Value = [Literal] 7 -# 2155| ValueCategory = prvalue -# 2156| getThen(): [ExprStmt] ExprStmt -# 2156| getExpr(): [FunctionCall] call to CallsNonExit -# 2156| Type = [VoidType] void -# 2156| ValueCategory = prvalue -# 2157| getStmt(2): [ExprStmt] ExprStmt -# 2157| getExpr(): [FunctionCall] call to VoidFunc -# 2157| Type = [VoidType] void +# 2144| getLeftOperand(): [VariableAccess] x +# 2144| Type = [IntType] int +# 2144| ValueCategory = prvalue(load) +# 2144| getRightOperand(): [Literal] 7 +# 2144| Type = [IntType] int +# 2144| Value = [Literal] 7 +# 2144| ValueCategory = prvalue +# 2145| getThen(): [ExprStmt] ExprStmt +# 2145| getExpr(): [FunctionCall] call to exit +# 2145| Type = [VoidType] void +# 2145| ValueCategory = prvalue +# 2145| getArgument(0): [Literal] 3 +# 2145| Type = [IntType] int +# 2145| Value = [Literal] 3 +# 2145| ValueCategory = prvalue +# 2146| getStmt(2): [ExprStmt] ExprStmt +# 2146| getExpr(): [FunctionCall] call to VoidFunc +# 2146| Type = [VoidType] void +# 2146| ValueCategory = prvalue +# 2147| getStmt(3): [ReturnStmt] return ... +# 2147| getExpr(): [VariableAccess] x +# 2147| Type = [IntType] int +# 2147| ValueCategory = prvalue(load) +# 2150| [TopLevelFunction] void CallsNonExit() +# 2150| : +# 2150| getEntryPoint(): [BlockStmt] { ... } +# 2151| getStmt(0): [ExprStmt] ExprStmt +# 2151| getExpr(): [FunctionCall] call to VoidFunc +# 2151| Type = [VoidType] void +# 2151| ValueCategory = prvalue +# 2152| getStmt(1): [ExprStmt] ExprStmt +# 2152| getExpr(): [FunctionCall] call to exit +# 2152| Type = [VoidType] void +# 2152| ValueCategory = prvalue +# 2152| getArgument(0): [Literal] 3 +# 2152| Type = [IntType] int +# 2152| Value = [Literal] 3 +# 2152| ValueCategory = prvalue +# 2153| getStmt(2): [ReturnStmt] return ... +# 2155| [TopLevelFunction] int TransNonExit() +# 2155| : +# 2155| getEntryPoint(): [BlockStmt] { ... } +# 2156| getStmt(0): [DeclStmt] declaration +# 2156| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x +# 2156| Type = [IntType] int +# 2156| getVariable().getInitializer(): [Initializer] initializer for x +# 2156| getExpr(): [FunctionCall] call to Add +# 2156| Type = [IntType] int +# 2156| ValueCategory = prvalue +# 2156| getArgument(0): [Literal] 3 +# 2156| Type = [IntType] int +# 2156| Value = [Literal] 3 +# 2156| ValueCategory = prvalue +# 2156| getArgument(1): [Literal] 4 +# 2156| Type = [IntType] int +# 2156| Value = [Literal] 4 +# 2156| ValueCategory = prvalue +# 2157| getStmt(1): [IfStmt] if (...) ... +# 2157| getCondition(): [EQExpr] ... == ... +# 2157| Type = [BoolType] bool # 2157| ValueCategory = prvalue -# 2158| getStmt(3): [ReturnStmt] return ... -# 2158| getExpr(): [VariableAccess] x -# 2158| Type = [IntType] int -# 2158| ValueCategory = prvalue(load) -# 2161| [TopLevelFunction] void newArrayCorrectType(size_t) -# 2161| : -# 2161| getParameter(0): [Parameter] n -# 2161| Type = [CTypedefType,Size_t] size_t -# 2161| getEntryPoint(): [BlockStmt] { ... } -# 2162| getStmt(0): [ExprStmt] ExprStmt -# 2162| getExpr(): [NewArrayExpr] new[] -# 2162| Type = [IntPointerType] int * -# 2162| ValueCategory = prvalue -# 2162| getExtent(): [VariableAccess] n -# 2162| Type = [CTypedefType,Size_t] size_t -# 2162| ValueCategory = prvalue(load) -# 2163| getStmt(1): [ExprStmt] ExprStmt -# 2163| getExpr(): [NewArrayExpr] new[] -# 2163| Type = [IntPointerType] int * -# 2163| ValueCategory = prvalue -# 2163| getAllocatorCall(): [FunctionCall] call to operator new[] -# 2163| Type = [VoidPointerType] void * -# 2163| ValueCategory = prvalue -# 2163| getArgument(0): [ErrorExpr] -# 2163| Type = [LongType] unsigned long -# 2163| ValueCategory = prvalue -# 2163| getArgument(1): [Literal] 1.0 -# 2163| Type = [FloatType] float -# 2163| Value = [Literal] 1.0 -# 2163| ValueCategory = prvalue -# 2163| getExtent(): [VariableAccess] n -# 2163| Type = [CTypedefType,Size_t] size_t -# 2163| ValueCategory = prvalue(load) -# 2164| getStmt(2): [ExprStmt] ExprStmt +# 2157| getLeftOperand(): [VariableAccess] x +# 2157| Type = [IntType] int +# 2157| ValueCategory = prvalue(load) +# 2157| getRightOperand(): [Literal] 7 +# 2157| Type = [IntType] int +# 2157| Value = [Literal] 7 +# 2157| ValueCategory = prvalue +# 2158| getThen(): [ExprStmt] ExprStmt +# 2158| getExpr(): [FunctionCall] call to CallsNonExit +# 2158| Type = [VoidType] void +# 2158| ValueCategory = prvalue +# 2159| getStmt(2): [ExprStmt] ExprStmt +# 2159| getExpr(): [FunctionCall] call to VoidFunc +# 2159| Type = [VoidType] void +# 2159| ValueCategory = prvalue +# 2160| getStmt(3): [ReturnStmt] return ... +# 2160| getExpr(): [VariableAccess] x +# 2160| Type = [IntType] int +# 2160| ValueCategory = prvalue(load) +# 2163| [TopLevelFunction] void newArrayCorrectType(size_t) +# 2163| : +# 2163| getParameter(0): [Parameter] n +# 2163| Type = [CTypedefType,Size_t] size_t +# 2163| getEntryPoint(): [BlockStmt] { ... } +# 2164| getStmt(0): [ExprStmt] ExprStmt # 2164| getExpr(): [NewArrayExpr] new[] -# 2164| Type = [PointerType] String * +# 2164| Type = [IntPointerType] int * # 2164| ValueCategory = prvalue -# 2164| getInitializer(): [ArrayAggregateLiteral] {...} -# 2164| Type = [ArrayType] String[] -# 2164| ValueCategory = prvalue -# 2164| getAnElementExpr(0): [ConstructorCall] call to String -# 2164| Type = [VoidType] void -# 2164| ValueCategory = prvalue # 2164| getExtent(): [VariableAccess] n # 2164| Type = [CTypedefType,Size_t] size_t # 2164| ValueCategory = prvalue(load) -# 2165| getStmt(3): [ExprStmt] ExprStmt +# 2165| getStmt(1): [ExprStmt] ExprStmt # 2165| getExpr(): [NewArrayExpr] new[] -# 2165| Type = [PointerType] Overaligned * +# 2165| Type = [IntPointerType] int * # 2165| ValueCategory = prvalue +# 2165| getAllocatorCall(): [FunctionCall] call to operator new[] +# 2165| Type = [VoidPointerType] void * +# 2165| ValueCategory = prvalue +# 2165| getArgument(0): [ErrorExpr] +# 2165| Type = [LongType] unsigned long +# 2165| ValueCategory = prvalue +# 2165| getArgument(1): [Literal] 1.0 +# 2165| Type = [FloatType] float +# 2165| Value = [Literal] 1.0 +# 2165| ValueCategory = prvalue # 2165| getExtent(): [VariableAccess] n # 2165| Type = [CTypedefType,Size_t] size_t # 2165| ValueCategory = prvalue(load) -# 2165| getAlignmentArgument(): [Literal] 128 -# 2165| Type = [ScopedEnum] align_val_t -# 2165| Value = [Literal] 128 -# 2165| ValueCategory = prvalue -# 2166| getStmt(4): [ExprStmt] ExprStmt +# 2166| getStmt(2): [ExprStmt] ExprStmt # 2166| getExpr(): [NewArrayExpr] new[] -# 2166| Type = [PointerType] DefaultCtorWithDefaultParam * +# 2166| Type = [PointerType] String * # 2166| ValueCategory = prvalue # 2166| getInitializer(): [ArrayAggregateLiteral] {...} -# 2166| Type = [ArrayType] DefaultCtorWithDefaultParam[] +# 2166| Type = [ArrayType] String[] # 2166| ValueCategory = prvalue -# 2166| getAnElementExpr(0): [ConstructorCall] call to DefaultCtorWithDefaultParam +# 2166| getAnElementExpr(0): [ConstructorCall] call to String # 2166| Type = [VoidType] void # 2166| ValueCategory = prvalue # 2166| getExtent(): [VariableAccess] n # 2166| Type = [CTypedefType,Size_t] size_t # 2166| ValueCategory = prvalue(load) -# 2167| getStmt(5): [ExprStmt] ExprStmt +# 2167| getStmt(3): [ExprStmt] ExprStmt # 2167| getExpr(): [NewArrayExpr] new[] -# 2167| Type = [IntPointerType] int * +# 2167| Type = [PointerType] Overaligned * # 2167| ValueCategory = prvalue -# 2167| getInitializer(): [ArrayAggregateLiteral] {...} -# 2167| Type = [ArrayType] int[3] -# 2167| ValueCategory = prvalue -# 2167| getAnElementExpr(0): [Literal] 0 -# 2167| Type = [IntType] int -# 2167| Value = [Literal] 0 -# 2167| ValueCategory = prvalue -# 2167| getAnElementExpr(1): [Literal] 1 -# 2167| Type = [IntType] int -# 2167| Value = [Literal] 1 -# 2167| ValueCategory = prvalue -# 2167| getAnElementExpr(2): [Literal] 2 -# 2167| Type = [IntType] int -# 2167| Value = [Literal] 2 -# 2167| ValueCategory = prvalue # 2167| getExtent(): [VariableAccess] n # 2167| Type = [CTypedefType,Size_t] size_t # 2167| ValueCategory = prvalue(load) -# 2168| getStmt(6): [ReturnStmt] return ... -# 2170| [TopLevelFunction] double strtod(char const*, char**) -# 2170| : -# 2170| getParameter(0): [Parameter] str -# 2170| Type = [PointerType] const char * -# 2170| getParameter(1): [Parameter] endptr -# 2170| Type = [PointerType] char ** -# 2172| [TopLevelFunction] char* test_strtod(char*) +# 2167| getAlignmentArgument(): [Literal] 128 +# 2167| Type = [ScopedEnum] align_val_t +# 2167| Value = [Literal] 128 +# 2167| ValueCategory = prvalue +# 2168| getStmt(4): [ExprStmt] ExprStmt +# 2168| getExpr(): [NewArrayExpr] new[] +# 2168| Type = [PointerType] DefaultCtorWithDefaultParam * +# 2168| ValueCategory = prvalue +# 2168| getInitializer(): [ArrayAggregateLiteral] {...} +# 2168| Type = [ArrayType] DefaultCtorWithDefaultParam[] +# 2168| ValueCategory = prvalue +# 2168| getAnElementExpr(0): [ConstructorCall] call to DefaultCtorWithDefaultParam +# 2168| Type = [VoidType] void +# 2168| ValueCategory = prvalue +# 2168| getExtent(): [VariableAccess] n +# 2168| Type = [CTypedefType,Size_t] size_t +# 2168| ValueCategory = prvalue(load) +# 2169| getStmt(5): [ExprStmt] ExprStmt +# 2169| getExpr(): [NewArrayExpr] new[] +# 2169| Type = [IntPointerType] int * +# 2169| ValueCategory = prvalue +# 2169| getInitializer(): [ArrayAggregateLiteral] {...} +# 2169| Type = [ArrayType] int[3] +# 2169| ValueCategory = prvalue +# 2169| getAnElementExpr(0): [Literal] 0 +# 2169| Type = [IntType] int +# 2169| Value = [Literal] 0 +# 2169| ValueCategory = prvalue +# 2169| getAnElementExpr(1): [Literal] 1 +# 2169| Type = [IntType] int +# 2169| Value = [Literal] 1 +# 2169| ValueCategory = prvalue +# 2169| getAnElementExpr(2): [Literal] 2 +# 2169| Type = [IntType] int +# 2169| Value = [Literal] 2 +# 2169| ValueCategory = prvalue +# 2169| getExtent(): [VariableAccess] n +# 2169| Type = [CTypedefType,Size_t] size_t +# 2169| ValueCategory = prvalue(load) +# 2170| getStmt(6): [ReturnStmt] return ... +# 2172| [TopLevelFunction] double strtod(char const*, char**) # 2172| : -# 2172| getParameter(0): [Parameter] s -# 2172| Type = [CharPointerType] char * -# 2172| getEntryPoint(): [BlockStmt] { ... } -# 2173| getStmt(0): [DeclStmt] declaration -# 2173| getDeclarationEntry(0): [VariableDeclarationEntry] definition of end -# 2173| Type = [CharPointerType] char * -# 2174| getStmt(1): [DeclStmt] declaration -# 2174| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d -# 2174| Type = [DoubleType] double -# 2174| getVariable().getInitializer(): [Initializer] initializer for d -# 2174| getExpr(): [FunctionCall] call to strtod -# 2174| Type = [DoubleType] double -# 2174| ValueCategory = prvalue -# 2174| getArgument(0): [VariableAccess] s -# 2174| Type = [CharPointerType] char * -# 2174| ValueCategory = prvalue(load) -# 2174| getArgument(1): [AddressOfExpr] & ... -# 2174| Type = [PointerType] char ** -# 2174| ValueCategory = prvalue -# 2174| getOperand(): [VariableAccess] end -# 2174| Type = [CharPointerType] char * -# 2174| ValueCategory = lvalue -# 2174| getArgument(0).getFullyConverted(): [CStyleCast] (const char *)... -# 2174| Conversion = [PointerConversion] pointer conversion -# 2174| Type = [PointerType] const char * -# 2174| ValueCategory = prvalue -# 2175| getStmt(2): [ReturnStmt] return ... -# 2175| getExpr(): [VariableAccess] end +# 2172| getParameter(0): [Parameter] str +# 2172| Type = [PointerType] const char * +# 2172| getParameter(1): [Parameter] endptr +# 2172| Type = [PointerType] char ** +# 2174| [TopLevelFunction] char* test_strtod(char*) +# 2174| : +# 2174| getParameter(0): [Parameter] s +# 2174| Type = [CharPointerType] char * +# 2174| getEntryPoint(): [BlockStmt] { ... } +# 2175| getStmt(0): [DeclStmt] declaration +# 2175| getDeclarationEntry(0): [VariableDeclarationEntry] definition of end # 2175| Type = [CharPointerType] char * -# 2175| ValueCategory = prvalue(load) -# 2178| [CopyAssignmentOperator] HasOperatorBool& HasOperatorBool::operator=(HasOperatorBool const&) -# 2178| : +# 2176| getStmt(1): [DeclStmt] declaration +# 2176| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d +# 2176| Type = [DoubleType] double +# 2176| getVariable().getInitializer(): [Initializer] initializer for d +# 2176| getExpr(): [FunctionCall] call to strtod +# 2176| Type = [DoubleType] double +# 2176| ValueCategory = prvalue +# 2176| getArgument(0): [VariableAccess] s +# 2176| Type = [CharPointerType] char * +# 2176| ValueCategory = prvalue(load) +# 2176| getArgument(1): [AddressOfExpr] & ... +# 2176| Type = [PointerType] char ** +# 2176| ValueCategory = prvalue +# 2176| getOperand(): [VariableAccess] end +# 2176| Type = [CharPointerType] char * +# 2176| ValueCategory = lvalue +# 2176| getArgument(0).getFullyConverted(): [CStyleCast] (const char *)... +# 2176| Conversion = [PointerConversion] pointer conversion +# 2176| Type = [PointerType] const char * +# 2176| ValueCategory = prvalue +# 2177| getStmt(2): [ReturnStmt] return ... +# 2177| getExpr(): [VariableAccess] end +# 2177| Type = [CharPointerType] char * +# 2177| ValueCategory = prvalue(load) +# 2180| [CopyAssignmentOperator] HasOperatorBool& HasOperatorBool::operator=(HasOperatorBool const&) +# 2180| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const HasOperatorBool & -# 2178| [MoveAssignmentOperator] HasOperatorBool& HasOperatorBool::operator=(HasOperatorBool&&) -# 2178| : +# 2180| [MoveAssignmentOperator] HasOperatorBool& HasOperatorBool::operator=(HasOperatorBool&&) +# 2180| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] HasOperatorBool && -# 2179| [ConversionOperator] bool HasOperatorBool::operator bool() -# 2179| : -# 2182| [TopLevelFunction] void call_as_child_of_ConditionDeclExpr() -# 2182| : -# 2182| getEntryPoint(): [BlockStmt] { ... } -# 2183| getStmt(0): [IfStmt] if (...) ... -# 2183| getCondition(): [ConditionDeclExpr] (condition decl) -# 2183| Type = [BoolType] bool -# 2183| ValueCategory = prvalue -# 2183| getChild(0): [FunctionCall] call to operator bool -# 2183| Type = [BoolType] bool -# 2183| ValueCategory = prvalue -# 2183| getQualifier(): [VariableAccess] b -# 2183| Type = [Struct] HasOperatorBool -# 2183| ValueCategory = prvalue(load) -# 2183| getInitializingExpr(): [Literal] 0 -# 2183| Type = [Struct] HasOperatorBool -# 2183| Value = [Literal] 0 -# 2183| ValueCategory = prvalue -# 2183| getThen(): [BlockStmt] { ... } -# 2184| getStmt(1): [ReturnStmt] return ... -# 2186| [CopyAssignmentOperator] ClassWithDestructor& ClassWithDestructor::operator=(ClassWithDestructor const&) -# 2186| : +# 2181| [ConversionOperator] bool HasOperatorBool::operator bool() +# 2181| : +# 2184| [TopLevelFunction] void call_as_child_of_ConditionDeclExpr() +# 2184| : +# 2184| getEntryPoint(): [BlockStmt] { ... } +# 2185| getStmt(0): [IfStmt] if (...) ... +# 2185| getCondition(): [ConditionDeclExpr] (condition decl) +# 2185| Type = [BoolType] bool +# 2185| ValueCategory = prvalue +# 2185| getChild(0): [FunctionCall] call to operator bool +# 2185| Type = [BoolType] bool +# 2185| ValueCategory = prvalue +# 2185| getQualifier(): [VariableAccess] b +# 2185| Type = [Struct] HasOperatorBool +# 2185| ValueCategory = prvalue(load) +# 2185| getInitializingExpr(): [Literal] 0 +# 2185| Type = [Struct] HasOperatorBool +# 2185| Value = [Literal] 0 +# 2185| ValueCategory = prvalue +# 2185| getThen(): [BlockStmt] { ... } +# 2186| getStmt(1): [ReturnStmt] return ... +# 2188| [CopyAssignmentOperator] ClassWithDestructor& ClassWithDestructor::operator=(ClassWithDestructor const&) +# 2188| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const ClassWithDestructor & -# 2186| [CopyConstructor] void ClassWithDestructor::ClassWithDestructor(ClassWithDestructor const&) -# 2186| : +# 2188| [CopyConstructor] void ClassWithDestructor::ClassWithDestructor(ClassWithDestructor const&) +# 2188| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const ClassWithDestructor & -# 2186| : -# 2186| getInitializer(0): [ConstructorFieldInit] constructor init of field x -# 2186| Type = [CharPointerType] char * -# 2186| ValueCategory = prvalue -# 2186| getExpr(): [ReferenceFieldAccess] x -# 2186| Type = [CharPointerType] char * -# 2186| ValueCategory = prvalue(load) -# 2186| getQualifier(): [VariableAccess] (unnamed parameter 0) -# 2186| Type = [LValueReferenceType] const ClassWithDestructor & -# 2186| ValueCategory = prvalue(load) -# 2186| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 2186| Type = [SpecifiedType] const ClassWithDestructor -# 2186| ValueCategory = lvalue -# 2186| getEntryPoint(): [BlockStmt] { ... } -# 2186| getStmt(0): [ReturnStmt] return ... -# 2189| [Constructor] void ClassWithDestructor::ClassWithDestructor() -# 2189| : -# 2189| : -# 2189| getEntryPoint(): [BlockStmt] { ... } -# 2189| getStmt(0): [ExprStmt] ExprStmt -# 2189| getExpr(): [AssignExpr] ... = ... -# 2189| Type = [CharPointerType] char * -# 2189| ValueCategory = lvalue -# 2189| getLValue(): [ImplicitThisFieldAccess,PointerFieldAccess] x -# 2189| Type = [CharPointerType] char * -# 2189| ValueCategory = lvalue -# 2189| getQualifier(): [ThisExpr] this -# 2189| Type = [PointerType] ClassWithDestructor * -# 2189| ValueCategory = prvalue(load) -# 2189| getRValue(): [NewExpr] new -# 2189| Type = [CharPointerType] char * -# 2189| ValueCategory = prvalue -# 2189| getStmt(1): [ReturnStmt] return ... -# 2190| [Destructor] void ClassWithDestructor::~ClassWithDestructor() -# 2190| : -# 2190| getEntryPoint(): [BlockStmt] { ... } -# 2190| getStmt(0): [ExprStmt] ExprStmt -# 2190| getExpr(): [DeleteExpr] delete -# 2190| Type = [VoidType] void -# 2190| ValueCategory = prvalue -# 2190| getExprWithReuse(): [ImplicitThisFieldAccess,PointerFieldAccess] x -# 2190| Type = [CharPointerType] char * -# 2190| ValueCategory = prvalue(load) -# 2190| getQualifier(): [ThisExpr] this -# 2190| Type = [PointerType] ClassWithDestructor * -# 2190| ValueCategory = prvalue(load) -# 2190| getStmt(1): [ReturnStmt] return ... -# 2190| : -# 2192| [MemberFunction] void ClassWithDestructor::set_x(char) +# 2188| : +# 2188| getInitializer(0): [ConstructorFieldInit] constructor init of field x +# 2188| Type = [CharPointerType] char * +# 2188| ValueCategory = prvalue +# 2188| getExpr(): [ReferenceFieldAccess] x +# 2188| Type = [CharPointerType] char * +# 2188| ValueCategory = prvalue(load) +# 2188| getQualifier(): [VariableAccess] (unnamed parameter 0) +# 2188| Type = [LValueReferenceType] const ClassWithDestructor & +# 2188| ValueCategory = prvalue(load) +# 2188| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 2188| Type = [SpecifiedType] const ClassWithDestructor +# 2188| ValueCategory = lvalue +# 2188| getEntryPoint(): [BlockStmt] { ... } +# 2188| getStmt(0): [ReturnStmt] return ... +# 2191| [Constructor] void ClassWithDestructor::ClassWithDestructor() +# 2191| : +# 2191| : +# 2191| getEntryPoint(): [BlockStmt] { ... } +# 2191| getStmt(0): [ExprStmt] ExprStmt +# 2191| getExpr(): [AssignExpr] ... = ... +# 2191| Type = [CharPointerType] char * +# 2191| ValueCategory = lvalue +# 2191| getLValue(): [ImplicitThisFieldAccess,PointerFieldAccess] x +# 2191| Type = [CharPointerType] char * +# 2191| ValueCategory = lvalue +# 2191| getQualifier(): [ThisExpr] this +# 2191| Type = [PointerType] ClassWithDestructor * +# 2191| ValueCategory = prvalue(load) +# 2191| getRValue(): [NewExpr] new +# 2191| Type = [CharPointerType] char * +# 2191| ValueCategory = prvalue +# 2191| getStmt(1): [ReturnStmt] return ... +# 2192| [Destructor] void ClassWithDestructor::~ClassWithDestructor() # 2192| : -# 2192| getParameter(0): [Parameter] y -# 2192| Type = [PlainCharType] char # 2192| getEntryPoint(): [BlockStmt] { ... } # 2192| getStmt(0): [ExprStmt] ExprStmt -# 2192| getExpr(): [AssignExpr] ... = ... -# 2192| Type = [PlainCharType] char -# 2192| ValueCategory = lvalue -# 2192| getLValue(): [PointerDereferenceExpr] * ... -# 2192| Type = [PlainCharType] char -# 2192| ValueCategory = lvalue -# 2192| getOperand(): [ImplicitThisFieldAccess,PointerFieldAccess] x -# 2192| Type = [CharPointerType] char * -# 2192| ValueCategory = prvalue(load) -# 2192| getQualifier(): [ThisExpr] this -# 2192| Type = [PointerType] ClassWithDestructor * -# 2192| ValueCategory = prvalue(load) -# 2192| getRValue(): [VariableAccess] y -# 2192| Type = [PlainCharType] char +# 2192| getExpr(): [DeleteExpr] delete +# 2192| Type = [VoidType] void +# 2192| ValueCategory = prvalue +# 2192| getExprWithReuse(): [ImplicitThisFieldAccess,PointerFieldAccess] x +# 2192| Type = [CharPointerType] char * # 2192| ValueCategory = prvalue(load) +# 2192| getQualifier(): [ThisExpr] this +# 2192| Type = [PointerType] ClassWithDestructor * +# 2192| ValueCategory = prvalue(load) # 2192| getStmt(1): [ReturnStmt] return ... -# 2193| [MemberFunction] char ClassWithDestructor::get_x() -# 2193| : -# 2193| getEntryPoint(): [BlockStmt] { ... } -# 2193| getStmt(0): [ReturnStmt] return ... -# 2193| getExpr(): [PointerDereferenceExpr] * ... -# 2193| Type = [PlainCharType] char -# 2193| ValueCategory = prvalue(load) -# 2193| getOperand(): [ImplicitThisFieldAccess,PointerFieldAccess] x -# 2193| Type = [CharPointerType] char * -# 2193| ValueCategory = prvalue(load) -# 2193| getQualifier(): [ThisExpr] this -# 2193| Type = [PointerType] ClassWithDestructor * -# 2193| ValueCategory = prvalue(load) -# 2194| [ConstMemberFunction,ConversionOperator] bool ClassWithDestructor::operator bool() const +# 2192| : +# 2194| [MemberFunction] void ClassWithDestructor::set_x(char) # 2194| : -# 2197| [GlobalVariable] bool initialization_with_destructor_bool -# 2197| getInitializer(): [Initializer] initializer for initialization_with_destructor_bool -# 2197| getExpr(): [Literal] 1 -# 2197| Type = [BoolType] bool -# 2197| Value = [Literal] 1 -# 2197| ValueCategory = prvalue -# 2199| [TopLevelFunction] void initialization_with_destructor(bool, char) -# 2199| : -# 2199| getParameter(0): [Parameter] b +# 2194| getParameter(0): [Parameter] y +# 2194| Type = [PlainCharType] char +# 2194| getEntryPoint(): [BlockStmt] { ... } +# 2194| getStmt(0): [ExprStmt] ExprStmt +# 2194| getExpr(): [AssignExpr] ... = ... +# 2194| Type = [PlainCharType] char +# 2194| ValueCategory = lvalue +# 2194| getLValue(): [PointerDereferenceExpr] * ... +# 2194| Type = [PlainCharType] char +# 2194| ValueCategory = lvalue +# 2194| getOperand(): [ImplicitThisFieldAccess,PointerFieldAccess] x +# 2194| Type = [CharPointerType] char * +# 2194| ValueCategory = prvalue(load) +# 2194| getQualifier(): [ThisExpr] this +# 2194| Type = [PointerType] ClassWithDestructor * +# 2194| ValueCategory = prvalue(load) +# 2194| getRValue(): [VariableAccess] y +# 2194| Type = [PlainCharType] char +# 2194| ValueCategory = prvalue(load) +# 2194| getStmt(1): [ReturnStmt] return ... +# 2195| [MemberFunction] char ClassWithDestructor::get_x() +# 2195| : +# 2195| getEntryPoint(): [BlockStmt] { ... } +# 2195| getStmt(0): [ReturnStmt] return ... +# 2195| getExpr(): [PointerDereferenceExpr] * ... +# 2195| Type = [PlainCharType] char +# 2195| ValueCategory = prvalue(load) +# 2195| getOperand(): [ImplicitThisFieldAccess,PointerFieldAccess] x +# 2195| Type = [CharPointerType] char * +# 2195| ValueCategory = prvalue(load) +# 2195| getQualifier(): [ThisExpr] this +# 2195| Type = [PointerType] ClassWithDestructor * +# 2195| ValueCategory = prvalue(load) +# 2196| [ConstMemberFunction,ConversionOperator] bool ClassWithDestructor::operator bool() const +# 2196| : +# 2199| [GlobalVariable] bool initialization_with_destructor_bool +# 2199| getInitializer(): [Initializer] initializer for initialization_with_destructor_bool +# 2199| getExpr(): [Literal] 1 # 2199| Type = [BoolType] bool -# 2199| getParameter(1): [Parameter] c -# 2199| Type = [PlainCharType] char -# 2199| getEntryPoint(): [BlockStmt] { ... } -# 2200| getStmt(0): [IfStmt] if (...) ... -# 2200| getInitialization(): [DeclStmt] declaration -# 2200| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x -# 2200| Type = [Class] ClassWithDestructor -# 2200| getVariable().getInitializer(): [Initializer] initializer for x -# 2200| getExpr(): [ConstructorCall] call to ClassWithDestructor -# 2200| Type = [VoidType] void -# 2200| ValueCategory = prvalue -# 2200| getCondition(): [VariableAccess] b -# 2200| Type = [BoolType] bool -# 2200| ValueCategory = prvalue(load) -# 2201| getThen(): [ExprStmt] ExprStmt -# 2201| getExpr(): [FunctionCall] call to set_x -# 2201| Type = [VoidType] void -# 2201| ValueCategory = prvalue -# 2201| getQualifier(): [VariableAccess] x -# 2201| Type = [Class] ClassWithDestructor -# 2201| ValueCategory = lvalue -# 2201| getArgument(0): [CharLiteral] 97 -# 2201| Type = [PlainCharType] char -# 2201| Value = [CharLiteral] 97 -# 2201| ValueCategory = prvalue -# 2201| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor -# 2201| Type = [VoidType] void -# 2201| ValueCategory = prvalue -# 2201| getQualifier(): [VariableAccess] x -# 2201| Type = [Class] ClassWithDestructor -# 2201| ValueCategory = lvalue -# 2203| getStmt(1): [ConstexprIfStmt] if constexpr (...) ... -# 2203| getInitialization(): [DeclStmt] declaration -# 2203| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x +# 2199| Value = [Literal] 1 +# 2199| ValueCategory = prvalue +# 2201| [TopLevelFunction] void initialization_with_destructor(bool, char) +# 2201| : +# 2201| getParameter(0): [Parameter] b +# 2201| Type = [BoolType] bool +# 2201| getParameter(1): [Parameter] c +# 2201| Type = [PlainCharType] char +# 2201| getEntryPoint(): [BlockStmt] { ... } +# 2202| getStmt(0): [IfStmt] if (...) ... +# 2202| getInitialization(): [DeclStmt] declaration +# 2202| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x +# 2202| Type = [Class] ClassWithDestructor +# 2202| getVariable().getInitializer(): [Initializer] initializer for x +# 2202| getExpr(): [ConstructorCall] call to ClassWithDestructor +# 2202| Type = [VoidType] void +# 2202| ValueCategory = prvalue +# 2202| getCondition(): [VariableAccess] b +# 2202| Type = [BoolType] bool +# 2202| ValueCategory = prvalue(load) +# 2203| getThen(): [ExprStmt] ExprStmt +# 2203| getExpr(): [FunctionCall] call to set_x +# 2203| Type = [VoidType] void +# 2203| ValueCategory = prvalue +# 2203| getQualifier(): [VariableAccess] x +# 2203| Type = [Class] ClassWithDestructor +# 2203| ValueCategory = lvalue +# 2203| getArgument(0): [CharLiteral] 97 +# 2203| Type = [PlainCharType] char +# 2203| Value = [CharLiteral] 97 +# 2203| ValueCategory = prvalue +# 2203| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2203| Type = [VoidType] void +# 2203| ValueCategory = prvalue +# 2203| getQualifier(): [VariableAccess] x # 2203| Type = [Class] ClassWithDestructor -# 2203| getVariable().getInitializer(): [Initializer] initializer for x -# 2203| getExpr(): [ConstructorCall] call to ClassWithDestructor -# 2203| Type = [VoidType] void -# 2203| ValueCategory = prvalue -# 2203| getCondition(): [VariableAccess] initialization_with_destructor_bool -# 2203| Type = [BoolType] bool -# 2203| Value = [VariableAccess] 1 -# 2203| ValueCategory = prvalue(load) -# 2204| getThen(): [ExprStmt] ExprStmt -# 2204| getExpr(): [FunctionCall] call to set_x -# 2204| Type = [VoidType] void -# 2204| ValueCategory = prvalue -# 2204| getQualifier(): [VariableAccess] x -# 2204| Type = [Class] ClassWithDestructor -# 2204| ValueCategory = lvalue -# 2204| getArgument(0): [CharLiteral] 97 -# 2204| Type = [PlainCharType] char -# 2204| Value = [CharLiteral] 97 -# 2204| ValueCategory = prvalue -# 2204| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor -# 2204| Type = [VoidType] void -# 2204| ValueCategory = prvalue -# 2204| getQualifier(): [VariableAccess] x -# 2204| Type = [Class] ClassWithDestructor -# 2204| ValueCategory = lvalue -# 2206| getStmt(2): [SwitchStmt] switch (...) ... -# 2206| getInitialization(): [DeclStmt] declaration -# 2206| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x +# 2203| ValueCategory = lvalue +# 2205| getStmt(1): [ConstexprIfStmt] if constexpr (...) ... +# 2205| getInitialization(): [DeclStmt] declaration +# 2205| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x +# 2205| Type = [Class] ClassWithDestructor +# 2205| getVariable().getInitializer(): [Initializer] initializer for x +# 2205| getExpr(): [ConstructorCall] call to ClassWithDestructor +# 2205| Type = [VoidType] void +# 2205| ValueCategory = prvalue +# 2205| getCondition(): [VariableAccess] initialization_with_destructor_bool +# 2205| Type = [BoolType] bool +# 2205| Value = [VariableAccess] 1 +# 2205| ValueCategory = prvalue(load) +# 2206| getThen(): [ExprStmt] ExprStmt +# 2206| getExpr(): [FunctionCall] call to set_x +# 2206| Type = [VoidType] void +# 2206| ValueCategory = prvalue +# 2206| getQualifier(): [VariableAccess] x +# 2206| Type = [Class] ClassWithDestructor +# 2206| ValueCategory = lvalue +# 2206| getArgument(0): [CharLiteral] 97 +# 2206| Type = [PlainCharType] char +# 2206| Value = [CharLiteral] 97 +# 2206| ValueCategory = prvalue +# 2206| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2206| Type = [VoidType] void +# 2206| ValueCategory = prvalue +# 2206| getQualifier(): [VariableAccess] x # 2206| Type = [Class] ClassWithDestructor -# 2206| getVariable().getInitializer(): [Initializer] initializer for x -# 2206| getExpr(): [ConstructorCall] call to ClassWithDestructor -# 2206| Type = [VoidType] void -# 2206| ValueCategory = prvalue -# 2206| getExpr(): [VariableAccess] c -# 2206| Type = [PlainCharType] char -# 2206| ValueCategory = prvalue(load) -# 2206| getStmt(): [BlockStmt] { ... } -# 2207| getStmt(0): [SwitchCase] case ...: -# 2207| getExpr(): [CharLiteral] 97 -# 2207| Type = [PlainCharType] char -# 2207| Value = [CharLiteral] 97 -# 2207| ValueCategory = prvalue -# 2207| getExpr().getFullyConverted(): [CStyleCast] (int)... -# 2207| Conversion = [IntegralConversion] integral conversion -# 2207| Type = [IntType] int -# 2207| Value = [CStyleCast] 97 -# 2207| ValueCategory = prvalue -# 2208| getStmt(1): [ExprStmt] ExprStmt -# 2208| getExpr(): [FunctionCall] call to set_x -# 2208| Type = [VoidType] void -# 2208| ValueCategory = prvalue -# 2208| getQualifier(): [VariableAccess] x -# 2208| Type = [Class] ClassWithDestructor -# 2208| ValueCategory = lvalue -# 2208| getArgument(0): [CharLiteral] 97 -# 2208| Type = [PlainCharType] char -# 2208| Value = [CharLiteral] 97 +# 2206| ValueCategory = lvalue +# 2208| getStmt(2): [SwitchStmt] switch (...) ... +# 2208| getInitialization(): [DeclStmt] declaration +# 2208| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x +# 2208| Type = [Class] ClassWithDestructor +# 2208| getVariable().getInitializer(): [Initializer] initializer for x +# 2208| getExpr(): [ConstructorCall] call to ClassWithDestructor +# 2208| Type = [VoidType] void # 2208| ValueCategory = prvalue -# 2209| getStmt(2): [BreakStmt] break; -# 2213| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor -# 2213| Type = [VoidType] void -# 2213| ValueCategory = prvalue -# 2213| getQualifier(): [VariableAccess] x -# 2213| Type = [Class] ClassWithDestructor -# 2213| ValueCategory = lvalue -# 2210| getStmt(3): [SwitchCase] default: -# 2211| getStmt(4): [ExprStmt] ExprStmt -# 2211| getExpr(): [FunctionCall] call to set_x -# 2211| Type = [VoidType] void -# 2211| ValueCategory = prvalue -# 2211| getQualifier(): [VariableAccess] x -# 2211| Type = [Class] ClassWithDestructor -# 2211| ValueCategory = lvalue -# 2211| getArgument(0): [CharLiteral] 98 -# 2211| Type = [PlainCharType] char -# 2211| Value = [CharLiteral] 98 -# 2211| ValueCategory = prvalue -# 2212| getStmt(5): [BreakStmt] break; -# 2213| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2208| getExpr(): [VariableAccess] c +# 2208| Type = [PlainCharType] char +# 2208| ValueCategory = prvalue(load) +# 2208| getStmt(): [BlockStmt] { ... } +# 2209| getStmt(0): [SwitchCase] case ...: +# 2209| getExpr(): [CharLiteral] 97 +# 2209| Type = [PlainCharType] char +# 2209| Value = [CharLiteral] 97 +# 2209| ValueCategory = prvalue +# 2209| getExpr().getFullyConverted(): [CStyleCast] (int)... +# 2209| Conversion = [IntegralConversion] integral conversion +# 2209| Type = [IntType] int +# 2209| Value = [CStyleCast] 97 +# 2209| ValueCategory = prvalue +# 2210| getStmt(1): [ExprStmt] ExprStmt +# 2210| getExpr(): [FunctionCall] call to set_x +# 2210| Type = [VoidType] void +# 2210| ValueCategory = prvalue +# 2210| getQualifier(): [VariableAccess] x +# 2210| Type = [Class] ClassWithDestructor +# 2210| ValueCategory = lvalue +# 2210| getArgument(0): [CharLiteral] 97 +# 2210| Type = [PlainCharType] char +# 2210| Value = [CharLiteral] 97 +# 2210| ValueCategory = prvalue +# 2211| getStmt(2): [BreakStmt] break; +# 2215| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2215| Type = [VoidType] void +# 2215| ValueCategory = prvalue +# 2215| getQualifier(): [VariableAccess] x +# 2215| Type = [Class] ClassWithDestructor +# 2215| ValueCategory = lvalue +# 2212| getStmt(3): [SwitchCase] default: +# 2213| getStmt(4): [ExprStmt] ExprStmt +# 2213| getExpr(): [FunctionCall] call to set_x # 2213| Type = [VoidType] void # 2213| ValueCategory = prvalue # 2213| getQualifier(): [VariableAccess] x # 2213| Type = [Class] ClassWithDestructor # 2213| ValueCategory = lvalue -# 2213| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor -# 2213| Type = [VoidType] void -# 2213| ValueCategory = prvalue -# 2213| getQualifier(): [VariableAccess] x -# 2213| Type = [Class] ClassWithDestructor -# 2213| ValueCategory = lvalue -# 2206| getExpr().getFullyConverted(): [CStyleCast] (int)... -# 2206| Conversion = [IntegralConversion] integral conversion -# 2206| Type = [IntType] int -# 2206| ValueCategory = prvalue -# 2213| getStmt(3): [LabelStmt] label ...: -# 2215| getStmt(4): [DeclStmt] declaration -# 2215| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x -# 2215| Type = [Class] ClassWithDestructor -# 2215| getVariable().getInitializer(): [Initializer] initializer for x -# 2215| getExpr(): [ConstructorCall] call to ClassWithDestructor +# 2213| getArgument(0): [CharLiteral] 98 +# 2213| Type = [PlainCharType] char +# 2213| Value = [CharLiteral] 98 +# 2213| ValueCategory = prvalue +# 2214| getStmt(5): [BreakStmt] break; +# 2215| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor # 2215| Type = [VoidType] void # 2215| ValueCategory = prvalue -# 2216| getStmt(5): [RangeBasedForStmt] for(...:...) ... -# 2216| getInitialization(): [DeclStmt] declaration -# 2216| getDeclarationEntry(0): [VariableDeclarationEntry] definition of ys -# 2216| Type = [ClassTemplateInstantiation,Struct] vector -# 2216| getVariable().getInitializer(): [Initializer] initializer for ys -# 2216| getExpr(): [ConstructorCall] call to vector -# 2216| Type = [VoidType] void -# 2216| ValueCategory = prvalue -# 2216| getArgument(0): [VariableAccess] x -# 2216| Type = [Class] ClassWithDestructor -# 2216| ValueCategory = prvalue(load) -# 2216| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor -# 2216| Type = [VoidType] void -# 2216| ValueCategory = prvalue -# 2216| getQualifier(): [ReuseExpr] reuse of temporary object -# 2216| Type = [Class] ClassWithDestructor -# 2216| ValueCategory = xvalue -# 2216| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object -# 2216| Type = [Class] ClassWithDestructor -# 2216| ValueCategory = lvalue -# 2216| getChild(1): [DeclStmt] declaration -# 2216| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of (__range) -# 2216| Type = [LValueReferenceType] vector & +# 2215| getQualifier(): [VariableAccess] x +# 2215| Type = [Class] ClassWithDestructor +# 2215| ValueCategory = lvalue +# 2215| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2215| Type = [VoidType] void +# 2215| ValueCategory = prvalue +# 2215| getQualifier(): [VariableAccess] x +# 2215| Type = [Class] ClassWithDestructor +# 2215| ValueCategory = lvalue +# 2208| getExpr().getFullyConverted(): [CStyleCast] (int)... +# 2208| Conversion = [IntegralConversion] integral conversion +# 2208| Type = [IntType] int +# 2208| ValueCategory = prvalue +# 2215| getStmt(3): [LabelStmt] label ...: +# 2217| getStmt(4): [DeclStmt] declaration +# 2217| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x +# 2217| Type = [Class] ClassWithDestructor +# 2217| getVariable().getInitializer(): [Initializer] initializer for x +# 2217| getExpr(): [ConstructorCall] call to ClassWithDestructor +# 2217| Type = [VoidType] void +# 2217| ValueCategory = prvalue +# 2218| getStmt(5): [RangeBasedForStmt] for(...:...) ... +# 2218| getInitialization(): [DeclStmt] declaration +# 2218| getDeclarationEntry(0): [VariableDeclarationEntry] definition of ys +# 2218| Type = [ClassTemplateInstantiation,Struct] vector +# 2218| getVariable().getInitializer(): [Initializer] initializer for ys +# 2218| getExpr(): [ConstructorCall] call to vector +# 2218| Type = [VoidType] void +# 2218| ValueCategory = prvalue +# 2218| getArgument(0): [VariableAccess] x +# 2218| Type = [Class] ClassWithDestructor +# 2218| ValueCategory = prvalue(load) +# 2218| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2218| Type = [VoidType] void +# 2218| ValueCategory = prvalue +# 2218| getQualifier(): [ReuseExpr] reuse of temporary object +# 2218| Type = [Class] ClassWithDestructor +# 2218| ValueCategory = xvalue +# 2218| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object +# 2218| Type = [Class] ClassWithDestructor +# 2218| ValueCategory = lvalue +# 2218| getChild(1): [DeclStmt] declaration +# 2218| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of (__range) +# 2218| Type = [LValueReferenceType] vector & #-----| getVariable().getInitializer(): [Initializer] initializer for (__range) -# 2216| getExpr(): [VariableAccess] ys -# 2216| Type = [ClassTemplateInstantiation,Struct] vector -# 2216| ValueCategory = lvalue -# 2216| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 2216| Type = [LValueReferenceType] vector & -# 2216| ValueCategory = prvalue -# 2216| getBeginEndDeclaration(): [DeclStmt] declaration -# 2216| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of (__begin) -# 2216| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2218| getExpr(): [VariableAccess] ys +# 2218| Type = [ClassTemplateInstantiation,Struct] vector +# 2218| ValueCategory = lvalue +# 2218| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 2218| Type = [LValueReferenceType] vector & +# 2218| ValueCategory = prvalue +# 2218| getBeginEndDeclaration(): [DeclStmt] declaration +# 2218| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of (__begin) +# 2218| Type = [NestedTypedefType,UsingAliasTypedefType] iterator #-----| getVariable().getInitializer(): [Initializer] initializer for (__begin) -# 2216| getExpr(): [FunctionCall] call to begin -# 2216| Type = [NestedTypedefType,UsingAliasTypedefType] iterator -# 2216| ValueCategory = prvalue -# 2216| getQualifier(): [VariableAccess] (__range) -# 2216| Type = [LValueReferenceType] vector & -# 2216| ValueCategory = prvalue(load) +# 2218| getExpr(): [FunctionCall] call to begin +# 2218| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2218| ValueCategory = prvalue +# 2218| getQualifier(): [VariableAccess] (__range) +# 2218| Type = [LValueReferenceType] vector & +# 2218| ValueCategory = prvalue(load) #-----| getQualifier().getFullyConverted(): [CStyleCast] (const vector)... #-----| Conversion = [GlvalueConversion] glvalue conversion #-----| Type = [SpecifiedType] const vector @@ -20063,15 +20095,15 @@ ir.cpp: #-----| getExpr(): [ReferenceDereferenceExpr] (reference dereference) #-----| Type = [ClassTemplateInstantiation,Struct] vector #-----| ValueCategory = lvalue -# 2216| getDeclarationEntry(1): [VariableDeclarationEntry] declaration of (__end) -# 2216| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2218| getDeclarationEntry(1): [VariableDeclarationEntry] declaration of (__end) +# 2218| Type = [NestedTypedefType,UsingAliasTypedefType] iterator #-----| getVariable().getInitializer(): [Initializer] initializer for (__end) -# 2216| getExpr(): [FunctionCall] call to end -# 2216| Type = [NestedTypedefType,UsingAliasTypedefType] iterator -# 2216| ValueCategory = prvalue -# 2216| getQualifier(): [VariableAccess] (__range) -# 2216| Type = [LValueReferenceType] vector & -# 2216| ValueCategory = prvalue(load) +# 2218| getExpr(): [FunctionCall] call to end +# 2218| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2218| ValueCategory = prvalue +# 2218| getQualifier(): [VariableAccess] (__range) +# 2218| Type = [LValueReferenceType] vector & +# 2218| ValueCategory = prvalue(load) #-----| getQualifier().getFullyConverted(): [CStyleCast] (const vector)... #-----| Conversion = [GlvalueConversion] glvalue conversion #-----| Type = [SpecifiedType] const vector @@ -20079,18 +20111,18 @@ ir.cpp: #-----| getExpr(): [ReferenceDereferenceExpr] (reference dereference) #-----| Type = [ClassTemplateInstantiation,Struct] vector #-----| ValueCategory = lvalue -# 2216| getCondition(): [FunctionCall] call to operator!= -# 2216| Type = [BoolType] bool -# 2216| ValueCategory = prvalue -# 2216| getQualifier(): [VariableAccess] (__begin) -# 2216| Type = [NestedTypedefType,UsingAliasTypedefType] iterator -# 2216| ValueCategory = lvalue -# 2216| getArgument(0): [ConstructorCall] call to iterator -# 2216| Type = [VoidType] void -# 2216| ValueCategory = prvalue -# 2216| getArgument(0): [VariableAccess] (__end) -# 2216| Type = [NestedTypedefType,UsingAliasTypedefType] iterator -# 2216| ValueCategory = lvalue +# 2218| getCondition(): [FunctionCall] call to operator!= +# 2218| Type = [BoolType] bool +# 2218| ValueCategory = prvalue +# 2218| getQualifier(): [VariableAccess] (__begin) +# 2218| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2218| ValueCategory = lvalue +# 2218| getArgument(0): [ConstructorCall] call to iterator +# 2218| Type = [VoidType] void +# 2218| ValueCategory = prvalue +# 2218| getArgument(0): [VariableAccess] (__end) +# 2218| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2218| ValueCategory = lvalue #-----| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) #-----| Type = [LValueReferenceType] const iterator & #-----| ValueCategory = prvalue @@ -20105,95 +20137,95 @@ ir.cpp: #-----| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object #-----| Type = [ClassTemplateInstantiation,Struct] iterator #-----| ValueCategory = lvalue -# 2216| getUpdate(): [FunctionCall] call to operator++ -# 2216| Type = [LValueReferenceType] iterator & -# 2216| ValueCategory = prvalue -# 2216| getQualifier(): [VariableAccess] (__begin) -# 2216| Type = [NestedTypedefType,UsingAliasTypedefType] iterator -# 2216| ValueCategory = lvalue -# 2216| getChild(5): [DeclStmt] declaration -# 2216| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y -# 2216| Type = [Class] ClassWithDestructor -# 2216| getVariable().getInitializer(): [Initializer] initializer for y -# 2216| getExpr(): [OverloadedPointerDereferenceExpr] call to operator* -# 2216| Type = [LValueReferenceType] ClassWithDestructor & -# 2216| ValueCategory = prvalue -# 2216| getQualifier(): [VariableAccess] (__begin) -# 2216| Type = [NestedTypedefType,UsingAliasTypedefType] iterator -# 2216| ValueCategory = lvalue +# 2218| getUpdate(): [FunctionCall] call to operator++ +# 2218| Type = [LValueReferenceType] iterator & +# 2218| ValueCategory = prvalue +# 2218| getQualifier(): [VariableAccess] (__begin) +# 2218| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2218| ValueCategory = lvalue +# 2218| getChild(5): [DeclStmt] declaration +# 2218| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y +# 2218| Type = [Class] ClassWithDestructor +# 2218| getVariable().getInitializer(): [Initializer] initializer for y +# 2218| getExpr(): [OverloadedPointerDereferenceExpr] call to operator* +# 2218| Type = [LValueReferenceType] ClassWithDestructor & +# 2218| ValueCategory = prvalue +# 2218| getQualifier(): [VariableAccess] (__begin) +# 2218| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2218| ValueCategory = lvalue #-----| getQualifier().getFullyConverted(): [CStyleCast] (const iterator)... #-----| Conversion = [GlvalueConversion] glvalue conversion #-----| Type = [SpecifiedType] const iterator #-----| ValueCategory = lvalue -# 2216| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 2216| Type = [Class] ClassWithDestructor -# 2216| ValueCategory = prvalue(load) -# 2217| getStmt(): [ExprStmt] ExprStmt -# 2217| getExpr(): [FunctionCall] call to set_x -# 2217| Type = [VoidType] void -# 2217| ValueCategory = prvalue -# 2217| getQualifier(): [VariableAccess] y -# 2217| Type = [Class] ClassWithDestructor -# 2217| ValueCategory = lvalue -# 2217| getArgument(0): [CharLiteral] 97 -# 2217| Type = [PlainCharType] char -# 2217| Value = [CharLiteral] 97 -# 2217| ValueCategory = prvalue -# 2216| getImplicitDestructorCall(0): [DestructorCall] call to ~vector -# 2216| Type = [VoidType] void -# 2216| ValueCategory = prvalue -# 2216| getQualifier(): [VariableAccess] ys -# 2216| Type = [ClassTemplateInstantiation,Struct] vector -# 2216| ValueCategory = lvalue -# 2216| getUpdate().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 2216| Type = [ClassTemplateInstantiation,Struct] iterator -# 2216| ValueCategory = lvalue -# 2216| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor -# 2216| Type = [VoidType] void -# 2216| ValueCategory = prvalue -# 2216| getQualifier(): [VariableAccess] y -# 2216| Type = [Class] ClassWithDestructor -# 2216| ValueCategory = lvalue -# 2219| getStmt(6): [RangeBasedForStmt] for(...:...) ... -# 2219| getInitialization(): [DeclStmt] declaration -# 2219| getDeclarationEntry(0): [VariableDeclarationEntry] definition of ys -# 2219| Type = [ClassTemplateInstantiation,Struct] vector -# 2219| getVariable().getInitializer(): [Initializer] initializer for ys -# 2219| getExpr(): [ConstructorCall] call to vector -# 2219| Type = [VoidType] void -# 2219| ValueCategory = prvalue -# 2219| getArgument(0): [VariableAccess] x -# 2219| Type = [Class] ClassWithDestructor -# 2219| ValueCategory = prvalue(load) -# 2219| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor -# 2219| Type = [VoidType] void -# 2219| ValueCategory = prvalue -# 2219| getQualifier(): [ReuseExpr] reuse of temporary object -# 2219| Type = [Class] ClassWithDestructor -# 2219| ValueCategory = xvalue -# 2219| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object -# 2219| Type = [Class] ClassWithDestructor -# 2219| ValueCategory = lvalue -# 2219| getChild(1): [DeclStmt] declaration -# 2219| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of (__range) -# 2219| Type = [LValueReferenceType] vector & +# 2218| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 2218| Type = [Class] ClassWithDestructor +# 2218| ValueCategory = prvalue(load) +# 2219| getStmt(): [ExprStmt] ExprStmt +# 2219| getExpr(): [FunctionCall] call to set_x +# 2219| Type = [VoidType] void +# 2219| ValueCategory = prvalue +# 2219| getQualifier(): [VariableAccess] y +# 2219| Type = [Class] ClassWithDestructor +# 2219| ValueCategory = lvalue +# 2219| getArgument(0): [CharLiteral] 97 +# 2219| Type = [PlainCharType] char +# 2219| Value = [CharLiteral] 97 +# 2219| ValueCategory = prvalue +# 2218| getImplicitDestructorCall(0): [DestructorCall] call to ~vector +# 2218| Type = [VoidType] void +# 2218| ValueCategory = prvalue +# 2218| getQualifier(): [VariableAccess] ys +# 2218| Type = [ClassTemplateInstantiation,Struct] vector +# 2218| ValueCategory = lvalue +# 2218| getUpdate().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 2218| Type = [ClassTemplateInstantiation,Struct] iterator +# 2218| ValueCategory = lvalue +# 2218| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2218| Type = [VoidType] void +# 2218| ValueCategory = prvalue +# 2218| getQualifier(): [VariableAccess] y +# 2218| Type = [Class] ClassWithDestructor +# 2218| ValueCategory = lvalue +# 2221| getStmt(6): [RangeBasedForStmt] for(...:...) ... +# 2221| getInitialization(): [DeclStmt] declaration +# 2221| getDeclarationEntry(0): [VariableDeclarationEntry] definition of ys +# 2221| Type = [ClassTemplateInstantiation,Struct] vector +# 2221| getVariable().getInitializer(): [Initializer] initializer for ys +# 2221| getExpr(): [ConstructorCall] call to vector +# 2221| Type = [VoidType] void +# 2221| ValueCategory = prvalue +# 2221| getArgument(0): [VariableAccess] x +# 2221| Type = [Class] ClassWithDestructor +# 2221| ValueCategory = prvalue(load) +# 2221| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2221| Type = [VoidType] void +# 2221| ValueCategory = prvalue +# 2221| getQualifier(): [ReuseExpr] reuse of temporary object +# 2221| Type = [Class] ClassWithDestructor +# 2221| ValueCategory = xvalue +# 2221| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object +# 2221| Type = [Class] ClassWithDestructor +# 2221| ValueCategory = lvalue +# 2221| getChild(1): [DeclStmt] declaration +# 2221| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of (__range) +# 2221| Type = [LValueReferenceType] vector & #-----| getVariable().getInitializer(): [Initializer] initializer for (__range) -# 2219| getExpr(): [VariableAccess] ys -# 2219| Type = [ClassTemplateInstantiation,Struct] vector -# 2219| ValueCategory = lvalue -# 2219| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 2219| Type = [LValueReferenceType] vector & -# 2219| ValueCategory = prvalue -# 2219| getBeginEndDeclaration(): [DeclStmt] declaration -# 2219| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of (__begin) -# 2219| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2221| getExpr(): [VariableAccess] ys +# 2221| Type = [ClassTemplateInstantiation,Struct] vector +# 2221| ValueCategory = lvalue +# 2221| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 2221| Type = [LValueReferenceType] vector & +# 2221| ValueCategory = prvalue +# 2221| getBeginEndDeclaration(): [DeclStmt] declaration +# 2221| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of (__begin) +# 2221| Type = [NestedTypedefType,UsingAliasTypedefType] iterator #-----| getVariable().getInitializer(): [Initializer] initializer for (__begin) -# 2219| getExpr(): [FunctionCall] call to begin -# 2219| Type = [NestedTypedefType,UsingAliasTypedefType] iterator -# 2219| ValueCategory = prvalue -# 2219| getQualifier(): [VariableAccess] (__range) -# 2219| Type = [LValueReferenceType] vector & -# 2219| ValueCategory = prvalue(load) +# 2221| getExpr(): [FunctionCall] call to begin +# 2221| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2221| ValueCategory = prvalue +# 2221| getQualifier(): [VariableAccess] (__range) +# 2221| Type = [LValueReferenceType] vector & +# 2221| ValueCategory = prvalue(load) #-----| getQualifier().getFullyConverted(): [CStyleCast] (const vector)... #-----| Conversion = [GlvalueConversion] glvalue conversion #-----| Type = [SpecifiedType] const vector @@ -20201,15 +20233,15 @@ ir.cpp: #-----| getExpr(): [ReferenceDereferenceExpr] (reference dereference) #-----| Type = [ClassTemplateInstantiation,Struct] vector #-----| ValueCategory = lvalue -# 2219| getDeclarationEntry(1): [VariableDeclarationEntry] declaration of (__end) -# 2219| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2221| getDeclarationEntry(1): [VariableDeclarationEntry] declaration of (__end) +# 2221| Type = [NestedTypedefType,UsingAliasTypedefType] iterator #-----| getVariable().getInitializer(): [Initializer] initializer for (__end) -# 2219| getExpr(): [FunctionCall] call to end -# 2219| Type = [NestedTypedefType,UsingAliasTypedefType] iterator -# 2219| ValueCategory = prvalue -# 2219| getQualifier(): [VariableAccess] (__range) -# 2219| Type = [LValueReferenceType] vector & -# 2219| ValueCategory = prvalue(load) +# 2221| getExpr(): [FunctionCall] call to end +# 2221| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2221| ValueCategory = prvalue +# 2221| getQualifier(): [VariableAccess] (__range) +# 2221| Type = [LValueReferenceType] vector & +# 2221| ValueCategory = prvalue(load) #-----| getQualifier().getFullyConverted(): [CStyleCast] (const vector)... #-----| Conversion = [GlvalueConversion] glvalue conversion #-----| Type = [SpecifiedType] const vector @@ -20217,18 +20249,18 @@ ir.cpp: #-----| getExpr(): [ReferenceDereferenceExpr] (reference dereference) #-----| Type = [ClassTemplateInstantiation,Struct] vector #-----| ValueCategory = lvalue -# 2219| getCondition(): [FunctionCall] call to operator!= -# 2219| Type = [BoolType] bool -# 2219| ValueCategory = prvalue -# 2219| getQualifier(): [VariableAccess] (__begin) -# 2219| Type = [NestedTypedefType,UsingAliasTypedefType] iterator -# 2219| ValueCategory = lvalue -# 2219| getArgument(0): [ConstructorCall] call to iterator -# 2219| Type = [VoidType] void -# 2219| ValueCategory = prvalue -# 2219| getArgument(0): [VariableAccess] (__end) -# 2219| Type = [NestedTypedefType,UsingAliasTypedefType] iterator -# 2219| ValueCategory = lvalue +# 2221| getCondition(): [FunctionCall] call to operator!= +# 2221| Type = [BoolType] bool +# 2221| ValueCategory = prvalue +# 2221| getQualifier(): [VariableAccess] (__begin) +# 2221| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2221| ValueCategory = lvalue +# 2221| getArgument(0): [ConstructorCall] call to iterator +# 2221| Type = [VoidType] void +# 2221| ValueCategory = prvalue +# 2221| getArgument(0): [VariableAccess] (__end) +# 2221| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2221| ValueCategory = lvalue #-----| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) #-----| Type = [LValueReferenceType] const iterator & #-----| ValueCategory = prvalue @@ -20243,130 +20275,130 @@ ir.cpp: #-----| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object #-----| Type = [ClassTemplateInstantiation,Struct] iterator #-----| ValueCategory = lvalue -# 2219| getUpdate(): [FunctionCall] call to operator++ -# 2219| Type = [LValueReferenceType] iterator & -# 2219| ValueCategory = prvalue -# 2219| getQualifier(): [VariableAccess] (__begin) -# 2219| Type = [NestedTypedefType,UsingAliasTypedefType] iterator -# 2219| ValueCategory = lvalue -# 2219| getChild(5): [DeclStmt] declaration -# 2219| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y -# 2219| Type = [Class] ClassWithDestructor -# 2219| getVariable().getInitializer(): [Initializer] initializer for y -# 2219| getExpr(): [OverloadedPointerDereferenceExpr] call to operator* -# 2219| Type = [LValueReferenceType] ClassWithDestructor & -# 2219| ValueCategory = prvalue -# 2219| getQualifier(): [VariableAccess] (__begin) -# 2219| Type = [NestedTypedefType,UsingAliasTypedefType] iterator -# 2219| ValueCategory = lvalue +# 2221| getUpdate(): [FunctionCall] call to operator++ +# 2221| Type = [LValueReferenceType] iterator & +# 2221| ValueCategory = prvalue +# 2221| getQualifier(): [VariableAccess] (__begin) +# 2221| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2221| ValueCategory = lvalue +# 2221| getChild(5): [DeclStmt] declaration +# 2221| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y +# 2221| Type = [Class] ClassWithDestructor +# 2221| getVariable().getInitializer(): [Initializer] initializer for y +# 2221| getExpr(): [OverloadedPointerDereferenceExpr] call to operator* +# 2221| Type = [LValueReferenceType] ClassWithDestructor & +# 2221| ValueCategory = prvalue +# 2221| getQualifier(): [VariableAccess] (__begin) +# 2221| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2221| ValueCategory = lvalue #-----| getQualifier().getFullyConverted(): [CStyleCast] (const iterator)... #-----| Conversion = [GlvalueConversion] glvalue conversion #-----| Type = [SpecifiedType] const iterator #-----| ValueCategory = lvalue -# 2219| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 2219| Type = [Class] ClassWithDestructor -# 2219| ValueCategory = prvalue(load) -# 2219| getStmt(): [BlockStmt] { ... } -# 2220| getStmt(0): [ExprStmt] ExprStmt -# 2220| getExpr(): [FunctionCall] call to set_x -# 2220| Type = [VoidType] void -# 2220| ValueCategory = prvalue -# 2220| getQualifier(): [VariableAccess] y -# 2220| Type = [Class] ClassWithDestructor -# 2220| ValueCategory = lvalue -# 2220| getArgument(0): [CharLiteral] 97 -# 2220| Type = [PlainCharType] char -# 2220| Value = [CharLiteral] 97 -# 2220| ValueCategory = prvalue -# 2221| getStmt(1): [IfStmt] if (...) ... -# 2221| getCondition(): [EQExpr] ... == ... -# 2221| Type = [BoolType] bool -# 2221| ValueCategory = prvalue -# 2221| getLeftOperand(): [FunctionCall] call to get_x -# 2221| Type = [PlainCharType] char +# 2221| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 2221| Type = [Class] ClassWithDestructor +# 2221| ValueCategory = prvalue(load) +# 2221| getStmt(): [BlockStmt] { ... } +# 2222| getStmt(0): [ExprStmt] ExprStmt +# 2222| getExpr(): [FunctionCall] call to set_x +# 2222| Type = [VoidType] void +# 2222| ValueCategory = prvalue +# 2222| getQualifier(): [VariableAccess] y +# 2222| Type = [Class] ClassWithDestructor +# 2222| ValueCategory = lvalue +# 2222| getArgument(0): [CharLiteral] 97 +# 2222| Type = [PlainCharType] char +# 2222| Value = [CharLiteral] 97 +# 2222| ValueCategory = prvalue +# 2223| getStmt(1): [IfStmt] if (...) ... +# 2223| getCondition(): [EQExpr] ... == ... +# 2223| Type = [BoolType] bool +# 2223| ValueCategory = prvalue +# 2223| getLeftOperand(): [FunctionCall] call to get_x +# 2223| Type = [PlainCharType] char +# 2223| ValueCategory = prvalue +# 2223| getQualifier(): [VariableAccess] y +# 2223| Type = [Class] ClassWithDestructor +# 2223| ValueCategory = lvalue +# 2223| getRightOperand(): [CharLiteral] 98 +# 2223| Type = [PlainCharType] char +# 2223| Value = [CharLiteral] 98 +# 2223| ValueCategory = prvalue +# 2223| getLeftOperand().getFullyConverted(): [CStyleCast] (int)... +# 2223| Conversion = [IntegralConversion] integral conversion +# 2223| Type = [IntType] int +# 2223| ValueCategory = prvalue +# 2223| getRightOperand().getFullyConverted(): [CStyleCast] (int)... +# 2223| Conversion = [IntegralConversion] integral conversion +# 2223| Type = [IntType] int +# 2223| Value = [CStyleCast] 98 +# 2223| ValueCategory = prvalue +# 2224| getThen(): [ReturnStmt] return ... +# 2221| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2221| Type = [VoidType] void # 2221| ValueCategory = prvalue # 2221| getQualifier(): [VariableAccess] y # 2221| Type = [Class] ClassWithDestructor # 2221| ValueCategory = lvalue -# 2221| getRightOperand(): [CharLiteral] 98 -# 2221| Type = [PlainCharType] char -# 2221| Value = [CharLiteral] 98 -# 2221| ValueCategory = prvalue -# 2221| getLeftOperand().getFullyConverted(): [CStyleCast] (int)... -# 2221| Conversion = [IntegralConversion] integral conversion -# 2221| Type = [IntType] int -# 2221| ValueCategory = prvalue -# 2221| getRightOperand().getFullyConverted(): [CStyleCast] (int)... -# 2221| Conversion = [IntegralConversion] integral conversion -# 2221| Type = [IntType] int -# 2221| Value = [CStyleCast] 98 +# 2221| getImplicitDestructorCall(1): [DestructorCall] call to ~vector +# 2221| Type = [VoidType] void # 2221| ValueCategory = prvalue -# 2222| getThen(): [ReturnStmt] return ... -# 2219| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor -# 2219| Type = [VoidType] void -# 2219| ValueCategory = prvalue -# 2219| getQualifier(): [VariableAccess] y -# 2219| Type = [Class] ClassWithDestructor -# 2219| ValueCategory = lvalue -# 2219| getImplicitDestructorCall(1): [DestructorCall] call to ~vector -# 2219| Type = [VoidType] void -# 2219| ValueCategory = prvalue -# 2219| getQualifier(): [VariableAccess] ys -# 2219| Type = [ClassTemplateInstantiation,Struct] vector -# 2219| ValueCategory = lvalue -# 2234| getImplicitDestructorCall(2): [DestructorCall] call to ~ClassWithDestructor -# 2234| Type = [VoidType] void -# 2234| ValueCategory = prvalue -# 2234| getQualifier(): [VariableAccess] x -# 2234| Type = [Class] ClassWithDestructor -# 2234| ValueCategory = lvalue -# 2219| getImplicitDestructorCall(0): [DestructorCall] call to ~vector -# 2219| Type = [VoidType] void -# 2219| ValueCategory = prvalue -# 2219| getQualifier(): [VariableAccess] ys -# 2219| Type = [ClassTemplateInstantiation,Struct] vector -# 2219| ValueCategory = lvalue -# 2219| getUpdate().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 2219| Type = [ClassTemplateInstantiation,Struct] iterator -# 2219| ValueCategory = lvalue -# 2219| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor -# 2219| Type = [VoidType] void -# 2219| ValueCategory = prvalue -# 2219| getQualifier(): [VariableAccess] y -# 2219| Type = [Class] ClassWithDestructor -# 2219| ValueCategory = lvalue -# 2225| getStmt(7): [RangeBasedForStmt] for(...:...) ... -# 2225| getInitialization(): [DeclStmt] declaration -# 2225| getDeclarationEntry(0): [VariableDeclarationEntry] definition of ys -# 2225| Type = [ClassTemplateInstantiation,Struct] vector -# 2225| getVariable().getInitializer(): [Initializer] initializer for ys -# 2225| getExpr(): [ConstructorCall] call to vector -# 2225| Type = [VoidType] void -# 2225| ValueCategory = prvalue -# 2225| getArgument(0): [Literal] 1 -# 2225| Type = [IntType] int -# 2225| Value = [Literal] 1 -# 2225| ValueCategory = prvalue -# 2225| getChild(1): [DeclStmt] declaration -# 2225| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of (__range) -# 2225| Type = [LValueReferenceType] vector & +# 2221| getQualifier(): [VariableAccess] ys +# 2221| Type = [ClassTemplateInstantiation,Struct] vector +# 2221| ValueCategory = lvalue +# 2236| getImplicitDestructorCall(2): [DestructorCall] call to ~ClassWithDestructor +# 2236| Type = [VoidType] void +# 2236| ValueCategory = prvalue +# 2236| getQualifier(): [VariableAccess] x +# 2236| Type = [Class] ClassWithDestructor +# 2236| ValueCategory = lvalue +# 2221| getImplicitDestructorCall(0): [DestructorCall] call to ~vector +# 2221| Type = [VoidType] void +# 2221| ValueCategory = prvalue +# 2221| getQualifier(): [VariableAccess] ys +# 2221| Type = [ClassTemplateInstantiation,Struct] vector +# 2221| ValueCategory = lvalue +# 2221| getUpdate().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 2221| Type = [ClassTemplateInstantiation,Struct] iterator +# 2221| ValueCategory = lvalue +# 2221| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2221| Type = [VoidType] void +# 2221| ValueCategory = prvalue +# 2221| getQualifier(): [VariableAccess] y +# 2221| Type = [Class] ClassWithDestructor +# 2221| ValueCategory = lvalue +# 2227| getStmt(7): [RangeBasedForStmt] for(...:...) ... +# 2227| getInitialization(): [DeclStmt] declaration +# 2227| getDeclarationEntry(0): [VariableDeclarationEntry] definition of ys +# 2227| Type = [ClassTemplateInstantiation,Struct] vector +# 2227| getVariable().getInitializer(): [Initializer] initializer for ys +# 2227| getExpr(): [ConstructorCall] call to vector +# 2227| Type = [VoidType] void +# 2227| ValueCategory = prvalue +# 2227| getArgument(0): [Literal] 1 +# 2227| Type = [IntType] int +# 2227| Value = [Literal] 1 +# 2227| ValueCategory = prvalue +# 2227| getChild(1): [DeclStmt] declaration +# 2227| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of (__range) +# 2227| Type = [LValueReferenceType] vector & #-----| getVariable().getInitializer(): [Initializer] initializer for (__range) -# 2225| getExpr(): [VariableAccess] ys -# 2225| Type = [ClassTemplateInstantiation,Struct] vector -# 2225| ValueCategory = lvalue -# 2225| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 2225| Type = [LValueReferenceType] vector & -# 2225| ValueCategory = prvalue -# 2225| getBeginEndDeclaration(): [DeclStmt] declaration -# 2225| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of (__begin) -# 2225| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2227| getExpr(): [VariableAccess] ys +# 2227| Type = [ClassTemplateInstantiation,Struct] vector +# 2227| ValueCategory = lvalue +# 2227| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 2227| Type = [LValueReferenceType] vector & +# 2227| ValueCategory = prvalue +# 2227| getBeginEndDeclaration(): [DeclStmt] declaration +# 2227| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of (__begin) +# 2227| Type = [NestedTypedefType,UsingAliasTypedefType] iterator #-----| getVariable().getInitializer(): [Initializer] initializer for (__begin) -# 2225| getExpr(): [FunctionCall] call to begin -# 2225| Type = [NestedTypedefType,UsingAliasTypedefType] iterator -# 2225| ValueCategory = prvalue -# 2225| getQualifier(): [VariableAccess] (__range) -# 2225| Type = [LValueReferenceType] vector & -# 2225| ValueCategory = prvalue(load) +# 2227| getExpr(): [FunctionCall] call to begin +# 2227| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2227| ValueCategory = prvalue +# 2227| getQualifier(): [VariableAccess] (__range) +# 2227| Type = [LValueReferenceType] vector & +# 2227| ValueCategory = prvalue(load) #-----| getQualifier().getFullyConverted(): [CStyleCast] (const vector)... #-----| Conversion = [GlvalueConversion] glvalue conversion #-----| Type = [SpecifiedType] const vector @@ -20374,15 +20406,15 @@ ir.cpp: #-----| getExpr(): [ReferenceDereferenceExpr] (reference dereference) #-----| Type = [ClassTemplateInstantiation,Struct] vector #-----| ValueCategory = lvalue -# 2225| getDeclarationEntry(1): [VariableDeclarationEntry] declaration of (__end) -# 2225| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2227| getDeclarationEntry(1): [VariableDeclarationEntry] declaration of (__end) +# 2227| Type = [NestedTypedefType,UsingAliasTypedefType] iterator #-----| getVariable().getInitializer(): [Initializer] initializer for (__end) -# 2225| getExpr(): [FunctionCall] call to end -# 2225| Type = [NestedTypedefType,UsingAliasTypedefType] iterator -# 2225| ValueCategory = prvalue -# 2225| getQualifier(): [VariableAccess] (__range) -# 2225| Type = [LValueReferenceType] vector & -# 2225| ValueCategory = prvalue(load) +# 2227| getExpr(): [FunctionCall] call to end +# 2227| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2227| ValueCategory = prvalue +# 2227| getQualifier(): [VariableAccess] (__range) +# 2227| Type = [LValueReferenceType] vector & +# 2227| ValueCategory = prvalue(load) #-----| getQualifier().getFullyConverted(): [CStyleCast] (const vector)... #-----| Conversion = [GlvalueConversion] glvalue conversion #-----| Type = [SpecifiedType] const vector @@ -20390,18 +20422,18 @@ ir.cpp: #-----| getExpr(): [ReferenceDereferenceExpr] (reference dereference) #-----| Type = [ClassTemplateInstantiation,Struct] vector #-----| ValueCategory = lvalue -# 2225| getCondition(): [FunctionCall] call to operator!= -# 2225| Type = [BoolType] bool -# 2225| ValueCategory = prvalue -# 2225| getQualifier(): [VariableAccess] (__begin) -# 2225| Type = [NestedTypedefType,UsingAliasTypedefType] iterator -# 2225| ValueCategory = lvalue -# 2225| getArgument(0): [ConstructorCall] call to iterator -# 2225| Type = [VoidType] void -# 2225| ValueCategory = prvalue -# 2225| getArgument(0): [VariableAccess] (__end) -# 2225| Type = [NestedTypedefType,UsingAliasTypedefType] iterator -# 2225| ValueCategory = lvalue +# 2227| getCondition(): [FunctionCall] call to operator!= +# 2227| Type = [BoolType] bool +# 2227| ValueCategory = prvalue +# 2227| getQualifier(): [VariableAccess] (__begin) +# 2227| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2227| ValueCategory = lvalue +# 2227| getArgument(0): [ConstructorCall] call to iterator +# 2227| Type = [VoidType] void +# 2227| ValueCategory = prvalue +# 2227| getArgument(0): [VariableAccess] (__end) +# 2227| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2227| ValueCategory = lvalue #-----| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) #-----| Type = [LValueReferenceType] const iterator & #-----| ValueCategory = prvalue @@ -20416,103 +20448,103 @@ ir.cpp: #-----| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object #-----| Type = [ClassTemplateInstantiation,Struct] iterator #-----| ValueCategory = lvalue -# 2225| getUpdate(): [FunctionCall] call to operator++ -# 2225| Type = [LValueReferenceType] iterator & -# 2225| ValueCategory = prvalue -# 2225| getQualifier(): [VariableAccess] (__begin) -# 2225| Type = [NestedTypedefType,UsingAliasTypedefType] iterator -# 2225| ValueCategory = lvalue -# 2225| getChild(5): [DeclStmt] declaration -# 2225| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y -# 2225| Type = [IntType] int -# 2225| getVariable().getInitializer(): [Initializer] initializer for y -# 2225| getExpr(): [OverloadedPointerDereferenceExpr] call to operator* -# 2225| Type = [LValueReferenceType] int & -# 2225| ValueCategory = prvalue -# 2225| getQualifier(): [VariableAccess] (__begin) -# 2225| Type = [NestedTypedefType,UsingAliasTypedefType] iterator -# 2225| ValueCategory = lvalue +# 2227| getUpdate(): [FunctionCall] call to operator++ +# 2227| Type = [LValueReferenceType] iterator & +# 2227| ValueCategory = prvalue +# 2227| getQualifier(): [VariableAccess] (__begin) +# 2227| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2227| ValueCategory = lvalue +# 2227| getChild(5): [DeclStmt] declaration +# 2227| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y +# 2227| Type = [IntType] int +# 2227| getVariable().getInitializer(): [Initializer] initializer for y +# 2227| getExpr(): [OverloadedPointerDereferenceExpr] call to operator* +# 2227| Type = [LValueReferenceType] int & +# 2227| ValueCategory = prvalue +# 2227| getQualifier(): [VariableAccess] (__begin) +# 2227| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2227| ValueCategory = lvalue #-----| getQualifier().getFullyConverted(): [CStyleCast] (const iterator)... #-----| Conversion = [GlvalueConversion] glvalue conversion #-----| Type = [SpecifiedType] const iterator #-----| ValueCategory = lvalue -# 2225| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 2225| Type = [IntType] int -# 2225| ValueCategory = prvalue(load) -# 2225| getStmt(): [BlockStmt] { ... } -# 2226| getStmt(0): [IfStmt] if (...) ... -# 2226| getCondition(): [EQExpr] ... == ... -# 2226| Type = [BoolType] bool -# 2226| ValueCategory = prvalue -# 2226| getLeftOperand(): [VariableAccess] y -# 2226| Type = [IntType] int -# 2226| ValueCategory = prvalue(load) -# 2226| getRightOperand(): [Literal] 1 -# 2226| Type = [IntType] int -# 2226| Value = [Literal] 1 -# 2226| ValueCategory = prvalue -# 2227| getThen(): [ReturnStmt] return ... -# 2225| getImplicitDestructorCall(0): [DestructorCall] call to ~vector -# 2225| Type = [VoidType] void -# 2225| ValueCategory = prvalue -# 2225| getQualifier(): [VariableAccess] ys -# 2225| Type = [ClassTemplateInstantiation,Struct] vector -# 2225| ValueCategory = lvalue -# 2234| getImplicitDestructorCall(1): [DestructorCall] call to ~ClassWithDestructor -# 2234| Type = [VoidType] void -# 2234| ValueCategory = prvalue -# 2234| getQualifier(): [VariableAccess] x -# 2234| Type = [Class] ClassWithDestructor -# 2234| ValueCategory = lvalue -# 2225| getImplicitDestructorCall(0): [DestructorCall] call to ~vector -# 2225| Type = [VoidType] void -# 2225| ValueCategory = prvalue -# 2225| getQualifier(): [VariableAccess] ys -# 2225| Type = [ClassTemplateInstantiation,Struct] vector -# 2225| ValueCategory = lvalue -# 2225| getUpdate().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 2225| Type = [ClassTemplateInstantiation,Struct] iterator -# 2225| ValueCategory = lvalue -# 2230| getStmt(8): [RangeBasedForStmt] for(...:...) ... -# 2230| getInitialization(): [DeclStmt] declaration -# 2230| getDeclarationEntry(0): [VariableDeclarationEntry] definition of ys -# 2230| Type = [ClassTemplateInstantiation,Struct] vector -# 2230| getVariable().getInitializer(): [Initializer] initializer for ys -# 2230| getExpr(): [ConstructorCall] call to vector -# 2230| Type = [VoidType] void -# 2230| ValueCategory = prvalue -# 2230| getArgument(0): [VariableAccess] x -# 2230| Type = [Class] ClassWithDestructor -# 2230| ValueCategory = prvalue(load) -# 2230| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor -# 2230| Type = [VoidType] void -# 2230| ValueCategory = prvalue -# 2230| getQualifier(): [ReuseExpr] reuse of temporary object -# 2230| Type = [Class] ClassWithDestructor -# 2230| ValueCategory = xvalue -# 2230| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object -# 2230| Type = [Class] ClassWithDestructor -# 2230| ValueCategory = lvalue -# 2230| getChild(1): [DeclStmt] declaration -# 2230| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of (__range) -# 2230| Type = [LValueReferenceType] vector & +# 2227| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 2227| Type = [IntType] int +# 2227| ValueCategory = prvalue(load) +# 2227| getStmt(): [BlockStmt] { ... } +# 2228| getStmt(0): [IfStmt] if (...) ... +# 2228| getCondition(): [EQExpr] ... == ... +# 2228| Type = [BoolType] bool +# 2228| ValueCategory = prvalue +# 2228| getLeftOperand(): [VariableAccess] y +# 2228| Type = [IntType] int +# 2228| ValueCategory = prvalue(load) +# 2228| getRightOperand(): [Literal] 1 +# 2228| Type = [IntType] int +# 2228| Value = [Literal] 1 +# 2228| ValueCategory = prvalue +# 2229| getThen(): [ReturnStmt] return ... +# 2227| getImplicitDestructorCall(0): [DestructorCall] call to ~vector +# 2227| Type = [VoidType] void +# 2227| ValueCategory = prvalue +# 2227| getQualifier(): [VariableAccess] ys +# 2227| Type = [ClassTemplateInstantiation,Struct] vector +# 2227| ValueCategory = lvalue +# 2236| getImplicitDestructorCall(1): [DestructorCall] call to ~ClassWithDestructor +# 2236| Type = [VoidType] void +# 2236| ValueCategory = prvalue +# 2236| getQualifier(): [VariableAccess] x +# 2236| Type = [Class] ClassWithDestructor +# 2236| ValueCategory = lvalue +# 2227| getImplicitDestructorCall(0): [DestructorCall] call to ~vector +# 2227| Type = [VoidType] void +# 2227| ValueCategory = prvalue +# 2227| getQualifier(): [VariableAccess] ys +# 2227| Type = [ClassTemplateInstantiation,Struct] vector +# 2227| ValueCategory = lvalue +# 2227| getUpdate().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 2227| Type = [ClassTemplateInstantiation,Struct] iterator +# 2227| ValueCategory = lvalue +# 2232| getStmt(8): [RangeBasedForStmt] for(...:...) ... +# 2232| getInitialization(): [DeclStmt] declaration +# 2232| getDeclarationEntry(0): [VariableDeclarationEntry] definition of ys +# 2232| Type = [ClassTemplateInstantiation,Struct] vector +# 2232| getVariable().getInitializer(): [Initializer] initializer for ys +# 2232| getExpr(): [ConstructorCall] call to vector +# 2232| Type = [VoidType] void +# 2232| ValueCategory = prvalue +# 2232| getArgument(0): [VariableAccess] x +# 2232| Type = [Class] ClassWithDestructor +# 2232| ValueCategory = prvalue(load) +# 2232| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2232| Type = [VoidType] void +# 2232| ValueCategory = prvalue +# 2232| getQualifier(): [ReuseExpr] reuse of temporary object +# 2232| Type = [Class] ClassWithDestructor +# 2232| ValueCategory = xvalue +# 2232| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object +# 2232| Type = [Class] ClassWithDestructor +# 2232| ValueCategory = lvalue +# 2232| getChild(1): [DeclStmt] declaration +# 2232| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of (__range) +# 2232| Type = [LValueReferenceType] vector & #-----| getVariable().getInitializer(): [Initializer] initializer for (__range) -# 2230| getExpr(): [VariableAccess] ys -# 2230| Type = [ClassTemplateInstantiation,Struct] vector -# 2230| ValueCategory = lvalue -# 2230| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 2230| Type = [LValueReferenceType] vector & -# 2230| ValueCategory = prvalue -# 2230| getBeginEndDeclaration(): [DeclStmt] declaration -# 2230| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of (__begin) -# 2230| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2232| getExpr(): [VariableAccess] ys +# 2232| Type = [ClassTemplateInstantiation,Struct] vector +# 2232| ValueCategory = lvalue +# 2232| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 2232| Type = [LValueReferenceType] vector & +# 2232| ValueCategory = prvalue +# 2232| getBeginEndDeclaration(): [DeclStmt] declaration +# 2232| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of (__begin) +# 2232| Type = [NestedTypedefType,UsingAliasTypedefType] iterator #-----| getVariable().getInitializer(): [Initializer] initializer for (__begin) -# 2230| getExpr(): [FunctionCall] call to begin -# 2230| Type = [NestedTypedefType,UsingAliasTypedefType] iterator -# 2230| ValueCategory = prvalue -# 2230| getQualifier(): [VariableAccess] (__range) -# 2230| Type = [LValueReferenceType] vector & -# 2230| ValueCategory = prvalue(load) +# 2232| getExpr(): [FunctionCall] call to begin +# 2232| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2232| ValueCategory = prvalue +# 2232| getQualifier(): [VariableAccess] (__range) +# 2232| Type = [LValueReferenceType] vector & +# 2232| ValueCategory = prvalue(load) #-----| getQualifier().getFullyConverted(): [CStyleCast] (const vector)... #-----| Conversion = [GlvalueConversion] glvalue conversion #-----| Type = [SpecifiedType] const vector @@ -20520,15 +20552,15 @@ ir.cpp: #-----| getExpr(): [ReferenceDereferenceExpr] (reference dereference) #-----| Type = [ClassTemplateInstantiation,Struct] vector #-----| ValueCategory = lvalue -# 2230| getDeclarationEntry(1): [VariableDeclarationEntry] declaration of (__end) -# 2230| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2232| getDeclarationEntry(1): [VariableDeclarationEntry] declaration of (__end) +# 2232| Type = [NestedTypedefType,UsingAliasTypedefType] iterator #-----| getVariable().getInitializer(): [Initializer] initializer for (__end) -# 2230| getExpr(): [FunctionCall] call to end -# 2230| Type = [NestedTypedefType,UsingAliasTypedefType] iterator -# 2230| ValueCategory = prvalue -# 2230| getQualifier(): [VariableAccess] (__range) -# 2230| Type = [LValueReferenceType] vector & -# 2230| ValueCategory = prvalue(load) +# 2232| getExpr(): [FunctionCall] call to end +# 2232| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2232| ValueCategory = prvalue +# 2232| getQualifier(): [VariableAccess] (__range) +# 2232| Type = [LValueReferenceType] vector & +# 2232| ValueCategory = prvalue(load) #-----| getQualifier().getFullyConverted(): [CStyleCast] (const vector)... #-----| Conversion = [GlvalueConversion] glvalue conversion #-----| Type = [SpecifiedType] const vector @@ -20536,18 +20568,18 @@ ir.cpp: #-----| getExpr(): [ReferenceDereferenceExpr] (reference dereference) #-----| Type = [ClassTemplateInstantiation,Struct] vector #-----| ValueCategory = lvalue -# 2230| getCondition(): [FunctionCall] call to operator!= -# 2230| Type = [BoolType] bool -# 2230| ValueCategory = prvalue -# 2230| getQualifier(): [VariableAccess] (__begin) -# 2230| Type = [NestedTypedefType,UsingAliasTypedefType] iterator -# 2230| ValueCategory = lvalue -# 2230| getArgument(0): [ConstructorCall] call to iterator -# 2230| Type = [VoidType] void -# 2230| ValueCategory = prvalue -# 2230| getArgument(0): [VariableAccess] (__end) -# 2230| Type = [NestedTypedefType,UsingAliasTypedefType] iterator -# 2230| ValueCategory = lvalue +# 2232| getCondition(): [FunctionCall] call to operator!= +# 2232| Type = [BoolType] bool +# 2232| ValueCategory = prvalue +# 2232| getQualifier(): [VariableAccess] (__begin) +# 2232| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2232| ValueCategory = lvalue +# 2232| getArgument(0): [ConstructorCall] call to iterator +# 2232| Type = [VoidType] void +# 2232| ValueCategory = prvalue +# 2232| getArgument(0): [VariableAccess] (__end) +# 2232| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2232| ValueCategory = lvalue #-----| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) #-----| Type = [LValueReferenceType] const iterator & #-----| ValueCategory = prvalue @@ -20562,588 +20594,588 @@ ir.cpp: #-----| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object #-----| Type = [ClassTemplateInstantiation,Struct] iterator #-----| ValueCategory = lvalue -# 2230| getUpdate(): [FunctionCall] call to operator++ -# 2230| Type = [LValueReferenceType] iterator & -# 2230| ValueCategory = prvalue -# 2230| getQualifier(): [VariableAccess] (__begin) -# 2230| Type = [NestedTypedefType,UsingAliasTypedefType] iterator -# 2230| ValueCategory = lvalue -# 2230| getChild(5): [DeclStmt] declaration -# 2230| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y -# 2230| Type = [Class] ClassWithDestructor -# 2230| getVariable().getInitializer(): [Initializer] initializer for y -# 2230| getExpr(): [OverloadedPointerDereferenceExpr] call to operator* -# 2230| Type = [LValueReferenceType] ClassWithDestructor & -# 2230| ValueCategory = prvalue -# 2230| getQualifier(): [VariableAccess] (__begin) -# 2230| Type = [NestedTypedefType,UsingAliasTypedefType] iterator -# 2230| ValueCategory = lvalue +# 2232| getUpdate(): [FunctionCall] call to operator++ +# 2232| Type = [LValueReferenceType] iterator & +# 2232| ValueCategory = prvalue +# 2232| getQualifier(): [VariableAccess] (__begin) +# 2232| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2232| ValueCategory = lvalue +# 2232| getChild(5): [DeclStmt] declaration +# 2232| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y +# 2232| Type = [Class] ClassWithDestructor +# 2232| getVariable().getInitializer(): [Initializer] initializer for y +# 2232| getExpr(): [OverloadedPointerDereferenceExpr] call to operator* +# 2232| Type = [LValueReferenceType] ClassWithDestructor & +# 2232| ValueCategory = prvalue +# 2232| getQualifier(): [VariableAccess] (__begin) +# 2232| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2232| ValueCategory = lvalue #-----| getQualifier().getFullyConverted(): [CStyleCast] (const iterator)... #-----| Conversion = [GlvalueConversion] glvalue conversion #-----| Type = [SpecifiedType] const iterator #-----| ValueCategory = lvalue -# 2230| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 2230| Type = [Class] ClassWithDestructor -# 2230| ValueCategory = prvalue(load) -# 2230| getStmt(): [BlockStmt] { ... } -# 2231| getStmt(0): [DeclStmt] declaration -# 2231| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z1 -# 2231| Type = [Class] ClassWithDestructor -# 2231| getVariable().getInitializer(): [Initializer] initializer for z1 -# 2231| getExpr(): [ConstructorCall] call to ClassWithDestructor -# 2231| Type = [VoidType] void -# 2231| ValueCategory = prvalue -# 2232| getStmt(1): [DeclStmt] declaration -# 2232| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z2 -# 2232| Type = [Class] ClassWithDestructor -# 2232| getVariable().getInitializer(): [Initializer] initializer for z2 -# 2232| getExpr(): [ConstructorCall] call to ClassWithDestructor -# 2232| Type = [VoidType] void -# 2232| ValueCategory = prvalue -# 2233| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor -# 2233| Type = [VoidType] void -# 2233| ValueCategory = prvalue -# 2233| getQualifier(): [VariableAccess] z2 -# 2233| Type = [Class] ClassWithDestructor -# 2233| ValueCategory = lvalue -# 2233| getImplicitDestructorCall(1): [DestructorCall] call to ~ClassWithDestructor -# 2233| Type = [VoidType] void -# 2233| ValueCategory = prvalue -# 2233| getQualifier(): [VariableAccess] z1 +# 2232| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 2232| Type = [Class] ClassWithDestructor +# 2232| ValueCategory = prvalue(load) +# 2232| getStmt(): [BlockStmt] { ... } +# 2233| getStmt(0): [DeclStmt] declaration +# 2233| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z1 # 2233| Type = [Class] ClassWithDestructor -# 2233| ValueCategory = lvalue -# 2230| getImplicitDestructorCall(0): [DestructorCall] call to ~vector -# 2230| Type = [VoidType] void -# 2230| ValueCategory = prvalue -# 2230| getQualifier(): [VariableAccess] ys -# 2230| Type = [ClassTemplateInstantiation,Struct] vector -# 2230| ValueCategory = lvalue -# 2230| getUpdate().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 2230| Type = [ClassTemplateInstantiation,Struct] iterator -# 2230| ValueCategory = lvalue -# 2230| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor -# 2230| Type = [VoidType] void -# 2230| ValueCategory = prvalue -# 2230| getQualifier(): [VariableAccess] y -# 2230| Type = [Class] ClassWithDestructor -# 2230| ValueCategory = lvalue -# 2234| getStmt(9): [ReturnStmt] return ... -# 2234| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor -# 2234| Type = [VoidType] void -# 2234| ValueCategory = prvalue -# 2234| getQualifier(): [VariableAccess] x -# 2234| Type = [Class] ClassWithDestructor -# 2234| ValueCategory = lvalue -# 2236| [TopLevelFunction] void static_variable_with_destructor_1() -# 2236| : -# 2236| getEntryPoint(): [BlockStmt] { ... } -# 2237| getStmt(0): [DeclStmt] declaration -# 2237| getDeclarationEntry(0): [VariableDeclarationEntry] definition of a -# 2237| Type = [Class] ClassWithDestructor -# 2237| getVariable().getInitializer(): [Initializer] initializer for a -# 2237| getExpr(): [ConstructorCall] call to ClassWithDestructor -# 2237| Type = [VoidType] void -# 2237| ValueCategory = prvalue -# 2238| getStmt(1): [DeclStmt] declaration -# 2238| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b -# 2238| Type = [Class] ClassWithDestructor +# 2233| getVariable().getInitializer(): [Initializer] initializer for z1 +# 2233| getExpr(): [ConstructorCall] call to ClassWithDestructor +# 2233| Type = [VoidType] void +# 2233| ValueCategory = prvalue +# 2234| getStmt(1): [DeclStmt] declaration +# 2234| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z2 +# 2234| Type = [Class] ClassWithDestructor +# 2234| getVariable().getInitializer(): [Initializer] initializer for z2 +# 2234| getExpr(): [ConstructorCall] call to ClassWithDestructor +# 2234| Type = [VoidType] void +# 2234| ValueCategory = prvalue +# 2235| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2235| Type = [VoidType] void +# 2235| ValueCategory = prvalue +# 2235| getQualifier(): [VariableAccess] z2 +# 2235| Type = [Class] ClassWithDestructor +# 2235| ValueCategory = lvalue +# 2235| getImplicitDestructorCall(1): [DestructorCall] call to ~ClassWithDestructor +# 2235| Type = [VoidType] void +# 2235| ValueCategory = prvalue +# 2235| getQualifier(): [VariableAccess] z1 +# 2235| Type = [Class] ClassWithDestructor +# 2235| ValueCategory = lvalue +# 2232| getImplicitDestructorCall(0): [DestructorCall] call to ~vector +# 2232| Type = [VoidType] void +# 2232| ValueCategory = prvalue +# 2232| getQualifier(): [VariableAccess] ys +# 2232| Type = [ClassTemplateInstantiation,Struct] vector +# 2232| ValueCategory = lvalue +# 2232| getUpdate().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 2232| Type = [ClassTemplateInstantiation,Struct] iterator +# 2232| ValueCategory = lvalue +# 2232| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2232| Type = [VoidType] void +# 2232| ValueCategory = prvalue +# 2232| getQualifier(): [VariableAccess] y +# 2232| Type = [Class] ClassWithDestructor +# 2232| ValueCategory = lvalue +# 2236| getStmt(9): [ReturnStmt] return ... +# 2236| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2236| Type = [VoidType] void +# 2236| ValueCategory = prvalue +# 2236| getQualifier(): [VariableAccess] x +# 2236| Type = [Class] ClassWithDestructor +# 2236| ValueCategory = lvalue +# 2238| [TopLevelFunction] void static_variable_with_destructor_1() +# 2238| : +# 2238| getEntryPoint(): [BlockStmt] { ... } +# 2239| getStmt(0): [DeclStmt] declaration +# 2239| getDeclarationEntry(0): [VariableDeclarationEntry] definition of a +# 2239| Type = [Class] ClassWithDestructor +# 2239| getVariable().getInitializer(): [Initializer] initializer for a +# 2239| getExpr(): [ConstructorCall] call to ClassWithDestructor +# 2239| Type = [VoidType] void +# 2239| ValueCategory = prvalue +# 2240| getStmt(1): [DeclStmt] declaration +# 2240| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b +# 2240| Type = [Class] ClassWithDestructor #-----| getVariable().getInitializer(): [Initializer] initializer for b #-----| getExpr(): [ConstructorCall] call to ClassWithDestructor #-----| Type = [VoidType] void #-----| ValueCategory = prvalue -# 2239| getStmt(2): [ReturnStmt] return ... -# 2239| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor -# 2239| Type = [VoidType] void -# 2239| ValueCategory = prvalue -# 2239| getQualifier(): [VariableAccess] a -# 2239| Type = [Class] ClassWithDestructor -# 2239| ValueCategory = lvalue -# 2241| [TopLevelFunction] void static_variable_with_destructor_2() -# 2241| : -# 2241| getEntryPoint(): [BlockStmt] { ... } -# 2242| getStmt(0): [DeclStmt] declaration -# 2242| getDeclarationEntry(0): [VariableDeclarationEntry] definition of a -# 2242| Type = [Class] ClassWithDestructor +# 2241| getStmt(2): [ReturnStmt] return ... +# 2241| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2241| Type = [VoidType] void +# 2241| ValueCategory = prvalue +# 2241| getQualifier(): [VariableAccess] a +# 2241| Type = [Class] ClassWithDestructor +# 2241| ValueCategory = lvalue +# 2243| [TopLevelFunction] void static_variable_with_destructor_2() +# 2243| : +# 2243| getEntryPoint(): [BlockStmt] { ... } +# 2244| getStmt(0): [DeclStmt] declaration +# 2244| getDeclarationEntry(0): [VariableDeclarationEntry] definition of a +# 2244| Type = [Class] ClassWithDestructor #-----| getVariable().getInitializer(): [Initializer] initializer for a #-----| getExpr(): [ConstructorCall] call to ClassWithDestructor #-----| Type = [VoidType] void #-----| ValueCategory = prvalue -# 2243| getStmt(1): [DeclStmt] declaration -# 2243| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b -# 2243| Type = [Class] ClassWithDestructor -# 2243| getVariable().getInitializer(): [Initializer] initializer for b -# 2243| getExpr(): [ConstructorCall] call to ClassWithDestructor -# 2243| Type = [VoidType] void -# 2243| ValueCategory = prvalue -# 2244| getStmt(2): [ReturnStmt] return ... -# 2244| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor -# 2244| Type = [VoidType] void -# 2244| ValueCategory = prvalue -# 2244| getQualifier(): [VariableAccess] b -# 2244| Type = [Class] ClassWithDestructor -# 2244| ValueCategory = lvalue -# 2246| [TopLevelFunction] void static_variable_with_destructor_3() -# 2246| : -# 2246| getEntryPoint(): [BlockStmt] { ... } -# 2247| getStmt(0): [DeclStmt] declaration -# 2247| getDeclarationEntry(0): [VariableDeclarationEntry] definition of a -# 2247| Type = [Class] ClassWithDestructor -# 2247| getVariable().getInitializer(): [Initializer] initializer for a -# 2247| getExpr(): [ConstructorCall] call to ClassWithDestructor -# 2247| Type = [VoidType] void -# 2247| ValueCategory = prvalue -# 2248| getStmt(1): [DeclStmt] declaration -# 2248| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b -# 2248| Type = [Class] ClassWithDestructor -# 2248| getVariable().getInitializer(): [Initializer] initializer for b -# 2248| getExpr(): [ConstructorCall] call to ClassWithDestructor -# 2248| Type = [VoidType] void -# 2248| ValueCategory = prvalue -# 2249| getStmt(2): [DeclStmt] declaration -# 2249| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c +# 2245| getStmt(1): [DeclStmt] declaration +# 2245| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b +# 2245| Type = [Class] ClassWithDestructor +# 2245| getVariable().getInitializer(): [Initializer] initializer for b +# 2245| getExpr(): [ConstructorCall] call to ClassWithDestructor +# 2245| Type = [VoidType] void +# 2245| ValueCategory = prvalue +# 2246| getStmt(2): [ReturnStmt] return ... +# 2246| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2246| Type = [VoidType] void +# 2246| ValueCategory = prvalue +# 2246| getQualifier(): [VariableAccess] b +# 2246| Type = [Class] ClassWithDestructor +# 2246| ValueCategory = lvalue +# 2248| [TopLevelFunction] void static_variable_with_destructor_3() +# 2248| : +# 2248| getEntryPoint(): [BlockStmt] { ... } +# 2249| getStmt(0): [DeclStmt] declaration +# 2249| getDeclarationEntry(0): [VariableDeclarationEntry] definition of a # 2249| Type = [Class] ClassWithDestructor +# 2249| getVariable().getInitializer(): [Initializer] initializer for a +# 2249| getExpr(): [ConstructorCall] call to ClassWithDestructor +# 2249| Type = [VoidType] void +# 2249| ValueCategory = prvalue +# 2250| getStmt(1): [DeclStmt] declaration +# 2250| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b +# 2250| Type = [Class] ClassWithDestructor +# 2250| getVariable().getInitializer(): [Initializer] initializer for b +# 2250| getExpr(): [ConstructorCall] call to ClassWithDestructor +# 2250| Type = [VoidType] void +# 2250| ValueCategory = prvalue +# 2251| getStmt(2): [DeclStmt] declaration +# 2251| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c +# 2251| Type = [Class] ClassWithDestructor #-----| getVariable().getInitializer(): [Initializer] initializer for c #-----| getExpr(): [ConstructorCall] call to ClassWithDestructor #-----| Type = [VoidType] void #-----| ValueCategory = prvalue -# 2250| getStmt(3): [ReturnStmt] return ... -# 2250| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor -# 2250| Type = [VoidType] void -# 2250| ValueCategory = prvalue -# 2250| getQualifier(): [VariableAccess] b -# 2250| Type = [Class] ClassWithDestructor -# 2250| ValueCategory = lvalue -# 2250| getImplicitDestructorCall(1): [DestructorCall] call to ~ClassWithDestructor -# 2250| Type = [VoidType] void -# 2250| ValueCategory = prvalue -# 2250| getQualifier(): [VariableAccess] a -# 2250| Type = [Class] ClassWithDestructor -# 2250| ValueCategory = lvalue -# 2252| [GlobalVariable] ClassWithDestructor global_class_with_destructor -# 2252| getInitializer(): [Initializer] initializer for global_class_with_destructor -# 2252| getExpr(): [ConstructorCall] call to ClassWithDestructor -# 2252| Type = [VoidType] void -# 2252| ValueCategory = prvalue -# 2256| [FunctionTemplateInstantiation,TopLevelFunction] ClassWithDestructor& vacuous_destructor_call::get(ClassWithDestructor&) -# 2256| : -# 2256| getParameter(0): [Parameter] t -# 2256| Type = [LValueReferenceType] ClassWithDestructor & -# 2256| getEntryPoint(): [BlockStmt] { ... } -# 2256| getStmt(0): [ReturnStmt] return ... -# 2256| getExpr(): [VariableAccess] t -# 2256| Type = [LValueReferenceType] ClassWithDestructor & -# 2256| ValueCategory = prvalue(load) -# 2256| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 2256| Type = [LValueReferenceType] ClassWithDestructor & -# 2256| ValueCategory = prvalue -# 2256| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 2256| Type = [Class] ClassWithDestructor -# 2256| ValueCategory = lvalue -# 2256| [TemplateFunction,TopLevelFunction] T& vacuous_destructor_call::get(T&) -# 2256| : -# 2256| getParameter(0): [Parameter] t -# 2256| Type = [LValueReferenceType] T & -# 2256| getEntryPoint(): [BlockStmt] { ... } -# 2256| getStmt(0): [ReturnStmt] return ... -# 2256| getExpr(): [VariableAccess] t -# 2256| Type = [LValueReferenceType] T & -# 2256| ValueCategory = prvalue(load) -# 2256| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 2256| Type = [TypeTemplateParameter] T -# 2256| ValueCategory = lvalue -# 2256| [FunctionTemplateInstantiation,TopLevelFunction] int& vacuous_destructor_call::get(int&) -# 2256| : -# 2256| getParameter(0): [Parameter] t -# 2256| Type = [LValueReferenceType] int & -# 2256| getEntryPoint(): [BlockStmt] { ... } -# 2256| getStmt(0): [ReturnStmt] return ... -# 2256| getExpr(): [VariableAccess] t -# 2256| Type = [LValueReferenceType] int & -# 2256| ValueCategory = prvalue(load) -# 2256| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 2256| Type = [LValueReferenceType] int & -# 2256| ValueCategory = prvalue -# 2256| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 2256| Type = [IntType] int -# 2256| ValueCategory = lvalue -# 2259| [FunctionTemplateInstantiation,TopLevelFunction] void vacuous_destructor_call::call_destructor(ClassWithDestructor&) -# 2259| : -# 2259| getParameter(0): [Parameter] t -# 2259| Type = [LValueReferenceType] ClassWithDestructor & -# 2259| getEntryPoint(): [BlockStmt] { ... } -# 2260| getStmt(0): [ExprStmt] ExprStmt -# 2260| getExpr(): [DestructorCall] call to ~ClassWithDestructor -# 2260| Type = [VoidType] void -# 2260| ValueCategory = prvalue -# 2260| getQualifier(): [FunctionCall] call to get -# 2260| Type = [LValueReferenceType] ClassWithDestructor & -# 2260| ValueCategory = prvalue -# 2260| getArgument(0): [VariableAccess] t -# 2260| Type = [LValueReferenceType] ClassWithDestructor & -# 2260| ValueCategory = prvalue(load) -# 2260| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) -# 2260| Type = [LValueReferenceType] ClassWithDestructor & -# 2260| ValueCategory = prvalue -# 2260| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 2260| Type = [Class] ClassWithDestructor -# 2260| ValueCategory = lvalue -# 2260| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 2260| Type = [Class] ClassWithDestructor -# 2260| ValueCategory = lvalue -# 2261| getStmt(1): [ReturnStmt] return ... -# 2259| [TemplateFunction,TopLevelFunction] void vacuous_destructor_call::call_destructor(T&) -# 2259| : -# 2259| getParameter(0): [Parameter] t -# 2259| Type = [LValueReferenceType] T & -# 2259| getEntryPoint(): [BlockStmt] { ... } -# 2260| getStmt(0): [ExprStmt] ExprStmt -# 2260| getExpr(): [ExprCall] call to expression -# 2260| Type = [UnknownType] unknown -# 2260| ValueCategory = prvalue -# 2260| getExpr(): [Literal] Unknown literal -# 2260| Type = [UnknownType] unknown -# 2260| ValueCategory = prvalue -# 2260| getChild(-1): [ExprCall] call to expression -# 2260| Type = [UnknownType] unknown -# 2260| ValueCategory = prvalue -# 2260| getExpr(): [Literal] Unknown literal -# 2260| Type = [UnknownType] unknown -# 2260| ValueCategory = prvalue -# 2260| getArgument(0): [VariableAccess] t -# 2260| Type = [LValueReferenceType] T & -# 2260| ValueCategory = prvalue(load) -# 2260| getArgument(0).getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 2260| Type = [TypeTemplateParameter] T -# 2260| ValueCategory = lvalue -# 2261| getStmt(1): [ReturnStmt] return ... -# 2259| [FunctionTemplateInstantiation,TopLevelFunction] void vacuous_destructor_call::call_destructor(int&) -# 2259| : -# 2259| getParameter(0): [Parameter] t -# 2259| Type = [LValueReferenceType] int & -# 2259| getEntryPoint(): [BlockStmt] { ... } -# 2260| getStmt(0): [ExprStmt] ExprStmt -# 2260| getExpr(): [VacuousDestructorCall] (vacuous destructor call) -# 2260| Type = [VoidType] void -# 2260| ValueCategory = prvalue -# 2260| getChild(0): [FunctionCall] call to get -# 2260| Type = [LValueReferenceType] int & -# 2260| ValueCategory = prvalue -# 2260| getArgument(0): [VariableAccess] t -# 2260| Type = [LValueReferenceType] int & -# 2260| ValueCategory = prvalue(load) -# 2260| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) -# 2260| Type = [LValueReferenceType] int & -# 2260| ValueCategory = prvalue -# 2260| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 2260| Type = [IntType] int -# 2260| ValueCategory = lvalue -# 2260| getChild(0).getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 2260| Type = [IntType] int -# 2260| ValueCategory = lvalue -# 2261| getStmt(1): [ReturnStmt] return ... -# 2263| [TopLevelFunction] void vacuous_destructor_call::non_vacuous_destructor_call() -# 2263| : -# 2263| getEntryPoint(): [BlockStmt] { ... } -# 2264| getStmt(0): [DeclStmt] declaration -# 2264| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c -# 2264| Type = [Class] ClassWithDestructor -# 2264| getVariable().getInitializer(): [Initializer] initializer for c -# 2264| getExpr(): [ConstructorCall] call to ClassWithDestructor -# 2264| Type = [VoidType] void -# 2264| ValueCategory = prvalue -# 2265| getStmt(1): [ExprStmt] ExprStmt -# 2265| getExpr(): [FunctionCall] call to call_destructor -# 2265| Type = [VoidType] void -# 2265| ValueCategory = prvalue -# 2265| getArgument(0): [VariableAccess] c -# 2265| Type = [Class] ClassWithDestructor -# 2265| ValueCategory = lvalue -# 2265| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) -# 2265| Type = [LValueReferenceType] ClassWithDestructor & -# 2265| ValueCategory = prvalue -# 2266| getStmt(2): [ReturnStmt] return ... -# 2266| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor -# 2266| Type = [VoidType] void -# 2266| ValueCategory = prvalue -# 2266| getQualifier(): [VariableAccess] c -# 2266| Type = [Class] ClassWithDestructor -# 2266| ValueCategory = lvalue -# 2268| [TopLevelFunction] void vacuous_destructor_call::vacuous_destructor_call() -# 2268| : -# 2268| getEntryPoint(): [BlockStmt] { ... } -# 2269| getStmt(0): [DeclStmt] declaration -# 2269| getDeclarationEntry(0): [VariableDeclarationEntry] definition of i -# 2269| Type = [IntType] int -# 2270| getStmt(1): [ExprStmt] ExprStmt -# 2270| getExpr(): [FunctionCall] call to call_destructor -# 2270| Type = [VoidType] void -# 2270| ValueCategory = prvalue -# 2270| getArgument(0): [VariableAccess] i -# 2270| Type = [IntType] int -# 2270| ValueCategory = lvalue -# 2270| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) -# 2270| Type = [LValueReferenceType] int & -# 2270| ValueCategory = prvalue -# 2271| getStmt(2): [ReturnStmt] return ... -# 2274| [TopLevelFunction] void TryCatchDestructors(bool) -# 2274| : -# 2274| getParameter(0): [Parameter] b -# 2274| Type = [BoolType] bool -# 2274| getEntryPoint(): [BlockStmt] { ... } -# 2275| getStmt(0): [TryStmt] try { ... } -# 2275| getStmt(): [BlockStmt] { ... } -# 2276| getStmt(0): [DeclStmt] declaration -# 2276| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s -# 2276| Type = [Struct] String -# 2276| getVariable().getInitializer(): [Initializer] initializer for s -# 2276| getExpr(): [ConstructorCall] call to String -# 2276| Type = [VoidType] void -# 2276| ValueCategory = prvalue -# 2277| getStmt(1): [IfStmt] if (...) ... -# 2277| getCondition(): [VariableAccess] b -# 2277| Type = [BoolType] bool -# 2277| ValueCategory = prvalue(load) -# 2277| getThen(): [BlockStmt] { ... } -# 2278| getStmt(0): [ExprStmt] ExprStmt -# 2278| getExpr(): [ThrowExpr] throw ... -# 2278| Type = [PointerType] const char * +# 2252| getStmt(3): [ReturnStmt] return ... +# 2252| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2252| Type = [VoidType] void +# 2252| ValueCategory = prvalue +# 2252| getQualifier(): [VariableAccess] b +# 2252| Type = [Class] ClassWithDestructor +# 2252| ValueCategory = lvalue +# 2252| getImplicitDestructorCall(1): [DestructorCall] call to ~ClassWithDestructor +# 2252| Type = [VoidType] void +# 2252| ValueCategory = prvalue +# 2252| getQualifier(): [VariableAccess] a +# 2252| Type = [Class] ClassWithDestructor +# 2252| ValueCategory = lvalue +# 2254| [GlobalVariable] ClassWithDestructor global_class_with_destructor +# 2254| getInitializer(): [Initializer] initializer for global_class_with_destructor +# 2254| getExpr(): [ConstructorCall] call to ClassWithDestructor +# 2254| Type = [VoidType] void +# 2254| ValueCategory = prvalue +# 2258| [FunctionTemplateInstantiation,TopLevelFunction] ClassWithDestructor& vacuous_destructor_call::get(ClassWithDestructor&) +# 2258| : +# 2258| getParameter(0): [Parameter] t +# 2258| Type = [LValueReferenceType] ClassWithDestructor & +# 2258| getEntryPoint(): [BlockStmt] { ... } +# 2258| getStmt(0): [ReturnStmt] return ... +# 2258| getExpr(): [VariableAccess] t +# 2258| Type = [LValueReferenceType] ClassWithDestructor & +# 2258| ValueCategory = prvalue(load) +# 2258| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 2258| Type = [LValueReferenceType] ClassWithDestructor & +# 2258| ValueCategory = prvalue +# 2258| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 2258| Type = [Class] ClassWithDestructor +# 2258| ValueCategory = lvalue +# 2258| [TemplateFunction,TopLevelFunction] T& vacuous_destructor_call::get(T&) +# 2258| : +# 2258| getParameter(0): [Parameter] t +# 2258| Type = [LValueReferenceType] T & +# 2258| getEntryPoint(): [BlockStmt] { ... } +# 2258| getStmt(0): [ReturnStmt] return ... +# 2258| getExpr(): [VariableAccess] t +# 2258| Type = [LValueReferenceType] T & +# 2258| ValueCategory = prvalue(load) +# 2258| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 2258| Type = [TypeTemplateParameter] T +# 2258| ValueCategory = lvalue +# 2258| [FunctionTemplateInstantiation,TopLevelFunction] int& vacuous_destructor_call::get(int&) +# 2258| : +# 2258| getParameter(0): [Parameter] t +# 2258| Type = [LValueReferenceType] int & +# 2258| getEntryPoint(): [BlockStmt] { ... } +# 2258| getStmt(0): [ReturnStmt] return ... +# 2258| getExpr(): [VariableAccess] t +# 2258| Type = [LValueReferenceType] int & +# 2258| ValueCategory = prvalue(load) +# 2258| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 2258| Type = [LValueReferenceType] int & +# 2258| ValueCategory = prvalue +# 2258| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 2258| Type = [IntType] int +# 2258| ValueCategory = lvalue +# 2261| [FunctionTemplateInstantiation,TopLevelFunction] void vacuous_destructor_call::call_destructor(ClassWithDestructor&) +# 2261| : +# 2261| getParameter(0): [Parameter] t +# 2261| Type = [LValueReferenceType] ClassWithDestructor & +# 2261| getEntryPoint(): [BlockStmt] { ... } +# 2262| getStmt(0): [ExprStmt] ExprStmt +# 2262| getExpr(): [DestructorCall] call to ~ClassWithDestructor +# 2262| Type = [VoidType] void +# 2262| ValueCategory = prvalue +# 2262| getQualifier(): [FunctionCall] call to get +# 2262| Type = [LValueReferenceType] ClassWithDestructor & +# 2262| ValueCategory = prvalue +# 2262| getArgument(0): [VariableAccess] t +# 2262| Type = [LValueReferenceType] ClassWithDestructor & +# 2262| ValueCategory = prvalue(load) +# 2262| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) +# 2262| Type = [LValueReferenceType] ClassWithDestructor & +# 2262| ValueCategory = prvalue +# 2262| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 2262| Type = [Class] ClassWithDestructor +# 2262| ValueCategory = lvalue +# 2262| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 2262| Type = [Class] ClassWithDestructor +# 2262| ValueCategory = lvalue +# 2263| getStmt(1): [ReturnStmt] return ... +# 2261| [TemplateFunction,TopLevelFunction] void vacuous_destructor_call::call_destructor(T&) +# 2261| : +# 2261| getParameter(0): [Parameter] t +# 2261| Type = [LValueReferenceType] T & +# 2261| getEntryPoint(): [BlockStmt] { ... } +# 2262| getStmt(0): [ExprStmt] ExprStmt +# 2262| getExpr(): [ExprCall] call to expression +# 2262| Type = [UnknownType] unknown +# 2262| ValueCategory = prvalue +# 2262| getExpr(): [Literal] Unknown literal +# 2262| Type = [UnknownType] unknown +# 2262| ValueCategory = prvalue +# 2262| getChild(-1): [ExprCall] call to expression +# 2262| Type = [UnknownType] unknown +# 2262| ValueCategory = prvalue +# 2262| getExpr(): [Literal] Unknown literal +# 2262| Type = [UnknownType] unknown +# 2262| ValueCategory = prvalue +# 2262| getArgument(0): [VariableAccess] t +# 2262| Type = [LValueReferenceType] T & +# 2262| ValueCategory = prvalue(load) +# 2262| getArgument(0).getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 2262| Type = [TypeTemplateParameter] T +# 2262| ValueCategory = lvalue +# 2263| getStmt(1): [ReturnStmt] return ... +# 2261| [FunctionTemplateInstantiation,TopLevelFunction] void vacuous_destructor_call::call_destructor(int&) +# 2261| : +# 2261| getParameter(0): [Parameter] t +# 2261| Type = [LValueReferenceType] int & +# 2261| getEntryPoint(): [BlockStmt] { ... } +# 2262| getStmt(0): [ExprStmt] ExprStmt +# 2262| getExpr(): [VacuousDestructorCall] (vacuous destructor call) +# 2262| Type = [VoidType] void +# 2262| ValueCategory = prvalue +# 2262| getChild(0): [FunctionCall] call to get +# 2262| Type = [LValueReferenceType] int & +# 2262| ValueCategory = prvalue +# 2262| getArgument(0): [VariableAccess] t +# 2262| Type = [LValueReferenceType] int & +# 2262| ValueCategory = prvalue(load) +# 2262| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) +# 2262| Type = [LValueReferenceType] int & +# 2262| ValueCategory = prvalue +# 2262| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 2262| Type = [IntType] int +# 2262| ValueCategory = lvalue +# 2262| getChild(0).getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 2262| Type = [IntType] int +# 2262| ValueCategory = lvalue +# 2263| getStmt(1): [ReturnStmt] return ... +# 2265| [TopLevelFunction] void vacuous_destructor_call::non_vacuous_destructor_call() +# 2265| : +# 2265| getEntryPoint(): [BlockStmt] { ... } +# 2266| getStmt(0): [DeclStmt] declaration +# 2266| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c +# 2266| Type = [Class] ClassWithDestructor +# 2266| getVariable().getInitializer(): [Initializer] initializer for c +# 2266| getExpr(): [ConstructorCall] call to ClassWithDestructor +# 2266| Type = [VoidType] void +# 2266| ValueCategory = prvalue +# 2267| getStmt(1): [ExprStmt] ExprStmt +# 2267| getExpr(): [FunctionCall] call to call_destructor +# 2267| Type = [VoidType] void +# 2267| ValueCategory = prvalue +# 2267| getArgument(0): [VariableAccess] c +# 2267| Type = [Class] ClassWithDestructor +# 2267| ValueCategory = lvalue +# 2267| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) +# 2267| Type = [LValueReferenceType] ClassWithDestructor & +# 2267| ValueCategory = prvalue +# 2268| getStmt(2): [ReturnStmt] return ... +# 2268| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2268| Type = [VoidType] void +# 2268| ValueCategory = prvalue +# 2268| getQualifier(): [VariableAccess] c +# 2268| Type = [Class] ClassWithDestructor +# 2268| ValueCategory = lvalue +# 2270| [TopLevelFunction] void vacuous_destructor_call::vacuous_destructor_call() +# 2270| : +# 2270| getEntryPoint(): [BlockStmt] { ... } +# 2271| getStmt(0): [DeclStmt] declaration +# 2271| getDeclarationEntry(0): [VariableDeclarationEntry] definition of i +# 2271| Type = [IntType] int +# 2272| getStmt(1): [ExprStmt] ExprStmt +# 2272| getExpr(): [FunctionCall] call to call_destructor +# 2272| Type = [VoidType] void +# 2272| ValueCategory = prvalue +# 2272| getArgument(0): [VariableAccess] i +# 2272| Type = [IntType] int +# 2272| ValueCategory = lvalue +# 2272| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) +# 2272| Type = [LValueReferenceType] int & +# 2272| ValueCategory = prvalue +# 2273| getStmt(2): [ReturnStmt] return ... +# 2276| [TopLevelFunction] void TryCatchDestructors(bool) +# 2276| : +# 2276| getParameter(0): [Parameter] b +# 2276| Type = [BoolType] bool +# 2276| getEntryPoint(): [BlockStmt] { ... } +# 2277| getStmt(0): [TryStmt] try { ... } +# 2277| getStmt(): [BlockStmt] { ... } +# 2278| getStmt(0): [DeclStmt] declaration +# 2278| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s +# 2278| Type = [Struct] String +# 2278| getVariable().getInitializer(): [Initializer] initializer for s +# 2278| getExpr(): [ConstructorCall] call to String +# 2278| Type = [VoidType] void # 2278| ValueCategory = prvalue -# 2278| getExpr(): string literal -# 2278| Type = [ArrayType] const char[15] -# 2278| Value = [StringLiteral] "string literal" -# 2278| ValueCategory = lvalue -# 2281| getImplicitDestructorCall(0): [DestructorCall] call to ~String -# 2281| Type = [VoidType] void -# 2281| ValueCategory = prvalue -# 2281| getQualifier(): [VariableAccess] s -# 2281| Type = [Struct] String -# 2281| ValueCategory = lvalue -# 2278| getExpr().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 2278| Type = [PointerType] const char * -# 2278| ValueCategory = prvalue -# 2280| getStmt(2): [DeclStmt] declaration -# 2280| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s2 -# 2280| Type = [Struct] String -# 2280| getVariable().getInitializer(): [Initializer] initializer for s2 -# 2280| getExpr(): [ConstructorCall] call to String -# 2280| Type = [VoidType] void +# 2279| getStmt(1): [IfStmt] if (...) ... +# 2279| getCondition(): [VariableAccess] b +# 2279| Type = [BoolType] bool +# 2279| ValueCategory = prvalue(load) +# 2279| getThen(): [BlockStmt] { ... } +# 2280| getStmt(0): [ExprStmt] ExprStmt +# 2280| getExpr(): [ThrowExpr] throw ... +# 2280| Type = [PointerType] const char * # 2280| ValueCategory = prvalue -# 2281| getImplicitDestructorCall(0): [DestructorCall] call to ~String -# 2281| Type = [VoidType] void -# 2281| ValueCategory = prvalue -# 2281| getQualifier(): [VariableAccess] s2 -# 2281| Type = [Struct] String -# 2281| ValueCategory = lvalue -# 2281| getImplicitDestructorCall(1): [DestructorCall] call to ~String -# 2281| Type = [VoidType] void -# 2281| ValueCategory = prvalue -# 2281| getQualifier(): [VariableAccess] s -# 2281| Type = [Struct] String -# 2281| ValueCategory = lvalue -# 2282| getChild(1): [Handler] -# 2282| getParameter(): [Parameter] s -# 2282| Type = [PointerType] const char * -# 2282| getBlock(): [CatchBlock] { ... } -# 2283| getStmt(0): [ExprStmt] ExprStmt -# 2283| getExpr(): [ThrowExpr] throw ... -# 2283| Type = [Struct] String -# 2283| ValueCategory = prvalue -# 2283| getExpr(): [ConstructorCall] call to String -# 2283| Type = [VoidType] void -# 2283| ValueCategory = prvalue -# 2283| getArgument(0): [VariableAccess] s -# 2283| Type = [PointerType] const char * -# 2283| ValueCategory = prvalue(load) -# 2285| getChild(2): [Handler] -# 2285| getParameter(): [Parameter] e -# 2285| Type = [LValueReferenceType] const String & -# 2285| getBlock(): [CatchBlock] { ... } -# 2287| getChild(3): [Handler] -# 2287| getBlock(): [CatchAnyBlock] { ... } -# 2288| getStmt(0): [ExprStmt] ExprStmt -# 2288| getExpr(): [ReThrowExpr] re-throw exception -# 2288| Type = [VoidType] void -# 2288| ValueCategory = prvalue -# 2290| getStmt(1): [ReturnStmt] return ... -# 2292| [TopLevelFunction] void IfDestructors(bool) -# 2292| : -# 2292| getParameter(0): [Parameter] b -# 2292| Type = [BoolType] bool -# 2292| getEntryPoint(): [BlockStmt] { ... } -# 2293| getStmt(0): [DeclStmt] declaration -# 2293| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s1 -# 2293| Type = [Struct] String -# 2293| getVariable().getInitializer(): [Initializer] initializer for s1 -# 2293| getExpr(): [ConstructorCall] call to String -# 2293| Type = [VoidType] void -# 2293| ValueCategory = prvalue -# 2294| getStmt(1): [IfStmt] if (...) ... -# 2294| getCondition(): [VariableAccess] b -# 2294| Type = [BoolType] bool -# 2294| ValueCategory = prvalue(load) -# 2294| getThen(): [BlockStmt] { ... } -# 2295| getStmt(0): [DeclStmt] declaration -# 2295| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s2 -# 2295| Type = [Struct] String -# 2295| getVariable().getInitializer(): [Initializer] initializer for s2 -# 2295| getExpr(): [ConstructorCall] call to String -# 2295| Type = [VoidType] void -# 2295| ValueCategory = prvalue -# 2296| getImplicitDestructorCall(0): [DestructorCall] call to ~String -# 2296| Type = [VoidType] void -# 2296| ValueCategory = prvalue -# 2296| getQualifier(): [VariableAccess] s2 -# 2296| Type = [Struct] String -# 2296| ValueCategory = lvalue -# 2296| getElse(): [BlockStmt] { ... } +# 2280| getExpr(): string literal +# 2280| Type = [ArrayType] const char[15] +# 2280| Value = [StringLiteral] "string literal" +# 2280| ValueCategory = lvalue +# 2283| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2283| Type = [VoidType] void +# 2283| ValueCategory = prvalue +# 2283| getQualifier(): [VariableAccess] s +# 2283| Type = [Struct] String +# 2283| ValueCategory = lvalue +# 2280| getExpr().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 2280| Type = [PointerType] const char * +# 2280| ValueCategory = prvalue +# 2282| getStmt(2): [DeclStmt] declaration +# 2282| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s2 +# 2282| Type = [Struct] String +# 2282| getVariable().getInitializer(): [Initializer] initializer for s2 +# 2282| getExpr(): [ConstructorCall] call to String +# 2282| Type = [VoidType] void +# 2282| ValueCategory = prvalue +# 2283| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2283| Type = [VoidType] void +# 2283| ValueCategory = prvalue +# 2283| getQualifier(): [VariableAccess] s2 +# 2283| Type = [Struct] String +# 2283| ValueCategory = lvalue +# 2283| getImplicitDestructorCall(1): [DestructorCall] call to ~String +# 2283| Type = [VoidType] void +# 2283| ValueCategory = prvalue +# 2283| getQualifier(): [VariableAccess] s +# 2283| Type = [Struct] String +# 2283| ValueCategory = lvalue +# 2284| getChild(1): [Handler] +# 2284| getParameter(): [Parameter] s +# 2284| Type = [PointerType] const char * +# 2284| getBlock(): [CatchBlock] { ... } +# 2285| getStmt(0): [ExprStmt] ExprStmt +# 2285| getExpr(): [ThrowExpr] throw ... +# 2285| Type = [Struct] String +# 2285| ValueCategory = prvalue +# 2285| getExpr(): [ConstructorCall] call to String +# 2285| Type = [VoidType] void +# 2285| ValueCategory = prvalue +# 2285| getArgument(0): [VariableAccess] s +# 2285| Type = [PointerType] const char * +# 2285| ValueCategory = prvalue(load) +# 2287| getChild(2): [Handler] +# 2287| getParameter(): [Parameter] e +# 2287| Type = [LValueReferenceType] const String & +# 2287| getBlock(): [CatchBlock] { ... } +# 2289| getChild(3): [Handler] +# 2289| getBlock(): [CatchAnyBlock] { ... } +# 2290| getStmt(0): [ExprStmt] ExprStmt +# 2290| getExpr(): [ReThrowExpr] re-throw exception +# 2290| Type = [VoidType] void +# 2290| ValueCategory = prvalue +# 2292| getStmt(1): [ReturnStmt] return ... +# 2294| [TopLevelFunction] void IfDestructors(bool) +# 2294| : +# 2294| getParameter(0): [Parameter] b +# 2294| Type = [BoolType] bool +# 2294| getEntryPoint(): [BlockStmt] { ... } +# 2295| getStmt(0): [DeclStmt] declaration +# 2295| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s1 +# 2295| Type = [Struct] String +# 2295| getVariable().getInitializer(): [Initializer] initializer for s1 +# 2295| getExpr(): [ConstructorCall] call to String +# 2295| Type = [VoidType] void +# 2295| ValueCategory = prvalue +# 2296| getStmt(1): [IfStmt] if (...) ... +# 2296| getCondition(): [VariableAccess] b +# 2296| Type = [BoolType] bool +# 2296| ValueCategory = prvalue(load) +# 2296| getThen(): [BlockStmt] { ... } # 2297| getStmt(0): [DeclStmt] declaration -# 2297| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s3 +# 2297| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s2 # 2297| Type = [Struct] String -# 2297| getVariable().getInitializer(): [Initializer] initializer for s3 +# 2297| getVariable().getInitializer(): [Initializer] initializer for s2 # 2297| getExpr(): [ConstructorCall] call to String # 2297| Type = [VoidType] void # 2297| ValueCategory = prvalue # 2298| getImplicitDestructorCall(0): [DestructorCall] call to ~String # 2298| Type = [VoidType] void # 2298| ValueCategory = prvalue -# 2298| getQualifier(): [VariableAccess] s3 +# 2298| getQualifier(): [VariableAccess] s2 # 2298| Type = [Struct] String # 2298| ValueCategory = lvalue -# 2299| getStmt(2): [DeclStmt] declaration -# 2299| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s4 -# 2299| Type = [Struct] String -# 2299| getVariable().getInitializer(): [Initializer] initializer for s4 -# 2299| getExpr(): [ConstructorCall] call to String -# 2299| Type = [VoidType] void -# 2299| ValueCategory = prvalue -# 2300| getStmt(3): [ReturnStmt] return ... -# 2300| getImplicitDestructorCall(0): [DestructorCall] call to ~String -# 2300| Type = [VoidType] void -# 2300| ValueCategory = prvalue -# 2300| getQualifier(): [VariableAccess] s4 -# 2300| Type = [Struct] String -# 2300| ValueCategory = lvalue -# 2300| getImplicitDestructorCall(1): [DestructorCall] call to ~String -# 2300| Type = [VoidType] void -# 2300| ValueCategory = prvalue -# 2300| getQualifier(): [VariableAccess] s1 -# 2300| Type = [Struct] String -# 2300| ValueCategory = lvalue -# 2302| [TopLevelFunction] void ForDestructors() -# 2302| : -# 2302| getEntryPoint(): [BlockStmt] { ... } -# 2303| getStmt(0): [DeclStmt] declaration -# 2303| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c -# 2303| Type = [PlainCharType] char -# 2303| getVariable().getInitializer(): [Initializer] initializer for c -# 2303| getExpr(): [CharLiteral] 97 -# 2303| Type = [PlainCharType] char -# 2303| Value = [CharLiteral] 97 -# 2303| ValueCategory = prvalue -# 2304| getStmt(1): [ForStmt] for(...;...;...) ... -# 2304| getInitialization(): [DeclStmt] declaration -# 2304| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s -# 2304| Type = [Struct] String -# 2304| getVariable().getInitializer(): [Initializer] initializer for s -# 2304| getExpr(): [ConstructorCall] call to String -# 2304| Type = [VoidType] void -# 2304| ValueCategory = prvalue -# 2304| getArgument(0): hello -# 2304| Type = [ArrayType] const char[6] -# 2304| Value = [StringLiteral] "hello" -# 2304| ValueCategory = lvalue -# 2304| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 2304| Type = [PointerType] const char * -# 2304| ValueCategory = prvalue -# 2304| getCondition(): [NEExpr] ... != ... -# 2304| Type = [BoolType] bool -# 2304| ValueCategory = prvalue -# 2304| getLeftOperand(): [VariableAccess] c -# 2304| Type = [PlainCharType] char -# 2304| ValueCategory = prvalue(load) -# 2304| getRightOperand(): [Literal] 0 -# 2304| Type = [IntType] int -# 2304| Value = [Literal] 0 -# 2304| ValueCategory = prvalue -# 2304| getLeftOperand().getFullyConverted(): [CStyleCast] (int)... -# 2304| Conversion = [IntegralConversion] integral conversion -# 2304| Type = [IntType] int -# 2304| ValueCategory = prvalue -# 2304| getUpdate(): [AssignExpr] ... = ... -# 2304| Type = [PlainCharType] char -# 2304| ValueCategory = lvalue -# 2304| getLValue(): [VariableAccess] c -# 2304| Type = [PlainCharType] char -# 2304| ValueCategory = lvalue -# 2304| getRValue(): [FunctionCall] call to pop_back -# 2304| Type = [PlainCharType] char -# 2304| ValueCategory = prvalue -# 2304| getQualifier(): [VariableAccess] s -# 2304| Type = [Struct] String -# 2304| ValueCategory = lvalue -# 2304| getStmt(): [BlockStmt] { ... } -# 2305| getStmt(0): [DeclStmt] declaration -# 2305| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s2 -# 2305| Type = [Struct] String -# 2305| getVariable().getInitializer(): [Initializer] initializer for s2 -# 2305| getExpr(): [ConstructorCall] call to String -# 2305| Type = [VoidType] void -# 2305| ValueCategory = prvalue -# 2306| getImplicitDestructorCall(0): [DestructorCall] call to ~String -# 2306| Type = [VoidType] void +# 2298| getElse(): [BlockStmt] { ... } +# 2299| getStmt(0): [DeclStmt] declaration +# 2299| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s3 +# 2299| Type = [Struct] String +# 2299| getVariable().getInitializer(): [Initializer] initializer for s3 +# 2299| getExpr(): [ConstructorCall] call to String +# 2299| Type = [VoidType] void +# 2299| ValueCategory = prvalue +# 2300| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2300| Type = [VoidType] void +# 2300| ValueCategory = prvalue +# 2300| getQualifier(): [VariableAccess] s3 +# 2300| Type = [Struct] String +# 2300| ValueCategory = lvalue +# 2301| getStmt(2): [DeclStmt] declaration +# 2301| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s4 +# 2301| Type = [Struct] String +# 2301| getVariable().getInitializer(): [Initializer] initializer for s4 +# 2301| getExpr(): [ConstructorCall] call to String +# 2301| Type = [VoidType] void +# 2301| ValueCategory = prvalue +# 2302| getStmt(3): [ReturnStmt] return ... +# 2302| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2302| Type = [VoidType] void +# 2302| ValueCategory = prvalue +# 2302| getQualifier(): [VariableAccess] s4 +# 2302| Type = [Struct] String +# 2302| ValueCategory = lvalue +# 2302| getImplicitDestructorCall(1): [DestructorCall] call to ~String +# 2302| Type = [VoidType] void +# 2302| ValueCategory = prvalue +# 2302| getQualifier(): [VariableAccess] s1 +# 2302| Type = [Struct] String +# 2302| ValueCategory = lvalue +# 2304| [TopLevelFunction] void ForDestructors() +# 2304| : +# 2304| getEntryPoint(): [BlockStmt] { ... } +# 2305| getStmt(0): [DeclStmt] declaration +# 2305| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c +# 2305| Type = [PlainCharType] char +# 2305| getVariable().getInitializer(): [Initializer] initializer for c +# 2305| getExpr(): [CharLiteral] 97 +# 2305| Type = [PlainCharType] char +# 2305| Value = [CharLiteral] 97 +# 2305| ValueCategory = prvalue +# 2306| getStmt(1): [ForStmt] for(...;...;...) ... +# 2306| getInitialization(): [DeclStmt] declaration +# 2306| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s +# 2306| Type = [Struct] String +# 2306| getVariable().getInitializer(): [Initializer] initializer for s +# 2306| getExpr(): [ConstructorCall] call to String +# 2306| Type = [VoidType] void +# 2306| ValueCategory = prvalue +# 2306| getArgument(0): hello +# 2306| Type = [ArrayType] const char[6] +# 2306| Value = [StringLiteral] "hello" +# 2306| ValueCategory = lvalue +# 2306| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 2306| Type = [PointerType] const char * +# 2306| ValueCategory = prvalue +# 2306| getCondition(): [NEExpr] ... != ... +# 2306| Type = [BoolType] bool +# 2306| ValueCategory = prvalue +# 2306| getLeftOperand(): [VariableAccess] c +# 2306| Type = [PlainCharType] char +# 2306| ValueCategory = prvalue(load) +# 2306| getRightOperand(): [Literal] 0 +# 2306| Type = [IntType] int +# 2306| Value = [Literal] 0 # 2306| ValueCategory = prvalue -# 2306| getQualifier(): [VariableAccess] s2 +# 2306| getLeftOperand().getFullyConverted(): [CStyleCast] (int)... +# 2306| Conversion = [IntegralConversion] integral conversion +# 2306| Type = [IntType] int +# 2306| ValueCategory = prvalue +# 2306| getUpdate(): [AssignExpr] ... = ... +# 2306| Type = [PlainCharType] char +# 2306| ValueCategory = lvalue +# 2306| getLValue(): [VariableAccess] c +# 2306| Type = [PlainCharType] char +# 2306| ValueCategory = lvalue +# 2306| getRValue(): [FunctionCall] call to pop_back +# 2306| Type = [PlainCharType] char +# 2306| ValueCategory = prvalue +# 2306| getQualifier(): [VariableAccess] s # 2306| Type = [Struct] String # 2306| ValueCategory = lvalue -# 2304| getImplicitDestructorCall(0): [DestructorCall] call to ~String -# 2304| Type = [VoidType] void -# 2304| ValueCategory = prvalue -# 2304| getQualifier(): [VariableAccess] s -# 2304| Type = [Struct] String -# 2304| ValueCategory = lvalue -# 2308| getStmt(2): [RangeBasedForStmt] for(...:...) ... -# 2308| getChild(1): [DeclStmt] declaration -# 2308| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of (__range) -# 2308| Type = [RValueReferenceType] vector && +# 2306| getStmt(): [BlockStmt] { ... } +# 2307| getStmt(0): [DeclStmt] declaration +# 2307| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s2 +# 2307| Type = [Struct] String +# 2307| getVariable().getInitializer(): [Initializer] initializer for s2 +# 2307| getExpr(): [ConstructorCall] call to String +# 2307| Type = [VoidType] void +# 2307| ValueCategory = prvalue +# 2308| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2308| Type = [VoidType] void +# 2308| ValueCategory = prvalue +# 2308| getQualifier(): [VariableAccess] s2 +# 2308| Type = [Struct] String +# 2308| ValueCategory = lvalue +# 2306| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2306| Type = [VoidType] void +# 2306| ValueCategory = prvalue +# 2306| getQualifier(): [VariableAccess] s +# 2306| Type = [Struct] String +# 2306| ValueCategory = lvalue +# 2310| getStmt(2): [RangeBasedForStmt] for(...:...) ... +# 2310| getChild(1): [DeclStmt] declaration +# 2310| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of (__range) +# 2310| Type = [RValueReferenceType] vector && #-----| getVariable().getInitializer(): [Initializer] initializer for (__range) -# 2308| getExpr(): [ConstructorCall] call to vector -# 2308| Type = [VoidType] void -# 2308| ValueCategory = prvalue -# 2308| getArgument(0): [ConstructorCall] call to String -# 2308| Type = [VoidType] void -# 2308| ValueCategory = prvalue -# 2308| getArgument(0): hello -# 2308| Type = [ArrayType] const char[6] -# 2308| Value = [StringLiteral] "hello" -# 2308| ValueCategory = lvalue -# 2308| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 2308| Type = [PointerType] const char * -# 2308| ValueCategory = prvalue -# 2308| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object -# 2308| Type = [Struct] String -# 2308| ValueCategory = lvalue -# 2308| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 2308| Type = [LValueReferenceType] vector & -# 2308| ValueCategory = prvalue -# 2308| getExpr(): [TemporaryObjectExpr] temporary object -# 2308| Type = [ClassTemplateInstantiation,Struct] vector -# 2308| ValueCategory = xvalue -# 2308| getImplicitDestructorCall(0): [DestructorCall] call to ~String -# 2308| Type = [VoidType] void -# 2308| ValueCategory = prvalue -# 2308| getQualifier(): [ReuseExpr] reuse of temporary object -# 2308| Type = [Struct] String -# 2308| ValueCategory = xvalue -# 2308| getBeginEndDeclaration(): [DeclStmt] declaration -# 2308| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of (__begin) -# 2308| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2310| getExpr(): [ConstructorCall] call to vector +# 2310| Type = [VoidType] void +# 2310| ValueCategory = prvalue +# 2310| getArgument(0): [ConstructorCall] call to String +# 2310| Type = [VoidType] void +# 2310| ValueCategory = prvalue +# 2310| getArgument(0): hello +# 2310| Type = [ArrayType] const char[6] +# 2310| Value = [StringLiteral] "hello" +# 2310| ValueCategory = lvalue +# 2310| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 2310| Type = [PointerType] const char * +# 2310| ValueCategory = prvalue +# 2310| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object +# 2310| Type = [Struct] String +# 2310| ValueCategory = lvalue +# 2310| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 2310| Type = [LValueReferenceType] vector & +# 2310| ValueCategory = prvalue +# 2310| getExpr(): [TemporaryObjectExpr] temporary object +# 2310| Type = [ClassTemplateInstantiation,Struct] vector +# 2310| ValueCategory = xvalue +# 2310| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2310| Type = [VoidType] void +# 2310| ValueCategory = prvalue +# 2310| getQualifier(): [ReuseExpr] reuse of temporary object +# 2310| Type = [Struct] String +# 2310| ValueCategory = xvalue +# 2310| getBeginEndDeclaration(): [DeclStmt] declaration +# 2310| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of (__begin) +# 2310| Type = [NestedTypedefType,UsingAliasTypedefType] iterator #-----| getVariable().getInitializer(): [Initializer] initializer for (__begin) -# 2308| getExpr(): [FunctionCall] call to begin -# 2308| Type = [NestedTypedefType,UsingAliasTypedefType] iterator -# 2308| ValueCategory = prvalue -# 2308| getQualifier(): [VariableAccess] (__range) -# 2308| Type = [RValueReferenceType] vector && -# 2308| ValueCategory = prvalue(load) +# 2310| getExpr(): [FunctionCall] call to begin +# 2310| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2310| ValueCategory = prvalue +# 2310| getQualifier(): [VariableAccess] (__range) +# 2310| Type = [RValueReferenceType] vector && +# 2310| ValueCategory = prvalue(load) #-----| getQualifier().getFullyConverted(): [CStyleCast] (const vector)... #-----| Conversion = [GlvalueConversion] glvalue conversion #-----| Type = [SpecifiedType] const vector @@ -21151,15 +21183,15 @@ ir.cpp: #-----| getExpr(): [ReferenceDereferenceExpr] (reference dereference) #-----| Type = [ClassTemplateInstantiation,Struct] vector #-----| ValueCategory = lvalue -# 2308| getDeclarationEntry(1): [VariableDeclarationEntry] declaration of (__end) -# 2308| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2310| getDeclarationEntry(1): [VariableDeclarationEntry] declaration of (__end) +# 2310| Type = [NestedTypedefType,UsingAliasTypedefType] iterator #-----| getVariable().getInitializer(): [Initializer] initializer for (__end) -# 2308| getExpr(): [FunctionCall] call to end -# 2308| Type = [NestedTypedefType,UsingAliasTypedefType] iterator -# 2308| ValueCategory = prvalue -# 2308| getQualifier(): [VariableAccess] (__range) -# 2308| Type = [RValueReferenceType] vector && -# 2308| ValueCategory = prvalue(load) +# 2310| getExpr(): [FunctionCall] call to end +# 2310| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2310| ValueCategory = prvalue +# 2310| getQualifier(): [VariableAccess] (__range) +# 2310| Type = [RValueReferenceType] vector && +# 2310| ValueCategory = prvalue(load) #-----| getQualifier().getFullyConverted(): [CStyleCast] (const vector)... #-----| Conversion = [GlvalueConversion] glvalue conversion #-----| Type = [SpecifiedType] const vector @@ -21167,18 +21199,18 @@ ir.cpp: #-----| getExpr(): [ReferenceDereferenceExpr] (reference dereference) #-----| Type = [ClassTemplateInstantiation,Struct] vector #-----| ValueCategory = lvalue -# 2308| getCondition(): [FunctionCall] call to operator!= -# 2308| Type = [BoolType] bool -# 2308| ValueCategory = prvalue -# 2308| getQualifier(): [VariableAccess] (__begin) -# 2308| Type = [NestedTypedefType,UsingAliasTypedefType] iterator -# 2308| ValueCategory = lvalue -# 2308| getArgument(0): [ConstructorCall] call to iterator -# 2308| Type = [VoidType] void -# 2308| ValueCategory = prvalue -# 2308| getArgument(0): [VariableAccess] (__end) -# 2308| Type = [NestedTypedefType,UsingAliasTypedefType] iterator -# 2308| ValueCategory = lvalue +# 2310| getCondition(): [FunctionCall] call to operator!= +# 2310| Type = [BoolType] bool +# 2310| ValueCategory = prvalue +# 2310| getQualifier(): [VariableAccess] (__begin) +# 2310| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2310| ValueCategory = lvalue +# 2310| getArgument(0): [ConstructorCall] call to iterator +# 2310| Type = [VoidType] void +# 2310| ValueCategory = prvalue +# 2310| getArgument(0): [VariableAccess] (__end) +# 2310| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2310| ValueCategory = lvalue #-----| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) #-----| Type = [LValueReferenceType] const iterator & #-----| ValueCategory = prvalue @@ -21193,1497 +21225,1497 @@ ir.cpp: #-----| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object #-----| Type = [ClassTemplateInstantiation,Struct] iterator #-----| ValueCategory = lvalue -# 2308| getUpdate(): [FunctionCall] call to operator++ -# 2308| Type = [LValueReferenceType] iterator & -# 2308| ValueCategory = prvalue -# 2308| getQualifier(): [VariableAccess] (__begin) -# 2308| Type = [NestedTypedefType,UsingAliasTypedefType] iterator -# 2308| ValueCategory = lvalue -# 2308| getChild(5): [DeclStmt] declaration -# 2308| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s -# 2308| Type = [Struct] String -# 2308| getVariable().getInitializer(): [Initializer] initializer for s -# 2308| getExpr(): [ConstructorCall] call to String -# 2308| Type = [VoidType] void -# 2308| ValueCategory = prvalue -# 2308| getArgument(0): [OverloadedPointerDereferenceExpr] call to operator* -# 2308| Type = [LValueReferenceType] String & -# 2308| ValueCategory = prvalue -# 2308| getQualifier(): [VariableAccess] (__begin) -# 2308| Type = [NestedTypedefType,UsingAliasTypedefType] iterator -# 2308| ValueCategory = lvalue +# 2310| getUpdate(): [FunctionCall] call to operator++ +# 2310| Type = [LValueReferenceType] iterator & +# 2310| ValueCategory = prvalue +# 2310| getQualifier(): [VariableAccess] (__begin) +# 2310| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2310| ValueCategory = lvalue +# 2310| getChild(5): [DeclStmt] declaration +# 2310| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s +# 2310| Type = [Struct] String +# 2310| getVariable().getInitializer(): [Initializer] initializer for s +# 2310| getExpr(): [ConstructorCall] call to String +# 2310| Type = [VoidType] void +# 2310| ValueCategory = prvalue +# 2310| getArgument(0): [OverloadedPointerDereferenceExpr] call to operator* +# 2310| Type = [LValueReferenceType] String & +# 2310| ValueCategory = prvalue +# 2310| getQualifier(): [VariableAccess] (__begin) +# 2310| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2310| ValueCategory = lvalue #-----| getQualifier().getFullyConverted(): [CStyleCast] (const iterator)... #-----| Conversion = [GlvalueConversion] glvalue conversion #-----| Type = [SpecifiedType] const iterator #-----| ValueCategory = lvalue -# 2308| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) -# 2308| Type = [LValueReferenceType] const String & -# 2308| ValueCategory = prvalue -# 2308| getExpr(): [CStyleCast] (const String)... -# 2308| Conversion = [GlvalueConversion] glvalue conversion -# 2308| Type = [SpecifiedType] const String -# 2308| ValueCategory = lvalue -# 2308| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 2308| Type = [Struct] String -# 2308| ValueCategory = lvalue -# 2308| getStmt(): [BlockStmt] { ... } -# 2309| getStmt(0): [DeclStmt] declaration -# 2309| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s2 -# 2309| Type = [Struct] String -# 2309| getVariable().getInitializer(): [Initializer] initializer for s2 -# 2309| getExpr(): [ConstructorCall] call to String -# 2309| Type = [VoidType] void -# 2309| ValueCategory = prvalue +# 2310| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) +# 2310| Type = [LValueReferenceType] const String & +# 2310| ValueCategory = prvalue +# 2310| getExpr(): [CStyleCast] (const String)... +# 2310| Conversion = [GlvalueConversion] glvalue conversion +# 2310| Type = [SpecifiedType] const String +# 2310| ValueCategory = lvalue +# 2310| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 2310| Type = [Struct] String +# 2310| ValueCategory = lvalue +# 2310| getStmt(): [BlockStmt] { ... } +# 2311| getStmt(0): [DeclStmt] declaration +# 2311| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s2 +# 2311| Type = [Struct] String +# 2311| getVariable().getInitializer(): [Initializer] initializer for s2 +# 2311| getExpr(): [ConstructorCall] call to String +# 2311| Type = [VoidType] void +# 2311| ValueCategory = prvalue +# 2312| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2312| Type = [VoidType] void +# 2312| ValueCategory = prvalue +# 2312| getQualifier(): [VariableAccess] s2 +# 2312| Type = [Struct] String +# 2312| ValueCategory = lvalue +# 2310| getImplicitDestructorCall(0): [DestructorCall] call to ~vector +# 2310| Type = [VoidType] void +# 2310| ValueCategory = prvalue +# 2310| getQualifier(): [ReuseExpr] reuse of temporary object +# 2310| Type = [ClassTemplateInstantiation,Struct] vector +# 2310| ValueCategory = xvalue +# 2310| getUpdate().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 2310| Type = [ClassTemplateInstantiation,Struct] iterator +# 2310| ValueCategory = lvalue # 2310| getImplicitDestructorCall(0): [DestructorCall] call to ~String # 2310| Type = [VoidType] void # 2310| ValueCategory = prvalue -# 2310| getQualifier(): [VariableAccess] s2 +# 2310| getQualifier(): [VariableAccess] s # 2310| Type = [Struct] String # 2310| ValueCategory = lvalue -# 2308| getImplicitDestructorCall(0): [DestructorCall] call to ~vector -# 2308| Type = [VoidType] void -# 2308| ValueCategory = prvalue -# 2308| getQualifier(): [ReuseExpr] reuse of temporary object -# 2308| Type = [ClassTemplateInstantiation,Struct] vector -# 2308| ValueCategory = xvalue -# 2308| getUpdate().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 2308| Type = [ClassTemplateInstantiation,Struct] iterator -# 2308| ValueCategory = lvalue -# 2308| getImplicitDestructorCall(0): [DestructorCall] call to ~String -# 2308| Type = [VoidType] void -# 2308| ValueCategory = prvalue -# 2308| getQualifier(): [VariableAccess] s -# 2308| Type = [Struct] String -# 2308| ValueCategory = lvalue -# 2312| getStmt(3): [ForStmt] for(...;...;...) ... -# 2312| getInitialization(): [DeclStmt] declaration -# 2312| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s -# 2312| Type = [Struct] String -# 2312| getVariable().getInitializer(): [Initializer] initializer for s -# 2312| getExpr(): [ConstructorCall] call to String -# 2312| Type = [VoidType] void -# 2312| ValueCategory = prvalue -# 2312| getArgument(0): hello -# 2312| Type = [ArrayType] const char[6] -# 2312| Value = [StringLiteral] "hello" -# 2312| ValueCategory = lvalue -# 2312| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 2312| Type = [PointerType] const char * -# 2312| ValueCategory = prvalue -# 2312| getDeclarationEntry(1): [VariableDeclarationEntry] definition of s2 -# 2312| Type = [Struct] String -# 2312| getVariable().getInitializer(): [Initializer] initializer for s2 -# 2312| getExpr(): [ConstructorCall] call to String -# 2312| Type = [VoidType] void -# 2312| ValueCategory = prvalue -# 2312| getArgument(0): world -# 2312| Type = [ArrayType] const char[6] -# 2312| Value = [StringLiteral] "world" -# 2312| ValueCategory = lvalue -# 2312| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 2312| Type = [PointerType] const char * -# 2312| ValueCategory = prvalue -# 2312| getCondition(): [NEExpr] ... != ... -# 2312| Type = [BoolType] bool -# 2312| ValueCategory = prvalue -# 2312| getLeftOperand(): [VariableAccess] c -# 2312| Type = [PlainCharType] char -# 2312| ValueCategory = prvalue(load) -# 2312| getRightOperand(): [Literal] 0 -# 2312| Type = [IntType] int -# 2312| Value = [Literal] 0 -# 2312| ValueCategory = prvalue -# 2312| getLeftOperand().getFullyConverted(): [CStyleCast] (int)... -# 2312| Conversion = [IntegralConversion] integral conversion -# 2312| Type = [IntType] int -# 2312| ValueCategory = prvalue -# 2312| getUpdate(): [AssignExpr] ... = ... -# 2312| Type = [PlainCharType] char -# 2312| ValueCategory = lvalue -# 2312| getLValue(): [VariableAccess] c -# 2312| Type = [PlainCharType] char -# 2312| ValueCategory = lvalue -# 2312| getRValue(): [FunctionCall] call to pop_back -# 2312| Type = [PlainCharType] char -# 2312| ValueCategory = prvalue -# 2312| getQualifier(): [VariableAccess] s -# 2312| Type = [Struct] String -# 2312| ValueCategory = lvalue -# 2312| getStmt(): [BlockStmt] { ... } -# 2313| getStmt(0): [ExprStmt] ExprStmt -# 2313| getExpr(): [AssignExpr] ... = ... -# 2313| Type = [PlainCharType] char -# 2313| ValueCategory = lvalue -# 2313| getLValue(): [VariableAccess] c -# 2313| Type = [PlainCharType] char -# 2313| ValueCategory = lvalue -# 2313| getRValue(): [Literal] 0 -# 2313| Type = [IntType] int -# 2313| Value = [Literal] 0 -# 2313| ValueCategory = prvalue -# 2313| getRValue().getFullyConverted(): [CStyleCast] (char)... -# 2313| Conversion = [IntegralConversion] integral conversion -# 2313| Type = [PlainCharType] char -# 2313| Value = [CStyleCast] 0 -# 2313| ValueCategory = prvalue -# 2312| getImplicitDestructorCall(0): [DestructorCall] call to ~String -# 2312| Type = [VoidType] void -# 2312| ValueCategory = prvalue -# 2312| getQualifier(): [VariableAccess] s2 -# 2312| Type = [Struct] String -# 2312| ValueCategory = lvalue -# 2312| getImplicitDestructorCall(1): [DestructorCall] call to ~String -# 2312| Type = [VoidType] void -# 2312| ValueCategory = prvalue -# 2312| getQualifier(): [VariableAccess] s -# 2312| Type = [Struct] String -# 2312| ValueCategory = lvalue -# 2315| getStmt(4): [ReturnStmt] return ... -# 2317| [TopLevelFunction] void IfDestructors2(bool) -# 2317| : -# 2317| getParameter(0): [Parameter] b -# 2317| Type = [BoolType] bool -# 2317| getEntryPoint(): [BlockStmt] { ... } -# 2318| getStmt(0): [IfStmt] if (...) ... -# 2318| getInitialization(): [DeclStmt] declaration -# 2318| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s -# 2318| Type = [Struct] String -# 2318| getVariable().getInitializer(): [Initializer] initializer for s -# 2318| getExpr(): [ConstructorCall] call to String -# 2318| Type = [VoidType] void -# 2318| ValueCategory = prvalue -# 2318| getArgument(0): hello -# 2318| Type = [ArrayType] const char[6] -# 2318| Value = [StringLiteral] "hello" -# 2318| ValueCategory = lvalue -# 2318| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 2318| Type = [PointerType] const char * -# 2318| ValueCategory = prvalue -# 2318| getCondition(): [VariableAccess] b -# 2318| Type = [BoolType] bool -# 2318| ValueCategory = prvalue(load) -# 2318| getThen(): [BlockStmt] { ... } -# 2319| getStmt(0): [DeclStmt] declaration -# 2319| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x -# 2319| Type = [IntType] int -# 2319| getVariable().getInitializer(): [Initializer] initializer for x -# 2319| getExpr(): [Literal] 0 -# 2319| Type = [IntType] int -# 2319| Value = [Literal] 0 -# 2319| ValueCategory = prvalue -# 2320| getElse(): [BlockStmt] { ... } +# 2314| getStmt(3): [ForStmt] for(...;...;...) ... +# 2314| getInitialization(): [DeclStmt] declaration +# 2314| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s +# 2314| Type = [Struct] String +# 2314| getVariable().getInitializer(): [Initializer] initializer for s +# 2314| getExpr(): [ConstructorCall] call to String +# 2314| Type = [VoidType] void +# 2314| ValueCategory = prvalue +# 2314| getArgument(0): hello +# 2314| Type = [ArrayType] const char[6] +# 2314| Value = [StringLiteral] "hello" +# 2314| ValueCategory = lvalue +# 2314| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 2314| Type = [PointerType] const char * +# 2314| ValueCategory = prvalue +# 2314| getDeclarationEntry(1): [VariableDeclarationEntry] definition of s2 +# 2314| Type = [Struct] String +# 2314| getVariable().getInitializer(): [Initializer] initializer for s2 +# 2314| getExpr(): [ConstructorCall] call to String +# 2314| Type = [VoidType] void +# 2314| ValueCategory = prvalue +# 2314| getArgument(0): world +# 2314| Type = [ArrayType] const char[6] +# 2314| Value = [StringLiteral] "world" +# 2314| ValueCategory = lvalue +# 2314| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 2314| Type = [PointerType] const char * +# 2314| ValueCategory = prvalue +# 2314| getCondition(): [NEExpr] ... != ... +# 2314| Type = [BoolType] bool +# 2314| ValueCategory = prvalue +# 2314| getLeftOperand(): [VariableAccess] c +# 2314| Type = [PlainCharType] char +# 2314| ValueCategory = prvalue(load) +# 2314| getRightOperand(): [Literal] 0 +# 2314| Type = [IntType] int +# 2314| Value = [Literal] 0 +# 2314| ValueCategory = prvalue +# 2314| getLeftOperand().getFullyConverted(): [CStyleCast] (int)... +# 2314| Conversion = [IntegralConversion] integral conversion +# 2314| Type = [IntType] int +# 2314| ValueCategory = prvalue +# 2314| getUpdate(): [AssignExpr] ... = ... +# 2314| Type = [PlainCharType] char +# 2314| ValueCategory = lvalue +# 2314| getLValue(): [VariableAccess] c +# 2314| Type = [PlainCharType] char +# 2314| ValueCategory = lvalue +# 2314| getRValue(): [FunctionCall] call to pop_back +# 2314| Type = [PlainCharType] char +# 2314| ValueCategory = prvalue +# 2314| getQualifier(): [VariableAccess] s +# 2314| Type = [Struct] String +# 2314| ValueCategory = lvalue +# 2314| getStmt(): [BlockStmt] { ... } +# 2315| getStmt(0): [ExprStmt] ExprStmt +# 2315| getExpr(): [AssignExpr] ... = ... +# 2315| Type = [PlainCharType] char +# 2315| ValueCategory = lvalue +# 2315| getLValue(): [VariableAccess] c +# 2315| Type = [PlainCharType] char +# 2315| ValueCategory = lvalue +# 2315| getRValue(): [Literal] 0 +# 2315| Type = [IntType] int +# 2315| Value = [Literal] 0 +# 2315| ValueCategory = prvalue +# 2315| getRValue().getFullyConverted(): [CStyleCast] (char)... +# 2315| Conversion = [IntegralConversion] integral conversion +# 2315| Type = [PlainCharType] char +# 2315| Value = [CStyleCast] 0 +# 2315| ValueCategory = prvalue +# 2314| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2314| Type = [VoidType] void +# 2314| ValueCategory = prvalue +# 2314| getQualifier(): [VariableAccess] s2 +# 2314| Type = [Struct] String +# 2314| ValueCategory = lvalue +# 2314| getImplicitDestructorCall(1): [DestructorCall] call to ~String +# 2314| Type = [VoidType] void +# 2314| ValueCategory = prvalue +# 2314| getQualifier(): [VariableAccess] s +# 2314| Type = [Struct] String +# 2314| ValueCategory = lvalue +# 2317| getStmt(4): [ReturnStmt] return ... +# 2319| [TopLevelFunction] void IfDestructors2(bool) +# 2319| : +# 2319| getParameter(0): [Parameter] b +# 2319| Type = [BoolType] bool +# 2319| getEntryPoint(): [BlockStmt] { ... } +# 2320| getStmt(0): [IfStmt] if (...) ... +# 2320| getInitialization(): [DeclStmt] declaration +# 2320| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s +# 2320| Type = [Struct] String +# 2320| getVariable().getInitializer(): [Initializer] initializer for s +# 2320| getExpr(): [ConstructorCall] call to String +# 2320| Type = [VoidType] void +# 2320| ValueCategory = prvalue +# 2320| getArgument(0): hello +# 2320| Type = [ArrayType] const char[6] +# 2320| Value = [StringLiteral] "hello" +# 2320| ValueCategory = lvalue +# 2320| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 2320| Type = [PointerType] const char * +# 2320| ValueCategory = prvalue +# 2320| getCondition(): [VariableAccess] b +# 2320| Type = [BoolType] bool +# 2320| ValueCategory = prvalue(load) +# 2320| getThen(): [BlockStmt] { ... } # 2321| getStmt(0): [DeclStmt] declaration -# 2321| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y +# 2321| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x # 2321| Type = [IntType] int -# 2321| getVariable().getInitializer(): [Initializer] initializer for y +# 2321| getVariable().getInitializer(): [Initializer] initializer for x # 2321| getExpr(): [Literal] 0 # 2321| Type = [IntType] int # 2321| Value = [Literal] 0 # 2321| ValueCategory = prvalue -# 2322| getImplicitDestructorCall(0): [DestructorCall] call to ~String -# 2322| Type = [VoidType] void -# 2322| ValueCategory = prvalue -# 2322| getQualifier(): [VariableAccess] s -# 2322| Type = [Struct] String -# 2322| ValueCategory = lvalue -# 2323| getStmt(1): [ReturnStmt] return ... -# 2325| [CopyAssignmentOperator] Bool& Bool::operator=(Bool const&) -# 2325| : +# 2322| getElse(): [BlockStmt] { ... } +# 2323| getStmt(0): [DeclStmt] declaration +# 2323| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y +# 2323| Type = [IntType] int +# 2323| getVariable().getInitializer(): [Initializer] initializer for y +# 2323| getExpr(): [Literal] 0 +# 2323| Type = [IntType] int +# 2323| Value = [Literal] 0 +# 2323| ValueCategory = prvalue +# 2324| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2324| Type = [VoidType] void +# 2324| ValueCategory = prvalue +# 2324| getQualifier(): [VariableAccess] s +# 2324| Type = [Struct] String +# 2324| ValueCategory = lvalue +# 2325| getStmt(1): [ReturnStmt] return ... +# 2327| [CopyAssignmentOperator] Bool& Bool::operator=(Bool const&) +# 2327| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const Bool & -# 2325| [CopyConstructor] void Bool::Bool(Bool const&) -# 2325| : +# 2327| [CopyConstructor] void Bool::Bool(Bool const&) +# 2327| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const Bool & -# 2327| [Constructor] void Bool::Bool(bool) -# 2327| : -# 2327| getParameter(0): [Parameter] b_ -# 2327| Type = [BoolType] bool -# 2328| [ConversionOperator] bool Bool::operator bool() -# 2328| : -# 2329| [Destructor] void Bool::~Bool() +# 2329| [Constructor] void Bool::Bool(bool) # 2329| : -# 2332| [TopLevelFunction] void IfDestructors3(bool) -# 2332| : -# 2332| getParameter(0): [Parameter] b -# 2332| Type = [BoolType] bool -# 2332| getEntryPoint(): [BlockStmt] { ... } -# 2333| getStmt(0): [IfStmt] if (...) ... -# 2333| getCondition(): [ConditionDeclExpr] (condition decl) -# 2333| Type = [BoolType] bool -# 2333| ValueCategory = prvalue -# 2333| getChild(0): [FunctionCall] call to operator bool -# 2333| Type = [BoolType] bool -# 2333| ValueCategory = prvalue -# 2333| getQualifier(): [VariableAccess] B -# 2333| Type = [Class] Bool -# 2333| ValueCategory = prvalue(load) -# 2333| getInitializingExpr(): [ConstructorCall] call to Bool -# 2333| Type = [VoidType] void -# 2333| ValueCategory = prvalue -# 2333| getArgument(0): [VariableAccess] b -# 2333| Type = [BoolType] bool -# 2333| ValueCategory = prvalue(load) -# 2333| getThen(): [BlockStmt] { ... } -# 2334| getStmt(0): [DeclStmt] declaration -# 2334| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s1 -# 2334| Type = [Struct] String -# 2334| getVariable().getInitializer(): [Initializer] initializer for s1 -# 2334| getExpr(): [ConstructorCall] call to String -# 2334| Type = [VoidType] void -# 2334| ValueCategory = prvalue -# 2335| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2329| getParameter(0): [Parameter] b_ +# 2329| Type = [BoolType] bool +# 2330| [ConversionOperator] bool Bool::operator bool() +# 2330| : +# 2331| [Destructor] void Bool::~Bool() +# 2331| : +# 2334| [TopLevelFunction] void IfDestructors3(bool) +# 2334| : +# 2334| getParameter(0): [Parameter] b +# 2334| Type = [BoolType] bool +# 2334| getEntryPoint(): [BlockStmt] { ... } +# 2335| getStmt(0): [IfStmt] if (...) ... +# 2335| getCondition(): [ConditionDeclExpr] (condition decl) +# 2335| Type = [BoolType] bool +# 2335| ValueCategory = prvalue +# 2335| getChild(0): [FunctionCall] call to operator bool +# 2335| Type = [BoolType] bool +# 2335| ValueCategory = prvalue +# 2335| getQualifier(): [VariableAccess] B +# 2335| Type = [Class] Bool +# 2335| ValueCategory = prvalue(load) +# 2335| getInitializingExpr(): [ConstructorCall] call to Bool # 2335| Type = [VoidType] void # 2335| ValueCategory = prvalue -# 2335| getQualifier(): [VariableAccess] s1 -# 2335| Type = [Struct] String -# 2335| ValueCategory = lvalue -# 2335| getElse(): [BlockStmt] { ... } +# 2335| getArgument(0): [VariableAccess] b +# 2335| Type = [BoolType] bool +# 2335| ValueCategory = prvalue(load) +# 2335| getThen(): [BlockStmt] { ... } # 2336| getStmt(0): [DeclStmt] declaration -# 2336| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s2 +# 2336| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s1 # 2336| Type = [Struct] String -# 2336| getVariable().getInitializer(): [Initializer] initializer for s2 +# 2336| getVariable().getInitializer(): [Initializer] initializer for s1 # 2336| getExpr(): [ConstructorCall] call to String # 2336| Type = [VoidType] void # 2336| ValueCategory = prvalue # 2337| getImplicitDestructorCall(0): [DestructorCall] call to ~String # 2337| Type = [VoidType] void # 2337| ValueCategory = prvalue -# 2337| getQualifier(): [VariableAccess] s2 +# 2337| getQualifier(): [VariableAccess] s1 # 2337| Type = [Struct] String # 2337| ValueCategory = lvalue -# 2337| getImplicitDestructorCall(0): [DestructorCall] call to ~Bool -# 2337| Type = [VoidType] void -# 2337| ValueCategory = prvalue -# 2337| getQualifier(): [VariableAccess] B -# 2337| Type = [Class] Bool -# 2337| ValueCategory = lvalue -# 2338| getStmt(1): [ReturnStmt] return ... -# 2340| [TopLevelFunction] void WhileLoopDestructors(bool) -# 2340| : -# 2340| getParameter(0): [Parameter] b -# 2340| Type = [BoolType] bool -# 2340| getEntryPoint(): [BlockStmt] { ... } -# 2341| getStmt(0): [BlockStmt] { ... } -# 2342| getStmt(0): [DeclStmt] declaration -# 2342| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s -# 2342| Type = [Struct] String -# 2342| getVariable().getInitializer(): [Initializer] initializer for s -# 2342| getExpr(): [ConstructorCall] call to String -# 2342| Type = [VoidType] void -# 2342| ValueCategory = prvalue -# 2343| getStmt(1): [WhileStmt] while (...) ... -# 2343| getCondition(): [VariableAccess] b -# 2343| Type = [BoolType] bool -# 2343| ValueCategory = prvalue(load) -# 2343| getStmt(): [BlockStmt] { ... } -# 2344| getStmt(0): [ExprStmt] ExprStmt -# 2344| getExpr(): [AssignExpr] ... = ... -# 2344| Type = [BoolType] bool -# 2344| ValueCategory = lvalue -# 2344| getLValue(): [VariableAccess] b -# 2344| Type = [BoolType] bool -# 2344| ValueCategory = lvalue -# 2344| getRValue(): [Literal] 0 -# 2344| Type = [BoolType] bool -# 2344| Value = [Literal] 0 -# 2344| ValueCategory = prvalue -# 2346| getImplicitDestructorCall(0): [DestructorCall] call to ~String -# 2346| Type = [VoidType] void -# 2346| ValueCategory = prvalue -# 2346| getQualifier(): [VariableAccess] s -# 2346| Type = [Struct] String -# 2346| ValueCategory = lvalue -# 2348| getStmt(1): [BlockStmt] { ... } -# 2349| getStmt(0): [WhileStmt] while (...) ... -# 2349| getCondition(): [ConditionDeclExpr] (condition decl) -# 2349| Type = [BoolType] bool -# 2349| ValueCategory = prvalue -# 2349| getChild(0): [FunctionCall] call to operator bool -# 2349| Type = [BoolType] bool -# 2349| ValueCategory = prvalue -# 2349| getQualifier(): [VariableAccess] B -# 2349| Type = [Class] Bool -# 2349| ValueCategory = prvalue(load) -# 2349| getInitializingExpr(): [ConstructorCall] call to Bool -# 2349| Type = [VoidType] void -# 2349| ValueCategory = prvalue -# 2349| getArgument(0): [VariableAccess] b -# 2349| Type = [BoolType] bool -# 2349| ValueCategory = prvalue(load) -# 2349| getStmt(): [BlockStmt] { ... } -# 2350| getStmt(0): [ExprStmt] ExprStmt -# 2350| getExpr(): [AssignExpr] ... = ... -# 2350| Type = [BoolType] bool -# 2350| ValueCategory = lvalue -# 2350| getLValue(): [VariableAccess] b -# 2350| Type = [BoolType] bool -# 2350| ValueCategory = lvalue -# 2350| getRValue(): [Literal] 0 -# 2350| Type = [BoolType] bool -# 2350| Value = [Literal] 0 -# 2350| ValueCategory = prvalue -# 2351| getImplicitDestructorCall(0): [DestructorCall] call to ~Bool -# 2351| Type = [VoidType] void +# 2337| getElse(): [BlockStmt] { ... } +# 2338| getStmt(0): [DeclStmt] declaration +# 2338| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s2 +# 2338| Type = [Struct] String +# 2338| getVariable().getInitializer(): [Initializer] initializer for s2 +# 2338| getExpr(): [ConstructorCall] call to String +# 2338| Type = [VoidType] void +# 2338| ValueCategory = prvalue +# 2339| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2339| Type = [VoidType] void +# 2339| ValueCategory = prvalue +# 2339| getQualifier(): [VariableAccess] s2 +# 2339| Type = [Struct] String +# 2339| ValueCategory = lvalue +# 2339| getImplicitDestructorCall(0): [DestructorCall] call to ~Bool +# 2339| Type = [VoidType] void +# 2339| ValueCategory = prvalue +# 2339| getQualifier(): [VariableAccess] B +# 2339| Type = [Class] Bool +# 2339| ValueCategory = lvalue +# 2340| getStmt(1): [ReturnStmt] return ... +# 2342| [TopLevelFunction] void WhileLoopDestructors(bool) +# 2342| : +# 2342| getParameter(0): [Parameter] b +# 2342| Type = [BoolType] bool +# 2342| getEntryPoint(): [BlockStmt] { ... } +# 2343| getStmt(0): [BlockStmt] { ... } +# 2344| getStmt(0): [DeclStmt] declaration +# 2344| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s +# 2344| Type = [Struct] String +# 2344| getVariable().getInitializer(): [Initializer] initializer for s +# 2344| getExpr(): [ConstructorCall] call to String +# 2344| Type = [VoidType] void +# 2344| ValueCategory = prvalue +# 2345| getStmt(1): [WhileStmt] while (...) ... +# 2345| getCondition(): [VariableAccess] b +# 2345| Type = [BoolType] bool +# 2345| ValueCategory = prvalue(load) +# 2345| getStmt(): [BlockStmt] { ... } +# 2346| getStmt(0): [ExprStmt] ExprStmt +# 2346| getExpr(): [AssignExpr] ... = ... +# 2346| Type = [BoolType] bool +# 2346| ValueCategory = lvalue +# 2346| getLValue(): [VariableAccess] b +# 2346| Type = [BoolType] bool +# 2346| ValueCategory = lvalue +# 2346| getRValue(): [Literal] 0 +# 2346| Type = [BoolType] bool +# 2346| Value = [Literal] 0 +# 2346| ValueCategory = prvalue +# 2348| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2348| Type = [VoidType] void +# 2348| ValueCategory = prvalue +# 2348| getQualifier(): [VariableAccess] s +# 2348| Type = [Struct] String +# 2348| ValueCategory = lvalue +# 2350| getStmt(1): [BlockStmt] { ... } +# 2351| getStmt(0): [WhileStmt] while (...) ... +# 2351| getCondition(): [ConditionDeclExpr] (condition decl) +# 2351| Type = [BoolType] bool +# 2351| ValueCategory = prvalue +# 2351| getChild(0): [FunctionCall] call to operator bool +# 2351| Type = [BoolType] bool # 2351| ValueCategory = prvalue # 2351| getQualifier(): [VariableAccess] B # 2351| Type = [Class] Bool -# 2351| ValueCategory = lvalue -# 2351| getImplicitDestructorCall(0): [DestructorCall] call to ~Bool -# 2351| Type = [VoidType] void -# 2351| ValueCategory = prvalue -# 2351| getQualifier(): [VariableAccess] B -# 2351| Type = [Class] Bool -# 2351| ValueCategory = lvalue -# 2353| getStmt(2): [ReturnStmt] return ... -# 2355| [TopLevelFunction] void VoidFunc() -# 2355| : -# 2355| getEntryPoint(): [BlockStmt] { ... } -# 2355| getStmt(0): [ReturnStmt] return ... -# 2357| [TopLevelFunction] void IfReturnDestructors(bool) +# 2351| ValueCategory = prvalue(load) +# 2351| getInitializingExpr(): [ConstructorCall] call to Bool +# 2351| Type = [VoidType] void +# 2351| ValueCategory = prvalue +# 2351| getArgument(0): [VariableAccess] b +# 2351| Type = [BoolType] bool +# 2351| ValueCategory = prvalue(load) +# 2351| getStmt(): [BlockStmt] { ... } +# 2352| getStmt(0): [ExprStmt] ExprStmt +# 2352| getExpr(): [AssignExpr] ... = ... +# 2352| Type = [BoolType] bool +# 2352| ValueCategory = lvalue +# 2352| getLValue(): [VariableAccess] b +# 2352| Type = [BoolType] bool +# 2352| ValueCategory = lvalue +# 2352| getRValue(): [Literal] 0 +# 2352| Type = [BoolType] bool +# 2352| Value = [Literal] 0 +# 2352| ValueCategory = prvalue +# 2353| getImplicitDestructorCall(0): [DestructorCall] call to ~Bool +# 2353| Type = [VoidType] void +# 2353| ValueCategory = prvalue +# 2353| getQualifier(): [VariableAccess] B +# 2353| Type = [Class] Bool +# 2353| ValueCategory = lvalue +# 2353| getImplicitDestructorCall(0): [DestructorCall] call to ~Bool +# 2353| Type = [VoidType] void +# 2353| ValueCategory = prvalue +# 2353| getQualifier(): [VariableAccess] B +# 2353| Type = [Class] Bool +# 2353| ValueCategory = lvalue +# 2355| getStmt(2): [ReturnStmt] return ... +# 2357| [TopLevelFunction] void VoidFunc() # 2357| : -# 2357| getParameter(0): [Parameter] b -# 2357| Type = [BoolType] bool # 2357| getEntryPoint(): [BlockStmt] { ... } -# 2358| getStmt(0): [DeclStmt] declaration -# 2358| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s -# 2358| Type = [Struct] String -# 2358| getVariable().getInitializer(): [Initializer] initializer for s -# 2358| getExpr(): [ConstructorCall] call to String -# 2358| Type = [VoidType] void -# 2358| ValueCategory = prvalue -# 2359| getStmt(1): [IfStmt] if (...) ... -# 2359| getCondition(): [VariableAccess] b -# 2359| Type = [BoolType] bool -# 2359| ValueCategory = prvalue(load) -# 2359| getThen(): [BlockStmt] { ... } -# 2360| getStmt(0): [ReturnStmt] return ... -# 2366| getImplicitDestructorCall(0): [DestructorCall] call to ~String -# 2366| Type = [VoidType] void -# 2366| ValueCategory = prvalue -# 2366| getQualifier(): [VariableAccess] s -# 2366| Type = [Struct] String -# 2366| ValueCategory = lvalue -# 2362| getStmt(2): [IfStmt] if (...) ... -# 2362| getCondition(): [VariableAccess] b -# 2362| Type = [BoolType] bool -# 2362| ValueCategory = prvalue(load) -# 2362| getThen(): [BlockStmt] { ... } -# 2363| getStmt(0): [ReturnStmt] return ... -# 2363| getExpr(): [FunctionCall] call to VoidFunc -# 2363| Type = [VoidType] void -# 2363| ValueCategory = prvalue -# 2366| getImplicitDestructorCall(0): [DestructorCall] call to ~String -# 2366| Type = [VoidType] void -# 2366| ValueCategory = prvalue -# 2366| getQualifier(): [VariableAccess] s -# 2366| Type = [Struct] String -# 2366| ValueCategory = lvalue -# 2365| getStmt(3): [ExprStmt] ExprStmt -# 2365| getExpr(): [VariableAccess] s -# 2365| Type = [Struct] String -# 2365| ValueCategory = lvalue -# 2366| getStmt(4): [ReturnStmt] return ... -# 2366| getImplicitDestructorCall(0): [DestructorCall] call to ~String -# 2366| Type = [VoidType] void -# 2366| ValueCategory = prvalue -# 2366| getQualifier(): [VariableAccess] s -# 2366| Type = [Struct] String -# 2366| ValueCategory = lvalue -# 2368| [TopLevelFunction] int IfReturnDestructors3(bool) -# 2368| : -# 2368| getParameter(0): [Parameter] b -# 2368| Type = [BoolType] bool -# 2368| getEntryPoint(): [BlockStmt] { ... } -# 2369| getStmt(0): [DeclStmt] declaration -# 2369| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s -# 2369| Type = [Struct] String -# 2369| getVariable().getInitializer(): [Initializer] initializer for s -# 2369| getExpr(): [ConstructorCall] call to String -# 2369| Type = [VoidType] void -# 2369| ValueCategory = prvalue -# 2370| getStmt(1): [IfStmt] if (...) ... -# 2370| getCondition(): [VariableAccess] b -# 2370| Type = [BoolType] bool -# 2370| ValueCategory = prvalue(load) -# 2370| getThen(): [BlockStmt] { ... } -# 2371| getStmt(0): [ReturnStmt] return ... -# 2371| getExpr(): [Literal] 1 -# 2371| Type = [IntType] int -# 2371| Value = [Literal] 1 +# 2357| getStmt(0): [ReturnStmt] return ... +# 2359| [TopLevelFunction] void IfReturnDestructors(bool) +# 2359| : +# 2359| getParameter(0): [Parameter] b +# 2359| Type = [BoolType] bool +# 2359| getEntryPoint(): [BlockStmt] { ... } +# 2360| getStmt(0): [DeclStmt] declaration +# 2360| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s +# 2360| Type = [Struct] String +# 2360| getVariable().getInitializer(): [Initializer] initializer for s +# 2360| getExpr(): [ConstructorCall] call to String +# 2360| Type = [VoidType] void +# 2360| ValueCategory = prvalue +# 2361| getStmt(1): [IfStmt] if (...) ... +# 2361| getCondition(): [VariableAccess] b +# 2361| Type = [BoolType] bool +# 2361| ValueCategory = prvalue(load) +# 2361| getThen(): [BlockStmt] { ... } +# 2362| getStmt(0): [ReturnStmt] return ... +# 2368| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2368| Type = [VoidType] void +# 2368| ValueCategory = prvalue +# 2368| getQualifier(): [VariableAccess] s +# 2368| Type = [Struct] String +# 2368| ValueCategory = lvalue +# 2364| getStmt(2): [IfStmt] if (...) ... +# 2364| getCondition(): [VariableAccess] b +# 2364| Type = [BoolType] bool +# 2364| ValueCategory = prvalue(load) +# 2364| getThen(): [BlockStmt] { ... } +# 2365| getStmt(0): [ReturnStmt] return ... +# 2365| getExpr(): [FunctionCall] call to VoidFunc +# 2365| Type = [VoidType] void +# 2365| ValueCategory = prvalue +# 2368| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2368| Type = [VoidType] void +# 2368| ValueCategory = prvalue +# 2368| getQualifier(): [VariableAccess] s +# 2368| Type = [Struct] String +# 2368| ValueCategory = lvalue +# 2367| getStmt(3): [ExprStmt] ExprStmt +# 2367| getExpr(): [VariableAccess] s +# 2367| Type = [Struct] String +# 2367| ValueCategory = lvalue +# 2368| getStmt(4): [ReturnStmt] return ... +# 2368| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2368| Type = [VoidType] void +# 2368| ValueCategory = prvalue +# 2368| getQualifier(): [VariableAccess] s +# 2368| Type = [Struct] String +# 2368| ValueCategory = lvalue +# 2370| [TopLevelFunction] int IfReturnDestructors3(bool) +# 2370| : +# 2370| getParameter(0): [Parameter] b +# 2370| Type = [BoolType] bool +# 2370| getEntryPoint(): [BlockStmt] { ... } +# 2371| getStmt(0): [DeclStmt] declaration +# 2371| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s +# 2371| Type = [Struct] String +# 2371| getVariable().getInitializer(): [Initializer] initializer for s +# 2371| getExpr(): [ConstructorCall] call to String +# 2371| Type = [VoidType] void # 2371| ValueCategory = prvalue -# 2374| getImplicitDestructorCall(0): [DestructorCall] call to ~String -# 2374| Type = [VoidType] void -# 2374| ValueCategory = prvalue -# 2374| getQualifier(): [VariableAccess] s -# 2374| Type = [Struct] String -# 2374| ValueCategory = lvalue -# 2373| getStmt(2): [ReturnStmt] return ... -# 2373| getExpr(): [Literal] 0 -# 2373| Type = [IntType] int -# 2373| Value = [Literal] 0 -# 2373| ValueCategory = prvalue -# 2374| getImplicitDestructorCall(0): [DestructorCall] call to ~String -# 2374| Type = [VoidType] void -# 2374| ValueCategory = prvalue -# 2374| getQualifier(): [VariableAccess] s -# 2374| Type = [Struct] String -# 2374| ValueCategory = lvalue -# 2376| [TopLevelFunction] void VoidReturnDestructors() -# 2376| : -# 2376| getEntryPoint(): [BlockStmt] { ... } -# 2377| getStmt(0): [DeclStmt] declaration -# 2377| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s -# 2377| Type = [Struct] String -# 2377| getVariable().getInitializer(): [Initializer] initializer for s -# 2377| getExpr(): [ConstructorCall] call to String -# 2377| Type = [VoidType] void -# 2377| ValueCategory = prvalue -# 2378| getStmt(1): [ReturnStmt] return ... -# 2378| getExpr(): [FunctionCall] call to VoidFunc -# 2378| Type = [VoidType] void -# 2378| ValueCategory = prvalue -# 2379| getImplicitDestructorCall(0): [DestructorCall] call to ~String -# 2379| Type = [VoidType] void -# 2379| ValueCategory = prvalue -# 2379| getQualifier(): [VariableAccess] s -# 2379| Type = [Struct] String -# 2379| ValueCategory = lvalue -# 2382| [CopyAssignmentOperator] return_routine_type::HasVoidToIntFunc& return_routine_type::HasVoidToIntFunc::operator=(return_routine_type::HasVoidToIntFunc const&) -# 2382| : +# 2372| getStmt(1): [IfStmt] if (...) ... +# 2372| getCondition(): [VariableAccess] b +# 2372| Type = [BoolType] bool +# 2372| ValueCategory = prvalue(load) +# 2372| getThen(): [BlockStmt] { ... } +# 2373| getStmt(0): [ReturnStmt] return ... +# 2373| getExpr(): [Literal] 1 +# 2373| Type = [IntType] int +# 2373| Value = [Literal] 1 +# 2373| ValueCategory = prvalue +# 2376| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2376| Type = [VoidType] void +# 2376| ValueCategory = prvalue +# 2376| getQualifier(): [VariableAccess] s +# 2376| Type = [Struct] String +# 2376| ValueCategory = lvalue +# 2375| getStmt(2): [ReturnStmt] return ... +# 2375| getExpr(): [Literal] 0 +# 2375| Type = [IntType] int +# 2375| Value = [Literal] 0 +# 2375| ValueCategory = prvalue +# 2376| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2376| Type = [VoidType] void +# 2376| ValueCategory = prvalue +# 2376| getQualifier(): [VariableAccess] s +# 2376| Type = [Struct] String +# 2376| ValueCategory = lvalue +# 2378| [TopLevelFunction] void VoidReturnDestructors() +# 2378| : +# 2378| getEntryPoint(): [BlockStmt] { ... } +# 2379| getStmt(0): [DeclStmt] declaration +# 2379| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s +# 2379| Type = [Struct] String +# 2379| getVariable().getInitializer(): [Initializer] initializer for s +# 2379| getExpr(): [ConstructorCall] call to String +# 2379| Type = [VoidType] void +# 2379| ValueCategory = prvalue +# 2380| getStmt(1): [ReturnStmt] return ... +# 2380| getExpr(): [FunctionCall] call to VoidFunc +# 2380| Type = [VoidType] void +# 2380| ValueCategory = prvalue +# 2381| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2381| Type = [VoidType] void +# 2381| ValueCategory = prvalue +# 2381| getQualifier(): [VariableAccess] s +# 2381| Type = [Struct] String +# 2381| ValueCategory = lvalue +# 2384| [CopyAssignmentOperator] return_routine_type::HasVoidToIntFunc& return_routine_type::HasVoidToIntFunc::operator=(return_routine_type::HasVoidToIntFunc const&) +# 2384| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const HasVoidToIntFunc & -# 2382| [MoveAssignmentOperator] return_routine_type::HasVoidToIntFunc& return_routine_type::HasVoidToIntFunc::operator=(return_routine_type::HasVoidToIntFunc&&) -# 2382| : +# 2384| [MoveAssignmentOperator] return_routine_type::HasVoidToIntFunc& return_routine_type::HasVoidToIntFunc::operator=(return_routine_type::HasVoidToIntFunc&&) +# 2384| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] HasVoidToIntFunc && -# 2384| [MemberFunction] void return_routine_type::HasVoidToIntFunc::VoidToInt(int) -# 2384| : -# 2384| getParameter(0): [Parameter] (unnamed parameter 0) -# 2384| Type = [IntType] int -# 2389| [TopLevelFunction] return_routine_type::VoidToIntMemberFunc return_routine_type::GetVoidToIntFunc() -# 2389| : -# 2390| getEntryPoint(): [BlockStmt] { ... } -# 2391| getStmt(0): [ReturnStmt] return ... -# 2391| getExpr(): [FunctionAccess] VoidToInt -# 2391| Type = [RoutineType] ..()(..) -# 2391| ValueCategory = prvalue -# 2396| [TopLevelFunction] int small_operation_should_not_be_constant_folded() -# 2396| : -# 2396| getEntryPoint(): [BlockStmt] { ... } -# 2397| getStmt(0): [ReturnStmt] return ... -# 2397| getExpr(): [BitwiseXorExpr] ... ^ ... -# 2397| Type = [IntType] int -# 2397| Value = [BitwiseXorExpr] 3 -# 2397| ValueCategory = prvalue -# 2397| getLeftOperand(): [Literal] 1 -# 2397| Type = [IntType] int -# 2397| Value = [Literal] 1 -# 2397| ValueCategory = prvalue -# 2397| getRightOperand(): [Literal] 2 -# 2397| Type = [IntType] int -# 2397| Value = [Literal] 2 -# 2397| ValueCategory = prvalue -# 2407| [TopLevelFunction] int large_operation_should_be_constant_folded() -# 2407| : -# 2407| getEntryPoint(): [BlockStmt] { ... } -# 2408| getStmt(0): [ReturnStmt] return ... -# 2408| getExpr(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [BitwiseXorExpr] ... ^ ... -# 2408| Type = [IntType] int -# 2408| Value = [BitwiseXorExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand(): [Literal] 1 -# 2408| Type = [IntType] int -# 2408| Value = [Literal] 1 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2408| getExpr().getFullyConverted(): [ParenthesisExpr] (...) -# 2408| Type = [IntType] int -# 2408| Value = [ParenthesisExpr] 0 -# 2408| ValueCategory = prvalue -# 2411| [TopLevelFunction] void initialization_with_temp_destructor() -# 2411| : -# 2411| getEntryPoint(): [BlockStmt] { ... } -# 2412| getStmt(0): [IfStmt] if (...) ... -# 2412| getCondition(): [ConditionDeclExpr] (condition decl) -# 2412| Type = [BoolType] bool -# 2412| ValueCategory = prvalue -# 2412| getVariableAccess(): [VariableAccess] x -# 2412| Type = [PlainCharType] char -# 2412| ValueCategory = prvalue(load) -# 2412| getInitializingExpr(): [FunctionCall] call to get_x -# 2412| Type = [PlainCharType] char -# 2412| ValueCategory = prvalue -# 2412| getQualifier(): [ConstructorCall] call to ClassWithDestructor -# 2412| Type = [VoidType] void -# 2412| ValueCategory = prvalue -# 2412| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor -# 2412| Type = [VoidType] void -# 2412| ValueCategory = prvalue -# 2412| getQualifier(): [ReuseExpr] reuse of temporary object -# 2412| Type = [Class] ClassWithDestructor -# 2412| ValueCategory = xvalue -# 2412| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object -# 2412| Type = [Class] ClassWithDestructor -# 2412| ValueCategory = prvalue(load) -# 2412| getVariableAccess().getFullyConverted(): [CStyleCast] (bool)... -# 2412| Conversion = [BoolConversion] conversion to bool -# 2412| Type = [BoolType] bool -# 2412| ValueCategory = prvalue -# 2413| getThen(): [ExprStmt] ExprStmt -# 2413| getExpr(): [PostfixIncrExpr] ... ++ -# 2413| Type = [PlainCharType] char -# 2413| ValueCategory = prvalue -# 2413| getOperand(): [VariableAccess] x -# 2413| Type = [PlainCharType] char -# 2413| ValueCategory = lvalue -# 2415| getStmt(1): [IfStmt] if (...) ... -# 2415| getInitialization(): [DeclStmt] declaration -# 2415| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x +# 2386| [MemberFunction] void return_routine_type::HasVoidToIntFunc::VoidToInt(int) +# 2386| : +# 2386| getParameter(0): [Parameter] (unnamed parameter 0) +# 2386| Type = [IntType] int +# 2391| [TopLevelFunction] return_routine_type::VoidToIntMemberFunc return_routine_type::GetVoidToIntFunc() +# 2391| : +# 2392| getEntryPoint(): [BlockStmt] { ... } +# 2393| getStmt(0): [ReturnStmt] return ... +# 2393| getExpr(): [FunctionAccess] VoidToInt +# 2393| Type = [RoutineType] ..()(..) +# 2393| ValueCategory = prvalue +# 2398| [TopLevelFunction] int small_operation_should_not_be_constant_folded() +# 2398| : +# 2398| getEntryPoint(): [BlockStmt] { ... } +# 2399| getStmt(0): [ReturnStmt] return ... +# 2399| getExpr(): [BitwiseXorExpr] ... ^ ... +# 2399| Type = [IntType] int +# 2399| Value = [BitwiseXorExpr] 3 +# 2399| ValueCategory = prvalue +# 2399| getLeftOperand(): [Literal] 1 +# 2399| Type = [IntType] int +# 2399| Value = [Literal] 1 +# 2399| ValueCategory = prvalue +# 2399| getRightOperand(): [Literal] 2 +# 2399| Type = [IntType] int +# 2399| Value = [Literal] 2 +# 2399| ValueCategory = prvalue +# 2409| [TopLevelFunction] int large_operation_should_be_constant_folded() +# 2409| : +# 2409| getEntryPoint(): [BlockStmt] { ... } +# 2410| getStmt(0): [ReturnStmt] return ... +# 2410| getExpr(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [BitwiseXorExpr] ... ^ ... +# 2410| Type = [IntType] int +# 2410| Value = [BitwiseXorExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand(): [Literal] 1 +# 2410| Type = [IntType] int +# 2410| Value = [Literal] 1 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2410| getExpr().getFullyConverted(): [ParenthesisExpr] (...) +# 2410| Type = [IntType] int +# 2410| Value = [ParenthesisExpr] 0 +# 2410| ValueCategory = prvalue +# 2413| [TopLevelFunction] void initialization_with_temp_destructor() +# 2413| : +# 2413| getEntryPoint(): [BlockStmt] { ... } +# 2414| getStmt(0): [IfStmt] if (...) ... +# 2414| getCondition(): [ConditionDeclExpr] (condition decl) +# 2414| Type = [BoolType] bool +# 2414| ValueCategory = prvalue +# 2414| getVariableAccess(): [VariableAccess] x +# 2414| Type = [PlainCharType] char +# 2414| ValueCategory = prvalue(load) +# 2414| getInitializingExpr(): [FunctionCall] call to get_x +# 2414| Type = [PlainCharType] char +# 2414| ValueCategory = prvalue +# 2414| getQualifier(): [ConstructorCall] call to ClassWithDestructor +# 2414| Type = [VoidType] void +# 2414| ValueCategory = prvalue +# 2414| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2414| Type = [VoidType] void +# 2414| ValueCategory = prvalue +# 2414| getQualifier(): [ReuseExpr] reuse of temporary object +# 2414| Type = [Class] ClassWithDestructor +# 2414| ValueCategory = xvalue +# 2414| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 2414| Type = [Class] ClassWithDestructor +# 2414| ValueCategory = prvalue(load) +# 2414| getVariableAccess().getFullyConverted(): [CStyleCast] (bool)... +# 2414| Conversion = [BoolConversion] conversion to bool +# 2414| Type = [BoolType] bool +# 2414| ValueCategory = prvalue +# 2415| getThen(): [ExprStmt] ExprStmt +# 2415| getExpr(): [PostfixIncrExpr] ... ++ # 2415| Type = [PlainCharType] char -# 2415| getVariable().getInitializer(): [Initializer] initializer for x -# 2415| getExpr(): [FunctionCall] call to get_x -# 2415| Type = [PlainCharType] char -# 2415| ValueCategory = prvalue -# 2415| getQualifier(): [ConstructorCall] call to ClassWithDestructor -# 2415| Type = [VoidType] void -# 2415| ValueCategory = prvalue -# 2415| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor -# 2415| Type = [VoidType] void -# 2415| ValueCategory = prvalue -# 2415| getQualifier(): [ReuseExpr] reuse of temporary object -# 2415| Type = [Class] ClassWithDestructor -# 2415| ValueCategory = xvalue -# 2415| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object -# 2415| Type = [Class] ClassWithDestructor -# 2415| ValueCategory = prvalue(load) -# 2415| getCondition(): [VariableAccess] x -# 2415| Type = [PlainCharType] char -# 2415| ValueCategory = prvalue(load) -# 2416| getThen(): [ExprStmt] ExprStmt -# 2416| getExpr(): [PostfixIncrExpr] ... ++ -# 2416| Type = [PlainCharType] char -# 2416| ValueCategory = prvalue -# 2416| getOperand(): [VariableAccess] x -# 2416| Type = [PlainCharType] char -# 2416| ValueCategory = lvalue -# 2415| getCondition().getFullyConverted(): [CStyleCast] (bool)... -# 2415| Conversion = [BoolConversion] conversion to bool -# 2415| Type = [BoolType] bool -# 2415| ValueCategory = prvalue -# 2418| getStmt(2): [ConstexprIfStmt] if constexpr (...) ... -# 2418| getInitialization(): [DeclStmt] declaration -# 2418| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x +# 2415| ValueCategory = prvalue +# 2415| getOperand(): [VariableAccess] x +# 2415| Type = [PlainCharType] char +# 2415| ValueCategory = lvalue +# 2417| getStmt(1): [IfStmt] if (...) ... +# 2417| getInitialization(): [DeclStmt] declaration +# 2417| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x +# 2417| Type = [PlainCharType] char +# 2417| getVariable().getInitializer(): [Initializer] initializer for x +# 2417| getExpr(): [FunctionCall] call to get_x +# 2417| Type = [PlainCharType] char +# 2417| ValueCategory = prvalue +# 2417| getQualifier(): [ConstructorCall] call to ClassWithDestructor +# 2417| Type = [VoidType] void +# 2417| ValueCategory = prvalue +# 2417| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2417| Type = [VoidType] void +# 2417| ValueCategory = prvalue +# 2417| getQualifier(): [ReuseExpr] reuse of temporary object +# 2417| Type = [Class] ClassWithDestructor +# 2417| ValueCategory = xvalue +# 2417| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 2417| Type = [Class] ClassWithDestructor +# 2417| ValueCategory = prvalue(load) +# 2417| getCondition(): [VariableAccess] x +# 2417| Type = [PlainCharType] char +# 2417| ValueCategory = prvalue(load) +# 2418| getThen(): [ExprStmt] ExprStmt +# 2418| getExpr(): [PostfixIncrExpr] ... ++ # 2418| Type = [PlainCharType] char -# 2418| getVariable().getInitializer(): [Initializer] initializer for x -# 2418| getExpr(): [FunctionCall] call to get_x -# 2418| Type = [PlainCharType] char -# 2418| ValueCategory = prvalue -# 2418| getQualifier(): [ConstructorCall] call to ClassWithDestructor -# 2418| Type = [VoidType] void -# 2418| ValueCategory = prvalue -# 2418| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor -# 2418| Type = [VoidType] void -# 2418| ValueCategory = prvalue -# 2418| getQualifier(): [ReuseExpr] reuse of temporary object -# 2418| Type = [Class] ClassWithDestructor -# 2418| ValueCategory = xvalue -# 2418| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object -# 2418| Type = [Class] ClassWithDestructor -# 2418| ValueCategory = prvalue(load) -# 2418| getCondition(): [VariableAccess] initialization_with_destructor_bool -# 2418| Type = [BoolType] bool -# 2418| Value = [VariableAccess] 1 -# 2418| ValueCategory = prvalue(load) -# 2419| getThen(): [ExprStmt] ExprStmt -# 2419| getExpr(): [PostfixIncrExpr] ... ++ -# 2419| Type = [PlainCharType] char -# 2419| ValueCategory = prvalue -# 2419| getOperand(): [VariableAccess] x -# 2419| Type = [PlainCharType] char -# 2419| ValueCategory = lvalue -# 2421| getStmt(3): [SwitchStmt] switch (...) ... -# 2421| getExpr(): [ConditionDeclExpr] (condition decl) -# 2421| Type = [IntType] int -# 2421| ValueCategory = prvalue -# 2421| getVariableAccess(): [VariableAccess] x -# 2421| Type = [PlainCharType] char -# 2421| ValueCategory = prvalue(load) -# 2421| getInitializingExpr(): [FunctionCall] call to get_x +# 2418| ValueCategory = prvalue +# 2418| getOperand(): [VariableAccess] x +# 2418| Type = [PlainCharType] char +# 2418| ValueCategory = lvalue +# 2417| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2417| Conversion = [BoolConversion] conversion to bool +# 2417| Type = [BoolType] bool +# 2417| ValueCategory = prvalue +# 2420| getStmt(2): [ConstexprIfStmt] if constexpr (...) ... +# 2420| getInitialization(): [DeclStmt] declaration +# 2420| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x +# 2420| Type = [PlainCharType] char +# 2420| getVariable().getInitializer(): [Initializer] initializer for x +# 2420| getExpr(): [FunctionCall] call to get_x +# 2420| Type = [PlainCharType] char +# 2420| ValueCategory = prvalue +# 2420| getQualifier(): [ConstructorCall] call to ClassWithDestructor +# 2420| Type = [VoidType] void +# 2420| ValueCategory = prvalue +# 2420| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2420| Type = [VoidType] void +# 2420| ValueCategory = prvalue +# 2420| getQualifier(): [ReuseExpr] reuse of temporary object +# 2420| Type = [Class] ClassWithDestructor +# 2420| ValueCategory = xvalue +# 2420| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 2420| Type = [Class] ClassWithDestructor +# 2420| ValueCategory = prvalue(load) +# 2420| getCondition(): [VariableAccess] initialization_with_destructor_bool +# 2420| Type = [BoolType] bool +# 2420| Value = [VariableAccess] 1 +# 2420| ValueCategory = prvalue(load) +# 2421| getThen(): [ExprStmt] ExprStmt +# 2421| getExpr(): [PostfixIncrExpr] ... ++ # 2421| Type = [PlainCharType] char # 2421| ValueCategory = prvalue -# 2421| getQualifier(): [ConstructorCall] call to ClassWithDestructor -# 2421| Type = [VoidType] void -# 2421| ValueCategory = prvalue -# 2421| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor -# 2421| Type = [VoidType] void -# 2421| ValueCategory = prvalue -# 2421| getQualifier(): [ReuseExpr] reuse of temporary object -# 2421| Type = [Class] ClassWithDestructor -# 2421| ValueCategory = xvalue -# 2421| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object -# 2421| Type = [Class] ClassWithDestructor -# 2421| ValueCategory = prvalue(load) -# 2421| getVariableAccess().getFullyConverted(): [CStyleCast] (int)... -# 2421| Conversion = [IntegralConversion] integral conversion -# 2421| Type = [IntType] int -# 2421| ValueCategory = prvalue -# 2421| getStmt(): [BlockStmt] { ... } -# 2422| getStmt(0): [SwitchCase] case ...: -# 2422| getExpr(): [CharLiteral] 97 -# 2422| Type = [PlainCharType] char -# 2422| Value = [CharLiteral] 97 -# 2422| ValueCategory = prvalue -# 2422| getExpr().getFullyConverted(): [CStyleCast] (int)... -# 2422| Conversion = [IntegralConversion] integral conversion -# 2422| Type = [IntType] int -# 2422| Value = [CStyleCast] 97 -# 2422| ValueCategory = prvalue -# 2423| getStmt(1): [ExprStmt] ExprStmt -# 2423| getExpr(): [PostfixIncrExpr] ... ++ -# 2423| Type = [PlainCharType] char +# 2421| getOperand(): [VariableAccess] x +# 2421| Type = [PlainCharType] char +# 2421| ValueCategory = lvalue +# 2423| getStmt(3): [SwitchStmt] switch (...) ... +# 2423| getExpr(): [ConditionDeclExpr] (condition decl) +# 2423| Type = [IntType] int +# 2423| ValueCategory = prvalue +# 2423| getVariableAccess(): [VariableAccess] x +# 2423| Type = [PlainCharType] char +# 2423| ValueCategory = prvalue(load) +# 2423| getInitializingExpr(): [FunctionCall] call to get_x +# 2423| Type = [PlainCharType] char +# 2423| ValueCategory = prvalue +# 2423| getQualifier(): [ConstructorCall] call to ClassWithDestructor +# 2423| Type = [VoidType] void # 2423| ValueCategory = prvalue -# 2423| getOperand(): [VariableAccess] x -# 2423| Type = [PlainCharType] char -# 2423| ValueCategory = lvalue -# 2426| getStmt(4): [SwitchStmt] switch (...) ... -# 2426| getInitialization(): [DeclStmt] declaration -# 2426| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x -# 2426| Type = [PlainCharType] char -# 2426| getVariable().getInitializer(): [Initializer] initializer for x -# 2426| getExpr(): [FunctionCall] call to get_x -# 2426| Type = [PlainCharType] char -# 2426| ValueCategory = prvalue -# 2426| getQualifier(): [ConstructorCall] call to ClassWithDestructor -# 2426| Type = [VoidType] void -# 2426| ValueCategory = prvalue -# 2426| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor -# 2426| Type = [VoidType] void -# 2426| ValueCategory = prvalue -# 2426| getQualifier(): [ReuseExpr] reuse of temporary object -# 2426| Type = [Class] ClassWithDestructor -# 2426| ValueCategory = xvalue -# 2426| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object -# 2426| Type = [Class] ClassWithDestructor -# 2426| ValueCategory = prvalue(load) -# 2426| getExpr(): [VariableAccess] x -# 2426| Type = [PlainCharType] char -# 2426| ValueCategory = prvalue(load) -# 2426| getStmt(): [BlockStmt] { ... } -# 2427| getStmt(0): [SwitchCase] case ...: -# 2427| getExpr(): [CharLiteral] 97 -# 2427| Type = [PlainCharType] char -# 2427| Value = [CharLiteral] 97 -# 2427| ValueCategory = prvalue -# 2427| getExpr().getFullyConverted(): [CStyleCast] (int)... -# 2427| Conversion = [IntegralConversion] integral conversion -# 2427| Type = [IntType] int -# 2427| Value = [CStyleCast] 97 -# 2427| ValueCategory = prvalue -# 2428| getStmt(1): [ExprStmt] ExprStmt -# 2428| getExpr(): [PostfixIncrExpr] ... ++ -# 2428| Type = [PlainCharType] char -# 2428| ValueCategory = prvalue -# 2428| getOperand(): [VariableAccess] x +# 2423| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2423| Type = [VoidType] void +# 2423| ValueCategory = prvalue +# 2423| getQualifier(): [ReuseExpr] reuse of temporary object +# 2423| Type = [Class] ClassWithDestructor +# 2423| ValueCategory = xvalue +# 2423| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 2423| Type = [Class] ClassWithDestructor +# 2423| ValueCategory = prvalue(load) +# 2423| getVariableAccess().getFullyConverted(): [CStyleCast] (int)... +# 2423| Conversion = [IntegralConversion] integral conversion +# 2423| Type = [IntType] int +# 2423| ValueCategory = prvalue +# 2423| getStmt(): [BlockStmt] { ... } +# 2424| getStmt(0): [SwitchCase] case ...: +# 2424| getExpr(): [CharLiteral] 97 +# 2424| Type = [PlainCharType] char +# 2424| Value = [CharLiteral] 97 +# 2424| ValueCategory = prvalue +# 2424| getExpr().getFullyConverted(): [CStyleCast] (int)... +# 2424| Conversion = [IntegralConversion] integral conversion +# 2424| Type = [IntType] int +# 2424| Value = [CStyleCast] 97 +# 2424| ValueCategory = prvalue +# 2425| getStmt(1): [ExprStmt] ExprStmt +# 2425| getExpr(): [PostfixIncrExpr] ... ++ +# 2425| Type = [PlainCharType] char +# 2425| ValueCategory = prvalue +# 2425| getOperand(): [VariableAccess] x +# 2425| Type = [PlainCharType] char +# 2425| ValueCategory = lvalue +# 2428| getStmt(4): [SwitchStmt] switch (...) ... +# 2428| getInitialization(): [DeclStmt] declaration +# 2428| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x +# 2428| Type = [PlainCharType] char +# 2428| getVariable().getInitializer(): [Initializer] initializer for x +# 2428| getExpr(): [FunctionCall] call to get_x # 2428| Type = [PlainCharType] char -# 2428| ValueCategory = lvalue -# 2426| getExpr().getFullyConverted(): [CStyleCast] (int)... -# 2426| Conversion = [IntegralConversion] integral conversion -# 2426| Type = [IntType] int -# 2426| ValueCategory = prvalue -# 2431| getStmt(5): [RangeBasedForStmt] for(...:...) ... -# 2431| getInitialization(): [DeclStmt] declaration -# 2431| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x -# 2431| Type = [PlainCharType] char -# 2431| getVariable().getInitializer(): [Initializer] initializer for x -# 2431| getExpr(): [FunctionCall] call to get_x -# 2431| Type = [PlainCharType] char -# 2431| ValueCategory = prvalue -# 2431| getQualifier(): [ConstructorCall] call to ClassWithDestructor -# 2431| Type = [VoidType] void -# 2431| ValueCategory = prvalue -# 2431| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor -# 2431| Type = [VoidType] void -# 2431| ValueCategory = prvalue -# 2431| getQualifier(): [ReuseExpr] reuse of temporary object -# 2431| Type = [Class] ClassWithDestructor -# 2431| ValueCategory = xvalue -# 2431| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object -# 2431| Type = [Class] ClassWithDestructor -# 2431| ValueCategory = prvalue(load) -# 2431| getChild(1): [DeclStmt] declaration -# 2431| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of (__range) -# 2431| Type = [RValueReferenceType] vector && +# 2428| ValueCategory = prvalue +# 2428| getQualifier(): [ConstructorCall] call to ClassWithDestructor +# 2428| Type = [VoidType] void +# 2428| ValueCategory = prvalue +# 2428| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2428| Type = [VoidType] void +# 2428| ValueCategory = prvalue +# 2428| getQualifier(): [ReuseExpr] reuse of temporary object +# 2428| Type = [Class] ClassWithDestructor +# 2428| ValueCategory = xvalue +# 2428| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 2428| Type = [Class] ClassWithDestructor +# 2428| ValueCategory = prvalue(load) +# 2428| getExpr(): [VariableAccess] x +# 2428| Type = [PlainCharType] char +# 2428| ValueCategory = prvalue(load) +# 2428| getStmt(): [BlockStmt] { ... } +# 2429| getStmt(0): [SwitchCase] case ...: +# 2429| getExpr(): [CharLiteral] 97 +# 2429| Type = [PlainCharType] char +# 2429| Value = [CharLiteral] 97 +# 2429| ValueCategory = prvalue +# 2429| getExpr().getFullyConverted(): [CStyleCast] (int)... +# 2429| Conversion = [IntegralConversion] integral conversion +# 2429| Type = [IntType] int +# 2429| Value = [CStyleCast] 97 +# 2429| ValueCategory = prvalue +# 2430| getStmt(1): [ExprStmt] ExprStmt +# 2430| getExpr(): [PostfixIncrExpr] ... ++ +# 2430| Type = [PlainCharType] char +# 2430| ValueCategory = prvalue +# 2430| getOperand(): [VariableAccess] x +# 2430| Type = [PlainCharType] char +# 2430| ValueCategory = lvalue +# 2428| getExpr().getFullyConverted(): [CStyleCast] (int)... +# 2428| Conversion = [IntegralConversion] integral conversion +# 2428| Type = [IntType] int +# 2428| ValueCategory = prvalue +# 2433| getStmt(5): [RangeBasedForStmt] for(...:...) ... +# 2433| getInitialization(): [DeclStmt] declaration +# 2433| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x +# 2433| Type = [PlainCharType] char +# 2433| getVariable().getInitializer(): [Initializer] initializer for x +# 2433| getExpr(): [FunctionCall] call to get_x +# 2433| Type = [PlainCharType] char +# 2433| ValueCategory = prvalue +# 2433| getQualifier(): [ConstructorCall] call to ClassWithDestructor +# 2433| Type = [VoidType] void +# 2433| ValueCategory = prvalue +# 2433| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2433| Type = [VoidType] void +# 2433| ValueCategory = prvalue +# 2433| getQualifier(): [ReuseExpr] reuse of temporary object +# 2433| Type = [Class] ClassWithDestructor +# 2433| ValueCategory = xvalue +# 2433| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 2433| Type = [Class] ClassWithDestructor +# 2433| ValueCategory = prvalue(load) +# 2433| getChild(1): [DeclStmt] declaration +# 2433| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of (__range) +# 2433| Type = [RValueReferenceType] vector && #-----| getVariable().getInitializer(): [Initializer] initializer for (__range) -# 2431| getExpr(): [ConstructorCall] call to vector -# 2431| Type = [VoidType] void -# 2431| ValueCategory = prvalue -# 2431| getArgument(0): [VariableAccess] x -# 2431| Type = [PlainCharType] char -# 2431| ValueCategory = prvalue(load) -# 2431| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 2431| Type = [LValueReferenceType] vector & -# 2431| ValueCategory = prvalue -# 2431| getExpr(): [TemporaryObjectExpr] temporary object -# 2431| Type = [ClassTemplateInstantiation,Struct] vector -# 2431| ValueCategory = xvalue -# 2431| getBeginEndDeclaration(): [DeclStmt] declaration -# 2431| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of (__begin) -# 2431| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2433| getExpr(): [ConstructorCall] call to vector +# 2433| Type = [VoidType] void +# 2433| ValueCategory = prvalue +# 2433| getArgument(0): [VariableAccess] x +# 2433| Type = [PlainCharType] char +# 2433| ValueCategory = prvalue(load) +# 2433| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 2433| Type = [LValueReferenceType] vector & +# 2433| ValueCategory = prvalue +# 2433| getExpr(): [TemporaryObjectExpr] temporary object +# 2433| Type = [ClassTemplateInstantiation,Struct] vector +# 2433| ValueCategory = xvalue +# 2433| getBeginEndDeclaration(): [DeclStmt] declaration +# 2433| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of (__begin) +# 2433| Type = [NestedTypedefType,UsingAliasTypedefType] iterator #-----| getVariable().getInitializer(): [Initializer] initializer for (__begin) -# 2431| getExpr(): [FunctionCall] call to begin -# 2431| Type = [NestedTypedefType,UsingAliasTypedefType] iterator -# 2431| ValueCategory = prvalue -# 2431| getQualifier(): [VariableAccess] (__range) -# 2431| Type = [RValueReferenceType] vector && -# 2431| ValueCategory = prvalue(load) +# 2433| getExpr(): [FunctionCall] call to begin +# 2433| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2433| ValueCategory = prvalue +# 2433| getQualifier(): [VariableAccess] (__range) +# 2433| Type = [RValueReferenceType] vector && +# 2433| ValueCategory = prvalue(load) #-----| getQualifier().getFullyConverted(): [CStyleCast] (const vector)... #-----| Conversion = [GlvalueConversion] glvalue conversion #-----| Type = [SpecifiedType] const vector @@ -22691,15 +22723,15 @@ ir.cpp: #-----| getExpr(): [ReferenceDereferenceExpr] (reference dereference) #-----| Type = [ClassTemplateInstantiation,Struct] vector #-----| ValueCategory = lvalue -# 2431| getDeclarationEntry(1): [VariableDeclarationEntry] declaration of (__end) -# 2431| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2433| getDeclarationEntry(1): [VariableDeclarationEntry] declaration of (__end) +# 2433| Type = [NestedTypedefType,UsingAliasTypedefType] iterator #-----| getVariable().getInitializer(): [Initializer] initializer for (__end) -# 2431| getExpr(): [FunctionCall] call to end -# 2431| Type = [NestedTypedefType,UsingAliasTypedefType] iterator -# 2431| ValueCategory = prvalue -# 2431| getQualifier(): [VariableAccess] (__range) -# 2431| Type = [RValueReferenceType] vector && -# 2431| ValueCategory = prvalue(load) +# 2433| getExpr(): [FunctionCall] call to end +# 2433| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2433| ValueCategory = prvalue +# 2433| getQualifier(): [VariableAccess] (__range) +# 2433| Type = [RValueReferenceType] vector && +# 2433| ValueCategory = prvalue(load) #-----| getQualifier().getFullyConverted(): [CStyleCast] (const vector)... #-----| Conversion = [GlvalueConversion] glvalue conversion #-----| Type = [SpecifiedType] const vector @@ -22707,18 +22739,18 @@ ir.cpp: #-----| getExpr(): [ReferenceDereferenceExpr] (reference dereference) #-----| Type = [ClassTemplateInstantiation,Struct] vector #-----| ValueCategory = lvalue -# 2431| getCondition(): [FunctionCall] call to operator!= -# 2431| Type = [BoolType] bool -# 2431| ValueCategory = prvalue -# 2431| getQualifier(): [VariableAccess] (__begin) -# 2431| Type = [NestedTypedefType,UsingAliasTypedefType] iterator -# 2431| ValueCategory = lvalue -# 2431| getArgument(0): [ConstructorCall] call to iterator -# 2431| Type = [VoidType] void -# 2431| ValueCategory = prvalue -# 2431| getArgument(0): [VariableAccess] (__end) -# 2431| Type = [NestedTypedefType,UsingAliasTypedefType] iterator -# 2431| ValueCategory = lvalue +# 2433| getCondition(): [FunctionCall] call to operator!= +# 2433| Type = [BoolType] bool +# 2433| ValueCategory = prvalue +# 2433| getQualifier(): [VariableAccess] (__begin) +# 2433| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2433| ValueCategory = lvalue +# 2433| getArgument(0): [ConstructorCall] call to iterator +# 2433| Type = [VoidType] void +# 2433| ValueCategory = prvalue +# 2433| getArgument(0): [VariableAccess] (__end) +# 2433| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2433| ValueCategory = lvalue #-----| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) #-----| Type = [LValueReferenceType] const iterator & #-----| ValueCategory = prvalue @@ -22733,629 +22765,615 @@ ir.cpp: #-----| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object #-----| Type = [ClassTemplateInstantiation,Struct] iterator #-----| ValueCategory = lvalue -# 2431| getUpdate(): [FunctionCall] call to operator++ -# 2431| Type = [LValueReferenceType] iterator & -# 2431| ValueCategory = prvalue -# 2431| getQualifier(): [VariableAccess] (__begin) -# 2431| Type = [NestedTypedefType,UsingAliasTypedefType] iterator -# 2431| ValueCategory = lvalue -# 2431| getChild(5): [DeclStmt] declaration -# 2431| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y -# 2431| Type = [PlainCharType] char -# 2431| getVariable().getInitializer(): [Initializer] initializer for y -# 2431| getExpr(): [OverloadedPointerDereferenceExpr] call to operator* -# 2431| Type = [LValueReferenceType] char & -# 2431| ValueCategory = prvalue -# 2431| getQualifier(): [VariableAccess] (__begin) -# 2431| Type = [NestedTypedefType,UsingAliasTypedefType] iterator -# 2431| ValueCategory = lvalue +# 2433| getUpdate(): [FunctionCall] call to operator++ +# 2433| Type = [LValueReferenceType] iterator & +# 2433| ValueCategory = prvalue +# 2433| getQualifier(): [VariableAccess] (__begin) +# 2433| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2433| ValueCategory = lvalue +# 2433| getChild(5): [DeclStmt] declaration +# 2433| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y +# 2433| Type = [PlainCharType] char +# 2433| getVariable().getInitializer(): [Initializer] initializer for y +# 2433| getExpr(): [OverloadedPointerDereferenceExpr] call to operator* +# 2433| Type = [LValueReferenceType] char & +# 2433| ValueCategory = prvalue +# 2433| getQualifier(): [VariableAccess] (__begin) +# 2433| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2433| ValueCategory = lvalue #-----| getQualifier().getFullyConverted(): [CStyleCast] (const iterator)... #-----| Conversion = [GlvalueConversion] glvalue conversion #-----| Type = [SpecifiedType] const iterator #-----| ValueCategory = lvalue -# 2431| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 2431| Type = [PlainCharType] char -# 2431| ValueCategory = prvalue(load) -# 2432| getStmt(): [ExprStmt] ExprStmt -# 2432| getExpr(): [AssignAddExpr] ... += ... -# 2432| Type = [PlainCharType] char -# 2432| ValueCategory = lvalue -# 2432| getLValue(): [VariableAccess] y -# 2432| Type = [PlainCharType] char -# 2432| ValueCategory = lvalue -# 2432| getRValue(): [VariableAccess] x -# 2432| Type = [PlainCharType] char -# 2432| ValueCategory = prvalue(load) -# 2432| getRValue().getFullyConverted(): [CStyleCast] (int)... -# 2432| Conversion = [IntegralConversion] integral conversion -# 2432| Type = [IntType] int -# 2432| ValueCategory = prvalue -# 2431| getImplicitDestructorCall(0): [DestructorCall] call to ~vector -# 2431| Type = [VoidType] void -# 2431| ValueCategory = prvalue -# 2431| getQualifier(): [ReuseExpr] reuse of temporary object -# 2431| Type = [ClassTemplateInstantiation,Struct] vector -# 2431| ValueCategory = xvalue -# 2431| getUpdate().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 2431| Type = [ClassTemplateInstantiation,Struct] iterator -# 2431| ValueCategory = lvalue -# 2433| getStmt(6): [ReturnStmt] return ... -# 2435| [TopLevelFunction] void param_with_destructor_by_value(ClassWithDestructor) -# 2435| : -# 2435| getParameter(0): [Parameter] c -# 2435| Type = [Class] ClassWithDestructor -# 2435| getEntryPoint(): [BlockStmt] { ... } -# 2437| getStmt(0): [ReturnStmt] return ... -# 2439| [TopLevelFunction] void param_with_destructor_by_pointer(ClassWithDestructor*) -# 2439| : -# 2439| getParameter(0): [Parameter] c -# 2439| Type = [PointerType] ClassWithDestructor * -# 2439| getEntryPoint(): [BlockStmt] { ... } -# 2441| getStmt(0): [ReturnStmt] return ... -# 2443| [TopLevelFunction] void param_with_destructor_by_ref(ClassWithDestructor&) -# 2443| : -# 2443| getParameter(0): [Parameter] c -# 2443| Type = [LValueReferenceType] ClassWithDestructor & -# 2443| getEntryPoint(): [BlockStmt] { ... } -# 2445| getStmt(0): [ReturnStmt] return ... -# 2447| [TopLevelFunction] void param_with_destructor_by_rref(ClassWithDestructor&&) -# 2447| : -# 2447| getParameter(0): [Parameter] c -# 2447| Type = [RValueReferenceType] ClassWithDestructor && -# 2447| getEntryPoint(): [BlockStmt] { ... } -# 2449| getStmt(0): [ReturnStmt] return ... -# 2451| [TopLevelFunction] void rethrow_with_destruction(int) -# 2451| : -# 2451| getParameter(0): [Parameter] x -# 2451| Type = [IntType] int -# 2451| getEntryPoint(): [BlockStmt] { ... } -# 2452| getStmt(0): [DeclStmt] declaration -# 2452| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c -# 2452| Type = [Class] ClassWithDestructor -# 2452| getVariable().getInitializer(): [Initializer] initializer for c -# 2452| getExpr(): [ConstructorCall] call to ClassWithDestructor -# 2452| Type = [VoidType] void -# 2452| ValueCategory = prvalue -# 2453| getStmt(1): [ExprStmt] ExprStmt -# 2453| getExpr(): [ReThrowExpr] re-throw exception -# 2453| Type = [VoidType] void -# 2453| ValueCategory = prvalue -# 2454| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor -# 2454| Type = [VoidType] void -# 2454| ValueCategory = prvalue -# 2454| getQualifier(): [VariableAccess] c -# 2454| Type = [Class] ClassWithDestructor -# 2454| ValueCategory = lvalue -# 2456| [CopyAssignmentOperator] ByValueConstructor& ByValueConstructor::operator=(ByValueConstructor const&) -# 2456| : +# 2433| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 2433| Type = [PlainCharType] char +# 2433| ValueCategory = prvalue(load) +# 2434| getStmt(): [ExprStmt] ExprStmt +# 2434| getExpr(): [AssignAddExpr] ... += ... +# 2434| Type = [PlainCharType] char +# 2434| ValueCategory = lvalue +# 2434| getLValue(): [VariableAccess] y +# 2434| Type = [PlainCharType] char +# 2434| ValueCategory = lvalue +# 2434| getRValue(): [VariableAccess] x +# 2434| Type = [PlainCharType] char +# 2434| ValueCategory = prvalue(load) +# 2434| getRValue().getFullyConverted(): [CStyleCast] (int)... +# 2434| Conversion = [IntegralConversion] integral conversion +# 2434| Type = [IntType] int +# 2434| ValueCategory = prvalue +# 2433| getImplicitDestructorCall(0): [DestructorCall] call to ~vector +# 2433| Type = [VoidType] void +# 2433| ValueCategory = prvalue +# 2433| getQualifier(): [ReuseExpr] reuse of temporary object +# 2433| Type = [ClassTemplateInstantiation,Struct] vector +# 2433| ValueCategory = xvalue +# 2433| getUpdate().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 2433| Type = [ClassTemplateInstantiation,Struct] iterator +# 2433| ValueCategory = lvalue +# 2435| getStmt(6): [ReturnStmt] return ... +# 2437| [TopLevelFunction] void param_with_destructor_by_value(ClassWithDestructor) +# 2437| : +# 2437| getParameter(0): [Parameter] c +# 2437| Type = [Class] ClassWithDestructor +# 2437| getEntryPoint(): [BlockStmt] { ... } +# 2439| getStmt(0): [ReturnStmt] return ... +# 2441| [TopLevelFunction] void param_with_destructor_by_pointer(ClassWithDestructor*) +# 2441| : +# 2441| getParameter(0): [Parameter] c +# 2441| Type = [PointerType] ClassWithDestructor * +# 2441| getEntryPoint(): [BlockStmt] { ... } +# 2443| getStmt(0): [ReturnStmt] return ... +# 2445| [TopLevelFunction] void param_with_destructor_by_ref(ClassWithDestructor&) +# 2445| : +# 2445| getParameter(0): [Parameter] c +# 2445| Type = [LValueReferenceType] ClassWithDestructor & +# 2445| getEntryPoint(): [BlockStmt] { ... } +# 2447| getStmt(0): [ReturnStmt] return ... +# 2449| [TopLevelFunction] void param_with_destructor_by_rref(ClassWithDestructor&&) +# 2449| : +# 2449| getParameter(0): [Parameter] c +# 2449| Type = [RValueReferenceType] ClassWithDestructor && +# 2449| getEntryPoint(): [BlockStmt] { ... } +# 2451| getStmt(0): [ReturnStmt] return ... +# 2453| [TopLevelFunction] void rethrow_with_destruction(int) +# 2453| : +# 2453| getParameter(0): [Parameter] x +# 2453| Type = [IntType] int +# 2453| getEntryPoint(): [BlockStmt] { ... } +# 2454| getStmt(0): [DeclStmt] declaration +# 2454| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c +# 2454| Type = [Class] ClassWithDestructor +# 2454| getVariable().getInitializer(): [Initializer] initializer for c +# 2454| getExpr(): [ConstructorCall] call to ClassWithDestructor +# 2454| Type = [VoidType] void +# 2454| ValueCategory = prvalue +# 2455| getStmt(1): [ExprStmt] ExprStmt +# 2455| getExpr(): [ReThrowExpr] re-throw exception +# 2455| Type = [VoidType] void +# 2455| ValueCategory = prvalue +# 2456| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2456| Type = [VoidType] void +# 2456| ValueCategory = prvalue +# 2456| getQualifier(): [VariableAccess] c +# 2456| Type = [Class] ClassWithDestructor +# 2456| ValueCategory = lvalue +# 2458| [CopyAssignmentOperator] ByValueConstructor& ByValueConstructor::operator=(ByValueConstructor const&) +# 2458| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const ByValueConstructor & -# 2456| [MoveAssignmentOperator] ByValueConstructor& ByValueConstructor::operator=(ByValueConstructor&&) -# 2456| : +# 2458| [MoveAssignmentOperator] ByValueConstructor& ByValueConstructor::operator=(ByValueConstructor&&) +# 2458| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] ByValueConstructor && -# 2456| [CopyConstructor] void ByValueConstructor::ByValueConstructor(ByValueConstructor const&) -# 2456| : +# 2458| [CopyConstructor] void ByValueConstructor::ByValueConstructor(ByValueConstructor const&) +# 2458| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const ByValueConstructor & -# 2456| [MoveConstructor] void ByValueConstructor::ByValueConstructor(ByValueConstructor&&) -# 2456| : +# 2458| [MoveConstructor] void ByValueConstructor::ByValueConstructor(ByValueConstructor&&) +# 2458| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] ByValueConstructor && -# 2457| [Constructor] void ByValueConstructor::ByValueConstructor(ClassWithDestructor) -# 2457| : -# 2457| getParameter(0): [Parameter] (unnamed parameter 0) -# 2457| Type = [Class] ClassWithDestructor -# 2460| [TopLevelFunction] void new_with_destructor(ClassWithDestructor) -# 2460| : -# 2460| getParameter(0): [Parameter] a -# 2460| Type = [Class] ClassWithDestructor -# 2461| getEntryPoint(): [BlockStmt] { ... } -# 2462| getStmt(0): [DeclStmt] declaration -# 2462| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b -# 2462| Type = [PointerType] ByValueConstructor * -# 2462| getVariable().getInitializer(): [Initializer] initializer for b -# 2462| getExpr(): [NewExpr] new -# 2462| Type = [PointerType] ByValueConstructor * -# 2462| ValueCategory = prvalue -# 2462| getInitializer(): [ConstructorCall] call to ByValueConstructor -# 2462| Type = [VoidType] void -# 2462| ValueCategory = prvalue -# 2462| getArgument(0): [VariableAccess] a -# 2462| Type = [Class] ClassWithDestructor -# 2462| ValueCategory = prvalue(load) -# 2462| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object -# 2462| Type = [Class] ClassWithDestructor -# 2462| ValueCategory = lvalue -# 2462| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor -# 2462| Type = [VoidType] void -# 2462| ValueCategory = prvalue -# 2462| getQualifier(): [ReuseExpr] reuse of temporary object -# 2462| Type = [Class] ClassWithDestructor -# 2462| ValueCategory = xvalue -# 2463| getStmt(1): [ReturnStmt] return ... -# 2466| [CopyAssignmentOperator] rvalue_conversion_with_destructor::A& rvalue_conversion_with_destructor::A::operator=(rvalue_conversion_with_destructor::A const&) -# 2466| : +# 2459| [Constructor] void ByValueConstructor::ByValueConstructor(ClassWithDestructor) +# 2459| : +# 2459| getParameter(0): [Parameter] (unnamed parameter 0) +# 2459| Type = [Class] ClassWithDestructor +# 2462| [TopLevelFunction] void new_with_destructor(ClassWithDestructor) +# 2462| : +# 2462| getParameter(0): [Parameter] a +# 2462| Type = [Class] ClassWithDestructor +# 2463| getEntryPoint(): [BlockStmt] { ... } +# 2464| getStmt(0): [DeclStmt] declaration +# 2464| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b +# 2464| Type = [PointerType] ByValueConstructor * +# 2464| getVariable().getInitializer(): [Initializer] initializer for b +# 2464| getExpr(): [NewExpr] new +# 2464| Type = [PointerType] ByValueConstructor * +# 2464| ValueCategory = prvalue +# 2464| getInitializer(): [ConstructorCall] call to ByValueConstructor +# 2464| Type = [VoidType] void +# 2464| ValueCategory = prvalue +# 2464| getArgument(0): [VariableAccess] a +# 2464| Type = [Class] ClassWithDestructor +# 2464| ValueCategory = prvalue(load) +# 2464| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object +# 2464| Type = [Class] ClassWithDestructor +# 2464| ValueCategory = lvalue +# 2464| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2464| Type = [VoidType] void +# 2464| ValueCategory = prvalue +# 2464| getQualifier(): [ReuseExpr] reuse of temporary object +# 2464| Type = [Class] ClassWithDestructor +# 2464| ValueCategory = xvalue +# 2465| getStmt(1): [ReturnStmt] return ... +# 2468| [CopyAssignmentOperator] rvalue_conversion_with_destructor::A& rvalue_conversion_with_destructor::A::operator=(rvalue_conversion_with_destructor::A const&) +# 2468| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const A & -# 2466| [MoveAssignmentOperator] rvalue_conversion_with_destructor::A& rvalue_conversion_with_destructor::A::operator=(rvalue_conversion_with_destructor::A&&) -# 2466| : +# 2468| [MoveAssignmentOperator] rvalue_conversion_with_destructor::A& rvalue_conversion_with_destructor::A::operator=(rvalue_conversion_with_destructor::A&&) +# 2468| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] A && -# 2470| [CopyAssignmentOperator] rvalue_conversion_with_destructor::B& rvalue_conversion_with_destructor::B::operator=(rvalue_conversion_with_destructor::B const&) -# 2470| : +# 2472| [CopyAssignmentOperator] rvalue_conversion_with_destructor::B& rvalue_conversion_with_destructor::B::operator=(rvalue_conversion_with_destructor::B const&) +# 2472| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const B & -# 2470| [Constructor] void rvalue_conversion_with_destructor::B::B() -# 2470| : -# 2472| [Destructor] void rvalue_conversion_with_destructor::B::~B() +# 2472| [Constructor] void rvalue_conversion_with_destructor::B::B() # 2472| : -# 2474| [ConstMemberFunction] rvalue_conversion_with_destructor::A* rvalue_conversion_with_destructor::B::operator->() const +# 2474| [Destructor] void rvalue_conversion_with_destructor::B::~B() # 2474| : -# 2477| [TopLevelFunction] rvalue_conversion_with_destructor::B rvalue_conversion_with_destructor::get() -# 2477| : -# 2479| [TopLevelFunction] void rvalue_conversion_with_destructor::test() +# 2476| [ConstMemberFunction] rvalue_conversion_with_destructor::A* rvalue_conversion_with_destructor::B::operator->() const +# 2476| : +# 2479| [TopLevelFunction] rvalue_conversion_with_destructor::B rvalue_conversion_with_destructor::get() # 2479| : -# 2480| getEntryPoint(): [BlockStmt] { ... } -# 2481| getStmt(0): [DeclStmt] declaration -# 2481| getDeclarationEntry(0): [VariableDeclarationEntry] definition of a -# 2481| Type = [IntType] unsigned int -# 2481| getVariable().getInitializer(): [Initializer] initializer for a -# 2481| getExpr(): [PointerFieldAccess] a -# 2481| Type = [IntType] unsigned int -# 2481| ValueCategory = prvalue(load) -# 2481| getQualifier(): [FunctionCall] call to operator-> -# 2481| Type = [PointerType] A * -# 2481| ValueCategory = prvalue -# 2481| getQualifier(): [FunctionCall] call to get -# 2481| Type = [Struct] B -# 2481| ValueCategory = prvalue -# 2481| getQualifier().getFullyConverted(): [CStyleCast] (const B)... -# 2481| Conversion = [PrvalueAdjustmentConversion] prvalue adjustment conversion -# 2481| Type = [SpecifiedType] const B -# 2481| ValueCategory = prvalue -# 2481| getExpr(): [TemporaryObjectExpr] temporary object -# 2481| Type = [Struct] B -# 2481| ValueCategory = prvalue(load) -# 2481| getImplicitDestructorCall(0): [DestructorCall] call to ~B -# 2481| Type = [VoidType] void -# 2481| ValueCategory = prvalue -# 2481| getQualifier(): [ReuseExpr] reuse of temporary object -# 2481| Type = [Struct] B -# 2481| ValueCategory = xvalue -# 2482| getStmt(1): [ReturnStmt] return ... -# 2485| [TopLevelFunction] void destructor_without_block(bool) -# 2485| : -# 2485| getParameter(0): [Parameter] b -# 2485| Type = [BoolType] bool -# 2486| getEntryPoint(): [BlockStmt] { ... } -# 2487| getStmt(0): [IfStmt] if (...) ... -# 2487| getCondition(): [VariableAccess] b -# 2487| Type = [BoolType] bool -# 2487| ValueCategory = prvalue(load) -# 2488| getThen(): [DeclStmt] declaration -# 2488| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c -# 2488| Type = [Class] ClassWithDestructor -# 2488| getVariable().getInitializer(): [Initializer] initializer for c -# 2488| getExpr(): [ConstructorCall] call to ClassWithDestructor -# 2488| Type = [VoidType] void -# 2488| ValueCategory = prvalue +# 2481| [TopLevelFunction] void rvalue_conversion_with_destructor::test() +# 2481| : +# 2482| getEntryPoint(): [BlockStmt] { ... } +# 2483| getStmt(0): [DeclStmt] declaration +# 2483| getDeclarationEntry(0): [VariableDeclarationEntry] definition of a +# 2483| Type = [IntType] unsigned int +# 2483| getVariable().getInitializer(): [Initializer] initializer for a +# 2483| getExpr(): [PointerFieldAccess] a +# 2483| Type = [IntType] unsigned int +# 2483| ValueCategory = prvalue(load) +# 2483| getQualifier(): [FunctionCall] call to operator-> +# 2483| Type = [PointerType] A * +# 2483| ValueCategory = prvalue +# 2483| getQualifier(): [FunctionCall] call to get +# 2483| Type = [Struct] B +# 2483| ValueCategory = prvalue +# 2483| getQualifier().getFullyConverted(): [CStyleCast] (const B)... +# 2483| Conversion = [PrvalueAdjustmentConversion] prvalue adjustment conversion +# 2483| Type = [SpecifiedType] const B +# 2483| ValueCategory = prvalue +# 2483| getExpr(): [TemporaryObjectExpr] temporary object +# 2483| Type = [Struct] B +# 2483| ValueCategory = prvalue(load) +# 2483| getImplicitDestructorCall(0): [DestructorCall] call to ~B +# 2483| Type = [VoidType] void +# 2483| ValueCategory = prvalue +# 2483| getQualifier(): [ReuseExpr] reuse of temporary object +# 2483| Type = [Struct] B +# 2483| ValueCategory = xvalue +# 2484| getStmt(1): [ReturnStmt] return ... +# 2487| [TopLevelFunction] void destructor_without_block(bool) +# 2487| : +# 2487| getParameter(0): [Parameter] b +# 2487| Type = [BoolType] bool +# 2488| getEntryPoint(): [BlockStmt] { ... } +# 2489| getStmt(0): [IfStmt] if (...) ... +# 2489| getCondition(): [VariableAccess] b +# 2489| Type = [BoolType] bool +# 2489| ValueCategory = prvalue(load) +# 2490| getThen(): [DeclStmt] declaration +# 2490| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c +# 2490| Type = [Class] ClassWithDestructor +# 2490| getVariable().getInitializer(): [Initializer] initializer for c +# 2490| getExpr(): [ConstructorCall] call to ClassWithDestructor +# 2490| Type = [VoidType] void +# 2490| ValueCategory = prvalue #-----| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor #-----| Type = [VoidType] void #-----| ValueCategory = prvalue #-----| getQualifier(): [VariableAccess] c #-----| Type = [Class] ClassWithDestructor #-----| ValueCategory = lvalue -# 2490| getStmt(1): [IfStmt] if (...) ... -# 2490| getCondition(): [VariableAccess] b -# 2490| Type = [BoolType] bool -# 2490| ValueCategory = prvalue(load) -# 2491| getThen(): [DeclStmt] declaration -# 2491| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d -# 2491| Type = [Class] ClassWithDestructor -# 2491| getVariable().getInitializer(): [Initializer] initializer for d -# 2491| getExpr(): [ConstructorCall] call to ClassWithDestructor -# 2491| Type = [VoidType] void -# 2491| ValueCategory = prvalue +# 2492| getStmt(1): [IfStmt] if (...) ... +# 2492| getCondition(): [VariableAccess] b +# 2492| Type = [BoolType] bool +# 2492| ValueCategory = prvalue(load) +# 2493| getThen(): [DeclStmt] declaration +# 2493| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d +# 2493| Type = [Class] ClassWithDestructor +# 2493| getVariable().getInitializer(): [Initializer] initializer for d +# 2493| getExpr(): [ConstructorCall] call to ClassWithDestructor +# 2493| Type = [VoidType] void +# 2493| ValueCategory = prvalue #-----| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor #-----| Type = [VoidType] void #-----| ValueCategory = prvalue #-----| getQualifier(): [VariableAccess] d #-----| Type = [Class] ClassWithDestructor #-----| ValueCategory = lvalue -# 2493| getElse(): [DeclStmt] declaration -# 2493| getDeclarationEntry(0): [VariableDeclarationEntry] definition of e -# 2493| Type = [Class] ClassWithDestructor -# 2493| getVariable().getInitializer(): [Initializer] initializer for e -# 2493| getExpr(): [ConstructorCall] call to ClassWithDestructor -# 2493| Type = [VoidType] void -# 2493| ValueCategory = prvalue +# 2495| getElse(): [DeclStmt] declaration +# 2495| getDeclarationEntry(0): [VariableDeclarationEntry] definition of e +# 2495| Type = [Class] ClassWithDestructor +# 2495| getVariable().getInitializer(): [Initializer] initializer for e +# 2495| getExpr(): [ConstructorCall] call to ClassWithDestructor +# 2495| Type = [VoidType] void +# 2495| ValueCategory = prvalue #-----| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor #-----| Type = [VoidType] void #-----| ValueCategory = prvalue #-----| getQualifier(): [VariableAccess] e #-----| Type = [Class] ClassWithDestructor #-----| ValueCategory = lvalue -# 2495| getStmt(2): [WhileStmt] while (...) ... -# 2495| getCondition(): [VariableAccess] b -# 2495| Type = [BoolType] bool -# 2495| ValueCategory = prvalue(load) -# 2496| getStmt(): [DeclStmt] declaration -# 2496| getDeclarationEntry(0): [VariableDeclarationEntry] definition of f -# 2496| Type = [Class] ClassWithDestructor -# 2496| getVariable().getInitializer(): [Initializer] initializer for f -# 2496| getExpr(): [ConstructorCall] call to ClassWithDestructor -# 2496| Type = [VoidType] void -# 2496| ValueCategory = prvalue +# 2497| getStmt(2): [WhileStmt] while (...) ... +# 2497| getCondition(): [VariableAccess] b +# 2497| Type = [BoolType] bool +# 2497| ValueCategory = prvalue(load) +# 2498| getStmt(): [DeclStmt] declaration +# 2498| getDeclarationEntry(0): [VariableDeclarationEntry] definition of f +# 2498| Type = [Class] ClassWithDestructor +# 2498| getVariable().getInitializer(): [Initializer] initializer for f +# 2498| getExpr(): [ConstructorCall] call to ClassWithDestructor +# 2498| Type = [VoidType] void +# 2498| ValueCategory = prvalue #-----| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor #-----| Type = [VoidType] void #-----| ValueCategory = prvalue #-----| getQualifier(): [VariableAccess] f #-----| Type = [Class] ClassWithDestructor #-----| ValueCategory = lvalue -# 2498| getStmt(3): [ForStmt] for(...;...;...) ... -# 2498| getInitialization(): [DeclStmt] declaration -# 2498| getDeclarationEntry(0): [VariableDeclarationEntry] definition of i -# 2498| Type = [IntType] int -# 2498| getVariable().getInitializer(): [Initializer] initializer for i -# 2498| getExpr(): [Literal] 0 -# 2498| Type = [IntType] int -# 2498| Value = [Literal] 0 -# 2498| ValueCategory = prvalue -# 2498| getCondition(): [LTExpr] ... < ... -# 2498| Type = [BoolType] bool -# 2498| ValueCategory = prvalue -# 2498| getLesserOperand(): [VariableAccess] i -# 2498| Type = [IntType] int -# 2498| ValueCategory = prvalue(load) -# 2498| getGreaterOperand(): [Literal] 42 -# 2498| Type = [IntType] int -# 2498| Value = [Literal] 42 -# 2498| ValueCategory = prvalue -# 2498| getUpdate(): [PrefixIncrExpr] ++ ... -# 2498| Type = [IntType] int -# 2498| ValueCategory = lvalue -# 2498| getOperand(): [VariableAccess] i -# 2498| Type = [IntType] int -# 2498| ValueCategory = lvalue -# 2499| getStmt(): [DeclStmt] declaration -# 2499| getDeclarationEntry(0): [VariableDeclarationEntry] definition of g -# 2499| Type = [Class] ClassWithDestructor -# 2499| getVariable().getInitializer(): [Initializer] initializer for g -# 2499| getExpr(): [ConstructorCall] call to ClassWithDestructor -# 2499| Type = [VoidType] void -# 2499| ValueCategory = prvalue +# 2500| getStmt(3): [ForStmt] for(...;...;...) ... +# 2500| getInitialization(): [DeclStmt] declaration +# 2500| getDeclarationEntry(0): [VariableDeclarationEntry] definition of i +# 2500| Type = [IntType] int +# 2500| getVariable().getInitializer(): [Initializer] initializer for i +# 2500| getExpr(): [Literal] 0 +# 2500| Type = [IntType] int +# 2500| Value = [Literal] 0 +# 2500| ValueCategory = prvalue +# 2500| getCondition(): [LTExpr] ... < ... +# 2500| Type = [BoolType] bool +# 2500| ValueCategory = prvalue +# 2500| getLesserOperand(): [VariableAccess] i +# 2500| Type = [IntType] int +# 2500| ValueCategory = prvalue(load) +# 2500| getGreaterOperand(): [Literal] 42 +# 2500| Type = [IntType] int +# 2500| Value = [Literal] 42 +# 2500| ValueCategory = prvalue +# 2500| getUpdate(): [PrefixIncrExpr] ++ ... +# 2500| Type = [IntType] int +# 2500| ValueCategory = lvalue +# 2500| getOperand(): [VariableAccess] i +# 2500| Type = [IntType] int +# 2500| ValueCategory = lvalue +# 2501| getStmt(): [DeclStmt] declaration +# 2501| getDeclarationEntry(0): [VariableDeclarationEntry] definition of g +# 2501| Type = [Class] ClassWithDestructor +# 2501| getVariable().getInitializer(): [Initializer] initializer for g +# 2501| getExpr(): [ConstructorCall] call to ClassWithDestructor +# 2501| Type = [VoidType] void +# 2501| ValueCategory = prvalue #-----| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor #-----| Type = [VoidType] void #-----| ValueCategory = prvalue #-----| getQualifier(): [VariableAccess] g #-----| Type = [Class] ClassWithDestructor #-----| ValueCategory = lvalue -# 2500| getStmt(4): [ReturnStmt] return ... -# 2502| [TopLevelFunction] void destruction_in_switch_1(int) -# 2502| : -# 2502| getParameter(0): [Parameter] c -# 2502| Type = [IntType] int -# 2502| getEntryPoint(): [BlockStmt] { ... } -# 2503| getStmt(0): [SwitchStmt] switch (...) ... -# 2503| getExpr(): [VariableAccess] c -# 2503| Type = [IntType] int -# 2503| ValueCategory = prvalue(load) -# 2503| getStmt(): [BlockStmt] { ... } -# 2504| getStmt(0): [SwitchCase] case ...: -# 2504| getExpr(): [Literal] 0 -# 2504| Type = [IntType] int -# 2504| Value = [Literal] 0 -# 2504| ValueCategory = prvalue -# 2504| getStmt(1): [BlockStmt] { ... } -# 2505| getStmt(0): [DeclStmt] declaration -# 2505| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x -# 2505| Type = [Class] ClassWithDestructor -# 2505| getVariable().getInitializer(): [Initializer] initializer for x -# 2505| getExpr(): [ConstructorCall] call to ClassWithDestructor -# 2505| Type = [VoidType] void -# 2505| ValueCategory = prvalue -# 2506| getStmt(1): [BreakStmt] break; -# 2507| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor -# 2507| Type = [VoidType] void -# 2507| ValueCategory = prvalue -# 2507| getQualifier(): [VariableAccess] x -# 2507| Type = [Class] ClassWithDestructor -# 2507| ValueCategory = lvalue -# 2507| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor -# 2507| Type = [VoidType] void -# 2507| ValueCategory = prvalue -# 2507| getQualifier(): [VariableAccess] x +# 2502| getStmt(4): [ReturnStmt] return ... +# 2504| [TopLevelFunction] void destruction_in_switch_1(int) +# 2504| : +# 2504| getParameter(0): [Parameter] c +# 2504| Type = [IntType] int +# 2504| getEntryPoint(): [BlockStmt] { ... } +# 2505| getStmt(0): [SwitchStmt] switch (...) ... +# 2505| getExpr(): [VariableAccess] c +# 2505| Type = [IntType] int +# 2505| ValueCategory = prvalue(load) +# 2505| getStmt(): [BlockStmt] { ... } +# 2506| getStmt(0): [SwitchCase] case ...: +# 2506| getExpr(): [Literal] 0 +# 2506| Type = [IntType] int +# 2506| Value = [Literal] 0 +# 2506| ValueCategory = prvalue +# 2506| getStmt(1): [BlockStmt] { ... } +# 2507| getStmt(0): [DeclStmt] declaration +# 2507| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x # 2507| Type = [Class] ClassWithDestructor -# 2507| ValueCategory = lvalue -# 2508| getStmt(1): [LabelStmt] label ...: -# 2509| getStmt(2): [ReturnStmt] return ... -# 2511| [TopLevelFunction] void destruction_in_switch_2(int) -# 2511| : -# 2511| getParameter(0): [Parameter] c -# 2511| Type = [IntType] int -# 2511| getEntryPoint(): [BlockStmt] { ... } -# 2512| getStmt(0): [SwitchStmt] switch (...) ... -# 2512| getInitialization(): [DeclStmt] declaration -# 2512| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y -# 2512| Type = [Class] ClassWithDestructor -# 2512| getVariable().getInitializer(): [Initializer] initializer for y -# 2512| getExpr(): [ConstructorCall] call to ClassWithDestructor -# 2512| Type = [VoidType] void -# 2512| ValueCategory = prvalue -# 2512| getExpr(): [VariableAccess] c -# 2512| Type = [IntType] int -# 2512| ValueCategory = prvalue(load) -# 2512| getStmt(): [BlockStmt] { ... } -# 2513| getStmt(0): [SwitchCase] case ...: -# 2513| getExpr(): [Literal] 0 -# 2513| Type = [IntType] int -# 2513| Value = [Literal] 0 -# 2513| ValueCategory = prvalue -# 2513| getStmt(1): [BlockStmt] { ... } -# 2514| getStmt(0): [BreakStmt] break; -# 2519| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor -# 2519| Type = [VoidType] void -# 2519| ValueCategory = prvalue -# 2519| getQualifier(): [VariableAccess] y -# 2519| Type = [Class] ClassWithDestructor -# 2519| ValueCategory = lvalue -# 2516| getStmt(2): [SwitchCase] default: -# 2516| getStmt(3): [BlockStmt] { ... } -# 2517| getStmt(0): [BreakStmt] break; -# 2519| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor -# 2519| Type = [VoidType] void -# 2519| ValueCategory = prvalue -# 2519| getQualifier(): [VariableAccess] y -# 2519| Type = [Class] ClassWithDestructor -# 2519| ValueCategory = lvalue -# 2519| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor -# 2519| Type = [VoidType] void -# 2519| ValueCategory = prvalue -# 2519| getQualifier(): [VariableAccess] y -# 2519| Type = [Class] ClassWithDestructor -# 2519| ValueCategory = lvalue -# 2519| getStmt(1): [LabelStmt] label ...: -# 2520| getStmt(2): [ReturnStmt] return ... -# 2522| [TopLevelFunction] void destruction_in_switch_3(int) -# 2522| : -# 2522| getParameter(0): [Parameter] c -# 2522| Type = [IntType] int -# 2522| getEntryPoint(): [BlockStmt] { ... } -# 2523| getStmt(0): [SwitchStmt] switch (...) ... -# 2523| getInitialization(): [DeclStmt] declaration -# 2523| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y -# 2523| Type = [Class] ClassWithDestructor -# 2523| getVariable().getInitializer(): [Initializer] initializer for y -# 2523| getExpr(): [ConstructorCall] call to ClassWithDestructor -# 2523| Type = [VoidType] void -# 2523| ValueCategory = prvalue -# 2523| getExpr(): [VariableAccess] c -# 2523| Type = [IntType] int -# 2523| ValueCategory = prvalue(load) -# 2523| getStmt(): [BlockStmt] { ... } -# 2524| getStmt(0): [SwitchCase] case ...: -# 2524| getExpr(): [Literal] 0 -# 2524| Type = [IntType] int -# 2524| Value = [Literal] 0 -# 2524| ValueCategory = prvalue -# 2524| getStmt(1): [BlockStmt] { ... } -# 2525| getStmt(0): [DeclStmt] declaration -# 2525| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x -# 2525| Type = [Class] ClassWithDestructor -# 2525| getVariable().getInitializer(): [Initializer] initializer for x -# 2525| getExpr(): [ConstructorCall] call to ClassWithDestructor -# 2525| Type = [VoidType] void -# 2525| ValueCategory = prvalue -# 2526| getStmt(1): [BreakStmt] break; -# 2527| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor -# 2527| Type = [VoidType] void -# 2527| ValueCategory = prvalue -# 2527| getQualifier(): [VariableAccess] x -# 2527| Type = [Class] ClassWithDestructor -# 2527| ValueCategory = lvalue -# 2531| getImplicitDestructorCall(1): [DestructorCall] call to ~ClassWithDestructor -# 2531| Type = [VoidType] void -# 2531| ValueCategory = prvalue -# 2531| getQualifier(): [VariableAccess] y -# 2531| Type = [Class] ClassWithDestructor -# 2531| ValueCategory = lvalue -# 2527| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor -# 2527| Type = [VoidType] void -# 2527| ValueCategory = prvalue -# 2527| getQualifier(): [VariableAccess] x +# 2507| getVariable().getInitializer(): [Initializer] initializer for x +# 2507| getExpr(): [ConstructorCall] call to ClassWithDestructor +# 2507| Type = [VoidType] void +# 2507| ValueCategory = prvalue +# 2508| getStmt(1): [BreakStmt] break; +# 2509| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2509| Type = [VoidType] void +# 2509| ValueCategory = prvalue +# 2509| getQualifier(): [VariableAccess] x +# 2509| Type = [Class] ClassWithDestructor +# 2509| ValueCategory = lvalue +# 2509| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2509| Type = [VoidType] void +# 2509| ValueCategory = prvalue +# 2509| getQualifier(): [VariableAccess] x +# 2509| Type = [Class] ClassWithDestructor +# 2509| ValueCategory = lvalue +# 2510| getStmt(1): [LabelStmt] label ...: +# 2511| getStmt(2): [ReturnStmt] return ... +# 2513| [TopLevelFunction] void destruction_in_switch_2(int) +# 2513| : +# 2513| getParameter(0): [Parameter] c +# 2513| Type = [IntType] int +# 2513| getEntryPoint(): [BlockStmt] { ... } +# 2514| getStmt(0): [SwitchStmt] switch (...) ... +# 2514| getInitialization(): [DeclStmt] declaration +# 2514| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y +# 2514| Type = [Class] ClassWithDestructor +# 2514| getVariable().getInitializer(): [Initializer] initializer for y +# 2514| getExpr(): [ConstructorCall] call to ClassWithDestructor +# 2514| Type = [VoidType] void +# 2514| ValueCategory = prvalue +# 2514| getExpr(): [VariableAccess] c +# 2514| Type = [IntType] int +# 2514| ValueCategory = prvalue(load) +# 2514| getStmt(): [BlockStmt] { ... } +# 2515| getStmt(0): [SwitchCase] case ...: +# 2515| getExpr(): [Literal] 0 +# 2515| Type = [IntType] int +# 2515| Value = [Literal] 0 +# 2515| ValueCategory = prvalue +# 2515| getStmt(1): [BlockStmt] { ... } +# 2516| getStmt(0): [BreakStmt] break; +# 2521| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2521| Type = [VoidType] void +# 2521| ValueCategory = prvalue +# 2521| getQualifier(): [VariableAccess] y +# 2521| Type = [Class] ClassWithDestructor +# 2521| ValueCategory = lvalue +# 2518| getStmt(2): [SwitchCase] default: +# 2518| getStmt(3): [BlockStmt] { ... } +# 2519| getStmt(0): [BreakStmt] break; +# 2521| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2521| Type = [VoidType] void +# 2521| ValueCategory = prvalue +# 2521| getQualifier(): [VariableAccess] y +# 2521| Type = [Class] ClassWithDestructor +# 2521| ValueCategory = lvalue +# 2521| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2521| Type = [VoidType] void +# 2521| ValueCategory = prvalue +# 2521| getQualifier(): [VariableAccess] y +# 2521| Type = [Class] ClassWithDestructor +# 2521| ValueCategory = lvalue +# 2521| getStmt(1): [LabelStmt] label ...: +# 2522| getStmt(2): [ReturnStmt] return ... +# 2524| [TopLevelFunction] void destruction_in_switch_3(int) +# 2524| : +# 2524| getParameter(0): [Parameter] c +# 2524| Type = [IntType] int +# 2524| getEntryPoint(): [BlockStmt] { ... } +# 2525| getStmt(0): [SwitchStmt] switch (...) ... +# 2525| getInitialization(): [DeclStmt] declaration +# 2525| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y +# 2525| Type = [Class] ClassWithDestructor +# 2525| getVariable().getInitializer(): [Initializer] initializer for y +# 2525| getExpr(): [ConstructorCall] call to ClassWithDestructor +# 2525| Type = [VoidType] void +# 2525| ValueCategory = prvalue +# 2525| getExpr(): [VariableAccess] c +# 2525| Type = [IntType] int +# 2525| ValueCategory = prvalue(load) +# 2525| getStmt(): [BlockStmt] { ... } +# 2526| getStmt(0): [SwitchCase] case ...: +# 2526| getExpr(): [Literal] 0 +# 2526| Type = [IntType] int +# 2526| Value = [Literal] 0 +# 2526| ValueCategory = prvalue +# 2526| getStmt(1): [BlockStmt] { ... } +# 2527| getStmt(0): [DeclStmt] declaration +# 2527| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x # 2527| Type = [Class] ClassWithDestructor -# 2527| ValueCategory = lvalue -# 2528| getStmt(2): [SwitchCase] default: -# 2528| getStmt(3): [BlockStmt] { ... } -# 2529| getStmt(0): [BreakStmt] break; -# 2531| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor -# 2531| Type = [VoidType] void -# 2531| ValueCategory = prvalue -# 2531| getQualifier(): [VariableAccess] y -# 2531| Type = [Class] ClassWithDestructor -# 2531| ValueCategory = lvalue -# 2531| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor -# 2531| Type = [VoidType] void -# 2531| ValueCategory = prvalue -# 2531| getQualifier(): [VariableAccess] y -# 2531| Type = [Class] ClassWithDestructor -# 2531| ValueCategory = lvalue -# 2531| getStmt(1): [LabelStmt] label ...: -# 2532| getStmt(2): [ReturnStmt] return ... -# 2534| [TopLevelFunction] void destructor_possibly_not_handled() -# 2534| : -# 2534| getEntryPoint(): [BlockStmt] { ... } -# 2535| getStmt(0): [DeclStmt] declaration -# 2535| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x -# 2535| Type = [Class] ClassWithDestructor -# 2535| getVariable().getInitializer(): [Initializer] initializer for x -# 2535| getExpr(): [ConstructorCall] call to ClassWithDestructor -# 2535| Type = [VoidType] void -# 2535| ValueCategory = prvalue -# 2536| getStmt(1): [TryStmt] try { ... } -# 2536| getStmt(): [BlockStmt] { ... } -# 2537| getStmt(0): [ExprStmt] ExprStmt -# 2537| getExpr(): [ThrowExpr] throw ... -# 2537| Type = [IntType] int +# 2527| getVariable().getInitializer(): [Initializer] initializer for x +# 2527| getExpr(): [ConstructorCall] call to ClassWithDestructor +# 2527| Type = [VoidType] void +# 2527| ValueCategory = prvalue +# 2528| getStmt(1): [BreakStmt] break; +# 2529| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2529| Type = [VoidType] void +# 2529| ValueCategory = prvalue +# 2529| getQualifier(): [VariableAccess] x +# 2529| Type = [Class] ClassWithDestructor +# 2529| ValueCategory = lvalue +# 2533| getImplicitDestructorCall(1): [DestructorCall] call to ~ClassWithDestructor +# 2533| Type = [VoidType] void +# 2533| ValueCategory = prvalue +# 2533| getQualifier(): [VariableAccess] y +# 2533| Type = [Class] ClassWithDestructor +# 2533| ValueCategory = lvalue +# 2529| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2529| Type = [VoidType] void +# 2529| ValueCategory = prvalue +# 2529| getQualifier(): [VariableAccess] x +# 2529| Type = [Class] ClassWithDestructor +# 2529| ValueCategory = lvalue +# 2530| getStmt(2): [SwitchCase] default: +# 2530| getStmt(3): [BlockStmt] { ... } +# 2531| getStmt(0): [BreakStmt] break; +# 2533| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2533| Type = [VoidType] void +# 2533| ValueCategory = prvalue +# 2533| getQualifier(): [VariableAccess] y +# 2533| Type = [Class] ClassWithDestructor +# 2533| ValueCategory = lvalue +# 2533| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2533| Type = [VoidType] void +# 2533| ValueCategory = prvalue +# 2533| getQualifier(): [VariableAccess] y +# 2533| Type = [Class] ClassWithDestructor +# 2533| ValueCategory = lvalue +# 2533| getStmt(1): [LabelStmt] label ...: +# 2534| getStmt(2): [ReturnStmt] return ... +# 2536| [TopLevelFunction] void destructor_possibly_not_handled() +# 2536| : +# 2536| getEntryPoint(): [BlockStmt] { ... } +# 2537| getStmt(0): [DeclStmt] declaration +# 2537| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x +# 2537| Type = [Class] ClassWithDestructor +# 2537| getVariable().getInitializer(): [Initializer] initializer for x +# 2537| getExpr(): [ConstructorCall] call to ClassWithDestructor +# 2537| Type = [VoidType] void # 2537| ValueCategory = prvalue -# 2537| getExpr(): [Literal] 42 -# 2537| Type = [IntType] int -# 2537| Value = [Literal] 42 -# 2537| ValueCategory = prvalue -# 2539| getChild(1): [Handler] -# 2539| getParameter(): [Parameter] (unnamed parameter 0) -# 2539| Type = [PlainCharType] char -# 2539| getBlock(): [CatchBlock] { ... } -# 2541| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor -# 2541| Type = [VoidType] void -# 2541| ValueCategory = prvalue -# 2541| getQualifier(): [VariableAccess] x -# 2541| Type = [Class] ClassWithDestructor -# 2541| ValueCategory = lvalue -# 2541| getStmt(2): [ReturnStmt] return ... -# 2541| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor -# 2541| Type = [VoidType] void -# 2541| ValueCategory = prvalue -# 2541| getQualifier(): [VariableAccess] x -# 2541| Type = [Class] ClassWithDestructor -# 2541| ValueCategory = lvalue -# 2543| [TopLevelFunction] ClassWithDestructor getClassWithDestructor() -# 2543| : -# 2545| [TopLevelFunction] void this_inconsistency(bool) +# 2538| getStmt(1): [TryStmt] try { ... } +# 2538| getStmt(): [BlockStmt] { ... } +# 2539| getStmt(0): [ExprStmt] ExprStmt +# 2539| getExpr(): [ThrowExpr] throw ... +# 2539| Type = [IntType] int +# 2539| ValueCategory = prvalue +# 2539| getExpr(): [Literal] 42 +# 2539| Type = [IntType] int +# 2539| Value = [Literal] 42 +# 2539| ValueCategory = prvalue +# 2541| getChild(1): [Handler] +# 2541| getParameter(): [Parameter] (unnamed parameter 0) +# 2541| Type = [PlainCharType] char +# 2541| getBlock(): [CatchBlock] { ... } +# 2543| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2543| Type = [VoidType] void +# 2543| ValueCategory = prvalue +# 2543| getQualifier(): [VariableAccess] x +# 2543| Type = [Class] ClassWithDestructor +# 2543| ValueCategory = lvalue +# 2543| getStmt(2): [ReturnStmt] return ... +# 2543| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2543| Type = [VoidType] void +# 2543| ValueCategory = prvalue +# 2543| getQualifier(): [VariableAccess] x +# 2543| Type = [Class] ClassWithDestructor +# 2543| ValueCategory = lvalue +# 2545| [TopLevelFunction] ClassWithDestructor getClassWithDestructor() # 2545| : -# 2545| getParameter(0): [Parameter] b -# 2545| Type = [BoolType] bool -# 2545| getEntryPoint(): [BlockStmt] { ... } -# 2546| getStmt(0): [IfStmt] if (...) ... -# 2546| getCondition(): [ConditionDeclExpr] (condition decl) -# 2546| Type = [BoolType] bool -# 2546| ValueCategory = prvalue -# 2546| getChild(0): [FunctionCall] call to operator bool -# 2546| Type = [BoolType] bool -# 2546| ValueCategory = prvalue -# 2546| getQualifier(): [VariableAccess] a -# 2546| Type = [LValueReferenceType] const ClassWithDestructor & -# 2546| ValueCategory = prvalue(load) -# 2546| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 2546| Type = [SpecifiedType] const ClassWithDestructor -# 2546| ValueCategory = prvalue(load) -# 2546| getInitializingExpr(): [FunctionCall] call to getClassWithDestructor -# 2546| Type = [Class] ClassWithDestructor -# 2546| ValueCategory = prvalue -# 2546| getInitializingExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 2546| Type = [LValueReferenceType] const ClassWithDestructor & -# 2546| ValueCategory = prvalue -# 2546| getExpr(): [CStyleCast] (const ClassWithDestructor)... -# 2546| Conversion = [GlvalueConversion] glvalue conversion -# 2546| Type = [SpecifiedType] const ClassWithDestructor -# 2546| ValueCategory = lvalue -# 2546| getExpr(): [TemporaryObjectExpr] temporary object -# 2546| Type = [Class] ClassWithDestructor -# 2546| ValueCategory = lvalue -# 2547| getThen(): [EmptyStmt] ; -# 2547| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor -# 2547| Type = [VoidType] void -# 2547| ValueCategory = prvalue -# 2547| getQualifier(): [ReuseExpr] reuse of temporary object -# 2547| Type = [Class] ClassWithDestructor -# 2547| ValueCategory = xvalue -# 2548| getStmt(1): [ReturnStmt] return ... -# 2550| [TopLevelFunction] void constexpr_inconsistency(bool) -# 2550| : -# 2550| getParameter(0): [Parameter] b -# 2550| Type = [BoolType] bool -# 2550| getEntryPoint(): [BlockStmt] { ... } -# 2551| getStmt(0): [ConstexprIfStmt] if constexpr (...) ... -# 2551| getInitialization(): [DeclStmt] declaration -# 2551| getDeclarationEntry(0): [VariableDeclarationEntry] definition of a -# 2551| Type = [LValueReferenceType] const ClassWithDestructor & -# 2551| getVariable().getInitializer(): [Initializer] initializer for a -# 2551| getExpr(): [FunctionCall] call to getClassWithDestructor -# 2551| Type = [Class] ClassWithDestructor -# 2551| ValueCategory = prvalue -# 2551| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 2551| Type = [LValueReferenceType] const ClassWithDestructor & -# 2551| ValueCategory = prvalue -# 2551| getExpr(): [CStyleCast] (const ClassWithDestructor)... -# 2551| Conversion = [GlvalueConversion] glvalue conversion -# 2551| Type = [SpecifiedType] const ClassWithDestructor -# 2551| ValueCategory = lvalue -# 2551| getExpr(): [TemporaryObjectExpr] temporary object -# 2551| Type = [Class] ClassWithDestructor -# 2551| ValueCategory = lvalue -# 2551| getCondition(): [VariableAccess] initialization_with_destructor_bool -# 2551| Type = [BoolType] bool -# 2551| Value = [VariableAccess] 1 -# 2551| ValueCategory = prvalue(load) -# 2552| getThen(): [EmptyStmt] ; -# 2552| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor -# 2552| Type = [VoidType] void -# 2552| ValueCategory = prvalue -# 2552| getQualifier(): [ReuseExpr] reuse of temporary object -# 2552| Type = [Class] ClassWithDestructor -# 2552| ValueCategory = xvalue -# 2553| getStmt(1): [ReturnStmt] return ... -# 2555| [TopLevelFunction] void builtin_bitcast(unsigned long) -# 2555| : -# 2555| getParameter(0): [Parameter] ul -# 2555| Type = [LongType] unsigned long -# 2555| getEntryPoint(): [BlockStmt] { ... } -# 2556| getStmt(0): [DeclStmt] declaration -# 2556| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d -# 2556| Type = [DoubleType] double -# 2556| getVariable().getInitializer(): [Initializer] initializer for d -# 2556| getExpr(): [BuiltInBitCast] __builtin_bit_cast -# 2556| Type = [DoubleType] double -# 2556| ValueCategory = prvalue -# 2556| getChild(0): [TypeName] double -# 2556| Type = [DoubleType] double -# 2556| ValueCategory = prvalue -# 2556| getChild(1): [VariableAccess] ul -# 2556| Type = [LongType] unsigned long -# 2556| ValueCategory = prvalue(load) -# 2557| getStmt(1): [ReturnStmt] return ... -# 2559| [TopLevelFunction] void p_points_to_x_or_y(int, int) -# 2559| : -# 2559| getParameter(0): [Parameter] a -# 2559| Type = [IntType] int -# 2559| getParameter(1): [Parameter] b -# 2559| Type = [IntType] int -# 2559| getEntryPoint(): [BlockStmt] { ... } -# 2560| getStmt(0): [DeclStmt] declaration -# 2560| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x -# 2560| Type = [IntType] int -# 2561| getStmt(1): [DeclStmt] declaration -# 2561| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y -# 2561| Type = [IntType] int -# 2562| getStmt(2): [DeclStmt] declaration -# 2562| getDeclarationEntry(0): [VariableDeclarationEntry] definition of p -# 2562| Type = [IntPointerType] int * -# 2563| getStmt(3): [IfStmt] if (...) ... -# 2563| getCondition(): [LTExpr] ... < ... -# 2563| Type = [BoolType] bool -# 2563| ValueCategory = prvalue -# 2563| getLesserOperand(): [VariableAccess] a -# 2563| Type = [IntType] int -# 2563| ValueCategory = prvalue(load) -# 2563| getGreaterOperand(): [VariableAccess] b -# 2563| Type = [IntType] int -# 2563| ValueCategory = prvalue(load) -# 2563| getThen(): [BlockStmt] { ... } -# 2564| getStmt(0): [ExprStmt] ExprStmt -# 2564| getExpr(): [AssignExpr] ... = ... -# 2564| Type = [IntPointerType] int * -# 2564| ValueCategory = lvalue -# 2564| getLValue(): [VariableAccess] p -# 2564| Type = [IntPointerType] int * -# 2564| ValueCategory = lvalue -# 2564| getRValue(): [AddressOfExpr] & ... -# 2564| Type = [IntPointerType] int * -# 2564| ValueCategory = prvalue -# 2564| getOperand(): [VariableAccess] x -# 2564| Type = [IntType] int -# 2564| ValueCategory = lvalue -# 2565| getElse(): [BlockStmt] { ... } +# 2547| [TopLevelFunction] void this_inconsistency(bool) +# 2547| : +# 2547| getParameter(0): [Parameter] b +# 2547| Type = [BoolType] bool +# 2547| getEntryPoint(): [BlockStmt] { ... } +# 2548| getStmt(0): [IfStmt] if (...) ... +# 2548| getCondition(): [ConditionDeclExpr] (condition decl) +# 2548| Type = [BoolType] bool +# 2548| ValueCategory = prvalue +# 2548| getChild(0): [FunctionCall] call to operator bool +# 2548| Type = [BoolType] bool +# 2548| ValueCategory = prvalue +# 2548| getQualifier(): [VariableAccess] a +# 2548| Type = [LValueReferenceType] const ClassWithDestructor & +# 2548| ValueCategory = prvalue(load) +# 2548| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 2548| Type = [SpecifiedType] const ClassWithDestructor +# 2548| ValueCategory = prvalue(load) +# 2548| getInitializingExpr(): [FunctionCall] call to getClassWithDestructor +# 2548| Type = [Class] ClassWithDestructor +# 2548| ValueCategory = prvalue +# 2548| getInitializingExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 2548| Type = [LValueReferenceType] const ClassWithDestructor & +# 2548| ValueCategory = prvalue +# 2548| getExpr(): [CStyleCast] (const ClassWithDestructor)... +# 2548| Conversion = [GlvalueConversion] glvalue conversion +# 2548| Type = [SpecifiedType] const ClassWithDestructor +# 2548| ValueCategory = lvalue +# 2548| getExpr(): [TemporaryObjectExpr] temporary object +# 2548| Type = [Class] ClassWithDestructor +# 2548| ValueCategory = lvalue +# 2549| getThen(): [EmptyStmt] ; +# 2549| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2549| Type = [VoidType] void +# 2549| ValueCategory = prvalue +# 2549| getQualifier(): [ReuseExpr] reuse of temporary object +# 2549| Type = [Class] ClassWithDestructor +# 2549| ValueCategory = xvalue +# 2550| getStmt(1): [ReturnStmt] return ... +# 2552| [TopLevelFunction] void constexpr_inconsistency(bool) +# 2552| : +# 2552| getParameter(0): [Parameter] b +# 2552| Type = [BoolType] bool +# 2552| getEntryPoint(): [BlockStmt] { ... } +# 2553| getStmt(0): [ConstexprIfStmt] if constexpr (...) ... +# 2553| getInitialization(): [DeclStmt] declaration +# 2553| getDeclarationEntry(0): [VariableDeclarationEntry] definition of a +# 2553| Type = [LValueReferenceType] const ClassWithDestructor & +# 2553| getVariable().getInitializer(): [Initializer] initializer for a +# 2553| getExpr(): [FunctionCall] call to getClassWithDestructor +# 2553| Type = [Class] ClassWithDestructor +# 2553| ValueCategory = prvalue +# 2553| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 2553| Type = [LValueReferenceType] const ClassWithDestructor & +# 2553| ValueCategory = prvalue +# 2553| getExpr(): [CStyleCast] (const ClassWithDestructor)... +# 2553| Conversion = [GlvalueConversion] glvalue conversion +# 2553| Type = [SpecifiedType] const ClassWithDestructor +# 2553| ValueCategory = lvalue +# 2553| getExpr(): [TemporaryObjectExpr] temporary object +# 2553| Type = [Class] ClassWithDestructor +# 2553| ValueCategory = lvalue +# 2553| getCondition(): [VariableAccess] initialization_with_destructor_bool +# 2553| Type = [BoolType] bool +# 2553| Value = [VariableAccess] 1 +# 2553| ValueCategory = prvalue(load) +# 2554| getThen(): [EmptyStmt] ; +# 2554| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2554| Type = [VoidType] void +# 2554| ValueCategory = prvalue +# 2554| getQualifier(): [ReuseExpr] reuse of temporary object +# 2554| Type = [Class] ClassWithDestructor +# 2554| ValueCategory = xvalue +# 2555| getStmt(1): [ReturnStmt] return ... +# 2557| [TopLevelFunction] void builtin_bitcast(unsigned long) +# 2557| : +# 2557| getParameter(0): [Parameter] ul +# 2557| Type = [LongType] unsigned long +# 2557| getEntryPoint(): [BlockStmt] { ... } +# 2558| getStmt(0): [DeclStmt] declaration +# 2558| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d +# 2558| Type = [DoubleType] double +# 2558| getVariable().getInitializer(): [Initializer] initializer for d +# 2558| getExpr(): [BuiltInBitCast] __builtin_bit_cast +# 2558| Type = [DoubleType] double +# 2558| ValueCategory = prvalue +# 2558| getChild(0): [TypeName] double +# 2558| Type = [DoubleType] double +# 2558| ValueCategory = prvalue +# 2558| getChild(1): [VariableAccess] ul +# 2558| Type = [LongType] unsigned long +# 2558| ValueCategory = prvalue(load) +# 2559| getStmt(1): [ReturnStmt] return ... +# 2561| [TopLevelFunction] void p_points_to_x_or_y(int, int) +# 2561| : +# 2561| getParameter(0): [Parameter] a +# 2561| Type = [IntType] int +# 2561| getParameter(1): [Parameter] b +# 2561| Type = [IntType] int +# 2561| getEntryPoint(): [BlockStmt] { ... } +# 2562| getStmt(0): [DeclStmt] declaration +# 2562| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x +# 2562| Type = [IntType] int +# 2563| getStmt(1): [DeclStmt] declaration +# 2563| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y +# 2563| Type = [IntType] int +# 2564| getStmt(2): [DeclStmt] declaration +# 2564| getDeclarationEntry(0): [VariableDeclarationEntry] definition of p +# 2564| Type = [IntPointerType] int * +# 2565| getStmt(3): [IfStmt] if (...) ... +# 2565| getCondition(): [LTExpr] ... < ... +# 2565| Type = [BoolType] bool +# 2565| ValueCategory = prvalue +# 2565| getLesserOperand(): [VariableAccess] a +# 2565| Type = [IntType] int +# 2565| ValueCategory = prvalue(load) +# 2565| getGreaterOperand(): [VariableAccess] b +# 2565| Type = [IntType] int +# 2565| ValueCategory = prvalue(load) +# 2565| getThen(): [BlockStmt] { ... } # 2566| getStmt(0): [ExprStmt] ExprStmt # 2566| getExpr(): [AssignExpr] ... = ... # 2566| Type = [IntPointerType] int * @@ -23366,732 +23384,702 @@ ir.cpp: # 2566| getRValue(): [AddressOfExpr] & ... # 2566| Type = [IntPointerType] int * # 2566| ValueCategory = prvalue -# 2566| getOperand(): [VariableAccess] y +# 2566| getOperand(): [VariableAccess] x # 2566| Type = [IntType] int # 2566| ValueCategory = lvalue -# 2568| getStmt(4): [ExprStmt] ExprStmt -# 2568| getExpr(): [AssignExpr] ... = ... -# 2568| Type = [IntType] int -# 2568| ValueCategory = lvalue -# 2568| getLValue(): [PointerDereferenceExpr] * ... -# 2568| Type = [IntType] int -# 2568| ValueCategory = lvalue -# 2568| getOperand(): [VariableAccess] p +# 2567| getElse(): [BlockStmt] { ... } +# 2568| getStmt(0): [ExprStmt] ExprStmt +# 2568| getExpr(): [AssignExpr] ... = ... # 2568| Type = [IntPointerType] int * -# 2568| ValueCategory = prvalue(load) -# 2568| getRValue(): [Literal] 5 -# 2568| Type = [IntType] int -# 2568| Value = [Literal] 5 -# 2568| ValueCategory = prvalue -# 2569| getStmt(5): [DeclStmt] declaration -# 2569| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z -# 2569| Type = [IntType] int -# 2569| getVariable().getInitializer(): [Initializer] initializer for z -# 2569| getExpr(): [VariableAccess] x -# 2569| Type = [IntType] int -# 2569| ValueCategory = prvalue(load) -# 2570| getStmt(6): [DeclStmt] declaration -# 2570| getDeclarationEntry(0): [VariableDeclarationEntry] definition of w +# 2568| ValueCategory = lvalue +# 2568| getLValue(): [VariableAccess] p +# 2568| Type = [IntPointerType] int * +# 2568| ValueCategory = lvalue +# 2568| getRValue(): [AddressOfExpr] & ... +# 2568| Type = [IntPointerType] int * +# 2568| ValueCategory = prvalue +# 2568| getOperand(): [VariableAccess] y +# 2568| Type = [IntType] int +# 2568| ValueCategory = lvalue +# 2570| getStmt(4): [ExprStmt] ExprStmt +# 2570| getExpr(): [AssignExpr] ... = ... # 2570| Type = [IntType] int -# 2570| getVariable().getInitializer(): [Initializer] initializer for w -# 2570| getExpr(): [VariableAccess] y -# 2570| Type = [IntType] int +# 2570| ValueCategory = lvalue +# 2570| getLValue(): [PointerDereferenceExpr] * ... +# 2570| Type = [IntType] int +# 2570| ValueCategory = lvalue +# 2570| getOperand(): [VariableAccess] p +# 2570| Type = [IntPointerType] int * # 2570| ValueCategory = prvalue(load) -# 2571| getStmt(7): [ReturnStmt] return ... -# 2573| [TopLevelFunction] int phi_after_while() -# 2573| : -# 2573| getEntryPoint(): [BlockStmt] { ... } -# 2574| getStmt(0): [DeclStmt] declaration -# 2574| getDeclarationEntry(0): [VariableDeclarationEntry] definition of r -# 2574| Type = [IntType] int -# 2575| getStmt(1): [DeclStmt] declaration -# 2575| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rP -# 2575| Type = [IntPointerType] int * -# 2575| getVariable().getInitializer(): [Initializer] initializer for rP -# 2575| getExpr(): [AddressOfExpr] & ... -# 2575| Type = [IntPointerType] int * -# 2575| ValueCategory = prvalue -# 2575| getOperand(): [VariableAccess] r -# 2575| Type = [IntType] int -# 2575| ValueCategory = lvalue -# 2577| getStmt(2): [WhileStmt] while (...) ... -# 2577| getCondition(): [FunctionCall] call to predicateA -# 2577| Type = [BoolType] bool -# 2577| ValueCategory = prvalue -# 2577| getStmt(): [BlockStmt] { ... } -# 2578| getStmt(0): [DeclStmt] declaration -# 2578| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s -# 2578| Type = [IntType] int -# 2578| getVariable().getInitializer(): [Initializer] initializer for s -# 2578| getExpr(): [Literal] 0 -# 2578| Type = [IntType] int -# 2578| Value = [Literal] 0 -# 2578| ValueCategory = prvalue -# 2579| getStmt(1): [ExprStmt] ExprStmt -# 2579| getExpr(): [AssignExpr] ... = ... -# 2579| Type = [IntType] int -# 2579| ValueCategory = lvalue -# 2579| getLValue(): [PointerDereferenceExpr] * ... -# 2579| Type = [IntType] int -# 2579| ValueCategory = lvalue -# 2579| getOperand(): [VariableAccess] rP -# 2579| Type = [IntPointerType] int * -# 2579| ValueCategory = prvalue(load) -# 2579| getRValue(): [VariableAccess] s -# 2579| Type = [IntType] int -# 2579| ValueCategory = prvalue(load) -# 2580| getStmt(2): [ExprStmt] ExprStmt -# 2580| getExpr(): [AssignExpr] ... = ... -# 2580| Type = [IntPointerType] int * -# 2580| ValueCategory = lvalue -# 2580| getLValue(): [VariableAccess] rP -# 2580| Type = [IntPointerType] int * -# 2580| ValueCategory = lvalue -# 2580| getRValue(): [AddressOfExpr] & ... -# 2580| Type = [IntPointerType] int * -# 2580| ValueCategory = prvalue -# 2580| getOperand(): [VariableAccess] s +# 2570| getRValue(): [Literal] 5 +# 2570| Type = [IntType] int +# 2570| Value = [Literal] 5 +# 2570| ValueCategory = prvalue +# 2571| getStmt(5): [DeclStmt] declaration +# 2571| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z +# 2571| Type = [IntType] int +# 2571| getVariable().getInitializer(): [Initializer] initializer for z +# 2571| getExpr(): [VariableAccess] x +# 2571| Type = [IntType] int +# 2571| ValueCategory = prvalue(load) +# 2572| getStmt(6): [DeclStmt] declaration +# 2572| getDeclarationEntry(0): [VariableDeclarationEntry] definition of w +# 2572| Type = [IntType] int +# 2572| getVariable().getInitializer(): [Initializer] initializer for w +# 2572| getExpr(): [VariableAccess] y +# 2572| Type = [IntType] int +# 2572| ValueCategory = prvalue(load) +# 2573| getStmt(7): [ReturnStmt] return ... +# 2575| [TopLevelFunction] int phi_after_while() +# 2575| : +# 2575| getEntryPoint(): [BlockStmt] { ... } +# 2576| getStmt(0): [DeclStmt] declaration +# 2576| getDeclarationEntry(0): [VariableDeclarationEntry] definition of r +# 2576| Type = [IntType] int +# 2577| getStmt(1): [DeclStmt] declaration +# 2577| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rP +# 2577| Type = [IntPointerType] int * +# 2577| getVariable().getInitializer(): [Initializer] initializer for rP +# 2577| getExpr(): [AddressOfExpr] & ... +# 2577| Type = [IntPointerType] int * +# 2577| ValueCategory = prvalue +# 2577| getOperand(): [VariableAccess] r +# 2577| Type = [IntType] int +# 2577| ValueCategory = lvalue +# 2579| getStmt(2): [WhileStmt] while (...) ... +# 2579| getCondition(): [FunctionCall] call to predicateA +# 2579| Type = [BoolType] bool +# 2579| ValueCategory = prvalue +# 2579| getStmt(): [BlockStmt] { ... } +# 2580| getStmt(0): [DeclStmt] declaration +# 2580| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s +# 2580| Type = [IntType] int +# 2580| getVariable().getInitializer(): [Initializer] initializer for s +# 2580| getExpr(): [Literal] 0 # 2580| Type = [IntType] int -# 2580| ValueCategory = lvalue -# 2583| getStmt(3): [ReturnStmt] return ... -# 2583| getExpr(): [VariableAccess] r -# 2583| Type = [IntType] int -# 2583| ValueCategory = prvalue(load) -# 2588| [TopLevelFunction] char* recursive_conditional_call_with_increment(char*, bool) -# 2588| : -# 2588| getParameter(0): [Parameter] d -# 2588| Type = [CharPointerType] char * -# 2588| getParameter(1): [Parameter] b -# 2588| Type = [BoolType] bool -# 2589| getEntryPoint(): [BlockStmt] { ... } -# 2590| getStmt(0): [IfStmt] if (...) ... -# 2590| getCondition(): [VariableAccess] b -# 2590| Type = [BoolType] bool -# 2590| ValueCategory = prvalue(load) -# 2590| getThen(): [BlockStmt] { ... } -# 2591| getStmt(0): [ExprStmt] ExprStmt -# 2591| getExpr(): [AssignExpr] ... = ... -# 2591| Type = [CharPointerType] char * -# 2591| ValueCategory = lvalue -# 2591| getLValue(): [VariableAccess] d -# 2591| Type = [CharPointerType] char * -# 2591| ValueCategory = lvalue -# 2591| getRValue(): [FunctionCall] call to recursive_conditional_call_with_increment -# 2591| Type = [CharPointerType] char * -# 2591| ValueCategory = prvalue -# 2591| getArgument(0): [VariableAccess] d -# 2591| Type = [CharPointerType] char * -# 2591| ValueCategory = prvalue(load) -# 2591| getArgument(1): [VariableAccess] b -# 2591| Type = [BoolType] bool -# 2591| ValueCategory = prvalue(load) -# 2593| getStmt(1): [ExprStmt] ExprStmt -# 2593| getExpr(): [PostfixIncrExpr] ... ++ -# 2593| Type = [CharPointerType] char * -# 2593| ValueCategory = prvalue -# 2593| getOperand(): [VariableAccess] d -# 2593| Type = [CharPointerType] char * -# 2593| ValueCategory = lvalue -# 2594| getStmt(2): [ReturnStmt] return ... -# 2594| getExpr(): [VariableAccess] d -# 2594| Type = [CharPointerType] char * -# 2594| ValueCategory = prvalue(load) -# 2597| [CopyAssignmentOperator] Recursive& Recursive::operator=(Recursive const&) -# 2597| : +# 2580| Value = [Literal] 0 +# 2580| ValueCategory = prvalue +# 2581| getStmt(1): [ExprStmt] ExprStmt +# 2581| getExpr(): [AssignExpr] ... = ... +# 2581| Type = [IntType] int +# 2581| ValueCategory = lvalue +# 2581| getLValue(): [PointerDereferenceExpr] * ... +# 2581| Type = [IntType] int +# 2581| ValueCategory = lvalue +# 2581| getOperand(): [VariableAccess] rP +# 2581| Type = [IntPointerType] int * +# 2581| ValueCategory = prvalue(load) +# 2581| getRValue(): [VariableAccess] s +# 2581| Type = [IntType] int +# 2581| ValueCategory = prvalue(load) +# 2582| getStmt(2): [ExprStmt] ExprStmt +# 2582| getExpr(): [AssignExpr] ... = ... +# 2582| Type = [IntPointerType] int * +# 2582| ValueCategory = lvalue +# 2582| getLValue(): [VariableAccess] rP +# 2582| Type = [IntPointerType] int * +# 2582| ValueCategory = lvalue +# 2582| getRValue(): [AddressOfExpr] & ... +# 2582| Type = [IntPointerType] int * +# 2582| ValueCategory = prvalue +# 2582| getOperand(): [VariableAccess] s +# 2582| Type = [IntType] int +# 2582| ValueCategory = lvalue +# 2585| getStmt(3): [ReturnStmt] return ... +# 2585| getExpr(): [VariableAccess] r +# 2585| Type = [IntType] int +# 2585| ValueCategory = prvalue(load) +# 2590| [TopLevelFunction] char* recursive_conditional_call_with_increment(char*, bool) +# 2590| : +# 2590| getParameter(0): [Parameter] d +# 2590| Type = [CharPointerType] char * +# 2590| getParameter(1): [Parameter] b +# 2590| Type = [BoolType] bool +# 2591| getEntryPoint(): [BlockStmt] { ... } +# 2592| getStmt(0): [IfStmt] if (...) ... +# 2592| getCondition(): [VariableAccess] b +# 2592| Type = [BoolType] bool +# 2592| ValueCategory = prvalue(load) +# 2592| getThen(): [BlockStmt] { ... } +# 2593| getStmt(0): [ExprStmt] ExprStmt +# 2593| getExpr(): [AssignExpr] ... = ... +# 2593| Type = [CharPointerType] char * +# 2593| ValueCategory = lvalue +# 2593| getLValue(): [VariableAccess] d +# 2593| Type = [CharPointerType] char * +# 2593| ValueCategory = lvalue +# 2593| getRValue(): [FunctionCall] call to recursive_conditional_call_with_increment +# 2593| Type = [CharPointerType] char * +# 2593| ValueCategory = prvalue +# 2593| getArgument(0): [VariableAccess] d +# 2593| Type = [CharPointerType] char * +# 2593| ValueCategory = prvalue(load) +# 2593| getArgument(1): [VariableAccess] b +# 2593| Type = [BoolType] bool +# 2593| ValueCategory = prvalue(load) +# 2595| getStmt(1): [ExprStmt] ExprStmt +# 2595| getExpr(): [PostfixIncrExpr] ... ++ +# 2595| Type = [CharPointerType] char * +# 2595| ValueCategory = prvalue +# 2595| getOperand(): [VariableAccess] d +# 2595| Type = [CharPointerType] char * +# 2595| ValueCategory = lvalue +# 2596| getStmt(2): [ReturnStmt] return ... +# 2596| getExpr(): [VariableAccess] d +# 2596| Type = [CharPointerType] char * +# 2596| ValueCategory = prvalue(load) +# 2599| [CopyAssignmentOperator] Recursive& Recursive::operator=(Recursive const&) +# 2599| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const Recursive & -# 2597| [MoveAssignmentOperator] Recursive& Recursive::operator=(Recursive&&) -# 2597| : +# 2599| [MoveAssignmentOperator] Recursive& Recursive::operator=(Recursive&&) +# 2599| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] Recursive && -# 2602| [TopLevelFunction] Recursive* merge(Recursive*) -# 2602| : -# 2602| getParameter(0): [Parameter] a -# 2602| Type = [PointerType] Recursive * -# 2603| getEntryPoint(): [BlockStmt] { ... } -# 2604| getStmt(0): [DeclStmt] declaration -# 2604| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b -# 2604| Type = [PointerType] Recursive * -# 2605| getStmt(1): [DeclStmt] declaration -# 2605| getDeclarationEntry(0): [VariableDeclarationEntry] definition of p -# 2605| Type = [PointerType] Recursive ** -# 2605| getVariable().getInitializer(): [Initializer] initializer for p -# 2605| getExpr(): [AddressOfExpr] & ... -# 2605| Type = [PointerType] Recursive ** -# 2605| ValueCategory = prvalue -# 2605| getOperand(): [VariableAccess] b -# 2605| Type = [PointerType] Recursive * -# 2605| ValueCategory = lvalue -# 2607| getStmt(2): [WhileStmt] while (...) ... -# 2607| getCondition(): [FunctionCall] call to predicateA -# 2607| Type = [BoolType] bool -# 2607| ValueCategory = prvalue -# 2608| getStmt(): [BlockStmt] { ... } -# 2609| getStmt(0): [ExprStmt] ExprStmt -# 2609| getExpr(): [AssignExpr] ... = ... -# 2609| Type = [PointerType] Recursive * -# 2609| ValueCategory = lvalue -# 2609| getLValue(): [PointerDereferenceExpr] * ... -# 2609| Type = [PointerType] Recursive * -# 2609| ValueCategory = lvalue -# 2609| getOperand(): [VariableAccess] p -# 2609| Type = [PointerType] Recursive ** -# 2609| ValueCategory = prvalue(load) -# 2609| getRValue(): [VariableAccess] a -# 2609| Type = [PointerType] Recursive * -# 2609| ValueCategory = prvalue(load) -# 2610| getStmt(1): [ExprStmt] ExprStmt -# 2610| getExpr(): [AssignExpr] ... = ... -# 2610| Type = [PointerType] Recursive ** -# 2610| ValueCategory = lvalue -# 2610| getLValue(): [VariableAccess] p -# 2610| Type = [PointerType] Recursive ** -# 2610| ValueCategory = lvalue -# 2610| getRValue(): [AddressOfExpr] & ... -# 2610| Type = [PointerType] Recursive ** -# 2610| ValueCategory = prvalue -# 2610| getOperand(): [PointerFieldAccess] next -# 2610| Type = [PointerType] Recursive * -# 2610| ValueCategory = lvalue -# 2610| getQualifier(): [VariableAccess] a -# 2610| Type = [PointerType] Recursive * -# 2610| ValueCategory = prvalue(load) -# 2613| getStmt(3): [ReturnStmt] return ... -# 2613| getExpr(): [VariableAccess] b -# 2613| Type = [PointerType] Recursive * -# 2613| ValueCategory = prvalue(load) -# 2616| [TopLevelFunction] void use_const_int(int const*) -# 2616| : -# 2616| getParameter(0): [Parameter] (unnamed parameter 0) -# 2616| Type = [PointerType] const int * -# 2618| [TopLevelFunction] void escaping_pointer(bool) +# 2604| [TopLevelFunction] Recursive* merge(Recursive*) +# 2604| : +# 2604| getParameter(0): [Parameter] a +# 2604| Type = [PointerType] Recursive * +# 2605| getEntryPoint(): [BlockStmt] { ... } +# 2606| getStmt(0): [DeclStmt] declaration +# 2606| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b +# 2606| Type = [PointerType] Recursive * +# 2607| getStmt(1): [DeclStmt] declaration +# 2607| getDeclarationEntry(0): [VariableDeclarationEntry] definition of p +# 2607| Type = [PointerType] Recursive ** +# 2607| getVariable().getInitializer(): [Initializer] initializer for p +# 2607| getExpr(): [AddressOfExpr] & ... +# 2607| Type = [PointerType] Recursive ** +# 2607| ValueCategory = prvalue +# 2607| getOperand(): [VariableAccess] b +# 2607| Type = [PointerType] Recursive * +# 2607| ValueCategory = lvalue +# 2609| getStmt(2): [WhileStmt] while (...) ... +# 2609| getCondition(): [FunctionCall] call to predicateA +# 2609| Type = [BoolType] bool +# 2609| ValueCategory = prvalue +# 2610| getStmt(): [BlockStmt] { ... } +# 2611| getStmt(0): [ExprStmt] ExprStmt +# 2611| getExpr(): [AssignExpr] ... = ... +# 2611| Type = [PointerType] Recursive * +# 2611| ValueCategory = lvalue +# 2611| getLValue(): [PointerDereferenceExpr] * ... +# 2611| Type = [PointerType] Recursive * +# 2611| ValueCategory = lvalue +# 2611| getOperand(): [VariableAccess] p +# 2611| Type = [PointerType] Recursive ** +# 2611| ValueCategory = prvalue(load) +# 2611| getRValue(): [VariableAccess] a +# 2611| Type = [PointerType] Recursive * +# 2611| ValueCategory = prvalue(load) +# 2612| getStmt(1): [ExprStmt] ExprStmt +# 2612| getExpr(): [AssignExpr] ... = ... +# 2612| Type = [PointerType] Recursive ** +# 2612| ValueCategory = lvalue +# 2612| getLValue(): [VariableAccess] p +# 2612| Type = [PointerType] Recursive ** +# 2612| ValueCategory = lvalue +# 2612| getRValue(): [AddressOfExpr] & ... +# 2612| Type = [PointerType] Recursive ** +# 2612| ValueCategory = prvalue +# 2612| getOperand(): [PointerFieldAccess] next +# 2612| Type = [PointerType] Recursive * +# 2612| ValueCategory = lvalue +# 2612| getQualifier(): [VariableAccess] a +# 2612| Type = [PointerType] Recursive * +# 2612| ValueCategory = prvalue(load) +# 2615| getStmt(3): [ReturnStmt] return ... +# 2615| getExpr(): [VariableAccess] b +# 2615| Type = [PointerType] Recursive * +# 2615| ValueCategory = prvalue(load) +# 2618| [TopLevelFunction] void use_const_int(int const*) # 2618| : -# 2618| getParameter(0): [Parameter] b -# 2618| Type = [BoolType] bool -# 2619| getEntryPoint(): [BlockStmt] { ... } -# 2620| getStmt(0): [DeclStmt] declaration -# 2620| getDeclarationEntry(0): [VariableDeclarationEntry] definition of data -# 2620| Type = [IntPointerType] int * -# 2621| getStmt(1): [DeclStmt] declaration -# 2621| getDeclarationEntry(0): [VariableDeclarationEntry] definition of l1 -# 2621| Type = [IntType] int -# 2621| getDeclarationEntry(1): [VariableDeclarationEntry] definition of l2 -# 2621| Type = [IntType] int -# 2622| getStmt(2): [IfStmt] if (...) ... -# 2622| getCondition(): [VariableAccess] b -# 2622| Type = [BoolType] bool -# 2622| ValueCategory = prvalue(load) -# 2623| getThen(): [BlockStmt] { ... } -# 2624| getStmt(0): [ExprStmt] ExprStmt -# 2624| getExpr(): [AssignExpr] ... = ... -# 2624| Type = [IntPointerType] int * -# 2624| ValueCategory = lvalue -# 2624| getLValue(): [VariableAccess] data -# 2624| Type = [IntPointerType] int * -# 2624| ValueCategory = lvalue -# 2624| getRValue(): [AddressOfExpr] & ... -# 2624| Type = [IntPointerType] int * -# 2624| ValueCategory = prvalue -# 2624| getOperand(): [VariableAccess] l1 -# 2624| Type = [IntType] int -# 2624| ValueCategory = lvalue -# 2627| getElse(): [BlockStmt] { ... } -# 2628| getStmt(0): [ExprStmt] ExprStmt -# 2628| getExpr(): [AssignExpr] ... = ... -# 2628| Type = [IntPointerType] int * -# 2628| ValueCategory = lvalue -# 2628| getLValue(): [VariableAccess] data -# 2628| Type = [IntPointerType] int * -# 2628| ValueCategory = lvalue -# 2628| getRValue(): [AddressOfExpr] & ... -# 2628| Type = [IntPointerType] int * -# 2628| ValueCategory = prvalue -# 2628| getOperand(): [VariableAccess] l2 -# 2628| Type = [IntType] int -# 2628| ValueCategory = lvalue -# 2630| getStmt(3): [ExprStmt] ExprStmt -# 2630| getExpr(): [FunctionCall] call to use_const_int -# 2630| Type = [VoidType] void -# 2630| ValueCategory = prvalue -# 2630| getArgument(0): [VariableAccess] data -# 2630| Type = [IntPointerType] int * -# 2630| ValueCategory = prvalue(load) -# 2630| getArgument(0).getFullyConverted(): [CStyleCast] (const int *)... -# 2630| Conversion = [PointerConversion] pointer conversion -# 2630| Type = [PointerType] const int * -# 2630| ValueCategory = prvalue -# 2631| getStmt(4): [ReturnStmt] return ... -# 2636| [TopLevelFunction] void* malloc(unsigned long) -# 2636| : -# 2636| getParameter(0): [Parameter] (unnamed parameter 0) -# 2636| Type = [LongType] unsigned long -# 2637| [TopLevelFunction] void use_const_void_pointer(void const*) -# 2637| : -# 2637| getParameter(0): [Parameter] (unnamed parameter 0) -# 2637| Type = [PointerType] const void * -# 2639| [TopLevelFunction] void needs_chi_for_initialize_groups() +# 2618| getParameter(0): [Parameter] (unnamed parameter 0) +# 2618| Type = [PointerType] const int * +# 2620| [TopLevelFunction] void escaping_pointer(bool) +# 2620| : +# 2620| getParameter(0): [Parameter] b +# 2620| Type = [BoolType] bool +# 2621| getEntryPoint(): [BlockStmt] { ... } +# 2622| getStmt(0): [DeclStmt] declaration +# 2622| getDeclarationEntry(0): [VariableDeclarationEntry] definition of data +# 2622| Type = [IntPointerType] int * +# 2623| getStmt(1): [DeclStmt] declaration +# 2623| getDeclarationEntry(0): [VariableDeclarationEntry] definition of l1 +# 2623| Type = [IntType] int +# 2623| getDeclarationEntry(1): [VariableDeclarationEntry] definition of l2 +# 2623| Type = [IntType] int +# 2624| getStmt(2): [IfStmt] if (...) ... +# 2624| getCondition(): [VariableAccess] b +# 2624| Type = [BoolType] bool +# 2624| ValueCategory = prvalue(load) +# 2625| getThen(): [BlockStmt] { ... } +# 2626| getStmt(0): [ExprStmt] ExprStmt +# 2626| getExpr(): [AssignExpr] ... = ... +# 2626| Type = [IntPointerType] int * +# 2626| ValueCategory = lvalue +# 2626| getLValue(): [VariableAccess] data +# 2626| Type = [IntPointerType] int * +# 2626| ValueCategory = lvalue +# 2626| getRValue(): [AddressOfExpr] & ... +# 2626| Type = [IntPointerType] int * +# 2626| ValueCategory = prvalue +# 2626| getOperand(): [VariableAccess] l1 +# 2626| Type = [IntType] int +# 2626| ValueCategory = lvalue +# 2629| getElse(): [BlockStmt] { ... } +# 2630| getStmt(0): [ExprStmt] ExprStmt +# 2630| getExpr(): [AssignExpr] ... = ... +# 2630| Type = [IntPointerType] int * +# 2630| ValueCategory = lvalue +# 2630| getLValue(): [VariableAccess] data +# 2630| Type = [IntPointerType] int * +# 2630| ValueCategory = lvalue +# 2630| getRValue(): [AddressOfExpr] & ... +# 2630| Type = [IntPointerType] int * +# 2630| ValueCategory = prvalue +# 2630| getOperand(): [VariableAccess] l2 +# 2630| Type = [IntType] int +# 2630| ValueCategory = lvalue +# 2632| getStmt(3): [ExprStmt] ExprStmt +# 2632| getExpr(): [FunctionCall] call to use_const_int +# 2632| Type = [VoidType] void +# 2632| ValueCategory = prvalue +# 2632| getArgument(0): [VariableAccess] data +# 2632| Type = [IntPointerType] int * +# 2632| ValueCategory = prvalue(load) +# 2632| getArgument(0).getFullyConverted(): [CStyleCast] (const int *)... +# 2632| Conversion = [PointerConversion] pointer conversion +# 2632| Type = [PointerType] const int * +# 2632| ValueCategory = prvalue +# 2633| getStmt(4): [ReturnStmt] return ... +# 2638| [TopLevelFunction] void* malloc(unsigned long) +# 2638| : +# 2638| getParameter(0): [Parameter] (unnamed parameter 0) +# 2638| Type = [LongType] unsigned long +# 2639| [TopLevelFunction] void use_const_void_pointer(void const*) # 2639| : -# 2640| getEntryPoint(): [BlockStmt] { ... } -# 2641| getStmt(0): [IfStmt] if (...) ... -# 2641| getCondition(): [FunctionCall] call to predicateA -# 2641| Type = [BoolType] bool -# 2641| ValueCategory = prvalue -# 2642| getThen(): [BlockStmt] { ... } -# 2643| getStmt(0): [DeclStmt] declaration -# 2643| getDeclarationEntry(0): [VariableDeclarationEntry] definition of data -# 2643| Type = [PointerType] int64_t * -# 2643| getVariable().getInitializer(): [Initializer] initializer for data -# 2643| getExpr(): [FunctionCall] call to malloc -# 2643| Type = [VoidPointerType] void * -# 2643| ValueCategory = prvalue -# 2643| getArgument(0): [Literal] 100 -# 2643| Type = [IntType] int -# 2643| Value = [Literal] 100 -# 2643| ValueCategory = prvalue -# 2643| getArgument(0).getFullyConverted(): [CStyleCast] (unsigned long)... -# 2643| Conversion = [IntegralConversion] integral conversion -# 2643| Type = [LongType] unsigned long -# 2643| Value = [CStyleCast] 100 -# 2643| ValueCategory = prvalue -# 2643| getExpr().getFullyConverted(): [CStyleCast] (int64_t *)... -# 2643| Conversion = [PointerConversion] pointer conversion -# 2643| Type = [PointerType] int64_t * -# 2643| ValueCategory = prvalue -# 2644| getStmt(1): [IfStmt] if (...) ... -# 2644| getCondition(): [NEExpr] ... != ... -# 2644| Type = [BoolType] bool -# 2644| ValueCategory = prvalue -# 2644| getLeftOperand(): [VariableAccess] data -# 2644| Type = [PointerType] int64_t * -# 2644| ValueCategory = prvalue(load) -# 2644| getRightOperand(): [Literal] 0 -# 2644| Type = [IntType] int -# 2644| Value = [Literal] 0 -# 2644| ValueCategory = prvalue -# 2644| getLeftOperand().getFullyConverted(): [CStyleCast] (void *)... -# 2644| Conversion = [PointerConversion] pointer conversion -# 2644| Type = [VoidPointerType] void * -# 2644| ValueCategory = prvalue -# 2644| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2644| Type = [VoidPointerType] void * -# 2644| Value = [ParenthesisExpr] 0 -# 2644| ValueCategory = prvalue -# 2644| getExpr(): [CStyleCast] (void *)... -# 2644| Conversion = [IntegralToPointerConversion] integral to pointer conversion -# 2644| Type = [VoidPointerType] void * -# 2644| Value = [CStyleCast] 0 -# 2644| ValueCategory = prvalue -# 2645| getThen(): [BlockStmt] { ... } -# 2646| getStmt(0): [ExprStmt] ExprStmt -# 2646| getExpr(): [AssignExpr] ... = ... -# 2646| Type = [PointerType] int64_t * -# 2646| ValueCategory = lvalue -# 2646| getLValue(): [VariableAccess] data -# 2646| Type = [PointerType] int64_t * -# 2646| ValueCategory = lvalue -# 2646| getRValue(): [FunctionCall] call to malloc -# 2646| Type = [VoidPointerType] void * -# 2646| ValueCategory = prvalue -# 2646| getArgument(0): [Literal] 100 -# 2646| Type = [IntType] int -# 2646| Value = [Literal] 100 -# 2646| ValueCategory = prvalue -# 2646| getArgument(0).getFullyConverted(): [CStyleCast] (unsigned long)... -# 2646| Conversion = [IntegralConversion] integral conversion -# 2646| Type = [LongType] unsigned long -# 2646| Value = [CStyleCast] 100 -# 2646| ValueCategory = prvalue -# 2646| getRValue().getFullyConverted(): [CStyleCast] (int64_t *)... -# 2646| Conversion = [PointerConversion] pointer conversion -# 2646| Type = [PointerType] int64_t * -# 2646| ValueCategory = prvalue -# 2648| getStmt(2): [ExprStmt] ExprStmt -# 2648| getExpr(): [FunctionCall] call to use_const_void_pointer -# 2648| Type = [VoidType] void -# 2648| ValueCategory = prvalue -# 2648| getArgument(0): [VariableAccess] data -# 2648| Type = [PointerType] int64_t * -# 2648| ValueCategory = prvalue(load) -# 2648| getArgument(0).getFullyConverted(): [CStyleCast] (const void *)... -# 2648| Conversion = [PointerConversion] pointer conversion -# 2648| Type = [PointerType] const void * -# 2648| ValueCategory = prvalue -# 2651| getElse(): [BlockStmt] { ... } -# 2652| getStmt(0): [DeclStmt] declaration -# 2652| getDeclarationEntry(0): [VariableDeclarationEntry] definition of data -# 2652| Type = [PointerType] int64_t * -# 2652| getVariable().getInitializer(): [Initializer] initializer for data -# 2652| getExpr(): [FunctionCall] call to malloc -# 2652| Type = [VoidPointerType] void * -# 2652| ValueCategory = prvalue -# 2652| getArgument(0): [Literal] 100 -# 2652| Type = [IntType] int -# 2652| Value = [Literal] 100 -# 2652| ValueCategory = prvalue -# 2652| getArgument(0).getFullyConverted(): [CStyleCast] (unsigned long)... -# 2652| Conversion = [IntegralConversion] integral conversion -# 2652| Type = [LongType] unsigned long -# 2652| Value = [CStyleCast] 100 -# 2652| ValueCategory = prvalue -# 2652| getExpr().getFullyConverted(): [CStyleCast] (int64_t *)... -# 2652| Conversion = [PointerConversion] pointer conversion -# 2652| Type = [PointerType] int64_t * -# 2652| ValueCategory = prvalue -# 2653| getStmt(1): [IfStmt] if (...) ... -# 2653| getCondition(): [NEExpr] ... != ... -# 2653| Type = [BoolType] bool -# 2653| ValueCategory = prvalue -# 2653| getLeftOperand(): [VariableAccess] data -# 2653| Type = [PointerType] int64_t * -# 2653| ValueCategory = prvalue(load) -# 2653| getRightOperand(): [Literal] 0 -# 2653| Type = [IntType] int -# 2653| Value = [Literal] 0 -# 2653| ValueCategory = prvalue -# 2653| getLeftOperand().getFullyConverted(): [CStyleCast] (void *)... -# 2653| Conversion = [PointerConversion] pointer conversion -# 2653| Type = [VoidPointerType] void * -# 2653| ValueCategory = prvalue -# 2653| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2653| Type = [VoidPointerType] void * -# 2653| Value = [ParenthesisExpr] 0 -# 2653| ValueCategory = prvalue -# 2653| getExpr(): [CStyleCast] (void *)... -# 2653| Conversion = [IntegralToPointerConversion] integral to pointer conversion -# 2653| Type = [VoidPointerType] void * -# 2653| Value = [CStyleCast] 0 -# 2653| ValueCategory = prvalue -# 2654| getThen(): [BlockStmt] { ... } -# 2655| getStmt(0): [ExprStmt] ExprStmt -# 2655| getExpr(): [AssignExpr] ... = ... -# 2655| Type = [PointerType] int64_t * -# 2655| ValueCategory = lvalue -# 2655| getLValue(): [VariableAccess] data -# 2655| Type = [PointerType] int64_t * -# 2655| ValueCategory = lvalue -# 2655| getRValue(): [FunctionCall] call to malloc -# 2655| Type = [VoidPointerType] void * -# 2655| ValueCategory = prvalue -# 2655| getArgument(0): [Literal] 200 -# 2655| Type = [IntType] int -# 2655| Value = [Literal] 200 -# 2655| ValueCategory = prvalue -# 2655| getArgument(0).getFullyConverted(): [CStyleCast] (unsigned long)... -# 2655| Conversion = [IntegralConversion] integral conversion -# 2655| Type = [LongType] unsigned long -# 2655| Value = [CStyleCast] 200 -# 2655| ValueCategory = prvalue -# 2655| getRValue().getFullyConverted(): [CStyleCast] (int64_t *)... -# 2655| Conversion = [PointerConversion] pointer conversion -# 2655| Type = [PointerType] int64_t * -# 2655| ValueCategory = prvalue -# 2657| getStmt(2): [ExprStmt] ExprStmt -# 2657| getExpr(): [FunctionCall] call to use_const_void_pointer -# 2657| Type = [VoidType] void -# 2657| ValueCategory = prvalue -# 2657| getArgument(0): [VariableAccess] data -# 2657| Type = [PointerType] int64_t * -# 2657| ValueCategory = prvalue(load) -# 2657| getArgument(0).getFullyConverted(): [CStyleCast] (const void *)... -# 2657| Conversion = [PointerConversion] pointer conversion -# 2657| Type = [PointerType] const void * -# 2657| ValueCategory = prvalue -# 2659| getStmt(1): [ReturnStmt] return ... -# 2661| [TopLevelFunction] void use_int(int) -# 2661| : -# 2661| getParameter(0): [Parameter] (unnamed parameter 0) -# 2661| Type = [IntType] int -# 2663| [TopLevelFunction] void phi_with_single_input_at_merge(bool) +# 2639| getParameter(0): [Parameter] (unnamed parameter 0) +# 2639| Type = [PointerType] const void * +# 2641| [TopLevelFunction] void needs_chi_for_initialize_groups() +# 2641| : +# 2642| getEntryPoint(): [BlockStmt] { ... } +# 2643| getStmt(0): [IfStmt] if (...) ... +# 2643| getCondition(): [FunctionCall] call to predicateA +# 2643| Type = [BoolType] bool +# 2643| ValueCategory = prvalue +# 2644| getThen(): [BlockStmt] { ... } +# 2645| getStmt(0): [DeclStmt] declaration +# 2645| getDeclarationEntry(0): [VariableDeclarationEntry] definition of data +# 2645| Type = [PointerType] int64_t * +# 2645| getVariable().getInitializer(): [Initializer] initializer for data +# 2645| getExpr(): [FunctionCall] call to malloc +# 2645| Type = [VoidPointerType] void * +# 2645| ValueCategory = prvalue +# 2645| getArgument(0): [Literal] 100 +# 2645| Type = [IntType] int +# 2645| Value = [Literal] 100 +# 2645| ValueCategory = prvalue +# 2645| getArgument(0).getFullyConverted(): [CStyleCast] (unsigned long)... +# 2645| Conversion = [IntegralConversion] integral conversion +# 2645| Type = [LongType] unsigned long +# 2645| Value = [CStyleCast] 100 +# 2645| ValueCategory = prvalue +# 2645| getExpr().getFullyConverted(): [CStyleCast] (int64_t *)... +# 2645| Conversion = [PointerConversion] pointer conversion +# 2645| Type = [PointerType] int64_t * +# 2645| ValueCategory = prvalue +# 2646| getStmt(1): [IfStmt] if (...) ... +# 2646| getCondition(): [NEExpr] ... != ... +# 2646| Type = [BoolType] bool +# 2646| ValueCategory = prvalue +# 2646| getLeftOperand(): [VariableAccess] data +# 2646| Type = [PointerType] int64_t * +# 2646| ValueCategory = prvalue(load) +# 2646| getRightOperand(): [Literal] 0 +# 2646| Type = [IntType] int +# 2646| Value = [Literal] 0 +# 2646| ValueCategory = prvalue +# 2646| getLeftOperand().getFullyConverted(): [CStyleCast] (void *)... +# 2646| Conversion = [PointerConversion] pointer conversion +# 2646| Type = [VoidPointerType] void * +# 2646| ValueCategory = prvalue +# 2646| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2646| Type = [VoidPointerType] void * +# 2646| Value = [ParenthesisExpr] 0 +# 2646| ValueCategory = prvalue +# 2646| getExpr(): [CStyleCast] (void *)... +# 2646| Conversion = [IntegralToPointerConversion] integral to pointer conversion +# 2646| Type = [VoidPointerType] void * +# 2646| Value = [CStyleCast] 0 +# 2646| ValueCategory = prvalue +# 2647| getThen(): [BlockStmt] { ... } +# 2648| getStmt(0): [ExprStmt] ExprStmt +# 2648| getExpr(): [AssignExpr] ... = ... +# 2648| Type = [PointerType] int64_t * +# 2648| ValueCategory = lvalue +# 2648| getLValue(): [VariableAccess] data +# 2648| Type = [PointerType] int64_t * +# 2648| ValueCategory = lvalue +# 2648| getRValue(): [FunctionCall] call to malloc +# 2648| Type = [VoidPointerType] void * +# 2648| ValueCategory = prvalue +# 2648| getArgument(0): [Literal] 100 +# 2648| Type = [IntType] int +# 2648| Value = [Literal] 100 +# 2648| ValueCategory = prvalue +# 2648| getArgument(0).getFullyConverted(): [CStyleCast] (unsigned long)... +# 2648| Conversion = [IntegralConversion] integral conversion +# 2648| Type = [LongType] unsigned long +# 2648| Value = [CStyleCast] 100 +# 2648| ValueCategory = prvalue +# 2648| getRValue().getFullyConverted(): [CStyleCast] (int64_t *)... +# 2648| Conversion = [PointerConversion] pointer conversion +# 2648| Type = [PointerType] int64_t * +# 2648| ValueCategory = prvalue +# 2650| getStmt(2): [ExprStmt] ExprStmt +# 2650| getExpr(): [FunctionCall] call to use_const_void_pointer +# 2650| Type = [VoidType] void +# 2650| ValueCategory = prvalue +# 2650| getArgument(0): [VariableAccess] data +# 2650| Type = [PointerType] int64_t * +# 2650| ValueCategory = prvalue(load) +# 2650| getArgument(0).getFullyConverted(): [CStyleCast] (const void *)... +# 2650| Conversion = [PointerConversion] pointer conversion +# 2650| Type = [PointerType] const void * +# 2650| ValueCategory = prvalue +# 2653| getElse(): [BlockStmt] { ... } +# 2654| getStmt(0): [DeclStmt] declaration +# 2654| getDeclarationEntry(0): [VariableDeclarationEntry] definition of data +# 2654| Type = [PointerType] int64_t * +# 2654| getVariable().getInitializer(): [Initializer] initializer for data +# 2654| getExpr(): [FunctionCall] call to malloc +# 2654| Type = [VoidPointerType] void * +# 2654| ValueCategory = prvalue +# 2654| getArgument(0): [Literal] 100 +# 2654| Type = [IntType] int +# 2654| Value = [Literal] 100 +# 2654| ValueCategory = prvalue +# 2654| getArgument(0).getFullyConverted(): [CStyleCast] (unsigned long)... +# 2654| Conversion = [IntegralConversion] integral conversion +# 2654| Type = [LongType] unsigned long +# 2654| Value = [CStyleCast] 100 +# 2654| ValueCategory = prvalue +# 2654| getExpr().getFullyConverted(): [CStyleCast] (int64_t *)... +# 2654| Conversion = [PointerConversion] pointer conversion +# 2654| Type = [PointerType] int64_t * +# 2654| ValueCategory = prvalue +# 2655| getStmt(1): [IfStmt] if (...) ... +# 2655| getCondition(): [NEExpr] ... != ... +# 2655| Type = [BoolType] bool +# 2655| ValueCategory = prvalue +# 2655| getLeftOperand(): [VariableAccess] data +# 2655| Type = [PointerType] int64_t * +# 2655| ValueCategory = prvalue(load) +# 2655| getRightOperand(): [Literal] 0 +# 2655| Type = [IntType] int +# 2655| Value = [Literal] 0 +# 2655| ValueCategory = prvalue +# 2655| getLeftOperand().getFullyConverted(): [CStyleCast] (void *)... +# 2655| Conversion = [PointerConversion] pointer conversion +# 2655| Type = [VoidPointerType] void * +# 2655| ValueCategory = prvalue +# 2655| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2655| Type = [VoidPointerType] void * +# 2655| Value = [ParenthesisExpr] 0 +# 2655| ValueCategory = prvalue +# 2655| getExpr(): [CStyleCast] (void *)... +# 2655| Conversion = [IntegralToPointerConversion] integral to pointer conversion +# 2655| Type = [VoidPointerType] void * +# 2655| Value = [CStyleCast] 0 +# 2655| ValueCategory = prvalue +# 2656| getThen(): [BlockStmt] { ... } +# 2657| getStmt(0): [ExprStmt] ExprStmt +# 2657| getExpr(): [AssignExpr] ... = ... +# 2657| Type = [PointerType] int64_t * +# 2657| ValueCategory = lvalue +# 2657| getLValue(): [VariableAccess] data +# 2657| Type = [PointerType] int64_t * +# 2657| ValueCategory = lvalue +# 2657| getRValue(): [FunctionCall] call to malloc +# 2657| Type = [VoidPointerType] void * +# 2657| ValueCategory = prvalue +# 2657| getArgument(0): [Literal] 200 +# 2657| Type = [IntType] int +# 2657| Value = [Literal] 200 +# 2657| ValueCategory = prvalue +# 2657| getArgument(0).getFullyConverted(): [CStyleCast] (unsigned long)... +# 2657| Conversion = [IntegralConversion] integral conversion +# 2657| Type = [LongType] unsigned long +# 2657| Value = [CStyleCast] 200 +# 2657| ValueCategory = prvalue +# 2657| getRValue().getFullyConverted(): [CStyleCast] (int64_t *)... +# 2657| Conversion = [PointerConversion] pointer conversion +# 2657| Type = [PointerType] int64_t * +# 2657| ValueCategory = prvalue +# 2659| getStmt(2): [ExprStmt] ExprStmt +# 2659| getExpr(): [FunctionCall] call to use_const_void_pointer +# 2659| Type = [VoidType] void +# 2659| ValueCategory = prvalue +# 2659| getArgument(0): [VariableAccess] data +# 2659| Type = [PointerType] int64_t * +# 2659| ValueCategory = prvalue(load) +# 2659| getArgument(0).getFullyConverted(): [CStyleCast] (const void *)... +# 2659| Conversion = [PointerConversion] pointer conversion +# 2659| Type = [PointerType] const void * +# 2659| ValueCategory = prvalue +# 2661| getStmt(1): [ReturnStmt] return ... +# 2663| [TopLevelFunction] void use_int(int) # 2663| : -# 2663| getParameter(0): [Parameter] b -# 2663| Type = [BoolType] bool -# 2664| getEntryPoint(): [BlockStmt] { ... } -# 2665| getStmt(0): [DeclStmt] declaration -# 2665| getDeclarationEntry(0): [VariableDeclarationEntry] definition of data -# 2665| Type = [IntPointerType] int * -# 2665| getVariable().getInitializer(): [Initializer] initializer for data -# 2665| getExpr(): [Literal] 0 -# 2665| Type = [NullPointerType] decltype(nullptr) -# 2665| Value = [Literal] 0 -# 2665| ValueCategory = prvalue -# 2665| getExpr().getFullyConverted(): [CStyleCast] (int *)... -# 2665| Conversion = [PointerConversion] pointer conversion -# 2665| Type = [IntPointerType] int * -# 2665| Value = [CStyleCast] 0 -# 2665| ValueCategory = prvalue -# 2666| getStmt(1): [IfStmt] if (...) ... -# 2666| getCondition(): [VariableAccess] b -# 2666| Type = [BoolType] bool -# 2666| ValueCategory = prvalue(load) -# 2666| getThen(): [BlockStmt] { ... } -# 2667| getStmt(0): [DeclStmt] declaration -# 2667| getDeclarationEntry(0): [VariableDeclarationEntry] definition of intBuffer -# 2667| Type = [IntType] int -# 2667| getVariable().getInitializer(): [Initializer] initializer for intBuffer -# 2667| getExpr(): [Literal] 8 -# 2667| Type = [IntType] int -# 2667| Value = [Literal] 8 -# 2667| ValueCategory = prvalue -# 2668| getStmt(1): [ExprStmt] ExprStmt -# 2668| getExpr(): [AssignExpr] ... = ... -# 2668| Type = [IntPointerType] int * -# 2668| ValueCategory = lvalue -# 2668| getLValue(): [VariableAccess] data -# 2668| Type = [IntPointerType] int * -# 2668| ValueCategory = lvalue -# 2668| getRValue(): [AddressOfExpr] & ... -# 2668| Type = [IntPointerType] int * -# 2668| ValueCategory = prvalue -# 2668| getOperand(): [VariableAccess] intBuffer -# 2668| Type = [IntType] int -# 2668| ValueCategory = lvalue -# 2670| getStmt(2): [ExprStmt] ExprStmt -# 2670| getExpr(): [FunctionCall] call to use_int -# 2670| Type = [VoidType] void -# 2670| ValueCategory = prvalue -# 2670| getArgument(0): [PointerDereferenceExpr] * ... -# 2670| Type = [IntType] int -# 2670| ValueCategory = prvalue(load) -# 2670| getOperand(): [VariableAccess] data +# 2663| getParameter(0): [Parameter] (unnamed parameter 0) +# 2663| Type = [IntType] int +# 2665| [TopLevelFunction] void phi_with_single_input_at_merge(bool) +# 2665| : +# 2665| getParameter(0): [Parameter] b +# 2665| Type = [BoolType] bool +# 2666| getEntryPoint(): [BlockStmt] { ... } +# 2667| getStmt(0): [DeclStmt] declaration +# 2667| getDeclarationEntry(0): [VariableDeclarationEntry] definition of data +# 2667| Type = [IntPointerType] int * +# 2667| getVariable().getInitializer(): [Initializer] initializer for data +# 2667| getExpr(): [Literal] 0 +# 2667| Type = [NullPointerType] decltype(nullptr) +# 2667| Value = [Literal] 0 +# 2667| ValueCategory = prvalue +# 2667| getExpr().getFullyConverted(): [CStyleCast] (int *)... +# 2667| Conversion = [PointerConversion] pointer conversion +# 2667| Type = [IntPointerType] int * +# 2667| Value = [CStyleCast] 0 +# 2667| ValueCategory = prvalue +# 2668| getStmt(1): [IfStmt] if (...) ... +# 2668| getCondition(): [VariableAccess] b +# 2668| Type = [BoolType] bool +# 2668| ValueCategory = prvalue(load) +# 2668| getThen(): [BlockStmt] { ... } +# 2669| getStmt(0): [DeclStmt] declaration +# 2669| getDeclarationEntry(0): [VariableDeclarationEntry] definition of intBuffer +# 2669| Type = [IntType] int +# 2669| getVariable().getInitializer(): [Initializer] initializer for intBuffer +# 2669| getExpr(): [Literal] 8 +# 2669| Type = [IntType] int +# 2669| Value = [Literal] 8 +# 2669| ValueCategory = prvalue +# 2670| getStmt(1): [ExprStmt] ExprStmt +# 2670| getExpr(): [AssignExpr] ... = ... # 2670| Type = [IntPointerType] int * -# 2670| ValueCategory = prvalue(load) -# 2671| getStmt(3): [ReturnStmt] return ... -# 2673| [TopLevelFunction] void use(char const*) -# 2673| : -# 2673| getParameter(0): [Parameter] fmt -# 2673| Type = [PointerType] const char * -# 2684| [TopLevelFunction] void test(bool) -# 2684| : -# 2684| getParameter(0): [Parameter] b -# 2684| Type = [BoolType] bool -# 2685| getEntryPoint(): [BlockStmt] { ... } -# 2686| getStmt(0): [DoStmt] do (...) ... -# 2686| getCondition(): [Literal] 0 -# 2686| Type = [IntType] int -# 2686| Value = [Literal] 0 -# 2686| ValueCategory = prvalue -# 2686| getStmt(): [BlockStmt] { ... } -# 2686| getStmt(0): [ExprStmt] ExprStmt -# 2686| getExpr(): [FunctionCall] call to use -# 2686| Type = [VoidType] void -# 2686| ValueCategory = prvalue -# 2686| getArgument(0): [ConditionalExpr] ... ? ... : ... -# 2686| Type = [PointerType] const char * -# 2686| ValueCategory = prvalue -# 2686| getCondition(): [VariableAccess] b -# 2686| Type = [BoolType] bool -# 2686| ValueCategory = prvalue(load) -# 2686| getThen(): -# 2686| Type = [ArrayType] const char[1] -# 2686| Value = [StringLiteral] "" -# 2686| ValueCategory = lvalue -# 2686| getElse(): -# 2686| Type = [ArrayType] const char[1] -# 2686| Value = [StringLiteral] "" -# 2686| ValueCategory = lvalue -# 2686| getThen().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 2686| Type = [PointerType] const char * -# 2686| ValueCategory = prvalue -# 2686| getElse().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 2686| Type = [PointerType] const char * -# 2686| ValueCategory = prvalue -# 2686| getStmt(1): [ExprStmt] ExprStmt -# 2686| getExpr(): [FunctionCall] call to use -# 2686| Type = [VoidType] void -# 2686| ValueCategory = prvalue -# 2686| getArgument(0): [ConditionalExpr] ... ? ... : ... -# 2686| Type = [PointerType] const char * -# 2686| ValueCategory = prvalue -# 2686| getCondition(): [VariableAccess] b -# 2686| Type = [BoolType] bool -# 2686| ValueCategory = prvalue(load) -# 2686| getThen(): -# 2686| Type = [ArrayType] const char[1] -# 2686| Value = [StringLiteral] "" -# 2686| ValueCategory = lvalue -# 2686| getElse(): -# 2686| Type = [ArrayType] const char[1] -# 2686| Value = [StringLiteral] "" -# 2686| ValueCategory = lvalue -# 2686| getThen().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 2686| Type = [PointerType] const char * -# 2686| ValueCategory = prvalue -# 2686| getElse().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 2686| Type = [PointerType] const char * -# 2686| ValueCategory = prvalue -# 2686| getCondition().getFullyConverted(): [CStyleCast] (bool)... -# 2686| Conversion = [BoolConversion] conversion to bool -# 2686| Type = [BoolType] bool -# 2686| Value = [CStyleCast] 0 -# 2686| ValueCategory = prvalue -# 2687| getStmt(1): [ReturnStmt] return ... -# 2691| [TopLevelFunction] int concepts::requires_use() -# 2691| : -# 2691| getEntryPoint(): [BlockStmt] { ... } -# 2692| getStmt(0): [DeclStmt] declaration -# 2692| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y -# 2692| Type = [IntType] int -# 2692| getVariable().getInitializer(): [Initializer] initializer for y +# 2670| ValueCategory = lvalue +# 2670| getLValue(): [VariableAccess] data +# 2670| Type = [IntPointerType] int * +# 2670| ValueCategory = lvalue +# 2670| getRValue(): [AddressOfExpr] & ... +# 2670| Type = [IntPointerType] int * +# 2670| ValueCategory = prvalue +# 2670| getOperand(): [VariableAccess] intBuffer +# 2670| Type = [IntType] int +# 2670| ValueCategory = lvalue +# 2672| getStmt(2): [ExprStmt] ExprStmt +# 2672| getExpr(): [FunctionCall] call to use_int +# 2672| Type = [VoidType] void +# 2672| ValueCategory = prvalue +# 2672| getArgument(0): [PointerDereferenceExpr] * ... +# 2672| Type = [IntType] int +# 2672| ValueCategory = prvalue(load) +# 2672| getOperand(): [VariableAccess] data +# 2672| Type = [IntPointerType] int * +# 2672| ValueCategory = prvalue(load) +# 2673| getStmt(3): [ReturnStmt] return ... +# 2675| [TopLevelFunction] void use(char const*) +# 2675| : +# 2675| getParameter(0): [Parameter] fmt +# 2675| Type = [PointerType] const char * +# 2686| [TopLevelFunction] void test(bool) +# 2686| : +# 2686| getParameter(0): [Parameter] b +# 2686| Type = [BoolType] bool +# 2687| getEntryPoint(): [BlockStmt] { ... } +# 2688| getStmt(0): [DoStmt] do (...) ... +# 2688| getCondition(): [Literal] 0 +# 2688| Type = [IntType] int +# 2688| Value = [Literal] 0 +# 2688| ValueCategory = prvalue +# 2688| getStmt(): [BlockStmt] { ... } +# 2688| getStmt(0): [ExprStmt] ExprStmt +# 2688| getExpr(): [FunctionCall] call to use +# 2688| Type = [VoidType] void +# 2688| ValueCategory = prvalue +# 2688| getArgument(0): [ConditionalExpr] ... ? ... : ... +# 2688| Type = [PointerType] const char * +# 2688| ValueCategory = prvalue +# 2688| getCondition(): [VariableAccess] b +# 2688| Type = [BoolType] bool +# 2688| ValueCategory = prvalue(load) +# 2688| getThen(): +# 2688| Type = [ArrayType] const char[1] +# 2688| Value = [StringLiteral] "" +# 2688| ValueCategory = lvalue +# 2688| getElse(): +# 2688| Type = [ArrayType] const char[1] +# 2688| Value = [StringLiteral] "" +# 2688| ValueCategory = lvalue +# 2688| getThen().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 2688| Type = [PointerType] const char * +# 2688| ValueCategory = prvalue +# 2688| getElse().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 2688| Type = [PointerType] const char * +# 2688| ValueCategory = prvalue +# 2688| getStmt(1): [ExprStmt] ExprStmt +# 2688| getExpr(): [FunctionCall] call to use +# 2688| Type = [VoidType] void +# 2688| ValueCategory = prvalue +# 2688| getArgument(0): [ConditionalExpr] ... ? ... : ... +# 2688| Type = [PointerType] const char * +# 2688| ValueCategory = prvalue +# 2688| getCondition(): [VariableAccess] b +# 2688| Type = [BoolType] bool +# 2688| ValueCategory = prvalue(load) +# 2688| getThen(): +# 2688| Type = [ArrayType] const char[1] +# 2688| Value = [StringLiteral] "" +# 2688| ValueCategory = lvalue +# 2688| getElse(): +# 2688| Type = [ArrayType] const char[1] +# 2688| Value = [StringLiteral] "" +# 2688| ValueCategory = lvalue +# 2688| getThen().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 2688| Type = [PointerType] const char * +# 2688| ValueCategory = prvalue +# 2688| getElse().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 2688| Type = [PointerType] const char * +# 2688| ValueCategory = prvalue +# 2688| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2688| Conversion = [BoolConversion] conversion to bool +# 2688| Type = [BoolType] bool +# 2688| Value = [CStyleCast] 0 +# 2688| ValueCategory = prvalue +# 2689| getStmt(1): [ReturnStmt] return ... +# 2693| [TopLevelFunction] int concepts::requires_use() +# 2693| : +# 2693| getEntryPoint(): [BlockStmt] { ... } +# 2694| getStmt(0): [DeclStmt] declaration +# 2694| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y +# 2694| Type = [IntType] int +# 2694| getVariable().getInitializer(): [Initializer] initializer for y #-----| getExpr(): [RequiresExpr] requires { ... } #-----| Type = [BoolType] bool #-----| Value = [RequiresExpr] 1 #-----| ValueCategory = prvalue #-----| : -# 2692| getRequirement(0): [GTExpr,SimpleRequirementExpr] ... > ... -# 2692| Type = [BoolType] bool -# 2692| ValueCategory = prvalue -# 2692| getGreaterOperand(): [SizeofTypeOperator] sizeof(int) -# 2692| Type = [LongType] unsigned long -# 2692| Value = [SizeofTypeOperator] 4 -# 2692| ValueCategory = prvalue -# 2692| getLesserOperand(): [Literal] 0 -# 2692| Type = [IntType] int -# 2692| Value = [Literal] 0 -# 2692| ValueCategory = prvalue -# 2692| getLesserOperand().getFullyConverted(): [CStyleCast] (unsigned long)... -# 2692| Conversion = [IntegralConversion] integral conversion -# 2692| Type = [LongType] unsigned long -# 2692| ValueCategory = prvalue -# 2692| getExpr().getFullyConverted(): [CStyleCast] (int)... -# 2692| Conversion = [IntegralConversion] integral conversion -# 2692| Type = [IntType] int -# 2692| Value = [CStyleCast] 1 -# 2692| ValueCategory = prvalue -# 2693| getStmt(1): [ReturnStmt] return ... -# 2693| getExpr(): [VariableAccess] y -# 2693| Type = [IntType] int -# 2693| ValueCategory = prvalue(load) -# 2698| [TopLevelFunction] void branch_on_integral_in_cpp(int, int) -# 2698| : -# 2698| getParameter(0): [Parameter] x1 -# 2698| Type = [IntType] int -# 2698| getParameter(1): [Parameter] x2 -# 2698| Type = [IntType] int -# 2698| getEntryPoint(): [BlockStmt] { ... } -# 2699| getStmt(0): [IfStmt] if (...) ... -# 2699| getCondition(): [VariableAccess] x1 -# 2699| Type = [IntType] int -# 2699| ValueCategory = prvalue(load) -# 2699| getThen(): [BlockStmt] { ... } -# 2699| getCondition().getFullyConverted(): [CStyleCast] (bool)... -# 2699| Conversion = [BoolConversion] conversion to bool -# 2699| Type = [BoolType] bool -# 2699| ValueCategory = prvalue -# 2700| getStmt(1): [IfStmt] if (...) ... -# 2700| getCondition(): [NotExpr] ! ... -# 2700| Type = [BoolType] bool -# 2700| ValueCategory = prvalue -# 2700| getOperand(): [VariableAccess] x1 -# 2700| Type = [IntType] int -# 2700| ValueCategory = prvalue(load) -# 2700| getOperand().getFullyConverted(): [CStyleCast] (bool)... -# 2700| Conversion = [BoolConversion] conversion to bool -# 2700| Type = [BoolType] bool -# 2700| ValueCategory = prvalue -# 2700| getThen(): [BlockStmt] { ... } -# 2702| getStmt(2): [DeclStmt] declaration -# 2702| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y -# 2702| Type = [IntType] int -# 2702| getVariable().getInitializer(): [Initializer] initializer for y -# 2702| getExpr(): [NotExpr] ! ... -# 2702| Type = [BoolType] bool -# 2702| ValueCategory = prvalue -# 2702| getOperand(): [VariableAccess] x1 -# 2702| Type = [IntType] int -# 2702| ValueCategory = prvalue(load) -# 2702| getOperand().getFullyConverted(): [CStyleCast] (bool)... -# 2702| Conversion = [BoolConversion] conversion to bool -# 2702| Type = [BoolType] bool -# 2702| ValueCategory = prvalue -# 2702| getExpr().getFullyConverted(): [CStyleCast] (int)... -# 2702| Conversion = [IntegralConversion] integral conversion -# 2702| Type = [IntType] int -# 2702| ValueCategory = prvalue -# 2703| getStmt(3): [IfStmt] if (...) ... -# 2703| getCondition(): [VariableAccess] y -# 2703| Type = [IntType] int -# 2703| ValueCategory = prvalue(load) -# 2703| getThen(): [BlockStmt] { ... } -# 2703| getCondition().getFullyConverted(): [CStyleCast] (bool)... -# 2703| Conversion = [BoolConversion] conversion to bool -# 2703| Type = [BoolType] bool -# 2703| ValueCategory = prvalue -# 2704| getStmt(4): [IfStmt] if (...) ... -# 2704| getCondition(): [NotExpr] ! ... -# 2704| Type = [BoolType] bool -# 2704| ValueCategory = prvalue -# 2704| getOperand(): [VariableAccess] y -# 2704| Type = [IntType] int -# 2704| ValueCategory = prvalue(load) -# 2704| getOperand().getFullyConverted(): [CStyleCast] (bool)... -# 2704| Conversion = [BoolConversion] conversion to bool -# 2704| Type = [BoolType] bool -# 2704| ValueCategory = prvalue -# 2704| getThen(): [BlockStmt] { ... } -# 2706| getStmt(5): [IfStmt] if (...) ... -# 2706| getCondition(): [LogicalAndExpr] ... && ... +# 2694| getRequirement(0): [GTExpr,SimpleRequirementExpr] ... > ... +# 2694| Type = [BoolType] bool +# 2694| ValueCategory = prvalue +# 2694| getGreaterOperand(): [SizeofTypeOperator] sizeof(int) +# 2694| Type = [LongType] unsigned long +# 2694| Value = [SizeofTypeOperator] 4 +# 2694| ValueCategory = prvalue +# 2694| getLesserOperand(): [Literal] 0 +# 2694| Type = [IntType] int +# 2694| Value = [Literal] 0 +# 2694| ValueCategory = prvalue +# 2694| getLesserOperand().getFullyConverted(): [CStyleCast] (unsigned long)... +# 2694| Conversion = [IntegralConversion] integral conversion +# 2694| Type = [LongType] unsigned long +# 2694| ValueCategory = prvalue +# 2694| getExpr().getFullyConverted(): [CStyleCast] (int)... +# 2694| Conversion = [IntegralConversion] integral conversion +# 2694| Type = [IntType] int +# 2694| Value = [CStyleCast] 1 +# 2694| ValueCategory = prvalue +# 2695| getStmt(1): [ReturnStmt] return ... +# 2695| getExpr(): [VariableAccess] y +# 2695| Type = [IntType] int +# 2695| ValueCategory = prvalue(load) +# 2700| [TopLevelFunction] void branch_on_integral_in_cpp(int, int) +# 2700| : +# 2700| getParameter(0): [Parameter] x1 +# 2700| Type = [IntType] int +# 2700| getParameter(1): [Parameter] x2 +# 2700| Type = [IntType] int +# 2700| getEntryPoint(): [BlockStmt] { ... } +# 2701| getStmt(0): [IfStmt] if (...) ... +# 2701| getCondition(): [VariableAccess] x1 +# 2701| Type = [IntType] int +# 2701| ValueCategory = prvalue(load) +# 2701| getThen(): [BlockStmt] { ... } +# 2701| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2701| Conversion = [BoolConversion] conversion to bool +# 2701| Type = [BoolType] bool +# 2701| ValueCategory = prvalue +# 2702| getStmt(1): [IfStmt] if (...) ... +# 2702| getCondition(): [NotExpr] ! ... +# 2702| Type = [BoolType] bool +# 2702| ValueCategory = prvalue +# 2702| getOperand(): [VariableAccess] x1 +# 2702| Type = [IntType] int +# 2702| ValueCategory = prvalue(load) +# 2702| getOperand().getFullyConverted(): [CStyleCast] (bool)... +# 2702| Conversion = [BoolConversion] conversion to bool +# 2702| Type = [BoolType] bool +# 2702| ValueCategory = prvalue +# 2702| getThen(): [BlockStmt] { ... } +# 2704| getStmt(2): [DeclStmt] declaration +# 2704| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y +# 2704| Type = [IntType] int +# 2704| getVariable().getInitializer(): [Initializer] initializer for y +# 2704| getExpr(): [NotExpr] ! ... +# 2704| Type = [BoolType] bool +# 2704| ValueCategory = prvalue +# 2704| getOperand(): [VariableAccess] x1 +# 2704| Type = [IntType] int +# 2704| ValueCategory = prvalue(load) +# 2704| getOperand().getFullyConverted(): [CStyleCast] (bool)... +# 2704| Conversion = [BoolConversion] conversion to bool +# 2704| Type = [BoolType] bool +# 2704| ValueCategory = prvalue +# 2704| getExpr().getFullyConverted(): [CStyleCast] (int)... +# 2704| Conversion = [IntegralConversion] integral conversion +# 2704| Type = [IntType] int +# 2704| ValueCategory = prvalue +# 2705| getStmt(3): [IfStmt] if (...) ... +# 2705| getCondition(): [VariableAccess] y +# 2705| Type = [IntType] int +# 2705| ValueCategory = prvalue(load) +# 2705| getThen(): [BlockStmt] { ... } +# 2705| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2705| Conversion = [BoolConversion] conversion to bool +# 2705| Type = [BoolType] bool +# 2705| ValueCategory = prvalue +# 2706| getStmt(4): [IfStmt] if (...) ... +# 2706| getCondition(): [NotExpr] ! ... # 2706| Type = [BoolType] bool # 2706| ValueCategory = prvalue -# 2706| getLeftOperand(): [VariableAccess] x1 -# 2706| Type = [IntType] int -# 2706| ValueCategory = prvalue(load) -# 2706| getRightOperand(): [VariableAccess] x2 +# 2706| getOperand(): [VariableAccess] y # 2706| Type = [IntType] int # 2706| ValueCategory = prvalue(load) -# 2706| getLeftOperand().getFullyConverted(): [CStyleCast] (bool)... -# 2706| Conversion = [BoolConversion] conversion to bool -# 2706| Type = [BoolType] bool -# 2706| ValueCategory = prvalue -# 2706| getRightOperand().getFullyConverted(): [CStyleCast] (bool)... +# 2706| getOperand().getFullyConverted(): [CStyleCast] (bool)... # 2706| Conversion = [BoolConversion] conversion to bool # 2706| Type = [BoolType] bool # 2706| ValueCategory = prvalue # 2706| getThen(): [BlockStmt] { ... } -# 2707| getStmt(6): [IfStmt] if (...) ... -# 2707| getCondition(): [LogicalAndExpr] ... && ... -# 2707| Type = [BoolType] bool -# 2707| ValueCategory = prvalue -# 2707| getLeftOperand(): [NotExpr] ! ... -# 2707| Type = [BoolType] bool -# 2707| ValueCategory = prvalue -# 2707| getOperand(): [VariableAccess] x1 -# 2707| Type = [IntType] int -# 2707| ValueCategory = prvalue(load) -# 2707| getOperand().getFullyConverted(): [CStyleCast] (bool)... -# 2707| Conversion = [BoolConversion] conversion to bool -# 2707| Type = [BoolType] bool -# 2707| ValueCategory = prvalue -# 2707| getRightOperand(): [VariableAccess] x2 -# 2707| Type = [IntType] int -# 2707| ValueCategory = prvalue(load) -# 2707| getRightOperand().getFullyConverted(): [CStyleCast] (bool)... -# 2707| Conversion = [BoolConversion] conversion to bool -# 2707| Type = [BoolType] bool -# 2707| ValueCategory = prvalue -# 2707| getThen(): [BlockStmt] { ... } -# 2708| getStmt(7): [IfStmt] if (...) ... +# 2708| getStmt(5): [IfStmt] if (...) ... # 2708| getCondition(): [LogicalAndExpr] ... && ... # 2708| Type = [BoolType] bool # 2708| ValueCategory = prvalue # 2708| getLeftOperand(): [VariableAccess] x1 # 2708| Type = [IntType] int # 2708| ValueCategory = prvalue(load) -# 2708| getRightOperand(): [NotExpr] ! ... +# 2708| getRightOperand(): [VariableAccess] x2 +# 2708| Type = [IntType] int +# 2708| ValueCategory = prvalue(load) +# 2708| getLeftOperand().getFullyConverted(): [CStyleCast] (bool)... +# 2708| Conversion = [BoolConversion] conversion to bool # 2708| Type = [BoolType] bool # 2708| ValueCategory = prvalue -# 2708| getOperand(): [VariableAccess] x2 -# 2708| Type = [IntType] int -# 2708| ValueCategory = prvalue(load) -# 2708| getOperand().getFullyConverted(): [CStyleCast] (bool)... -# 2708| Conversion = [BoolConversion] conversion to bool -# 2708| Type = [BoolType] bool -# 2708| ValueCategory = prvalue -# 2708| getLeftOperand().getFullyConverted(): [CStyleCast] (bool)... +# 2708| getRightOperand().getFullyConverted(): [CStyleCast] (bool)... # 2708| Conversion = [BoolConversion] conversion to bool # 2708| Type = [BoolType] bool # 2708| ValueCategory = prvalue # 2708| getThen(): [BlockStmt] { ... } -# 2709| getStmt(8): [IfStmt] if (...) ... +# 2709| getStmt(6): [IfStmt] if (...) ... # 2709| getCondition(): [LogicalAndExpr] ... && ... # 2709| Type = [BoolType] bool # 2709| ValueCategory = prvalue @@ -24105,38 +24093,38 @@ ir.cpp: # 2709| Conversion = [BoolConversion] conversion to bool # 2709| Type = [BoolType] bool # 2709| ValueCategory = prvalue -# 2709| getRightOperand(): [NotExpr] ! ... +# 2709| getRightOperand(): [VariableAccess] x2 +# 2709| Type = [IntType] int +# 2709| ValueCategory = prvalue(load) +# 2709| getRightOperand().getFullyConverted(): [CStyleCast] (bool)... +# 2709| Conversion = [BoolConversion] conversion to bool # 2709| Type = [BoolType] bool # 2709| ValueCategory = prvalue -# 2709| getOperand(): [VariableAccess] x2 -# 2709| Type = [IntType] int -# 2709| ValueCategory = prvalue(load) -# 2709| getOperand().getFullyConverted(): [CStyleCast] (bool)... -# 2709| Conversion = [BoolConversion] conversion to bool -# 2709| Type = [BoolType] bool -# 2709| ValueCategory = prvalue # 2709| getThen(): [BlockStmt] { ... } -# 2710| getStmt(9): [IfStmt] if (...) ... -# 2710| getCondition(): [LogicalOrExpr] ... || ... +# 2710| getStmt(7): [IfStmt] if (...) ... +# 2710| getCondition(): [LogicalAndExpr] ... && ... # 2710| Type = [BoolType] bool # 2710| ValueCategory = prvalue # 2710| getLeftOperand(): [VariableAccess] x1 # 2710| Type = [IntType] int # 2710| ValueCategory = prvalue(load) -# 2710| getRightOperand(): [VariableAccess] x2 -# 2710| Type = [IntType] int -# 2710| ValueCategory = prvalue(load) -# 2710| getLeftOperand().getFullyConverted(): [CStyleCast] (bool)... -# 2710| Conversion = [BoolConversion] conversion to bool +# 2710| getRightOperand(): [NotExpr] ! ... # 2710| Type = [BoolType] bool # 2710| ValueCategory = prvalue -# 2710| getRightOperand().getFullyConverted(): [CStyleCast] (bool)... +# 2710| getOperand(): [VariableAccess] x2 +# 2710| Type = [IntType] int +# 2710| ValueCategory = prvalue(load) +# 2710| getOperand().getFullyConverted(): [CStyleCast] (bool)... +# 2710| Conversion = [BoolConversion] conversion to bool +# 2710| Type = [BoolType] bool +# 2710| ValueCategory = prvalue +# 2710| getLeftOperand().getFullyConverted(): [CStyleCast] (bool)... # 2710| Conversion = [BoolConversion] conversion to bool # 2710| Type = [BoolType] bool # 2710| ValueCategory = prvalue # 2710| getThen(): [BlockStmt] { ... } -# 2711| getStmt(10): [IfStmt] if (...) ... -# 2711| getCondition(): [LogicalOrExpr] ... || ... +# 2711| getStmt(8): [IfStmt] if (...) ... +# 2711| getCondition(): [LogicalAndExpr] ... && ... # 2711| Type = [BoolType] bool # 2711| ValueCategory = prvalue # 2711| getLeftOperand(): [NotExpr] ! ... @@ -24149,37 +24137,37 @@ ir.cpp: # 2711| Conversion = [BoolConversion] conversion to bool # 2711| Type = [BoolType] bool # 2711| ValueCategory = prvalue -# 2711| getRightOperand(): [VariableAccess] x2 -# 2711| Type = [IntType] int -# 2711| ValueCategory = prvalue(load) -# 2711| getRightOperand().getFullyConverted(): [CStyleCast] (bool)... -# 2711| Conversion = [BoolConversion] conversion to bool +# 2711| getRightOperand(): [NotExpr] ! ... # 2711| Type = [BoolType] bool # 2711| ValueCategory = prvalue +# 2711| getOperand(): [VariableAccess] x2 +# 2711| Type = [IntType] int +# 2711| ValueCategory = prvalue(load) +# 2711| getOperand().getFullyConverted(): [CStyleCast] (bool)... +# 2711| Conversion = [BoolConversion] conversion to bool +# 2711| Type = [BoolType] bool +# 2711| ValueCategory = prvalue # 2711| getThen(): [BlockStmt] { ... } -# 2712| getStmt(11): [IfStmt] if (...) ... +# 2712| getStmt(9): [IfStmt] if (...) ... # 2712| getCondition(): [LogicalOrExpr] ... || ... # 2712| Type = [BoolType] bool # 2712| ValueCategory = prvalue # 2712| getLeftOperand(): [VariableAccess] x1 # 2712| Type = [IntType] int # 2712| ValueCategory = prvalue(load) -# 2712| getRightOperand(): [NotExpr] ! ... +# 2712| getRightOperand(): [VariableAccess] x2 +# 2712| Type = [IntType] int +# 2712| ValueCategory = prvalue(load) +# 2712| getLeftOperand().getFullyConverted(): [CStyleCast] (bool)... +# 2712| Conversion = [BoolConversion] conversion to bool # 2712| Type = [BoolType] bool # 2712| ValueCategory = prvalue -# 2712| getOperand(): [VariableAccess] x2 -# 2712| Type = [IntType] int -# 2712| ValueCategory = prvalue(load) -# 2712| getOperand().getFullyConverted(): [CStyleCast] (bool)... -# 2712| Conversion = [BoolConversion] conversion to bool -# 2712| Type = [BoolType] bool -# 2712| ValueCategory = prvalue -# 2712| getLeftOperand().getFullyConverted(): [CStyleCast] (bool)... +# 2712| getRightOperand().getFullyConverted(): [CStyleCast] (bool)... # 2712| Conversion = [BoolConversion] conversion to bool # 2712| Type = [BoolType] bool # 2712| ValueCategory = prvalue # 2712| getThen(): [BlockStmt] { ... } -# 2713| getStmt(12): [IfStmt] if (...) ... +# 2713| getStmt(10): [IfStmt] if (...) ... # 2713| getCondition(): [LogicalOrExpr] ... || ... # 2713| Type = [BoolType] bool # 2713| ValueCategory = prvalue @@ -24193,166 +24181,182 @@ ir.cpp: # 2713| Conversion = [BoolConversion] conversion to bool # 2713| Type = [BoolType] bool # 2713| ValueCategory = prvalue -# 2713| getRightOperand(): [NotExpr] ! ... +# 2713| getRightOperand(): [VariableAccess] x2 +# 2713| Type = [IntType] int +# 2713| ValueCategory = prvalue(load) +# 2713| getRightOperand().getFullyConverted(): [CStyleCast] (bool)... +# 2713| Conversion = [BoolConversion] conversion to bool # 2713| Type = [BoolType] bool # 2713| ValueCategory = prvalue -# 2713| getOperand(): [VariableAccess] x2 -# 2713| Type = [IntType] int -# 2713| ValueCategory = prvalue(load) -# 2713| getOperand().getFullyConverted(): [CStyleCast] (bool)... -# 2713| Conversion = [BoolConversion] conversion to bool -# 2713| Type = [BoolType] bool -# 2713| ValueCategory = prvalue # 2713| getThen(): [BlockStmt] { ... } -# 2715| getStmt(13): [DeclStmt] declaration -# 2715| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x_1_and_2 -# 2715| Type = [IntType] int -# 2715| getVariable().getInitializer(): [Initializer] initializer for x_1_and_2 -# 2715| getExpr(): [LogicalAndExpr] ... && ... +# 2714| getStmt(11): [IfStmt] if (...) ... +# 2714| getCondition(): [LogicalOrExpr] ... || ... +# 2714| Type = [BoolType] bool +# 2714| ValueCategory = prvalue +# 2714| getLeftOperand(): [VariableAccess] x1 +# 2714| Type = [IntType] int +# 2714| ValueCategory = prvalue(load) +# 2714| getRightOperand(): [NotExpr] ! ... +# 2714| Type = [BoolType] bool +# 2714| ValueCategory = prvalue +# 2714| getOperand(): [VariableAccess] x2 +# 2714| Type = [IntType] int +# 2714| ValueCategory = prvalue(load) +# 2714| getOperand().getFullyConverted(): [CStyleCast] (bool)... +# 2714| Conversion = [BoolConversion] conversion to bool +# 2714| Type = [BoolType] bool +# 2714| ValueCategory = prvalue +# 2714| getLeftOperand().getFullyConverted(): [CStyleCast] (bool)... +# 2714| Conversion = [BoolConversion] conversion to bool +# 2714| Type = [BoolType] bool +# 2714| ValueCategory = prvalue +# 2714| getThen(): [BlockStmt] { ... } +# 2715| getStmt(12): [IfStmt] if (...) ... +# 2715| getCondition(): [LogicalOrExpr] ... || ... +# 2715| Type = [BoolType] bool +# 2715| ValueCategory = prvalue +# 2715| getLeftOperand(): [NotExpr] ! ... +# 2715| Type = [BoolType] bool +# 2715| ValueCategory = prvalue +# 2715| getOperand(): [VariableAccess] x1 +# 2715| Type = [IntType] int +# 2715| ValueCategory = prvalue(load) +# 2715| getOperand().getFullyConverted(): [CStyleCast] (bool)... +# 2715| Conversion = [BoolConversion] conversion to bool # 2715| Type = [BoolType] bool # 2715| ValueCategory = prvalue -# 2715| getLeftOperand(): [VariableAccess] x1 -# 2715| Type = [IntType] int -# 2715| ValueCategory = prvalue(load) -# 2715| getRightOperand(): [VariableAccess] x2 -# 2715| Type = [IntType] int -# 2715| ValueCategory = prvalue(load) -# 2715| getLeftOperand().getFullyConverted(): [CStyleCast] (bool)... -# 2715| Conversion = [BoolConversion] conversion to bool -# 2715| Type = [BoolType] bool -# 2715| ValueCategory = prvalue -# 2715| getRightOperand().getFullyConverted(): [CStyleCast] (bool)... -# 2715| Conversion = [BoolConversion] conversion to bool -# 2715| Type = [BoolType] bool -# 2715| ValueCategory = prvalue -# 2715| getExpr().getFullyConverted(): [CStyleCast] (int)... -# 2715| Conversion = [IntegralConversion] integral conversion +# 2715| getRightOperand(): [NotExpr] ! ... +# 2715| Type = [BoolType] bool +# 2715| ValueCategory = prvalue +# 2715| getOperand(): [VariableAccess] x2 # 2715| Type = [IntType] int +# 2715| ValueCategory = prvalue(load) +# 2715| getOperand().getFullyConverted(): [CStyleCast] (bool)... +# 2715| Conversion = [BoolConversion] conversion to bool +# 2715| Type = [BoolType] bool # 2715| ValueCategory = prvalue -# 2716| getStmt(14): [IfStmt] if (...) ... -# 2716| getCondition(): [VariableAccess] x_1_and_2 -# 2716| Type = [IntType] int -# 2716| ValueCategory = prvalue(load) -# 2716| getThen(): [BlockStmt] { ... } -# 2716| getCondition().getFullyConverted(): [CStyleCast] (bool)... -# 2716| Conversion = [BoolConversion] conversion to bool -# 2716| Type = [BoolType] bool -# 2716| ValueCategory = prvalue -# 2717| getStmt(15): [IfStmt] if (...) ... -# 2717| getCondition(): [NotExpr] ! ... -# 2717| Type = [BoolType] bool -# 2717| ValueCategory = prvalue -# 2717| getOperand(): [VariableAccess] x_1_and_2 -# 2717| Type = [IntType] int -# 2717| ValueCategory = prvalue(load) -# 2717| getOperand().getFullyConverted(): [CStyleCast] (bool)... -# 2717| Conversion = [BoolConversion] conversion to bool -# 2717| Type = [BoolType] bool -# 2717| ValueCategory = prvalue -# 2717| getThen(): [BlockStmt] { ... } -# 2718| getStmt(16): [ReturnStmt] return ... -# 2720| [CopyAssignmentOperator] WithBracketOperator& WithBracketOperator::operator=(WithBracketOperator const&) -# 2720| : +# 2715| getThen(): [BlockStmt] { ... } +# 2717| getStmt(13): [DeclStmt] declaration +# 2717| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x_1_and_2 +# 2717| Type = [IntType] int +# 2717| getVariable().getInitializer(): [Initializer] initializer for x_1_and_2 +# 2717| getExpr(): [LogicalAndExpr] ... && ... +# 2717| Type = [BoolType] bool +# 2717| ValueCategory = prvalue +# 2717| getLeftOperand(): [VariableAccess] x1 +# 2717| Type = [IntType] int +# 2717| ValueCategory = prvalue(load) +# 2717| getRightOperand(): [VariableAccess] x2 +# 2717| Type = [IntType] int +# 2717| ValueCategory = prvalue(load) +# 2717| getLeftOperand().getFullyConverted(): [CStyleCast] (bool)... +# 2717| Conversion = [BoolConversion] conversion to bool +# 2717| Type = [BoolType] bool +# 2717| ValueCategory = prvalue +# 2717| getRightOperand().getFullyConverted(): [CStyleCast] (bool)... +# 2717| Conversion = [BoolConversion] conversion to bool +# 2717| Type = [BoolType] bool +# 2717| ValueCategory = prvalue +# 2717| getExpr().getFullyConverted(): [CStyleCast] (int)... +# 2717| Conversion = [IntegralConversion] integral conversion +# 2717| Type = [IntType] int +# 2717| ValueCategory = prvalue +# 2718| getStmt(14): [IfStmt] if (...) ... +# 2718| getCondition(): [VariableAccess] x_1_and_2 +# 2718| Type = [IntType] int +# 2718| ValueCategory = prvalue(load) +# 2718| getThen(): [BlockStmt] { ... } +# 2718| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2718| Conversion = [BoolConversion] conversion to bool +# 2718| Type = [BoolType] bool +# 2718| ValueCategory = prvalue +# 2719| getStmt(15): [IfStmt] if (...) ... +# 2719| getCondition(): [NotExpr] ! ... +# 2719| Type = [BoolType] bool +# 2719| ValueCategory = prvalue +# 2719| getOperand(): [VariableAccess] x_1_and_2 +# 2719| Type = [IntType] int +# 2719| ValueCategory = prvalue(load) +# 2719| getOperand().getFullyConverted(): [CStyleCast] (bool)... +# 2719| Conversion = [BoolConversion] conversion to bool +# 2719| Type = [BoolType] bool +# 2719| ValueCategory = prvalue +# 2719| getThen(): [BlockStmt] { ... } +# 2720| getStmt(16): [ReturnStmt] return ... +# 2722| [CopyAssignmentOperator] WithBracketOperator& WithBracketOperator::operator=(WithBracketOperator const&) +# 2722| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const WithBracketOperator & -# 2720| [MoveAssignmentOperator] WithBracketOperator& WithBracketOperator::operator=(WithBracketOperator&&) -# 2720| : +# 2722| [MoveAssignmentOperator] WithBracketOperator& WithBracketOperator::operator=(WithBracketOperator&&) +# 2722| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] WithBracketOperator && -# 2721| [ConstMemberFunction] char const& WithBracketOperator::operator[](int) const -# 2721| : -# 2721| getParameter(0): [Parameter] pos -# 2721| Type = [IntType] int -# 2724| [TopLevelFunction] char UseBracketOperator(WithBracketOperator const, int) -# 2724| : -# 2724| getParameter(0): [Parameter] x -# 2724| Type = [SpecifiedType] const WithBracketOperator -# 2724| getParameter(1): [Parameter] i -# 2724| Type = [IntType] int -# 2724| getEntryPoint(): [BlockStmt] { ... } -# 2725| getStmt(0): [ReturnStmt] return ... -# 2725| getExpr(): [OverloadedArrayExpr] call to operator[] -# 2725| Type = [LValueReferenceType] const char & -# 2725| ValueCategory = prvalue -# 2725| getArrayBase(): [VariableAccess] x -# 2725| Type = [SpecifiedType] const WithBracketOperator -# 2725| ValueCategory = lvalue -# 2725| getArrayOffset(): [VariableAccess] i -# 2725| Type = [IntType] int -# 2725| ValueCategory = prvalue(load) -# 2725| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 2725| Type = [PlainCharType] char -# 2725| ValueCategory = prvalue(load) -# 2728| [TopLevelFunction] void test_postfix_crement(int*, int) -# 2728| : -# 2728| getParameter(0): [Parameter] p -# 2728| Type = [IntPointerType] int * -# 2728| getParameter(1): [Parameter] q -# 2728| Type = [IntType] int -# 2728| getEntryPoint(): [BlockStmt] { ... } -# 2729| getStmt(0): [ExprStmt] ExprStmt -# 2729| getExpr(): [PostfixIncrExpr] ... ++ -# 2729| Type = [IntPointerType] int * -# 2729| ValueCategory = prvalue -# 2729| getOperand(): [VariableAccess] p -# 2729| Type = [IntPointerType] int * -# 2729| ValueCategory = lvalue -# 2730| getStmt(1): [ExprStmt] ExprStmt -# 2730| getExpr(): [PostfixIncrExpr] ... ++ -# 2730| Type = [IntType] int -# 2730| ValueCategory = prvalue -# 2730| getOperand(): [VariableAccess] q -# 2730| Type = [IntType] int -# 2730| ValueCategory = lvalue -# 2731| getStmt(2): [ExprStmt] ExprStmt +# 2723| [ConstMemberFunction] char const& WithBracketOperator::operator[](int) const +# 2723| : +# 2723| getParameter(0): [Parameter] pos +# 2723| Type = [IntType] int +# 2726| [TopLevelFunction] char UseBracketOperator(WithBracketOperator const, int) +# 2726| : +# 2726| getParameter(0): [Parameter] x +# 2726| Type = [SpecifiedType] const WithBracketOperator +# 2726| getParameter(1): [Parameter] i +# 2726| Type = [IntType] int +# 2726| getEntryPoint(): [BlockStmt] { ... } +# 2727| getStmt(0): [ReturnStmt] return ... +# 2727| getExpr(): [OverloadedArrayExpr] call to operator[] +# 2727| Type = [LValueReferenceType] const char & +# 2727| ValueCategory = prvalue +# 2727| getArrayBase(): [VariableAccess] x +# 2727| Type = [SpecifiedType] const WithBracketOperator +# 2727| ValueCategory = lvalue +# 2727| getArrayOffset(): [VariableAccess] i +# 2727| Type = [IntType] int +# 2727| ValueCategory = prvalue(load) +# 2727| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 2727| Type = [PlainCharType] char +# 2727| ValueCategory = prvalue(load) +# 2730| [TopLevelFunction] void test_postfix_crement(int*, int) +# 2730| : +# 2730| getParameter(0): [Parameter] p +# 2730| Type = [IntPointerType] int * +# 2730| getParameter(1): [Parameter] q +# 2730| Type = [IntType] int +# 2730| getEntryPoint(): [BlockStmt] { ... } +# 2731| getStmt(0): [ExprStmt] ExprStmt # 2731| getExpr(): [PostfixIncrExpr] ... ++ # 2731| Type = [IntPointerType] int * # 2731| ValueCategory = prvalue # 2731| getOperand(): [VariableAccess] p # 2731| Type = [IntPointerType] int * # 2731| ValueCategory = lvalue -# 2731| getExpr().getFullyConverted(): [ParenthesisExpr] (...) -# 2731| Type = [IntPointerType] int * -# 2731| ValueCategory = prvalue -# 2732| getStmt(3): [ExprStmt] ExprStmt +# 2732| getStmt(1): [ExprStmt] ExprStmt # 2732| getExpr(): [PostfixIncrExpr] ... ++ # 2732| Type = [IntType] int # 2732| ValueCategory = prvalue # 2732| getOperand(): [VariableAccess] q # 2732| Type = [IntType] int # 2732| ValueCategory = lvalue -# 2732| getExpr().getFullyConverted(): [ParenthesisExpr] (...) -# 2732| Type = [IntType] int -# 2732| ValueCategory = prvalue -# 2733| getStmt(4): [ExprStmt] ExprStmt +# 2733| getStmt(2): [ExprStmt] ExprStmt # 2733| getExpr(): [PostfixIncrExpr] ... ++ # 2733| Type = [IntPointerType] int * # 2733| ValueCategory = prvalue # 2733| getOperand(): [VariableAccess] p # 2733| Type = [IntPointerType] int * # 2733| ValueCategory = lvalue -# 2733| getExpr().getFullyConverted(): [CStyleCast] (void)... -# 2733| Conversion = [VoidConversion] conversion to void -# 2733| Type = [VoidType] void +# 2733| getExpr().getFullyConverted(): [ParenthesisExpr] (...) +# 2733| Type = [IntPointerType] int * # 2733| ValueCategory = prvalue -# 2733| getExpr(): [ParenthesisExpr] (...) -# 2733| Type = [IntPointerType] int * -# 2733| ValueCategory = prvalue -# 2734| getStmt(5): [ExprStmt] ExprStmt +# 2734| getStmt(3): [ExprStmt] ExprStmt # 2734| getExpr(): [PostfixIncrExpr] ... ++ # 2734| Type = [IntType] int # 2734| ValueCategory = prvalue # 2734| getOperand(): [VariableAccess] q # 2734| Type = [IntType] int # 2734| ValueCategory = lvalue -# 2734| getExpr().getFullyConverted(): [CStyleCast] (void)... -# 2734| Conversion = [VoidConversion] conversion to void -# 2734| Type = [VoidType] void +# 2734| getExpr().getFullyConverted(): [ParenthesisExpr] (...) +# 2734| Type = [IntType] int # 2734| ValueCategory = prvalue -# 2734| getExpr(): [ParenthesisExpr] (...) -# 2734| Type = [IntType] int -# 2734| ValueCategory = prvalue -# 2735| getStmt(6): [ExprStmt] ExprStmt +# 2735| getStmt(4): [ExprStmt] ExprStmt # 2735| getExpr(): [PostfixIncrExpr] ... ++ # 2735| Type = [IntPointerType] int * # 2735| ValueCategory = prvalue @@ -24363,7 +24367,10 @@ ir.cpp: # 2735| Conversion = [VoidConversion] conversion to void # 2735| Type = [VoidType] void # 2735| ValueCategory = prvalue -# 2736| getStmt(7): [ExprStmt] ExprStmt +# 2735| getExpr(): [ParenthesisExpr] (...) +# 2735| Type = [IntPointerType] int * +# 2735| ValueCategory = prvalue +# 2736| getStmt(5): [ExprStmt] ExprStmt # 2736| getExpr(): [PostfixIncrExpr] ... ++ # 2736| Type = [IntType] int # 2736| ValueCategory = prvalue @@ -24374,731 +24381,756 @@ ir.cpp: # 2736| Conversion = [VoidConversion] conversion to void # 2736| Type = [VoidType] void # 2736| ValueCategory = prvalue -# 2737| getStmt(8): [DeclStmt] declaration -# 2737| getDeclarationEntry(0): [VariableDeclarationEntry] definition of p1 +# 2736| getExpr(): [ParenthesisExpr] (...) +# 2736| Type = [IntType] int +# 2736| ValueCategory = prvalue +# 2737| getStmt(6): [ExprStmt] ExprStmt +# 2737| getExpr(): [PostfixIncrExpr] ... ++ # 2737| Type = [IntPointerType] int * -# 2737| getVariable().getInitializer(): [Initializer] initializer for p1 -# 2737| getExpr(): [PostfixIncrExpr] ... ++ -# 2737| Type = [IntPointerType] int * -# 2737| ValueCategory = prvalue -# 2737| getOperand(): [VariableAccess] p -# 2737| Type = [IntPointerType] int * -# 2737| ValueCategory = lvalue -# 2738| getStmt(9): [DeclStmt] declaration -# 2738| getDeclarationEntry(0): [VariableDeclarationEntry] definition of q1 +# 2737| ValueCategory = prvalue +# 2737| getOperand(): [VariableAccess] p +# 2737| Type = [IntPointerType] int * +# 2737| ValueCategory = lvalue +# 2737| getExpr().getFullyConverted(): [CStyleCast] (void)... +# 2737| Conversion = [VoidConversion] conversion to void +# 2737| Type = [VoidType] void +# 2737| ValueCategory = prvalue +# 2738| getStmt(7): [ExprStmt] ExprStmt +# 2738| getExpr(): [PostfixIncrExpr] ... ++ # 2738| Type = [IntType] int -# 2738| getVariable().getInitializer(): [Initializer] initializer for q1 -# 2738| getExpr(): [PostfixIncrExpr] ... ++ -# 2738| Type = [IntType] int -# 2738| ValueCategory = prvalue -# 2738| getOperand(): [VariableAccess] q -# 2738| Type = [IntType] int -# 2738| ValueCategory = lvalue -# 2739| getStmt(10): [ExprStmt] ExprStmt -# 2739| getExpr(): [PostfixIncrExpr] ... ++ -# 2739| Type = [IntPointerType] int * -# 2739| ValueCategory = prvalue -# 2739| getOperand(): [VariableAccess] p -# 2739| Type = [IntPointerType] int * -# 2739| ValueCategory = lvalue -# 2739| getExpr().getFullyConverted(): [CStyleCast] (int *)... -# 2739| Conversion = [PointerConversion] pointer conversion +# 2738| ValueCategory = prvalue +# 2738| getOperand(): [VariableAccess] q +# 2738| Type = [IntType] int +# 2738| ValueCategory = lvalue +# 2738| getExpr().getFullyConverted(): [CStyleCast] (void)... +# 2738| Conversion = [VoidConversion] conversion to void +# 2738| Type = [VoidType] void +# 2738| ValueCategory = prvalue +# 2739| getStmt(8): [DeclStmt] declaration +# 2739| getDeclarationEntry(0): [VariableDeclarationEntry] definition of p1 # 2739| Type = [IntPointerType] int * -# 2739| ValueCategory = prvalue -# 2739| getExpr(): [ParenthesisExpr] (...) -# 2739| Type = [IntPointerType] int * -# 2739| ValueCategory = prvalue -# 2740| getStmt(11): [ExprStmt] ExprStmt -# 2740| getExpr(): [PostfixIncrExpr] ... ++ +# 2739| getVariable().getInitializer(): [Initializer] initializer for p1 +# 2739| getExpr(): [PostfixIncrExpr] ... ++ +# 2739| Type = [IntPointerType] int * +# 2739| ValueCategory = prvalue +# 2739| getOperand(): [VariableAccess] p +# 2739| Type = [IntPointerType] int * +# 2739| ValueCategory = lvalue +# 2740| getStmt(9): [DeclStmt] declaration +# 2740| getDeclarationEntry(0): [VariableDeclarationEntry] definition of q1 # 2740| Type = [IntType] int -# 2740| ValueCategory = prvalue -# 2740| getOperand(): [VariableAccess] q -# 2740| Type = [IntType] int -# 2740| ValueCategory = lvalue -# 2740| getExpr().getFullyConverted(): [CStyleCast] (int)... -# 2740| Conversion = [IntegralConversion] integral conversion -# 2740| Type = [IntType] int -# 2740| ValueCategory = prvalue -# 2740| getExpr(): [ParenthesisExpr] (...) -# 2740| Type = [IntType] int -# 2740| ValueCategory = prvalue -# 2741| getStmt(12): [DeclStmt] declaration -# 2741| getDeclarationEntry(0): [VariableDeclarationEntry] definition of p2 +# 2740| getVariable().getInitializer(): [Initializer] initializer for q1 +# 2740| getExpr(): [PostfixIncrExpr] ... ++ +# 2740| Type = [IntType] int +# 2740| ValueCategory = prvalue +# 2740| getOperand(): [VariableAccess] q +# 2740| Type = [IntType] int +# 2740| ValueCategory = lvalue +# 2741| getStmt(10): [ExprStmt] ExprStmt +# 2741| getExpr(): [PostfixIncrExpr] ... ++ +# 2741| Type = [IntPointerType] int * +# 2741| ValueCategory = prvalue +# 2741| getOperand(): [VariableAccess] p +# 2741| Type = [IntPointerType] int * +# 2741| ValueCategory = lvalue +# 2741| getExpr().getFullyConverted(): [CStyleCast] (int *)... +# 2741| Conversion = [PointerConversion] pointer conversion # 2741| Type = [IntPointerType] int * -# 2741| getVariable().getInitializer(): [Initializer] initializer for p2 -# 2741| getExpr(): [PostfixIncrExpr] ... ++ -# 2741| Type = [IntPointerType] int * -# 2741| ValueCategory = prvalue -# 2741| getOperand(): [VariableAccess] p -# 2741| Type = [IntPointerType] int * -# 2741| ValueCategory = lvalue -# 2741| getExpr().getFullyConverted(): [CStyleCast] (int *)... -# 2741| Conversion = [PointerConversion] pointer conversion -# 2741| Type = [IntPointerType] int * -# 2741| ValueCategory = prvalue -# 2741| getExpr(): [ParenthesisExpr] (...) -# 2741| Type = [IntPointerType] int * -# 2741| ValueCategory = prvalue -# 2742| getStmt(13): [DeclStmt] declaration -# 2742| getDeclarationEntry(0): [VariableDeclarationEntry] definition of q2 +# 2741| ValueCategory = prvalue +# 2741| getExpr(): [ParenthesisExpr] (...) +# 2741| Type = [IntPointerType] int * +# 2741| ValueCategory = prvalue +# 2742| getStmt(11): [ExprStmt] ExprStmt +# 2742| getExpr(): [PostfixIncrExpr] ... ++ +# 2742| Type = [IntType] int +# 2742| ValueCategory = prvalue +# 2742| getOperand(): [VariableAccess] q +# 2742| Type = [IntType] int +# 2742| ValueCategory = lvalue +# 2742| getExpr().getFullyConverted(): [CStyleCast] (int)... +# 2742| Conversion = [IntegralConversion] integral conversion # 2742| Type = [IntType] int -# 2742| getVariable().getInitializer(): [Initializer] initializer for q2 -# 2742| getExpr(): [PostfixIncrExpr] ... ++ -# 2742| Type = [IntType] int -# 2742| ValueCategory = prvalue -# 2742| getOperand(): [VariableAccess] q -# 2742| Type = [IntType] int -# 2742| ValueCategory = lvalue -# 2742| getExpr().getFullyConverted(): [CStyleCast] (int)... -# 2742| Conversion = [IntegralConversion] integral conversion -# 2742| Type = [IntType] int -# 2742| ValueCategory = prvalue -# 2742| getExpr(): [ParenthesisExpr] (...) -# 2742| Type = [IntType] int -# 2742| ValueCategory = prvalue -# 2743| getStmt(14): [ReturnStmt] return ... -# 2747| [CopyAssignmentOperator] std::strong_ordering& std::strong_ordering::operator=(std::strong_ordering const&) -# 2747| : +# 2742| ValueCategory = prvalue +# 2742| getExpr(): [ParenthesisExpr] (...) +# 2742| Type = [IntType] int +# 2742| ValueCategory = prvalue +# 2743| getStmt(12): [DeclStmt] declaration +# 2743| getDeclarationEntry(0): [VariableDeclarationEntry] definition of p2 +# 2743| Type = [IntPointerType] int * +# 2743| getVariable().getInitializer(): [Initializer] initializer for p2 +# 2743| getExpr(): [PostfixIncrExpr] ... ++ +# 2743| Type = [IntPointerType] int * +# 2743| ValueCategory = prvalue +# 2743| getOperand(): [VariableAccess] p +# 2743| Type = [IntPointerType] int * +# 2743| ValueCategory = lvalue +# 2743| getExpr().getFullyConverted(): [CStyleCast] (int *)... +# 2743| Conversion = [PointerConversion] pointer conversion +# 2743| Type = [IntPointerType] int * +# 2743| ValueCategory = prvalue +# 2743| getExpr(): [ParenthesisExpr] (...) +# 2743| Type = [IntPointerType] int * +# 2743| ValueCategory = prvalue +# 2744| getStmt(13): [DeclStmt] declaration +# 2744| getDeclarationEntry(0): [VariableDeclarationEntry] definition of q2 +# 2744| Type = [IntType] int +# 2744| getVariable().getInitializer(): [Initializer] initializer for q2 +# 2744| getExpr(): [PostfixIncrExpr] ... ++ +# 2744| Type = [IntType] int +# 2744| ValueCategory = prvalue +# 2744| getOperand(): [VariableAccess] q +# 2744| Type = [IntType] int +# 2744| ValueCategory = lvalue +# 2744| getExpr().getFullyConverted(): [CStyleCast] (int)... +# 2744| Conversion = [IntegralConversion] integral conversion +# 2744| Type = [IntType] int +# 2744| ValueCategory = prvalue +# 2744| getExpr(): [ParenthesisExpr] (...) +# 2744| Type = [IntType] int +# 2744| ValueCategory = prvalue +# 2745| getStmt(14): [ReturnStmt] return ... +# 2749| [CopyAssignmentOperator] std::strong_ordering& std::strong_ordering::operator=(std::strong_ordering const&) +# 2749| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const strong_ordering & -# 2747| [MoveAssignmentOperator] std::strong_ordering& std::strong_ordering::operator=(std::strong_ordering&&) -# 2747| : +# 2749| [MoveAssignmentOperator] std::strong_ordering& std::strong_ordering::operator=(std::strong_ordering&&) +# 2749| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] strong_ordering && -# 2747| [CopyConstructor] void std::strong_ordering::strong_ordering(std::strong_ordering const&) -# 2747| : +# 2749| [CopyConstructor] void std::strong_ordering::strong_ordering(std::strong_ordering const&) +# 2749| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const strong_ordering & -# 2747| [MoveConstructor] void std::strong_ordering::strong_ordering(std::strong_ordering&&) -# 2747| : +# 2749| [MoveConstructor] void std::strong_ordering::strong_ordering(std::strong_ordering&&) +# 2749| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] strong_ordering && -# 2747| : -# 2747| getEntryPoint(): [BlockStmt] { ... } -# 2747| getStmt(0): [ReturnStmt] return ... -# 2748| [Constructor] void std::strong_ordering::strong_ordering(std::_Order) -# 2748| : -# 2748| getParameter(0): [Parameter] v -# 2748| Type = [ScopedEnum] _Order -# 2748| : -# 2748| getEntryPoint(): [BlockStmt] { ... } -# 2748| getStmt(0): [ReturnStmt] return ... -# 2763| [CopyAssignmentOperator] ThreeWay& ThreeWay::operator=(ThreeWay const&) -# 2763| : +# 2749| : +# 2749| getEntryPoint(): [BlockStmt] { ... } +# 2749| getStmt(0): [ReturnStmt] return ... +# 2750| [Constructor] void std::strong_ordering::strong_ordering(std::_Order) +# 2750| : +# 2750| getParameter(0): [Parameter] v +# 2750| Type = [ScopedEnum] _Order +# 2750| : +# 2750| getEntryPoint(): [BlockStmt] { ... } +# 2750| getStmt(0): [ReturnStmt] return ... +# 2765| [CopyAssignmentOperator] ThreeWay& ThreeWay::operator=(ThreeWay const&) +# 2765| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const ThreeWay & -# 2763| [MoveAssignmentOperator] ThreeWay& ThreeWay::operator=(ThreeWay&&) -# 2763| : +# 2765| [MoveAssignmentOperator] ThreeWay& ThreeWay::operator=(ThreeWay&&) +# 2765| : #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] ThreeWay && -# 2763| [Constructor] void ThreeWay::ThreeWay() -# 2763| : -# 2766| [MemberFunction] std::strong_ordering ThreeWay::operator<=>(ThreeWay&) -# 2766| : -# 2766| getParameter(0): [Parameter] y -# 2766| Type = [LValueReferenceType] ThreeWay & -# 2766| getEntryPoint(): [BlockStmt] { ... } -# 2766| getStmt(0): [ReturnStmt] return ... -# 2766| getExpr(): [SpaceshipExpr] ... <=> ... -# 2766| Type = [Class] strong_ordering -# 2766| ValueCategory = prvalue -# 2766| getChild(0): [PointerFieldAccess] x -# 2766| Type = [IntType] int -# 2766| ValueCategory = prvalue(load) -# 2766| getQualifier(): [ThisExpr] this -# 2766| Type = [PointerType] ThreeWay * -# 2766| ValueCategory = prvalue(load) -# 2766| getChild(1): [ReferenceFieldAccess] x -# 2766| Type = [IntType] int -# 2766| ValueCategory = prvalue(load) -# 2766| getQualifier(): [VariableAccess] y -# 2766| Type = [LValueReferenceType] ThreeWay & -# 2766| ValueCategory = prvalue(load) -# 2766| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 2766| Type = [Class] ThreeWay -# 2766| ValueCategory = lvalue -# 2769| [TopLevelFunction] void test_three_way(int, int, ThreeWay, ThreeWay) -# 2769| : -# 2769| getParameter(0): [Parameter] a -# 2769| Type = [IntType] int -# 2769| getParameter(1): [Parameter] b -# 2769| Type = [IntType] int -# 2769| getParameter(2): [Parameter] c -# 2769| Type = [Class] ThreeWay -# 2769| getParameter(3): [Parameter] d -# 2769| Type = [Class] ThreeWay -# 2769| getEntryPoint(): [BlockStmt] { ... } -# 2770| getStmt(0): [DeclStmt] declaration -# 2770| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x -# 2770| Type = [Class] strong_ordering -# 2770| getVariable().getInitializer(): [Initializer] initializer for x -# 2770| getExpr(): [SpaceshipExpr] ... <=> ... -# 2770| Type = [Class] strong_ordering -# 2770| ValueCategory = prvalue -# 2770| getChild(0): [VariableAccess] a -# 2770| Type = [IntType] int -# 2770| ValueCategory = prvalue(load) -# 2770| getChild(1): [VariableAccess] b -# 2770| Type = [IntType] int -# 2770| ValueCategory = prvalue(load) -# 2771| getStmt(1): [DeclStmt] declaration -# 2771| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y -# 2771| Type = [Class] strong_ordering -# 2771| getVariable().getInitializer(): [Initializer] initializer for y -# 2771| getExpr(): [FunctionCall] call to operator<=> -# 2771| Type = [Class] strong_ordering -# 2771| ValueCategory = prvalue -# 2771| getQualifier(): [VariableAccess] c -# 2771| Type = [Class] ThreeWay -# 2771| ValueCategory = lvalue -# 2771| getArgument(0): [VariableAccess] d -# 2771| Type = [Class] ThreeWay -# 2771| ValueCategory = lvalue -# 2771| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) -# 2771| Type = [LValueReferenceType] ThreeWay & -# 2771| ValueCategory = prvalue -# 2772| getStmt(2): [ReturnStmt] return ... -# 2774| [TopLevelFunction] void test_allocation_with_initializer() -# 2774| : -# 2774| getEntryPoint(): [BlockStmt] { ... } -# 2775| getStmt(0): [DeclStmt] declaration -# 2775| getDeclarationEntry(0): [VariableDeclarationEntry] definition of p1 -# 2775| Type = [IntPointerType] int * -# 2775| getVariable().getInitializer(): [Initializer] initializer for p1 -# 2775| getExpr(): [NewExpr] new -# 2775| Type = [IntPointerType] int * -# 2775| ValueCategory = prvalue -# 2775| getInitializer(): [Literal] 42 -# 2775| Type = [IntType] int -# 2775| Value = [Literal] 42 -# 2775| ValueCategory = prvalue -# 2776| getStmt(1): [DeclStmt] declaration -# 2776| getDeclarationEntry(0): [VariableDeclarationEntry] definition of p2 -# 2776| Type = [PointerType] long * -# 2776| getVariable().getInitializer(): [Initializer] initializer for p2 -# 2776| getExpr(): [NewExpr] new -# 2776| Type = [PointerType] long * -# 2776| ValueCategory = prvalue -# 2776| getInitializer(): [Literal] 42 -# 2776| Type = [IntType] int -# 2776| Value = [Literal] 42 -# 2776| ValueCategory = prvalue -# 2776| getInitializer().getFullyConverted(): [CStyleCast] (long)... -# 2776| Conversion = [IntegralConversion] integral conversion -# 2776| Type = [LongType] long -# 2776| Value = [CStyleCast] 42 -# 2776| ValueCategory = prvalue -# 2777| getStmt(2): [ReturnStmt] return ... -# 2779| [TopLevelFunction] void vla_sizeof_test(int, size_t, char) -# 2779| : -# 2779| getParameter(0): [Parameter] len1 -# 2779| Type = [IntType] int -# 2779| getParameter(1): [Parameter] len2 -# 2779| Type = [CTypedefType,Size_t] size_t -# 2779| getParameter(2): [Parameter] len3 -# 2779| Type = [PlainCharType] char -# 2779| getEntryPoint(): [BlockStmt] { ... } -# 2780| getStmt(0): [DeclStmt] declaration -# 2780| getDeclarationEntry(0): [VariableDeclarationEntry] definition of tmp1 -# 2780| Type = [ArrayType] char[] -# 2780| getStmt(1): [VlaDimensionStmt] VLA dimension size -# 2780| getDimensionExpr(): [VariableAccess] len1 -# 2780| Type = [IntType] int -# 2780| ValueCategory = prvalue(load) -# 2780| getStmt(2): [VlaDeclStmt] VLA declaration -# 2781| getStmt(3): [DeclStmt] declaration -# 2781| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x -# 2781| Type = [CTypedefType,Size_t] size_t -# 2781| getVariable().getInitializer(): [Initializer] initializer for x -# 2781| getExpr(): [SizeofExprOperator] sizeof() -# 2781| Type = [LongType] unsigned long -# 2781| ValueCategory = prvalue -# 2781| getExprOperand(): [VariableAccess] tmp1 -# 2781| Type = [ArrayType] char[] -# 2781| ValueCategory = lvalue -# 2781| getExprOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2781| Type = [ArrayType] char[] -# 2781| ValueCategory = lvalue -# 2782| getStmt(4): [DeclStmt] declaration -# 2782| getDeclarationEntry(0): [VariableDeclarationEntry] definition of tmp2 -# 2782| Type = [ArrayType] int[][] -# 2782| getStmt(5): [VlaDimensionStmt] VLA dimension size +# 2765| [Constructor] void ThreeWay::ThreeWay() +# 2765| : +# 2768| [MemberFunction] std::strong_ordering ThreeWay::operator<=>(ThreeWay&) +# 2768| : +# 2768| getParameter(0): [Parameter] y +# 2768| Type = [LValueReferenceType] ThreeWay & +# 2768| getEntryPoint(): [BlockStmt] { ... } +# 2768| getStmt(0): [ReturnStmt] return ... +# 2768| getExpr(): [SpaceshipExpr] ... <=> ... +# 2768| Type = [Class] strong_ordering +# 2768| ValueCategory = prvalue +# 2768| getChild(0): [PointerFieldAccess] x +# 2768| Type = [IntType] int +# 2768| ValueCategory = prvalue(load) +# 2768| getQualifier(): [ThisExpr] this +# 2768| Type = [PointerType] ThreeWay * +# 2768| ValueCategory = prvalue(load) +# 2768| getChild(1): [ReferenceFieldAccess] x +# 2768| Type = [IntType] int +# 2768| ValueCategory = prvalue(load) +# 2768| getQualifier(): [VariableAccess] y +# 2768| Type = [LValueReferenceType] ThreeWay & +# 2768| ValueCategory = prvalue(load) +# 2768| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 2768| Type = [Class] ThreeWay +# 2768| ValueCategory = lvalue +# 2771| [TopLevelFunction] void test_three_way(int, int, ThreeWay, ThreeWay) +# 2771| : +# 2771| getParameter(0): [Parameter] a +# 2771| Type = [IntType] int +# 2771| getParameter(1): [Parameter] b +# 2771| Type = [IntType] int +# 2771| getParameter(2): [Parameter] c +# 2771| Type = [Class] ThreeWay +# 2771| getParameter(3): [Parameter] d +# 2771| Type = [Class] ThreeWay +# 2771| getEntryPoint(): [BlockStmt] { ... } +# 2772| getStmt(0): [DeclStmt] declaration +# 2772| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x +# 2772| Type = [Class] strong_ordering +# 2772| getVariable().getInitializer(): [Initializer] initializer for x +# 2772| getExpr(): [SpaceshipExpr] ... <=> ... +# 2772| Type = [Class] strong_ordering +# 2772| ValueCategory = prvalue +# 2772| getChild(0): [VariableAccess] a +# 2772| Type = [IntType] int +# 2772| ValueCategory = prvalue(load) +# 2772| getChild(1): [VariableAccess] b +# 2772| Type = [IntType] int +# 2772| ValueCategory = prvalue(load) +# 2773| getStmt(1): [DeclStmt] declaration +# 2773| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y +# 2773| Type = [Class] strong_ordering +# 2773| getVariable().getInitializer(): [Initializer] initializer for y +# 2773| getExpr(): [FunctionCall] call to operator<=> +# 2773| Type = [Class] strong_ordering +# 2773| ValueCategory = prvalue +# 2773| getQualifier(): [VariableAccess] c +# 2773| Type = [Class] ThreeWay +# 2773| ValueCategory = lvalue +# 2773| getArgument(0): [VariableAccess] d +# 2773| Type = [Class] ThreeWay +# 2773| ValueCategory = lvalue +# 2773| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) +# 2773| Type = [LValueReferenceType] ThreeWay & +# 2773| ValueCategory = prvalue +# 2774| getStmt(2): [ReturnStmt] return ... +# 2776| [TopLevelFunction] void test_allocation_with_initializer() +# 2776| : +# 2776| getEntryPoint(): [BlockStmt] { ... } +# 2777| getStmt(0): [DeclStmt] declaration +# 2777| getDeclarationEntry(0): [VariableDeclarationEntry] definition of p1 +# 2777| Type = [IntPointerType] int * +# 2777| getVariable().getInitializer(): [Initializer] initializer for p1 +# 2777| getExpr(): [NewExpr] new +# 2777| Type = [IntPointerType] int * +# 2777| ValueCategory = prvalue +# 2777| getInitializer(): [Literal] 42 +# 2777| Type = [IntType] int +# 2777| Value = [Literal] 42 +# 2777| ValueCategory = prvalue +# 2778| getStmt(1): [DeclStmt] declaration +# 2778| getDeclarationEntry(0): [VariableDeclarationEntry] definition of p2 +# 2778| Type = [PointerType] long * +# 2778| getVariable().getInitializer(): [Initializer] initializer for p2 +# 2778| getExpr(): [NewExpr] new +# 2778| Type = [PointerType] long * +# 2778| ValueCategory = prvalue +# 2778| getInitializer(): [Literal] 42 +# 2778| Type = [IntType] int +# 2778| Value = [Literal] 42 +# 2778| ValueCategory = prvalue +# 2778| getInitializer().getFullyConverted(): [CStyleCast] (long)... +# 2778| Conversion = [IntegralConversion] integral conversion +# 2778| Type = [LongType] long +# 2778| Value = [CStyleCast] 42 +# 2778| ValueCategory = prvalue +# 2779| getStmt(2): [ReturnStmt] return ... +# 2781| [TopLevelFunction] void vla_sizeof_test(int, size_t, char) +# 2781| : +# 2781| getParameter(0): [Parameter] len1 +# 2781| Type = [IntType] int +# 2781| getParameter(1): [Parameter] len2 +# 2781| Type = [CTypedefType,Size_t] size_t +# 2781| getParameter(2): [Parameter] len3 +# 2781| Type = [PlainCharType] char +# 2781| getEntryPoint(): [BlockStmt] { ... } +# 2782| getStmt(0): [DeclStmt] declaration +# 2782| getDeclarationEntry(0): [VariableDeclarationEntry] definition of tmp1 +# 2782| Type = [ArrayType] char[] +# 2782| getStmt(1): [VlaDimensionStmt] VLA dimension size # 2782| getDimensionExpr(): [VariableAccess] len1 # 2782| Type = [IntType] int # 2782| ValueCategory = prvalue(load) -# 2782| getStmt(6): [VlaDimensionStmt] VLA dimension size -# 2782| getDimensionExpr(): [VariableAccess] len2 -# 2782| Type = [CTypedefType,Size_t] size_t -# 2782| ValueCategory = prvalue(load) -# 2782| getStmt(7): [VlaDeclStmt] VLA declaration -# 2783| getStmt(8): [DeclStmt] declaration -# 2783| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y +# 2782| getStmt(2): [VlaDeclStmt] VLA declaration +# 2783| getStmt(3): [DeclStmt] declaration +# 2783| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x # 2783| Type = [CTypedefType,Size_t] size_t -# 2783| getVariable().getInitializer(): [Initializer] initializer for y +# 2783| getVariable().getInitializer(): [Initializer] initializer for x # 2783| getExpr(): [SizeofExprOperator] sizeof() # 2783| Type = [LongType] unsigned long # 2783| ValueCategory = prvalue -# 2783| getExprOperand(): [VariableAccess] tmp2 -# 2783| Type = [ArrayType] int[][] +# 2783| getExprOperand(): [VariableAccess] tmp1 +# 2783| Type = [ArrayType] char[] # 2783| ValueCategory = lvalue # 2783| getExprOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2783| Type = [ArrayType] int[][] +# 2783| Type = [ArrayType] char[] # 2783| ValueCategory = lvalue -# 2784| getStmt(9): [DeclStmt] declaration -# 2784| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z +# 2784| getStmt(4): [DeclStmt] declaration +# 2784| getDeclarationEntry(0): [VariableDeclarationEntry] definition of tmp2 +# 2784| Type = [ArrayType] int[][] +# 2784| getStmt(5): [VlaDimensionStmt] VLA dimension size +# 2784| getDimensionExpr(): [VariableAccess] len1 +# 2784| Type = [IntType] int +# 2784| ValueCategory = prvalue(load) +# 2784| getStmt(6): [VlaDimensionStmt] VLA dimension size +# 2784| getDimensionExpr(): [VariableAccess] len2 # 2784| Type = [CTypedefType,Size_t] size_t -# 2784| getVariable().getInitializer(): [Initializer] initializer for z -# 2784| getExpr(): [SizeofExprOperator] sizeof() -# 2784| Type = [LongType] unsigned long -# 2784| ValueCategory = prvalue -# 2784| getExprOperand(): [PointerDereferenceExpr] * ... -# 2784| Type = [ArrayType] int[] -# 2784| ValueCategory = lvalue -# 2784| getOperand(): [VariableAccess] tmp2 -# 2784| Type = [ArrayType] int[][] -# 2784| ValueCategory = lvalue -# 2784| getOperand().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 2784| Type = [PointerType] int(*)[] -# 2784| ValueCategory = prvalue -# 2784| getExprOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2784| Type = [ArrayType] int[] -# 2784| ValueCategory = lvalue -# 2785| getStmt(10): [DeclStmt] declaration -# 2785| getDeclarationEntry(0): [VariableDeclarationEntry] definition of tmp3 -# 2785| Type = [ArrayType] int[][][] -# 2785| getStmt(11): [VlaDimensionStmt] VLA dimension size -# 2785| getDimensionExpr(): [VariableAccess] len1 -# 2785| Type = [IntType] int -# 2785| ValueCategory = prvalue(load) -# 2785| getStmt(12): [VlaDimensionStmt] VLA dimension size -# 2785| getDimensionExpr(): [VariableAccess] len2 +# 2784| ValueCategory = prvalue(load) +# 2784| getStmt(7): [VlaDeclStmt] VLA declaration +# 2785| getStmt(8): [DeclStmt] declaration +# 2785| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y # 2785| Type = [CTypedefType,Size_t] size_t -# 2785| ValueCategory = prvalue(load) -# 2785| getStmt(13): [VlaDimensionStmt] VLA dimension size -# 2785| getDimensionExpr(): [VariableAccess] len3 -# 2785| Type = [PlainCharType] char -# 2785| ValueCategory = prvalue(load) -# 2785| getStmt(14): [VlaDeclStmt] VLA declaration -# 2786| getStmt(15): [DeclStmt] declaration -# 2786| getDeclarationEntry(0): [VariableDeclarationEntry] definition of w +# 2785| getVariable().getInitializer(): [Initializer] initializer for y +# 2785| getExpr(): [SizeofExprOperator] sizeof() +# 2785| Type = [LongType] unsigned long +# 2785| ValueCategory = prvalue +# 2785| getExprOperand(): [VariableAccess] tmp2 +# 2785| Type = [ArrayType] int[][] +# 2785| ValueCategory = lvalue +# 2785| getExprOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2785| Type = [ArrayType] int[][] +# 2785| ValueCategory = lvalue +# 2786| getStmt(9): [DeclStmt] declaration +# 2786| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z # 2786| Type = [CTypedefType,Size_t] size_t -# 2786| getVariable().getInitializer(): [Initializer] initializer for w +# 2786| getVariable().getInitializer(): [Initializer] initializer for z # 2786| getExpr(): [SizeofExprOperator] sizeof() # 2786| Type = [LongType] unsigned long # 2786| ValueCategory = prvalue -# 2786| getExprOperand(): [VariableAccess] tmp3 -# 2786| Type = [ArrayType] int[][][] +# 2786| getExprOperand(): [PointerDereferenceExpr] * ... +# 2786| Type = [ArrayType] int[] # 2786| ValueCategory = lvalue +# 2786| getOperand(): [VariableAccess] tmp2 +# 2786| Type = [ArrayType] int[][] +# 2786| ValueCategory = lvalue +# 2786| getOperand().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 2786| Type = [PointerType] int(*)[] +# 2786| ValueCategory = prvalue # 2786| getExprOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2786| Type = [ArrayType] int[][][] +# 2786| Type = [ArrayType] int[] # 2786| ValueCategory = lvalue -# 2787| getStmt(16): [DeclStmt] declaration -# 2787| getDeclarationEntry(0): [VariableDeclarationEntry] definition of v +# 2787| getStmt(10): [DeclStmt] declaration +# 2787| getDeclarationEntry(0): [VariableDeclarationEntry] definition of tmp3 +# 2787| Type = [ArrayType] int[][][] +# 2787| getStmt(11): [VlaDimensionStmt] VLA dimension size +# 2787| getDimensionExpr(): [VariableAccess] len1 +# 2787| Type = [IntType] int +# 2787| ValueCategory = prvalue(load) +# 2787| getStmt(12): [VlaDimensionStmt] VLA dimension size +# 2787| getDimensionExpr(): [VariableAccess] len2 # 2787| Type = [CTypedefType,Size_t] size_t -# 2787| getVariable().getInitializer(): [Initializer] initializer for v -# 2787| getExpr(): [SizeofExprOperator] sizeof() -# 2787| Type = [LongType] unsigned long -# 2787| ValueCategory = prvalue -# 2787| getExprOperand(): [PointerDereferenceExpr] * ... -# 2787| Type = [ArrayType] int[][] -# 2787| ValueCategory = lvalue -# 2787| getOperand(): [VariableAccess] tmp3 -# 2787| Type = [ArrayType] int[][][] -# 2787| ValueCategory = lvalue -# 2787| getOperand().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 2787| Type = [PointerType] int(*)[][] -# 2787| ValueCategory = prvalue -# 2787| getExprOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2787| Type = [ArrayType] int[][] -# 2787| ValueCategory = lvalue -# 2788| getStmt(17): [DeclStmt] declaration -# 2788| getDeclarationEntry(0): [VariableDeclarationEntry] definition of u +# 2787| ValueCategory = prvalue(load) +# 2787| getStmt(13): [VlaDimensionStmt] VLA dimension size +# 2787| getDimensionExpr(): [VariableAccess] len3 +# 2787| Type = [PlainCharType] char +# 2787| ValueCategory = prvalue(load) +# 2787| getStmt(14): [VlaDeclStmt] VLA declaration +# 2788| getStmt(15): [DeclStmt] declaration +# 2788| getDeclarationEntry(0): [VariableDeclarationEntry] definition of w # 2788| Type = [CTypedefType,Size_t] size_t -# 2788| getVariable().getInitializer(): [Initializer] initializer for u +# 2788| getVariable().getInitializer(): [Initializer] initializer for w # 2788| getExpr(): [SizeofExprOperator] sizeof() # 2788| Type = [LongType] unsigned long # 2788| ValueCategory = prvalue -# 2788| getExprOperand(): [PointerDereferenceExpr] * ... -# 2788| Type = [ArrayType] int[] +# 2788| getExprOperand(): [VariableAccess] tmp3 +# 2788| Type = [ArrayType] int[][][] # 2788| ValueCategory = lvalue -# 2788| getOperand(): [PointerDereferenceExpr] * ... -# 2788| Type = [ArrayType] int[][] -# 2788| ValueCategory = lvalue -# 2788| getOperand(): [VariableAccess] tmp3 -# 2788| Type = [ArrayType] int[][][] -# 2788| ValueCategory = lvalue -# 2788| getOperand().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 2788| Type = [PointerType] int(*)[][] -# 2788| ValueCategory = prvalue -# 2788| getOperand().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 2788| Type = [PointerType] int(*)[] -# 2788| ValueCategory = prvalue # 2788| getExprOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2788| Type = [ArrayType] int[] +# 2788| Type = [ArrayType] int[][][] # 2788| ValueCategory = lvalue -# 2789| getStmt(18): [DeclStmt] declaration -# 2789| getDeclarationEntry(0): [VariableDeclarationEntry] definition of t +# 2789| getStmt(16): [DeclStmt] declaration +# 2789| getDeclarationEntry(0): [VariableDeclarationEntry] definition of v # 2789| Type = [CTypedefType,Size_t] size_t -# 2789| getVariable().getInitializer(): [Initializer] initializer for t +# 2789| getVariable().getInitializer(): [Initializer] initializer for v # 2789| getExpr(): [SizeofExprOperator] sizeof() # 2789| Type = [LongType] unsigned long -# 2789| Value = [SizeofExprOperator] 4 # 2789| ValueCategory = prvalue # 2789| getExprOperand(): [PointerDereferenceExpr] * ... -# 2789| Type = [IntType] int +# 2789| Type = [ArrayType] int[][] # 2789| ValueCategory = lvalue -# 2789| getOperand(): [PointerDereferenceExpr] * ... -# 2789| Type = [ArrayType] int[] +# 2789| getOperand(): [VariableAccess] tmp3 +# 2789| Type = [ArrayType] int[][][] # 2789| ValueCategory = lvalue -# 2789| getOperand(): [PointerDereferenceExpr] * ... -# 2789| Type = [ArrayType] int[][] -# 2789| ValueCategory = lvalue -# 2789| getOperand(): [VariableAccess] tmp3 -# 2789| Type = [ArrayType] int[][][] -# 2789| ValueCategory = lvalue -# 2789| getOperand().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 2789| Type = [PointerType] int(*)[][] -# 2789| ValueCategory = prvalue -# 2789| getOperand().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 2789| Type = [PointerType] int(*)[] -# 2789| ValueCategory = prvalue # 2789| getOperand().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 2789| Type = [IntPointerType] int * +# 2789| Type = [PointerType] int(*)[][] # 2789| ValueCategory = prvalue # 2789| getExprOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2789| Type = [IntType] int +# 2789| Type = [ArrayType] int[][] # 2789| ValueCategory = lvalue -# 2790| getStmt(19): [ReturnStmt] return ... -# 2792| [TopLevelFunction] void vla_sizeof_test2(int, size_t, char) -# 2792| : -# 2792| getParameter(0): [Parameter] len1 -# 2792| Type = [IntType] int -# 2792| getParameter(1): [Parameter] len2 -# 2792| Type = [CTypedefType,Size_t] size_t -# 2792| getParameter(2): [Parameter] len3 -# 2792| Type = [PlainCharType] char -# 2792| getEntryPoint(): [BlockStmt] { ... } -# 2793| getStmt(0): [DeclStmt] declaration -# 2793| getDeclarationEntry(0): [VariableDeclarationEntry] definition of tmp1 -# 2793| Type = [ArrayType] int[][] -# 2793| getStmt(1): [VlaDimensionStmt] VLA dimension size -# 2793| getDimensionExpr(): [VariableAccess] len1 -# 2793| Type = [IntType] int -# 2793| ValueCategory = prvalue(load) -# 2793| getStmt(2): [VlaDimensionStmt] VLA dimension size -# 2793| getDimensionExpr(): [VariableAccess] len2 -# 2793| Type = [CTypedefType,Size_t] size_t -# 2793| ValueCategory = prvalue(load) -# 2793| getStmt(3): [VlaDeclStmt] VLA declaration -# 2794| getStmt(4): [DeclStmt] declaration -# 2794| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z -# 2794| Type = [CTypedefType,Size_t] size_t -# 2794| getVariable().getInitializer(): [Initializer] initializer for z -# 2794| getExpr(): [SizeofExprOperator] sizeof() -# 2794| Type = [LongType] unsigned long -# 2794| ValueCategory = prvalue -# 2794| getExprOperand(): [ArrayExpr] access to array -# 2794| Type = [ArrayType] int[] -# 2794| ValueCategory = lvalue -# 2794| getArrayBase(): [VariableAccess] tmp1 -# 2794| Type = [ArrayType] int[][] -# 2794| ValueCategory = lvalue -# 2794| getArrayOffset(): [Literal] 1 -# 2794| Type = [IntType] int -# 2794| Value = [Literal] 1 -# 2794| ValueCategory = prvalue -# 2794| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 2794| Type = [PointerType] int(*)[] -# 2794| ValueCategory = prvalue -# 2794| getExprOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2794| Type = [ArrayType] int[] -# 2794| ValueCategory = lvalue -# 2795| getStmt(5): [DeclStmt] declaration -# 2795| getDeclarationEntry(0): [VariableDeclarationEntry] definition of tmp2 -# 2795| Type = [ArrayType] int[][][] -# 2795| getStmt(6): [VlaDimensionStmt] VLA dimension size +# 2790| getStmt(17): [DeclStmt] declaration +# 2790| getDeclarationEntry(0): [VariableDeclarationEntry] definition of u +# 2790| Type = [CTypedefType,Size_t] size_t +# 2790| getVariable().getInitializer(): [Initializer] initializer for u +# 2790| getExpr(): [SizeofExprOperator] sizeof() +# 2790| Type = [LongType] unsigned long +# 2790| ValueCategory = prvalue +# 2790| getExprOperand(): [PointerDereferenceExpr] * ... +# 2790| Type = [ArrayType] int[] +# 2790| ValueCategory = lvalue +# 2790| getOperand(): [PointerDereferenceExpr] * ... +# 2790| Type = [ArrayType] int[][] +# 2790| ValueCategory = lvalue +# 2790| getOperand(): [VariableAccess] tmp3 +# 2790| Type = [ArrayType] int[][][] +# 2790| ValueCategory = lvalue +# 2790| getOperand().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 2790| Type = [PointerType] int(*)[][] +# 2790| ValueCategory = prvalue +# 2790| getOperand().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 2790| Type = [PointerType] int(*)[] +# 2790| ValueCategory = prvalue +# 2790| getExprOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2790| Type = [ArrayType] int[] +# 2790| ValueCategory = lvalue +# 2791| getStmt(18): [DeclStmt] declaration +# 2791| getDeclarationEntry(0): [VariableDeclarationEntry] definition of t +# 2791| Type = [CTypedefType,Size_t] size_t +# 2791| getVariable().getInitializer(): [Initializer] initializer for t +# 2791| getExpr(): [SizeofExprOperator] sizeof() +# 2791| Type = [LongType] unsigned long +# 2791| Value = [SizeofExprOperator] 4 +# 2791| ValueCategory = prvalue +# 2791| getExprOperand(): [PointerDereferenceExpr] * ... +# 2791| Type = [IntType] int +# 2791| ValueCategory = lvalue +# 2791| getOperand(): [PointerDereferenceExpr] * ... +# 2791| Type = [ArrayType] int[] +# 2791| ValueCategory = lvalue +# 2791| getOperand(): [PointerDereferenceExpr] * ... +# 2791| Type = [ArrayType] int[][] +# 2791| ValueCategory = lvalue +# 2791| getOperand(): [VariableAccess] tmp3 +# 2791| Type = [ArrayType] int[][][] +# 2791| ValueCategory = lvalue +# 2791| getOperand().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 2791| Type = [PointerType] int(*)[][] +# 2791| ValueCategory = prvalue +# 2791| getOperand().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 2791| Type = [PointerType] int(*)[] +# 2791| ValueCategory = prvalue +# 2791| getOperand().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 2791| Type = [IntPointerType] int * +# 2791| ValueCategory = prvalue +# 2791| getExprOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2791| Type = [IntType] int +# 2791| ValueCategory = lvalue +# 2792| getStmt(19): [ReturnStmt] return ... +# 2794| [TopLevelFunction] void vla_sizeof_test2(int, size_t, char) +# 2794| : +# 2794| getParameter(0): [Parameter] len1 +# 2794| Type = [IntType] int +# 2794| getParameter(1): [Parameter] len2 +# 2794| Type = [CTypedefType,Size_t] size_t +# 2794| getParameter(2): [Parameter] len3 +# 2794| Type = [PlainCharType] char +# 2794| getEntryPoint(): [BlockStmt] { ... } +# 2795| getStmt(0): [DeclStmt] declaration +# 2795| getDeclarationEntry(0): [VariableDeclarationEntry] definition of tmp1 +# 2795| Type = [ArrayType] int[][] +# 2795| getStmt(1): [VlaDimensionStmt] VLA dimension size # 2795| getDimensionExpr(): [VariableAccess] len1 # 2795| Type = [IntType] int # 2795| ValueCategory = prvalue(load) -# 2795| getStmt(7): [VlaDimensionStmt] VLA dimension size +# 2795| getStmt(2): [VlaDimensionStmt] VLA dimension size # 2795| getDimensionExpr(): [VariableAccess] len2 # 2795| Type = [CTypedefType,Size_t] size_t # 2795| ValueCategory = prvalue(load) -# 2795| getStmt(8): [VlaDimensionStmt] VLA dimension size -# 2795| getDimensionExpr(): [VariableAccess] len3 -# 2795| Type = [PlainCharType] char -# 2795| ValueCategory = prvalue(load) -# 2795| getStmt(9): [VlaDeclStmt] VLA declaration -# 2796| getStmt(10): [DeclStmt] declaration -# 2796| getDeclarationEntry(0): [VariableDeclarationEntry] definition of v +# 2795| getStmt(3): [VlaDeclStmt] VLA declaration +# 2796| getStmt(4): [DeclStmt] declaration +# 2796| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z # 2796| Type = [CTypedefType,Size_t] size_t -# 2796| getVariable().getInitializer(): [Initializer] initializer for v +# 2796| getVariable().getInitializer(): [Initializer] initializer for z # 2796| getExpr(): [SizeofExprOperator] sizeof() # 2796| Type = [LongType] unsigned long # 2796| ValueCategory = prvalue # 2796| getExprOperand(): [ArrayExpr] access to array -# 2796| Type = [ArrayType] int[][] +# 2796| Type = [ArrayType] int[] # 2796| ValueCategory = lvalue -# 2796| getArrayBase(): [VariableAccess] tmp2 -# 2796| Type = [ArrayType] int[][][] +# 2796| getArrayBase(): [VariableAccess] tmp1 +# 2796| Type = [ArrayType] int[][] # 2796| ValueCategory = lvalue # 2796| getArrayOffset(): [Literal] 1 # 2796| Type = [IntType] int # 2796| Value = [Literal] 1 # 2796| ValueCategory = prvalue # 2796| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 2796| Type = [PointerType] int(*)[][] +# 2796| Type = [PointerType] int(*)[] # 2796| ValueCategory = prvalue # 2796| getExprOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2796| Type = [ArrayType] int[][] +# 2796| Type = [ArrayType] int[] # 2796| ValueCategory = lvalue -# 2797| getStmt(11): [DeclStmt] declaration -# 2797| getDeclarationEntry(0): [VariableDeclarationEntry] definition of u +# 2797| getStmt(5): [DeclStmt] declaration +# 2797| getDeclarationEntry(0): [VariableDeclarationEntry] definition of tmp2 +# 2797| Type = [ArrayType] int[][][] +# 2797| getStmt(6): [VlaDimensionStmt] VLA dimension size +# 2797| getDimensionExpr(): [VariableAccess] len1 +# 2797| Type = [IntType] int +# 2797| ValueCategory = prvalue(load) +# 2797| getStmt(7): [VlaDimensionStmt] VLA dimension size +# 2797| getDimensionExpr(): [VariableAccess] len2 # 2797| Type = [CTypedefType,Size_t] size_t -# 2797| getVariable().getInitializer(): [Initializer] initializer for u -# 2797| getExpr(): [SizeofExprOperator] sizeof() -# 2797| Type = [LongType] unsigned long -# 2797| ValueCategory = prvalue -# 2797| getExprOperand(): [ArrayExpr] access to array -# 2797| Type = [ArrayType] int[] -# 2797| ValueCategory = lvalue -# 2797| getArrayBase(): [ArrayExpr] access to array -# 2797| Type = [ArrayType] int[][] -# 2797| ValueCategory = lvalue -# 2797| getArrayBase(): [VariableAccess] tmp2 -# 2797| Type = [ArrayType] int[][][] -# 2797| ValueCategory = lvalue -# 2797| getArrayOffset(): [Literal] 1 -# 2797| Type = [IntType] int -# 2797| Value = [Literal] 1 -# 2797| ValueCategory = prvalue -# 2797| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 2797| Type = [PointerType] int(*)[][] -# 2797| ValueCategory = prvalue -# 2797| getArrayOffset(): [Literal] 2 -# 2797| Type = [IntType] int -# 2797| Value = [Literal] 2 -# 2797| ValueCategory = prvalue -# 2797| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 2797| Type = [PointerType] int(*)[] -# 2797| ValueCategory = prvalue -# 2797| getExprOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2797| Type = [ArrayType] int[] -# 2797| ValueCategory = lvalue -# 2798| getStmt(12): [DeclStmt] declaration -# 2798| getDeclarationEntry(0): [VariableDeclarationEntry] definition of t +# 2797| ValueCategory = prvalue(load) +# 2797| getStmt(8): [VlaDimensionStmt] VLA dimension size +# 2797| getDimensionExpr(): [VariableAccess] len3 +# 2797| Type = [PlainCharType] char +# 2797| ValueCategory = prvalue(load) +# 2797| getStmt(9): [VlaDeclStmt] VLA declaration +# 2798| getStmt(10): [DeclStmt] declaration +# 2798| getDeclarationEntry(0): [VariableDeclarationEntry] definition of v # 2798| Type = [CTypedefType,Size_t] size_t -# 2798| getVariable().getInitializer(): [Initializer] initializer for t +# 2798| getVariable().getInitializer(): [Initializer] initializer for v # 2798| getExpr(): [SizeofExprOperator] sizeof() # 2798| Type = [LongType] unsigned long -# 2798| Value = [SizeofExprOperator] 4 # 2798| ValueCategory = prvalue # 2798| getExprOperand(): [ArrayExpr] access to array -# 2798| Type = [IntType] int +# 2798| Type = [ArrayType] int[][] # 2798| ValueCategory = lvalue -# 2798| getArrayBase(): [ArrayExpr] access to array -# 2798| Type = [ArrayType] int[] +# 2798| getArrayBase(): [VariableAccess] tmp2 +# 2798| Type = [ArrayType] int[][][] # 2798| ValueCategory = lvalue -# 2798| getArrayBase(): [ArrayExpr] access to array -# 2798| Type = [ArrayType] int[][] -# 2798| ValueCategory = lvalue -# 2798| getArrayBase(): [VariableAccess] tmp2 -# 2798| Type = [ArrayType] int[][][] -# 2798| ValueCategory = lvalue -# 2798| getArrayOffset(): [Literal] 1 -# 2798| Type = [IntType] int -# 2798| Value = [Literal] 1 -# 2798| ValueCategory = prvalue -# 2798| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 2798| Type = [PointerType] int(*)[][] -# 2798| ValueCategory = prvalue -# 2798| getArrayOffset(): [Literal] 2 -# 2798| Type = [IntType] int -# 2798| Value = [Literal] 2 -# 2798| ValueCategory = prvalue -# 2798| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 2798| Type = [PointerType] int(*)[] -# 2798| ValueCategory = prvalue -# 2798| getArrayOffset(): [Literal] 3 +# 2798| getArrayOffset(): [Literal] 1 # 2798| Type = [IntType] int -# 2798| Value = [Literal] 3 +# 2798| Value = [Literal] 1 # 2798| ValueCategory = prvalue # 2798| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 2798| Type = [IntPointerType] int * +# 2798| Type = [PointerType] int(*)[][] # 2798| ValueCategory = prvalue # 2798| getExprOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2798| Type = [IntType] int +# 2798| Type = [ArrayType] int[][] # 2798| ValueCategory = lvalue -# 2799| getStmt(13): [ReturnStmt] return ... -# 2801| [TopLevelFunction] size_t vla_sizeof_test3(int, size_t, char, bool) -# 2801| : -# 2801| getParameter(0): [Parameter] len1 -# 2801| Type = [IntType] int -# 2801| getParameter(1): [Parameter] len2 -# 2801| Type = [CTypedefType,Size_t] size_t -# 2801| getParameter(2): [Parameter] len3 -# 2801| Type = [PlainCharType] char -# 2801| getParameter(3): [Parameter] b -# 2801| Type = [BoolType] bool -# 2801| getEntryPoint(): [BlockStmt] { ... } -# 2802| getStmt(0): [DeclStmt] declaration -# 2802| getDeclarationEntry(0): [TypeDeclarationEntry] declaration of arr -# 2802| Type = [CTypedefType,LocalTypedefType] arr -# 2802| getStmt(1): [VlaDimensionStmt] VLA dimension size -# 2802| getDimensionExpr(): [VariableAccess] len1 -# 2802| Type = [IntType] int -# 2802| ValueCategory = prvalue(load) -# 2802| getStmt(2): [VlaDimensionStmt] VLA dimension size -# 2802| getDimensionExpr(): [VariableAccess] len2 -# 2802| Type = [CTypedefType,Size_t] size_t -# 2802| ValueCategory = prvalue(load) -# 2802| getStmt(3): [VlaDeclStmt] VLA declaration -# 2803| getStmt(4): [DeclStmt] declaration -# 2803| getDeclarationEntry(0): [TypeDeclarationEntry] declaration of arr2 -# 2803| Type = [CTypedefType,LocalTypedefType] arr2 -# 2803| getStmt(5): [VlaDeclStmt] VLA declaration -# 2804| getStmt(6): [DeclStmt] declaration -# 2804| getDeclarationEntry(0): [TypeDeclarationEntry] declaration of arr3 -# 2804| Type = [CTypedefType,LocalTypedefType] arr3 -# 2804| getStmt(7): [VlaDimensionStmt] VLA dimension size -# 2804| getDimensionExpr(): [VariableAccess] len3 -# 2804| Type = [PlainCharType] char +# 2799| getStmt(11): [DeclStmt] declaration +# 2799| getDeclarationEntry(0): [VariableDeclarationEntry] definition of u +# 2799| Type = [CTypedefType,Size_t] size_t +# 2799| getVariable().getInitializer(): [Initializer] initializer for u +# 2799| getExpr(): [SizeofExprOperator] sizeof() +# 2799| Type = [LongType] unsigned long +# 2799| ValueCategory = prvalue +# 2799| getExprOperand(): [ArrayExpr] access to array +# 2799| Type = [ArrayType] int[] +# 2799| ValueCategory = lvalue +# 2799| getArrayBase(): [ArrayExpr] access to array +# 2799| Type = [ArrayType] int[][] +# 2799| ValueCategory = lvalue +# 2799| getArrayBase(): [VariableAccess] tmp2 +# 2799| Type = [ArrayType] int[][][] +# 2799| ValueCategory = lvalue +# 2799| getArrayOffset(): [Literal] 1 +# 2799| Type = [IntType] int +# 2799| Value = [Literal] 1 +# 2799| ValueCategory = prvalue +# 2799| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 2799| Type = [PointerType] int(*)[][] +# 2799| ValueCategory = prvalue +# 2799| getArrayOffset(): [Literal] 2 +# 2799| Type = [IntType] int +# 2799| Value = [Literal] 2 +# 2799| ValueCategory = prvalue +# 2799| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 2799| Type = [PointerType] int(*)[] +# 2799| ValueCategory = prvalue +# 2799| getExprOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2799| Type = [ArrayType] int[] +# 2799| ValueCategory = lvalue +# 2800| getStmt(12): [DeclStmt] declaration +# 2800| getDeclarationEntry(0): [VariableDeclarationEntry] definition of t +# 2800| Type = [CTypedefType,Size_t] size_t +# 2800| getVariable().getInitializer(): [Initializer] initializer for t +# 2800| getExpr(): [SizeofExprOperator] sizeof() +# 2800| Type = [LongType] unsigned long +# 2800| Value = [SizeofExprOperator] 4 +# 2800| ValueCategory = prvalue +# 2800| getExprOperand(): [ArrayExpr] access to array +# 2800| Type = [IntType] int +# 2800| ValueCategory = lvalue +# 2800| getArrayBase(): [ArrayExpr] access to array +# 2800| Type = [ArrayType] int[] +# 2800| ValueCategory = lvalue +# 2800| getArrayBase(): [ArrayExpr] access to array +# 2800| Type = [ArrayType] int[][] +# 2800| ValueCategory = lvalue +# 2800| getArrayBase(): [VariableAccess] tmp2 +# 2800| Type = [ArrayType] int[][][] +# 2800| ValueCategory = lvalue +# 2800| getArrayOffset(): [Literal] 1 +# 2800| Type = [IntType] int +# 2800| Value = [Literal] 1 +# 2800| ValueCategory = prvalue +# 2800| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 2800| Type = [PointerType] int(*)[][] +# 2800| ValueCategory = prvalue +# 2800| getArrayOffset(): [Literal] 2 +# 2800| Type = [IntType] int +# 2800| Value = [Literal] 2 +# 2800| ValueCategory = prvalue +# 2800| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 2800| Type = [PointerType] int(*)[] +# 2800| ValueCategory = prvalue +# 2800| getArrayOffset(): [Literal] 3 +# 2800| Type = [IntType] int +# 2800| Value = [Literal] 3 +# 2800| ValueCategory = prvalue +# 2800| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 2800| Type = [IntPointerType] int * +# 2800| ValueCategory = prvalue +# 2800| getExprOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2800| Type = [IntType] int +# 2800| ValueCategory = lvalue +# 2801| getStmt(13): [ReturnStmt] return ... +# 2803| [TopLevelFunction] size_t vla_sizeof_test3(int, size_t, char, bool) +# 2803| : +# 2803| getParameter(0): [Parameter] len1 +# 2803| Type = [IntType] int +# 2803| getParameter(1): [Parameter] len2 +# 2803| Type = [CTypedefType,Size_t] size_t +# 2803| getParameter(2): [Parameter] len3 +# 2803| Type = [PlainCharType] char +# 2803| getParameter(3): [Parameter] b +# 2803| Type = [BoolType] bool +# 2803| getEntryPoint(): [BlockStmt] { ... } +# 2804| getStmt(0): [DeclStmt] declaration +# 2804| getDeclarationEntry(0): [TypeDeclarationEntry] declaration of arr +# 2804| Type = [CTypedefType,LocalTypedefType] arr +# 2804| getStmt(1): [VlaDimensionStmt] VLA dimension size +# 2804| getDimensionExpr(): [VariableAccess] len1 +# 2804| Type = [IntType] int +# 2804| ValueCategory = prvalue(load) +# 2804| getStmt(2): [VlaDimensionStmt] VLA dimension size +# 2804| getDimensionExpr(): [VariableAccess] len2 +# 2804| Type = [CTypedefType,Size_t] size_t # 2804| ValueCategory = prvalue(load) -# 2804| getStmt(8): [VlaDeclStmt] VLA declaration -# 2806| getStmt(9): [IfStmt] if (...) ... -# 2806| getCondition(): [VariableAccess] b -# 2806| Type = [BoolType] bool +# 2804| getStmt(3): [VlaDeclStmt] VLA declaration +# 2805| getStmt(4): [DeclStmt] declaration +# 2805| getDeclarationEntry(0): [TypeDeclarationEntry] declaration of arr2 +# 2805| Type = [CTypedefType,LocalTypedefType] arr2 +# 2805| getStmt(5): [VlaDeclStmt] VLA declaration +# 2806| getStmt(6): [DeclStmt] declaration +# 2806| getDeclarationEntry(0): [TypeDeclarationEntry] declaration of arr3 +# 2806| Type = [CTypedefType,LocalTypedefType] arr3 +# 2806| getStmt(7): [VlaDimensionStmt] VLA dimension size +# 2806| getDimensionExpr(): [VariableAccess] len3 +# 2806| Type = [PlainCharType] char # 2806| ValueCategory = prvalue(load) -# 2806| getThen(): [BlockStmt] { ... } -# 2807| getStmt(0): [DeclStmt] declaration -# 2807| getDeclarationEntry(0): [VariableDeclarationEntry] definition of tmp -# 2807| Type = [CTypedefType,LocalTypedefType] arr3 -# 2807| getStmt(1): [VlaDeclStmt] VLA declaration -# 2808| getStmt(2): [ReturnStmt] return ... -# 2808| getExpr(): [SizeofExprOperator] sizeof() -# 2808| Type = [LongType] unsigned long -# 2808| ValueCategory = prvalue -# 2808| getExprOperand(): [ArrayExpr] access to array -# 2808| Type = [CTypedefType,LocalTypedefType] arr2 -# 2808| ValueCategory = lvalue -# 2808| getArrayBase(): [VariableAccess] tmp -# 2808| Type = [CTypedefType,LocalTypedefType] arr3 -# 2808| ValueCategory = lvalue -# 2808| getArrayOffset(): [Literal] 1 -# 2808| Type = [IntType] int -# 2808| Value = [Literal] 1 -# 2808| ValueCategory = prvalue -# 2808| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 2808| Type = [PointerType] arr2 * -# 2808| ValueCategory = prvalue -# 2808| getExprOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2808| Type = [CTypedefType,LocalTypedefType] arr2 -# 2808| ValueCategory = lvalue -# 2811| getStmt(10): [ReturnStmt] return ... -# 2811| getExpr(): [Literal] 0 -# 2811| Type = [IntType] int -# 2811| Value = [Literal] 0 -# 2811| ValueCategory = prvalue -# 2811| getExpr().getFullyConverted(): [CStyleCast] (size_t)... -# 2811| Conversion = [IntegralConversion] integral conversion -# 2811| Type = [CTypedefType,Size_t] size_t -# 2811| Value = [CStyleCast] 0 -# 2811| ValueCategory = prvalue -# 2814| [TopLevelFunction] void vla_sizeof_test4(int, size_t) -# 2814| : -# 2814| getParameter(0): [Parameter] len1 -# 2814| Type = [IntType] int -# 2814| getParameter(1): [Parameter] len2 -# 2814| Type = [CTypedefType,Size_t] size_t -# 2814| getEntryPoint(): [BlockStmt] { ... } -# 2815| getStmt(0): [DeclStmt] declaration -# 2815| getDeclarationEntry(0): [VariableDeclarationEntry] definition of tmp1 -# 2815| Type = [ArrayType] int[][] -# 2815| getStmt(1): [VlaDimensionStmt] VLA dimension size -# 2815| getDimensionExpr(): [VariableAccess] len1 -# 2815| Type = [IntType] int -# 2815| ValueCategory = prvalue(load) -# 2815| getStmt(2): [VlaDimensionStmt] VLA dimension size -# 2815| getDimensionExpr(): [VariableAccess] len2 -# 2815| Type = [CTypedefType,Size_t] size_t -# 2815| ValueCategory = prvalue(load) -# 2815| getStmt(3): [VlaDeclStmt] VLA declaration -# 2816| getStmt(4): [DeclStmt] declaration -# 2816| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z -# 2816| Type = [CTypedefType,Size_t] size_t -# 2816| getVariable().getInitializer(): [Initializer] initializer for z -# 2816| getExpr(): [SizeofExprOperator] sizeof() -# 2816| Type = [LongType] unsigned long -# 2816| ValueCategory = prvalue -# 2816| getExprOperand(): [ArrayExpr] access to array -# 2816| Type = [ArrayType] int[] -# 2816| ValueCategory = lvalue -# 2816| getArrayBase(): [VariableAccess] tmp1 -# 2816| Type = [ArrayType] int[][] -# 2816| ValueCategory = lvalue -# 2816| getArrayOffset(): [Literal] 1 -# 2816| Type = [IntType] int -# 2816| Value = [Literal] 1 -# 2816| ValueCategory = prvalue -# 2816| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 2816| Type = [PointerType] int(*)[] -# 2816| ValueCategory = prvalue -# 2816| getExprOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2816| Type = [ArrayType] int[] -# 2816| ValueCategory = lvalue -# 2817| getStmt(5): [ReturnStmt] return ... -# 2819| [TopLevelFunction] void vla_sizeof_test5(int, size_t) -# 2819| : -# 2819| getParameter(0): [Parameter] len1 -# 2819| Type = [IntType] int -# 2819| getParameter(1): [Parameter] len2 -# 2819| Type = [CTypedefType,Size_t] size_t -# 2819| getEntryPoint(): [BlockStmt] { ... } -# 2820| getStmt(0): [DeclStmt] declaration -# 2820| getDeclarationEntry(0): [VariableDeclarationEntry] definition of tmp1 -# 2820| Type = [ArrayType] int[][] -# 2820| getStmt(1): [VlaDimensionStmt] VLA dimension size -# 2820| getDimensionExpr(): [VariableAccess] len1 -# 2820| Type = [IntType] int -# 2820| ValueCategory = prvalue(load) -# 2820| getStmt(2): [VlaDimensionStmt] VLA dimension size -# 2820| getDimensionExpr(): [VariableAccess] len2 -# 2820| Type = [CTypedefType,Size_t] size_t -# 2820| ValueCategory = prvalue(load) -# 2820| getStmt(3): [VlaDeclStmt] VLA declaration -# 2821| getStmt(4): [DeclStmt] declaration -# 2821| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z -# 2821| Type = [CTypedefType,Size_t] size_t -# 2821| getVariable().getInitializer(): [Initializer] initializer for z -# 2821| getExpr(): [SizeofExprOperator] sizeof() -# 2821| Type = [LongType] unsigned long -# 2821| ValueCategory = prvalue -# 2821| getExprOperand(): [ArrayExpr] access to array -# 2821| Type = [ArrayType] int[] -# 2821| ValueCategory = lvalue -# 2821| getArrayBase(): [PointerDereferenceExpr] * ... -# 2821| Type = [ArrayType] int[][] -# 2821| ValueCategory = lvalue -# 2821| getOperand(): [AddressOfExpr] & ... -# 2821| Type = [PointerType] int(*)[][] -# 2821| ValueCategory = prvalue -# 2821| getOperand(): [VariableAccess] tmp1 -# 2821| Type = [ArrayType] int[][] -# 2821| ValueCategory = lvalue -# 2821| getArrayOffset(): [Literal] 1 -# 2821| Type = [IntType] int -# 2821| Value = [Literal] 1 -# 2821| ValueCategory = prvalue -# 2821| getArrayBase().getFullyConverted(): [ParenthesisExpr] (...) -# 2821| Type = [PointerType] int(*)[] -# 2821| ValueCategory = prvalue -# 2821| getExpr(): [ArrayToPointerConversion] array to pointer conversion -# 2821| Type = [PointerType] int(*)[] -# 2821| ValueCategory = prvalue -# 2821| getExprOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 2821| Type = [ArrayType] int[] -# 2821| ValueCategory = lvalue -# 2822| getStmt(5): [ReturnStmt] return ... +# 2806| getStmt(8): [VlaDeclStmt] VLA declaration +# 2808| getStmt(9): [IfStmt] if (...) ... +# 2808| getCondition(): [VariableAccess] b +# 2808| Type = [BoolType] bool +# 2808| ValueCategory = prvalue(load) +# 2808| getThen(): [BlockStmt] { ... } +# 2809| getStmt(0): [DeclStmt] declaration +# 2809| getDeclarationEntry(0): [VariableDeclarationEntry] definition of tmp +# 2809| Type = [CTypedefType,LocalTypedefType] arr3 +# 2809| getStmt(1): [VlaDeclStmt] VLA declaration +# 2810| getStmt(2): [ReturnStmt] return ... +# 2810| getExpr(): [SizeofExprOperator] sizeof() +# 2810| Type = [LongType] unsigned long +# 2810| ValueCategory = prvalue +# 2810| getExprOperand(): [ArrayExpr] access to array +# 2810| Type = [CTypedefType,LocalTypedefType] arr2 +# 2810| ValueCategory = lvalue +# 2810| getArrayBase(): [VariableAccess] tmp +# 2810| Type = [CTypedefType,LocalTypedefType] arr3 +# 2810| ValueCategory = lvalue +# 2810| getArrayOffset(): [Literal] 1 +# 2810| Type = [IntType] int +# 2810| Value = [Literal] 1 +# 2810| ValueCategory = prvalue +# 2810| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 2810| Type = [PointerType] arr2 * +# 2810| ValueCategory = prvalue +# 2810| getExprOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2810| Type = [CTypedefType,LocalTypedefType] arr2 +# 2810| ValueCategory = lvalue +# 2813| getStmt(10): [ReturnStmt] return ... +# 2813| getExpr(): [Literal] 0 +# 2813| Type = [IntType] int +# 2813| Value = [Literal] 0 +# 2813| ValueCategory = prvalue +# 2813| getExpr().getFullyConverted(): [CStyleCast] (size_t)... +# 2813| Conversion = [IntegralConversion] integral conversion +# 2813| Type = [CTypedefType,Size_t] size_t +# 2813| Value = [CStyleCast] 0 +# 2813| ValueCategory = prvalue +# 2816| [TopLevelFunction] void vla_sizeof_test4(int, size_t) +# 2816| : +# 2816| getParameter(0): [Parameter] len1 +# 2816| Type = [IntType] int +# 2816| getParameter(1): [Parameter] len2 +# 2816| Type = [CTypedefType,Size_t] size_t +# 2816| getEntryPoint(): [BlockStmt] { ... } +# 2817| getStmt(0): [DeclStmt] declaration +# 2817| getDeclarationEntry(0): [VariableDeclarationEntry] definition of tmp1 +# 2817| Type = [ArrayType] int[][] +# 2817| getStmt(1): [VlaDimensionStmt] VLA dimension size +# 2817| getDimensionExpr(): [VariableAccess] len1 +# 2817| Type = [IntType] int +# 2817| ValueCategory = prvalue(load) +# 2817| getStmt(2): [VlaDimensionStmt] VLA dimension size +# 2817| getDimensionExpr(): [VariableAccess] len2 +# 2817| Type = [CTypedefType,Size_t] size_t +# 2817| ValueCategory = prvalue(load) +# 2817| getStmt(3): [VlaDeclStmt] VLA declaration +# 2818| getStmt(4): [DeclStmt] declaration +# 2818| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z +# 2818| Type = [CTypedefType,Size_t] size_t +# 2818| getVariable().getInitializer(): [Initializer] initializer for z +# 2818| getExpr(): [SizeofExprOperator] sizeof() +# 2818| Type = [LongType] unsigned long +# 2818| ValueCategory = prvalue +# 2818| getExprOperand(): [ArrayExpr] access to array +# 2818| Type = [ArrayType] int[] +# 2818| ValueCategory = lvalue +# 2818| getArrayBase(): [VariableAccess] tmp1 +# 2818| Type = [ArrayType] int[][] +# 2818| ValueCategory = lvalue +# 2818| getArrayOffset(): [Literal] 1 +# 2818| Type = [IntType] int +# 2818| Value = [Literal] 1 +# 2818| ValueCategory = prvalue +# 2818| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 2818| Type = [PointerType] int(*)[] +# 2818| ValueCategory = prvalue +# 2818| getExprOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2818| Type = [ArrayType] int[] +# 2818| ValueCategory = lvalue +# 2819| getStmt(5): [ReturnStmt] return ... +# 2821| [TopLevelFunction] void vla_sizeof_test5(int, size_t) +# 2821| : +# 2821| getParameter(0): [Parameter] len1 +# 2821| Type = [IntType] int +# 2821| getParameter(1): [Parameter] len2 +# 2821| Type = [CTypedefType,Size_t] size_t +# 2821| getEntryPoint(): [BlockStmt] { ... } +# 2822| getStmt(0): [DeclStmt] declaration +# 2822| getDeclarationEntry(0): [VariableDeclarationEntry] definition of tmp1 +# 2822| Type = [ArrayType] int[][] +# 2822| getStmt(1): [VlaDimensionStmt] VLA dimension size +# 2822| getDimensionExpr(): [VariableAccess] len1 +# 2822| Type = [IntType] int +# 2822| ValueCategory = prvalue(load) +# 2822| getStmt(2): [VlaDimensionStmt] VLA dimension size +# 2822| getDimensionExpr(): [VariableAccess] len2 +# 2822| Type = [CTypedefType,Size_t] size_t +# 2822| ValueCategory = prvalue(load) +# 2822| getStmt(3): [VlaDeclStmt] VLA declaration +# 2823| getStmt(4): [DeclStmt] declaration +# 2823| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z +# 2823| Type = [CTypedefType,Size_t] size_t +# 2823| getVariable().getInitializer(): [Initializer] initializer for z +# 2823| getExpr(): [SizeofExprOperator] sizeof() +# 2823| Type = [LongType] unsigned long +# 2823| ValueCategory = prvalue +# 2823| getExprOperand(): [ArrayExpr] access to array +# 2823| Type = [ArrayType] int[] +# 2823| ValueCategory = lvalue +# 2823| getArrayBase(): [PointerDereferenceExpr] * ... +# 2823| Type = [ArrayType] int[][] +# 2823| ValueCategory = lvalue +# 2823| getOperand(): [AddressOfExpr] & ... +# 2823| Type = [PointerType] int(*)[][] +# 2823| ValueCategory = prvalue +# 2823| getOperand(): [VariableAccess] tmp1 +# 2823| Type = [ArrayType] int[][] +# 2823| ValueCategory = lvalue +# 2823| getArrayOffset(): [Literal] 1 +# 2823| Type = [IntType] int +# 2823| Value = [Literal] 1 +# 2823| ValueCategory = prvalue +# 2823| getArrayBase().getFullyConverted(): [ParenthesisExpr] (...) +# 2823| Type = [PointerType] int(*)[] +# 2823| ValueCategory = prvalue +# 2823| getExpr(): [ArrayToPointerConversion] array to pointer conversion +# 2823| Type = [PointerType] int(*)[] +# 2823| ValueCategory = prvalue +# 2823| getExprOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2823| Type = [ArrayType] int[] +# 2823| ValueCategory = lvalue +# 2824| getStmt(5): [ReturnStmt] return ... ir23.cpp: # 1| [TopLevelFunction] bool consteval_1() # 1| : diff --git a/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected b/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected index 00681a2dc71c..94daf808a722 100644 --- a/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected +++ b/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected @@ -10486,3665 +10486,3719 @@ ir.cpp: # 1216| r1216_5(__attribute((vector_size(16UL))) int) = Add : r1216_2, r1216_4 # 1216| r1216_6(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4] : # 1216| m1216_7(__attribute((vector_size(16UL))) int) = Store[vi4] : &:r1216_6, r1216_5 -# 1217| v1217_1(void) = NoOp : -# 1211| v1211_7(void) = ReturnVoid : -# 1211| v1211_8(void) = AliasedUse : m1211_3 -# 1211| v1211_9(void) = ExitFunction : - -# 1221| int ModeledCallTarget(int) -# 1221| Block 0 -# 1221| v1221_1(void) = EnterFunction : -# 1221| m1221_2(unknown) = AliasedDefinition : -# 1221| m1221_3(unknown) = InitializeNonLocal : -# 1221| m1221_4(unknown) = Chi : total:m1221_2, partial:m1221_3 -# 1221| r1221_5(glval) = VariableAddress[x] : -# 1221| m1221_6(int) = InitializeParameter[x] : &:r1221_5 -# 1222| r1222_1(glval) = VariableAddress[y] : -# 1222| m1222_2(int) = Uninitialized[y] : &:r1222_1 -# 1223| r1223_1(glval) = FunctionAddress[memcpy] : -# 1223| r1223_2(glval) = VariableAddress[y] : -# 1223| r1223_3(int *) = CopyValue : r1223_2 -# 1223| r1223_4(void *) = Convert : r1223_3 +# 1217| r1217_1(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4] : +# 1217| r1217_2(__attribute((vector_size(16UL))) int) = Load[vi4] : &:r1217_1, m1216_7 +# 1217| r1217_3(__attribute((vector_size(16UL))) int) = Constant[0] : +# 1217| r1217_4(bool) = CompareNE : r1217_2, r1217_3 +# 1217| v1217_5(void) = ConditionalBranch : r1217_4 +#-----| False -> Block 1 +#-----| True -> Block 4 + +# 1217| Block 1 +# 1217| r1217_6(glval<__attribute((vector_size(16))) int>) = VariableAddress[#temp1217:9] : +# 1217| r1217_7(__attribute((vector_size(16))) int) = Constant[0] : +# 1217| m1217_8(__attribute((vector_size(16))) int) = Store[#temp1217:9] : &:r1217_6, r1217_7 +#-----| Goto -> Block 2 + +# 1217| Block 2 +# 1217| m1217_9(__attribute((vector_size(16))) int) = Phi : from 1:m1217_8, from 3:m1217_16 +# 1217| r1217_10(glval<__attribute((vector_size(16))) int>) = VariableAddress[#temp1217:9] : +# 1217| r1217_11(__attribute((vector_size(16))) int) = Load[#temp1217:9] : &:r1217_10, m1217_9 +# 1217| r1217_12(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4] : +# 1217| m1217_13(__attribute((vector_size(16UL))) int) = Store[vi4] : &:r1217_12, r1217_11 +# 1218| r1218_1(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4] : +# 1218| r1218_2(__attribute((vector_size(16UL))) int) = Load[vi4] : &:r1218_1, m1217_13 +# 1218| r1218_3(__attribute((vector_size(16UL))) int) = Constant[0] : +# 1218| r1218_4(bool) = CompareNE : r1218_2, r1218_3 +# 1218| v1218_5(void) = ConditionalBranch : r1218_4 +#-----| False -> Block 8 +#-----| True -> Block 7 + +# 1217| Block 3 +# 1217| r1217_14(glval<__attribute((vector_size(16))) int>) = VariableAddress[#temp1217:9] : +# 1217| r1217_15(__attribute((vector_size(16))) int) = Constant[1] : +# 1217| m1217_16(__attribute((vector_size(16))) int) = Store[#temp1217:9] : &:r1217_14, r1217_15 +#-----| Goto -> Block 2 + +# 1217| Block 4 +# 1217| r1217_17(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4_shuffle] : +# 1217| r1217_18(__attribute((vector_size(16UL))) int) = Load[vi4_shuffle] : &:r1217_17, m1215_11 +# 1217| r1217_19(__attribute((vector_size(16UL))) int) = Constant[0] : +# 1217| r1217_20(bool) = CompareNE : r1217_18, r1217_19 +# 1217| v1217_21(void) = ConditionalBranch : r1217_20 +#-----| False -> Block 1 +#-----| True -> Block 3 + +# 1218| Block 5 +# 1218| r1218_6(glval<__attribute((vector_size(16))) int>) = VariableAddress[#temp1218:9] : +# 1218| r1218_7(__attribute((vector_size(16))) int) = Constant[0] : +# 1218| m1218_8(__attribute((vector_size(16))) int) = Store[#temp1218:9] : &:r1218_6, r1218_7 +#-----| Goto -> Block 6 + +# 1218| Block 6 +# 1218| m1218_9(__attribute((vector_size(16))) int) = Phi : from 5:m1218_8, from 7:m1218_16 +# 1218| r1218_10(glval<__attribute((vector_size(16))) int>) = VariableAddress[#temp1218:9] : +# 1218| r1218_11(__attribute((vector_size(16))) int) = Load[#temp1218:9] : &:r1218_10, m1218_9 +# 1218| r1218_12(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4] : +# 1218| m1218_13(__attribute((vector_size(16UL))) int) = Store[vi4] : &:r1218_12, r1218_11 +# 1219| v1219_1(void) = NoOp : +# 1211| v1211_7(void) = ReturnVoid : +# 1211| v1211_8(void) = AliasedUse : m1211_3 +# 1211| v1211_9(void) = ExitFunction : + +# 1218| Block 7 +# 1218| r1218_14(glval<__attribute((vector_size(16))) int>) = VariableAddress[#temp1218:9] : +# 1218| r1218_15(__attribute((vector_size(16))) int) = Constant[1] : +# 1218| m1218_16(__attribute((vector_size(16))) int) = Store[#temp1218:9] : &:r1218_14, r1218_15 +#-----| Goto -> Block 6 + +# 1218| Block 8 +# 1218| r1218_17(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4_shuffle] : +# 1218| r1218_18(__attribute((vector_size(16UL))) int) = Load[vi4_shuffle] : &:r1218_17, m1215_11 +# 1218| r1218_19(__attribute((vector_size(16UL))) int) = Constant[0] : +# 1218| r1218_20(bool) = CompareNE : r1218_18, r1218_19 +# 1218| v1218_21(void) = ConditionalBranch : r1218_20 +#-----| False -> Block 5 +#-----| True -> Block 7 + +# 1223| int ModeledCallTarget(int) +# 1223| Block 0 +# 1223| v1223_1(void) = EnterFunction : +# 1223| m1223_2(unknown) = AliasedDefinition : +# 1223| m1223_3(unknown) = InitializeNonLocal : +# 1223| m1223_4(unknown) = Chi : total:m1223_2, partial:m1223_3 # 1223| r1223_5(glval) = VariableAddress[x] : -# 1223| r1223_6(int *) = CopyValue : r1223_5 -# 1223| r1223_7(void *) = Convert : r1223_6 -# 1223| r1223_8(int) = Constant[4] : -# 1223| r1223_9(void *) = Call[memcpy] : func:r1223_1, 0:r1223_4, 1:r1223_7, 2:r1223_8 -# 1223| v1223_10(void) = ^SizedBufferReadSideEffect[1] : &:r1223_7, r1223_8, ~m1221_6 -# 1223| m1223_11(unknown) = ^SizedBufferMustWriteSideEffect[0] : &:r1223_4, r1223_8 -# 1223| m1223_12(int) = Chi : total:m1222_2, partial:m1223_11 -# 1224| r1224_1(glval) = VariableAddress[#return] : -# 1224| r1224_2(glval) = VariableAddress[y] : -# 1224| r1224_3(int) = Load[y] : &:r1224_2, m1223_12 -# 1224| m1224_4(int) = Store[#return] : &:r1224_1, r1224_3 -# 1221| r1221_7(glval) = VariableAddress[#return] : -# 1221| v1221_8(void) = ReturnValue : &:r1221_7, m1224_4 -# 1221| v1221_9(void) = AliasedUse : m1221_3 -# 1221| v1221_10(void) = ExitFunction : - -# 1227| String ReturnObjectImpl() -# 1227| Block 0 -# 1227| v1227_1(void) = EnterFunction : -# 1227| m1227_2(unknown) = AliasedDefinition : -# 1227| m1227_3(unknown) = InitializeNonLocal : -# 1227| m1227_4(unknown) = Chi : total:m1227_2, partial:m1227_3 -# 1228| r1228_1(glval) = VariableAddress[#return] : -# 1228| m1228_2(String) = Uninitialized[#return] : &:r1228_1 -# 1228| m1228_3(unknown) = Chi : total:m1227_4, partial:m1228_2 -# 1228| r1228_4(glval) = FunctionAddress[String] : -# 1228| r1228_5(glval) = StringConstant["foo"] : -# 1228| r1228_6(char *) = Convert : r1228_5 -# 1228| v1228_7(void) = Call[String] : func:r1228_4, this:r1228_1, 0:r1228_6 -# 1228| m1228_8(unknown) = ^CallSideEffect : ~m1228_3 -# 1228| m1228_9(unknown) = Chi : total:m1228_3, partial:m1228_8 -# 1228| v1228_10(void) = ^BufferReadSideEffect[0] : &:r1228_6, ~m1227_3 -# 1228| m1228_11(String) = ^IndirectMayWriteSideEffect[-1] : &:r1228_1 -# 1228| m1228_12(unknown) = Chi : total:m1228_9, partial:m1228_11 -# 1227| r1227_5(glval) = VariableAddress[#return] : -# 1227| v1227_6(void) = ReturnValue : &:r1227_5, ~m1228_12 -# 1227| v1227_7(void) = AliasedUse : ~m1228_9 -# 1227| v1227_8(void) = ExitFunction : - -# 1231| void switch1Case(int) -# 1231| Block 0 -# 1231| v1231_1(void) = EnterFunction : -# 1231| m1231_2(unknown) = AliasedDefinition : -# 1231| m1231_3(unknown) = InitializeNonLocal : -# 1231| m1231_4(unknown) = Chi : total:m1231_2, partial:m1231_3 -# 1231| r1231_5(glval) = VariableAddress[x] : -# 1231| m1231_6(int) = InitializeParameter[x] : &:r1231_5 -# 1232| r1232_1(glval) = VariableAddress[y] : -# 1232| r1232_2(int) = Constant[0] : -# 1232| m1232_3(int) = Store[y] : &:r1232_1, r1232_2 -# 1233| r1233_1(glval) = VariableAddress[x] : -# 1233| r1233_2(int) = Load[x] : &:r1233_1, m1231_6 -# 1233| v1233_3(void) = Switch : r1233_2 +# 1223| m1223_6(int) = InitializeParameter[x] : &:r1223_5 +# 1224| r1224_1(glval) = VariableAddress[y] : +# 1224| m1224_2(int) = Uninitialized[y] : &:r1224_1 +# 1225| r1225_1(glval) = FunctionAddress[memcpy] : +# 1225| r1225_2(glval) = VariableAddress[y] : +# 1225| r1225_3(int *) = CopyValue : r1225_2 +# 1225| r1225_4(void *) = Convert : r1225_3 +# 1225| r1225_5(glval) = VariableAddress[x] : +# 1225| r1225_6(int *) = CopyValue : r1225_5 +# 1225| r1225_7(void *) = Convert : r1225_6 +# 1225| r1225_8(int) = Constant[4] : +# 1225| r1225_9(void *) = Call[memcpy] : func:r1225_1, 0:r1225_4, 1:r1225_7, 2:r1225_8 +# 1225| v1225_10(void) = ^SizedBufferReadSideEffect[1] : &:r1225_7, r1225_8, ~m1223_6 +# 1225| m1225_11(unknown) = ^SizedBufferMustWriteSideEffect[0] : &:r1225_4, r1225_8 +# 1225| m1225_12(int) = Chi : total:m1224_2, partial:m1225_11 +# 1226| r1226_1(glval) = VariableAddress[#return] : +# 1226| r1226_2(glval) = VariableAddress[y] : +# 1226| r1226_3(int) = Load[y] : &:r1226_2, m1225_12 +# 1226| m1226_4(int) = Store[#return] : &:r1226_1, r1226_3 +# 1223| r1223_7(glval) = VariableAddress[#return] : +# 1223| v1223_8(void) = ReturnValue : &:r1223_7, m1226_4 +# 1223| v1223_9(void) = AliasedUse : m1223_3 +# 1223| v1223_10(void) = ExitFunction : + +# 1229| String ReturnObjectImpl() +# 1229| Block 0 +# 1229| v1229_1(void) = EnterFunction : +# 1229| m1229_2(unknown) = AliasedDefinition : +# 1229| m1229_3(unknown) = InitializeNonLocal : +# 1229| m1229_4(unknown) = Chi : total:m1229_2, partial:m1229_3 +# 1230| r1230_1(glval) = VariableAddress[#return] : +# 1230| m1230_2(String) = Uninitialized[#return] : &:r1230_1 +# 1230| m1230_3(unknown) = Chi : total:m1229_4, partial:m1230_2 +# 1230| r1230_4(glval) = FunctionAddress[String] : +# 1230| r1230_5(glval) = StringConstant["foo"] : +# 1230| r1230_6(char *) = Convert : r1230_5 +# 1230| v1230_7(void) = Call[String] : func:r1230_4, this:r1230_1, 0:r1230_6 +# 1230| m1230_8(unknown) = ^CallSideEffect : ~m1230_3 +# 1230| m1230_9(unknown) = Chi : total:m1230_3, partial:m1230_8 +# 1230| v1230_10(void) = ^BufferReadSideEffect[0] : &:r1230_6, ~m1229_3 +# 1230| m1230_11(String) = ^IndirectMayWriteSideEffect[-1] : &:r1230_1 +# 1230| m1230_12(unknown) = Chi : total:m1230_9, partial:m1230_11 +# 1229| r1229_5(glval) = VariableAddress[#return] : +# 1229| v1229_6(void) = ReturnValue : &:r1229_5, ~m1230_12 +# 1229| v1229_7(void) = AliasedUse : ~m1230_9 +# 1229| v1229_8(void) = ExitFunction : + +# 1233| void switch1Case(int) +# 1233| Block 0 +# 1233| v1233_1(void) = EnterFunction : +# 1233| m1233_2(unknown) = AliasedDefinition : +# 1233| m1233_3(unknown) = InitializeNonLocal : +# 1233| m1233_4(unknown) = Chi : total:m1233_2, partial:m1233_3 +# 1233| r1233_5(glval) = VariableAddress[x] : +# 1233| m1233_6(int) = InitializeParameter[x] : &:r1233_5 +# 1234| r1234_1(glval) = VariableAddress[y] : +# 1234| r1234_2(int) = Constant[0] : +# 1234| m1234_3(int) = Store[y] : &:r1234_1, r1234_2 +# 1235| r1235_1(glval) = VariableAddress[x] : +# 1235| r1235_2(int) = Load[x] : &:r1235_1, m1233_6 +# 1235| v1235_3(void) = Switch : r1235_2 #-----| Case[1] -> Block 1 #-----| Default -> Block 2 -# 1234| Block 1 -# 1234| v1234_1(void) = NoOp : -# 1235| r1235_1(int) = Constant[2] : -# 1235| r1235_2(glval) = VariableAddress[y] : -# 1235| m1235_3(int) = Store[y] : &:r1235_2, r1235_1 +# 1236| Block 1 +# 1236| v1236_1(void) = NoOp : +# 1237| r1237_1(int) = Constant[2] : +# 1237| r1237_2(glval) = VariableAddress[y] : +# 1237| m1237_3(int) = Store[y] : &:r1237_2, r1237_1 #-----| Goto -> Block 2 -# 1237| Block 2 -# 1237| m1237_1(int) = Phi : from 0:m1232_3, from 1:m1235_3 -# 1237| r1237_2(glval) = VariableAddress[z] : -# 1237| r1237_3(glval) = VariableAddress[y] : -# 1237| r1237_4(int) = Load[y] : &:r1237_3, m1237_1 -# 1237| m1237_5(int) = Store[z] : &:r1237_2, r1237_4 -# 1238| v1238_1(void) = NoOp : -# 1231| v1231_7(void) = ReturnVoid : -# 1231| v1231_8(void) = AliasedUse : m1231_3 -# 1231| v1231_9(void) = ExitFunction : - -# 1240| void switch2Case_fallthrough(int) -# 1240| Block 0 -# 1240| v1240_1(void) = EnterFunction : -# 1240| m1240_2(unknown) = AliasedDefinition : -# 1240| m1240_3(unknown) = InitializeNonLocal : -# 1240| m1240_4(unknown) = Chi : total:m1240_2, partial:m1240_3 -# 1240| r1240_5(glval) = VariableAddress[x] : -# 1240| m1240_6(int) = InitializeParameter[x] : &:r1240_5 -# 1241| r1241_1(glval) = VariableAddress[y] : -# 1241| r1241_2(int) = Constant[0] : -# 1241| m1241_3(int) = Store[y] : &:r1241_1, r1241_2 -# 1242| r1242_1(glval) = VariableAddress[x] : -# 1242| r1242_2(int) = Load[x] : &:r1242_1, m1240_6 -# 1242| v1242_3(void) = Switch : r1242_2 +# 1239| Block 2 +# 1239| m1239_1(int) = Phi : from 0:m1234_3, from 1:m1237_3 +# 1239| r1239_2(glval) = VariableAddress[z] : +# 1239| r1239_3(glval) = VariableAddress[y] : +# 1239| r1239_4(int) = Load[y] : &:r1239_3, m1239_1 +# 1239| m1239_5(int) = Store[z] : &:r1239_2, r1239_4 +# 1240| v1240_1(void) = NoOp : +# 1233| v1233_7(void) = ReturnVoid : +# 1233| v1233_8(void) = AliasedUse : m1233_3 +# 1233| v1233_9(void) = ExitFunction : + +# 1242| void switch2Case_fallthrough(int) +# 1242| Block 0 +# 1242| v1242_1(void) = EnterFunction : +# 1242| m1242_2(unknown) = AliasedDefinition : +# 1242| m1242_3(unknown) = InitializeNonLocal : +# 1242| m1242_4(unknown) = Chi : total:m1242_2, partial:m1242_3 +# 1242| r1242_5(glval) = VariableAddress[x] : +# 1242| m1242_6(int) = InitializeParameter[x] : &:r1242_5 +# 1243| r1243_1(glval) = VariableAddress[y] : +# 1243| r1243_2(int) = Constant[0] : +# 1243| m1243_3(int) = Store[y] : &:r1243_1, r1243_2 +# 1244| r1244_1(glval) = VariableAddress[x] : +# 1244| r1244_2(int) = Load[x] : &:r1244_1, m1242_6 +# 1244| v1244_3(void) = Switch : r1244_2 #-----| Case[1] -> Block 1 #-----| Case[2] -> Block 2 #-----| Default -> Block 3 -# 1243| Block 1 -# 1243| v1243_1(void) = NoOp : -# 1244| r1244_1(int) = Constant[2] : -# 1244| r1244_2(glval) = VariableAddress[y] : -# 1244| m1244_3(int) = Store[y] : &:r1244_2, r1244_1 -#-----| Goto -> Block 2 - -# 1245| Block 2 +# 1245| Block 1 # 1245| v1245_1(void) = NoOp : -# 1246| r1246_1(int) = Constant[3] : +# 1246| r1246_1(int) = Constant[2] : # 1246| r1246_2(glval) = VariableAddress[y] : # 1246| m1246_3(int) = Store[y] : &:r1246_2, r1246_1 +#-----| Goto -> Block 2 + +# 1247| Block 2 +# 1247| v1247_1(void) = NoOp : +# 1248| r1248_1(int) = Constant[3] : +# 1248| r1248_2(glval) = VariableAddress[y] : +# 1248| m1248_3(int) = Store[y] : &:r1248_2, r1248_1 #-----| Goto -> Block 3 -# 1248| Block 3 -# 1248| m1248_1(int) = Phi : from 0:m1241_3, from 2:m1246_3 -# 1248| r1248_2(glval) = VariableAddress[z] : -# 1248| r1248_3(glval) = VariableAddress[y] : -# 1248| r1248_4(int) = Load[y] : &:r1248_3, m1248_1 -# 1248| m1248_5(int) = Store[z] : &:r1248_2, r1248_4 -# 1249| v1249_1(void) = NoOp : -# 1240| v1240_7(void) = ReturnVoid : -# 1240| v1240_8(void) = AliasedUse : m1240_3 -# 1240| v1240_9(void) = ExitFunction : - -# 1251| void switch2Case(int) -# 1251| Block 0 -# 1251| v1251_1(void) = EnterFunction : -# 1251| m1251_2(unknown) = AliasedDefinition : -# 1251| m1251_3(unknown) = InitializeNonLocal : -# 1251| m1251_4(unknown) = Chi : total:m1251_2, partial:m1251_3 -# 1251| r1251_5(glval) = VariableAddress[x] : -# 1251| m1251_6(int) = InitializeParameter[x] : &:r1251_5 -# 1252| r1252_1(glval) = VariableAddress[y] : -# 1252| r1252_2(int) = Constant[0] : -# 1252| m1252_3(int) = Store[y] : &:r1252_1, r1252_2 -# 1253| r1253_1(glval) = VariableAddress[x] : -# 1253| r1253_2(int) = Load[x] : &:r1253_1, m1251_6 -# 1253| v1253_3(void) = Switch : r1253_2 +# 1250| Block 3 +# 1250| m1250_1(int) = Phi : from 0:m1243_3, from 2:m1248_3 +# 1250| r1250_2(glval) = VariableAddress[z] : +# 1250| r1250_3(glval) = VariableAddress[y] : +# 1250| r1250_4(int) = Load[y] : &:r1250_3, m1250_1 +# 1250| m1250_5(int) = Store[z] : &:r1250_2, r1250_4 +# 1251| v1251_1(void) = NoOp : +# 1242| v1242_7(void) = ReturnVoid : +# 1242| v1242_8(void) = AliasedUse : m1242_3 +# 1242| v1242_9(void) = ExitFunction : + +# 1253| void switch2Case(int) +# 1253| Block 0 +# 1253| v1253_1(void) = EnterFunction : +# 1253| m1253_2(unknown) = AliasedDefinition : +# 1253| m1253_3(unknown) = InitializeNonLocal : +# 1253| m1253_4(unknown) = Chi : total:m1253_2, partial:m1253_3 +# 1253| r1253_5(glval) = VariableAddress[x] : +# 1253| m1253_6(int) = InitializeParameter[x] : &:r1253_5 +# 1254| r1254_1(glval) = VariableAddress[y] : +# 1254| r1254_2(int) = Constant[0] : +# 1254| m1254_3(int) = Store[y] : &:r1254_1, r1254_2 +# 1255| r1255_1(glval) = VariableAddress[x] : +# 1255| r1255_2(int) = Load[x] : &:r1255_1, m1253_6 +# 1255| v1255_3(void) = Switch : r1255_2 #-----| Case[1] -> Block 1 #-----| Case[2] -> Block 2 #-----| Default -> Block 3 -# 1254| Block 1 -# 1254| v1254_1(void) = NoOp : -# 1255| r1255_1(int) = Constant[2] : -# 1255| r1255_2(glval) = VariableAddress[y] : -# 1255| m1255_3(int) = Store[y] : &:r1255_2, r1255_1 +# 1256| Block 1 # 1256| v1256_1(void) = NoOp : +# 1257| r1257_1(int) = Constant[2] : +# 1257| r1257_2(glval) = VariableAddress[y] : +# 1257| m1257_3(int) = Store[y] : &:r1257_2, r1257_1 +# 1258| v1258_1(void) = NoOp : #-----| Goto -> Block 3 -# 1257| Block 2 -# 1257| v1257_1(void) = NoOp : -# 1258| r1258_1(int) = Constant[3] : -# 1258| r1258_2(glval) = VariableAddress[y] : -# 1258| m1258_3(int) = Store[y] : &:r1258_2, r1258_1 +# 1259| Block 2 +# 1259| v1259_1(void) = NoOp : +# 1260| r1260_1(int) = Constant[3] : +# 1260| r1260_2(glval) = VariableAddress[y] : +# 1260| m1260_3(int) = Store[y] : &:r1260_2, r1260_1 #-----| Goto -> Block 3 -# 1259| Block 3 -# 1259| m1259_1(int) = Phi : from 0:m1252_3, from 1:m1255_3, from 2:m1258_3 -# 1259| v1259_2(void) = NoOp : -# 1260| r1260_1(glval) = VariableAddress[z] : -# 1260| r1260_2(glval) = VariableAddress[y] : -# 1260| r1260_3(int) = Load[y] : &:r1260_2, m1259_1 -# 1260| m1260_4(int) = Store[z] : &:r1260_1, r1260_3 -# 1261| v1261_1(void) = NoOp : -# 1251| v1251_7(void) = ReturnVoid : -# 1251| v1251_8(void) = AliasedUse : m1251_3 -# 1251| v1251_9(void) = ExitFunction : - -# 1263| void switch2Case_default(int) -# 1263| Block 0 -# 1263| v1263_1(void) = EnterFunction : -# 1263| m1263_2(unknown) = AliasedDefinition : -# 1263| m1263_3(unknown) = InitializeNonLocal : -# 1263| m1263_4(unknown) = Chi : total:m1263_2, partial:m1263_3 -# 1263| r1263_5(glval) = VariableAddress[x] : -# 1263| m1263_6(int) = InitializeParameter[x] : &:r1263_5 -# 1264| r1264_1(glval) = VariableAddress[y] : -# 1264| r1264_2(int) = Constant[0] : -# 1264| m1264_3(int) = Store[y] : &:r1264_1, r1264_2 -# 1265| r1265_1(glval) = VariableAddress[x] : -# 1265| r1265_2(int) = Load[x] : &:r1265_1, m1263_6 -# 1265| v1265_3(void) = Switch : r1265_2 +# 1261| Block 3 +# 1261| m1261_1(int) = Phi : from 0:m1254_3, from 1:m1257_3, from 2:m1260_3 +# 1261| v1261_2(void) = NoOp : +# 1262| r1262_1(glval) = VariableAddress[z] : +# 1262| r1262_2(glval) = VariableAddress[y] : +# 1262| r1262_3(int) = Load[y] : &:r1262_2, m1261_1 +# 1262| m1262_4(int) = Store[z] : &:r1262_1, r1262_3 +# 1263| v1263_1(void) = NoOp : +# 1253| v1253_7(void) = ReturnVoid : +# 1253| v1253_8(void) = AliasedUse : m1253_3 +# 1253| v1253_9(void) = ExitFunction : + +# 1265| void switch2Case_default(int) +# 1265| Block 0 +# 1265| v1265_1(void) = EnterFunction : +# 1265| m1265_2(unknown) = AliasedDefinition : +# 1265| m1265_3(unknown) = InitializeNonLocal : +# 1265| m1265_4(unknown) = Chi : total:m1265_2, partial:m1265_3 +# 1265| r1265_5(glval) = VariableAddress[x] : +# 1265| m1265_6(int) = InitializeParameter[x] : &:r1265_5 +# 1266| r1266_1(glval) = VariableAddress[y] : +# 1266| r1266_2(int) = Constant[0] : +# 1266| m1266_3(int) = Store[y] : &:r1266_1, r1266_2 +# 1267| r1267_1(glval) = VariableAddress[x] : +# 1267| r1267_2(int) = Load[x] : &:r1267_1, m1265_6 +# 1267| v1267_3(void) = Switch : r1267_2 #-----| Case[1] -> Block 1 #-----| Case[2] -> Block 2 #-----| Default -> Block 3 -# 1266| Block 1 -# 1266| v1266_1(void) = NoOp : -# 1267| r1267_1(int) = Constant[2] : -# 1267| r1267_2(glval) = VariableAddress[y] : -# 1267| m1267_3(int) = Store[y] : &:r1267_2, r1267_1 +# 1268| Block 1 # 1268| v1268_1(void) = NoOp : -#-----| Goto -> Block 4 - -# 1270| Block 2 +# 1269| r1269_1(int) = Constant[2] : +# 1269| r1269_2(glval) = VariableAddress[y] : +# 1269| m1269_3(int) = Store[y] : &:r1269_2, r1269_1 # 1270| v1270_1(void) = NoOp : -# 1271| r1271_1(int) = Constant[3] : -# 1271| r1271_2(glval) = VariableAddress[y] : -# 1271| m1271_3(int) = Store[y] : &:r1271_2, r1271_1 -# 1272| v1272_1(void) = NoOp : #-----| Goto -> Block 4 -# 1274| Block 3 +# 1272| Block 2 +# 1272| v1272_1(void) = NoOp : +# 1273| r1273_1(int) = Constant[3] : +# 1273| r1273_2(glval) = VariableAddress[y] : +# 1273| m1273_3(int) = Store[y] : &:r1273_2, r1273_1 # 1274| v1274_1(void) = NoOp : -# 1275| r1275_1(int) = Constant[4] : -# 1275| r1275_2(glval) = VariableAddress[y] : -# 1275| m1275_3(int) = Store[y] : &:r1275_2, r1275_1 #-----| Goto -> Block 4 -# 1276| Block 4 -# 1276| m1276_1(int) = Phi : from 1:m1267_3, from 2:m1271_3, from 3:m1275_3 -# 1276| v1276_2(void) = NoOp : -# 1277| r1277_1(glval) = VariableAddress[z] : +# 1276| Block 3 +# 1276| v1276_1(void) = NoOp : +# 1277| r1277_1(int) = Constant[4] : # 1277| r1277_2(glval) = VariableAddress[y] : -# 1277| r1277_3(int) = Load[y] : &:r1277_2, m1276_1 -# 1277| m1277_4(int) = Store[z] : &:r1277_1, r1277_3 -# 1278| v1278_1(void) = NoOp : -# 1263| v1263_7(void) = ReturnVoid : -# 1263| v1263_8(void) = AliasedUse : m1263_3 -# 1263| v1263_9(void) = ExitFunction : - -# 1280| int staticLocalInit(int) -# 1280| Block 0 -# 1280| v1280_1(void) = EnterFunction : -# 1280| m1280_2(unknown) = AliasedDefinition : -# 1280| m1280_3(unknown) = InitializeNonLocal : -# 1280| m1280_4(unknown) = Chi : total:m1280_2, partial:m1280_3 -# 1280| r1280_5(glval) = VariableAddress[x] : -# 1280| m1280_6(int) = InitializeParameter[x] : &:r1280_5 -# 1283| r1283_1(glval) = VariableAddress[c#init] : -# 1283| r1283_2(bool) = Load[c#init] : &:r1283_1, ~m1280_3 -# 1283| v1283_3(void) = ConditionalBranch : r1283_2 +# 1277| m1277_3(int) = Store[y] : &:r1277_2, r1277_1 +#-----| Goto -> Block 4 + +# 1278| Block 4 +# 1278| m1278_1(int) = Phi : from 1:m1269_3, from 2:m1273_3, from 3:m1277_3 +# 1278| v1278_2(void) = NoOp : +# 1279| r1279_1(glval) = VariableAddress[z] : +# 1279| r1279_2(glval) = VariableAddress[y] : +# 1279| r1279_3(int) = Load[y] : &:r1279_2, m1278_1 +# 1279| m1279_4(int) = Store[z] : &:r1279_1, r1279_3 +# 1280| v1280_1(void) = NoOp : +# 1265| v1265_7(void) = ReturnVoid : +# 1265| v1265_8(void) = AliasedUse : m1265_3 +# 1265| v1265_9(void) = ExitFunction : + +# 1282| int staticLocalInit(int) +# 1282| Block 0 +# 1282| v1282_1(void) = EnterFunction : +# 1282| m1282_2(unknown) = AliasedDefinition : +# 1282| m1282_3(unknown) = InitializeNonLocal : +# 1282| m1282_4(unknown) = Chi : total:m1282_2, partial:m1282_3 +# 1282| r1282_5(glval) = VariableAddress[x] : +# 1282| m1282_6(int) = InitializeParameter[x] : &:r1282_5 +# 1285| r1285_1(glval) = VariableAddress[c#init] : +# 1285| r1285_2(bool) = Load[c#init] : &:r1285_1, ~m1282_3 +# 1285| v1285_3(void) = ConditionalBranch : r1285_2 #-----| False -> Block 1 #-----| True -> Block 2 -# 1283| Block 1 -# 1283| r1283_4(glval) = VariableAddress[c] : -# 1283| r1283_5(glval) = VariableAddress[x] : -# 1283| r1283_6(int) = Load[x] : &:r1283_5, m1280_6 -# 1283| m1283_7(int) = Store[c] : &:r1283_4, r1283_6 -# 1283| m1283_8(unknown) = Chi : total:m1280_4, partial:m1283_7 -# 1283| r1283_9(bool) = Constant[1] : -# 1283| m1283_10(bool) = Store[c#init] : &:r1283_1, r1283_9 -# 1283| m1283_11(unknown) = Chi : total:m1283_8, partial:m1283_10 +# 1285| Block 1 +# 1285| r1285_4(glval) = VariableAddress[c] : +# 1285| r1285_5(glval) = VariableAddress[x] : +# 1285| r1285_6(int) = Load[x] : &:r1285_5, m1282_6 +# 1285| m1285_7(int) = Store[c] : &:r1285_4, r1285_6 +# 1285| m1285_8(unknown) = Chi : total:m1282_4, partial:m1285_7 +# 1285| r1285_9(bool) = Constant[1] : +# 1285| m1285_10(bool) = Store[c#init] : &:r1285_1, r1285_9 +# 1285| m1285_11(unknown) = Chi : total:m1285_8, partial:m1285_10 #-----| Goto -> Block 2 -# 1286| Block 2 -# 1286| m1286_1(int) = Phi : from 0:~m1280_3, from 1:m1283_7 -# 1286| m1286_2(unknown) = Phi : from 0:~m1280_4, from 1:~m1283_11 -# 1286| r1286_3(glval) = VariableAddress[#return] : -# 1286| r1286_4(glval) = VariableAddress[a] : -# 1286| r1286_5(int) = Load[a] : &:r1286_4, ~m1286_2 -# 1286| r1286_6(glval) = VariableAddress[b] : -# 1286| r1286_7(int) = Load[b] : &:r1286_6, ~m1286_2 -# 1286| r1286_8(int) = Add : r1286_5, r1286_7 -# 1286| r1286_9(glval) = VariableAddress[c] : -# 1286| r1286_10(int) = Load[c] : &:r1286_9, m1286_1 -# 1286| r1286_11(int) = Add : r1286_8, r1286_10 -# 1286| r1286_12(glval) = VariableAddress[d] : -# 1286| r1286_13(int) = Load[d] : &:r1286_12, ~m1286_2 -# 1286| r1286_14(int) = Add : r1286_11, r1286_13 -# 1286| m1286_15(int) = Store[#return] : &:r1286_3, r1286_14 -# 1280| r1280_7(glval) = VariableAddress[#return] : -# 1280| v1280_8(void) = ReturnValue : &:r1280_7, m1286_15 -# 1280| v1280_9(void) = AliasedUse : ~m1286_2 -# 1280| v1280_10(void) = ExitFunction : - -# 1281| int a -# 1281| Block 0 -# 1281| v1281_1(void) = EnterFunction : -# 1281| m1281_2(unknown) = AliasedDefinition : -# 1281| r1281_3(glval) = VariableAddress[a] : -# 1281| r1281_4(int) = Constant[0] : -# 1281| m1281_5(int) = Store[a] : &:r1281_3, r1281_4 -# 1281| m1281_6(unknown) = Chi : total:m1281_2, partial:m1281_5 -# 1281| v1281_7(void) = ReturnVoid : -# 1281| v1281_8(void) = AliasedUse : ~m1281_6 -# 1281| v1281_9(void) = ExitFunction : - -# 1282| int b -# 1282| Block 0 -# 1282| v1282_1(void) = EnterFunction : -# 1282| m1282_2(unknown) = AliasedDefinition : -# 1282| r1282_3(glval) = VariableAddress[b] : -# 1282| r1282_4(int) = Constant[4] : -# 1282| m1282_5(int) = Store[b] : &:r1282_3, r1282_4 -# 1282| m1282_6(unknown) = Chi : total:m1282_2, partial:m1282_5 -# 1282| v1282_7(void) = ReturnVoid : -# 1282| v1282_8(void) = AliasedUse : ~m1282_6 -# 1282| v1282_9(void) = ExitFunction : - -# 1289| void staticLocalWithConstructor(char const*) -# 1289| Block 0 -# 1289| v1289_1(void) = EnterFunction : -# 1289| m1289_2(unknown) = AliasedDefinition : -# 1289| m1289_3(unknown) = InitializeNonLocal : -# 1289| m1289_4(unknown) = Chi : total:m1289_2, partial:m1289_3 -# 1289| r1289_5(glval) = VariableAddress[dynamic] : -# 1289| m1289_6(char *) = InitializeParameter[dynamic] : &:r1289_5 -# 1289| r1289_7(char *) = Load[dynamic] : &:r1289_5, m1289_6 -# 1289| m1289_8(unknown) = InitializeIndirection[dynamic] : &:r1289_7 -# 1289| m1289_9(unknown) = Chi : total:m1289_4, partial:m1289_8 -# 1290| r1290_1(glval) = VariableAddress[a#init] : -# 1290| r1290_2(bool) = Load[a#init] : &:r1290_1, ~m1289_3 -# 1290| v1290_3(void) = ConditionalBranch : r1290_2 +# 1288| Block 2 +# 1288| m1288_1(int) = Phi : from 0:~m1282_3, from 1:m1285_7 +# 1288| m1288_2(unknown) = Phi : from 0:~m1282_4, from 1:~m1285_11 +# 1288| r1288_3(glval) = VariableAddress[#return] : +# 1288| r1288_4(glval) = VariableAddress[a] : +# 1288| r1288_5(int) = Load[a] : &:r1288_4, ~m1288_2 +# 1288| r1288_6(glval) = VariableAddress[b] : +# 1288| r1288_7(int) = Load[b] : &:r1288_6, ~m1288_2 +# 1288| r1288_8(int) = Add : r1288_5, r1288_7 +# 1288| r1288_9(glval) = VariableAddress[c] : +# 1288| r1288_10(int) = Load[c] : &:r1288_9, m1288_1 +# 1288| r1288_11(int) = Add : r1288_8, r1288_10 +# 1288| r1288_12(glval) = VariableAddress[d] : +# 1288| r1288_13(int) = Load[d] : &:r1288_12, ~m1288_2 +# 1288| r1288_14(int) = Add : r1288_11, r1288_13 +# 1288| m1288_15(int) = Store[#return] : &:r1288_3, r1288_14 +# 1282| r1282_7(glval) = VariableAddress[#return] : +# 1282| v1282_8(void) = ReturnValue : &:r1282_7, m1288_15 +# 1282| v1282_9(void) = AliasedUse : ~m1288_2 +# 1282| v1282_10(void) = ExitFunction : + +# 1283| int a +# 1283| Block 0 +# 1283| v1283_1(void) = EnterFunction : +# 1283| m1283_2(unknown) = AliasedDefinition : +# 1283| r1283_3(glval) = VariableAddress[a] : +# 1283| r1283_4(int) = Constant[0] : +# 1283| m1283_5(int) = Store[a] : &:r1283_3, r1283_4 +# 1283| m1283_6(unknown) = Chi : total:m1283_2, partial:m1283_5 +# 1283| v1283_7(void) = ReturnVoid : +# 1283| v1283_8(void) = AliasedUse : ~m1283_6 +# 1283| v1283_9(void) = ExitFunction : + +# 1284| int b +# 1284| Block 0 +# 1284| v1284_1(void) = EnterFunction : +# 1284| m1284_2(unknown) = AliasedDefinition : +# 1284| r1284_3(glval) = VariableAddress[b] : +# 1284| r1284_4(int) = Constant[4] : +# 1284| m1284_5(int) = Store[b] : &:r1284_3, r1284_4 +# 1284| m1284_6(unknown) = Chi : total:m1284_2, partial:m1284_5 +# 1284| v1284_7(void) = ReturnVoid : +# 1284| v1284_8(void) = AliasedUse : ~m1284_6 +# 1284| v1284_9(void) = ExitFunction : + +# 1291| void staticLocalWithConstructor(char const*) +# 1291| Block 0 +# 1291| v1291_1(void) = EnterFunction : +# 1291| m1291_2(unknown) = AliasedDefinition : +# 1291| m1291_3(unknown) = InitializeNonLocal : +# 1291| m1291_4(unknown) = Chi : total:m1291_2, partial:m1291_3 +# 1291| r1291_5(glval) = VariableAddress[dynamic] : +# 1291| m1291_6(char *) = InitializeParameter[dynamic] : &:r1291_5 +# 1291| r1291_7(char *) = Load[dynamic] : &:r1291_5, m1291_6 +# 1291| m1291_8(unknown) = InitializeIndirection[dynamic] : &:r1291_7 +# 1291| m1291_9(unknown) = Chi : total:m1291_4, partial:m1291_8 +# 1292| r1292_1(glval) = VariableAddress[a#init] : +# 1292| r1292_2(bool) = Load[a#init] : &:r1292_1, ~m1291_3 +# 1292| v1292_3(void) = ConditionalBranch : r1292_2 #-----| False -> Block 1 #-----| True -> Block 2 -# 1290| Block 1 -# 1290| r1290_4(glval) = VariableAddress[a] : +# 1292| Block 1 +# 1292| r1292_4(glval) = VariableAddress[a] : #-----| r0_1(glval) = FunctionAddress[String] : -#-----| v0_2(void) = Call[String] : func:r0_1, this:r1290_4 -#-----| m0_3(unknown) = ^CallSideEffect : ~m1289_9 -#-----| m0_4(unknown) = Chi : total:m1289_9, partial:m0_3 -#-----| m0_5(String) = ^IndirectMayWriteSideEffect[-1] : &:r1290_4 +#-----| v0_2(void) = Call[String] : func:r0_1, this:r1292_4 +#-----| m0_3(unknown) = ^CallSideEffect : ~m1291_9 +#-----| m0_4(unknown) = Chi : total:m1291_9, partial:m0_3 +#-----| m0_5(String) = ^IndirectMayWriteSideEffect[-1] : &:r1292_4 #-----| m0_6(unknown) = Chi : total:m0_4, partial:m0_5 -# 1290| r1290_5(bool) = Constant[1] : -# 1290| m1290_6(bool) = Store[a#init] : &:r1290_1, r1290_5 -# 1290| m1290_7(unknown) = Chi : total:m0_6, partial:m1290_6 +# 1292| r1292_5(bool) = Constant[1] : +# 1292| m1292_6(bool) = Store[a#init] : &:r1292_1, r1292_5 +# 1292| m1292_7(unknown) = Chi : total:m0_6, partial:m1292_6 #-----| Goto -> Block 2 -# 1291| Block 2 -# 1291| m1291_1(unknown) = Phi : from 0:~m1289_9, from 1:~m1290_7 -# 1291| r1291_2(glval) = VariableAddress[b#init] : -# 1291| r1291_3(bool) = Load[b#init] : &:r1291_2, ~m1291_1 -# 1291| v1291_4(void) = ConditionalBranch : r1291_3 +# 1293| Block 2 +# 1293| m1293_1(unknown) = Phi : from 0:~m1291_9, from 1:~m1292_7 +# 1293| r1293_2(glval) = VariableAddress[b#init] : +# 1293| r1293_3(bool) = Load[b#init] : &:r1293_2, ~m1293_1 +# 1293| v1293_4(void) = ConditionalBranch : r1293_3 #-----| False -> Block 3 #-----| True -> Block 4 -# 1291| Block 3 -# 1291| r1291_5(glval) = VariableAddress[b] : -# 1291| r1291_6(glval) = FunctionAddress[String] : -# 1291| r1291_7(glval) = StringConstant["static"] : -# 1291| r1291_8(char *) = Convert : r1291_7 -# 1291| v1291_9(void) = Call[String] : func:r1291_6, this:r1291_5, 0:r1291_8 -# 1291| m1291_10(unknown) = ^CallSideEffect : ~m1291_1 -# 1291| m1291_11(unknown) = Chi : total:m1291_1, partial:m1291_10 -# 1291| v1291_12(void) = ^BufferReadSideEffect[0] : &:r1291_8, ~m1289_3 -# 1291| m1291_13(String) = ^IndirectMayWriteSideEffect[-1] : &:r1291_5 -# 1291| m1291_14(unknown) = Chi : total:m1291_11, partial:m1291_13 -# 1291| r1291_15(bool) = Constant[1] : -# 1291| m1291_16(bool) = Store[b#init] : &:r1291_2, r1291_15 -# 1291| m1291_17(unknown) = Chi : total:m1291_14, partial:m1291_16 +# 1293| Block 3 +# 1293| r1293_5(glval) = VariableAddress[b] : +# 1293| r1293_6(glval) = FunctionAddress[String] : +# 1293| r1293_7(glval) = StringConstant["static"] : +# 1293| r1293_8(char *) = Convert : r1293_7 +# 1293| v1293_9(void) = Call[String] : func:r1293_6, this:r1293_5, 0:r1293_8 +# 1293| m1293_10(unknown) = ^CallSideEffect : ~m1293_1 +# 1293| m1293_11(unknown) = Chi : total:m1293_1, partial:m1293_10 +# 1293| v1293_12(void) = ^BufferReadSideEffect[0] : &:r1293_8, ~m1291_3 +# 1293| m1293_13(String) = ^IndirectMayWriteSideEffect[-1] : &:r1293_5 +# 1293| m1293_14(unknown) = Chi : total:m1293_11, partial:m1293_13 +# 1293| r1293_15(bool) = Constant[1] : +# 1293| m1293_16(bool) = Store[b#init] : &:r1293_2, r1293_15 +# 1293| m1293_17(unknown) = Chi : total:m1293_14, partial:m1293_16 #-----| Goto -> Block 4 -# 1292| Block 4 -# 1292| m1292_1(unknown) = Phi : from 2:~m1291_1, from 3:~m1291_17 -# 1292| r1292_2(glval) = VariableAddress[c#init] : -# 1292| r1292_3(bool) = Load[c#init] : &:r1292_2, ~m1292_1 -# 1292| v1292_4(void) = ConditionalBranch : r1292_3 +# 1294| Block 4 +# 1294| m1294_1(unknown) = Phi : from 2:~m1293_1, from 3:~m1293_17 +# 1294| r1294_2(glval) = VariableAddress[c#init] : +# 1294| r1294_3(bool) = Load[c#init] : &:r1294_2, ~m1294_1 +# 1294| v1294_4(void) = ConditionalBranch : r1294_3 #-----| False -> Block 5 #-----| True -> Block 6 -# 1292| Block 5 -# 1292| r1292_5(glval) = VariableAddress[c] : -# 1292| r1292_6(glval) = FunctionAddress[String] : -# 1292| r1292_7(glval) = VariableAddress[dynamic] : -# 1292| r1292_8(char *) = Load[dynamic] : &:r1292_7, m1289_6 -# 1292| v1292_9(void) = Call[String] : func:r1292_6, this:r1292_5, 0:r1292_8 -# 1292| m1292_10(unknown) = ^CallSideEffect : ~m1292_1 -# 1292| m1292_11(unknown) = Chi : total:m1292_1, partial:m1292_10 -# 1292| v1292_12(void) = ^BufferReadSideEffect[0] : &:r1292_8, ~m1292_11 -# 1292| m1292_13(String) = ^IndirectMayWriteSideEffect[-1] : &:r1292_5 -# 1292| m1292_14(unknown) = Chi : total:m1292_11, partial:m1292_13 -# 1292| r1292_15(bool) = Constant[1] : -# 1292| m1292_16(bool) = Store[c#init] : &:r1292_2, r1292_15 -# 1292| m1292_17(unknown) = Chi : total:m1292_14, partial:m1292_16 +# 1294| Block 5 +# 1294| r1294_5(glval) = VariableAddress[c] : +# 1294| r1294_6(glval) = FunctionAddress[String] : +# 1294| r1294_7(glval) = VariableAddress[dynamic] : +# 1294| r1294_8(char *) = Load[dynamic] : &:r1294_7, m1291_6 +# 1294| v1294_9(void) = Call[String] : func:r1294_6, this:r1294_5, 0:r1294_8 +# 1294| m1294_10(unknown) = ^CallSideEffect : ~m1294_1 +# 1294| m1294_11(unknown) = Chi : total:m1294_1, partial:m1294_10 +# 1294| v1294_12(void) = ^BufferReadSideEffect[0] : &:r1294_8, ~m1294_11 +# 1294| m1294_13(String) = ^IndirectMayWriteSideEffect[-1] : &:r1294_5 +# 1294| m1294_14(unknown) = Chi : total:m1294_11, partial:m1294_13 +# 1294| r1294_15(bool) = Constant[1] : +# 1294| m1294_16(bool) = Store[c#init] : &:r1294_2, r1294_15 +# 1294| m1294_17(unknown) = Chi : total:m1294_14, partial:m1294_16 #-----| Goto -> Block 6 -# 1293| Block 6 -# 1293| m1293_1(unknown) = Phi : from 4:~m1292_1, from 5:~m1292_17 -# 1293| v1293_2(void) = NoOp : -# 1289| v1289_10(void) = ReturnIndirection[dynamic] : &:r1289_7, ~m1293_1 -# 1289| v1289_11(void) = ReturnVoid : -# 1289| v1289_12(void) = AliasedUse : ~m1293_1 -# 1289| v1289_13(void) = ExitFunction : - -# 1300| void test_strings(char*, char*) -# 1300| Block 0 -# 1300| v1300_1(void) = EnterFunction : -# 1300| m1300_2(unknown) = AliasedDefinition : -# 1300| m1300_3(unknown) = InitializeNonLocal : -# 1300| m1300_4(unknown) = Chi : total:m1300_2, partial:m1300_3 -# 1300| r1300_5(glval) = VariableAddress[s1] : -# 1300| m1300_6(char *) = InitializeParameter[s1] : &:r1300_5 -# 1300| r1300_7(char *) = Load[s1] : &:r1300_5, m1300_6 -# 1300| m1300_8(unknown) = InitializeIndirection[s1] : &:r1300_7 -# 1300| m1300_9(unknown) = Chi : total:m1300_4, partial:m1300_8 -# 1300| r1300_10(glval) = VariableAddress[s2] : -# 1300| m1300_11(char *) = InitializeParameter[s2] : &:r1300_10 -# 1300| r1300_12(char *) = Load[s2] : &:r1300_10, m1300_11 -# 1300| m1300_13(unknown) = InitializeIndirection[s2] : &:r1300_12 -# 1300| m1300_14(unknown) = Chi : total:m1300_9, partial:m1300_13 -# 1301| r1301_1(glval) = VariableAddress[buffer] : -# 1301| m1301_2(char[1024]) = Uninitialized[buffer] : &:r1301_1 -# 1301| m1301_3(unknown) = Chi : total:m1300_14, partial:m1301_2 -# 1301| r1301_4(int) = Constant[0] : -# 1301| r1301_5(glval) = PointerAdd[1] : r1301_1, r1301_4 -# 1301| r1301_6(char) = Constant[0] : -# 1301| m1301_7(char) = Store[?] : &:r1301_5, r1301_6 -# 1301| m1301_8(unknown) = Chi : total:m1301_3, partial:m1301_7 -# 1301| r1301_9(int) = Constant[1] : -# 1301| r1301_10(glval) = PointerAdd[1] : r1301_1, r1301_9 -# 1301| r1301_11(unknown[1023]) = Constant[0] : -# 1301| m1301_12(unknown[1023]) = Store[?] : &:r1301_10, r1301_11 -# 1301| m1301_13(unknown) = Chi : total:m1301_8, partial:m1301_12 -# 1303| r1303_1(glval) = FunctionAddress[strcpy] : -# 1303| r1303_2(glval) = VariableAddress[buffer] : -# 1303| r1303_3(char *) = Convert : r1303_2 -# 1303| r1303_4(glval) = VariableAddress[s1] : -# 1303| r1303_5(char *) = Load[s1] : &:r1303_4, m1300_6 -# 1303| r1303_6(char *) = Convert : r1303_5 -# 1303| r1303_7(char *) = Call[strcpy] : func:r1303_1, 0:r1303_3, 1:r1303_6 -# 1303| v1303_8(void) = ^BufferReadSideEffect[1] : &:r1303_6, ~m1300_8 -# 1303| m1303_9(unknown) = ^BufferMayWriteSideEffect[0] : &:r1303_3 -# 1303| m1303_10(unknown) = Chi : total:m1301_13, partial:m1303_9 -# 1304| r1304_1(glval) = FunctionAddress[strcat] : -# 1304| r1304_2(glval) = VariableAddress[buffer] : -# 1304| r1304_3(char *) = Convert : r1304_2 -# 1304| r1304_4(glval) = VariableAddress[s2] : -# 1304| r1304_5(char *) = Load[s2] : &:r1304_4, m1300_11 -# 1304| r1304_6(char *) = Convert : r1304_5 -# 1304| r1304_7(char *) = Call[strcat] : func:r1304_1, 0:r1304_3, 1:r1304_6 -# 1304| v1304_8(void) = ^BufferReadSideEffect[0] : &:r1304_3, ~m1303_10 -# 1304| v1304_9(void) = ^BufferReadSideEffect[1] : &:r1304_6, ~m1300_13 -# 1304| m1304_10(unknown) = ^BufferMayWriteSideEffect[0] : &:r1304_3 -# 1304| m1304_11(unknown) = Chi : total:m1303_10, partial:m1304_10 -# 1305| v1305_1(void) = NoOp : -# 1300| v1300_15(void) = ReturnIndirection[s1] : &:r1300_7, ~m1304_11 -# 1300| v1300_16(void) = ReturnIndirection[s2] : &:r1300_12, ~m1304_11 -# 1300| v1300_17(void) = ReturnVoid : -# 1300| v1300_18(void) = AliasedUse : ~m1300_14 -# 1300| v1300_19(void) = ExitFunction : - -# 1310| void A::static_member(A*, int) -# 1310| Block 0 -# 1310| v1310_1(void) = EnterFunction : -# 1310| m1310_2(unknown) = AliasedDefinition : -# 1310| m1310_3(unknown) = InitializeNonLocal : -# 1310| m1310_4(unknown) = Chi : total:m1310_2, partial:m1310_3 -# 1310| r1310_5(glval) = VariableAddress[a] : -# 1310| m1310_6(A *) = InitializeParameter[a] : &:r1310_5 -# 1310| r1310_7(A *) = Load[a] : &:r1310_5, m1310_6 -# 1310| m1310_8(unknown) = InitializeIndirection[a] : &:r1310_7 -# 1310| r1310_9(glval) = VariableAddress[x] : -# 1310| m1310_10(int) = InitializeParameter[x] : &:r1310_9 -# 1311| r1311_1(glval) = VariableAddress[x] : -# 1311| r1311_2(int) = Load[x] : &:r1311_1, m1310_10 -# 1311| r1311_3(glval) = VariableAddress[a] : -# 1311| r1311_4(A *) = Load[a] : &:r1311_3, m1310_6 -# 1311| r1311_5(glval) = FieldAddress[member] : r1311_4 -# 1311| m1311_6(int) = Store[?] : &:r1311_5, r1311_2 -# 1311| m1311_7(unknown) = Chi : total:m1310_8, partial:m1311_6 -# 1312| v1312_1(void) = NoOp : -# 1310| v1310_11(void) = ReturnIndirection[a] : &:r1310_7, m1311_7 -# 1310| v1310_12(void) = ReturnVoid : -# 1310| v1310_13(void) = AliasedUse : m1310_3 -# 1310| v1310_14(void) = ExitFunction : - -# 1319| void test_static_member_functions(int, A*) -# 1319| Block 0 -# 1319| v1319_1(void) = EnterFunction : -# 1319| m1319_2(unknown) = AliasedDefinition : -# 1319| m1319_3(unknown) = InitializeNonLocal : -# 1319| m1319_4(unknown) = Chi : total:m1319_2, partial:m1319_3 -# 1319| r1319_5(glval) = VariableAddress[int_arg] : -# 1319| m1319_6(int) = InitializeParameter[int_arg] : &:r1319_5 -# 1319| r1319_7(glval) = VariableAddress[a_arg] : -# 1319| m1319_8(A *) = InitializeParameter[a_arg] : &:r1319_7 -# 1319| r1319_9(A *) = Load[a_arg] : &:r1319_7, m1319_8 -# 1319| m1319_10(unknown) = InitializeIndirection[a_arg] : &:r1319_9 -# 1320| r1320_1(glval) = VariableAddress[c] : -# 1320| m1320_2(C) = Uninitialized[c] : &:r1320_1 -# 1320| m1320_3(unknown) = Chi : total:m1319_4, partial:m1320_2 -# 1320| r1320_4(glval) = FunctionAddress[C] : -# 1320| v1320_5(void) = Call[C] : func:r1320_4, this:r1320_1 -# 1320| m1320_6(unknown) = ^CallSideEffect : ~m1320_3 -# 1320| m1320_7(unknown) = Chi : total:m1320_3, partial:m1320_6 -# 1320| m1320_8(C) = ^IndirectMayWriteSideEffect[-1] : &:r1320_1 -# 1320| m1320_9(unknown) = Chi : total:m1320_7, partial:m1320_8 -# 1321| r1321_1(glval) = VariableAddress[c] : -# 1321| r1321_2(glval) = FunctionAddress[StaticMemberFunction] : -# 1321| r1321_3(int) = Constant[10] : -# 1321| r1321_4(int) = Call[StaticMemberFunction] : func:r1321_2, 0:r1321_3 -# 1321| m1321_5(unknown) = ^CallSideEffect : ~m1320_9 -# 1321| m1321_6(unknown) = Chi : total:m1320_9, partial:m1321_5 -# 1322| r1322_1(glval) = FunctionAddress[StaticMemberFunction] : -# 1322| r1322_2(int) = Constant[10] : -# 1322| r1322_3(int) = Call[StaticMemberFunction] : func:r1322_1, 0:r1322_2 -# 1322| m1322_4(unknown) = ^CallSideEffect : ~m1321_6 -# 1322| m1322_5(unknown) = Chi : total:m1321_6, partial:m1322_4 -# 1324| r1324_1(glval) = VariableAddress[a] : -# 1324| m1324_2(A) = Uninitialized[a] : &:r1324_1 -# 1325| r1325_1(glval) = VariableAddress[a] : -# 1325| r1325_2(glval) = FunctionAddress[static_member] : -# 1325| r1325_3(glval) = VariableAddress[a] : -# 1325| r1325_4(A *) = CopyValue : r1325_3 -# 1325| r1325_5(glval) = VariableAddress[int_arg] : -# 1325| r1325_6(int) = Load[int_arg] : &:r1325_5, m1319_6 -# 1325| v1325_7(void) = Call[static_member] : func:r1325_2, 0:r1325_4, 1:r1325_6 -# 1325| m1325_8(unknown) = ^CallSideEffect : ~m1322_5 -# 1325| m1325_9(unknown) = Chi : total:m1322_5, partial:m1325_8 -# 1325| v1325_10(void) = ^BufferReadSideEffect[0] : &:r1325_4, ~m1324_2 -# 1325| m1325_11(unknown) = ^BufferMayWriteSideEffect[0] : &:r1325_4 -# 1325| m1325_12(A) = Chi : total:m1324_2, partial:m1325_11 -# 1326| r1326_1(glval) = FunctionAddress[static_member] : -# 1326| r1326_2(glval) = VariableAddress[a] : -# 1326| r1326_3(A *) = CopyValue : r1326_2 -# 1326| r1326_4(glval) = VariableAddress[int_arg] : -# 1326| r1326_5(int) = Load[int_arg] : &:r1326_4, m1319_6 -# 1326| v1326_6(void) = Call[static_member] : func:r1326_1, 0:r1326_3, 1:r1326_5 -# 1326| m1326_7(unknown) = ^CallSideEffect : ~m1325_9 -# 1326| m1326_8(unknown) = Chi : total:m1325_9, partial:m1326_7 -# 1326| v1326_9(void) = ^BufferReadSideEffect[0] : &:r1326_3, ~m1325_12 -# 1326| m1326_10(unknown) = ^BufferMayWriteSideEffect[0] : &:r1326_3 -# 1326| m1326_11(A) = Chi : total:m1325_12, partial:m1326_10 -# 1328| r1328_1(glval) = VariableAddress[a] : -# 1328| r1328_2(A *) = CopyValue : r1328_1 -# 1328| r1328_3(glval) = FunctionAddress[static_member] : -# 1328| r1328_4(glval) = VariableAddress[a_arg] : -# 1328| r1328_5(A *) = Load[a_arg] : &:r1328_4, m1319_8 -# 1328| r1328_6(glval) = VariableAddress[int_arg] : -# 1328| r1328_7(int) = Load[int_arg] : &:r1328_6, m1319_6 -# 1328| r1328_8(int) = Constant[2] : -# 1328| r1328_9(int) = Add : r1328_7, r1328_8 -# 1328| v1328_10(void) = Call[static_member] : func:r1328_3, 0:r1328_5, 1:r1328_9 -# 1328| m1328_11(unknown) = ^CallSideEffect : ~m1326_8 -# 1328| m1328_12(unknown) = Chi : total:m1326_8, partial:m1328_11 -# 1328| v1328_13(void) = ^BufferReadSideEffect[0] : &:r1328_5, ~m1319_10 -# 1328| m1328_14(unknown) = ^BufferMayWriteSideEffect[0] : &:r1328_5 -# 1328| m1328_15(unknown) = Chi : total:m1319_10, partial:m1328_14 -# 1329| r1329_1(glval) = VariableAddress[a_arg] : -# 1329| r1329_2(A *) = Load[a_arg] : &:r1329_1, m1319_8 -# 1329| r1329_3(glval) = CopyValue : r1329_2 -# 1329| r1329_4(glval) = FunctionAddress[static_member] : -# 1329| r1329_5(glval) = VariableAddress[a] : -# 1329| r1329_6(A *) = CopyValue : r1329_5 -# 1329| r1329_7(int) = Constant[99] : -# 1329| v1329_8(void) = Call[static_member] : func:r1329_4, 0:r1329_6, 1:r1329_7 -# 1329| m1329_9(unknown) = ^CallSideEffect : ~m1328_12 -# 1329| m1329_10(unknown) = Chi : total:m1328_12, partial:m1329_9 -# 1329| v1329_11(void) = ^BufferReadSideEffect[0] : &:r1329_6, ~m1326_11 -# 1329| m1329_12(unknown) = ^BufferMayWriteSideEffect[0] : &:r1329_6 -# 1329| m1329_13(A) = Chi : total:m1326_11, partial:m1329_12 -# 1330| r1330_1(glval) = VariableAddress[a_arg] : -# 1330| r1330_2(A *) = Load[a_arg] : &:r1330_1, m1319_8 +# 1295| Block 6 +# 1295| m1295_1(unknown) = Phi : from 4:~m1294_1, from 5:~m1294_17 +# 1295| v1295_2(void) = NoOp : +# 1291| v1291_10(void) = ReturnIndirection[dynamic] : &:r1291_7, ~m1295_1 +# 1291| v1291_11(void) = ReturnVoid : +# 1291| v1291_12(void) = AliasedUse : ~m1295_1 +# 1291| v1291_13(void) = ExitFunction : + +# 1302| void test_strings(char*, char*) +# 1302| Block 0 +# 1302| v1302_1(void) = EnterFunction : +# 1302| m1302_2(unknown) = AliasedDefinition : +# 1302| m1302_3(unknown) = InitializeNonLocal : +# 1302| m1302_4(unknown) = Chi : total:m1302_2, partial:m1302_3 +# 1302| r1302_5(glval) = VariableAddress[s1] : +# 1302| m1302_6(char *) = InitializeParameter[s1] : &:r1302_5 +# 1302| r1302_7(char *) = Load[s1] : &:r1302_5, m1302_6 +# 1302| m1302_8(unknown) = InitializeIndirection[s1] : &:r1302_7 +# 1302| m1302_9(unknown) = Chi : total:m1302_4, partial:m1302_8 +# 1302| r1302_10(glval) = VariableAddress[s2] : +# 1302| m1302_11(char *) = InitializeParameter[s2] : &:r1302_10 +# 1302| r1302_12(char *) = Load[s2] : &:r1302_10, m1302_11 +# 1302| m1302_13(unknown) = InitializeIndirection[s2] : &:r1302_12 +# 1302| m1302_14(unknown) = Chi : total:m1302_9, partial:m1302_13 +# 1303| r1303_1(glval) = VariableAddress[buffer] : +# 1303| m1303_2(char[1024]) = Uninitialized[buffer] : &:r1303_1 +# 1303| m1303_3(unknown) = Chi : total:m1302_14, partial:m1303_2 +# 1303| r1303_4(int) = Constant[0] : +# 1303| r1303_5(glval) = PointerAdd[1] : r1303_1, r1303_4 +# 1303| r1303_6(char) = Constant[0] : +# 1303| m1303_7(char) = Store[?] : &:r1303_5, r1303_6 +# 1303| m1303_8(unknown) = Chi : total:m1303_3, partial:m1303_7 +# 1303| r1303_9(int) = Constant[1] : +# 1303| r1303_10(glval) = PointerAdd[1] : r1303_1, r1303_9 +# 1303| r1303_11(unknown[1023]) = Constant[0] : +# 1303| m1303_12(unknown[1023]) = Store[?] : &:r1303_10, r1303_11 +# 1303| m1303_13(unknown) = Chi : total:m1303_8, partial:m1303_12 +# 1305| r1305_1(glval) = FunctionAddress[strcpy] : +# 1305| r1305_2(glval) = VariableAddress[buffer] : +# 1305| r1305_3(char *) = Convert : r1305_2 +# 1305| r1305_4(glval) = VariableAddress[s1] : +# 1305| r1305_5(char *) = Load[s1] : &:r1305_4, m1302_6 +# 1305| r1305_6(char *) = Convert : r1305_5 +# 1305| r1305_7(char *) = Call[strcpy] : func:r1305_1, 0:r1305_3, 1:r1305_6 +# 1305| v1305_8(void) = ^BufferReadSideEffect[1] : &:r1305_6, ~m1302_8 +# 1305| m1305_9(unknown) = ^BufferMayWriteSideEffect[0] : &:r1305_3 +# 1305| m1305_10(unknown) = Chi : total:m1303_13, partial:m1305_9 +# 1306| r1306_1(glval) = FunctionAddress[strcat] : +# 1306| r1306_2(glval) = VariableAddress[buffer] : +# 1306| r1306_3(char *) = Convert : r1306_2 +# 1306| r1306_4(glval) = VariableAddress[s2] : +# 1306| r1306_5(char *) = Load[s2] : &:r1306_4, m1302_11 +# 1306| r1306_6(char *) = Convert : r1306_5 +# 1306| r1306_7(char *) = Call[strcat] : func:r1306_1, 0:r1306_3, 1:r1306_6 +# 1306| v1306_8(void) = ^BufferReadSideEffect[0] : &:r1306_3, ~m1305_10 +# 1306| v1306_9(void) = ^BufferReadSideEffect[1] : &:r1306_6, ~m1302_13 +# 1306| m1306_10(unknown) = ^BufferMayWriteSideEffect[0] : &:r1306_3 +# 1306| m1306_11(unknown) = Chi : total:m1305_10, partial:m1306_10 +# 1307| v1307_1(void) = NoOp : +# 1302| v1302_15(void) = ReturnIndirection[s1] : &:r1302_7, ~m1306_11 +# 1302| v1302_16(void) = ReturnIndirection[s2] : &:r1302_12, ~m1306_11 +# 1302| v1302_17(void) = ReturnVoid : +# 1302| v1302_18(void) = AliasedUse : ~m1302_14 +# 1302| v1302_19(void) = ExitFunction : + +# 1312| void A::static_member(A*, int) +# 1312| Block 0 +# 1312| v1312_1(void) = EnterFunction : +# 1312| m1312_2(unknown) = AliasedDefinition : +# 1312| m1312_3(unknown) = InitializeNonLocal : +# 1312| m1312_4(unknown) = Chi : total:m1312_2, partial:m1312_3 +# 1312| r1312_5(glval) = VariableAddress[a] : +# 1312| m1312_6(A *) = InitializeParameter[a] : &:r1312_5 +# 1312| r1312_7(A *) = Load[a] : &:r1312_5, m1312_6 +# 1312| m1312_8(unknown) = InitializeIndirection[a] : &:r1312_7 +# 1312| r1312_9(glval) = VariableAddress[x] : +# 1312| m1312_10(int) = InitializeParameter[x] : &:r1312_9 +# 1313| r1313_1(glval) = VariableAddress[x] : +# 1313| r1313_2(int) = Load[x] : &:r1313_1, m1312_10 +# 1313| r1313_3(glval) = VariableAddress[a] : +# 1313| r1313_4(A *) = Load[a] : &:r1313_3, m1312_6 +# 1313| r1313_5(glval) = FieldAddress[member] : r1313_4 +# 1313| m1313_6(int) = Store[?] : &:r1313_5, r1313_2 +# 1313| m1313_7(unknown) = Chi : total:m1312_8, partial:m1313_6 +# 1314| v1314_1(void) = NoOp : +# 1312| v1312_11(void) = ReturnIndirection[a] : &:r1312_7, m1313_7 +# 1312| v1312_12(void) = ReturnVoid : +# 1312| v1312_13(void) = AliasedUse : m1312_3 +# 1312| v1312_14(void) = ExitFunction : + +# 1321| void test_static_member_functions(int, A*) +# 1321| Block 0 +# 1321| v1321_1(void) = EnterFunction : +# 1321| m1321_2(unknown) = AliasedDefinition : +# 1321| m1321_3(unknown) = InitializeNonLocal : +# 1321| m1321_4(unknown) = Chi : total:m1321_2, partial:m1321_3 +# 1321| r1321_5(glval) = VariableAddress[int_arg] : +# 1321| m1321_6(int) = InitializeParameter[int_arg] : &:r1321_5 +# 1321| r1321_7(glval) = VariableAddress[a_arg] : +# 1321| m1321_8(A *) = InitializeParameter[a_arg] : &:r1321_7 +# 1321| r1321_9(A *) = Load[a_arg] : &:r1321_7, m1321_8 +# 1321| m1321_10(unknown) = InitializeIndirection[a_arg] : &:r1321_9 +# 1322| r1322_1(glval) = VariableAddress[c] : +# 1322| m1322_2(C) = Uninitialized[c] : &:r1322_1 +# 1322| m1322_3(unknown) = Chi : total:m1321_4, partial:m1322_2 +# 1322| r1322_4(glval) = FunctionAddress[C] : +# 1322| v1322_5(void) = Call[C] : func:r1322_4, this:r1322_1 +# 1322| m1322_6(unknown) = ^CallSideEffect : ~m1322_3 +# 1322| m1322_7(unknown) = Chi : total:m1322_3, partial:m1322_6 +# 1322| m1322_8(C) = ^IndirectMayWriteSideEffect[-1] : &:r1322_1 +# 1322| m1322_9(unknown) = Chi : total:m1322_7, partial:m1322_8 +# 1323| r1323_1(glval) = VariableAddress[c] : +# 1323| r1323_2(glval) = FunctionAddress[StaticMemberFunction] : +# 1323| r1323_3(int) = Constant[10] : +# 1323| r1323_4(int) = Call[StaticMemberFunction] : func:r1323_2, 0:r1323_3 +# 1323| m1323_5(unknown) = ^CallSideEffect : ~m1322_9 +# 1323| m1323_6(unknown) = Chi : total:m1322_9, partial:m1323_5 +# 1324| r1324_1(glval) = FunctionAddress[StaticMemberFunction] : +# 1324| r1324_2(int) = Constant[10] : +# 1324| r1324_3(int) = Call[StaticMemberFunction] : func:r1324_1, 0:r1324_2 +# 1324| m1324_4(unknown) = ^CallSideEffect : ~m1323_6 +# 1324| m1324_5(unknown) = Chi : total:m1323_6, partial:m1324_4 +# 1326| r1326_1(glval) = VariableAddress[a] : +# 1326| m1326_2(A) = Uninitialized[a] : &:r1326_1 +# 1327| r1327_1(glval) = VariableAddress[a] : +# 1327| r1327_2(glval) = FunctionAddress[static_member] : +# 1327| r1327_3(glval) = VariableAddress[a] : +# 1327| r1327_4(A *) = CopyValue : r1327_3 +# 1327| r1327_5(glval) = VariableAddress[int_arg] : +# 1327| r1327_6(int) = Load[int_arg] : &:r1327_5, m1321_6 +# 1327| v1327_7(void) = Call[static_member] : func:r1327_2, 0:r1327_4, 1:r1327_6 +# 1327| m1327_8(unknown) = ^CallSideEffect : ~m1324_5 +# 1327| m1327_9(unknown) = Chi : total:m1324_5, partial:m1327_8 +# 1327| v1327_10(void) = ^BufferReadSideEffect[0] : &:r1327_4, ~m1326_2 +# 1327| m1327_11(unknown) = ^BufferMayWriteSideEffect[0] : &:r1327_4 +# 1327| m1327_12(A) = Chi : total:m1326_2, partial:m1327_11 +# 1328| r1328_1(glval) = FunctionAddress[static_member] : +# 1328| r1328_2(glval) = VariableAddress[a] : +# 1328| r1328_3(A *) = CopyValue : r1328_2 +# 1328| r1328_4(glval) = VariableAddress[int_arg] : +# 1328| r1328_5(int) = Load[int_arg] : &:r1328_4, m1321_6 +# 1328| v1328_6(void) = Call[static_member] : func:r1328_1, 0:r1328_3, 1:r1328_5 +# 1328| m1328_7(unknown) = ^CallSideEffect : ~m1327_9 +# 1328| m1328_8(unknown) = Chi : total:m1327_9, partial:m1328_7 +# 1328| v1328_9(void) = ^BufferReadSideEffect[0] : &:r1328_3, ~m1327_12 +# 1328| m1328_10(unknown) = ^BufferMayWriteSideEffect[0] : &:r1328_3 +# 1328| m1328_11(A) = Chi : total:m1327_12, partial:m1328_10 +# 1330| r1330_1(glval) = VariableAddress[a] : +# 1330| r1330_2(A *) = CopyValue : r1330_1 # 1330| r1330_3(glval) = FunctionAddress[static_member] : # 1330| r1330_4(glval) = VariableAddress[a_arg] : -# 1330| r1330_5(A *) = Load[a_arg] : &:r1330_4, m1319_8 -# 1330| r1330_6(int) = Constant[-1] : -# 1330| v1330_7(void) = Call[static_member] : func:r1330_3, 0:r1330_5, 1:r1330_6 -# 1330| m1330_8(unknown) = ^CallSideEffect : ~m1329_10 -# 1330| m1330_9(unknown) = Chi : total:m1329_10, partial:m1330_8 -# 1330| v1330_10(void) = ^BufferReadSideEffect[0] : &:r1330_5, ~m1328_15 -# 1330| m1330_11(unknown) = ^BufferMayWriteSideEffect[0] : &:r1330_5 -# 1330| m1330_12(unknown) = Chi : total:m1328_15, partial:m1330_11 -# 1332| r1332_1(glval) = VariableAddress[a] : -# 1332| r1332_2(glval) = FunctionAddress[static_member_without_def] : -# 1332| v1332_3(void) = Call[static_member_without_def] : func:r1332_2 -# 1332| m1332_4(unknown) = ^CallSideEffect : ~m1330_9 -# 1332| m1332_5(unknown) = Chi : total:m1330_9, partial:m1332_4 -# 1333| r1333_1(glval) = FunctionAddress[static_member_without_def] : -# 1333| v1333_2(void) = Call[static_member_without_def] : func:r1333_1 -# 1333| m1333_3(unknown) = ^CallSideEffect : ~m1332_5 -# 1333| m1333_4(unknown) = Chi : total:m1332_5, partial:m1333_3 -# 1335| r1335_1(glval) = FunctionAddress[getAnInstanceOfA] : -# 1335| r1335_2(A *) = Call[getAnInstanceOfA] : func:r1335_1 -# 1335| m1335_3(unknown) = ^CallSideEffect : ~m1333_4 -# 1335| m1335_4(unknown) = Chi : total:m1333_4, partial:m1335_3 -# 1335| r1335_5(glval) = FunctionAddress[static_member_without_def] : -# 1335| v1335_6(void) = Call[static_member_without_def] : func:r1335_5 -# 1335| m1335_7(unknown) = ^CallSideEffect : ~m1335_4 -# 1335| m1335_8(unknown) = Chi : total:m1335_4, partial:m1335_7 -# 1336| v1336_1(void) = NoOp : -# 1336| r1336_2(glval) = VariableAddress[c] : -# 1336| r1336_3(glval) = FunctionAddress[~C] : -# 1336| v1336_4(void) = Call[~C] : func:r1336_3, this:r1336_2 -# 1336| m1336_5(unknown) = ^CallSideEffect : ~m1335_8 -# 1336| m1336_6(unknown) = Chi : total:m1335_8, partial:m1336_5 -# 1336| v1336_7(void) = ^IndirectReadSideEffect[-1] : &:r1336_2, ~m1336_6 -# 1336| m1336_8(C) = ^IndirectMayWriteSideEffect[-1] : &:r1336_2 -# 1336| m1336_9(unknown) = Chi : total:m1336_6, partial:m1336_8 -# 1319| v1319_11(void) = ReturnIndirection[a_arg] : &:r1319_9, m1330_12 -# 1319| v1319_12(void) = ReturnVoid : -# 1319| v1319_13(void) = AliasedUse : ~m1336_6 -# 1319| v1319_14(void) = ExitFunction : - -# 1338| int missingReturnValue(bool, int) -# 1338| Block 0 -# 1338| v1338_1(void) = EnterFunction : -# 1338| m1338_2(unknown) = AliasedDefinition : -# 1338| m1338_3(unknown) = InitializeNonLocal : -# 1338| m1338_4(unknown) = Chi : total:m1338_2, partial:m1338_3 -# 1338| r1338_5(glval) = VariableAddress[b] : -# 1338| m1338_6(bool) = InitializeParameter[b] : &:r1338_5 -# 1338| r1338_7(glval) = VariableAddress[x] : -# 1338| m1338_8(int) = InitializeParameter[x] : &:r1338_7 -# 1339| r1339_1(glval) = VariableAddress[b] : -# 1339| r1339_2(bool) = Load[b] : &:r1339_1, m1338_6 -# 1339| v1339_3(void) = ConditionalBranch : r1339_2 +# 1330| r1330_5(A *) = Load[a_arg] : &:r1330_4, m1321_8 +# 1330| r1330_6(glval) = VariableAddress[int_arg] : +# 1330| r1330_7(int) = Load[int_arg] : &:r1330_6, m1321_6 +# 1330| r1330_8(int) = Constant[2] : +# 1330| r1330_9(int) = Add : r1330_7, r1330_8 +# 1330| v1330_10(void) = Call[static_member] : func:r1330_3, 0:r1330_5, 1:r1330_9 +# 1330| m1330_11(unknown) = ^CallSideEffect : ~m1328_8 +# 1330| m1330_12(unknown) = Chi : total:m1328_8, partial:m1330_11 +# 1330| v1330_13(void) = ^BufferReadSideEffect[0] : &:r1330_5, ~m1321_10 +# 1330| m1330_14(unknown) = ^BufferMayWriteSideEffect[0] : &:r1330_5 +# 1330| m1330_15(unknown) = Chi : total:m1321_10, partial:m1330_14 +# 1331| r1331_1(glval) = VariableAddress[a_arg] : +# 1331| r1331_2(A *) = Load[a_arg] : &:r1331_1, m1321_8 +# 1331| r1331_3(glval) = CopyValue : r1331_2 +# 1331| r1331_4(glval) = FunctionAddress[static_member] : +# 1331| r1331_5(glval) = VariableAddress[a] : +# 1331| r1331_6(A *) = CopyValue : r1331_5 +# 1331| r1331_7(int) = Constant[99] : +# 1331| v1331_8(void) = Call[static_member] : func:r1331_4, 0:r1331_6, 1:r1331_7 +# 1331| m1331_9(unknown) = ^CallSideEffect : ~m1330_12 +# 1331| m1331_10(unknown) = Chi : total:m1330_12, partial:m1331_9 +# 1331| v1331_11(void) = ^BufferReadSideEffect[0] : &:r1331_6, ~m1328_11 +# 1331| m1331_12(unknown) = ^BufferMayWriteSideEffect[0] : &:r1331_6 +# 1331| m1331_13(A) = Chi : total:m1328_11, partial:m1331_12 +# 1332| r1332_1(glval) = VariableAddress[a_arg] : +# 1332| r1332_2(A *) = Load[a_arg] : &:r1332_1, m1321_8 +# 1332| r1332_3(glval) = FunctionAddress[static_member] : +# 1332| r1332_4(glval) = VariableAddress[a_arg] : +# 1332| r1332_5(A *) = Load[a_arg] : &:r1332_4, m1321_8 +# 1332| r1332_6(int) = Constant[-1] : +# 1332| v1332_7(void) = Call[static_member] : func:r1332_3, 0:r1332_5, 1:r1332_6 +# 1332| m1332_8(unknown) = ^CallSideEffect : ~m1331_10 +# 1332| m1332_9(unknown) = Chi : total:m1331_10, partial:m1332_8 +# 1332| v1332_10(void) = ^BufferReadSideEffect[0] : &:r1332_5, ~m1330_15 +# 1332| m1332_11(unknown) = ^BufferMayWriteSideEffect[0] : &:r1332_5 +# 1332| m1332_12(unknown) = Chi : total:m1330_15, partial:m1332_11 +# 1334| r1334_1(glval) = VariableAddress[a] : +# 1334| r1334_2(glval) = FunctionAddress[static_member_without_def] : +# 1334| v1334_3(void) = Call[static_member_without_def] : func:r1334_2 +# 1334| m1334_4(unknown) = ^CallSideEffect : ~m1332_9 +# 1334| m1334_5(unknown) = Chi : total:m1332_9, partial:m1334_4 +# 1335| r1335_1(glval) = FunctionAddress[static_member_without_def] : +# 1335| v1335_2(void) = Call[static_member_without_def] : func:r1335_1 +# 1335| m1335_3(unknown) = ^CallSideEffect : ~m1334_5 +# 1335| m1335_4(unknown) = Chi : total:m1334_5, partial:m1335_3 +# 1337| r1337_1(glval) = FunctionAddress[getAnInstanceOfA] : +# 1337| r1337_2(A *) = Call[getAnInstanceOfA] : func:r1337_1 +# 1337| m1337_3(unknown) = ^CallSideEffect : ~m1335_4 +# 1337| m1337_4(unknown) = Chi : total:m1335_4, partial:m1337_3 +# 1337| r1337_5(glval) = FunctionAddress[static_member_without_def] : +# 1337| v1337_6(void) = Call[static_member_without_def] : func:r1337_5 +# 1337| m1337_7(unknown) = ^CallSideEffect : ~m1337_4 +# 1337| m1337_8(unknown) = Chi : total:m1337_4, partial:m1337_7 +# 1338| v1338_1(void) = NoOp : +# 1338| r1338_2(glval) = VariableAddress[c] : +# 1338| r1338_3(glval) = FunctionAddress[~C] : +# 1338| v1338_4(void) = Call[~C] : func:r1338_3, this:r1338_2 +# 1338| m1338_5(unknown) = ^CallSideEffect : ~m1337_8 +# 1338| m1338_6(unknown) = Chi : total:m1337_8, partial:m1338_5 +# 1338| v1338_7(void) = ^IndirectReadSideEffect[-1] : &:r1338_2, ~m1338_6 +# 1338| m1338_8(C) = ^IndirectMayWriteSideEffect[-1] : &:r1338_2 +# 1338| m1338_9(unknown) = Chi : total:m1338_6, partial:m1338_8 +# 1321| v1321_11(void) = ReturnIndirection[a_arg] : &:r1321_9, m1332_12 +# 1321| v1321_12(void) = ReturnVoid : +# 1321| v1321_13(void) = AliasedUse : ~m1338_6 +# 1321| v1321_14(void) = ExitFunction : + +# 1340| int missingReturnValue(bool, int) +# 1340| Block 0 +# 1340| v1340_1(void) = EnterFunction : +# 1340| m1340_2(unknown) = AliasedDefinition : +# 1340| m1340_3(unknown) = InitializeNonLocal : +# 1340| m1340_4(unknown) = Chi : total:m1340_2, partial:m1340_3 +# 1340| r1340_5(glval) = VariableAddress[b] : +# 1340| m1340_6(bool) = InitializeParameter[b] : &:r1340_5 +# 1340| r1340_7(glval) = VariableAddress[x] : +# 1340| m1340_8(int) = InitializeParameter[x] : &:r1340_7 +# 1341| r1341_1(glval) = VariableAddress[b] : +# 1341| r1341_2(bool) = Load[b] : &:r1341_1, m1340_6 +# 1341| v1341_3(void) = ConditionalBranch : r1341_2 #-----| False -> Block 3 #-----| True -> Block 2 -# 1338| Block 1 -# 1338| m1338_9(int) = Phi : from 2:m1340_4, from 3:m1342_2 -# 1338| r1338_10(glval) = VariableAddress[#return] : -# 1338| v1338_11(void) = ReturnValue : &:r1338_10, m1338_9 -# 1338| v1338_12(void) = AliasedUse : m1338_3 -# 1338| v1338_13(void) = ExitFunction : - -# 1340| Block 2 -# 1340| r1340_1(glval) = VariableAddress[#return] : -# 1340| r1340_2(glval) = VariableAddress[x] : -# 1340| r1340_3(int) = Load[x] : &:r1340_2, m1338_8 -# 1340| m1340_4(int) = Store[#return] : &:r1340_1, r1340_3 -#-----| Goto -> Block 1 +# 1340| Block 1 +# 1340| m1340_9(int) = Phi : from 2:m1342_4, from 3:m1344_2 +# 1340| r1340_10(glval) = VariableAddress[#return] : +# 1340| v1340_11(void) = ReturnValue : &:r1340_10, m1340_9 +# 1340| v1340_12(void) = AliasedUse : m1340_3 +# 1340| v1340_13(void) = ExitFunction : -# 1342| Block 3 +# 1342| Block 2 # 1342| r1342_1(glval) = VariableAddress[#return] : -# 1342| m1342_2(int) = Uninitialized[#return] : &:r1342_1 +# 1342| r1342_2(glval) = VariableAddress[x] : +# 1342| r1342_3(int) = Load[x] : &:r1342_2, m1340_8 +# 1342| m1342_4(int) = Store[#return] : &:r1342_1, r1342_3 #-----| Goto -> Block 1 -# 1344| void returnVoid(int, int) -# 1344| Block 0 -# 1344| v1344_1(void) = EnterFunction : -# 1344| m1344_2(unknown) = AliasedDefinition : -# 1344| m1344_3(unknown) = InitializeNonLocal : -# 1344| m1344_4(unknown) = Chi : total:m1344_2, partial:m1344_3 -# 1344| r1344_5(glval) = VariableAddress[x] : -# 1344| m1344_6(int) = InitializeParameter[x] : &:r1344_5 -# 1344| r1344_7(glval) = VariableAddress[y] : -# 1344| m1344_8(int) = InitializeParameter[y] : &:r1344_7 -# 1345| r1345_1(glval) = FunctionAddress[IntegerOps] : -# 1345| r1345_2(glval) = VariableAddress[x] : -# 1345| r1345_3(int) = Load[x] : &:r1345_2, m1344_6 -# 1345| r1345_4(glval) = VariableAddress[y] : -# 1345| r1345_5(int) = Load[y] : &:r1345_4, m1344_8 -# 1345| v1345_6(void) = Call[IntegerOps] : func:r1345_1, 0:r1345_3, 1:r1345_5 -# 1345| m1345_7(unknown) = ^CallSideEffect : ~m1344_4 -# 1345| m1345_8(unknown) = Chi : total:m1344_4, partial:m1345_7 -# 1345| v1345_9(void) = NoOp : -# 1344| v1344_9(void) = ReturnVoid : -# 1344| v1344_10(void) = AliasedUse : ~m1345_8 -# 1344| v1344_11(void) = ExitFunction : - -# 1348| void gccBinaryConditional(bool, int, long) -# 1348| Block 0 -# 1348| v1348_1(void) = EnterFunction : -# 1348| m1348_2(unknown) = AliasedDefinition : -# 1348| m1348_3(unknown) = InitializeNonLocal : -# 1348| m1348_4(unknown) = Chi : total:m1348_2, partial:m1348_3 -# 1348| r1348_5(glval) = VariableAddress[b] : -# 1348| m1348_6(bool) = InitializeParameter[b] : &:r1348_5 -# 1348| r1348_7(glval) = VariableAddress[x] : -# 1348| m1348_8(int) = InitializeParameter[x] : &:r1348_7 -# 1348| r1348_9(glval) = VariableAddress[y] : -# 1348| m1348_10(long) = InitializeParameter[y] : &:r1348_9 -# 1349| r1349_1(glval) = VariableAddress[z] : -# 1349| r1349_2(glval) = VariableAddress[x] : -# 1349| r1349_3(int) = Load[x] : &:r1349_2, m1348_8 -# 1349| m1349_4(int) = Store[z] : &:r1349_1, r1349_3 -# 1350| r1350_1(glval) = VariableAddress[b] : -# 1350| r1350_2(bool) = Load[b] : &:r1350_1, m1348_6 -# 1350| v1350_3(void) = ConditionalBranch : r1350_2 +# 1344| Block 3 +# 1344| r1344_1(glval) = VariableAddress[#return] : +# 1344| m1344_2(int) = Uninitialized[#return] : &:r1344_1 +#-----| Goto -> Block 1 + +# 1346| void returnVoid(int, int) +# 1346| Block 0 +# 1346| v1346_1(void) = EnterFunction : +# 1346| m1346_2(unknown) = AliasedDefinition : +# 1346| m1346_3(unknown) = InitializeNonLocal : +# 1346| m1346_4(unknown) = Chi : total:m1346_2, partial:m1346_3 +# 1346| r1346_5(glval) = VariableAddress[x] : +# 1346| m1346_6(int) = InitializeParameter[x] : &:r1346_5 +# 1346| r1346_7(glval) = VariableAddress[y] : +# 1346| m1346_8(int) = InitializeParameter[y] : &:r1346_7 +# 1347| r1347_1(glval) = FunctionAddress[IntegerOps] : +# 1347| r1347_2(glval) = VariableAddress[x] : +# 1347| r1347_3(int) = Load[x] : &:r1347_2, m1346_6 +# 1347| r1347_4(glval) = VariableAddress[y] : +# 1347| r1347_5(int) = Load[y] : &:r1347_4, m1346_8 +# 1347| v1347_6(void) = Call[IntegerOps] : func:r1347_1, 0:r1347_3, 1:r1347_5 +# 1347| m1347_7(unknown) = ^CallSideEffect : ~m1346_4 +# 1347| m1347_8(unknown) = Chi : total:m1346_4, partial:m1347_7 +# 1347| v1347_9(void) = NoOp : +# 1346| v1346_9(void) = ReturnVoid : +# 1346| v1346_10(void) = AliasedUse : ~m1347_8 +# 1346| v1346_11(void) = ExitFunction : + +# 1350| void gccBinaryConditional(bool, int, long) +# 1350| Block 0 +# 1350| v1350_1(void) = EnterFunction : +# 1350| m1350_2(unknown) = AliasedDefinition : +# 1350| m1350_3(unknown) = InitializeNonLocal : +# 1350| m1350_4(unknown) = Chi : total:m1350_2, partial:m1350_3 +# 1350| r1350_5(glval) = VariableAddress[b] : +# 1350| m1350_6(bool) = InitializeParameter[b] : &:r1350_5 +# 1350| r1350_7(glval) = VariableAddress[x] : +# 1350| m1350_8(int) = InitializeParameter[x] : &:r1350_7 +# 1350| r1350_9(glval) = VariableAddress[y] : +# 1350| m1350_10(long) = InitializeParameter[y] : &:r1350_9 +# 1351| r1351_1(glval) = VariableAddress[z] : +# 1351| r1351_2(glval) = VariableAddress[x] : +# 1351| r1351_3(int) = Load[x] : &:r1351_2, m1350_8 +# 1351| m1351_4(int) = Store[z] : &:r1351_1, r1351_3 +# 1352| r1352_1(glval) = VariableAddress[b] : +# 1352| r1352_2(bool) = Load[b] : &:r1352_1, m1350_6 +# 1352| v1352_3(void) = ConditionalBranch : r1352_2 #-----| False -> Block 3 #-----| True -> Block 2 -# 1350| Block 1 -# 1350| m1350_4(int) = Phi : from 2:m1350_10, from 3:m1350_14 -# 1350| r1350_5(glval) = VariableAddress[#temp1350:9] : -# 1350| r1350_6(int) = Load[#temp1350:9] : &:r1350_5, m1350_4 -# 1350| r1350_7(glval) = VariableAddress[z] : -# 1350| m1350_8(int) = Store[z] : &:r1350_7, r1350_6 -# 1351| r1351_1(glval) = VariableAddress[b] : -# 1351| r1351_2(bool) = Load[b] : &:r1351_1, m1348_6 -# 1351| v1351_3(void) = ConditionalBranch : r1351_2 +# 1352| Block 1 +# 1352| m1352_4(int) = Phi : from 2:m1352_10, from 3:m1352_14 +# 1352| r1352_5(glval) = VariableAddress[#temp1352:9] : +# 1352| r1352_6(int) = Load[#temp1352:9] : &:r1352_5, m1352_4 +# 1352| r1352_7(glval) = VariableAddress[z] : +# 1352| m1352_8(int) = Store[z] : &:r1352_7, r1352_6 +# 1353| r1353_1(glval) = VariableAddress[b] : +# 1353| r1353_2(bool) = Load[b] : &:r1353_1, m1350_6 +# 1353| v1353_3(void) = ConditionalBranch : r1353_2 #-----| False -> Block 6 #-----| True -> Block 5 -# 1350| Block 2 -# 1350| r1350_9(glval) = VariableAddress[#temp1350:9] : -# 1350| m1350_10(int) = Store[#temp1350:9] : &:r1350_9, r1350_2 +# 1352| Block 2 +# 1352| r1352_9(glval) = VariableAddress[#temp1352:9] : +# 1352| m1352_10(int) = Store[#temp1352:9] : &:r1352_9, r1352_2 #-----| Goto -> Block 1 -# 1350| Block 3 -# 1350| r1350_11(glval) = VariableAddress[x] : -# 1350| r1350_12(int) = Load[x] : &:r1350_11, m1348_8 -# 1350| r1350_13(glval) = VariableAddress[#temp1350:9] : -# 1350| m1350_14(int) = Store[#temp1350:9] : &:r1350_13, r1350_12 +# 1352| Block 3 +# 1352| r1352_11(glval) = VariableAddress[x] : +# 1352| r1352_12(int) = Load[x] : &:r1352_11, m1350_8 +# 1352| r1352_13(glval) = VariableAddress[#temp1352:9] : +# 1352| m1352_14(int) = Store[#temp1352:9] : &:r1352_13, r1352_12 #-----| Goto -> Block 1 -# 1351| Block 4 -# 1351| m1351_4(long) = Phi : from 5:m1351_11, from 6:m1351_15 -# 1351| r1351_5(glval) = VariableAddress[#temp1351:9] : -# 1351| r1351_6(long) = Load[#temp1351:9] : &:r1351_5, m1351_4 -# 1351| r1351_7(int) = Convert : r1351_6 -# 1351| r1351_8(glval) = VariableAddress[z] : -# 1351| m1351_9(int) = Store[z] : &:r1351_8, r1351_7 -# 1352| r1352_1(glval) = VariableAddress[x] : -# 1352| r1352_2(int) = Load[x] : &:r1352_1, m1348_8 -# 1352| r1352_3(int) = Constant[0] : -# 1352| r1352_4(bool) = CompareNE : r1352_2, r1352_3 -# 1352| v1352_5(void) = ConditionalBranch : r1352_4 +# 1353| Block 4 +# 1353| m1353_4(long) = Phi : from 5:m1353_11, from 6:m1353_15 +# 1353| r1353_5(glval) = VariableAddress[#temp1353:9] : +# 1353| r1353_6(long) = Load[#temp1353:9] : &:r1353_5, m1353_4 +# 1353| r1353_7(int) = Convert : r1353_6 +# 1353| r1353_8(glval) = VariableAddress[z] : +# 1353| m1353_9(int) = Store[z] : &:r1353_8, r1353_7 +# 1354| r1354_1(glval) = VariableAddress[x] : +# 1354| r1354_2(int) = Load[x] : &:r1354_1, m1350_8 +# 1354| r1354_3(int) = Constant[0] : +# 1354| r1354_4(bool) = CompareNE : r1354_2, r1354_3 +# 1354| v1354_5(void) = ConditionalBranch : r1354_4 #-----| False -> Block 9 #-----| True -> Block 8 -# 1351| Block 5 -# 1351| r1351_10(glval) = VariableAddress[#temp1351:9] : -# 1351| m1351_11(long) = Store[#temp1351:9] : &:r1351_10, r1351_2 +# 1353| Block 5 +# 1353| r1353_10(glval) = VariableAddress[#temp1353:9] : +# 1353| m1353_11(long) = Store[#temp1353:9] : &:r1353_10, r1353_2 #-----| Goto -> Block 4 -# 1351| Block 6 -# 1351| r1351_12(glval) = VariableAddress[y] : -# 1351| r1351_13(long) = Load[y] : &:r1351_12, m1348_10 -# 1351| r1351_14(glval) = VariableAddress[#temp1351:9] : -# 1351| m1351_15(long) = Store[#temp1351:9] : &:r1351_14, r1351_13 +# 1353| Block 6 +# 1353| r1353_12(glval) = VariableAddress[y] : +# 1353| r1353_13(long) = Load[y] : &:r1353_12, m1350_10 +# 1353| r1353_14(glval) = VariableAddress[#temp1353:9] : +# 1353| m1353_15(long) = Store[#temp1353:9] : &:r1353_14, r1353_13 #-----| Goto -> Block 4 -# 1352| Block 7 -# 1352| m1352_6(int) = Phi : from 8:m1352_12, from 9:m1352_16 -# 1352| r1352_7(glval) = VariableAddress[#temp1352:9] : -# 1352| r1352_8(int) = Load[#temp1352:9] : &:r1352_7, m1352_6 -# 1352| r1352_9(glval) = VariableAddress[z] : -# 1352| m1352_10(int) = Store[z] : &:r1352_9, r1352_8 -# 1353| r1353_1(glval) = VariableAddress[x] : -# 1353| r1353_2(int) = Load[x] : &:r1353_1, m1348_8 -# 1353| r1353_3(int) = Constant[0] : -# 1353| r1353_4(bool) = CompareNE : r1353_2, r1353_3 -# 1353| v1353_5(void) = ConditionalBranch : r1353_4 +# 1354| Block 7 +# 1354| m1354_6(int) = Phi : from 8:m1354_12, from 9:m1354_16 +# 1354| r1354_7(glval) = VariableAddress[#temp1354:9] : +# 1354| r1354_8(int) = Load[#temp1354:9] : &:r1354_7, m1354_6 +# 1354| r1354_9(glval) = VariableAddress[z] : +# 1354| m1354_10(int) = Store[z] : &:r1354_9, r1354_8 +# 1355| r1355_1(glval) = VariableAddress[x] : +# 1355| r1355_2(int) = Load[x] : &:r1355_1, m1350_8 +# 1355| r1355_3(int) = Constant[0] : +# 1355| r1355_4(bool) = CompareNE : r1355_2, r1355_3 +# 1355| v1355_5(void) = ConditionalBranch : r1355_4 #-----| False -> Block 12 #-----| True -> Block 11 -# 1352| Block 8 -# 1352| r1352_11(glval) = VariableAddress[#temp1352:9] : -# 1352| m1352_12(int) = Store[#temp1352:9] : &:r1352_11, r1352_2 +# 1354| Block 8 +# 1354| r1354_11(glval) = VariableAddress[#temp1354:9] : +# 1354| m1354_12(int) = Store[#temp1354:9] : &:r1354_11, r1354_2 #-----| Goto -> Block 7 -# 1352| Block 9 -# 1352| r1352_13(glval) = VariableAddress[x] : -# 1352| r1352_14(int) = Load[x] : &:r1352_13, m1348_8 -# 1352| r1352_15(glval) = VariableAddress[#temp1352:9] : -# 1352| m1352_16(int) = Store[#temp1352:9] : &:r1352_15, r1352_14 +# 1354| Block 9 +# 1354| r1354_13(glval) = VariableAddress[x] : +# 1354| r1354_14(int) = Load[x] : &:r1354_13, m1350_8 +# 1354| r1354_15(glval) = VariableAddress[#temp1354:9] : +# 1354| m1354_16(int) = Store[#temp1354:9] : &:r1354_15, r1354_14 #-----| Goto -> Block 7 -# 1353| Block 10 -# 1353| m1353_6(long) = Phi : from 11:m1353_13, from 12:m1353_17 -# 1353| r1353_7(glval) = VariableAddress[#temp1353:9] : -# 1353| r1353_8(long) = Load[#temp1353:9] : &:r1353_7, m1353_6 -# 1353| r1353_9(int) = Convert : r1353_8 -# 1353| r1353_10(glval) = VariableAddress[z] : -# 1353| m1353_11(int) = Store[z] : &:r1353_10, r1353_9 -# 1354| r1354_1(glval) = VariableAddress[y] : -# 1354| r1354_2(long) = Load[y] : &:r1354_1, m1348_10 -# 1354| r1354_3(long) = Constant[0] : -# 1354| r1354_4(bool) = CompareNE : r1354_2, r1354_3 -# 1354| v1354_5(void) = ConditionalBranch : r1354_4 +# 1355| Block 10 +# 1355| m1355_6(long) = Phi : from 11:m1355_13, from 12:m1355_17 +# 1355| r1355_7(glval) = VariableAddress[#temp1355:9] : +# 1355| r1355_8(long) = Load[#temp1355:9] : &:r1355_7, m1355_6 +# 1355| r1355_9(int) = Convert : r1355_8 +# 1355| r1355_10(glval) = VariableAddress[z] : +# 1355| m1355_11(int) = Store[z] : &:r1355_10, r1355_9 +# 1356| r1356_1(glval) = VariableAddress[y] : +# 1356| r1356_2(long) = Load[y] : &:r1356_1, m1350_10 +# 1356| r1356_3(long) = Constant[0] : +# 1356| r1356_4(bool) = CompareNE : r1356_2, r1356_3 +# 1356| v1356_5(void) = ConditionalBranch : r1356_4 #-----| False -> Block 15 #-----| True -> Block 14 -# 1353| Block 11 -# 1353| r1353_12(glval) = VariableAddress[#temp1353:9] : -# 1353| m1353_13(long) = Store[#temp1353:9] : &:r1353_12, r1353_2 +# 1355| Block 11 +# 1355| r1355_12(glval) = VariableAddress[#temp1355:9] : +# 1355| m1355_13(long) = Store[#temp1355:9] : &:r1355_12, r1355_2 #-----| Goto -> Block 10 -# 1353| Block 12 -# 1353| r1353_14(glval) = VariableAddress[y] : -# 1353| r1353_15(long) = Load[y] : &:r1353_14, m1348_10 -# 1353| r1353_16(glval) = VariableAddress[#temp1353:9] : -# 1353| m1353_17(long) = Store[#temp1353:9] : &:r1353_16, r1353_15 +# 1355| Block 12 +# 1355| r1355_14(glval) = VariableAddress[y] : +# 1355| r1355_15(long) = Load[y] : &:r1355_14, m1350_10 +# 1355| r1355_16(glval) = VariableAddress[#temp1355:9] : +# 1355| m1355_17(long) = Store[#temp1355:9] : &:r1355_16, r1355_15 #-----| Goto -> Block 10 -# 1354| Block 13 -# 1354| m1354_6(long) = Phi : from 14:m1354_13, from 15:m1354_18 -# 1354| r1354_7(glval) = VariableAddress[#temp1354:9] : -# 1354| r1354_8(long) = Load[#temp1354:9] : &:r1354_7, m1354_6 -# 1354| r1354_9(int) = Convert : r1354_8 -# 1354| r1354_10(glval) = VariableAddress[z] : -# 1354| m1354_11(int) = Store[z] : &:r1354_10, r1354_9 -# 1355| r1355_1(glval) = VariableAddress[y] : -# 1355| r1355_2(long) = Load[y] : &:r1355_1, m1348_10 -# 1355| r1355_3(long) = Constant[0] : -# 1355| r1355_4(bool) = CompareNE : r1355_2, r1355_3 -# 1355| v1355_5(void) = ConditionalBranch : r1355_4 +# 1356| Block 13 +# 1356| m1356_6(long) = Phi : from 14:m1356_13, from 15:m1356_18 +# 1356| r1356_7(glval) = VariableAddress[#temp1356:9] : +# 1356| r1356_8(long) = Load[#temp1356:9] : &:r1356_7, m1356_6 +# 1356| r1356_9(int) = Convert : r1356_8 +# 1356| r1356_10(glval) = VariableAddress[z] : +# 1356| m1356_11(int) = Store[z] : &:r1356_10, r1356_9 +# 1357| r1357_1(glval) = VariableAddress[y] : +# 1357| r1357_2(long) = Load[y] : &:r1357_1, m1350_10 +# 1357| r1357_3(long) = Constant[0] : +# 1357| r1357_4(bool) = CompareNE : r1357_2, r1357_3 +# 1357| v1357_5(void) = ConditionalBranch : r1357_4 #-----| False -> Block 18 #-----| True -> Block 17 -# 1354| Block 14 -# 1354| r1354_12(glval) = VariableAddress[#temp1354:9] : -# 1354| m1354_13(long) = Store[#temp1354:9] : &:r1354_12, r1354_2 +# 1356| Block 14 +# 1356| r1356_12(glval) = VariableAddress[#temp1356:9] : +# 1356| m1356_13(long) = Store[#temp1356:9] : &:r1356_12, r1356_2 #-----| Goto -> Block 13 -# 1354| Block 15 -# 1354| r1354_14(glval) = VariableAddress[x] : -# 1354| r1354_15(int) = Load[x] : &:r1354_14, m1348_8 -# 1354| r1354_16(long) = Convert : r1354_15 -# 1354| r1354_17(glval) = VariableAddress[#temp1354:9] : -# 1354| m1354_18(long) = Store[#temp1354:9] : &:r1354_17, r1354_16 +# 1356| Block 15 +# 1356| r1356_14(glval) = VariableAddress[x] : +# 1356| r1356_15(int) = Load[x] : &:r1356_14, m1350_8 +# 1356| r1356_16(long) = Convert : r1356_15 +# 1356| r1356_17(glval) = VariableAddress[#temp1356:9] : +# 1356| m1356_18(long) = Store[#temp1356:9] : &:r1356_17, r1356_16 #-----| Goto -> Block 13 -# 1355| Block 16 -# 1355| m1355_6(long) = Phi : from 17:m1355_13, from 18:m1355_17 -# 1355| r1355_7(glval) = VariableAddress[#temp1355:9] : -# 1355| r1355_8(long) = Load[#temp1355:9] : &:r1355_7, m1355_6 -# 1355| r1355_9(int) = Convert : r1355_8 -# 1355| r1355_10(glval) = VariableAddress[z] : -# 1355| m1355_11(int) = Store[z] : &:r1355_10, r1355_9 -# 1357| r1357_1(glval) = VariableAddress[x] : -# 1357| r1357_2(int) = Load[x] : &:r1357_1, m1348_8 -# 1357| r1357_3(int) = Constant[0] : -# 1357| r1357_4(bool) = CompareNE : r1357_2, r1357_3 -# 1357| v1357_5(void) = ConditionalBranch : r1357_4 +# 1357| Block 16 +# 1357| m1357_6(long) = Phi : from 17:m1357_13, from 18:m1357_17 +# 1357| r1357_7(glval) = VariableAddress[#temp1357:9] : +# 1357| r1357_8(long) = Load[#temp1357:9] : &:r1357_7, m1357_6 +# 1357| r1357_9(int) = Convert : r1357_8 +# 1357| r1357_10(glval) = VariableAddress[z] : +# 1357| m1357_11(int) = Store[z] : &:r1357_10, r1357_9 +# 1359| r1359_1(glval) = VariableAddress[x] : +# 1359| r1359_2(int) = Load[x] : &:r1359_1, m1350_8 +# 1359| r1359_3(int) = Constant[0] : +# 1359| r1359_4(bool) = CompareNE : r1359_2, r1359_3 +# 1359| v1359_5(void) = ConditionalBranch : r1359_4 #-----| False -> Block 25 #-----| True -> Block 24 -# 1355| Block 17 -# 1355| r1355_12(glval) = VariableAddress[#temp1355:9] : -# 1355| m1355_13(long) = Store[#temp1355:9] : &:r1355_12, r1355_2 +# 1357| Block 17 +# 1357| r1357_12(glval) = VariableAddress[#temp1357:9] : +# 1357| m1357_13(long) = Store[#temp1357:9] : &:r1357_12, r1357_2 #-----| Goto -> Block 16 -# 1355| Block 18 -# 1355| r1355_14(glval) = VariableAddress[y] : -# 1355| r1355_15(long) = Load[y] : &:r1355_14, m1348_10 -# 1355| r1355_16(glval) = VariableAddress[#temp1355:9] : -# 1355| m1355_17(long) = Store[#temp1355:9] : &:r1355_16, r1355_15 +# 1357| Block 18 +# 1357| r1357_14(glval) = VariableAddress[y] : +# 1357| r1357_15(long) = Load[y] : &:r1357_14, m1350_10 +# 1357| r1357_16(glval) = VariableAddress[#temp1357:9] : +# 1357| m1357_17(long) = Store[#temp1357:9] : &:r1357_16, r1357_15 #-----| Goto -> Block 16 -# 1357| Block 19 -# 1357| m1357_6(int) = Phi : from 20:m1357_12, from 26:m1357_34 -# 1357| r1357_7(glval) = VariableAddress[#temp1357:9] : -# 1357| r1357_8(int) = Load[#temp1357:9] : &:r1357_7, m1357_6 -# 1357| r1357_9(glval) = VariableAddress[z] : -# 1357| m1357_10(int) = Store[z] : &:r1357_9, r1357_8 -# 1358| v1358_1(void) = NoOp : -# 1348| v1348_11(void) = ReturnVoid : -# 1348| v1348_12(void) = AliasedUse : m1348_3 -# 1348| v1348_13(void) = ExitFunction : - -# 1357| Block 20 -# 1357| r1357_11(glval) = VariableAddress[#temp1357:9] : -# 1357| m1357_12(int) = Store[#temp1357:9] : &:r1357_11, r1357_18 +# 1359| Block 19 +# 1359| m1359_6(int) = Phi : from 20:m1359_12, from 26:m1359_34 +# 1359| r1359_7(glval) = VariableAddress[#temp1359:9] : +# 1359| r1359_8(int) = Load[#temp1359:9] : &:r1359_7, m1359_6 +# 1359| r1359_9(glval) = VariableAddress[z] : +# 1359| m1359_10(int) = Store[z] : &:r1359_9, r1359_8 +# 1360| v1360_1(void) = NoOp : +# 1350| v1350_11(void) = ReturnVoid : +# 1350| v1350_12(void) = AliasedUse : m1350_3 +# 1350| v1350_13(void) = ExitFunction : + +# 1359| Block 20 +# 1359| r1359_11(glval) = VariableAddress[#temp1359:9] : +# 1359| m1359_12(int) = Store[#temp1359:9] : &:r1359_11, r1359_18 #-----| Goto -> Block 19 -# 1357| Block 21 -# 1357| r1357_13(glval) = VariableAddress[#temp1357:10] : -# 1357| r1357_14(bool) = Constant[0] : -# 1357| m1357_15(bool) = Store[#temp1357:10] : &:r1357_13, r1357_14 +# 1359| Block 21 +# 1359| r1359_13(glval) = VariableAddress[#temp1359:10] : +# 1359| r1359_14(bool) = Constant[0] : +# 1359| m1359_15(bool) = Store[#temp1359:10] : &:r1359_13, r1359_14 #-----| Goto -> Block 22 -# 1357| Block 22 -# 1357| m1357_16(bool) = Phi : from 21:m1357_15, from 23:m1357_22 -# 1357| r1357_17(glval) = VariableAddress[#temp1357:10] : -# 1357| r1357_18(bool) = Load[#temp1357:10] : &:r1357_17, m1357_16 -# 1357| v1357_19(void) = ConditionalBranch : r1357_18 +# 1359| Block 22 +# 1359| m1359_16(bool) = Phi : from 21:m1359_15, from 23:m1359_22 +# 1359| r1359_17(glval) = VariableAddress[#temp1359:10] : +# 1359| r1359_18(bool) = Load[#temp1359:10] : &:r1359_17, m1359_16 +# 1359| v1359_19(void) = ConditionalBranch : r1359_18 #-----| False -> Block 26 #-----| True -> Block 20 -# 1357| Block 23 -# 1357| r1357_20(glval) = VariableAddress[#temp1357:10] : -# 1357| r1357_21(bool) = Constant[1] : -# 1357| m1357_22(bool) = Store[#temp1357:10] : &:r1357_20, r1357_21 +# 1359| Block 23 +# 1359| r1359_20(glval) = VariableAddress[#temp1359:10] : +# 1359| r1359_21(bool) = Constant[1] : +# 1359| m1359_22(bool) = Store[#temp1359:10] : &:r1359_20, r1359_21 #-----| Goto -> Block 22 -# 1357| Block 24 -# 1357| r1357_23(glval) = VariableAddress[b] : -# 1357| r1357_24(bool) = Load[b] : &:r1357_23, m1348_6 -# 1357| v1357_25(void) = ConditionalBranch : r1357_24 +# 1359| Block 24 +# 1359| r1359_23(glval) = VariableAddress[b] : +# 1359| r1359_24(bool) = Load[b] : &:r1359_23, m1350_6 +# 1359| v1359_25(void) = ConditionalBranch : r1359_24 #-----| False -> Block 25 #-----| True -> Block 23 -# 1357| Block 25 -# 1357| r1357_26(glval) = VariableAddress[y] : -# 1357| r1357_27(long) = Load[y] : &:r1357_26, m1348_10 -# 1357| r1357_28(long) = Constant[0] : -# 1357| r1357_29(bool) = CompareNE : r1357_27, r1357_28 -# 1357| v1357_30(void) = ConditionalBranch : r1357_29 +# 1359| Block 25 +# 1359| r1359_26(glval) = VariableAddress[y] : +# 1359| r1359_27(long) = Load[y] : &:r1359_26, m1350_10 +# 1359| r1359_28(long) = Constant[0] : +# 1359| r1359_29(bool) = CompareNE : r1359_27, r1359_28 +# 1359| v1359_30(void) = ConditionalBranch : r1359_29 #-----| False -> Block 21 #-----| True -> Block 23 -# 1357| Block 26 -# 1357| r1357_31(glval) = VariableAddress[x] : -# 1357| r1357_32(int) = Load[x] : &:r1357_31, m1348_8 -# 1357| r1357_33(glval) = VariableAddress[#temp1357:9] : -# 1357| m1357_34(int) = Store[#temp1357:9] : &:r1357_33, r1357_32 +# 1359| Block 26 +# 1359| r1359_31(glval) = VariableAddress[x] : +# 1359| r1359_32(int) = Load[x] : &:r1359_31, m1350_8 +# 1359| r1359_33(glval) = VariableAddress[#temp1359:9] : +# 1359| m1359_34(int) = Store[#temp1359:9] : &:r1359_33, r1359_32 #-----| Goto -> Block 19 -# 1363| int shortCircuitConditional(int, int) -# 1363| Block 0 -# 1363| v1363_1(void) = EnterFunction : -# 1363| m1363_2(unknown) = AliasedDefinition : -# 1363| m1363_3(unknown) = InitializeNonLocal : -# 1363| m1363_4(unknown) = Chi : total:m1363_2, partial:m1363_3 -# 1363| r1363_5(glval) = VariableAddress[x] : -# 1363| m1363_6(int) = InitializeParameter[x] : &:r1363_5 -# 1363| r1363_7(glval) = VariableAddress[y] : -# 1363| m1363_8(int) = InitializeParameter[y] : &:r1363_7 -# 1364| r1364_1(glval) = VariableAddress[#return] : -# 1364| r1364_2(glval) = FunctionAddress[predicateA] : -# 1364| r1364_3(bool) = Call[predicateA] : func:r1364_2 -# 1364| m1364_4(unknown) = ^CallSideEffect : ~m1363_4 -# 1364| m1364_5(unknown) = Chi : total:m1363_4, partial:m1364_4 -# 1364| v1364_6(void) = ConditionalBranch : r1364_3 +# 1365| int shortCircuitConditional(int, int) +# 1365| Block 0 +# 1365| v1365_1(void) = EnterFunction : +# 1365| m1365_2(unknown) = AliasedDefinition : +# 1365| m1365_3(unknown) = InitializeNonLocal : +# 1365| m1365_4(unknown) = Chi : total:m1365_2, partial:m1365_3 +# 1365| r1365_5(glval) = VariableAddress[x] : +# 1365| m1365_6(int) = InitializeParameter[x] : &:r1365_5 +# 1365| r1365_7(glval) = VariableAddress[y] : +# 1365| m1365_8(int) = InitializeParameter[y] : &:r1365_7 +# 1366| r1366_1(glval) = VariableAddress[#return] : +# 1366| r1366_2(glval) = FunctionAddress[predicateA] : +# 1366| r1366_3(bool) = Call[predicateA] : func:r1366_2 +# 1366| m1366_4(unknown) = ^CallSideEffect : ~m1365_4 +# 1366| m1366_5(unknown) = Chi : total:m1365_4, partial:m1366_4 +# 1366| v1366_6(void) = ConditionalBranch : r1366_3 #-----| False -> Block 4 #-----| True -> Block 2 -# 1364| Block 1 -# 1364| m1364_7(unknown) = Phi : from 3:~m1364_15, from 4:~m1364_21 -# 1364| m1364_8(int) = Phi : from 3:m1364_20, from 4:m1364_25 -# 1364| r1364_9(glval) = VariableAddress[#temp1364:12] : -# 1364| r1364_10(int) = Load[#temp1364:12] : &:r1364_9, m1364_8 -# 1364| m1364_11(int) = Store[#return] : &:r1364_1, r1364_10 -# 1363| r1363_9(glval) = VariableAddress[#return] : -# 1363| v1363_10(void) = ReturnValue : &:r1363_9, m1364_11 -# 1363| v1363_11(void) = AliasedUse : ~m1364_7 -# 1363| v1363_12(void) = ExitFunction : - -# 1364| Block 2 -# 1364| r1364_12(glval) = FunctionAddress[predicateB] : -# 1364| r1364_13(bool) = Call[predicateB] : func:r1364_12 -# 1364| m1364_14(unknown) = ^CallSideEffect : ~m1364_5 -# 1364| m1364_15(unknown) = Chi : total:m1364_5, partial:m1364_14 -# 1364| v1364_16(void) = ConditionalBranch : r1364_13 +# 1366| Block 1 +# 1366| m1366_7(unknown) = Phi : from 3:~m1366_15, from 4:~m1366_21 +# 1366| m1366_8(int) = Phi : from 3:m1366_20, from 4:m1366_25 +# 1366| r1366_9(glval) = VariableAddress[#temp1366:12] : +# 1366| r1366_10(int) = Load[#temp1366:12] : &:r1366_9, m1366_8 +# 1366| m1366_11(int) = Store[#return] : &:r1366_1, r1366_10 +# 1365| r1365_9(glval) = VariableAddress[#return] : +# 1365| v1365_10(void) = ReturnValue : &:r1365_9, m1366_11 +# 1365| v1365_11(void) = AliasedUse : ~m1366_7 +# 1365| v1365_12(void) = ExitFunction : + +# 1366| Block 2 +# 1366| r1366_12(glval) = FunctionAddress[predicateB] : +# 1366| r1366_13(bool) = Call[predicateB] : func:r1366_12 +# 1366| m1366_14(unknown) = ^CallSideEffect : ~m1366_5 +# 1366| m1366_15(unknown) = Chi : total:m1366_5, partial:m1366_14 +# 1366| v1366_16(void) = ConditionalBranch : r1366_13 #-----| False -> Block 4 #-----| True -> Block 3 -# 1364| Block 3 -# 1364| r1364_17(glval) = VariableAddress[x] : -# 1364| r1364_18(int) = Load[x] : &:r1364_17, m1363_6 -# 1364| r1364_19(glval) = VariableAddress[#temp1364:12] : -# 1364| m1364_20(int) = Store[#temp1364:12] : &:r1364_19, r1364_18 +# 1366| Block 3 +# 1366| r1366_17(glval) = VariableAddress[x] : +# 1366| r1366_18(int) = Load[x] : &:r1366_17, m1365_6 +# 1366| r1366_19(glval) = VariableAddress[#temp1366:12] : +# 1366| m1366_20(int) = Store[#temp1366:12] : &:r1366_19, r1366_18 #-----| Goto -> Block 1 -# 1364| Block 4 -# 1364| m1364_21(unknown) = Phi : from 0:~m1364_5, from 2:~m1364_15 -# 1364| r1364_22(glval) = VariableAddress[y] : -# 1364| r1364_23(int) = Load[y] : &:r1364_22, m1363_8 -# 1364| r1364_24(glval) = VariableAddress[#temp1364:12] : -# 1364| m1364_25(int) = Store[#temp1364:12] : &:r1364_24, r1364_23 +# 1366| Block 4 +# 1366| m1366_21(unknown) = Phi : from 0:~m1366_5, from 2:~m1366_15 +# 1366| r1366_22(glval) = VariableAddress[y] : +# 1366| r1366_23(int) = Load[y] : &:r1366_22, m1365_8 +# 1366| r1366_24(glval) = VariableAddress[#temp1366:12] : +# 1366| m1366_25(int) = Store[#temp1366:12] : &:r1366_24, r1366_23 #-----| Goto -> Block 1 -# 1369| void f(int*) -# 1369| Block 0 -# 1369| v1369_1(void) = EnterFunction : -# 1369| m1369_2(unknown) = AliasedDefinition : -# 1369| m1369_3(unknown) = InitializeNonLocal : -# 1369| m1369_4(unknown) = Chi : total:m1369_2, partial:m1369_3 -# 1369| r1369_5(glval) = VariableAddress[p] : -# 1369| m1369_6(int *) = InitializeParameter[p] : &:r1369_5 -# 1369| r1369_7(int *) = Load[p] : &:r1369_5, m1369_6 -# 1369| m1369_8(unknown) = InitializeIndirection[p] : &:r1369_7 -# 1369| m1369_9(unknown) = Chi : total:m1369_4, partial:m1369_8 -# 1371| r1371_1(glval) = FunctionAddress[operator new] : -# 1371| r1371_2(unsigned long) = Constant[4] : -# 1371| r1371_3(glval) = VariableAddress[p] : -# 1371| r1371_4(int *) = Load[p] : &:r1371_3, m1369_6 -# 1371| r1371_5(void *) = Convert : r1371_4 -# 1371| r1371_6(void *) = Call[operator new] : func:r1371_1, 0:r1371_2, 1:r1371_5 -# 1371| m1371_7(unknown) = ^CallSideEffect : ~m1369_9 -# 1371| m1371_8(unknown) = Chi : total:m1369_9, partial:m1371_7 -# 1371| m1371_9(unknown) = ^InitializeDynamicAllocation : &:r1371_6 -# 1371| r1371_10(int *) = Convert : r1371_6 -# 1372| v1372_1(void) = NoOp : -# 1369| v1369_10(void) = ReturnIndirection[p] : &:r1369_7, ~m1371_8 -# 1369| v1369_11(void) = ReturnVoid : -# 1369| v1369_12(void) = AliasedUse : ~m1371_8 -# 1369| v1369_13(void) = ExitFunction : - -# 1375| Point defaultConstruct() -# 1375| Block 0 -# 1375| v1375_1(void) = EnterFunction : -# 1375| m1375_2(unknown) = AliasedDefinition : -# 1375| m1375_3(unknown) = InitializeNonLocal : -# 1375| m1375_4(unknown) = Chi : total:m1375_2, partial:m1375_3 -# 1376| r1376_1(glval) = VariableAddress[#return] : -# 1376| r1376_2(Point) = Constant[0] : -# 1376| m1376_3(Point) = Store[#return] : &:r1376_1, r1376_2 -# 1375| r1375_5(glval) = VariableAddress[#return] : -# 1375| v1375_6(void) = ReturnValue : &:r1375_5, m1376_3 -# 1375| v1375_7(void) = AliasedUse : m1375_3 -# 1375| v1375_8(void) = ExitFunction : - -# 1375| String defaultConstruct() -# 1375| Block 0 -# 1375| v1375_1(void) = EnterFunction : -# 1375| m1375_2(unknown) = AliasedDefinition : -# 1375| m1375_3(unknown) = InitializeNonLocal : -# 1375| m1375_4(unknown) = Chi : total:m1375_2, partial:m1375_3 -# 1376| r1376_1(glval) = VariableAddress[#return] : -# 1376| m1376_2(String) = Uninitialized[#return] : &:r1376_1 -# 1376| m1376_3(unknown) = Chi : total:m1375_4, partial:m1376_2 -# 1376| r1376_4(glval) = FunctionAddress[String] : -# 1376| v1376_5(void) = Call[String] : func:r1376_4, this:r1376_1 -# 1376| m1376_6(unknown) = ^CallSideEffect : ~m1376_3 -# 1376| m1376_7(unknown) = Chi : total:m1376_3, partial:m1376_6 -# 1376| m1376_8(String) = ^IndirectMayWriteSideEffect[-1] : &:r1376_1 -# 1376| m1376_9(unknown) = Chi : total:m1376_7, partial:m1376_8 -# 1375| r1375_5(glval) = VariableAddress[#return] : -# 1375| v1375_6(void) = ReturnValue : &:r1375_5, ~m1376_9 -# 1375| v1375_7(void) = AliasedUse : ~m1376_7 -# 1375| v1375_8(void) = ExitFunction : - -# 1375| copy_constructor defaultConstruct() -# 1375| Block 0 -# 1375| v1375_1(void) = EnterFunction : -# 1375| m1375_2(unknown) = AliasedDefinition : -# 1375| m1375_3(unknown) = InitializeNonLocal : -# 1375| m1375_4(unknown) = Chi : total:m1375_2, partial:m1375_3 -# 1376| r1376_1(glval) = VariableAddress[#return] : -# 1376| m1376_2(copy_constructor) = Uninitialized[#return] : &:r1376_1 -# 1376| m1376_3(unknown) = Chi : total:m1375_4, partial:m1376_2 -# 1376| r1376_4(glval) = FunctionAddress[copy_constructor] : -# 1376| v1376_5(void) = Call[copy_constructor] : func:r1376_4, this:r1376_1 -# 1376| m1376_6(unknown) = ^CallSideEffect : ~m1376_3 -# 1376| m1376_7(unknown) = Chi : total:m1376_3, partial:m1376_6 -# 1376| m1376_8(copy_constructor) = ^IndirectMayWriteSideEffect[-1] : &:r1376_1 -# 1376| m1376_9(unknown) = Chi : total:m1376_7, partial:m1376_8 -# 1375| r1375_5(glval) = VariableAddress[#return] : -# 1375| v1375_6(void) = ReturnValue : &:r1375_5, ~m1376_9 -# 1375| v1375_7(void) = AliasedUse : ~m1376_7 -# 1375| v1375_8(void) = ExitFunction : - -# 1375| destructor_only defaultConstruct() -# 1375| Block 0 -# 1375| v1375_1(void) = EnterFunction : -# 1375| m1375_2(unknown) = AliasedDefinition : -# 1375| m1375_3(unknown) = InitializeNonLocal : -# 1375| m1375_4(unknown) = Chi : total:m1375_2, partial:m1375_3 -# 1376| r1376_1(glval) = VariableAddress[#return] : -# 1376| r1376_2(destructor_only) = Constant[0] : -# 1376| m1376_3(destructor_only) = Store[#return] : &:r1376_1, r1376_2 -# 1375| r1375_5(glval) = VariableAddress[#return] : -# 1375| v1375_6(void) = ReturnValue : &:r1375_5, m1376_3 -# 1375| v1375_7(void) = AliasedUse : m1375_3 -# 1375| v1375_8(void) = ExitFunction : - -# 1414| void temporary_string() -# 1414| Block 0 -# 1414| v1414_1(void) = EnterFunction : -# 1414| m1414_2(unknown) = AliasedDefinition : -# 1414| m1414_3(unknown) = InitializeNonLocal : -# 1414| m1414_4(unknown) = Chi : total:m1414_2, partial:m1414_3 -# 1415| r1415_1(glval) = VariableAddress[s] : -# 1415| r1415_2(glval) = FunctionAddress[returnValue] : -# 1415| r1415_3(String) = Call[returnValue] : func:r1415_2 -# 1415| m1415_4(unknown) = ^CallSideEffect : ~m1414_4 -# 1415| m1415_5(unknown) = Chi : total:m1414_4, partial:m1415_4 -# 1415| m1415_6(String) = Store[s] : &:r1415_1, r1415_3 -# 1415| m1415_7(unknown) = Chi : total:m1415_5, partial:m1415_6 -# 1416| r1416_1(glval) = VariableAddress[rs] : -# 1416| r1416_2(glval) = VariableAddress[#temp1416:24] : -# 1416| r1416_3(glval) = FunctionAddress[returnValue] : -# 1416| r1416_4(String) = Call[returnValue] : func:r1416_3 -# 1416| m1416_5(unknown) = ^CallSideEffect : ~m1415_7 -# 1416| m1416_6(unknown) = Chi : total:m1415_7, partial:m1416_5 -# 1416| m1416_7(String) = Store[#temp1416:24] : &:r1416_2, r1416_4 -# 1416| m1416_8(unknown) = Chi : total:m1416_6, partial:m1416_7 -# 1416| r1416_9(glval) = Convert : r1416_2 -# 1416| r1416_10(String &) = CopyValue : r1416_9 -# 1416| m1416_11(String &) = Store[rs] : &:r1416_1, r1416_10 -# 1418| r1418_1(glval) = FunctionAddress[acceptRef] : -# 1418| r1418_2(glval) = VariableAddress[s] : -# 1418| r1418_3(glval) = Convert : r1418_2 -# 1418| r1418_4(String &) = CopyValue : r1418_3 -# 1418| v1418_5(void) = Call[acceptRef] : func:r1418_1, 0:r1418_4 -# 1418| m1418_6(unknown) = ^CallSideEffect : ~m1416_8 -# 1418| m1418_7(unknown) = Chi : total:m1416_8, partial:m1418_6 -# 1418| v1418_8(void) = ^BufferReadSideEffect[0] : &:r1418_4, ~m1418_7 -# 1419| r1419_1(glval) = FunctionAddress[acceptRef] : -# 1419| r1419_2(glval) = VariableAddress[#temp1419:23] : -# 1419| m1419_3(String) = Uninitialized[#temp1419:23] : &:r1419_2 -# 1419| m1419_4(unknown) = Chi : total:m1418_7, partial:m1419_3 -# 1419| r1419_5(glval) = FunctionAddress[String] : -# 1419| r1419_6(glval) = StringConstant["foo"] : -# 1419| r1419_7(char *) = Convert : r1419_6 -# 1419| v1419_8(void) = Call[String] : func:r1419_5, this:r1419_2, 0:r1419_7 -# 1419| m1419_9(unknown) = ^CallSideEffect : ~m1419_4 -# 1419| m1419_10(unknown) = Chi : total:m1419_4, partial:m1419_9 -# 1419| v1419_11(void) = ^BufferReadSideEffect[0] : &:r1419_7, ~m1414_3 -# 1419| m1419_12(String) = ^IndirectMayWriteSideEffect[-1] : &:r1419_2 -# 1419| m1419_13(unknown) = Chi : total:m1419_10, partial:m1419_12 -# 1419| r1419_14(String &) = CopyValue : r1419_2 -# 1419| v1419_15(void) = Call[acceptRef] : func:r1419_1, 0:r1419_14 -# 1419| m1419_16(unknown) = ^CallSideEffect : ~m1419_13 -# 1419| m1419_17(unknown) = Chi : total:m1419_13, partial:m1419_16 -# 1419| v1419_18(void) = ^BufferReadSideEffect[0] : &:r1419_14, ~m1419_17 -# 1419| r1419_19(glval) = CopyValue : r1419_2 -# 1419| r1419_20(glval) = FunctionAddress[~String] : -# 1419| v1419_21(void) = Call[~String] : func:r1419_20, this:r1419_19 -# 1419| m1419_22(unknown) = ^CallSideEffect : ~m1419_17 -# 1419| m1419_23(unknown) = Chi : total:m1419_17, partial:m1419_22 -# 1419| v1419_24(void) = ^IndirectReadSideEffect[-1] : &:r1419_19, ~m1419_23 -# 1419| m1419_25(String) = ^IndirectMayWriteSideEffect[-1] : &:r1419_19 -# 1419| m1419_26(unknown) = Chi : total:m1419_23, partial:m1419_25 -# 1420| r1420_1(glval) = FunctionAddress[acceptValue] : -# 1420| r1420_2(glval) = VariableAddress[#temp1420:17] : -# 1420| m1420_3(String) = Uninitialized[#temp1420:17] : &:r1420_2 -# 1420| m1420_4(unknown) = Chi : total:m1419_26, partial:m1420_3 -# 1420| r1420_5(glval) = FunctionAddress[String] : -# 1420| r1420_6(glval) = VariableAddress[s] : -# 1420| r1420_7(glval) = Convert : r1420_6 -# 1420| r1420_8(String &) = CopyValue : r1420_7 -# 1420| v1420_9(void) = Call[String] : func:r1420_5, this:r1420_2, 0:r1420_8 -# 1420| m1420_10(unknown) = ^CallSideEffect : ~m1420_4 -# 1420| m1420_11(unknown) = Chi : total:m1420_4, partial:m1420_10 -# 1420| v1420_12(void) = ^BufferReadSideEffect[0] : &:r1420_8, ~m1420_11 -# 1420| m1420_13(String) = ^IndirectMayWriteSideEffect[-1] : &:r1420_2 -# 1420| m1420_14(unknown) = Chi : total:m1420_11, partial:m1420_13 -# 1420| r1420_15(String) = Load[#temp1420:17] : &:r1420_2, ~m1420_14 -# 1420| v1420_16(void) = Call[acceptValue] : func:r1420_1, 0:r1420_15 -# 1420| m1420_17(unknown) = ^CallSideEffect : ~m1420_14 -# 1420| m1420_18(unknown) = Chi : total:m1420_14, partial:m1420_17 -# 1420| r1420_19(glval) = CopyValue : r1420_2 -# 1420| r1420_20(glval) = FunctionAddress[~String] : -# 1420| v1420_21(void) = Call[~String] : func:r1420_20, this:r1420_19 -# 1420| m1420_22(unknown) = ^CallSideEffect : ~m1420_18 -# 1420| m1420_23(unknown) = Chi : total:m1420_18, partial:m1420_22 -# 1420| v1420_24(void) = ^IndirectReadSideEffect[-1] : &:r1420_19, ~m1420_23 -# 1420| m1420_25(String) = ^IndirectMayWriteSideEffect[-1] : &:r1420_19 -# 1420| m1420_26(unknown) = Chi : total:m1420_23, partial:m1420_25 -# 1421| r1421_1(glval) = FunctionAddress[acceptValue] : -# 1421| r1421_2(glval) = VariableAddress[#temp1421:25] : -# 1421| m1421_3(String) = Uninitialized[#temp1421:25] : &:r1421_2 -# 1421| m1421_4(unknown) = Chi : total:m1420_26, partial:m1421_3 +# 1371| void f(int*) +# 1371| Block 0 +# 1371| v1371_1(void) = EnterFunction : +# 1371| m1371_2(unknown) = AliasedDefinition : +# 1371| m1371_3(unknown) = InitializeNonLocal : +# 1371| m1371_4(unknown) = Chi : total:m1371_2, partial:m1371_3 +# 1371| r1371_5(glval) = VariableAddress[p] : +# 1371| m1371_6(int *) = InitializeParameter[p] : &:r1371_5 +# 1371| r1371_7(int *) = Load[p] : &:r1371_5, m1371_6 +# 1371| m1371_8(unknown) = InitializeIndirection[p] : &:r1371_7 +# 1371| m1371_9(unknown) = Chi : total:m1371_4, partial:m1371_8 +# 1373| r1373_1(glval) = FunctionAddress[operator new] : +# 1373| r1373_2(unsigned long) = Constant[4] : +# 1373| r1373_3(glval) = VariableAddress[p] : +# 1373| r1373_4(int *) = Load[p] : &:r1373_3, m1371_6 +# 1373| r1373_5(void *) = Convert : r1373_4 +# 1373| r1373_6(void *) = Call[operator new] : func:r1373_1, 0:r1373_2, 1:r1373_5 +# 1373| m1373_7(unknown) = ^CallSideEffect : ~m1371_9 +# 1373| m1373_8(unknown) = Chi : total:m1371_9, partial:m1373_7 +# 1373| m1373_9(unknown) = ^InitializeDynamicAllocation : &:r1373_6 +# 1373| r1373_10(int *) = Convert : r1373_6 +# 1374| v1374_1(void) = NoOp : +# 1371| v1371_10(void) = ReturnIndirection[p] : &:r1371_7, ~m1373_8 +# 1371| v1371_11(void) = ReturnVoid : +# 1371| v1371_12(void) = AliasedUse : ~m1373_8 +# 1371| v1371_13(void) = ExitFunction : + +# 1377| Point defaultConstruct() +# 1377| Block 0 +# 1377| v1377_1(void) = EnterFunction : +# 1377| m1377_2(unknown) = AliasedDefinition : +# 1377| m1377_3(unknown) = InitializeNonLocal : +# 1377| m1377_4(unknown) = Chi : total:m1377_2, partial:m1377_3 +# 1378| r1378_1(glval) = VariableAddress[#return] : +# 1378| r1378_2(Point) = Constant[0] : +# 1378| m1378_3(Point) = Store[#return] : &:r1378_1, r1378_2 +# 1377| r1377_5(glval) = VariableAddress[#return] : +# 1377| v1377_6(void) = ReturnValue : &:r1377_5, m1378_3 +# 1377| v1377_7(void) = AliasedUse : m1377_3 +# 1377| v1377_8(void) = ExitFunction : + +# 1377| String defaultConstruct() +# 1377| Block 0 +# 1377| v1377_1(void) = EnterFunction : +# 1377| m1377_2(unknown) = AliasedDefinition : +# 1377| m1377_3(unknown) = InitializeNonLocal : +# 1377| m1377_4(unknown) = Chi : total:m1377_2, partial:m1377_3 +# 1378| r1378_1(glval) = VariableAddress[#return] : +# 1378| m1378_2(String) = Uninitialized[#return] : &:r1378_1 +# 1378| m1378_3(unknown) = Chi : total:m1377_4, partial:m1378_2 +# 1378| r1378_4(glval) = FunctionAddress[String] : +# 1378| v1378_5(void) = Call[String] : func:r1378_4, this:r1378_1 +# 1378| m1378_6(unknown) = ^CallSideEffect : ~m1378_3 +# 1378| m1378_7(unknown) = Chi : total:m1378_3, partial:m1378_6 +# 1378| m1378_8(String) = ^IndirectMayWriteSideEffect[-1] : &:r1378_1 +# 1378| m1378_9(unknown) = Chi : total:m1378_7, partial:m1378_8 +# 1377| r1377_5(glval) = VariableAddress[#return] : +# 1377| v1377_6(void) = ReturnValue : &:r1377_5, ~m1378_9 +# 1377| v1377_7(void) = AliasedUse : ~m1378_7 +# 1377| v1377_8(void) = ExitFunction : + +# 1377| copy_constructor defaultConstruct() +# 1377| Block 0 +# 1377| v1377_1(void) = EnterFunction : +# 1377| m1377_2(unknown) = AliasedDefinition : +# 1377| m1377_3(unknown) = InitializeNonLocal : +# 1377| m1377_4(unknown) = Chi : total:m1377_2, partial:m1377_3 +# 1378| r1378_1(glval) = VariableAddress[#return] : +# 1378| m1378_2(copy_constructor) = Uninitialized[#return] : &:r1378_1 +# 1378| m1378_3(unknown) = Chi : total:m1377_4, partial:m1378_2 +# 1378| r1378_4(glval) = FunctionAddress[copy_constructor] : +# 1378| v1378_5(void) = Call[copy_constructor] : func:r1378_4, this:r1378_1 +# 1378| m1378_6(unknown) = ^CallSideEffect : ~m1378_3 +# 1378| m1378_7(unknown) = Chi : total:m1378_3, partial:m1378_6 +# 1378| m1378_8(copy_constructor) = ^IndirectMayWriteSideEffect[-1] : &:r1378_1 +# 1378| m1378_9(unknown) = Chi : total:m1378_7, partial:m1378_8 +# 1377| r1377_5(glval) = VariableAddress[#return] : +# 1377| v1377_6(void) = ReturnValue : &:r1377_5, ~m1378_9 +# 1377| v1377_7(void) = AliasedUse : ~m1378_7 +# 1377| v1377_8(void) = ExitFunction : + +# 1377| destructor_only defaultConstruct() +# 1377| Block 0 +# 1377| v1377_1(void) = EnterFunction : +# 1377| m1377_2(unknown) = AliasedDefinition : +# 1377| m1377_3(unknown) = InitializeNonLocal : +# 1377| m1377_4(unknown) = Chi : total:m1377_2, partial:m1377_3 +# 1378| r1378_1(glval) = VariableAddress[#return] : +# 1378| r1378_2(destructor_only) = Constant[0] : +# 1378| m1378_3(destructor_only) = Store[#return] : &:r1378_1, r1378_2 +# 1377| r1377_5(glval) = VariableAddress[#return] : +# 1377| v1377_6(void) = ReturnValue : &:r1377_5, m1378_3 +# 1377| v1377_7(void) = AliasedUse : m1377_3 +# 1377| v1377_8(void) = ExitFunction : + +# 1416| void temporary_string() +# 1416| Block 0 +# 1416| v1416_1(void) = EnterFunction : +# 1416| m1416_2(unknown) = AliasedDefinition : +# 1416| m1416_3(unknown) = InitializeNonLocal : +# 1416| m1416_4(unknown) = Chi : total:m1416_2, partial:m1416_3 +# 1417| r1417_1(glval) = VariableAddress[s] : +# 1417| r1417_2(glval) = FunctionAddress[returnValue] : +# 1417| r1417_3(String) = Call[returnValue] : func:r1417_2 +# 1417| m1417_4(unknown) = ^CallSideEffect : ~m1416_4 +# 1417| m1417_5(unknown) = Chi : total:m1416_4, partial:m1417_4 +# 1417| m1417_6(String) = Store[s] : &:r1417_1, r1417_3 +# 1417| m1417_7(unknown) = Chi : total:m1417_5, partial:m1417_6 +# 1418| r1418_1(glval) = VariableAddress[rs] : +# 1418| r1418_2(glval) = VariableAddress[#temp1418:24] : +# 1418| r1418_3(glval) = FunctionAddress[returnValue] : +# 1418| r1418_4(String) = Call[returnValue] : func:r1418_3 +# 1418| m1418_5(unknown) = ^CallSideEffect : ~m1417_7 +# 1418| m1418_6(unknown) = Chi : total:m1417_7, partial:m1418_5 +# 1418| m1418_7(String) = Store[#temp1418:24] : &:r1418_2, r1418_4 +# 1418| m1418_8(unknown) = Chi : total:m1418_6, partial:m1418_7 +# 1418| r1418_9(glval) = Convert : r1418_2 +# 1418| r1418_10(String &) = CopyValue : r1418_9 +# 1418| m1418_11(String &) = Store[rs] : &:r1418_1, r1418_10 +# 1420| r1420_1(glval) = FunctionAddress[acceptRef] : +# 1420| r1420_2(glval) = VariableAddress[s] : +# 1420| r1420_3(glval) = Convert : r1420_2 +# 1420| r1420_4(String &) = CopyValue : r1420_3 +# 1420| v1420_5(void) = Call[acceptRef] : func:r1420_1, 0:r1420_4 +# 1420| m1420_6(unknown) = ^CallSideEffect : ~m1418_8 +# 1420| m1420_7(unknown) = Chi : total:m1418_8, partial:m1420_6 +# 1420| v1420_8(void) = ^BufferReadSideEffect[0] : &:r1420_4, ~m1420_7 +# 1421| r1421_1(glval) = FunctionAddress[acceptRef] : +# 1421| r1421_2(glval) = VariableAddress[#temp1421:23] : +# 1421| m1421_3(String) = Uninitialized[#temp1421:23] : &:r1421_2 +# 1421| m1421_4(unknown) = Chi : total:m1420_7, partial:m1421_3 # 1421| r1421_5(glval) = FunctionAddress[String] : # 1421| r1421_6(glval) = StringConstant["foo"] : # 1421| r1421_7(char *) = Convert : r1421_6 # 1421| v1421_8(void) = Call[String] : func:r1421_5, this:r1421_2, 0:r1421_7 # 1421| m1421_9(unknown) = ^CallSideEffect : ~m1421_4 # 1421| m1421_10(unknown) = Chi : total:m1421_4, partial:m1421_9 -# 1421| v1421_11(void) = ^BufferReadSideEffect[0] : &:r1421_7, ~m1414_3 +# 1421| v1421_11(void) = ^BufferReadSideEffect[0] : &:r1421_7, ~m1416_3 # 1421| m1421_12(String) = ^IndirectMayWriteSideEffect[-1] : &:r1421_2 # 1421| m1421_13(unknown) = Chi : total:m1421_10, partial:m1421_12 -# 1421| r1421_14(String) = Load[#temp1421:25] : &:r1421_2, ~m1421_13 -# 1421| v1421_15(void) = Call[acceptValue] : func:r1421_1, 0:r1421_14 +# 1421| r1421_14(String &) = CopyValue : r1421_2 +# 1421| v1421_15(void) = Call[acceptRef] : func:r1421_1, 0:r1421_14 # 1421| m1421_16(unknown) = ^CallSideEffect : ~m1421_13 # 1421| m1421_17(unknown) = Chi : total:m1421_13, partial:m1421_16 -# 1421| r1421_18(glval) = CopyValue : r1421_2 -# 1421| r1421_19(glval) = FunctionAddress[~String] : -# 1421| v1421_20(void) = Call[~String] : func:r1421_19, this:r1421_18 -# 1421| m1421_21(unknown) = ^CallSideEffect : ~m1421_17 -# 1421| m1421_22(unknown) = Chi : total:m1421_17, partial:m1421_21 -# 1421| v1421_23(void) = ^IndirectReadSideEffect[-1] : &:r1421_18, ~m1421_22 -# 1421| m1421_24(String) = ^IndirectMayWriteSideEffect[-1] : &:r1421_18 -# 1421| m1421_25(unknown) = Chi : total:m1421_22, partial:m1421_24 -# 1422| r1422_1(glval) = VariableAddress[#temp1422:5] : -# 1422| m1422_2(String) = Uninitialized[#temp1422:5] : &:r1422_1 -# 1422| m1422_3(unknown) = Chi : total:m1421_25, partial:m1422_2 -# 1422| r1422_4(glval) = FunctionAddress[String] : -# 1422| v1422_5(void) = Call[String] : func:r1422_4, this:r1422_1 -# 1422| m1422_6(unknown) = ^CallSideEffect : ~m1422_3 -# 1422| m1422_7(unknown) = Chi : total:m1422_3, partial:m1422_6 -# 1422| m1422_8(String) = ^IndirectMayWriteSideEffect[-1] : &:r1422_1 -# 1422| m1422_9(unknown) = Chi : total:m1422_7, partial:m1422_8 -# 1422| r1422_10(glval) = Convert : r1422_1 -# 1422| r1422_11(glval) = FunctionAddress[c_str] : -# 1422| r1422_12(char *) = Call[c_str] : func:r1422_11, this:r1422_10 -# 1422| m1422_13(unknown) = ^CallSideEffect : ~m1422_9 -# 1422| m1422_14(unknown) = Chi : total:m1422_9, partial:m1422_13 -# 1422| v1422_15(void) = ^IndirectReadSideEffect[-1] : &:r1422_10, ~m1422_14 -# 1422| r1422_16(glval) = CopyValue : r1422_1 -# 1422| r1422_17(glval) = FunctionAddress[~String] : -# 1422| v1422_18(void) = Call[~String] : func:r1422_17, this:r1422_16 -# 1422| m1422_19(unknown) = ^CallSideEffect : ~m1422_14 -# 1422| m1422_20(unknown) = Chi : total:m1422_14, partial:m1422_19 -# 1422| v1422_21(void) = ^IndirectReadSideEffect[-1] : &:r1422_16, ~m1422_20 -# 1422| m1422_22(String) = ^IndirectMayWriteSideEffect[-1] : &:r1422_16 -# 1422| m1422_23(unknown) = Chi : total:m1422_20, partial:m1422_22 -# 1423| r1423_1(glval) = VariableAddress[#temp1423:5] : -# 1423| r1423_2(glval) = FunctionAddress[returnValue] : -# 1423| r1423_3(String) = Call[returnValue] : func:r1423_2 -# 1423| m1423_4(unknown) = ^CallSideEffect : ~m1422_23 -# 1423| m1423_5(unknown) = Chi : total:m1422_23, partial:m1423_4 -# 1423| m1423_6(String) = Store[#temp1423:5] : &:r1423_1, r1423_3 -# 1423| m1423_7(unknown) = Chi : total:m1423_5, partial:m1423_6 -# 1423| r1423_8(glval) = Convert : r1423_1 -# 1423| r1423_9(glval) = FunctionAddress[c_str] : -# 1423| r1423_10(char *) = Call[c_str] : func:r1423_9, this:r1423_8 -# 1423| m1423_11(unknown) = ^CallSideEffect : ~m1423_7 -# 1423| m1423_12(unknown) = Chi : total:m1423_7, partial:m1423_11 -# 1423| v1423_13(void) = ^IndirectReadSideEffect[-1] : &:r1423_8, ~m1423_12 -# 1423| r1423_14(glval) = CopyValue : r1423_1 -# 1423| r1423_15(glval) = FunctionAddress[~String] : -# 1423| v1423_16(void) = Call[~String] : func:r1423_15, this:r1423_14 -# 1423| m1423_17(unknown) = ^CallSideEffect : ~m1423_12 -# 1423| m1423_18(unknown) = Chi : total:m1423_12, partial:m1423_17 -# 1423| v1423_19(void) = ^IndirectReadSideEffect[-1] : &:r1423_14, ~m1423_18 -# 1423| m1423_20(String) = ^IndirectMayWriteSideEffect[-1] : &:r1423_14 -# 1423| m1423_21(unknown) = Chi : total:m1423_18, partial:m1423_20 +# 1421| v1421_18(void) = ^BufferReadSideEffect[0] : &:r1421_14, ~m1421_17 +# 1421| r1421_19(glval) = CopyValue : r1421_2 +# 1421| r1421_20(glval) = FunctionAddress[~String] : +# 1421| v1421_21(void) = Call[~String] : func:r1421_20, this:r1421_19 +# 1421| m1421_22(unknown) = ^CallSideEffect : ~m1421_17 +# 1421| m1421_23(unknown) = Chi : total:m1421_17, partial:m1421_22 +# 1421| v1421_24(void) = ^IndirectReadSideEffect[-1] : &:r1421_19, ~m1421_23 +# 1421| m1421_25(String) = ^IndirectMayWriteSideEffect[-1] : &:r1421_19 +# 1421| m1421_26(unknown) = Chi : total:m1421_23, partial:m1421_25 +# 1422| r1422_1(glval) = FunctionAddress[acceptValue] : +# 1422| r1422_2(glval) = VariableAddress[#temp1422:17] : +# 1422| m1422_3(String) = Uninitialized[#temp1422:17] : &:r1422_2 +# 1422| m1422_4(unknown) = Chi : total:m1421_26, partial:m1422_3 +# 1422| r1422_5(glval) = FunctionAddress[String] : +# 1422| r1422_6(glval) = VariableAddress[s] : +# 1422| r1422_7(glval) = Convert : r1422_6 +# 1422| r1422_8(String &) = CopyValue : r1422_7 +# 1422| v1422_9(void) = Call[String] : func:r1422_5, this:r1422_2, 0:r1422_8 +# 1422| m1422_10(unknown) = ^CallSideEffect : ~m1422_4 +# 1422| m1422_11(unknown) = Chi : total:m1422_4, partial:m1422_10 +# 1422| v1422_12(void) = ^BufferReadSideEffect[0] : &:r1422_8, ~m1422_11 +# 1422| m1422_13(String) = ^IndirectMayWriteSideEffect[-1] : &:r1422_2 +# 1422| m1422_14(unknown) = Chi : total:m1422_11, partial:m1422_13 +# 1422| r1422_15(String) = Load[#temp1422:17] : &:r1422_2, ~m1422_14 +# 1422| v1422_16(void) = Call[acceptValue] : func:r1422_1, 0:r1422_15 +# 1422| m1422_17(unknown) = ^CallSideEffect : ~m1422_14 +# 1422| m1422_18(unknown) = Chi : total:m1422_14, partial:m1422_17 +# 1422| r1422_19(glval) = CopyValue : r1422_2 +# 1422| r1422_20(glval) = FunctionAddress[~String] : +# 1422| v1422_21(void) = Call[~String] : func:r1422_20, this:r1422_19 +# 1422| m1422_22(unknown) = ^CallSideEffect : ~m1422_18 +# 1422| m1422_23(unknown) = Chi : total:m1422_18, partial:m1422_22 +# 1422| v1422_24(void) = ^IndirectReadSideEffect[-1] : &:r1422_19, ~m1422_23 +# 1422| m1422_25(String) = ^IndirectMayWriteSideEffect[-1] : &:r1422_19 +# 1422| m1422_26(unknown) = Chi : total:m1422_23, partial:m1422_25 +# 1423| r1423_1(glval) = FunctionAddress[acceptValue] : +# 1423| r1423_2(glval) = VariableAddress[#temp1423:25] : +# 1423| m1423_3(String) = Uninitialized[#temp1423:25] : &:r1423_2 +# 1423| m1423_4(unknown) = Chi : total:m1422_26, partial:m1423_3 +# 1423| r1423_5(glval) = FunctionAddress[String] : +# 1423| r1423_6(glval) = StringConstant["foo"] : +# 1423| r1423_7(char *) = Convert : r1423_6 +# 1423| v1423_8(void) = Call[String] : func:r1423_5, this:r1423_2, 0:r1423_7 +# 1423| m1423_9(unknown) = ^CallSideEffect : ~m1423_4 +# 1423| m1423_10(unknown) = Chi : total:m1423_4, partial:m1423_9 +# 1423| v1423_11(void) = ^BufferReadSideEffect[0] : &:r1423_7, ~m1416_3 +# 1423| m1423_12(String) = ^IndirectMayWriteSideEffect[-1] : &:r1423_2 +# 1423| m1423_13(unknown) = Chi : total:m1423_10, partial:m1423_12 +# 1423| r1423_14(String) = Load[#temp1423:25] : &:r1423_2, ~m1423_13 +# 1423| v1423_15(void) = Call[acceptValue] : func:r1423_1, 0:r1423_14 +# 1423| m1423_16(unknown) = ^CallSideEffect : ~m1423_13 +# 1423| m1423_17(unknown) = Chi : total:m1423_13, partial:m1423_16 +# 1423| r1423_18(glval) = CopyValue : r1423_2 +# 1423| r1423_19(glval) = FunctionAddress[~String] : +# 1423| v1423_20(void) = Call[~String] : func:r1423_19, this:r1423_18 +# 1423| m1423_21(unknown) = ^CallSideEffect : ~m1423_17 +# 1423| m1423_22(unknown) = Chi : total:m1423_17, partial:m1423_21 +# 1423| v1423_23(void) = ^IndirectReadSideEffect[-1] : &:r1423_18, ~m1423_22 +# 1423| m1423_24(String) = ^IndirectMayWriteSideEffect[-1] : &:r1423_18 +# 1423| m1423_25(unknown) = Chi : total:m1423_22, partial:m1423_24 +# 1424| r1424_1(glval) = VariableAddress[#temp1424:5] : +# 1424| m1424_2(String) = Uninitialized[#temp1424:5] : &:r1424_1 +# 1424| m1424_3(unknown) = Chi : total:m1423_25, partial:m1424_2 +# 1424| r1424_4(glval) = FunctionAddress[String] : +# 1424| v1424_5(void) = Call[String] : func:r1424_4, this:r1424_1 +# 1424| m1424_6(unknown) = ^CallSideEffect : ~m1424_3 +# 1424| m1424_7(unknown) = Chi : total:m1424_3, partial:m1424_6 +# 1424| m1424_8(String) = ^IndirectMayWriteSideEffect[-1] : &:r1424_1 +# 1424| m1424_9(unknown) = Chi : total:m1424_7, partial:m1424_8 +# 1424| r1424_10(glval) = Convert : r1424_1 +# 1424| r1424_11(glval) = FunctionAddress[c_str] : +# 1424| r1424_12(char *) = Call[c_str] : func:r1424_11, this:r1424_10 +# 1424| m1424_13(unknown) = ^CallSideEffect : ~m1424_9 +# 1424| m1424_14(unknown) = Chi : total:m1424_9, partial:m1424_13 +# 1424| v1424_15(void) = ^IndirectReadSideEffect[-1] : &:r1424_10, ~m1424_14 +# 1424| r1424_16(glval) = CopyValue : r1424_1 +# 1424| r1424_17(glval) = FunctionAddress[~String] : +# 1424| v1424_18(void) = Call[~String] : func:r1424_17, this:r1424_16 +# 1424| m1424_19(unknown) = ^CallSideEffect : ~m1424_14 +# 1424| m1424_20(unknown) = Chi : total:m1424_14, partial:m1424_19 +# 1424| v1424_21(void) = ^IndirectReadSideEffect[-1] : &:r1424_16, ~m1424_20 +# 1424| m1424_22(String) = ^IndirectMayWriteSideEffect[-1] : &:r1424_16 +# 1424| m1424_23(unknown) = Chi : total:m1424_20, partial:m1424_22 # 1425| r1425_1(glval) = VariableAddress[#temp1425:5] : -# 1425| r1425_2(glval) = FunctionAddress[defaultConstruct] : -# 1425| r1425_3(String) = Call[defaultConstruct] : func:r1425_2 -# 1425| m1425_4(unknown) = ^CallSideEffect : ~m1423_21 -# 1425| m1425_5(unknown) = Chi : total:m1423_21, partial:m1425_4 +# 1425| r1425_2(glval) = FunctionAddress[returnValue] : +# 1425| r1425_3(String) = Call[returnValue] : func:r1425_2 +# 1425| m1425_4(unknown) = ^CallSideEffect : ~m1424_23 +# 1425| m1425_5(unknown) = Chi : total:m1424_23, partial:m1425_4 # 1425| m1425_6(String) = Store[#temp1425:5] : &:r1425_1, r1425_3 # 1425| m1425_7(unknown) = Chi : total:m1425_5, partial:m1425_6 -# 1425| r1425_8(glval) = CopyValue : r1425_1 -# 1425| r1425_9(glval) = FunctionAddress[~String] : -# 1425| v1425_10(void) = Call[~String] : func:r1425_9, this:r1425_8 +# 1425| r1425_8(glval) = Convert : r1425_1 +# 1425| r1425_9(glval) = FunctionAddress[c_str] : +# 1425| r1425_10(char *) = Call[c_str] : func:r1425_9, this:r1425_8 # 1425| m1425_11(unknown) = ^CallSideEffect : ~m1425_7 # 1425| m1425_12(unknown) = Chi : total:m1425_7, partial:m1425_11 # 1425| v1425_13(void) = ^IndirectReadSideEffect[-1] : &:r1425_8, ~m1425_12 -# 1425| m1425_14(String) = ^IndirectMayWriteSideEffect[-1] : &:r1425_8 -# 1425| m1425_15(unknown) = Chi : total:m1425_12, partial:m1425_14 -# 1426| v1426_1(void) = NoOp : -# 1426| r1426_2(glval) = CopyValue : r1416_2 -# 1426| r1426_3(glval) = FunctionAddress[~String] : -# 1426| v1426_4(void) = Call[~String] : func:r1426_3, this:r1426_2 -# 1426| m1426_5(unknown) = ^CallSideEffect : ~m1425_15 -# 1426| m1426_6(unknown) = Chi : total:m1425_15, partial:m1426_5 -# 1426| v1426_7(void) = ^IndirectReadSideEffect[-1] : &:r1426_2, ~m1426_6 -# 1426| m1426_8(String) = ^IndirectMayWriteSideEffect[-1] : &:r1426_2 -# 1426| m1426_9(unknown) = Chi : total:m1426_6, partial:m1426_8 -# 1426| r1426_10(glval) = VariableAddress[s] : -# 1426| r1426_11(glval) = FunctionAddress[~String] : -# 1426| v1426_12(void) = Call[~String] : func:r1426_11, this:r1426_10 -# 1426| m1426_13(unknown) = ^CallSideEffect : ~m1426_9 -# 1426| m1426_14(unknown) = Chi : total:m1426_9, partial:m1426_13 -# 1426| v1426_15(void) = ^IndirectReadSideEffect[-1] : &:r1426_10, ~m1426_14 -# 1426| m1426_16(String) = ^IndirectMayWriteSideEffect[-1] : &:r1426_10 -# 1426| m1426_17(unknown) = Chi : total:m1426_14, partial:m1426_16 -# 1414| v1414_5(void) = ReturnVoid : -# 1414| v1414_6(void) = AliasedUse : ~m1426_14 -# 1414| v1414_7(void) = ExitFunction : - -# 1428| void temporary_destructor_only() -# 1428| Block 0 -# 1428| v1428_1(void) = EnterFunction : -# 1428| m1428_2(unknown) = AliasedDefinition : -# 1428| m1428_3(unknown) = InitializeNonLocal : -# 1428| m1428_4(unknown) = Chi : total:m1428_2, partial:m1428_3 -# 1429| r1429_1(glval) = VariableAddress[d] : -# 1429| r1429_2(glval) = FunctionAddress[returnValue] : -# 1429| r1429_3(destructor_only) = Call[returnValue] : func:r1429_2 -# 1429| m1429_4(unknown) = ^CallSideEffect : ~m1428_4 -# 1429| m1429_5(unknown) = Chi : total:m1428_4, partial:m1429_4 -# 1429| m1429_6(destructor_only) = Store[d] : &:r1429_1, r1429_3 -# 1429| m1429_7(unknown) = Chi : total:m1429_5, partial:m1429_6 -# 1430| r1430_1(glval) = VariableAddress[rd] : -# 1430| r1430_2(glval) = VariableAddress[#temp1430:33] : -# 1430| r1430_3(glval) = FunctionAddress[returnValue] : -# 1430| r1430_4(destructor_only) = Call[returnValue] : func:r1430_3 -# 1430| m1430_5(unknown) = ^CallSideEffect : ~m1429_7 -# 1430| m1430_6(unknown) = Chi : total:m1429_7, partial:m1430_5 -# 1430| m1430_7(destructor_only) = Store[#temp1430:33] : &:r1430_2, r1430_4 -# 1430| m1430_8(unknown) = Chi : total:m1430_6, partial:m1430_7 -# 1430| r1430_9(glval) = Convert : r1430_2 -# 1430| r1430_10(destructor_only &) = CopyValue : r1430_9 -# 1430| m1430_11(destructor_only &) = Store[rd] : &:r1430_1, r1430_10 -# 1431| r1431_1(glval) = VariableAddress[d2] : -# 1431| m1431_2(destructor_only) = Uninitialized[d2] : &:r1431_1 -# 1431| m1431_3(unknown) = Chi : total:m1430_8, partial:m1431_2 -# 1432| r1432_1(glval) = FunctionAddress[acceptRef] : -# 1432| r1432_2(glval) = VariableAddress[d] : -# 1432| r1432_3(glval) = Convert : r1432_2 -# 1432| r1432_4(destructor_only &) = CopyValue : r1432_3 -# 1432| v1432_5(void) = Call[acceptRef] : func:r1432_1, 0:r1432_4 -# 1432| m1432_6(unknown) = ^CallSideEffect : ~m1431_3 -# 1432| m1432_7(unknown) = Chi : total:m1431_3, partial:m1432_6 -# 1432| v1432_8(void) = ^BufferReadSideEffect[0] : &:r1432_4, ~m1432_7 -# 1433| r1433_1(glval) = FunctionAddress[acceptValue] : -# 1433| r1433_2(glval) = VariableAddress[#temp1433:17] : -# 1433| r1433_3(glval) = VariableAddress[d] : -# 1433| r1433_4(destructor_only) = Load[d] : &:r1433_3, ~m1432_7 -# 1433| m1433_5(destructor_only) = Store[#temp1433:17] : &:r1433_2, r1433_4 -# 1433| m1433_6(unknown) = Chi : total:m1432_7, partial:m1433_5 -# 1433| r1433_7(destructor_only) = Load[#temp1433:17] : &:r1433_2, m1433_5 -# 1433| v1433_8(void) = Call[acceptValue] : func:r1433_1, 0:r1433_7 -# 1433| m1433_9(unknown) = ^CallSideEffect : ~m1433_6 -# 1433| m1433_10(unknown) = Chi : total:m1433_6, partial:m1433_9 -# 1433| r1433_11(glval) = CopyValue : r1433_2 -# 1433| r1433_12(glval) = FunctionAddress[~destructor_only] : -# 1433| v1433_13(void) = Call[~destructor_only] : func:r1433_12, this:r1433_11 -# 1433| m1433_14(unknown) = ^CallSideEffect : ~m1433_10 -# 1433| m1433_15(unknown) = Chi : total:m1433_10, partial:m1433_14 -# 1433| v1433_16(void) = ^IndirectReadSideEffect[-1] : &:r1433_11, ~m1433_15 -# 1433| m1433_17(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1433_11 -# 1433| m1433_18(unknown) = Chi : total:m1433_15, partial:m1433_17 -# 1434| r1434_1(glval) = VariableAddress[#temp1434:5] : -# 1434| r1434_2(destructor_only) = Constant[0] : -# 1434| m1434_3(destructor_only) = Store[#temp1434:5] : &:r1434_1, r1434_2 -# 1434| m1434_4(unknown) = Chi : total:m1433_18, partial:m1434_3 -# 1434| r1434_5(glval) = FunctionAddress[method] : -# 1434| v1434_6(void) = Call[method] : func:r1434_5, this:r1434_1 -# 1434| m1434_7(unknown) = ^CallSideEffect : ~m1434_4 -# 1434| m1434_8(unknown) = Chi : total:m1434_4, partial:m1434_7 -# 1434| v1434_9(void) = ^IndirectReadSideEffect[-1] : &:r1434_1, ~m1434_8 -# 1434| m1434_10(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1434_1 -# 1434| m1434_11(unknown) = Chi : total:m1434_8, partial:m1434_10 -# 1434| r1434_12(glval) = CopyValue : r1434_1 -# 1434| r1434_13(glval) = FunctionAddress[~destructor_only] : -# 1434| v1434_14(void) = Call[~destructor_only] : func:r1434_13, this:r1434_12 -# 1434| m1434_15(unknown) = ^CallSideEffect : ~m1434_11 -# 1434| m1434_16(unknown) = Chi : total:m1434_11, partial:m1434_15 -# 1434| v1434_17(void) = ^IndirectReadSideEffect[-1] : &:r1434_12, ~m1434_16 -# 1434| m1434_18(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1434_12 -# 1434| m1434_19(unknown) = Chi : total:m1434_16, partial:m1434_18 -# 1435| r1435_1(glval) = VariableAddress[#temp1435:5] : -# 1435| r1435_2(glval) = FunctionAddress[returnValue] : -# 1435| r1435_3(destructor_only) = Call[returnValue] : func:r1435_2 -# 1435| m1435_4(unknown) = ^CallSideEffect : ~m1434_19 -# 1435| m1435_5(unknown) = Chi : total:m1434_19, partial:m1435_4 -# 1435| m1435_6(destructor_only) = Store[#temp1435:5] : &:r1435_1, r1435_3 -# 1435| m1435_7(unknown) = Chi : total:m1435_5, partial:m1435_6 -# 1435| r1435_8(glval) = FunctionAddress[method] : -# 1435| v1435_9(void) = Call[method] : func:r1435_8, this:r1435_1 -# 1435| m1435_10(unknown) = ^CallSideEffect : ~m1435_7 -# 1435| m1435_11(unknown) = Chi : total:m1435_7, partial:m1435_10 -# 1435| v1435_12(void) = ^IndirectReadSideEffect[-1] : &:r1435_1, ~m1435_11 -# 1435| m1435_13(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1435_1 -# 1435| m1435_14(unknown) = Chi : total:m1435_11, partial:m1435_13 -# 1435| r1435_15(glval) = CopyValue : r1435_1 -# 1435| r1435_16(glval) = FunctionAddress[~destructor_only] : -# 1435| v1435_17(void) = Call[~destructor_only] : func:r1435_16, this:r1435_15 -# 1435| m1435_18(unknown) = ^CallSideEffect : ~m1435_14 -# 1435| m1435_19(unknown) = Chi : total:m1435_14, partial:m1435_18 -# 1435| v1435_20(void) = ^IndirectReadSideEffect[-1] : &:r1435_15, ~m1435_19 -# 1435| m1435_21(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1435_15 -# 1435| m1435_22(unknown) = Chi : total:m1435_19, partial:m1435_21 +# 1425| r1425_14(glval) = CopyValue : r1425_1 +# 1425| r1425_15(glval) = FunctionAddress[~String] : +# 1425| v1425_16(void) = Call[~String] : func:r1425_15, this:r1425_14 +# 1425| m1425_17(unknown) = ^CallSideEffect : ~m1425_12 +# 1425| m1425_18(unknown) = Chi : total:m1425_12, partial:m1425_17 +# 1425| v1425_19(void) = ^IndirectReadSideEffect[-1] : &:r1425_14, ~m1425_18 +# 1425| m1425_20(String) = ^IndirectMayWriteSideEffect[-1] : &:r1425_14 +# 1425| m1425_21(unknown) = Chi : total:m1425_18, partial:m1425_20 +# 1427| r1427_1(glval) = VariableAddress[#temp1427:5] : +# 1427| r1427_2(glval) = FunctionAddress[defaultConstruct] : +# 1427| r1427_3(String) = Call[defaultConstruct] : func:r1427_2 +# 1427| m1427_4(unknown) = ^CallSideEffect : ~m1425_21 +# 1427| m1427_5(unknown) = Chi : total:m1425_21, partial:m1427_4 +# 1427| m1427_6(String) = Store[#temp1427:5] : &:r1427_1, r1427_3 +# 1427| m1427_7(unknown) = Chi : total:m1427_5, partial:m1427_6 +# 1427| r1427_8(glval) = CopyValue : r1427_1 +# 1427| r1427_9(glval) = FunctionAddress[~String] : +# 1427| v1427_10(void) = Call[~String] : func:r1427_9, this:r1427_8 +# 1427| m1427_11(unknown) = ^CallSideEffect : ~m1427_7 +# 1427| m1427_12(unknown) = Chi : total:m1427_7, partial:m1427_11 +# 1427| v1427_13(void) = ^IndirectReadSideEffect[-1] : &:r1427_8, ~m1427_12 +# 1427| m1427_14(String) = ^IndirectMayWriteSideEffect[-1] : &:r1427_8 +# 1427| m1427_15(unknown) = Chi : total:m1427_12, partial:m1427_14 +# 1428| v1428_1(void) = NoOp : +# 1428| r1428_2(glval) = CopyValue : r1418_2 +# 1428| r1428_3(glval) = FunctionAddress[~String] : +# 1428| v1428_4(void) = Call[~String] : func:r1428_3, this:r1428_2 +# 1428| m1428_5(unknown) = ^CallSideEffect : ~m1427_15 +# 1428| m1428_6(unknown) = Chi : total:m1427_15, partial:m1428_5 +# 1428| v1428_7(void) = ^IndirectReadSideEffect[-1] : &:r1428_2, ~m1428_6 +# 1428| m1428_8(String) = ^IndirectMayWriteSideEffect[-1] : &:r1428_2 +# 1428| m1428_9(unknown) = Chi : total:m1428_6, partial:m1428_8 +# 1428| r1428_10(glval) = VariableAddress[s] : +# 1428| r1428_11(glval) = FunctionAddress[~String] : +# 1428| v1428_12(void) = Call[~String] : func:r1428_11, this:r1428_10 +# 1428| m1428_13(unknown) = ^CallSideEffect : ~m1428_9 +# 1428| m1428_14(unknown) = Chi : total:m1428_9, partial:m1428_13 +# 1428| v1428_15(void) = ^IndirectReadSideEffect[-1] : &:r1428_10, ~m1428_14 +# 1428| m1428_16(String) = ^IndirectMayWriteSideEffect[-1] : &:r1428_10 +# 1428| m1428_17(unknown) = Chi : total:m1428_14, partial:m1428_16 +# 1416| v1416_5(void) = ReturnVoid : +# 1416| v1416_6(void) = AliasedUse : ~m1428_14 +# 1416| v1416_7(void) = ExitFunction : + +# 1430| void temporary_destructor_only() +# 1430| Block 0 +# 1430| v1430_1(void) = EnterFunction : +# 1430| m1430_2(unknown) = AliasedDefinition : +# 1430| m1430_3(unknown) = InitializeNonLocal : +# 1430| m1430_4(unknown) = Chi : total:m1430_2, partial:m1430_3 +# 1431| r1431_1(glval) = VariableAddress[d] : +# 1431| r1431_2(glval) = FunctionAddress[returnValue] : +# 1431| r1431_3(destructor_only) = Call[returnValue] : func:r1431_2 +# 1431| m1431_4(unknown) = ^CallSideEffect : ~m1430_4 +# 1431| m1431_5(unknown) = Chi : total:m1430_4, partial:m1431_4 +# 1431| m1431_6(destructor_only) = Store[d] : &:r1431_1, r1431_3 +# 1431| m1431_7(unknown) = Chi : total:m1431_5, partial:m1431_6 +# 1432| r1432_1(glval) = VariableAddress[rd] : +# 1432| r1432_2(glval) = VariableAddress[#temp1432:33] : +# 1432| r1432_3(glval) = FunctionAddress[returnValue] : +# 1432| r1432_4(destructor_only) = Call[returnValue] : func:r1432_3 +# 1432| m1432_5(unknown) = ^CallSideEffect : ~m1431_7 +# 1432| m1432_6(unknown) = Chi : total:m1431_7, partial:m1432_5 +# 1432| m1432_7(destructor_only) = Store[#temp1432:33] : &:r1432_2, r1432_4 +# 1432| m1432_8(unknown) = Chi : total:m1432_6, partial:m1432_7 +# 1432| r1432_9(glval) = Convert : r1432_2 +# 1432| r1432_10(destructor_only &) = CopyValue : r1432_9 +# 1432| m1432_11(destructor_only &) = Store[rd] : &:r1432_1, r1432_10 +# 1433| r1433_1(glval) = VariableAddress[d2] : +# 1433| m1433_2(destructor_only) = Uninitialized[d2] : &:r1433_1 +# 1433| m1433_3(unknown) = Chi : total:m1432_8, partial:m1433_2 +# 1434| r1434_1(glval) = FunctionAddress[acceptRef] : +# 1434| r1434_2(glval) = VariableAddress[d] : +# 1434| r1434_3(glval) = Convert : r1434_2 +# 1434| r1434_4(destructor_only &) = CopyValue : r1434_3 +# 1434| v1434_5(void) = Call[acceptRef] : func:r1434_1, 0:r1434_4 +# 1434| m1434_6(unknown) = ^CallSideEffect : ~m1433_3 +# 1434| m1434_7(unknown) = Chi : total:m1433_3, partial:m1434_6 +# 1434| v1434_8(void) = ^BufferReadSideEffect[0] : &:r1434_4, ~m1434_7 +# 1435| r1435_1(glval) = FunctionAddress[acceptValue] : +# 1435| r1435_2(glval) = VariableAddress[#temp1435:17] : +# 1435| r1435_3(glval) = VariableAddress[d] : +# 1435| r1435_4(destructor_only) = Load[d] : &:r1435_3, ~m1434_7 +# 1435| m1435_5(destructor_only) = Store[#temp1435:17] : &:r1435_2, r1435_4 +# 1435| m1435_6(unknown) = Chi : total:m1434_7, partial:m1435_5 +# 1435| r1435_7(destructor_only) = Load[#temp1435:17] : &:r1435_2, m1435_5 +# 1435| v1435_8(void) = Call[acceptValue] : func:r1435_1, 0:r1435_7 +# 1435| m1435_9(unknown) = ^CallSideEffect : ~m1435_6 +# 1435| m1435_10(unknown) = Chi : total:m1435_6, partial:m1435_9 +# 1435| r1435_11(glval) = CopyValue : r1435_2 +# 1435| r1435_12(glval) = FunctionAddress[~destructor_only] : +# 1435| v1435_13(void) = Call[~destructor_only] : func:r1435_12, this:r1435_11 +# 1435| m1435_14(unknown) = ^CallSideEffect : ~m1435_10 +# 1435| m1435_15(unknown) = Chi : total:m1435_10, partial:m1435_14 +# 1435| v1435_16(void) = ^IndirectReadSideEffect[-1] : &:r1435_11, ~m1435_15 +# 1435| m1435_17(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1435_11 +# 1435| m1435_18(unknown) = Chi : total:m1435_15, partial:m1435_17 +# 1436| r1436_1(glval) = VariableAddress[#temp1436:5] : +# 1436| r1436_2(destructor_only) = Constant[0] : +# 1436| m1436_3(destructor_only) = Store[#temp1436:5] : &:r1436_1, r1436_2 +# 1436| m1436_4(unknown) = Chi : total:m1435_18, partial:m1436_3 +# 1436| r1436_5(glval) = FunctionAddress[method] : +# 1436| v1436_6(void) = Call[method] : func:r1436_5, this:r1436_1 +# 1436| m1436_7(unknown) = ^CallSideEffect : ~m1436_4 +# 1436| m1436_8(unknown) = Chi : total:m1436_4, partial:m1436_7 +# 1436| v1436_9(void) = ^IndirectReadSideEffect[-1] : &:r1436_1, ~m1436_8 +# 1436| m1436_10(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1436_1 +# 1436| m1436_11(unknown) = Chi : total:m1436_8, partial:m1436_10 +# 1436| r1436_12(glval) = CopyValue : r1436_1 +# 1436| r1436_13(glval) = FunctionAddress[~destructor_only] : +# 1436| v1436_14(void) = Call[~destructor_only] : func:r1436_13, this:r1436_12 +# 1436| m1436_15(unknown) = ^CallSideEffect : ~m1436_11 +# 1436| m1436_16(unknown) = Chi : total:m1436_11, partial:m1436_15 +# 1436| v1436_17(void) = ^IndirectReadSideEffect[-1] : &:r1436_12, ~m1436_16 +# 1436| m1436_18(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1436_12 +# 1436| m1436_19(unknown) = Chi : total:m1436_16, partial:m1436_18 # 1437| r1437_1(glval) = VariableAddress[#temp1437:5] : -# 1437| r1437_2(glval) = FunctionAddress[defaultConstruct] : -# 1437| r1437_3(destructor_only) = Call[defaultConstruct] : func:r1437_2 -# 1437| m1437_4(unknown) = ^CallSideEffect : ~m1435_22 -# 1437| m1437_5(unknown) = Chi : total:m1435_22, partial:m1437_4 +# 1437| r1437_2(glval) = FunctionAddress[returnValue] : +# 1437| r1437_3(destructor_only) = Call[returnValue] : func:r1437_2 +# 1437| m1437_4(unknown) = ^CallSideEffect : ~m1436_19 +# 1437| m1437_5(unknown) = Chi : total:m1436_19, partial:m1437_4 # 1437| m1437_6(destructor_only) = Store[#temp1437:5] : &:r1437_1, r1437_3 # 1437| m1437_7(unknown) = Chi : total:m1437_5, partial:m1437_6 -# 1437| r1437_8(glval) = CopyValue : r1437_1 -# 1437| r1437_9(glval) = FunctionAddress[~destructor_only] : -# 1437| v1437_10(void) = Call[~destructor_only] : func:r1437_9, this:r1437_8 -# 1437| m1437_11(unknown) = ^CallSideEffect : ~m1437_7 -# 1437| m1437_12(unknown) = Chi : total:m1437_7, partial:m1437_11 -# 1437| v1437_13(void) = ^IndirectReadSideEffect[-1] : &:r1437_8, ~m1437_12 -# 1437| m1437_14(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1437_8 -# 1437| m1437_15(unknown) = Chi : total:m1437_12, partial:m1437_14 -# 1438| v1438_1(void) = NoOp : -# 1438| r1438_2(glval) = VariableAddress[d2] : -# 1438| r1438_3(glval) = FunctionAddress[~destructor_only] : -# 1438| v1438_4(void) = Call[~destructor_only] : func:r1438_3, this:r1438_2 -# 1438| m1438_5(unknown) = ^CallSideEffect : ~m1437_15 -# 1438| m1438_6(unknown) = Chi : total:m1437_15, partial:m1438_5 -# 1438| v1438_7(void) = ^IndirectReadSideEffect[-1] : &:r1438_2, ~m1438_6 -# 1438| m1438_8(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1438_2 -# 1438| m1438_9(unknown) = Chi : total:m1438_6, partial:m1438_8 -# 1438| r1438_10(glval) = CopyValue : r1430_2 -# 1438| r1438_11(glval) = FunctionAddress[~destructor_only] : -# 1438| v1438_12(void) = Call[~destructor_only] : func:r1438_11, this:r1438_10 -# 1438| m1438_13(unknown) = ^CallSideEffect : ~m1438_9 -# 1438| m1438_14(unknown) = Chi : total:m1438_9, partial:m1438_13 -# 1438| v1438_15(void) = ^IndirectReadSideEffect[-1] : &:r1438_10, ~m1438_14 -# 1438| m1438_16(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1438_10 -# 1438| m1438_17(unknown) = Chi : total:m1438_14, partial:m1438_16 -# 1438| r1438_18(glval) = VariableAddress[d] : -# 1438| r1438_19(glval) = FunctionAddress[~destructor_only] : -# 1438| v1438_20(void) = Call[~destructor_only] : func:r1438_19, this:r1438_18 -# 1438| m1438_21(unknown) = ^CallSideEffect : ~m1438_17 -# 1438| m1438_22(unknown) = Chi : total:m1438_17, partial:m1438_21 -# 1438| v1438_23(void) = ^IndirectReadSideEffect[-1] : &:r1438_18, ~m1438_22 -# 1438| m1438_24(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1438_18 -# 1438| m1438_25(unknown) = Chi : total:m1438_22, partial:m1438_24 -# 1428| v1428_5(void) = ReturnVoid : -# 1428| v1428_6(void) = AliasedUse : ~m1438_22 -# 1428| v1428_7(void) = ExitFunction : - -# 1440| void temporary_copy_constructor() -# 1440| Block 0 -# 1440| v1440_1(void) = EnterFunction : -# 1440| m1440_2(unknown) = AliasedDefinition : -# 1440| m1440_3(unknown) = InitializeNonLocal : -# 1440| m1440_4(unknown) = Chi : total:m1440_2, partial:m1440_3 -# 1441| r1441_1(glval) = VariableAddress[d] : -# 1441| r1441_2(glval) = FunctionAddress[returnValue] : -# 1441| r1441_3(copy_constructor) = Call[returnValue] : func:r1441_2 -# 1441| m1441_4(unknown) = ^CallSideEffect : ~m1440_4 -# 1441| m1441_5(unknown) = Chi : total:m1440_4, partial:m1441_4 -# 1441| m1441_6(copy_constructor) = Store[d] : &:r1441_1, r1441_3 -# 1441| m1441_7(unknown) = Chi : total:m1441_5, partial:m1441_6 -# 1442| r1442_1(glval) = VariableAddress[rd] : -# 1442| r1442_2(glval) = VariableAddress[#temp1442:34] : -# 1442| r1442_3(glval) = FunctionAddress[returnValue] : -# 1442| r1442_4(copy_constructor) = Call[returnValue] : func:r1442_3 -# 1442| m1442_5(unknown) = ^CallSideEffect : ~m1441_7 -# 1442| m1442_6(unknown) = Chi : total:m1441_7, partial:m1442_5 -# 1442| m1442_7(copy_constructor) = Store[#temp1442:34] : &:r1442_2, r1442_4 -# 1442| r1442_8(glval) = Convert : r1442_2 -# 1442| r1442_9(copy_constructor &) = CopyValue : r1442_8 -# 1442| m1442_10(copy_constructor &) = Store[rd] : &:r1442_1, r1442_9 -# 1443| r1443_1(glval) = VariableAddress[d2] : -# 1443| m1443_2(copy_constructor) = Uninitialized[d2] : &:r1443_1 -# 1443| m1443_3(unknown) = Chi : total:m1442_6, partial:m1443_2 -# 1443| r1443_4(glval) = FunctionAddress[copy_constructor] : -# 1443| v1443_5(void) = Call[copy_constructor] : func:r1443_4, this:r1443_1 -# 1443| m1443_6(unknown) = ^CallSideEffect : ~m1443_3 -# 1443| m1443_7(unknown) = Chi : total:m1443_3, partial:m1443_6 -# 1443| m1443_8(copy_constructor) = ^IndirectMayWriteSideEffect[-1] : &:r1443_1 -# 1443| m1443_9(unknown) = Chi : total:m1443_7, partial:m1443_8 -# 1444| r1444_1(glval) = FunctionAddress[acceptRef] : -# 1444| r1444_2(glval) = VariableAddress[d] : -# 1444| r1444_3(glval) = Convert : r1444_2 -# 1444| r1444_4(copy_constructor &) = CopyValue : r1444_3 -# 1444| v1444_5(void) = Call[acceptRef] : func:r1444_1, 0:r1444_4 -# 1444| m1444_6(unknown) = ^CallSideEffect : ~m1443_9 -# 1444| m1444_7(unknown) = Chi : total:m1443_9, partial:m1444_6 -# 1444| v1444_8(void) = ^BufferReadSideEffect[0] : &:r1444_4, ~m1444_7 -# 1445| r1445_1(glval) = FunctionAddress[acceptValue] : -# 1445| r1445_2(glval) = VariableAddress[#temp1445:17] : -# 1445| m1445_3(copy_constructor) = Uninitialized[#temp1445:17] : &:r1445_2 -# 1445| m1445_4(unknown) = Chi : total:m1444_7, partial:m1445_3 -# 1445| r1445_5(glval) = FunctionAddress[copy_constructor] : -# 1445| r1445_6(glval) = VariableAddress[d] : -# 1445| r1445_7(glval) = Convert : r1445_6 -# 1445| r1445_8(copy_constructor &) = CopyValue : r1445_7 -# 1445| v1445_9(void) = Call[copy_constructor] : func:r1445_5, this:r1445_2, 0:r1445_8 -# 1445| m1445_10(unknown) = ^CallSideEffect : ~m1445_4 -# 1445| m1445_11(unknown) = Chi : total:m1445_4, partial:m1445_10 -# 1445| v1445_12(void) = ^BufferReadSideEffect[0] : &:r1445_8, ~m1445_11 -# 1445| m1445_13(copy_constructor) = ^IndirectMayWriteSideEffect[-1] : &:r1445_2 -# 1445| m1445_14(unknown) = Chi : total:m1445_11, partial:m1445_13 -# 1445| r1445_15(copy_constructor) = Load[#temp1445:17] : &:r1445_2, ~m1445_14 -# 1445| v1445_16(void) = Call[acceptValue] : func:r1445_1, 0:r1445_15 -# 1445| m1445_17(unknown) = ^CallSideEffect : ~m1445_14 -# 1445| m1445_18(unknown) = Chi : total:m1445_14, partial:m1445_17 -# 1446| r1446_1(glval) = VariableAddress[#temp1446:5] : -# 1446| m1446_2(copy_constructor) = Uninitialized[#temp1446:5] : &:r1446_1 -# 1446| m1446_3(unknown) = Chi : total:m1445_18, partial:m1446_2 -# 1446| r1446_4(glval) = FunctionAddress[copy_constructor] : -# 1446| v1446_5(void) = Call[copy_constructor] : func:r1446_4, this:r1446_1 -# 1446| m1446_6(unknown) = ^CallSideEffect : ~m1446_3 -# 1446| m1446_7(unknown) = Chi : total:m1446_3, partial:m1446_6 -# 1446| m1446_8(copy_constructor) = ^IndirectMayWriteSideEffect[-1] : &:r1446_1 -# 1446| m1446_9(unknown) = Chi : total:m1446_7, partial:m1446_8 -# 1446| r1446_10(glval) = FunctionAddress[method] : -# 1446| v1446_11(void) = Call[method] : func:r1446_10, this:r1446_1 -# 1446| m1446_12(unknown) = ^CallSideEffect : ~m1446_9 -# 1446| m1446_13(unknown) = Chi : total:m1446_9, partial:m1446_12 -# 1446| v1446_14(void) = ^IndirectReadSideEffect[-1] : &:r1446_1, ~m1446_13 -# 1446| m1446_15(copy_constructor) = ^IndirectMayWriteSideEffect[-1] : &:r1446_1 -# 1446| m1446_16(unknown) = Chi : total:m1446_13, partial:m1446_15 -# 1447| r1447_1(glval) = VariableAddress[#temp1447:5] : -# 1447| r1447_2(glval) = FunctionAddress[returnValue] : -# 1447| r1447_3(copy_constructor) = Call[returnValue] : func:r1447_2 -# 1447| m1447_4(unknown) = ^CallSideEffect : ~m1446_16 -# 1447| m1447_5(unknown) = Chi : total:m1446_16, partial:m1447_4 -# 1447| m1447_6(copy_constructor) = Store[#temp1447:5] : &:r1447_1, r1447_3 -# 1447| m1447_7(unknown) = Chi : total:m1447_5, partial:m1447_6 -# 1447| r1447_8(glval) = FunctionAddress[method] : -# 1447| v1447_9(void) = Call[method] : func:r1447_8, this:r1447_1 -# 1447| m1447_10(unknown) = ^CallSideEffect : ~m1447_7 -# 1447| m1447_11(unknown) = Chi : total:m1447_7, partial:m1447_10 -# 1447| v1447_12(void) = ^IndirectReadSideEffect[-1] : &:r1447_1, ~m1447_11 -# 1447| m1447_13(copy_constructor) = ^IndirectMayWriteSideEffect[-1] : &:r1447_1 +# 1437| r1437_8(glval) = FunctionAddress[method] : +# 1437| v1437_9(void) = Call[method] : func:r1437_8, this:r1437_1 +# 1437| m1437_10(unknown) = ^CallSideEffect : ~m1437_7 +# 1437| m1437_11(unknown) = Chi : total:m1437_7, partial:m1437_10 +# 1437| v1437_12(void) = ^IndirectReadSideEffect[-1] : &:r1437_1, ~m1437_11 +# 1437| m1437_13(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1437_1 +# 1437| m1437_14(unknown) = Chi : total:m1437_11, partial:m1437_13 +# 1437| r1437_15(glval) = CopyValue : r1437_1 +# 1437| r1437_16(glval) = FunctionAddress[~destructor_only] : +# 1437| v1437_17(void) = Call[~destructor_only] : func:r1437_16, this:r1437_15 +# 1437| m1437_18(unknown) = ^CallSideEffect : ~m1437_14 +# 1437| m1437_19(unknown) = Chi : total:m1437_14, partial:m1437_18 +# 1437| v1437_20(void) = ^IndirectReadSideEffect[-1] : &:r1437_15, ~m1437_19 +# 1437| m1437_21(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1437_15 +# 1437| m1437_22(unknown) = Chi : total:m1437_19, partial:m1437_21 +# 1439| r1439_1(glval) = VariableAddress[#temp1439:5] : +# 1439| r1439_2(glval) = FunctionAddress[defaultConstruct] : +# 1439| r1439_3(destructor_only) = Call[defaultConstruct] : func:r1439_2 +# 1439| m1439_4(unknown) = ^CallSideEffect : ~m1437_22 +# 1439| m1439_5(unknown) = Chi : total:m1437_22, partial:m1439_4 +# 1439| m1439_6(destructor_only) = Store[#temp1439:5] : &:r1439_1, r1439_3 +# 1439| m1439_7(unknown) = Chi : total:m1439_5, partial:m1439_6 +# 1439| r1439_8(glval) = CopyValue : r1439_1 +# 1439| r1439_9(glval) = FunctionAddress[~destructor_only] : +# 1439| v1439_10(void) = Call[~destructor_only] : func:r1439_9, this:r1439_8 +# 1439| m1439_11(unknown) = ^CallSideEffect : ~m1439_7 +# 1439| m1439_12(unknown) = Chi : total:m1439_7, partial:m1439_11 +# 1439| v1439_13(void) = ^IndirectReadSideEffect[-1] : &:r1439_8, ~m1439_12 +# 1439| m1439_14(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1439_8 +# 1439| m1439_15(unknown) = Chi : total:m1439_12, partial:m1439_14 +# 1440| v1440_1(void) = NoOp : +# 1440| r1440_2(glval) = VariableAddress[d2] : +# 1440| r1440_3(glval) = FunctionAddress[~destructor_only] : +# 1440| v1440_4(void) = Call[~destructor_only] : func:r1440_3, this:r1440_2 +# 1440| m1440_5(unknown) = ^CallSideEffect : ~m1439_15 +# 1440| m1440_6(unknown) = Chi : total:m1439_15, partial:m1440_5 +# 1440| v1440_7(void) = ^IndirectReadSideEffect[-1] : &:r1440_2, ~m1440_6 +# 1440| m1440_8(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1440_2 +# 1440| m1440_9(unknown) = Chi : total:m1440_6, partial:m1440_8 +# 1440| r1440_10(glval) = CopyValue : r1432_2 +# 1440| r1440_11(glval) = FunctionAddress[~destructor_only] : +# 1440| v1440_12(void) = Call[~destructor_only] : func:r1440_11, this:r1440_10 +# 1440| m1440_13(unknown) = ^CallSideEffect : ~m1440_9 +# 1440| m1440_14(unknown) = Chi : total:m1440_9, partial:m1440_13 +# 1440| v1440_15(void) = ^IndirectReadSideEffect[-1] : &:r1440_10, ~m1440_14 +# 1440| m1440_16(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1440_10 +# 1440| m1440_17(unknown) = Chi : total:m1440_14, partial:m1440_16 +# 1440| r1440_18(glval) = VariableAddress[d] : +# 1440| r1440_19(glval) = FunctionAddress[~destructor_only] : +# 1440| v1440_20(void) = Call[~destructor_only] : func:r1440_19, this:r1440_18 +# 1440| m1440_21(unknown) = ^CallSideEffect : ~m1440_17 +# 1440| m1440_22(unknown) = Chi : total:m1440_17, partial:m1440_21 +# 1440| v1440_23(void) = ^IndirectReadSideEffect[-1] : &:r1440_18, ~m1440_22 +# 1440| m1440_24(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1440_18 +# 1440| m1440_25(unknown) = Chi : total:m1440_22, partial:m1440_24 +# 1430| v1430_5(void) = ReturnVoid : +# 1430| v1430_6(void) = AliasedUse : ~m1440_22 +# 1430| v1430_7(void) = ExitFunction : + +# 1442| void temporary_copy_constructor() +# 1442| Block 0 +# 1442| v1442_1(void) = EnterFunction : +# 1442| m1442_2(unknown) = AliasedDefinition : +# 1442| m1442_3(unknown) = InitializeNonLocal : +# 1442| m1442_4(unknown) = Chi : total:m1442_2, partial:m1442_3 +# 1443| r1443_1(glval) = VariableAddress[d] : +# 1443| r1443_2(glval) = FunctionAddress[returnValue] : +# 1443| r1443_3(copy_constructor) = Call[returnValue] : func:r1443_2 +# 1443| m1443_4(unknown) = ^CallSideEffect : ~m1442_4 +# 1443| m1443_5(unknown) = Chi : total:m1442_4, partial:m1443_4 +# 1443| m1443_6(copy_constructor) = Store[d] : &:r1443_1, r1443_3 +# 1443| m1443_7(unknown) = Chi : total:m1443_5, partial:m1443_6 +# 1444| r1444_1(glval) = VariableAddress[rd] : +# 1444| r1444_2(glval) = VariableAddress[#temp1444:34] : +# 1444| r1444_3(glval) = FunctionAddress[returnValue] : +# 1444| r1444_4(copy_constructor) = Call[returnValue] : func:r1444_3 +# 1444| m1444_5(unknown) = ^CallSideEffect : ~m1443_7 +# 1444| m1444_6(unknown) = Chi : total:m1443_7, partial:m1444_5 +# 1444| m1444_7(copy_constructor) = Store[#temp1444:34] : &:r1444_2, r1444_4 +# 1444| r1444_8(glval) = Convert : r1444_2 +# 1444| r1444_9(copy_constructor &) = CopyValue : r1444_8 +# 1444| m1444_10(copy_constructor &) = Store[rd] : &:r1444_1, r1444_9 +# 1445| r1445_1(glval) = VariableAddress[d2] : +# 1445| m1445_2(copy_constructor) = Uninitialized[d2] : &:r1445_1 +# 1445| m1445_3(unknown) = Chi : total:m1444_6, partial:m1445_2 +# 1445| r1445_4(glval) = FunctionAddress[copy_constructor] : +# 1445| v1445_5(void) = Call[copy_constructor] : func:r1445_4, this:r1445_1 +# 1445| m1445_6(unknown) = ^CallSideEffect : ~m1445_3 +# 1445| m1445_7(unknown) = Chi : total:m1445_3, partial:m1445_6 +# 1445| m1445_8(copy_constructor) = ^IndirectMayWriteSideEffect[-1] : &:r1445_1 +# 1445| m1445_9(unknown) = Chi : total:m1445_7, partial:m1445_8 +# 1446| r1446_1(glval) = FunctionAddress[acceptRef] : +# 1446| r1446_2(glval) = VariableAddress[d] : +# 1446| r1446_3(glval) = Convert : r1446_2 +# 1446| r1446_4(copy_constructor &) = CopyValue : r1446_3 +# 1446| v1446_5(void) = Call[acceptRef] : func:r1446_1, 0:r1446_4 +# 1446| m1446_6(unknown) = ^CallSideEffect : ~m1445_9 +# 1446| m1446_7(unknown) = Chi : total:m1445_9, partial:m1446_6 +# 1446| v1446_8(void) = ^BufferReadSideEffect[0] : &:r1446_4, ~m1446_7 +# 1447| r1447_1(glval) = FunctionAddress[acceptValue] : +# 1447| r1447_2(glval) = VariableAddress[#temp1447:17] : +# 1447| m1447_3(copy_constructor) = Uninitialized[#temp1447:17] : &:r1447_2 +# 1447| m1447_4(unknown) = Chi : total:m1446_7, partial:m1447_3 +# 1447| r1447_5(glval) = FunctionAddress[copy_constructor] : +# 1447| r1447_6(glval) = VariableAddress[d] : +# 1447| r1447_7(glval) = Convert : r1447_6 +# 1447| r1447_8(copy_constructor &) = CopyValue : r1447_7 +# 1447| v1447_9(void) = Call[copy_constructor] : func:r1447_5, this:r1447_2, 0:r1447_8 +# 1447| m1447_10(unknown) = ^CallSideEffect : ~m1447_4 +# 1447| m1447_11(unknown) = Chi : total:m1447_4, partial:m1447_10 +# 1447| v1447_12(void) = ^BufferReadSideEffect[0] : &:r1447_8, ~m1447_11 +# 1447| m1447_13(copy_constructor) = ^IndirectMayWriteSideEffect[-1] : &:r1447_2 # 1447| m1447_14(unknown) = Chi : total:m1447_11, partial:m1447_13 +# 1447| r1447_15(copy_constructor) = Load[#temp1447:17] : &:r1447_2, ~m1447_14 +# 1447| v1447_16(void) = Call[acceptValue] : func:r1447_1, 0:r1447_15 +# 1447| m1447_17(unknown) = ^CallSideEffect : ~m1447_14 +# 1447| m1447_18(unknown) = Chi : total:m1447_14, partial:m1447_17 # 1448| r1448_1(glval) = VariableAddress[#temp1448:5] : -# 1448| r1448_2(glval) = FunctionAddress[defaultConstruct] : -# 1448| r1448_3(copy_constructor) = Call[defaultConstruct] : func:r1448_2 -# 1448| m1448_4(unknown) = ^CallSideEffect : ~m1447_14 -# 1448| m1448_5(unknown) = Chi : total:m1447_14, partial:m1448_4 -# 1448| m1448_6(copy_constructor) = Store[#temp1448:5] : &:r1448_1, r1448_3 -# 1450| r1450_1(glval) = VariableAddress[y] : -# 1450| r1450_2(glval) = VariableAddress[#temp1450:13] : -# 1450| r1450_3(glval) = FunctionAddress[returnValue] : -# 1450| r1450_4(copy_constructor) = Call[returnValue] : func:r1450_3 -# 1450| m1450_5(unknown) = ^CallSideEffect : ~m1448_5 -# 1450| m1450_6(unknown) = Chi : total:m1448_5, partial:m1450_5 -# 1450| m1450_7(copy_constructor) = Store[#temp1450:13] : &:r1450_2, r1450_4 -# 1450| r1450_8(glval) = FieldAddress[y] : r1450_2 -# 1450| r1450_9(int) = Load[?] : &:r1450_8, ~m1450_7 -# 1450| m1450_10(int) = Store[y] : &:r1450_1, r1450_9 -# 1451| v1451_1(void) = NoOp : -# 1440| v1440_5(void) = ReturnVoid : -# 1440| v1440_6(void) = AliasedUse : ~m1450_6 -# 1440| v1440_7(void) = ExitFunction : - -# 1453| void temporary_point() -# 1453| Block 0 -# 1453| v1453_1(void) = EnterFunction : -# 1453| m1453_2(unknown) = AliasedDefinition : -# 1453| m1453_3(unknown) = InitializeNonLocal : -# 1453| m1453_4(unknown) = Chi : total:m1453_2, partial:m1453_3 -# 1454| r1454_1(glval) = VariableAddress[p] : -# 1454| r1454_2(glval) = FunctionAddress[returnValue] : -# 1454| r1454_3(Point) = Call[returnValue] : func:r1454_2 -# 1454| m1454_4(unknown) = ^CallSideEffect : ~m1453_4 -# 1454| m1454_5(unknown) = Chi : total:m1453_4, partial:m1454_4 -# 1454| m1454_6(Point) = Store[p] : &:r1454_1, r1454_3 -# 1454| m1454_7(unknown) = Chi : total:m1454_5, partial:m1454_6 -# 1455| r1455_1(glval) = VariableAddress[rp] : -# 1455| r1455_2(glval) = VariableAddress[#temp1455:23] : -# 1455| r1455_3(glval) = FunctionAddress[returnValue] : -# 1455| r1455_4(Point) = Call[returnValue] : func:r1455_3 -# 1455| m1455_5(unknown) = ^CallSideEffect : ~m1454_7 -# 1455| m1455_6(unknown) = Chi : total:m1454_7, partial:m1455_5 -# 1455| m1455_7(Point) = Store[#temp1455:23] : &:r1455_2, r1455_4 -# 1455| r1455_8(glval) = Convert : r1455_2 -# 1455| r1455_9(Point &) = CopyValue : r1455_8 -# 1455| m1455_10(Point &) = Store[rp] : &:r1455_1, r1455_9 -# 1457| r1457_1(glval) = FunctionAddress[acceptRef] : -# 1457| r1457_2(glval) = VariableAddress[p] : -# 1457| r1457_3(glval) = Convert : r1457_2 -# 1457| r1457_4(Point &) = CopyValue : r1457_3 -# 1457| v1457_5(void) = Call[acceptRef] : func:r1457_1, 0:r1457_4 -# 1457| m1457_6(unknown) = ^CallSideEffect : ~m1455_6 -# 1457| m1457_7(unknown) = Chi : total:m1455_6, partial:m1457_6 -# 1457| v1457_8(void) = ^BufferReadSideEffect[0] : &:r1457_4, ~m1457_7 -# 1458| r1458_1(glval) = FunctionAddress[acceptValue] : -# 1458| r1458_2(glval) = VariableAddress[p] : -# 1458| r1458_3(Point) = Load[p] : &:r1458_2, ~m1457_7 -# 1458| v1458_4(void) = Call[acceptValue] : func:r1458_1, 0:r1458_3 -# 1458| m1458_5(unknown) = ^CallSideEffect : ~m1457_7 -# 1458| m1458_6(unknown) = Chi : total:m1457_7, partial:m1458_5 -# 1459| r1459_1(int) = Constant[0] : -# 1460| r1460_1(glval) = VariableAddress[y] : -# 1460| r1460_2(glval) = FunctionAddress[returnValue] : -# 1460| r1460_3(Point) = Call[returnValue] : func:r1460_2 -# 1460| m1460_4(unknown) = ^CallSideEffect : ~m1458_6 -# 1460| m1460_5(unknown) = Chi : total:m1458_6, partial:m1460_4 -# 1460| r1460_6(glval) = VariableAddress[#temp1460:13] : -# 1460| m1460_7(Point) = Store[#temp1460:13] : &:r1460_6, r1460_3 -# 1460| r1460_8(glval) = FieldAddress[y] : r1460_6 -# 1460| r1460_9(int) = Load[?] : &:r1460_8, ~m1460_7 -# 1460| m1460_10(int) = Store[y] : &:r1460_1, r1460_9 -# 1462| r1462_1(glval) = FunctionAddress[defaultConstruct] : -# 1462| r1462_2(Point) = Call[defaultConstruct] : func:r1462_1 -# 1462| m1462_3(unknown) = ^CallSideEffect : ~m1460_5 -# 1462| m1462_4(unknown) = Chi : total:m1460_5, partial:m1462_3 -# 1463| v1463_1(void) = NoOp : -# 1453| v1453_5(void) = ReturnVoid : -# 1453| v1453_6(void) = AliasedUse : ~m1462_4 -# 1453| v1453_7(void) = ExitFunction : - -# 1470| void temporary_unusual_fields() -# 1470| Block 0 -# 1470| v1470_1(void) = EnterFunction : -# 1470| m1470_2(unknown) = AliasedDefinition : -# 1470| m1470_3(unknown) = InitializeNonLocal : -# 1470| m1470_4(unknown) = Chi : total:m1470_2, partial:m1470_3 -# 1471| r1471_1(glval) = VariableAddress[rx] : -# 1471| r1471_2(glval) = FunctionAddress[returnValue] : -# 1471| r1471_3(UnusualFields) = Call[returnValue] : func:r1471_2 -# 1471| m1471_4(unknown) = ^CallSideEffect : ~m1470_4 -# 1471| m1471_5(unknown) = Chi : total:m1470_4, partial:m1471_4 -# 1471| r1471_6(glval) = VariableAddress[#temp1471:21] : -# 1471| m1471_7(UnusualFields) = Store[#temp1471:21] : &:r1471_6, r1471_3 -# 1471| r1471_8(glval) = FieldAddress[r] : r1471_6 -# 1471| r1471_9(int &) = Load[?] : &:r1471_8, ~m1471_7 -# 1471| r1471_10(glval) = CopyValue : r1471_9 -# 1471| r1471_11(glval) = Convert : r1471_10 -# 1471| r1471_12(int &) = CopyValue : r1471_11 -# 1471| m1471_13(int &) = Store[rx] : &:r1471_1, r1471_12 -# 1472| r1472_1(glval) = VariableAddress[x] : -# 1472| r1472_2(glval) = FunctionAddress[returnValue] : -# 1472| r1472_3(UnusualFields) = Call[returnValue] : func:r1472_2 -# 1472| m1472_4(unknown) = ^CallSideEffect : ~m1471_5 -# 1472| m1472_5(unknown) = Chi : total:m1471_5, partial:m1472_4 -# 1472| r1472_6(glval) = VariableAddress[#temp1472:13] : -# 1472| m1472_7(UnusualFields) = Store[#temp1472:13] : &:r1472_6, r1472_3 -# 1472| r1472_8(glval) = FieldAddress[r] : r1472_6 -# 1472| r1472_9(int &) = Load[?] : &:r1472_8, ~m1472_7 -# 1472| r1472_10(int) = Load[?] : &:r1472_9, ~m1472_5 -# 1472| m1472_11(int) = Store[x] : &:r1472_1, r1472_10 -# 1474| r1474_1(glval) = VariableAddress[rf] : +# 1448| m1448_2(copy_constructor) = Uninitialized[#temp1448:5] : &:r1448_1 +# 1448| m1448_3(unknown) = Chi : total:m1447_18, partial:m1448_2 +# 1448| r1448_4(glval) = FunctionAddress[copy_constructor] : +# 1448| v1448_5(void) = Call[copy_constructor] : func:r1448_4, this:r1448_1 +# 1448| m1448_6(unknown) = ^CallSideEffect : ~m1448_3 +# 1448| m1448_7(unknown) = Chi : total:m1448_3, partial:m1448_6 +# 1448| m1448_8(copy_constructor) = ^IndirectMayWriteSideEffect[-1] : &:r1448_1 +# 1448| m1448_9(unknown) = Chi : total:m1448_7, partial:m1448_8 +# 1448| r1448_10(glval) = FunctionAddress[method] : +# 1448| v1448_11(void) = Call[method] : func:r1448_10, this:r1448_1 +# 1448| m1448_12(unknown) = ^CallSideEffect : ~m1448_9 +# 1448| m1448_13(unknown) = Chi : total:m1448_9, partial:m1448_12 +# 1448| v1448_14(void) = ^IndirectReadSideEffect[-1] : &:r1448_1, ~m1448_13 +# 1448| m1448_15(copy_constructor) = ^IndirectMayWriteSideEffect[-1] : &:r1448_1 +# 1448| m1448_16(unknown) = Chi : total:m1448_13, partial:m1448_15 +# 1449| r1449_1(glval) = VariableAddress[#temp1449:5] : +# 1449| r1449_2(glval) = FunctionAddress[returnValue] : +# 1449| r1449_3(copy_constructor) = Call[returnValue] : func:r1449_2 +# 1449| m1449_4(unknown) = ^CallSideEffect : ~m1448_16 +# 1449| m1449_5(unknown) = Chi : total:m1448_16, partial:m1449_4 +# 1449| m1449_6(copy_constructor) = Store[#temp1449:5] : &:r1449_1, r1449_3 +# 1449| m1449_7(unknown) = Chi : total:m1449_5, partial:m1449_6 +# 1449| r1449_8(glval) = FunctionAddress[method] : +# 1449| v1449_9(void) = Call[method] : func:r1449_8, this:r1449_1 +# 1449| m1449_10(unknown) = ^CallSideEffect : ~m1449_7 +# 1449| m1449_11(unknown) = Chi : total:m1449_7, partial:m1449_10 +# 1449| v1449_12(void) = ^IndirectReadSideEffect[-1] : &:r1449_1, ~m1449_11 +# 1449| m1449_13(copy_constructor) = ^IndirectMayWriteSideEffect[-1] : &:r1449_1 +# 1449| m1449_14(unknown) = Chi : total:m1449_11, partial:m1449_13 +# 1450| r1450_1(glval) = VariableAddress[#temp1450:5] : +# 1450| r1450_2(glval) = FunctionAddress[defaultConstruct] : +# 1450| r1450_3(copy_constructor) = Call[defaultConstruct] : func:r1450_2 +# 1450| m1450_4(unknown) = ^CallSideEffect : ~m1449_14 +# 1450| m1450_5(unknown) = Chi : total:m1449_14, partial:m1450_4 +# 1450| m1450_6(copy_constructor) = Store[#temp1450:5] : &:r1450_1, r1450_3 +# 1452| r1452_1(glval) = VariableAddress[y] : +# 1452| r1452_2(glval) = VariableAddress[#temp1452:13] : +# 1452| r1452_3(glval) = FunctionAddress[returnValue] : +# 1452| r1452_4(copy_constructor) = Call[returnValue] : func:r1452_3 +# 1452| m1452_5(unknown) = ^CallSideEffect : ~m1450_5 +# 1452| m1452_6(unknown) = Chi : total:m1450_5, partial:m1452_5 +# 1452| m1452_7(copy_constructor) = Store[#temp1452:13] : &:r1452_2, r1452_4 +# 1452| r1452_8(glval) = FieldAddress[y] : r1452_2 +# 1452| r1452_9(int) = Load[?] : &:r1452_8, ~m1452_7 +# 1452| m1452_10(int) = Store[y] : &:r1452_1, r1452_9 +# 1453| v1453_1(void) = NoOp : +# 1442| v1442_5(void) = ReturnVoid : +# 1442| v1442_6(void) = AliasedUse : ~m1452_6 +# 1442| v1442_7(void) = ExitFunction : + +# 1455| void temporary_point() +# 1455| Block 0 +# 1455| v1455_1(void) = EnterFunction : +# 1455| m1455_2(unknown) = AliasedDefinition : +# 1455| m1455_3(unknown) = InitializeNonLocal : +# 1455| m1455_4(unknown) = Chi : total:m1455_2, partial:m1455_3 +# 1456| r1456_1(glval) = VariableAddress[p] : +# 1456| r1456_2(glval) = FunctionAddress[returnValue] : +# 1456| r1456_3(Point) = Call[returnValue] : func:r1456_2 +# 1456| m1456_4(unknown) = ^CallSideEffect : ~m1455_4 +# 1456| m1456_5(unknown) = Chi : total:m1455_4, partial:m1456_4 +# 1456| m1456_6(Point) = Store[p] : &:r1456_1, r1456_3 +# 1456| m1456_7(unknown) = Chi : total:m1456_5, partial:m1456_6 +# 1457| r1457_1(glval) = VariableAddress[rp] : +# 1457| r1457_2(glval) = VariableAddress[#temp1457:23] : +# 1457| r1457_3(glval) = FunctionAddress[returnValue] : +# 1457| r1457_4(Point) = Call[returnValue] : func:r1457_3 +# 1457| m1457_5(unknown) = ^CallSideEffect : ~m1456_7 +# 1457| m1457_6(unknown) = Chi : total:m1456_7, partial:m1457_5 +# 1457| m1457_7(Point) = Store[#temp1457:23] : &:r1457_2, r1457_4 +# 1457| r1457_8(glval) = Convert : r1457_2 +# 1457| r1457_9(Point &) = CopyValue : r1457_8 +# 1457| m1457_10(Point &) = Store[rp] : &:r1457_1, r1457_9 +# 1459| r1459_1(glval) = FunctionAddress[acceptRef] : +# 1459| r1459_2(glval) = VariableAddress[p] : +# 1459| r1459_3(glval) = Convert : r1459_2 +# 1459| r1459_4(Point &) = CopyValue : r1459_3 +# 1459| v1459_5(void) = Call[acceptRef] : func:r1459_1, 0:r1459_4 +# 1459| m1459_6(unknown) = ^CallSideEffect : ~m1457_6 +# 1459| m1459_7(unknown) = Chi : total:m1457_6, partial:m1459_6 +# 1459| v1459_8(void) = ^BufferReadSideEffect[0] : &:r1459_4, ~m1459_7 +# 1460| r1460_1(glval) = FunctionAddress[acceptValue] : +# 1460| r1460_2(glval) = VariableAddress[p] : +# 1460| r1460_3(Point) = Load[p] : &:r1460_2, ~m1459_7 +# 1460| v1460_4(void) = Call[acceptValue] : func:r1460_1, 0:r1460_3 +# 1460| m1460_5(unknown) = ^CallSideEffect : ~m1459_7 +# 1460| m1460_6(unknown) = Chi : total:m1459_7, partial:m1460_5 +# 1461| r1461_1(int) = Constant[0] : +# 1462| r1462_1(glval) = VariableAddress[y] : +# 1462| r1462_2(glval) = FunctionAddress[returnValue] : +# 1462| r1462_3(Point) = Call[returnValue] : func:r1462_2 +# 1462| m1462_4(unknown) = ^CallSideEffect : ~m1460_6 +# 1462| m1462_5(unknown) = Chi : total:m1460_6, partial:m1462_4 +# 1462| r1462_6(glval) = VariableAddress[#temp1462:13] : +# 1462| m1462_7(Point) = Store[#temp1462:13] : &:r1462_6, r1462_3 +# 1462| r1462_8(glval) = FieldAddress[y] : r1462_6 +# 1462| r1462_9(int) = Load[?] : &:r1462_8, ~m1462_7 +# 1462| m1462_10(int) = Store[y] : &:r1462_1, r1462_9 +# 1464| r1464_1(glval) = FunctionAddress[defaultConstruct] : +# 1464| r1464_2(Point) = Call[defaultConstruct] : func:r1464_1 +# 1464| m1464_3(unknown) = ^CallSideEffect : ~m1462_5 +# 1464| m1464_4(unknown) = Chi : total:m1462_5, partial:m1464_3 +# 1465| v1465_1(void) = NoOp : +# 1455| v1455_5(void) = ReturnVoid : +# 1455| v1455_6(void) = AliasedUse : ~m1464_4 +# 1455| v1455_7(void) = ExitFunction : + +# 1472| void temporary_unusual_fields() +# 1472| Block 0 +# 1472| v1472_1(void) = EnterFunction : +# 1472| m1472_2(unknown) = AliasedDefinition : +# 1472| m1472_3(unknown) = InitializeNonLocal : +# 1472| m1472_4(unknown) = Chi : total:m1472_2, partial:m1472_3 +# 1473| r1473_1(glval) = VariableAddress[rx] : +# 1473| r1473_2(glval) = FunctionAddress[returnValue] : +# 1473| r1473_3(UnusualFields) = Call[returnValue] : func:r1473_2 +# 1473| m1473_4(unknown) = ^CallSideEffect : ~m1472_4 +# 1473| m1473_5(unknown) = Chi : total:m1472_4, partial:m1473_4 +# 1473| r1473_6(glval) = VariableAddress[#temp1473:21] : +# 1473| m1473_7(UnusualFields) = Store[#temp1473:21] : &:r1473_6, r1473_3 +# 1473| r1473_8(glval) = FieldAddress[r] : r1473_6 +# 1473| r1473_9(int &) = Load[?] : &:r1473_8, ~m1473_7 +# 1473| r1473_10(glval) = CopyValue : r1473_9 +# 1473| r1473_11(glval) = Convert : r1473_10 +# 1473| r1473_12(int &) = CopyValue : r1473_11 +# 1473| m1473_13(int &) = Store[rx] : &:r1473_1, r1473_12 +# 1474| r1474_1(glval) = VariableAddress[x] : # 1474| r1474_2(glval) = FunctionAddress[returnValue] : # 1474| r1474_3(UnusualFields) = Call[returnValue] : func:r1474_2 -# 1474| m1474_4(unknown) = ^CallSideEffect : ~m1472_5 -# 1474| m1474_5(unknown) = Chi : total:m1472_5, partial:m1474_4 -# 1474| r1474_6(glval) = VariableAddress[#temp1474:23] : -# 1474| m1474_7(UnusualFields) = Store[#temp1474:23] : &:r1474_6, r1474_3 -# 1474| r1474_8(glval) = FieldAddress[a] : r1474_6 -# 1474| r1474_9(float *) = Convert : r1474_8 -# 1474| r1474_10(int) = Constant[3] : -# 1474| r1474_11(glval) = PointerAdd[4] : r1474_9, r1474_10 -# 1474| r1474_12(glval) = Convert : r1474_11 -# 1474| r1474_13(float &) = CopyValue : r1474_12 -# 1474| m1474_14(float &) = Store[rf] : &:r1474_1, r1474_13 -# 1475| r1475_1(glval) = VariableAddress[f] : -# 1475| r1475_2(glval) = FunctionAddress[returnValue] : -# 1475| r1475_3(UnusualFields) = Call[returnValue] : func:r1475_2 -# 1475| m1475_4(unknown) = ^CallSideEffect : ~m1474_5 -# 1475| m1475_5(unknown) = Chi : total:m1474_5, partial:m1475_4 -# 1475| r1475_6(glval) = VariableAddress[#temp1475:15] : -# 1475| m1475_7(UnusualFields) = Store[#temp1475:15] : &:r1475_6, r1475_3 -# 1475| r1475_8(glval) = FieldAddress[a] : r1475_6 -# 1475| r1475_9(float *) = Convert : r1475_8 -# 1475| r1475_10(int) = Constant[5] : -# 1475| r1475_11(glval) = PointerAdd[4] : r1475_9, r1475_10 -# 1475| r1475_12(float) = Load[?] : &:r1475_11, ~m1475_7 -# 1475| m1475_13(float) = Store[f] : &:r1475_1, r1475_12 -# 1476| v1476_1(void) = NoOp : -# 1470| v1470_5(void) = ReturnVoid : -# 1470| v1470_6(void) = AliasedUse : ~m1475_5 -# 1470| v1470_7(void) = ExitFunction : - -# 1492| void temporary_hierarchy() -# 1492| Block 0 -# 1492| v1492_1(void) = EnterFunction : -# 1492| m1492_2(unknown) = AliasedDefinition : -# 1492| m1492_3(unknown) = InitializeNonLocal : -# 1492| m1492_4(unknown) = Chi : total:m1492_2, partial:m1492_3 -# 1493| r1493_1(glval) = VariableAddress[b] : +# 1474| m1474_4(unknown) = ^CallSideEffect : ~m1473_5 +# 1474| m1474_5(unknown) = Chi : total:m1473_5, partial:m1474_4 +# 1474| r1474_6(glval) = VariableAddress[#temp1474:13] : +# 1474| m1474_7(UnusualFields) = Store[#temp1474:13] : &:r1474_6, r1474_3 +# 1474| r1474_8(glval) = FieldAddress[r] : r1474_6 +# 1474| r1474_9(int &) = Load[?] : &:r1474_8, ~m1474_7 +# 1474| r1474_10(int) = Load[?] : &:r1474_9, ~m1474_5 +# 1474| m1474_11(int) = Store[x] : &:r1474_1, r1474_10 +# 1476| r1476_1(glval) = VariableAddress[rf] : +# 1476| r1476_2(glval) = FunctionAddress[returnValue] : +# 1476| r1476_3(UnusualFields) = Call[returnValue] : func:r1476_2 +# 1476| m1476_4(unknown) = ^CallSideEffect : ~m1474_5 +# 1476| m1476_5(unknown) = Chi : total:m1474_5, partial:m1476_4 +# 1476| r1476_6(glval) = VariableAddress[#temp1476:23] : +# 1476| m1476_7(UnusualFields) = Store[#temp1476:23] : &:r1476_6, r1476_3 +# 1476| r1476_8(glval) = FieldAddress[a] : r1476_6 +# 1476| r1476_9(float *) = Convert : r1476_8 +# 1476| r1476_10(int) = Constant[3] : +# 1476| r1476_11(glval) = PointerAdd[4] : r1476_9, r1476_10 +# 1476| r1476_12(glval) = Convert : r1476_11 +# 1476| r1476_13(float &) = CopyValue : r1476_12 +# 1476| m1476_14(float &) = Store[rf] : &:r1476_1, r1476_13 +# 1477| r1477_1(glval) = VariableAddress[f] : +# 1477| r1477_2(glval) = FunctionAddress[returnValue] : +# 1477| r1477_3(UnusualFields) = Call[returnValue] : func:r1477_2 +# 1477| m1477_4(unknown) = ^CallSideEffect : ~m1476_5 +# 1477| m1477_5(unknown) = Chi : total:m1476_5, partial:m1477_4 +# 1477| r1477_6(glval) = VariableAddress[#temp1477:15] : +# 1477| m1477_7(UnusualFields) = Store[#temp1477:15] : &:r1477_6, r1477_3 +# 1477| r1477_8(glval) = FieldAddress[a] : r1477_6 +# 1477| r1477_9(float *) = Convert : r1477_8 +# 1477| r1477_10(int) = Constant[5] : +# 1477| r1477_11(glval) = PointerAdd[4] : r1477_9, r1477_10 +# 1477| r1477_12(float) = Load[?] : &:r1477_11, ~m1477_7 +# 1477| m1477_13(float) = Store[f] : &:r1477_1, r1477_12 +# 1478| v1478_1(void) = NoOp : +# 1472| v1472_5(void) = ReturnVoid : +# 1472| v1472_6(void) = AliasedUse : ~m1477_5 +# 1472| v1472_7(void) = ExitFunction : + +# 1494| void temporary_hierarchy() +# 1494| Block 0 +# 1494| v1494_1(void) = EnterFunction : +# 1494| m1494_2(unknown) = AliasedDefinition : +# 1494| m1494_3(unknown) = InitializeNonLocal : +# 1494| m1494_4(unknown) = Chi : total:m1494_2, partial:m1494_3 +# 1495| r1495_1(glval) = VariableAddress[b] : #-----| r0_1(glval) = VariableAddress[#temp0:0] : -# 1493| r1493_2(glval) = FunctionAddress[returnValue] : -# 1493| r1493_3(POD_Middle) = Call[returnValue] : func:r1493_2 -# 1493| m1493_4(unknown) = ^CallSideEffect : ~m1492_4 -# 1493| m1493_5(unknown) = Chi : total:m1492_4, partial:m1493_4 -# 1493| m1493_6(POD_Middle) = Store[#temp0:0] : &:r0_1, r1493_3 -#-----| r0_2(glval) = ConvertToNonVirtualBase[POD_Middle : POD_Base] : r0_1 -#-----| r0_3(POD_Base) = Load[?] : &:r0_2, ~m1493_6 -#-----| m0_4(POD_Base) = Store[b] : &:r1493_1, r0_3 -# 1494| r1494_1(glval) = VariableAddress[#temp1494:9] : -# 1494| r1494_2(glval) = FunctionAddress[returnValue] : -# 1494| r1494_3(POD_Derived) = Call[returnValue] : func:r1494_2 -# 1494| m1494_4(unknown) = ^CallSideEffect : ~m1493_5 -# 1494| m1494_5(unknown) = Chi : total:m1493_5, partial:m1494_4 -# 1494| m1494_6(POD_Derived) = Store[#temp1494:9] : &:r1494_1, r1494_3 -# 1494| r1494_7(glval) = ConvertToNonVirtualBase[POD_Derived : POD_Middle] : r1494_1 -# 1494| r1494_8(glval) = ConvertToNonVirtualBase[POD_Middle : POD_Base] : r1494_7 -# 1494| r1494_9(POD_Base) = Load[?] : &:r1494_8, ~m1494_6 -# 1494| r1494_10(glval) = VariableAddress[b] : -# 1494| m1494_11(POD_Base) = Store[b] : &:r1494_10, r1494_9 -# 1495| r1495_1(glval) = VariableAddress[x] : -#-----| r0_5(glval) = VariableAddress[#temp0:0] : # 1495| r1495_2(glval) = FunctionAddress[returnValue] : -# 1495| r1495_3(POD_Derived) = Call[returnValue] : func:r1495_2 -# 1495| m1495_4(unknown) = ^CallSideEffect : ~m1494_5 -# 1495| m1495_5(unknown) = Chi : total:m1494_5, partial:m1495_4 -# 1495| m1495_6(POD_Derived) = Store[#temp0:0] : &:r0_5, r1495_3 -#-----| r0_6(glval) = ConvertToNonVirtualBase[POD_Derived : POD_Middle] : r0_5 -#-----| r0_7(glval) = ConvertToNonVirtualBase[POD_Middle : POD_Base] : r0_6 -# 1495| r1495_7(glval) = FieldAddress[x] : r0_7 -# 1495| r1495_8(int) = Load[?] : &:r1495_7, ~m1495_6 -# 1495| m1495_9(int) = Store[x] : &:r1495_1, r1495_8 -# 1496| r1496_1(glval) = VariableAddress[f] : -#-----| r0_8(glval) = VariableAddress[#temp0:0] : +# 1495| r1495_3(POD_Middle) = Call[returnValue] : func:r1495_2 +# 1495| m1495_4(unknown) = ^CallSideEffect : ~m1494_4 +# 1495| m1495_5(unknown) = Chi : total:m1494_4, partial:m1495_4 +# 1495| m1495_6(POD_Middle) = Store[#temp0:0] : &:r0_1, r1495_3 +#-----| r0_2(glval) = ConvertToNonVirtualBase[POD_Middle : POD_Base] : r0_1 +#-----| r0_3(POD_Base) = Load[?] : &:r0_2, ~m1495_6 +#-----| m0_4(POD_Base) = Store[b] : &:r1495_1, r0_3 +# 1496| r1496_1(glval) = VariableAddress[#temp1496:9] : # 1496| r1496_2(glval) = FunctionAddress[returnValue] : # 1496| r1496_3(POD_Derived) = Call[returnValue] : func:r1496_2 # 1496| m1496_4(unknown) = ^CallSideEffect : ~m1495_5 # 1496| m1496_5(unknown) = Chi : total:m1495_5, partial:m1496_4 -# 1496| m1496_6(POD_Derived) = Store[#temp0:0] : &:r0_8, r1496_3 -# 1496| m1496_7(unknown) = Chi : total:m1496_5, partial:m1496_6 +# 1496| m1496_6(POD_Derived) = Store[#temp1496:9] : &:r1496_1, r1496_3 +# 1496| r1496_7(glval) = ConvertToNonVirtualBase[POD_Derived : POD_Middle] : r1496_1 +# 1496| r1496_8(glval) = ConvertToNonVirtualBase[POD_Middle : POD_Base] : r1496_7 +# 1496| r1496_9(POD_Base) = Load[?] : &:r1496_8, ~m1496_6 +# 1496| r1496_10(glval) = VariableAddress[b] : +# 1496| m1496_11(POD_Base) = Store[b] : &:r1496_10, r1496_9 +# 1497| r1497_1(glval) = VariableAddress[x] : +#-----| r0_5(glval) = VariableAddress[#temp0:0] : +# 1497| r1497_2(glval) = FunctionAddress[returnValue] : +# 1497| r1497_3(POD_Derived) = Call[returnValue] : func:r1497_2 +# 1497| m1497_4(unknown) = ^CallSideEffect : ~m1496_5 +# 1497| m1497_5(unknown) = Chi : total:m1496_5, partial:m1497_4 +# 1497| m1497_6(POD_Derived) = Store[#temp0:0] : &:r0_5, r1497_3 +#-----| r0_6(glval) = ConvertToNonVirtualBase[POD_Derived : POD_Middle] : r0_5 +#-----| r0_7(glval) = ConvertToNonVirtualBase[POD_Middle : POD_Base] : r0_6 +# 1497| r1497_7(glval) = FieldAddress[x] : r0_7 +# 1497| r1497_8(int) = Load[?] : &:r1497_7, ~m1497_6 +# 1497| m1497_9(int) = Store[x] : &:r1497_1, r1497_8 +# 1498| r1498_1(glval) = VariableAddress[f] : +#-----| r0_8(glval) = VariableAddress[#temp0:0] : +# 1498| r1498_2(glval) = FunctionAddress[returnValue] : +# 1498| r1498_3(POD_Derived) = Call[returnValue] : func:r1498_2 +# 1498| m1498_4(unknown) = ^CallSideEffect : ~m1497_5 +# 1498| m1498_5(unknown) = Chi : total:m1497_5, partial:m1498_4 +# 1498| m1498_6(POD_Derived) = Store[#temp0:0] : &:r0_8, r1498_3 +# 1498| m1498_7(unknown) = Chi : total:m1498_5, partial:m1498_6 #-----| r0_9(glval) = ConvertToNonVirtualBase[POD_Derived : POD_Middle] : r0_8 #-----| r0_10(glval) = ConvertToNonVirtualBase[POD_Middle : POD_Base] : r0_9 #-----| r0_11(glval) = Convert : r0_10 -# 1496| r1496_8(glval) = FunctionAddress[f] : -# 1496| r1496_9(float) = Call[f] : func:r1496_8, this:r0_11 -# 1496| m1496_10(unknown) = ^CallSideEffect : ~m1496_7 -# 1496| m1496_11(unknown) = Chi : total:m1496_7, partial:m1496_10 -#-----| v0_12(void) = ^IndirectReadSideEffect[-1] : &:r0_11, ~m1496_11 -# 1496| m1496_12(float) = Store[f] : &:r1496_1, r1496_9 -# 1497| v1497_1(void) = NoOp : -# 1492| v1492_5(void) = ReturnVoid : -# 1492| v1492_6(void) = AliasedUse : ~m1496_11 -# 1492| v1492_7(void) = ExitFunction : - -# 1500| void Inheritance_Test_B::~Inheritance_Test_B() -# 1500| Block 0 -# 1500| v1500_1(void) = EnterFunction : -# 1500| m1500_2(unknown) = AliasedDefinition : -# 1500| m1500_3(unknown) = InitializeNonLocal : -# 1500| m1500_4(unknown) = Chi : total:m1500_2, partial:m1500_3 -# 1500| r1500_5(glval) = VariableAddress[#this] : -# 1500| m1500_6(glval) = InitializeParameter[#this] : &:r1500_5 -# 1500| r1500_7(glval) = Load[#this] : &:r1500_5, m1500_6 -# 1500| m1500_8(Inheritance_Test_B) = InitializeIndirection[#this] : &:r1500_7 -# 1500| v1500_9(void) = NoOp : -# 1500| v1500_10(void) = ReturnIndirection[#this] : &:r1500_7, m1500_8 -# 1500| v1500_11(void) = ReturnVoid : -# 1500| v1500_12(void) = AliasedUse : m1500_3 -# 1500| v1500_13(void) = ExitFunction : - -# 1506| void Inheritance_Test_A::Inheritance_Test_A() -# 1506| Block 0 -# 1506| v1506_1(void) = EnterFunction : -# 1506| m1506_2(unknown) = AliasedDefinition : -# 1506| m1506_3(unknown) = InitializeNonLocal : -# 1506| m1506_4(unknown) = Chi : total:m1506_2, partial:m1506_3 -# 1506| r1506_5(glval) = VariableAddress[#this] : -# 1506| m1506_6(glval) = InitializeParameter[#this] : &:r1506_5 -# 1506| r1506_7(glval) = Load[#this] : &:r1506_5, m1506_6 -# 1506| m1506_8(Inheritance_Test_A) = InitializeIndirection[#this] : &:r1506_7 -# 1506| r1506_9(glval) = FieldAddress[x] : r1506_7 -# 1506| r1506_10(int) = Constant[42] : -# 1506| m1506_11(int) = Store[?] : &:r1506_9, r1506_10 -# 1506| m1506_12(unknown) = Chi : total:m1506_8, partial:m1506_11 -# 1507| r1507_1(int) = Constant[3] : -# 1507| r1507_2(glval) = VariableAddress[#this] : -# 1507| r1507_3(Inheritance_Test_A *) = Load[#this] : &:r1507_2, m1506_6 -# 1507| r1507_4(glval) = FieldAddress[y] : r1507_3 -# 1507| m1507_5(int) = Store[?] : &:r1507_4, r1507_1 -# 1507| m1507_6(unknown) = Chi : total:m1506_12, partial:m1507_5 -# 1508| v1508_1(void) = NoOp : -# 1506| v1506_13(void) = ReturnIndirection[#this] : &:r1506_7, m1507_6 -# 1506| v1506_14(void) = ReturnVoid : -# 1506| v1506_15(void) = AliasedUse : m1506_3 -# 1506| v1506_16(void) = ExitFunction : - -# 1511| void array_structured_binding() -# 1511| Block 0 -# 1511| v1511_1(void) = EnterFunction : -# 1511| m1511_2(unknown) = AliasedDefinition : -# 1511| m1511_3(unknown) = InitializeNonLocal : -# 1511| m1511_4(unknown) = Chi : total:m1511_2, partial:m1511_3 -# 1512| r1512_1(glval) = VariableAddress[xs] : -# 1512| m1512_2(int[2]) = Uninitialized[xs] : &:r1512_1 -# 1512| r1512_3(int) = Constant[0] : -# 1512| r1512_4(glval) = PointerAdd[4] : r1512_1, r1512_3 -# 1512| r1512_5(int) = Constant[1] : -# 1512| m1512_6(int) = Store[?] : &:r1512_4, r1512_5 -# 1512| m1512_7(int[2]) = Chi : total:m1512_2, partial:m1512_6 -# 1512| r1512_8(int) = Constant[1] : -# 1512| r1512_9(glval) = PointerAdd[4] : r1512_1, r1512_8 -# 1512| r1512_10(int) = Constant[2] : -# 1512| m1512_11(int) = Store[?] : &:r1512_9, r1512_10 -# 1512| m1512_12(int[2]) = Chi : total:m1512_7, partial:m1512_11 -# 1515| r1515_1(glval) = VariableAddress[(unnamed local variable)] : -# 1515| r1515_2(glval) = VariableAddress[xs] : -# 1515| r1515_3(int(&)[2]) = CopyValue : r1515_2 -# 1515| m1515_4(int(&)[2]) = Store[(unnamed local variable)] : &:r1515_1, r1515_3 -# 1515| r1515_5(glval) = VariableAddress[x0] : +# 1498| r1498_8(glval) = FunctionAddress[f] : +# 1498| r1498_9(float) = Call[f] : func:r1498_8, this:r0_11 +# 1498| m1498_10(unknown) = ^CallSideEffect : ~m1498_7 +# 1498| m1498_11(unknown) = Chi : total:m1498_7, partial:m1498_10 +#-----| v0_12(void) = ^IndirectReadSideEffect[-1] : &:r0_11, ~m1498_11 +# 1498| m1498_12(float) = Store[f] : &:r1498_1, r1498_9 +# 1499| v1499_1(void) = NoOp : +# 1494| v1494_5(void) = ReturnVoid : +# 1494| v1494_6(void) = AliasedUse : ~m1498_11 +# 1494| v1494_7(void) = ExitFunction : + +# 1502| void Inheritance_Test_B::~Inheritance_Test_B() +# 1502| Block 0 +# 1502| v1502_1(void) = EnterFunction : +# 1502| m1502_2(unknown) = AliasedDefinition : +# 1502| m1502_3(unknown) = InitializeNonLocal : +# 1502| m1502_4(unknown) = Chi : total:m1502_2, partial:m1502_3 +# 1502| r1502_5(glval) = VariableAddress[#this] : +# 1502| m1502_6(glval) = InitializeParameter[#this] : &:r1502_5 +# 1502| r1502_7(glval) = Load[#this] : &:r1502_5, m1502_6 +# 1502| m1502_8(Inheritance_Test_B) = InitializeIndirection[#this] : &:r1502_7 +# 1502| v1502_9(void) = NoOp : +# 1502| v1502_10(void) = ReturnIndirection[#this] : &:r1502_7, m1502_8 +# 1502| v1502_11(void) = ReturnVoid : +# 1502| v1502_12(void) = AliasedUse : m1502_3 +# 1502| v1502_13(void) = ExitFunction : + +# 1508| void Inheritance_Test_A::Inheritance_Test_A() +# 1508| Block 0 +# 1508| v1508_1(void) = EnterFunction : +# 1508| m1508_2(unknown) = AliasedDefinition : +# 1508| m1508_3(unknown) = InitializeNonLocal : +# 1508| m1508_4(unknown) = Chi : total:m1508_2, partial:m1508_3 +# 1508| r1508_5(glval) = VariableAddress[#this] : +# 1508| m1508_6(glval) = InitializeParameter[#this] : &:r1508_5 +# 1508| r1508_7(glval) = Load[#this] : &:r1508_5, m1508_6 +# 1508| m1508_8(Inheritance_Test_A) = InitializeIndirection[#this] : &:r1508_7 +# 1508| r1508_9(glval) = FieldAddress[x] : r1508_7 +# 1508| r1508_10(int) = Constant[42] : +# 1508| m1508_11(int) = Store[?] : &:r1508_9, r1508_10 +# 1508| m1508_12(unknown) = Chi : total:m1508_8, partial:m1508_11 +# 1509| r1509_1(int) = Constant[3] : +# 1509| r1509_2(glval) = VariableAddress[#this] : +# 1509| r1509_3(Inheritance_Test_A *) = Load[#this] : &:r1509_2, m1508_6 +# 1509| r1509_4(glval) = FieldAddress[y] : r1509_3 +# 1509| m1509_5(int) = Store[?] : &:r1509_4, r1509_1 +# 1509| m1509_6(unknown) = Chi : total:m1508_12, partial:m1509_5 +# 1510| v1510_1(void) = NoOp : +# 1508| v1508_13(void) = ReturnIndirection[#this] : &:r1508_7, m1509_6 +# 1508| v1508_14(void) = ReturnVoid : +# 1508| v1508_15(void) = AliasedUse : m1508_3 +# 1508| v1508_16(void) = ExitFunction : + +# 1513| void array_structured_binding() +# 1513| Block 0 +# 1513| v1513_1(void) = EnterFunction : +# 1513| m1513_2(unknown) = AliasedDefinition : +# 1513| m1513_3(unknown) = InitializeNonLocal : +# 1513| m1513_4(unknown) = Chi : total:m1513_2, partial:m1513_3 +# 1514| r1514_1(glval) = VariableAddress[xs] : +# 1514| m1514_2(int[2]) = Uninitialized[xs] : &:r1514_1 +# 1514| r1514_3(int) = Constant[0] : +# 1514| r1514_4(glval) = PointerAdd[4] : r1514_1, r1514_3 +# 1514| r1514_5(int) = Constant[1] : +# 1514| m1514_6(int) = Store[?] : &:r1514_4, r1514_5 +# 1514| m1514_7(int[2]) = Chi : total:m1514_2, partial:m1514_6 +# 1514| r1514_8(int) = Constant[1] : +# 1514| r1514_9(glval) = PointerAdd[4] : r1514_1, r1514_8 +# 1514| r1514_10(int) = Constant[2] : +# 1514| m1514_11(int) = Store[?] : &:r1514_9, r1514_10 +# 1514| m1514_12(int[2]) = Chi : total:m1514_7, partial:m1514_11 +# 1517| r1517_1(glval) = VariableAddress[(unnamed local variable)] : +# 1517| r1517_2(glval) = VariableAddress[xs] : +# 1517| r1517_3(int(&)[2]) = CopyValue : r1517_2 +# 1517| m1517_4(int(&)[2]) = Store[(unnamed local variable)] : &:r1517_1, r1517_3 +# 1517| r1517_5(glval) = VariableAddress[x0] : #-----| r0_1(glval) = VariableAddress[(unnamed local variable)] : -#-----| r0_2(int(&)[2]) = Load[(unnamed local variable)] : &:r0_1, m1515_4 +#-----| r0_2(int(&)[2]) = Load[(unnamed local variable)] : &:r0_1, m1517_4 #-----| r0_3(glval) = CopyValue : r0_2 #-----| r0_4(int *) = Convert : r0_3 #-----| r0_5(unsigned long) = Constant[0] : #-----| r0_6(glval) = PointerAdd[4] : r0_4, r0_5 -#-----| m0_7(int &) = Store[x0] : &:r1515_5, r0_6 -# 1515| r1515_6(glval) = VariableAddress[x1] : +#-----| m0_7(int &) = Store[x0] : &:r1517_5, r0_6 +# 1517| r1517_6(glval) = VariableAddress[x1] : #-----| r0_8(glval) = VariableAddress[(unnamed local variable)] : -#-----| r0_9(int(&)[2]) = Load[(unnamed local variable)] : &:r0_8, m1515_4 +#-----| r0_9(int(&)[2]) = Load[(unnamed local variable)] : &:r0_8, m1517_4 #-----| r0_10(glval) = CopyValue : r0_9 #-----| r0_11(int *) = Convert : r0_10 #-----| r0_12(unsigned long) = Constant[1] : #-----| r0_13(glval) = PointerAdd[4] : r0_11, r0_12 -#-----| m0_14(int &) = Store[x1] : &:r1515_6, r0_13 -# 1516| r1516_1(int) = Constant[3] : -# 1516| r1516_2(glval) = VariableAddress[x1] : -# 1516| r1516_3(int &) = Load[x1] : &:r1516_2, m0_14 -# 1516| m1516_4(int) = Store[?] : &:r1516_3, r1516_1 -# 1516| m1516_5(int[2]) = Chi : total:m1512_12, partial:m1516_4 -# 1517| r1517_1(glval) = VariableAddress[rx1] : -# 1517| r1517_2(glval) = VariableAddress[x1] : -# 1517| r1517_3(int &) = Load[x1] : &:r1517_2, m0_14 -# 1517| r1517_4(int &) = CopyValue : r1517_3 -# 1517| m1517_5(int &) = Store[rx1] : &:r1517_1, r1517_4 -# 1518| r1518_1(glval) = VariableAddress[x] : +#-----| m0_14(int &) = Store[x1] : &:r1517_6, r0_13 +# 1518| r1518_1(int) = Constant[3] : # 1518| r1518_2(glval) = VariableAddress[x1] : # 1518| r1518_3(int &) = Load[x1] : &:r1518_2, m0_14 -# 1518| r1518_4(int) = Load[?] : &:r1518_3, m1516_4 -# 1518| m1518_5(int) = Store[x] : &:r1518_1, r1518_4 -# 1522| r1522_1(glval) = VariableAddress[unnamed_local_variable] : -# 1522| r1522_2(glval) = VariableAddress[xs] : -# 1522| r1522_3(int(&)[2]) = CopyValue : r1522_2 -# 1522| m1522_4(int(&)[2]) = Store[unnamed_local_variable] : &:r1522_1, r1522_3 -# 1523| r1523_1(glval) = VariableAddress[x0] : -# 1523| r1523_2(glval) = VariableAddress[unnamed_local_variable] : -# 1523| r1523_3(int(&)[2]) = Load[unnamed_local_variable] : &:r1523_2, m1522_4 -# 1523| r1523_4(glval) = CopyValue : r1523_3 -# 1523| r1523_5(int *) = Convert : r1523_4 -# 1523| r1523_6(int) = Constant[0] : -# 1523| r1523_7(glval) = PointerAdd[4] : r1523_5, r1523_6 -# 1523| r1523_8(int &) = CopyValue : r1523_7 -# 1523| m1523_9(int &) = Store[x0] : &:r1523_1, r1523_8 -# 1524| r1524_1(glval) = VariableAddress[x1] : -# 1524| r1524_2(glval) = VariableAddress[unnamed_local_variable] : -# 1524| r1524_3(int(&)[2]) = Load[unnamed_local_variable] : &:r1524_2, m1522_4 -# 1524| r1524_4(glval) = CopyValue : r1524_3 -# 1524| r1524_5(int *) = Convert : r1524_4 -# 1524| r1524_6(int) = Constant[1] : -# 1524| r1524_7(glval) = PointerAdd[4] : r1524_5, r1524_6 -# 1524| r1524_8(int &) = CopyValue : r1524_7 -# 1524| m1524_9(int &) = Store[x1] : &:r1524_1, r1524_8 -# 1525| r1525_1(int) = Constant[3] : -# 1525| r1525_2(glval) = VariableAddress[x1] : -# 1525| r1525_3(int &) = Load[x1] : &:r1525_2, m1524_9 -# 1525| r1525_4(glval) = CopyValue : r1525_3 -# 1525| m1525_5(int) = Store[?] : &:r1525_4, r1525_1 -# 1525| m1525_6(int[2]) = Chi : total:m1516_5, partial:m1525_5 -# 1526| r1526_1(glval) = VariableAddress[rx1] : -# 1526| r1526_2(glval) = VariableAddress[x1] : -# 1526| r1526_3(int &) = Load[x1] : &:r1526_2, m1524_9 -# 1526| r1526_4(glval) = CopyValue : r1526_3 -# 1526| r1526_5(int &) = CopyValue : r1526_4 -# 1526| m1526_6(int &) = Store[rx1] : &:r1526_1, r1526_5 -# 1527| r1527_1(glval) = VariableAddress[x] : +# 1518| m1518_4(int) = Store[?] : &:r1518_3, r1518_1 +# 1518| m1518_5(int[2]) = Chi : total:m1514_12, partial:m1518_4 +# 1519| r1519_1(glval) = VariableAddress[rx1] : +# 1519| r1519_2(glval) = VariableAddress[x1] : +# 1519| r1519_3(int &) = Load[x1] : &:r1519_2, m0_14 +# 1519| r1519_4(int &) = CopyValue : r1519_3 +# 1519| m1519_5(int &) = Store[rx1] : &:r1519_1, r1519_4 +# 1520| r1520_1(glval) = VariableAddress[x] : +# 1520| r1520_2(glval) = VariableAddress[x1] : +# 1520| r1520_3(int &) = Load[x1] : &:r1520_2, m0_14 +# 1520| r1520_4(int) = Load[?] : &:r1520_3, m1518_4 +# 1520| m1520_5(int) = Store[x] : &:r1520_1, r1520_4 +# 1524| r1524_1(glval) = VariableAddress[unnamed_local_variable] : +# 1524| r1524_2(glval) = VariableAddress[xs] : +# 1524| r1524_3(int(&)[2]) = CopyValue : r1524_2 +# 1524| m1524_4(int(&)[2]) = Store[unnamed_local_variable] : &:r1524_1, r1524_3 +# 1525| r1525_1(glval) = VariableAddress[x0] : +# 1525| r1525_2(glval) = VariableAddress[unnamed_local_variable] : +# 1525| r1525_3(int(&)[2]) = Load[unnamed_local_variable] : &:r1525_2, m1524_4 +# 1525| r1525_4(glval) = CopyValue : r1525_3 +# 1525| r1525_5(int *) = Convert : r1525_4 +# 1525| r1525_6(int) = Constant[0] : +# 1525| r1525_7(glval) = PointerAdd[4] : r1525_5, r1525_6 +# 1525| r1525_8(int &) = CopyValue : r1525_7 +# 1525| m1525_9(int &) = Store[x0] : &:r1525_1, r1525_8 +# 1526| r1526_1(glval) = VariableAddress[x1] : +# 1526| r1526_2(glval) = VariableAddress[unnamed_local_variable] : +# 1526| r1526_3(int(&)[2]) = Load[unnamed_local_variable] : &:r1526_2, m1524_4 +# 1526| r1526_4(glval) = CopyValue : r1526_3 +# 1526| r1526_5(int *) = Convert : r1526_4 +# 1526| r1526_6(int) = Constant[1] : +# 1526| r1526_7(glval) = PointerAdd[4] : r1526_5, r1526_6 +# 1526| r1526_8(int &) = CopyValue : r1526_7 +# 1526| m1526_9(int &) = Store[x1] : &:r1526_1, r1526_8 +# 1527| r1527_1(int) = Constant[3] : # 1527| r1527_2(glval) = VariableAddress[x1] : -# 1527| r1527_3(int &) = Load[x1] : &:r1527_2, m1524_9 -# 1527| r1527_4(int) = Load[?] : &:r1527_3, m1525_5 -# 1527| m1527_5(int) = Store[x] : &:r1527_1, r1527_4 -# 1529| v1529_1(void) = NoOp : -# 1511| v1511_5(void) = ReturnVoid : -# 1511| v1511_6(void) = AliasedUse : m1511_3 -# 1511| v1511_7(void) = ExitFunction : - -# 1531| void StructuredBindingDataMemberMemberStruct::StructuredBindingDataMemberMemberStruct() -# 1531| Block 0 -# 1531| v1531_1(void) = EnterFunction : -# 1531| m1531_2(unknown) = AliasedDefinition : -# 1531| m1531_3(unknown) = InitializeNonLocal : -# 1531| m1531_4(unknown) = Chi : total:m1531_2, partial:m1531_3 -# 1531| r1531_5(glval) = VariableAddress[#this] : -# 1531| m1531_6(glval) = InitializeParameter[#this] : &:r1531_5 -# 1531| r1531_7(glval) = Load[#this] : &:r1531_5, m1531_6 -# 1531| m1531_8(StructuredBindingDataMemberMemberStruct) = InitializeIndirection[#this] : &:r1531_7 -# 1531| v1531_9(void) = NoOp : -# 1531| v1531_10(void) = ReturnIndirection[#this] : &:r1531_7, m1531_8 -# 1531| v1531_11(void) = ReturnVoid : -# 1531| v1531_12(void) = AliasedUse : m1531_3 -# 1531| v1531_13(void) = ExitFunction : - -# 1535| void StructuredBindingDataMemberStruct::StructuredBindingDataMemberStruct() -# 1535| Block 0 -# 1535| v1535_1(void) = EnterFunction : -# 1535| m1535_2(unknown) = AliasedDefinition : -# 1535| m1535_3(unknown) = InitializeNonLocal : -# 1535| m1535_4(unknown) = Chi : total:m1535_2, partial:m1535_3 -# 1535| r1535_5(glval) = VariableAddress[#this] : -# 1535| m1535_6(glval) = InitializeParameter[#this] : &:r1535_5 -# 1535| r1535_7(glval) = Load[#this] : &:r1535_5, m1535_6 -# 1535| m1535_8(StructuredBindingDataMemberStruct) = InitializeIndirection[#this] : &:r1535_7 -# 1535| v1535_9(void) = NoOp : -# 1535| v1535_10(void) = ReturnIndirection[#this] : &:r1535_7, m1535_8 -# 1535| v1535_11(void) = ReturnVoid : -# 1535| v1535_12(void) = AliasedUse : m1535_3 -# 1535| v1535_13(void) = ExitFunction : - -# 1535| void StructuredBindingDataMemberStruct::StructuredBindingDataMemberStruct(StructuredBindingDataMemberStruct const&) -# 1535| Block 0 -# 1535| v1535_1(void) = EnterFunction : -# 1535| m1535_2(unknown) = AliasedDefinition : -# 1535| m1535_3(unknown) = InitializeNonLocal : -# 1535| m1535_4(unknown) = Chi : total:m1535_2, partial:m1535_3 -# 1535| r1535_5(glval) = VariableAddress[#this] : -# 1535| m1535_6(glval) = InitializeParameter[#this] : &:r1535_5 -# 1535| r1535_7(glval) = Load[#this] : &:r1535_5, m1535_6 -# 1535| m1535_8(StructuredBindingDataMemberStruct) = InitializeIndirection[#this] : &:r1535_7 +# 1527| r1527_3(int &) = Load[x1] : &:r1527_2, m1526_9 +# 1527| r1527_4(glval) = CopyValue : r1527_3 +# 1527| m1527_5(int) = Store[?] : &:r1527_4, r1527_1 +# 1527| m1527_6(int[2]) = Chi : total:m1518_5, partial:m1527_5 +# 1528| r1528_1(glval) = VariableAddress[rx1] : +# 1528| r1528_2(glval) = VariableAddress[x1] : +# 1528| r1528_3(int &) = Load[x1] : &:r1528_2, m1526_9 +# 1528| r1528_4(glval) = CopyValue : r1528_3 +# 1528| r1528_5(int &) = CopyValue : r1528_4 +# 1528| m1528_6(int &) = Store[rx1] : &:r1528_1, r1528_5 +# 1529| r1529_1(glval) = VariableAddress[x] : +# 1529| r1529_2(glval) = VariableAddress[x1] : +# 1529| r1529_3(int &) = Load[x1] : &:r1529_2, m1526_9 +# 1529| r1529_4(int) = Load[?] : &:r1529_3, m1527_5 +# 1529| m1529_5(int) = Store[x] : &:r1529_1, r1529_4 +# 1531| v1531_1(void) = NoOp : +# 1513| v1513_5(void) = ReturnVoid : +# 1513| v1513_6(void) = AliasedUse : m1513_3 +# 1513| v1513_7(void) = ExitFunction : + +# 1533| void StructuredBindingDataMemberMemberStruct::StructuredBindingDataMemberMemberStruct() +# 1533| Block 0 +# 1533| v1533_1(void) = EnterFunction : +# 1533| m1533_2(unknown) = AliasedDefinition : +# 1533| m1533_3(unknown) = InitializeNonLocal : +# 1533| m1533_4(unknown) = Chi : total:m1533_2, partial:m1533_3 +# 1533| r1533_5(glval) = VariableAddress[#this] : +# 1533| m1533_6(glval) = InitializeParameter[#this] : &:r1533_5 +# 1533| r1533_7(glval) = Load[#this] : &:r1533_5, m1533_6 +# 1533| m1533_8(StructuredBindingDataMemberMemberStruct) = InitializeIndirection[#this] : &:r1533_7 +# 1533| v1533_9(void) = NoOp : +# 1533| v1533_10(void) = ReturnIndirection[#this] : &:r1533_7, m1533_8 +# 1533| v1533_11(void) = ReturnVoid : +# 1533| v1533_12(void) = AliasedUse : m1533_3 +# 1533| v1533_13(void) = ExitFunction : + +# 1537| void StructuredBindingDataMemberStruct::StructuredBindingDataMemberStruct() +# 1537| Block 0 +# 1537| v1537_1(void) = EnterFunction : +# 1537| m1537_2(unknown) = AliasedDefinition : +# 1537| m1537_3(unknown) = InitializeNonLocal : +# 1537| m1537_4(unknown) = Chi : total:m1537_2, partial:m1537_3 +# 1537| r1537_5(glval) = VariableAddress[#this] : +# 1537| m1537_6(glval) = InitializeParameter[#this] : &:r1537_5 +# 1537| r1537_7(glval) = Load[#this] : &:r1537_5, m1537_6 +# 1537| m1537_8(StructuredBindingDataMemberStruct) = InitializeIndirection[#this] : &:r1537_7 +# 1537| v1537_9(void) = NoOp : +# 1537| v1537_10(void) = ReturnIndirection[#this] : &:r1537_7, m1537_8 +# 1537| v1537_11(void) = ReturnVoid : +# 1537| v1537_12(void) = AliasedUse : m1537_3 +# 1537| v1537_13(void) = ExitFunction : + +# 1537| void StructuredBindingDataMemberStruct::StructuredBindingDataMemberStruct(StructuredBindingDataMemberStruct const&) +# 1537| Block 0 +# 1537| v1537_1(void) = EnterFunction : +# 1537| m1537_2(unknown) = AliasedDefinition : +# 1537| m1537_3(unknown) = InitializeNonLocal : +# 1537| m1537_4(unknown) = Chi : total:m1537_2, partial:m1537_3 +# 1537| r1537_5(glval) = VariableAddress[#this] : +# 1537| m1537_6(glval) = InitializeParameter[#this] : &:r1537_5 +# 1537| r1537_7(glval) = Load[#this] : &:r1537_5, m1537_6 +# 1537| m1537_8(StructuredBindingDataMemberStruct) = InitializeIndirection[#this] : &:r1537_7 #-----| r0_1(glval) = VariableAddress[(unnamed parameter 0)] : #-----| m0_2(StructuredBindingDataMemberStruct &) = InitializeParameter[(unnamed parameter 0)] : &:r0_1 #-----| r0_3(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r0_1, m0_2 #-----| m0_4(unknown) = InitializeIndirection[(unnamed parameter 0)] : &:r0_3 -# 1535| r1535_9(glval) = FieldAddress[i] : r1535_7 -# 1535| r1535_10(glval) = VariableAddress[(unnamed parameter 0)] : -# 1535| r1535_11(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1535_10, m0_2 -# 1535| r1535_12(glval) = CopyValue : r1535_11 -# 1535| r1535_13(glval) = FieldAddress[i] : r1535_12 -# 1535| r1535_14(int) = Load[?] : &:r1535_13, ~m0_4 -# 1535| m1535_15(int) = Store[?] : &:r1535_9, r1535_14 -# 1535| m1535_16(unknown) = Chi : total:m1535_8, partial:m1535_15 -# 1535| r1535_17(glval) = FieldAddress[d] : r1535_7 -# 1535| r1535_18(glval) = VariableAddress[(unnamed parameter 0)] : -# 1535| r1535_19(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1535_18, m0_2 -# 1535| r1535_20(glval) = CopyValue : r1535_19 -# 1535| r1535_21(glval) = FieldAddress[d] : r1535_20 -# 1535| r1535_22(double) = Load[?] : &:r1535_21, ~m0_4 -# 1535| m1535_23(double) = Store[?] : &:r1535_17, r1535_22 -# 1535| m1535_24(unknown) = Chi : total:m1535_16, partial:m1535_23 -# 1535| r1535_25(glval) = FieldAddress[b] : r1535_7 -# 1535| r1535_26(glval) = VariableAddress[(unnamed parameter 0)] : -# 1535| r1535_27(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1535_26, m0_2 -# 1535| r1535_28(glval) = CopyValue : r1535_27 -# 1535| r1535_29(glval) = FieldAddress[b] : r1535_28 -# 1535| r1535_30(unsigned int) = Load[?] : &:r1535_29, ~m0_4 -# 1535| m1535_31(unsigned int) = Store[?] : &:r1535_25, r1535_30 -# 1535| m1535_32(unknown) = Chi : total:m1535_24, partial:m1535_31 -# 1535| r1535_33(glval) = FieldAddress[r] : r1535_7 -# 1535| r1535_34(glval) = VariableAddress[(unnamed parameter 0)] : -# 1535| r1535_35(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1535_34, m0_2 -# 1535| r1535_36(glval) = CopyValue : r1535_35 -# 1535| r1535_37(glval) = FieldAddress[r] : r1535_36 -# 1535| r1535_38(int &) = Load[?] : &:r1535_37, ~m0_4 -# 1535| m1535_39(int &) = Store[?] : &:r1535_33, r1535_38 -# 1535| m1535_40(unknown) = Chi : total:m1535_32, partial:m1535_39 -# 1535| r1535_41(glval) = FieldAddress[p] : r1535_7 -# 1535| r1535_42(glval) = VariableAddress[(unnamed parameter 0)] : -# 1535| r1535_43(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1535_42, m0_2 -# 1535| r1535_44(glval) = CopyValue : r1535_43 -# 1535| r1535_45(glval) = FieldAddress[p] : r1535_44 -# 1535| r1535_46(int *) = Load[?] : &:r1535_45, ~m0_4 -# 1535| m1535_47(int *) = Store[?] : &:r1535_41, r1535_46 -# 1535| m1535_48(unknown) = Chi : total:m1535_40, partial:m1535_47 -# 1535| r1535_49(glval) = FieldAddress[xs] : r1535_7 -# 1535| r1535_50(glval) = VariableAddress[(unnamed parameter 0)] : -# 1535| r1535_51(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1535_50, m0_2 -# 1535| r1535_52(glval) = CopyValue : r1535_51 -# 1535| r1535_53(glval) = FieldAddress[xs] : r1535_52 -# 1535| r1535_54(int[2]) = Load[?] : &:r1535_53, ~m0_4 -# 1535| m1535_55(int[2]) = Store[?] : &:r1535_49, r1535_54 -# 1535| m1535_56(unknown) = Chi : total:m1535_48, partial:m1535_55 -# 1535| r1535_57(glval) = FieldAddress[r_alt] : r1535_7 -# 1535| r1535_58(glval) = VariableAddress[(unnamed parameter 0)] : -# 1535| r1535_59(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1535_58, m0_2 -# 1535| r1535_60(glval) = CopyValue : r1535_59 -# 1535| r1535_61(glval) = FieldAddress[r_alt] : r1535_60 -# 1535| r1535_62(int &) = Load[?] : &:r1535_61, ~m0_4 -# 1535| m1535_63(int &) = Store[?] : &:r1535_57, r1535_62 -# 1535| m1535_64(unknown) = Chi : total:m1535_56, partial:m1535_63 -# 1535| r1535_65(glval) = FieldAddress[m] : r1535_7 -# 1535| r1535_66(glval) = VariableAddress[(unnamed parameter 0)] : -# 1535| r1535_67(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1535_66, m0_2 -# 1535| r1535_68(glval) = CopyValue : r1535_67 -# 1535| r1535_69(glval) = FieldAddress[m] : r1535_68 -# 1535| r1535_70(StructuredBindingDataMemberMemberStruct) = Load[?] : &:r1535_69, ~m0_4 -# 1535| m1535_71(StructuredBindingDataMemberMemberStruct) = Store[?] : &:r1535_65, r1535_70 -# 1535| m1535_72(unknown) = Chi : total:m1535_64, partial:m1535_71 -# 1535| v1535_73(void) = NoOp : -# 1535| v1535_74(void) = ReturnIndirection[#this] : &:r1535_7, m1535_72 +# 1537| r1537_9(glval) = FieldAddress[i] : r1537_7 +# 1537| r1537_10(glval) = VariableAddress[(unnamed parameter 0)] : +# 1537| r1537_11(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1537_10, m0_2 +# 1537| r1537_12(glval) = CopyValue : r1537_11 +# 1537| r1537_13(glval) = FieldAddress[i] : r1537_12 +# 1537| r1537_14(int) = Load[?] : &:r1537_13, ~m0_4 +# 1537| m1537_15(int) = Store[?] : &:r1537_9, r1537_14 +# 1537| m1537_16(unknown) = Chi : total:m1537_8, partial:m1537_15 +# 1537| r1537_17(glval) = FieldAddress[d] : r1537_7 +# 1537| r1537_18(glval) = VariableAddress[(unnamed parameter 0)] : +# 1537| r1537_19(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1537_18, m0_2 +# 1537| r1537_20(glval) = CopyValue : r1537_19 +# 1537| r1537_21(glval) = FieldAddress[d] : r1537_20 +# 1537| r1537_22(double) = Load[?] : &:r1537_21, ~m0_4 +# 1537| m1537_23(double) = Store[?] : &:r1537_17, r1537_22 +# 1537| m1537_24(unknown) = Chi : total:m1537_16, partial:m1537_23 +# 1537| r1537_25(glval) = FieldAddress[b] : r1537_7 +# 1537| r1537_26(glval) = VariableAddress[(unnamed parameter 0)] : +# 1537| r1537_27(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1537_26, m0_2 +# 1537| r1537_28(glval) = CopyValue : r1537_27 +# 1537| r1537_29(glval) = FieldAddress[b] : r1537_28 +# 1537| r1537_30(unsigned int) = Load[?] : &:r1537_29, ~m0_4 +# 1537| m1537_31(unsigned int) = Store[?] : &:r1537_25, r1537_30 +# 1537| m1537_32(unknown) = Chi : total:m1537_24, partial:m1537_31 +# 1537| r1537_33(glval) = FieldAddress[r] : r1537_7 +# 1537| r1537_34(glval) = VariableAddress[(unnamed parameter 0)] : +# 1537| r1537_35(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1537_34, m0_2 +# 1537| r1537_36(glval) = CopyValue : r1537_35 +# 1537| r1537_37(glval) = FieldAddress[r] : r1537_36 +# 1537| r1537_38(int &) = Load[?] : &:r1537_37, ~m0_4 +# 1537| m1537_39(int &) = Store[?] : &:r1537_33, r1537_38 +# 1537| m1537_40(unknown) = Chi : total:m1537_32, partial:m1537_39 +# 1537| r1537_41(glval) = FieldAddress[p] : r1537_7 +# 1537| r1537_42(glval) = VariableAddress[(unnamed parameter 0)] : +# 1537| r1537_43(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1537_42, m0_2 +# 1537| r1537_44(glval) = CopyValue : r1537_43 +# 1537| r1537_45(glval) = FieldAddress[p] : r1537_44 +# 1537| r1537_46(int *) = Load[?] : &:r1537_45, ~m0_4 +# 1537| m1537_47(int *) = Store[?] : &:r1537_41, r1537_46 +# 1537| m1537_48(unknown) = Chi : total:m1537_40, partial:m1537_47 +# 1537| r1537_49(glval) = FieldAddress[xs] : r1537_7 +# 1537| r1537_50(glval) = VariableAddress[(unnamed parameter 0)] : +# 1537| r1537_51(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1537_50, m0_2 +# 1537| r1537_52(glval) = CopyValue : r1537_51 +# 1537| r1537_53(glval) = FieldAddress[xs] : r1537_52 +# 1537| r1537_54(int[2]) = Load[?] : &:r1537_53, ~m0_4 +# 1537| m1537_55(int[2]) = Store[?] : &:r1537_49, r1537_54 +# 1537| m1537_56(unknown) = Chi : total:m1537_48, partial:m1537_55 +# 1537| r1537_57(glval) = FieldAddress[r_alt] : r1537_7 +# 1537| r1537_58(glval) = VariableAddress[(unnamed parameter 0)] : +# 1537| r1537_59(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1537_58, m0_2 +# 1537| r1537_60(glval) = CopyValue : r1537_59 +# 1537| r1537_61(glval) = FieldAddress[r_alt] : r1537_60 +# 1537| r1537_62(int &) = Load[?] : &:r1537_61, ~m0_4 +# 1537| m1537_63(int &) = Store[?] : &:r1537_57, r1537_62 +# 1537| m1537_64(unknown) = Chi : total:m1537_56, partial:m1537_63 +# 1537| r1537_65(glval) = FieldAddress[m] : r1537_7 +# 1537| r1537_66(glval) = VariableAddress[(unnamed parameter 0)] : +# 1537| r1537_67(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1537_66, m0_2 +# 1537| r1537_68(glval) = CopyValue : r1537_67 +# 1537| r1537_69(glval) = FieldAddress[m] : r1537_68 +# 1537| r1537_70(StructuredBindingDataMemberMemberStruct) = Load[?] : &:r1537_69, ~m0_4 +# 1537| m1537_71(StructuredBindingDataMemberMemberStruct) = Store[?] : &:r1537_65, r1537_70 +# 1537| m1537_72(unknown) = Chi : total:m1537_64, partial:m1537_71 +# 1537| v1537_73(void) = NoOp : +# 1537| v1537_74(void) = ReturnIndirection[#this] : &:r1537_7, m1537_72 #-----| v0_5(void) = ReturnIndirection[(unnamed parameter 0)] : &:r0_3, m0_4 -# 1535| v1535_75(void) = ReturnVoid : -# 1535| v1535_76(void) = AliasedUse : m1535_3 -# 1535| v1535_77(void) = ExitFunction : - -# 1548| void data_member_structured_binding() -# 1548| Block 0 -# 1548| v1548_1(void) = EnterFunction : -# 1548| m1548_2(unknown) = AliasedDefinition : -# 1548| m1548_3(unknown) = InitializeNonLocal : -# 1548| m1548_4(unknown) = Chi : total:m1548_2, partial:m1548_3 -# 1549| r1549_1(glval) = VariableAddress[s] : -# 1549| m1549_2(StructuredBindingDataMemberStruct) = Uninitialized[s] : &:r1549_1 -# 1549| r1549_3(glval) = FunctionAddress[StructuredBindingDataMemberStruct] : -# 1549| v1549_4(void) = Call[StructuredBindingDataMemberStruct] : func:r1549_3, this:r1549_1 -# 1549| m1549_5(unknown) = ^CallSideEffect : ~m1548_4 -# 1549| m1549_6(unknown) = Chi : total:m1548_4, partial:m1549_5 -# 1549| m1549_7(StructuredBindingDataMemberStruct) = ^IndirectMayWriteSideEffect[-1] : &:r1549_1 -# 1549| m1549_8(StructuredBindingDataMemberStruct) = Chi : total:m1549_2, partial:m1549_7 -# 1552| r1552_1(glval) = VariableAddress[(unnamed local variable)] : -# 1552| r1552_2(glval) = VariableAddress[s] : -# 1552| r1552_3(StructuredBindingDataMemberStruct) = Load[s] : &:r1552_2, m1549_8 -# 1552| m1552_4(StructuredBindingDataMemberStruct) = Store[(unnamed local variable)] : &:r1552_1, r1552_3 -# 1552| r1552_5(glval) = VariableAddress[i] : -# 1552| r1552_6(glval) = VariableAddress[(unnamed local variable)] : -# 1552| r1552_7(glval) = FieldAddress[i] : r1552_6 -# 1552| m1552_8(int &) = Store[i] : &:r1552_5, r1552_7 -# 1552| r1552_9(glval) = VariableAddress[d] : -# 1552| r1552_10(glval) = VariableAddress[(unnamed local variable)] : -# 1552| r1552_11(glval) = FieldAddress[d] : r1552_10 -# 1552| m1552_12(double &) = Store[d] : &:r1552_9, r1552_11 -# 1552| r1552_13(glval) = VariableAddress[b] : -# 1552| r1552_14(glval) = VariableAddress[(unnamed local variable)] : -# 1552| r1552_15(glval) = FieldAddress[b] : r1552_14 -# 1552| m1552_16(unsigned int &) = Store[b] : &:r1552_13, r1552_15 -# 1552| r1552_17(glval) = VariableAddress[r] : -# 1552| r1552_18(glval) = VariableAddress[(unnamed local variable)] : -# 1552| r1552_19(glval) = FieldAddress[r] : r1552_18 -# 1552| r1552_20(int &) = Load[?] : &:r1552_19, ~m1552_4 -# 1552| r1552_21(glval) = CopyValue : r1552_20 -# 1552| m1552_22(int &) = Store[r] : &:r1552_17, r1552_21 -# 1552| r1552_23(glval) = VariableAddress[p] : -# 1552| r1552_24(glval) = VariableAddress[(unnamed local variable)] : -# 1552| r1552_25(glval) = FieldAddress[p] : r1552_24 -# 1552| m1552_26(int *&) = Store[p] : &:r1552_23, r1552_25 -# 1552| r1552_27(glval) = VariableAddress[xs] : -# 1552| r1552_28(glval) = VariableAddress[(unnamed local variable)] : -# 1552| r1552_29(glval) = FieldAddress[xs] : r1552_28 -# 1552| m1552_30(int(&)[2]) = Store[xs] : &:r1552_27, r1552_29 -# 1552| r1552_31(glval) = VariableAddress[r_alt] : -# 1552| r1552_32(glval) = VariableAddress[(unnamed local variable)] : -# 1552| r1552_33(glval) = FieldAddress[r_alt] : r1552_32 -# 1552| r1552_34(int &) = Load[?] : &:r1552_33, ~m1552_4 -# 1552| r1552_35(glval) = CopyValue : r1552_34 -# 1552| m1552_36(int &) = Store[r_alt] : &:r1552_31, r1552_35 -# 1552| r1552_37(glval) = VariableAddress[m] : -# 1552| r1552_38(glval) = VariableAddress[(unnamed local variable)] : -# 1552| r1552_39(glval) = FieldAddress[m] : r1552_38 -# 1552| m1552_40(StructuredBindingDataMemberMemberStruct &) = Store[m] : &:r1552_37, r1552_39 -# 1553| r1553_1(double) = Constant[4.0] : -# 1553| r1553_2(glval) = VariableAddress[d] : -# 1553| r1553_3(double &) = Load[d] : &:r1553_2, m1552_12 -# 1553| m1553_4(double) = Store[?] : &:r1553_3, r1553_1 -# 1553| m1553_5(StructuredBindingDataMemberStruct) = Chi : total:m1552_4, partial:m1553_4 -# 1554| r1554_1(glval) = VariableAddress[rd] : -# 1554| r1554_2(glval) = VariableAddress[d] : -# 1554| r1554_3(double &) = Load[d] : &:r1554_2, m1552_12 -# 1554| r1554_4(double &) = CopyValue : r1554_3 -# 1554| m1554_5(double &) = Store[rd] : &:r1554_1, r1554_4 -# 1555| r1555_1(glval) = VariableAddress[v] : -# 1555| r1555_2(glval) = VariableAddress[i] : -# 1555| r1555_3(int &) = Load[i] : &:r1555_2, m1552_8 -# 1555| r1555_4(int) = Load[?] : &:r1555_3, ~m1552_4 -# 1555| m1555_5(int) = Store[v] : &:r1555_1, r1555_4 -# 1556| r1556_1(int) = Constant[5] : -# 1556| r1556_2(glval) = VariableAddress[r] : -# 1556| r1556_3(int &) = Load[r] : &:r1556_2, m1552_22 -# 1556| m1556_4(int) = Store[?] : &:r1556_3, r1556_1 -# 1556| m1556_5(unknown) = Chi : total:m1549_6, partial:m1556_4 -# 1557| r1557_1(int) = Constant[6] : -# 1557| r1557_2(glval) = VariableAddress[p] : -# 1557| r1557_3(int *&) = Load[p] : &:r1557_2, m1552_26 -# 1557| r1557_4(int *) = Load[?] : &:r1557_3, ~m1552_4 -# 1557| r1557_5(glval) = CopyValue : r1557_4 -# 1557| m1557_6(int) = Store[?] : &:r1557_5, r1557_1 -# 1557| m1557_7(unknown) = Chi : total:m1556_5, partial:m1557_6 -# 1558| r1558_1(glval) = VariableAddress[rr] : +# 1537| v1537_75(void) = ReturnVoid : +# 1537| v1537_76(void) = AliasedUse : m1537_3 +# 1537| v1537_77(void) = ExitFunction : + +# 1550| void data_member_structured_binding() +# 1550| Block 0 +# 1550| v1550_1(void) = EnterFunction : +# 1550| m1550_2(unknown) = AliasedDefinition : +# 1550| m1550_3(unknown) = InitializeNonLocal : +# 1550| m1550_4(unknown) = Chi : total:m1550_2, partial:m1550_3 +# 1551| r1551_1(glval) = VariableAddress[s] : +# 1551| m1551_2(StructuredBindingDataMemberStruct) = Uninitialized[s] : &:r1551_1 +# 1551| r1551_3(glval) = FunctionAddress[StructuredBindingDataMemberStruct] : +# 1551| v1551_4(void) = Call[StructuredBindingDataMemberStruct] : func:r1551_3, this:r1551_1 +# 1551| m1551_5(unknown) = ^CallSideEffect : ~m1550_4 +# 1551| m1551_6(unknown) = Chi : total:m1550_4, partial:m1551_5 +# 1551| m1551_7(StructuredBindingDataMemberStruct) = ^IndirectMayWriteSideEffect[-1] : &:r1551_1 +# 1551| m1551_8(StructuredBindingDataMemberStruct) = Chi : total:m1551_2, partial:m1551_7 +# 1554| r1554_1(glval) = VariableAddress[(unnamed local variable)] : +# 1554| r1554_2(glval) = VariableAddress[s] : +# 1554| r1554_3(StructuredBindingDataMemberStruct) = Load[s] : &:r1554_2, m1551_8 +# 1554| m1554_4(StructuredBindingDataMemberStruct) = Store[(unnamed local variable)] : &:r1554_1, r1554_3 +# 1554| r1554_5(glval) = VariableAddress[i] : +# 1554| r1554_6(glval) = VariableAddress[(unnamed local variable)] : +# 1554| r1554_7(glval) = FieldAddress[i] : r1554_6 +# 1554| m1554_8(int &) = Store[i] : &:r1554_5, r1554_7 +# 1554| r1554_9(glval) = VariableAddress[d] : +# 1554| r1554_10(glval) = VariableAddress[(unnamed local variable)] : +# 1554| r1554_11(glval) = FieldAddress[d] : r1554_10 +# 1554| m1554_12(double &) = Store[d] : &:r1554_9, r1554_11 +# 1554| r1554_13(glval) = VariableAddress[b] : +# 1554| r1554_14(glval) = VariableAddress[(unnamed local variable)] : +# 1554| r1554_15(glval) = FieldAddress[b] : r1554_14 +# 1554| m1554_16(unsigned int &) = Store[b] : &:r1554_13, r1554_15 +# 1554| r1554_17(glval) = VariableAddress[r] : +# 1554| r1554_18(glval) = VariableAddress[(unnamed local variable)] : +# 1554| r1554_19(glval) = FieldAddress[r] : r1554_18 +# 1554| r1554_20(int &) = Load[?] : &:r1554_19, ~m1554_4 +# 1554| r1554_21(glval) = CopyValue : r1554_20 +# 1554| m1554_22(int &) = Store[r] : &:r1554_17, r1554_21 +# 1554| r1554_23(glval) = VariableAddress[p] : +# 1554| r1554_24(glval) = VariableAddress[(unnamed local variable)] : +# 1554| r1554_25(glval) = FieldAddress[p] : r1554_24 +# 1554| m1554_26(int *&) = Store[p] : &:r1554_23, r1554_25 +# 1554| r1554_27(glval) = VariableAddress[xs] : +# 1554| r1554_28(glval) = VariableAddress[(unnamed local variable)] : +# 1554| r1554_29(glval) = FieldAddress[xs] : r1554_28 +# 1554| m1554_30(int(&)[2]) = Store[xs] : &:r1554_27, r1554_29 +# 1554| r1554_31(glval) = VariableAddress[r_alt] : +# 1554| r1554_32(glval) = VariableAddress[(unnamed local variable)] : +# 1554| r1554_33(glval) = FieldAddress[r_alt] : r1554_32 +# 1554| r1554_34(int &) = Load[?] : &:r1554_33, ~m1554_4 +# 1554| r1554_35(glval) = CopyValue : r1554_34 +# 1554| m1554_36(int &) = Store[r_alt] : &:r1554_31, r1554_35 +# 1554| r1554_37(glval) = VariableAddress[m] : +# 1554| r1554_38(glval) = VariableAddress[(unnamed local variable)] : +# 1554| r1554_39(glval) = FieldAddress[m] : r1554_38 +# 1554| m1554_40(StructuredBindingDataMemberMemberStruct &) = Store[m] : &:r1554_37, r1554_39 +# 1555| r1555_1(double) = Constant[4.0] : +# 1555| r1555_2(glval) = VariableAddress[d] : +# 1555| r1555_3(double &) = Load[d] : &:r1555_2, m1554_12 +# 1555| m1555_4(double) = Store[?] : &:r1555_3, r1555_1 +# 1555| m1555_5(StructuredBindingDataMemberStruct) = Chi : total:m1554_4, partial:m1555_4 +# 1556| r1556_1(glval) = VariableAddress[rd] : +# 1556| r1556_2(glval) = VariableAddress[d] : +# 1556| r1556_3(double &) = Load[d] : &:r1556_2, m1554_12 +# 1556| r1556_4(double &) = CopyValue : r1556_3 +# 1556| m1556_5(double &) = Store[rd] : &:r1556_1, r1556_4 +# 1557| r1557_1(glval) = VariableAddress[v] : +# 1557| r1557_2(glval) = VariableAddress[i] : +# 1557| r1557_3(int &) = Load[i] : &:r1557_2, m1554_8 +# 1557| r1557_4(int) = Load[?] : &:r1557_3, ~m1554_4 +# 1557| m1557_5(int) = Store[v] : &:r1557_1, r1557_4 +# 1558| r1558_1(int) = Constant[5] : # 1558| r1558_2(glval) = VariableAddress[r] : -# 1558| r1558_3(int &) = Load[r] : &:r1558_2, m1552_22 -# 1558| r1558_4(int &) = CopyValue : r1558_3 -# 1558| m1558_5(int &) = Store[rr] : &:r1558_1, r1558_4 -# 1559| r1559_1(glval) = VariableAddress[pr] : -# 1559| r1559_2(glval) = VariableAddress[r] : -# 1559| r1559_3(int &) = Load[r] : &:r1559_2, m1552_22 -# 1559| r1559_4(int *) = CopyValue : r1559_3 -# 1559| m1559_5(int *) = Store[pr] : &:r1559_1, r1559_4 -# 1560| r1560_1(glval) = VariableAddress[w] : +# 1558| r1558_3(int &) = Load[r] : &:r1558_2, m1554_22 +# 1558| m1558_4(int) = Store[?] : &:r1558_3, r1558_1 +# 1558| m1558_5(unknown) = Chi : total:m1551_6, partial:m1558_4 +# 1559| r1559_1(int) = Constant[6] : +# 1559| r1559_2(glval) = VariableAddress[p] : +# 1559| r1559_3(int *&) = Load[p] : &:r1559_2, m1554_26 +# 1559| r1559_4(int *) = Load[?] : &:r1559_3, ~m1554_4 +# 1559| r1559_5(glval) = CopyValue : r1559_4 +# 1559| m1559_6(int) = Store[?] : &:r1559_5, r1559_1 +# 1559| m1559_7(unknown) = Chi : total:m1558_5, partial:m1559_6 +# 1560| r1560_1(glval) = VariableAddress[rr] : # 1560| r1560_2(glval) = VariableAddress[r] : -# 1560| r1560_3(int &) = Load[r] : &:r1560_2, m1552_22 -# 1560| r1560_4(int) = Load[?] : &:r1560_3, ~m1557_7 -# 1560| m1560_5(int) = Store[w] : &:r1560_1, r1560_4 -# 1564| r1564_1(glval) = VariableAddress[unnamed_local_variable] : -# 1564| r1564_2(glval) = VariableAddress[s] : -# 1564| r1564_3(StructuredBindingDataMemberStruct) = Load[s] : &:r1564_2, m1549_8 -# 1564| m1564_4(StructuredBindingDataMemberStruct) = Store[unnamed_local_variable] : &:r1564_1, r1564_3 -# 1565| r1565_1(glval) = VariableAddress[i] : -# 1565| r1565_2(glval) = VariableAddress[unnamed_local_variable] : -# 1565| r1565_3(glval) = FieldAddress[i] : r1565_2 -# 1565| r1565_4(int &) = CopyValue : r1565_3 -# 1565| m1565_5(int &) = Store[i] : &:r1565_1, r1565_4 -# 1566| r1566_1(glval) = VariableAddress[d] : -# 1566| r1566_2(glval) = VariableAddress[unnamed_local_variable] : -# 1566| r1566_3(glval) = FieldAddress[d] : r1566_2 -# 1566| r1566_4(double &) = CopyValue : r1566_3 -# 1566| m1566_5(double &) = Store[d] : &:r1566_1, r1566_4 -# 1568| r1568_1(glval) = VariableAddress[r] : +# 1560| r1560_3(int &) = Load[r] : &:r1560_2, m1554_22 +# 1560| r1560_4(int &) = CopyValue : r1560_3 +# 1560| m1560_5(int &) = Store[rr] : &:r1560_1, r1560_4 +# 1561| r1561_1(glval) = VariableAddress[pr] : +# 1561| r1561_2(glval) = VariableAddress[r] : +# 1561| r1561_3(int &) = Load[r] : &:r1561_2, m1554_22 +# 1561| r1561_4(int *) = CopyValue : r1561_3 +# 1561| m1561_5(int *) = Store[pr] : &:r1561_1, r1561_4 +# 1562| r1562_1(glval) = VariableAddress[w] : +# 1562| r1562_2(glval) = VariableAddress[r] : +# 1562| r1562_3(int &) = Load[r] : &:r1562_2, m1554_22 +# 1562| r1562_4(int) = Load[?] : &:r1562_3, ~m1559_7 +# 1562| m1562_5(int) = Store[w] : &:r1562_1, r1562_4 +# 1566| r1566_1(glval) = VariableAddress[unnamed_local_variable] : +# 1566| r1566_2(glval) = VariableAddress[s] : +# 1566| r1566_3(StructuredBindingDataMemberStruct) = Load[s] : &:r1566_2, m1551_8 +# 1566| m1566_4(StructuredBindingDataMemberStruct) = Store[unnamed_local_variable] : &:r1566_1, r1566_3 +# 1567| r1567_1(glval) = VariableAddress[i] : +# 1567| r1567_2(glval) = VariableAddress[unnamed_local_variable] : +# 1567| r1567_3(glval) = FieldAddress[i] : r1567_2 +# 1567| r1567_4(int &) = CopyValue : r1567_3 +# 1567| m1567_5(int &) = Store[i] : &:r1567_1, r1567_4 +# 1568| r1568_1(glval) = VariableAddress[d] : # 1568| r1568_2(glval) = VariableAddress[unnamed_local_variable] : -# 1568| r1568_3(glval) = FieldAddress[r] : r1568_2 -# 1568| r1568_4(int &) = Load[?] : &:r1568_3, ~m1564_4 -# 1568| r1568_5(glval) = CopyValue : r1568_4 -# 1568| r1568_6(int &) = CopyValue : r1568_5 -# 1568| m1568_7(int &) = Store[r] : &:r1568_1, r1568_6 -# 1569| r1569_1(glval) = VariableAddress[p] : -# 1569| r1569_2(glval) = VariableAddress[unnamed_local_variable] : -# 1569| r1569_3(glval) = FieldAddress[p] : r1569_2 -# 1569| r1569_4(int *&) = CopyValue : r1569_3 -# 1569| m1569_5(int *&) = Store[p] : &:r1569_1, r1569_4 -# 1570| r1570_1(double) = Constant[4.0] : -# 1570| r1570_2(glval) = VariableAddress[d] : -# 1570| r1570_3(double &) = Load[d] : &:r1570_2, m1566_5 -# 1570| r1570_4(glval) = CopyValue : r1570_3 -# 1570| m1570_5(double) = Store[?] : &:r1570_4, r1570_1 -# 1570| m1570_6(StructuredBindingDataMemberStruct) = Chi : total:m1564_4, partial:m1570_5 -# 1571| r1571_1(glval) = VariableAddress[rd] : -# 1571| r1571_2(glval) = VariableAddress[d] : -# 1571| r1571_3(double &) = Load[d] : &:r1571_2, m1566_5 -# 1571| r1571_4(glval) = CopyValue : r1571_3 -# 1571| r1571_5(double &) = CopyValue : r1571_4 -# 1571| m1571_6(double &) = Store[rd] : &:r1571_1, r1571_5 -# 1572| r1572_1(glval) = VariableAddress[v] : -# 1572| r1572_2(glval) = VariableAddress[i] : -# 1572| r1572_3(int &) = Load[i] : &:r1572_2, m1565_5 -# 1572| r1572_4(int) = Load[?] : &:r1572_3, ~m1564_4 -# 1572| m1572_5(int) = Store[v] : &:r1572_1, r1572_4 -# 1573| r1573_1(int) = Constant[5] : -# 1573| r1573_2(glval) = VariableAddress[r] : -# 1573| r1573_3(int &) = Load[r] : &:r1573_2, m1568_7 -# 1573| r1573_4(glval) = CopyValue : r1573_3 -# 1573| m1573_5(int) = Store[?] : &:r1573_4, r1573_1 -# 1573| m1573_6(unknown) = Chi : total:m1557_7, partial:m1573_5 -# 1574| r1574_1(int) = Constant[6] : -# 1574| r1574_2(glval) = VariableAddress[p] : -# 1574| r1574_3(int *&) = Load[p] : &:r1574_2, m1569_5 -# 1574| r1574_4(int *) = Load[?] : &:r1574_3, ~m1564_4 -# 1574| r1574_5(glval) = CopyValue : r1574_4 -# 1574| m1574_6(int) = Store[?] : &:r1574_5, r1574_1 -# 1574| m1574_7(unknown) = Chi : total:m1573_6, partial:m1574_6 -# 1575| r1575_1(glval) = VariableAddress[rr] : +# 1568| r1568_3(glval) = FieldAddress[d] : r1568_2 +# 1568| r1568_4(double &) = CopyValue : r1568_3 +# 1568| m1568_5(double &) = Store[d] : &:r1568_1, r1568_4 +# 1570| r1570_1(glval) = VariableAddress[r] : +# 1570| r1570_2(glval) = VariableAddress[unnamed_local_variable] : +# 1570| r1570_3(glval) = FieldAddress[r] : r1570_2 +# 1570| r1570_4(int &) = Load[?] : &:r1570_3, ~m1566_4 +# 1570| r1570_5(glval) = CopyValue : r1570_4 +# 1570| r1570_6(int &) = CopyValue : r1570_5 +# 1570| m1570_7(int &) = Store[r] : &:r1570_1, r1570_6 +# 1571| r1571_1(glval) = VariableAddress[p] : +# 1571| r1571_2(glval) = VariableAddress[unnamed_local_variable] : +# 1571| r1571_3(glval) = FieldAddress[p] : r1571_2 +# 1571| r1571_4(int *&) = CopyValue : r1571_3 +# 1571| m1571_5(int *&) = Store[p] : &:r1571_1, r1571_4 +# 1572| r1572_1(double) = Constant[4.0] : +# 1572| r1572_2(glval) = VariableAddress[d] : +# 1572| r1572_3(double &) = Load[d] : &:r1572_2, m1568_5 +# 1572| r1572_4(glval) = CopyValue : r1572_3 +# 1572| m1572_5(double) = Store[?] : &:r1572_4, r1572_1 +# 1572| m1572_6(StructuredBindingDataMemberStruct) = Chi : total:m1566_4, partial:m1572_5 +# 1573| r1573_1(glval) = VariableAddress[rd] : +# 1573| r1573_2(glval) = VariableAddress[d] : +# 1573| r1573_3(double &) = Load[d] : &:r1573_2, m1568_5 +# 1573| r1573_4(glval) = CopyValue : r1573_3 +# 1573| r1573_5(double &) = CopyValue : r1573_4 +# 1573| m1573_6(double &) = Store[rd] : &:r1573_1, r1573_5 +# 1574| r1574_1(glval) = VariableAddress[v] : +# 1574| r1574_2(glval) = VariableAddress[i] : +# 1574| r1574_3(int &) = Load[i] : &:r1574_2, m1567_5 +# 1574| r1574_4(int) = Load[?] : &:r1574_3, ~m1566_4 +# 1574| m1574_5(int) = Store[v] : &:r1574_1, r1574_4 +# 1575| r1575_1(int) = Constant[5] : # 1575| r1575_2(glval) = VariableAddress[r] : -# 1575| r1575_3(int &) = Load[r] : &:r1575_2, m1568_7 +# 1575| r1575_3(int &) = Load[r] : &:r1575_2, m1570_7 # 1575| r1575_4(glval) = CopyValue : r1575_3 -# 1575| r1575_5(int &) = CopyValue : r1575_4 -# 1575| m1575_6(int &) = Store[rr] : &:r1575_1, r1575_5 -# 1576| r1576_1(glval) = VariableAddress[pr] : -# 1576| r1576_2(glval) = VariableAddress[r] : -# 1576| r1576_3(int &) = Load[r] : &:r1576_2, m1568_7 -# 1576| r1576_4(glval) = CopyValue : r1576_3 -# 1576| r1576_5(int *) = CopyValue : r1576_4 -# 1576| m1576_6(int *) = Store[pr] : &:r1576_1, r1576_5 -# 1577| r1577_1(glval) = VariableAddress[w] : +# 1575| m1575_5(int) = Store[?] : &:r1575_4, r1575_1 +# 1575| m1575_6(unknown) = Chi : total:m1559_7, partial:m1575_5 +# 1576| r1576_1(int) = Constant[6] : +# 1576| r1576_2(glval) = VariableAddress[p] : +# 1576| r1576_3(int *&) = Load[p] : &:r1576_2, m1571_5 +# 1576| r1576_4(int *) = Load[?] : &:r1576_3, ~m1566_4 +# 1576| r1576_5(glval) = CopyValue : r1576_4 +# 1576| m1576_6(int) = Store[?] : &:r1576_5, r1576_1 +# 1576| m1576_7(unknown) = Chi : total:m1575_6, partial:m1576_6 +# 1577| r1577_1(glval) = VariableAddress[rr] : # 1577| r1577_2(glval) = VariableAddress[r] : -# 1577| r1577_3(int &) = Load[r] : &:r1577_2, m1568_7 -# 1577| r1577_4(int) = Load[?] : &:r1577_3, ~m1574_7 -# 1577| m1577_5(int) = Store[w] : &:r1577_1, r1577_4 -# 1579| v1579_1(void) = NoOp : -# 1548| v1548_5(void) = ReturnVoid : -# 1548| v1548_6(void) = AliasedUse : ~m1574_7 -# 1548| v1548_7(void) = ExitFunction : - -# 1588| void StructuredBindingTupleRefGet::StructuredBindingTupleRefGet() -# 1588| Block 0 -# 1588| v1588_1(void) = EnterFunction : -# 1588| m1588_2(unknown) = AliasedDefinition : -# 1588| m1588_3(unknown) = InitializeNonLocal : -# 1588| m1588_4(unknown) = Chi : total:m1588_2, partial:m1588_3 -# 1588| r1588_5(glval) = VariableAddress[#this] : -# 1588| m1588_6(glval) = InitializeParameter[#this] : &:r1588_5 -# 1588| r1588_7(glval) = Load[#this] : &:r1588_5, m1588_6 -# 1588| m1588_8(StructuredBindingTupleRefGet) = InitializeIndirection[#this] : &:r1588_7 -# 1588| v1588_9(void) = NoOp : -# 1588| v1588_10(void) = ReturnIndirection[#this] : &:r1588_7, m1588_8 -# 1588| v1588_11(void) = ReturnVoid : -# 1588| v1588_12(void) = AliasedUse : m1588_3 -# 1588| v1588_13(void) = ExitFunction : - -# 1588| void StructuredBindingTupleRefGet::StructuredBindingTupleRefGet(StructuredBindingTupleRefGet const&) -# 1588| Block 0 -# 1588| v1588_1(void) = EnterFunction : -# 1588| m1588_2(unknown) = AliasedDefinition : -# 1588| m1588_3(unknown) = InitializeNonLocal : -# 1588| m1588_4(unknown) = Chi : total:m1588_2, partial:m1588_3 -# 1588| r1588_5(glval) = VariableAddress[#this] : -# 1588| m1588_6(glval) = InitializeParameter[#this] : &:r1588_5 -# 1588| r1588_7(glval) = Load[#this] : &:r1588_5, m1588_6 -# 1588| m1588_8(StructuredBindingTupleRefGet) = InitializeIndirection[#this] : &:r1588_7 +# 1577| r1577_3(int &) = Load[r] : &:r1577_2, m1570_7 +# 1577| r1577_4(glval) = CopyValue : r1577_3 +# 1577| r1577_5(int &) = CopyValue : r1577_4 +# 1577| m1577_6(int &) = Store[rr] : &:r1577_1, r1577_5 +# 1578| r1578_1(glval) = VariableAddress[pr] : +# 1578| r1578_2(glval) = VariableAddress[r] : +# 1578| r1578_3(int &) = Load[r] : &:r1578_2, m1570_7 +# 1578| r1578_4(glval) = CopyValue : r1578_3 +# 1578| r1578_5(int *) = CopyValue : r1578_4 +# 1578| m1578_6(int *) = Store[pr] : &:r1578_1, r1578_5 +# 1579| r1579_1(glval) = VariableAddress[w] : +# 1579| r1579_2(glval) = VariableAddress[r] : +# 1579| r1579_3(int &) = Load[r] : &:r1579_2, m1570_7 +# 1579| r1579_4(int) = Load[?] : &:r1579_3, ~m1576_7 +# 1579| m1579_5(int) = Store[w] : &:r1579_1, r1579_4 +# 1581| v1581_1(void) = NoOp : +# 1550| v1550_5(void) = ReturnVoid : +# 1550| v1550_6(void) = AliasedUse : ~m1576_7 +# 1550| v1550_7(void) = ExitFunction : + +# 1590| void StructuredBindingTupleRefGet::StructuredBindingTupleRefGet() +# 1590| Block 0 +# 1590| v1590_1(void) = EnterFunction : +# 1590| m1590_2(unknown) = AliasedDefinition : +# 1590| m1590_3(unknown) = InitializeNonLocal : +# 1590| m1590_4(unknown) = Chi : total:m1590_2, partial:m1590_3 +# 1590| r1590_5(glval) = VariableAddress[#this] : +# 1590| m1590_6(glval) = InitializeParameter[#this] : &:r1590_5 +# 1590| r1590_7(glval) = Load[#this] : &:r1590_5, m1590_6 +# 1590| m1590_8(StructuredBindingTupleRefGet) = InitializeIndirection[#this] : &:r1590_7 +# 1590| v1590_9(void) = NoOp : +# 1590| v1590_10(void) = ReturnIndirection[#this] : &:r1590_7, m1590_8 +# 1590| v1590_11(void) = ReturnVoid : +# 1590| v1590_12(void) = AliasedUse : m1590_3 +# 1590| v1590_13(void) = ExitFunction : + +# 1590| void StructuredBindingTupleRefGet::StructuredBindingTupleRefGet(StructuredBindingTupleRefGet const&) +# 1590| Block 0 +# 1590| v1590_1(void) = EnterFunction : +# 1590| m1590_2(unknown) = AliasedDefinition : +# 1590| m1590_3(unknown) = InitializeNonLocal : +# 1590| m1590_4(unknown) = Chi : total:m1590_2, partial:m1590_3 +# 1590| r1590_5(glval) = VariableAddress[#this] : +# 1590| m1590_6(glval) = InitializeParameter[#this] : &:r1590_5 +# 1590| r1590_7(glval) = Load[#this] : &:r1590_5, m1590_6 +# 1590| m1590_8(StructuredBindingTupleRefGet) = InitializeIndirection[#this] : &:r1590_7 #-----| r0_1(glval) = VariableAddress[(unnamed parameter 0)] : #-----| m0_2(StructuredBindingTupleRefGet &) = InitializeParameter[(unnamed parameter 0)] : &:r0_1 #-----| r0_3(StructuredBindingTupleRefGet &) = Load[(unnamed parameter 0)] : &:r0_1, m0_2 #-----| m0_4(unknown) = InitializeIndirection[(unnamed parameter 0)] : &:r0_3 -# 1588| r1588_9(glval) = FieldAddress[i] : r1588_7 -# 1588| r1588_10(glval) = VariableAddress[(unnamed parameter 0)] : -# 1588| r1588_11(StructuredBindingTupleRefGet &) = Load[(unnamed parameter 0)] : &:r1588_10, m0_2 -# 1588| r1588_12(glval) = CopyValue : r1588_11 -# 1588| r1588_13(glval) = FieldAddress[i] : r1588_12 -# 1588| r1588_14(int) = Load[?] : &:r1588_13, ~m0_4 -# 1588| m1588_15(int) = Store[?] : &:r1588_9, r1588_14 -# 1588| m1588_16(unknown) = Chi : total:m1588_8, partial:m1588_15 -# 1588| r1588_17(glval) = FieldAddress[d] : r1588_7 -# 1588| r1588_18(glval) = VariableAddress[(unnamed parameter 0)] : -# 1588| r1588_19(StructuredBindingTupleRefGet &) = Load[(unnamed parameter 0)] : &:r1588_18, m0_2 -# 1588| r1588_20(glval) = CopyValue : r1588_19 -# 1588| r1588_21(glval) = FieldAddress[d] : r1588_20 -# 1588| r1588_22(double) = Load[?] : &:r1588_21, ~m0_4 -# 1588| m1588_23(double) = Store[?] : &:r1588_17, r1588_22 -# 1588| m1588_24(unknown) = Chi : total:m1588_16, partial:m1588_23 -# 1588| r1588_25(glval) = FieldAddress[r] : r1588_7 -# 1588| r1588_26(glval) = VariableAddress[(unnamed parameter 0)] : -# 1588| r1588_27(StructuredBindingTupleRefGet &) = Load[(unnamed parameter 0)] : &:r1588_26, m0_2 -# 1588| r1588_28(glval) = CopyValue : r1588_27 -# 1588| r1588_29(glval) = FieldAddress[r] : r1588_28 -# 1588| r1588_30(int &) = Load[?] : &:r1588_29, ~m0_4 -# 1588| m1588_31(int &) = Store[?] : &:r1588_25, r1588_30 -# 1588| m1588_32(unknown) = Chi : total:m1588_24, partial:m1588_31 -# 1588| v1588_33(void) = NoOp : -# 1588| v1588_34(void) = ReturnIndirection[#this] : &:r1588_7, m1588_32 +# 1590| r1590_9(glval) = FieldAddress[i] : r1590_7 +# 1590| r1590_10(glval) = VariableAddress[(unnamed parameter 0)] : +# 1590| r1590_11(StructuredBindingTupleRefGet &) = Load[(unnamed parameter 0)] : &:r1590_10, m0_2 +# 1590| r1590_12(glval) = CopyValue : r1590_11 +# 1590| r1590_13(glval) = FieldAddress[i] : r1590_12 +# 1590| r1590_14(int) = Load[?] : &:r1590_13, ~m0_4 +# 1590| m1590_15(int) = Store[?] : &:r1590_9, r1590_14 +# 1590| m1590_16(unknown) = Chi : total:m1590_8, partial:m1590_15 +# 1590| r1590_17(glval) = FieldAddress[d] : r1590_7 +# 1590| r1590_18(glval) = VariableAddress[(unnamed parameter 0)] : +# 1590| r1590_19(StructuredBindingTupleRefGet &) = Load[(unnamed parameter 0)] : &:r1590_18, m0_2 +# 1590| r1590_20(glval) = CopyValue : r1590_19 +# 1590| r1590_21(glval) = FieldAddress[d] : r1590_20 +# 1590| r1590_22(double) = Load[?] : &:r1590_21, ~m0_4 +# 1590| m1590_23(double) = Store[?] : &:r1590_17, r1590_22 +# 1590| m1590_24(unknown) = Chi : total:m1590_16, partial:m1590_23 +# 1590| r1590_25(glval) = FieldAddress[r] : r1590_7 +# 1590| r1590_26(glval) = VariableAddress[(unnamed parameter 0)] : +# 1590| r1590_27(StructuredBindingTupleRefGet &) = Load[(unnamed parameter 0)] : &:r1590_26, m0_2 +# 1590| r1590_28(glval) = CopyValue : r1590_27 +# 1590| r1590_29(glval) = FieldAddress[r] : r1590_28 +# 1590| r1590_30(int &) = Load[?] : &:r1590_29, ~m0_4 +# 1590| m1590_31(int &) = Store[?] : &:r1590_25, r1590_30 +# 1590| m1590_32(unknown) = Chi : total:m1590_24, partial:m1590_31 +# 1590| v1590_33(void) = NoOp : +# 1590| v1590_34(void) = ReturnIndirection[#this] : &:r1590_7, m1590_32 #-----| v0_5(void) = ReturnIndirection[(unnamed parameter 0)] : &:r0_3, m0_4 -# 1588| v1588_35(void) = ReturnVoid : -# 1588| v1588_36(void) = AliasedUse : m1588_3 -# 1588| v1588_37(void) = ExitFunction : - -# 1616| std::tuple_element::type& StructuredBindingTupleRefGet::get() -# 1616| Block 0 -# 1616| v1616_1(void) = EnterFunction : -# 1616| m1616_2(unknown) = AliasedDefinition : -# 1616| m1616_3(unknown) = InitializeNonLocal : -# 1616| m1616_4(unknown) = Chi : total:m1616_2, partial:m1616_3 -# 1616| r1616_5(glval) = VariableAddress[#this] : -# 1616| m1616_6(glval) = InitializeParameter[#this] : &:r1616_5 -# 1616| r1616_7(glval) = Load[#this] : &:r1616_5, m1616_6 -# 1616| m1616_8(StructuredBindingTupleRefGet) = InitializeIndirection[#this] : &:r1616_7 -# 1617| r1617_1(glval) = VariableAddress[#return] : -# 1617| r1617_2(glval) = VariableAddress[#this] : -# 1617| r1617_3(StructuredBindingTupleRefGet *) = Load[#this] : &:r1617_2, m1616_6 -# 1617| r1617_4(glval) = FieldAddress[i] : r1617_3 -#-----| r0_1(int &) = CopyValue : r1617_4 -#-----| m0_2(int &) = Store[#return] : &:r1617_1, r0_1 -# 1616| v1616_9(void) = ReturnIndirection[#this] : &:r1616_7, m1616_8 -# 1616| r1616_10(glval) = VariableAddress[#return] : -# 1616| v1616_11(void) = ReturnValue : &:r1616_10, m0_2 -# 1616| v1616_12(void) = AliasedUse : m1616_3 -# 1616| v1616_13(void) = ExitFunction : - -# 1620| std::tuple_element::type& StructuredBindingTupleRefGet::get() -# 1620| Block 0 -# 1620| v1620_1(void) = EnterFunction : -# 1620| m1620_2(unknown) = AliasedDefinition : -# 1620| m1620_3(unknown) = InitializeNonLocal : -# 1620| m1620_4(unknown) = Chi : total:m1620_2, partial:m1620_3 -# 1620| r1620_5(glval) = VariableAddress[#this] : -# 1620| m1620_6(glval) = InitializeParameter[#this] : &:r1620_5 -# 1620| r1620_7(glval) = Load[#this] : &:r1620_5, m1620_6 -# 1620| m1620_8(StructuredBindingTupleRefGet) = InitializeIndirection[#this] : &:r1620_7 -# 1621| r1621_1(glval) = VariableAddress[#return] : -# 1621| r1621_2(glval) = VariableAddress[#this] : -# 1621| r1621_3(StructuredBindingTupleRefGet *) = Load[#this] : &:r1621_2, m1620_6 -# 1621| r1621_4(glval) = FieldAddress[d] : r1621_3 -#-----| r0_1(double &) = CopyValue : r1621_4 -#-----| m0_2(double &) = Store[#return] : &:r1621_1, r0_1 -# 1620| v1620_9(void) = ReturnIndirection[#this] : &:r1620_7, m1620_8 -# 1620| r1620_10(glval) = VariableAddress[#return] : -# 1620| v1620_11(void) = ReturnValue : &:r1620_10, m0_2 -# 1620| v1620_12(void) = AliasedUse : m1620_3 -# 1620| v1620_13(void) = ExitFunction : - -# 1624| std::tuple_element::type StructuredBindingTupleRefGet::get() -# 1624| Block 0 -# 1624| v1624_1(void) = EnterFunction : -# 1624| m1624_2(unknown) = AliasedDefinition : -# 1624| m1624_3(unknown) = InitializeNonLocal : -# 1624| m1624_4(unknown) = Chi : total:m1624_2, partial:m1624_3 -# 1624| r1624_5(glval) = VariableAddress[#this] : -# 1624| m1624_6(glval) = InitializeParameter[#this] : &:r1624_5 -# 1624| r1624_7(glval) = Load[#this] : &:r1624_5, m1624_6 -# 1624| m1624_8(StructuredBindingTupleRefGet) = InitializeIndirection[#this] : &:r1624_7 -# 1625| r1625_1(glval) = VariableAddress[#return] : -# 1625| r1625_2(glval) = VariableAddress[#this] : -# 1625| r1625_3(StructuredBindingTupleRefGet *) = Load[#this] : &:r1625_2, m1624_6 -# 1625| r1625_4(glval) = FieldAddress[r] : r1625_3 -# 1625| r1625_5(int &) = Load[?] : &:r1625_4, ~m1624_8 -# 1625| r1625_6(glval) = CopyValue : r1625_5 -# 1625| r1625_7(int &) = CopyValue : r1625_6 -# 1625| m1625_8(int &) = Store[#return] : &:r1625_1, r1625_7 -# 1624| v1624_9(void) = ReturnIndirection[#this] : &:r1624_7, m1624_8 -# 1624| r1624_10(glval) = VariableAddress[#return] : -# 1624| v1624_11(void) = ReturnValue : &:r1624_10, m1625_8 -# 1624| v1624_12(void) = AliasedUse : m1624_3 -# 1624| v1624_13(void) = ExitFunction : - -# 1628| void tuple_structured_binding_ref_get() -# 1628| Block 0 -# 1628| v1628_1(void) = EnterFunction : -# 1628| m1628_2(unknown) = AliasedDefinition : -# 1628| m1628_3(unknown) = InitializeNonLocal : -# 1628| m1628_4(unknown) = Chi : total:m1628_2, partial:m1628_3 -# 1629| r1629_1(glval) = VariableAddress[t] : -# 1629| m1629_2(StructuredBindingTupleRefGet) = Uninitialized[t] : &:r1629_1 -# 1629| r1629_3(glval) = FunctionAddress[StructuredBindingTupleRefGet] : -# 1629| v1629_4(void) = Call[StructuredBindingTupleRefGet] : func:r1629_3, this:r1629_1 -# 1629| m1629_5(unknown) = ^CallSideEffect : ~m1628_4 -# 1629| m1629_6(unknown) = Chi : total:m1628_4, partial:m1629_5 -# 1629| m1629_7(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1629_1 -# 1629| m1629_8(StructuredBindingTupleRefGet) = Chi : total:m1629_2, partial:m1629_7 -# 1632| r1632_1(glval) = VariableAddress[(unnamed local variable)] : -# 1632| r1632_2(glval) = VariableAddress[t] : -# 1632| r1632_3(StructuredBindingTupleRefGet) = Load[t] : &:r1632_2, m1629_8 -# 1632| m1632_4(StructuredBindingTupleRefGet) = Store[(unnamed local variable)] : &:r1632_1, r1632_3 -# 1632| r1632_5(glval) = VariableAddress[i] : -# 1632| r1632_6(glval) = VariableAddress[(unnamed local variable)] : -# 1632| r1632_7(glval) = FunctionAddress[get] : -# 1632| r1632_8(int &) = Call[get] : func:r1632_7, this:r1632_6 -# 1632| m1632_9(unknown) = ^CallSideEffect : ~m1629_6 -# 1632| m1632_10(unknown) = Chi : total:m1629_6, partial:m1632_9 -# 1632| v1632_11(void) = ^IndirectReadSideEffect[-1] : &:r1632_6, m1632_4 -# 1632| m1632_12(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1632_6 -# 1632| m1632_13(StructuredBindingTupleRefGet) = Chi : total:m1632_4, partial:m1632_12 -# 1632| r1632_14(glval) = CopyValue : r1632_8 -# 1632| r1632_15(int &) = CopyValue : r1632_14 -# 1632| m1632_16(int &) = Store[i] : &:r1632_5, r1632_15 -# 1632| r1632_17(glval) = VariableAddress[d] : -# 1632| r1632_18(glval) = VariableAddress[(unnamed local variable)] : -# 1632| r1632_19(glval) = FunctionAddress[get] : -# 1632| r1632_20(double &) = Call[get] : func:r1632_19, this:r1632_18 -# 1632| m1632_21(unknown) = ^CallSideEffect : ~m1632_10 -# 1632| m1632_22(unknown) = Chi : total:m1632_10, partial:m1632_21 -# 1632| v1632_23(void) = ^IndirectReadSideEffect[-1] : &:r1632_18, m1632_13 -# 1632| m1632_24(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1632_18 -# 1632| m1632_25(StructuredBindingTupleRefGet) = Chi : total:m1632_13, partial:m1632_24 -# 1632| r1632_26(glval) = CopyValue : r1632_20 -# 1632| r1632_27(double &) = CopyValue : r1632_26 -# 1632| m1632_28(double &) = Store[d] : &:r1632_17, r1632_27 -# 1632| r1632_29(glval) = VariableAddress[r] : -# 1632| r1632_30(glval) = VariableAddress[(unnamed local variable)] : -# 1632| r1632_31(glval) = FunctionAddress[get] : -# 1632| r1632_32(int &) = Call[get] : func:r1632_31, this:r1632_30 -# 1632| m1632_33(unknown) = ^CallSideEffect : ~m1632_22 -# 1632| m1632_34(unknown) = Chi : total:m1632_22, partial:m1632_33 -# 1632| v1632_35(void) = ^IndirectReadSideEffect[-1] : &:r1632_30, m1632_25 -# 1632| m1632_36(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1632_30 -# 1632| m1632_37(StructuredBindingTupleRefGet) = Chi : total:m1632_25, partial:m1632_36 -# 1632| r1632_38(glval) = CopyValue : r1632_32 -# 1632| r1632_39(int &) = CopyValue : r1632_38 -# 1632| m1632_40(int &) = Store[r] : &:r1632_29, r1632_39 -# 1633| r1633_1(double) = Constant[4.0] : -# 1633| r1633_2(glval) = VariableAddress[d] : -# 1633| r1633_3(double &) = Load[d] : &:r1633_2, m1632_28 -# 1633| r1633_4(glval) = CopyValue : r1633_3 -# 1633| m1633_5(double) = Store[?] : &:r1633_4, r1633_1 -# 1633| m1633_6(StructuredBindingTupleRefGet) = Chi : total:m1632_37, partial:m1633_5 -# 1634| r1634_1(glval) = VariableAddress[rd] : -# 1634| r1634_2(glval) = VariableAddress[d] : -# 1634| r1634_3(double &) = Load[d] : &:r1634_2, m1632_28 -# 1634| r1634_4(glval) = CopyValue : r1634_3 -# 1634| r1634_5(double &) = CopyValue : r1634_4 -# 1634| m1634_6(double &) = Store[rd] : &:r1634_1, r1634_5 -# 1635| r1635_1(glval) = VariableAddress[v] : -# 1635| r1635_2(glval) = VariableAddress[i] : -# 1635| r1635_3(int &) = Load[i] : &:r1635_2, m1632_16 -# 1635| r1635_4(int) = Load[?] : &:r1635_3, ~m1632_37 -# 1635| m1635_5(int) = Store[v] : &:r1635_1, r1635_4 -# 1636| r1636_1(int) = Constant[5] : -# 1636| r1636_2(glval) = VariableAddress[r] : -# 1636| r1636_3(int &) = Load[r] : &:r1636_2, m1632_40 -# 1636| r1636_4(glval) = CopyValue : r1636_3 -# 1636| m1636_5(int) = Store[?] : &:r1636_4, r1636_1 -# 1636| m1636_6(unknown) = Chi : total:m1632_34, partial:m1636_5 -# 1637| r1637_1(glval) = VariableAddress[rr] : -# 1637| r1637_2(glval) = VariableAddress[r] : -# 1637| r1637_3(int &) = Load[r] : &:r1637_2, m1632_40 -# 1637| r1637_4(glval) = CopyValue : r1637_3 -# 1637| r1637_5(int &) = CopyValue : r1637_4 -# 1637| m1637_6(int &) = Store[rr] : &:r1637_1, r1637_5 -# 1638| r1638_1(glval) = VariableAddress[w] : +# 1590| v1590_35(void) = ReturnVoid : +# 1590| v1590_36(void) = AliasedUse : m1590_3 +# 1590| v1590_37(void) = ExitFunction : + +# 1618| std::tuple_element::type& StructuredBindingTupleRefGet::get() +# 1618| Block 0 +# 1618| v1618_1(void) = EnterFunction : +# 1618| m1618_2(unknown) = AliasedDefinition : +# 1618| m1618_3(unknown) = InitializeNonLocal : +# 1618| m1618_4(unknown) = Chi : total:m1618_2, partial:m1618_3 +# 1618| r1618_5(glval) = VariableAddress[#this] : +# 1618| m1618_6(glval) = InitializeParameter[#this] : &:r1618_5 +# 1618| r1618_7(glval) = Load[#this] : &:r1618_5, m1618_6 +# 1618| m1618_8(StructuredBindingTupleRefGet) = InitializeIndirection[#this] : &:r1618_7 +# 1619| r1619_1(glval) = VariableAddress[#return] : +# 1619| r1619_2(glval) = VariableAddress[#this] : +# 1619| r1619_3(StructuredBindingTupleRefGet *) = Load[#this] : &:r1619_2, m1618_6 +# 1619| r1619_4(glval) = FieldAddress[i] : r1619_3 +#-----| r0_1(int &) = CopyValue : r1619_4 +#-----| m0_2(int &) = Store[#return] : &:r1619_1, r0_1 +# 1618| v1618_9(void) = ReturnIndirection[#this] : &:r1618_7, m1618_8 +# 1618| r1618_10(glval) = VariableAddress[#return] : +# 1618| v1618_11(void) = ReturnValue : &:r1618_10, m0_2 +# 1618| v1618_12(void) = AliasedUse : m1618_3 +# 1618| v1618_13(void) = ExitFunction : + +# 1622| std::tuple_element::type& StructuredBindingTupleRefGet::get() +# 1622| Block 0 +# 1622| v1622_1(void) = EnterFunction : +# 1622| m1622_2(unknown) = AliasedDefinition : +# 1622| m1622_3(unknown) = InitializeNonLocal : +# 1622| m1622_4(unknown) = Chi : total:m1622_2, partial:m1622_3 +# 1622| r1622_5(glval) = VariableAddress[#this] : +# 1622| m1622_6(glval) = InitializeParameter[#this] : &:r1622_5 +# 1622| r1622_7(glval) = Load[#this] : &:r1622_5, m1622_6 +# 1622| m1622_8(StructuredBindingTupleRefGet) = InitializeIndirection[#this] : &:r1622_7 +# 1623| r1623_1(glval) = VariableAddress[#return] : +# 1623| r1623_2(glval) = VariableAddress[#this] : +# 1623| r1623_3(StructuredBindingTupleRefGet *) = Load[#this] : &:r1623_2, m1622_6 +# 1623| r1623_4(glval) = FieldAddress[d] : r1623_3 +#-----| r0_1(double &) = CopyValue : r1623_4 +#-----| m0_2(double &) = Store[#return] : &:r1623_1, r0_1 +# 1622| v1622_9(void) = ReturnIndirection[#this] : &:r1622_7, m1622_8 +# 1622| r1622_10(glval) = VariableAddress[#return] : +# 1622| v1622_11(void) = ReturnValue : &:r1622_10, m0_2 +# 1622| v1622_12(void) = AliasedUse : m1622_3 +# 1622| v1622_13(void) = ExitFunction : + +# 1626| std::tuple_element::type StructuredBindingTupleRefGet::get() +# 1626| Block 0 +# 1626| v1626_1(void) = EnterFunction : +# 1626| m1626_2(unknown) = AliasedDefinition : +# 1626| m1626_3(unknown) = InitializeNonLocal : +# 1626| m1626_4(unknown) = Chi : total:m1626_2, partial:m1626_3 +# 1626| r1626_5(glval) = VariableAddress[#this] : +# 1626| m1626_6(glval) = InitializeParameter[#this] : &:r1626_5 +# 1626| r1626_7(glval) = Load[#this] : &:r1626_5, m1626_6 +# 1626| m1626_8(StructuredBindingTupleRefGet) = InitializeIndirection[#this] : &:r1626_7 +# 1627| r1627_1(glval) = VariableAddress[#return] : +# 1627| r1627_2(glval) = VariableAddress[#this] : +# 1627| r1627_3(StructuredBindingTupleRefGet *) = Load[#this] : &:r1627_2, m1626_6 +# 1627| r1627_4(glval) = FieldAddress[r] : r1627_3 +# 1627| r1627_5(int &) = Load[?] : &:r1627_4, ~m1626_8 +# 1627| r1627_6(glval) = CopyValue : r1627_5 +# 1627| r1627_7(int &) = CopyValue : r1627_6 +# 1627| m1627_8(int &) = Store[#return] : &:r1627_1, r1627_7 +# 1626| v1626_9(void) = ReturnIndirection[#this] : &:r1626_7, m1626_8 +# 1626| r1626_10(glval) = VariableAddress[#return] : +# 1626| v1626_11(void) = ReturnValue : &:r1626_10, m1627_8 +# 1626| v1626_12(void) = AliasedUse : m1626_3 +# 1626| v1626_13(void) = ExitFunction : + +# 1630| void tuple_structured_binding_ref_get() +# 1630| Block 0 +# 1630| v1630_1(void) = EnterFunction : +# 1630| m1630_2(unknown) = AliasedDefinition : +# 1630| m1630_3(unknown) = InitializeNonLocal : +# 1630| m1630_4(unknown) = Chi : total:m1630_2, partial:m1630_3 +# 1631| r1631_1(glval) = VariableAddress[t] : +# 1631| m1631_2(StructuredBindingTupleRefGet) = Uninitialized[t] : &:r1631_1 +# 1631| r1631_3(glval) = FunctionAddress[StructuredBindingTupleRefGet] : +# 1631| v1631_4(void) = Call[StructuredBindingTupleRefGet] : func:r1631_3, this:r1631_1 +# 1631| m1631_5(unknown) = ^CallSideEffect : ~m1630_4 +# 1631| m1631_6(unknown) = Chi : total:m1630_4, partial:m1631_5 +# 1631| m1631_7(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1631_1 +# 1631| m1631_8(StructuredBindingTupleRefGet) = Chi : total:m1631_2, partial:m1631_7 +# 1634| r1634_1(glval) = VariableAddress[(unnamed local variable)] : +# 1634| r1634_2(glval) = VariableAddress[t] : +# 1634| r1634_3(StructuredBindingTupleRefGet) = Load[t] : &:r1634_2, m1631_8 +# 1634| m1634_4(StructuredBindingTupleRefGet) = Store[(unnamed local variable)] : &:r1634_1, r1634_3 +# 1634| r1634_5(glval) = VariableAddress[i] : +# 1634| r1634_6(glval) = VariableAddress[(unnamed local variable)] : +# 1634| r1634_7(glval) = FunctionAddress[get] : +# 1634| r1634_8(int &) = Call[get] : func:r1634_7, this:r1634_6 +# 1634| m1634_9(unknown) = ^CallSideEffect : ~m1631_6 +# 1634| m1634_10(unknown) = Chi : total:m1631_6, partial:m1634_9 +# 1634| v1634_11(void) = ^IndirectReadSideEffect[-1] : &:r1634_6, m1634_4 +# 1634| m1634_12(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1634_6 +# 1634| m1634_13(StructuredBindingTupleRefGet) = Chi : total:m1634_4, partial:m1634_12 +# 1634| r1634_14(glval) = CopyValue : r1634_8 +# 1634| r1634_15(int &) = CopyValue : r1634_14 +# 1634| m1634_16(int &) = Store[i] : &:r1634_5, r1634_15 +# 1634| r1634_17(glval) = VariableAddress[d] : +# 1634| r1634_18(glval) = VariableAddress[(unnamed local variable)] : +# 1634| r1634_19(glval) = FunctionAddress[get] : +# 1634| r1634_20(double &) = Call[get] : func:r1634_19, this:r1634_18 +# 1634| m1634_21(unknown) = ^CallSideEffect : ~m1634_10 +# 1634| m1634_22(unknown) = Chi : total:m1634_10, partial:m1634_21 +# 1634| v1634_23(void) = ^IndirectReadSideEffect[-1] : &:r1634_18, m1634_13 +# 1634| m1634_24(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1634_18 +# 1634| m1634_25(StructuredBindingTupleRefGet) = Chi : total:m1634_13, partial:m1634_24 +# 1634| r1634_26(glval) = CopyValue : r1634_20 +# 1634| r1634_27(double &) = CopyValue : r1634_26 +# 1634| m1634_28(double &) = Store[d] : &:r1634_17, r1634_27 +# 1634| r1634_29(glval) = VariableAddress[r] : +# 1634| r1634_30(glval) = VariableAddress[(unnamed local variable)] : +# 1634| r1634_31(glval) = FunctionAddress[get] : +# 1634| r1634_32(int &) = Call[get] : func:r1634_31, this:r1634_30 +# 1634| m1634_33(unknown) = ^CallSideEffect : ~m1634_22 +# 1634| m1634_34(unknown) = Chi : total:m1634_22, partial:m1634_33 +# 1634| v1634_35(void) = ^IndirectReadSideEffect[-1] : &:r1634_30, m1634_25 +# 1634| m1634_36(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1634_30 +# 1634| m1634_37(StructuredBindingTupleRefGet) = Chi : total:m1634_25, partial:m1634_36 +# 1634| r1634_38(glval) = CopyValue : r1634_32 +# 1634| r1634_39(int &) = CopyValue : r1634_38 +# 1634| m1634_40(int &) = Store[r] : &:r1634_29, r1634_39 +# 1635| r1635_1(double) = Constant[4.0] : +# 1635| r1635_2(glval) = VariableAddress[d] : +# 1635| r1635_3(double &) = Load[d] : &:r1635_2, m1634_28 +# 1635| r1635_4(glval) = CopyValue : r1635_3 +# 1635| m1635_5(double) = Store[?] : &:r1635_4, r1635_1 +# 1635| m1635_6(StructuredBindingTupleRefGet) = Chi : total:m1634_37, partial:m1635_5 +# 1636| r1636_1(glval) = VariableAddress[rd] : +# 1636| r1636_2(glval) = VariableAddress[d] : +# 1636| r1636_3(double &) = Load[d] : &:r1636_2, m1634_28 +# 1636| r1636_4(glval) = CopyValue : r1636_3 +# 1636| r1636_5(double &) = CopyValue : r1636_4 +# 1636| m1636_6(double &) = Store[rd] : &:r1636_1, r1636_5 +# 1637| r1637_1(glval) = VariableAddress[v] : +# 1637| r1637_2(glval) = VariableAddress[i] : +# 1637| r1637_3(int &) = Load[i] : &:r1637_2, m1634_16 +# 1637| r1637_4(int) = Load[?] : &:r1637_3, ~m1634_37 +# 1637| m1637_5(int) = Store[v] : &:r1637_1, r1637_4 +# 1638| r1638_1(int) = Constant[5] : # 1638| r1638_2(glval) = VariableAddress[r] : -# 1638| r1638_3(int &) = Load[r] : &:r1638_2, m1632_40 -# 1638| r1638_4(int) = Load[?] : &:r1638_3, ~m1636_6 -# 1638| m1638_5(int) = Store[w] : &:r1638_1, r1638_4 -# 1642| r1642_1(glval) = VariableAddress[unnamed_local_variable] : -# 1642| r1642_2(glval) = VariableAddress[t] : -# 1642| r1642_3(StructuredBindingTupleRefGet) = Load[t] : &:r1642_2, m1629_8 -# 1642| m1642_4(StructuredBindingTupleRefGet) = Store[unnamed_local_variable] : &:r1642_1, r1642_3 -# 1643| r1643_1(glval) = VariableAddress[i] : -# 1643| r1643_2(glval) = VariableAddress[unnamed_local_variable] : -# 1643| r1643_3(glval) = FunctionAddress[get] : -# 1643| r1643_4(int &) = Call[get] : func:r1643_3, this:r1643_2 -# 1643| m1643_5(unknown) = ^CallSideEffect : ~m1636_6 -# 1643| m1643_6(unknown) = Chi : total:m1636_6, partial:m1643_5 -# 1643| v1643_7(void) = ^IndirectReadSideEffect[-1] : &:r1643_2, m1642_4 -# 1643| m1643_8(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1643_2 -# 1643| m1643_9(StructuredBindingTupleRefGet) = Chi : total:m1642_4, partial:m1643_8 -# 1643| r1643_10(glval) = CopyValue : r1643_4 -# 1643| r1643_11(int &) = CopyValue : r1643_10 -# 1643| m1643_12(int &) = Store[i] : &:r1643_1, r1643_11 -# 1644| r1644_1(glval) = VariableAddress[d] : -# 1644| r1644_2(glval) = VariableAddress[unnamed_local_variable] : -# 1644| r1644_3(glval) = FunctionAddress[get] : -# 1644| r1644_4(double &) = Call[get] : func:r1644_3, this:r1644_2 -# 1644| m1644_5(unknown) = ^CallSideEffect : ~m1643_6 -# 1644| m1644_6(unknown) = Chi : total:m1643_6, partial:m1644_5 -# 1644| v1644_7(void) = ^IndirectReadSideEffect[-1] : &:r1644_2, m1643_9 -# 1644| m1644_8(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1644_2 -# 1644| m1644_9(StructuredBindingTupleRefGet) = Chi : total:m1643_9, partial:m1644_8 -# 1644| r1644_10(glval) = CopyValue : r1644_4 -# 1644| r1644_11(double &) = CopyValue : r1644_10 -# 1644| m1644_12(double &) = Store[d] : &:r1644_1, r1644_11 -# 1645| r1645_1(glval) = VariableAddress[r] : +# 1638| r1638_3(int &) = Load[r] : &:r1638_2, m1634_40 +# 1638| r1638_4(glval) = CopyValue : r1638_3 +# 1638| m1638_5(int) = Store[?] : &:r1638_4, r1638_1 +# 1638| m1638_6(unknown) = Chi : total:m1634_34, partial:m1638_5 +# 1639| r1639_1(glval) = VariableAddress[rr] : +# 1639| r1639_2(glval) = VariableAddress[r] : +# 1639| r1639_3(int &) = Load[r] : &:r1639_2, m1634_40 +# 1639| r1639_4(glval) = CopyValue : r1639_3 +# 1639| r1639_5(int &) = CopyValue : r1639_4 +# 1639| m1639_6(int &) = Store[rr] : &:r1639_1, r1639_5 +# 1640| r1640_1(glval) = VariableAddress[w] : +# 1640| r1640_2(glval) = VariableAddress[r] : +# 1640| r1640_3(int &) = Load[r] : &:r1640_2, m1634_40 +# 1640| r1640_4(int) = Load[?] : &:r1640_3, ~m1638_6 +# 1640| m1640_5(int) = Store[w] : &:r1640_1, r1640_4 +# 1644| r1644_1(glval) = VariableAddress[unnamed_local_variable] : +# 1644| r1644_2(glval) = VariableAddress[t] : +# 1644| r1644_3(StructuredBindingTupleRefGet) = Load[t] : &:r1644_2, m1631_8 +# 1644| m1644_4(StructuredBindingTupleRefGet) = Store[unnamed_local_variable] : &:r1644_1, r1644_3 +# 1645| r1645_1(glval) = VariableAddress[i] : # 1645| r1645_2(glval) = VariableAddress[unnamed_local_variable] : # 1645| r1645_3(glval) = FunctionAddress[get] : # 1645| r1645_4(int &) = Call[get] : func:r1645_3, this:r1645_2 -# 1645| m1645_5(unknown) = ^CallSideEffect : ~m1644_6 -# 1645| m1645_6(unknown) = Chi : total:m1644_6, partial:m1645_5 -# 1645| v1645_7(void) = ^IndirectReadSideEffect[-1] : &:r1645_2, m1644_9 +# 1645| m1645_5(unknown) = ^CallSideEffect : ~m1638_6 +# 1645| m1645_6(unknown) = Chi : total:m1638_6, partial:m1645_5 +# 1645| v1645_7(void) = ^IndirectReadSideEffect[-1] : &:r1645_2, m1644_4 # 1645| m1645_8(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1645_2 -# 1645| m1645_9(StructuredBindingTupleRefGet) = Chi : total:m1644_9, partial:m1645_8 +# 1645| m1645_9(StructuredBindingTupleRefGet) = Chi : total:m1644_4, partial:m1645_8 # 1645| r1645_10(glval) = CopyValue : r1645_4 # 1645| r1645_11(int &) = CopyValue : r1645_10 -# 1645| m1645_12(int &) = Store[r] : &:r1645_1, r1645_11 -# 1646| r1646_1(double) = Constant[4.0] : -# 1646| r1646_2(glval) = VariableAddress[d] : -# 1646| r1646_3(double &) = Load[d] : &:r1646_2, m1644_12 -# 1646| r1646_4(glval) = CopyValue : r1646_3 -# 1646| m1646_5(double) = Store[?] : &:r1646_4, r1646_1 -# 1646| m1646_6(StructuredBindingTupleRefGet) = Chi : total:m1645_9, partial:m1646_5 -# 1647| r1647_1(glval) = VariableAddress[rd] : -# 1647| r1647_2(glval) = VariableAddress[d] : -# 1647| r1647_3(double &) = Load[d] : &:r1647_2, m1644_12 -# 1647| r1647_4(glval) = CopyValue : r1647_3 -# 1647| r1647_5(double &) = CopyValue : r1647_4 -# 1647| m1647_6(double &) = Store[rd] : &:r1647_1, r1647_5 -# 1648| r1648_1(glval) = VariableAddress[v] : -# 1648| r1648_2(glval) = VariableAddress[i] : -# 1648| r1648_3(int &) = Load[i] : &:r1648_2, m1643_12 -# 1648| r1648_4(int) = Load[?] : &:r1648_3, ~m1645_9 -# 1648| m1648_5(int) = Store[v] : &:r1648_1, r1648_4 -# 1649| r1649_1(int) = Constant[5] : -# 1649| r1649_2(glval) = VariableAddress[r] : -# 1649| r1649_3(int &) = Load[r] : &:r1649_2, m1645_12 -# 1649| r1649_4(glval) = CopyValue : r1649_3 -# 1649| m1649_5(int) = Store[?] : &:r1649_4, r1649_1 -# 1649| m1649_6(unknown) = Chi : total:m1645_6, partial:m1649_5 -# 1650| r1650_1(glval) = VariableAddress[rr] : -# 1650| r1650_2(glval) = VariableAddress[r] : -# 1650| r1650_3(int &) = Load[r] : &:r1650_2, m1645_12 -# 1650| r1650_4(glval) = CopyValue : r1650_3 -# 1650| r1650_5(int &) = CopyValue : r1650_4 -# 1650| m1650_6(int &) = Store[rr] : &:r1650_1, r1650_5 -# 1651| r1651_1(glval) = VariableAddress[w] : +# 1645| m1645_12(int &) = Store[i] : &:r1645_1, r1645_11 +# 1646| r1646_1(glval) = VariableAddress[d] : +# 1646| r1646_2(glval) = VariableAddress[unnamed_local_variable] : +# 1646| r1646_3(glval) = FunctionAddress[get] : +# 1646| r1646_4(double &) = Call[get] : func:r1646_3, this:r1646_2 +# 1646| m1646_5(unknown) = ^CallSideEffect : ~m1645_6 +# 1646| m1646_6(unknown) = Chi : total:m1645_6, partial:m1646_5 +# 1646| v1646_7(void) = ^IndirectReadSideEffect[-1] : &:r1646_2, m1645_9 +# 1646| m1646_8(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1646_2 +# 1646| m1646_9(StructuredBindingTupleRefGet) = Chi : total:m1645_9, partial:m1646_8 +# 1646| r1646_10(glval) = CopyValue : r1646_4 +# 1646| r1646_11(double &) = CopyValue : r1646_10 +# 1646| m1646_12(double &) = Store[d] : &:r1646_1, r1646_11 +# 1647| r1647_1(glval) = VariableAddress[r] : +# 1647| r1647_2(glval) = VariableAddress[unnamed_local_variable] : +# 1647| r1647_3(glval) = FunctionAddress[get] : +# 1647| r1647_4(int &) = Call[get] : func:r1647_3, this:r1647_2 +# 1647| m1647_5(unknown) = ^CallSideEffect : ~m1646_6 +# 1647| m1647_6(unknown) = Chi : total:m1646_6, partial:m1647_5 +# 1647| v1647_7(void) = ^IndirectReadSideEffect[-1] : &:r1647_2, m1646_9 +# 1647| m1647_8(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1647_2 +# 1647| m1647_9(StructuredBindingTupleRefGet) = Chi : total:m1646_9, partial:m1647_8 +# 1647| r1647_10(glval) = CopyValue : r1647_4 +# 1647| r1647_11(int &) = CopyValue : r1647_10 +# 1647| m1647_12(int &) = Store[r] : &:r1647_1, r1647_11 +# 1648| r1648_1(double) = Constant[4.0] : +# 1648| r1648_2(glval) = VariableAddress[d] : +# 1648| r1648_3(double &) = Load[d] : &:r1648_2, m1646_12 +# 1648| r1648_4(glval) = CopyValue : r1648_3 +# 1648| m1648_5(double) = Store[?] : &:r1648_4, r1648_1 +# 1648| m1648_6(StructuredBindingTupleRefGet) = Chi : total:m1647_9, partial:m1648_5 +# 1649| r1649_1(glval) = VariableAddress[rd] : +# 1649| r1649_2(glval) = VariableAddress[d] : +# 1649| r1649_3(double &) = Load[d] : &:r1649_2, m1646_12 +# 1649| r1649_4(glval) = CopyValue : r1649_3 +# 1649| r1649_5(double &) = CopyValue : r1649_4 +# 1649| m1649_6(double &) = Store[rd] : &:r1649_1, r1649_5 +# 1650| r1650_1(glval) = VariableAddress[v] : +# 1650| r1650_2(glval) = VariableAddress[i] : +# 1650| r1650_3(int &) = Load[i] : &:r1650_2, m1645_12 +# 1650| r1650_4(int) = Load[?] : &:r1650_3, ~m1647_9 +# 1650| m1650_5(int) = Store[v] : &:r1650_1, r1650_4 +# 1651| r1651_1(int) = Constant[5] : # 1651| r1651_2(glval) = VariableAddress[r] : -# 1651| r1651_3(int &) = Load[r] : &:r1651_2, m1645_12 -# 1651| r1651_4(int) = Load[?] : &:r1651_3, ~m1649_6 -# 1651| m1651_5(int) = Store[w] : &:r1651_1, r1651_4 -# 1653| v1653_1(void) = NoOp : -# 1628| v1628_5(void) = ReturnVoid : -# 1628| v1628_6(void) = AliasedUse : ~m1649_6 -# 1628| v1628_7(void) = ExitFunction : - -# 1655| void StructuredBindingTupleNoRefGet::StructuredBindingTupleNoRefGet() -# 1655| Block 0 -# 1655| v1655_1(void) = EnterFunction : -# 1655| m1655_2(unknown) = AliasedDefinition : -# 1655| m1655_3(unknown) = InitializeNonLocal : -# 1655| m1655_4(unknown) = Chi : total:m1655_2, partial:m1655_3 -# 1655| r1655_5(glval) = VariableAddress[#this] : -# 1655| m1655_6(glval) = InitializeParameter[#this] : &:r1655_5 -# 1655| r1655_7(glval) = Load[#this] : &:r1655_5, m1655_6 -# 1655| m1655_8(StructuredBindingTupleNoRefGet) = InitializeIndirection[#this] : &:r1655_7 -# 1655| v1655_9(void) = NoOp : -# 1655| v1655_10(void) = ReturnIndirection[#this] : &:r1655_7, m1655_8 -# 1655| v1655_11(void) = ReturnVoid : -# 1655| v1655_12(void) = AliasedUse : m1655_3 -# 1655| v1655_13(void) = ExitFunction : - -# 1682| std::tuple_element::type StructuredBindingTupleNoRefGet::get() -# 1682| Block 0 -# 1682| v1682_1(void) = EnterFunction : -# 1682| m1682_2(unknown) = AliasedDefinition : -# 1682| m1682_3(unknown) = InitializeNonLocal : -# 1682| m1682_4(unknown) = Chi : total:m1682_2, partial:m1682_3 -# 1682| r1682_5(glval) = VariableAddress[#this] : -# 1682| m1682_6(glval) = InitializeParameter[#this] : &:r1682_5 -# 1682| r1682_7(glval) = Load[#this] : &:r1682_5, m1682_6 -# 1682| m1682_8(StructuredBindingTupleNoRefGet) = InitializeIndirection[#this] : &:r1682_7 -# 1683| r1683_1(glval) = VariableAddress[#return] : -# 1683| r1683_2(glval) = VariableAddress[#this] : -# 1683| r1683_3(StructuredBindingTupleNoRefGet *) = Load[#this] : &:r1683_2, m1682_6 -# 1683| r1683_4(glval) = FieldAddress[i] : r1683_3 -# 1683| r1683_5(int) = Load[?] : &:r1683_4, ~m1682_8 -# 1683| m1683_6(int) = Store[#return] : &:r1683_1, r1683_5 -# 1682| v1682_9(void) = ReturnIndirection[#this] : &:r1682_7, m1682_8 -# 1682| r1682_10(glval) = VariableAddress[#return] : -# 1682| v1682_11(void) = ReturnValue : &:r1682_10, m1683_6 -# 1682| v1682_12(void) = AliasedUse : m1682_3 -# 1682| v1682_13(void) = ExitFunction : - -# 1686| std::tuple_element::type StructuredBindingTupleNoRefGet::get() -# 1686| Block 0 -# 1686| v1686_1(void) = EnterFunction : -# 1686| m1686_2(unknown) = AliasedDefinition : -# 1686| m1686_3(unknown) = InitializeNonLocal : -# 1686| m1686_4(unknown) = Chi : total:m1686_2, partial:m1686_3 -# 1686| r1686_5(glval) = VariableAddress[#this] : -# 1686| m1686_6(glval) = InitializeParameter[#this] : &:r1686_5 -# 1686| r1686_7(glval) = Load[#this] : &:r1686_5, m1686_6 -# 1686| m1686_8(StructuredBindingTupleNoRefGet) = InitializeIndirection[#this] : &:r1686_7 -# 1687| r1687_1(glval) = VariableAddress[#return] : -# 1687| r1687_2(glval) = VariableAddress[#this] : -# 1687| r1687_3(StructuredBindingTupleNoRefGet *) = Load[#this] : &:r1687_2, m1686_6 -# 1687| r1687_4(glval) = FieldAddress[r] : r1687_3 -# 1687| r1687_5(int &) = Load[?] : &:r1687_4, ~m1686_8 -# 1687| r1687_6(glval) = CopyValue : r1687_5 -# 1687| r1687_7(int &) = CopyValue : r1687_6 -# 1687| m1687_8(int &) = Store[#return] : &:r1687_1, r1687_7 -# 1686| v1686_9(void) = ReturnIndirection[#this] : &:r1686_7, m1686_8 -# 1686| r1686_10(glval) = VariableAddress[#return] : -# 1686| v1686_11(void) = ReturnValue : &:r1686_10, m1687_8 -# 1686| v1686_12(void) = AliasedUse : m1686_3 -# 1686| v1686_13(void) = ExitFunction : - -# 1690| std::tuple_element::type StructuredBindingTupleNoRefGet::get() -# 1690| Block 0 -# 1690| v1690_1(void) = EnterFunction : -# 1690| m1690_2(unknown) = AliasedDefinition : -# 1690| m1690_3(unknown) = InitializeNonLocal : -# 1690| m1690_4(unknown) = Chi : total:m1690_2, partial:m1690_3 -# 1690| r1690_5(glval) = VariableAddress[#this] : -# 1690| m1690_6(glval) = InitializeParameter[#this] : &:r1690_5 -# 1690| r1690_7(glval) = Load[#this] : &:r1690_5, m1690_6 -# 1690| m1690_8(StructuredBindingTupleNoRefGet) = InitializeIndirection[#this] : &:r1690_7 -# 1691| r1691_1(glval) = VariableAddress[#return] : -# 1691| r1691_2(glval) = VariableAddress[#temp1691:12] : -# 1691| r1691_3(int) = Constant[5] : -# 1691| m1691_4(int) = Store[#temp1691:12] : &:r1691_2, r1691_3 -# 1691| r1691_5(int &) = CopyValue : r1691_2 -# 1691| m1691_6(int &&) = Store[#return] : &:r1691_1, r1691_5 -# 1690| v1690_9(void) = ReturnIndirection[#this] : &:r1690_7, m1690_8 -# 1690| r1690_10(glval) = VariableAddress[#return] : -# 1690| v1690_11(void) = ReturnValue : &:r1690_10, m1691_6 -# 1690| v1690_12(void) = AliasedUse : m1690_3 -# 1690| v1690_13(void) = ExitFunction : - -# 1694| void tuple_structured_binding_no_ref_get() -# 1694| Block 0 -# 1694| v1694_1(void) = EnterFunction : -# 1694| m1694_2(unknown) = AliasedDefinition : -# 1694| m1694_3(unknown) = InitializeNonLocal : -# 1694| m1694_4(unknown) = Chi : total:m1694_2, partial:m1694_3 -# 1695| r1695_1(glval) = VariableAddress[t] : -# 1695| m1695_2(StructuredBindingTupleNoRefGet) = Uninitialized[t] : &:r1695_1 -# 1695| r1695_3(glval) = FunctionAddress[StructuredBindingTupleNoRefGet] : -# 1695| v1695_4(void) = Call[StructuredBindingTupleNoRefGet] : func:r1695_3, this:r1695_1 -# 1695| m1695_5(unknown) = ^CallSideEffect : ~m1694_4 -# 1695| m1695_6(unknown) = Chi : total:m1694_4, partial:m1695_5 -# 1695| m1695_7(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1695_1 -# 1695| m1695_8(StructuredBindingTupleNoRefGet) = Chi : total:m1695_2, partial:m1695_7 -# 1698| r1698_1(glval) = VariableAddress[(unnamed local variable)] : -# 1698| r1698_2(glval) = VariableAddress[t] : -# 1698| r1698_3(StructuredBindingTupleNoRefGet &) = CopyValue : r1698_2 -# 1698| m1698_4(StructuredBindingTupleNoRefGet &) = Store[(unnamed local variable)] : &:r1698_1, r1698_3 -# 1698| r1698_5(glval) = VariableAddress[i] : -# 1698| r1698_6(glval) = VariableAddress[#temp1698:16] : -# 1698| r1698_7(glval) = VariableAddress[(unnamed local variable)] : -# 1698| r1698_8(StructuredBindingTupleNoRefGet &) = Load[(unnamed local variable)] : &:r1698_7, m1698_4 -# 1698| r1698_9(glval) = CopyValue : r1698_8 -# 1698| r1698_10(glval) = FunctionAddress[get] : -# 1698| r1698_11(int) = Call[get] : func:r1698_10, this:r1698_9 -# 1698| m1698_12(unknown) = ^CallSideEffect : ~m1695_6 -# 1698| m1698_13(unknown) = Chi : total:m1695_6, partial:m1698_12 -# 1698| v1698_14(void) = ^IndirectReadSideEffect[-1] : &:r1698_9, m1695_8 -# 1698| m1698_15(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1698_9 -# 1698| m1698_16(StructuredBindingTupleNoRefGet) = Chi : total:m1695_8, partial:m1698_15 -# 1698| m1698_17(int) = Store[#temp1698:16] : &:r1698_6, r1698_11 -# 1698| r1698_18(int &) = CopyValue : r1698_6 -# 1698| m1698_19(int &&) = Store[i] : &:r1698_5, r1698_18 -# 1698| r1698_20(glval) = VariableAddress[r] : -# 1698| r1698_21(glval) = VariableAddress[(unnamed local variable)] : -# 1698| r1698_22(StructuredBindingTupleNoRefGet &) = Load[(unnamed local variable)] : &:r1698_21, m1698_4 -# 1698| r1698_23(glval) = CopyValue : r1698_22 -# 1698| r1698_24(glval) = FunctionAddress[get] : -# 1698| r1698_25(int &) = Call[get] : func:r1698_24, this:r1698_23 -# 1698| m1698_26(unknown) = ^CallSideEffect : ~m1698_13 -# 1698| m1698_27(unknown) = Chi : total:m1698_13, partial:m1698_26 -# 1698| v1698_28(void) = ^IndirectReadSideEffect[-1] : &:r1698_23, m1698_16 -# 1698| m1698_29(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1698_23 -# 1698| m1698_30(StructuredBindingTupleNoRefGet) = Chi : total:m1698_16, partial:m1698_29 -# 1698| r1698_31(glval) = CopyValue : r1698_25 -# 1698| r1698_32(int &) = CopyValue : r1698_31 -# 1698| m1698_33(int &) = Store[r] : &:r1698_20, r1698_32 -# 1698| r1698_34(glval) = VariableAddress[rv] : -# 1698| r1698_35(glval) = VariableAddress[(unnamed local variable)] : -# 1698| r1698_36(StructuredBindingTupleNoRefGet &) = Load[(unnamed local variable)] : &:r1698_35, m1698_4 -# 1698| r1698_37(glval) = CopyValue : r1698_36 -# 1698| r1698_38(glval) = FunctionAddress[get] : -# 1698| r1698_39(int &&) = Call[get] : func:r1698_38, this:r1698_37 -# 1698| m1698_40(unknown) = ^CallSideEffect : ~m1698_27 -# 1698| m1698_41(unknown) = Chi : total:m1698_27, partial:m1698_40 -# 1698| v1698_42(void) = ^IndirectReadSideEffect[-1] : &:r1698_37, m1698_30 -# 1698| m1698_43(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1698_37 -# 1698| m1698_44(StructuredBindingTupleNoRefGet) = Chi : total:m1698_30, partial:m1698_43 -# 1698| r1698_45(glval) = CopyValue : r1698_39 -# 1698| r1698_46(int &) = CopyValue : r1698_45 -# 1698| m1698_47(int &&) = Store[rv] : &:r1698_34, r1698_46 -# 1699| r1699_1(int) = Constant[4] : -# 1699| r1699_2(glval) = VariableAddress[i] : -# 1699| r1699_3(int &&) = Load[i] : &:r1699_2, m1698_19 -# 1699| r1699_4(glval) = CopyValue : r1699_3 -# 1699| m1699_5(int) = Store[?] : &:r1699_4, r1699_1 -# 1700| r1700_1(glval) = VariableAddress[ri] : -# 1700| r1700_2(glval) = VariableAddress[i] : -# 1700| r1700_3(int &&) = Load[i] : &:r1700_2, m1698_19 -# 1700| r1700_4(glval) = CopyValue : r1700_3 -# 1700| r1700_5(int &) = CopyValue : r1700_4 -# 1700| m1700_6(int &) = Store[ri] : &:r1700_1, r1700_5 -# 1701| r1701_1(glval) = VariableAddress[v] : +# 1651| r1651_3(int &) = Load[r] : &:r1651_2, m1647_12 +# 1651| r1651_4(glval) = CopyValue : r1651_3 +# 1651| m1651_5(int) = Store[?] : &:r1651_4, r1651_1 +# 1651| m1651_6(unknown) = Chi : total:m1647_6, partial:m1651_5 +# 1652| r1652_1(glval) = VariableAddress[rr] : +# 1652| r1652_2(glval) = VariableAddress[r] : +# 1652| r1652_3(int &) = Load[r] : &:r1652_2, m1647_12 +# 1652| r1652_4(glval) = CopyValue : r1652_3 +# 1652| r1652_5(int &) = CopyValue : r1652_4 +# 1652| m1652_6(int &) = Store[rr] : &:r1652_1, r1652_5 +# 1653| r1653_1(glval) = VariableAddress[w] : +# 1653| r1653_2(glval) = VariableAddress[r] : +# 1653| r1653_3(int &) = Load[r] : &:r1653_2, m1647_12 +# 1653| r1653_4(int) = Load[?] : &:r1653_3, ~m1651_6 +# 1653| m1653_5(int) = Store[w] : &:r1653_1, r1653_4 +# 1655| v1655_1(void) = NoOp : +# 1630| v1630_5(void) = ReturnVoid : +# 1630| v1630_6(void) = AliasedUse : ~m1651_6 +# 1630| v1630_7(void) = ExitFunction : + +# 1657| void StructuredBindingTupleNoRefGet::StructuredBindingTupleNoRefGet() +# 1657| Block 0 +# 1657| v1657_1(void) = EnterFunction : +# 1657| m1657_2(unknown) = AliasedDefinition : +# 1657| m1657_3(unknown) = InitializeNonLocal : +# 1657| m1657_4(unknown) = Chi : total:m1657_2, partial:m1657_3 +# 1657| r1657_5(glval) = VariableAddress[#this] : +# 1657| m1657_6(glval) = InitializeParameter[#this] : &:r1657_5 +# 1657| r1657_7(glval) = Load[#this] : &:r1657_5, m1657_6 +# 1657| m1657_8(StructuredBindingTupleNoRefGet) = InitializeIndirection[#this] : &:r1657_7 +# 1657| v1657_9(void) = NoOp : +# 1657| v1657_10(void) = ReturnIndirection[#this] : &:r1657_7, m1657_8 +# 1657| v1657_11(void) = ReturnVoid : +# 1657| v1657_12(void) = AliasedUse : m1657_3 +# 1657| v1657_13(void) = ExitFunction : + +# 1684| std::tuple_element::type StructuredBindingTupleNoRefGet::get() +# 1684| Block 0 +# 1684| v1684_1(void) = EnterFunction : +# 1684| m1684_2(unknown) = AliasedDefinition : +# 1684| m1684_3(unknown) = InitializeNonLocal : +# 1684| m1684_4(unknown) = Chi : total:m1684_2, partial:m1684_3 +# 1684| r1684_5(glval) = VariableAddress[#this] : +# 1684| m1684_6(glval) = InitializeParameter[#this] : &:r1684_5 +# 1684| r1684_7(glval) = Load[#this] : &:r1684_5, m1684_6 +# 1684| m1684_8(StructuredBindingTupleNoRefGet) = InitializeIndirection[#this] : &:r1684_7 +# 1685| r1685_1(glval) = VariableAddress[#return] : +# 1685| r1685_2(glval) = VariableAddress[#this] : +# 1685| r1685_3(StructuredBindingTupleNoRefGet *) = Load[#this] : &:r1685_2, m1684_6 +# 1685| r1685_4(glval) = FieldAddress[i] : r1685_3 +# 1685| r1685_5(int) = Load[?] : &:r1685_4, ~m1684_8 +# 1685| m1685_6(int) = Store[#return] : &:r1685_1, r1685_5 +# 1684| v1684_9(void) = ReturnIndirection[#this] : &:r1684_7, m1684_8 +# 1684| r1684_10(glval) = VariableAddress[#return] : +# 1684| v1684_11(void) = ReturnValue : &:r1684_10, m1685_6 +# 1684| v1684_12(void) = AliasedUse : m1684_3 +# 1684| v1684_13(void) = ExitFunction : + +# 1688| std::tuple_element::type StructuredBindingTupleNoRefGet::get() +# 1688| Block 0 +# 1688| v1688_1(void) = EnterFunction : +# 1688| m1688_2(unknown) = AliasedDefinition : +# 1688| m1688_3(unknown) = InitializeNonLocal : +# 1688| m1688_4(unknown) = Chi : total:m1688_2, partial:m1688_3 +# 1688| r1688_5(glval) = VariableAddress[#this] : +# 1688| m1688_6(glval) = InitializeParameter[#this] : &:r1688_5 +# 1688| r1688_7(glval) = Load[#this] : &:r1688_5, m1688_6 +# 1688| m1688_8(StructuredBindingTupleNoRefGet) = InitializeIndirection[#this] : &:r1688_7 +# 1689| r1689_1(glval) = VariableAddress[#return] : +# 1689| r1689_2(glval) = VariableAddress[#this] : +# 1689| r1689_3(StructuredBindingTupleNoRefGet *) = Load[#this] : &:r1689_2, m1688_6 +# 1689| r1689_4(glval) = FieldAddress[r] : r1689_3 +# 1689| r1689_5(int &) = Load[?] : &:r1689_4, ~m1688_8 +# 1689| r1689_6(glval) = CopyValue : r1689_5 +# 1689| r1689_7(int &) = CopyValue : r1689_6 +# 1689| m1689_8(int &) = Store[#return] : &:r1689_1, r1689_7 +# 1688| v1688_9(void) = ReturnIndirection[#this] : &:r1688_7, m1688_8 +# 1688| r1688_10(glval) = VariableAddress[#return] : +# 1688| v1688_11(void) = ReturnValue : &:r1688_10, m1689_8 +# 1688| v1688_12(void) = AliasedUse : m1688_3 +# 1688| v1688_13(void) = ExitFunction : + +# 1692| std::tuple_element::type StructuredBindingTupleNoRefGet::get() +# 1692| Block 0 +# 1692| v1692_1(void) = EnterFunction : +# 1692| m1692_2(unknown) = AliasedDefinition : +# 1692| m1692_3(unknown) = InitializeNonLocal : +# 1692| m1692_4(unknown) = Chi : total:m1692_2, partial:m1692_3 +# 1692| r1692_5(glval) = VariableAddress[#this] : +# 1692| m1692_6(glval) = InitializeParameter[#this] : &:r1692_5 +# 1692| r1692_7(glval) = Load[#this] : &:r1692_5, m1692_6 +# 1692| m1692_8(StructuredBindingTupleNoRefGet) = InitializeIndirection[#this] : &:r1692_7 +# 1693| r1693_1(glval) = VariableAddress[#return] : +# 1693| r1693_2(glval) = VariableAddress[#temp1693:12] : +# 1693| r1693_3(int) = Constant[5] : +# 1693| m1693_4(int) = Store[#temp1693:12] : &:r1693_2, r1693_3 +# 1693| r1693_5(int &) = CopyValue : r1693_2 +# 1693| m1693_6(int &&) = Store[#return] : &:r1693_1, r1693_5 +# 1692| v1692_9(void) = ReturnIndirection[#this] : &:r1692_7, m1692_8 +# 1692| r1692_10(glval) = VariableAddress[#return] : +# 1692| v1692_11(void) = ReturnValue : &:r1692_10, m1693_6 +# 1692| v1692_12(void) = AliasedUse : m1692_3 +# 1692| v1692_13(void) = ExitFunction : + +# 1696| void tuple_structured_binding_no_ref_get() +# 1696| Block 0 +# 1696| v1696_1(void) = EnterFunction : +# 1696| m1696_2(unknown) = AliasedDefinition : +# 1696| m1696_3(unknown) = InitializeNonLocal : +# 1696| m1696_4(unknown) = Chi : total:m1696_2, partial:m1696_3 +# 1697| r1697_1(glval) = VariableAddress[t] : +# 1697| m1697_2(StructuredBindingTupleNoRefGet) = Uninitialized[t] : &:r1697_1 +# 1697| r1697_3(glval) = FunctionAddress[StructuredBindingTupleNoRefGet] : +# 1697| v1697_4(void) = Call[StructuredBindingTupleNoRefGet] : func:r1697_3, this:r1697_1 +# 1697| m1697_5(unknown) = ^CallSideEffect : ~m1696_4 +# 1697| m1697_6(unknown) = Chi : total:m1696_4, partial:m1697_5 +# 1697| m1697_7(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1697_1 +# 1697| m1697_8(StructuredBindingTupleNoRefGet) = Chi : total:m1697_2, partial:m1697_7 +# 1700| r1700_1(glval) = VariableAddress[(unnamed local variable)] : +# 1700| r1700_2(glval) = VariableAddress[t] : +# 1700| r1700_3(StructuredBindingTupleNoRefGet &) = CopyValue : r1700_2 +# 1700| m1700_4(StructuredBindingTupleNoRefGet &) = Store[(unnamed local variable)] : &:r1700_1, r1700_3 +# 1700| r1700_5(glval) = VariableAddress[i] : +# 1700| r1700_6(glval) = VariableAddress[#temp1700:16] : +# 1700| r1700_7(glval) = VariableAddress[(unnamed local variable)] : +# 1700| r1700_8(StructuredBindingTupleNoRefGet &) = Load[(unnamed local variable)] : &:r1700_7, m1700_4 +# 1700| r1700_9(glval) = CopyValue : r1700_8 +# 1700| r1700_10(glval) = FunctionAddress[get] : +# 1700| r1700_11(int) = Call[get] : func:r1700_10, this:r1700_9 +# 1700| m1700_12(unknown) = ^CallSideEffect : ~m1697_6 +# 1700| m1700_13(unknown) = Chi : total:m1697_6, partial:m1700_12 +# 1700| v1700_14(void) = ^IndirectReadSideEffect[-1] : &:r1700_9, m1697_8 +# 1700| m1700_15(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1700_9 +# 1700| m1700_16(StructuredBindingTupleNoRefGet) = Chi : total:m1697_8, partial:m1700_15 +# 1700| m1700_17(int) = Store[#temp1700:16] : &:r1700_6, r1700_11 +# 1700| r1700_18(int &) = CopyValue : r1700_6 +# 1700| m1700_19(int &&) = Store[i] : &:r1700_5, r1700_18 +# 1700| r1700_20(glval) = VariableAddress[r] : +# 1700| r1700_21(glval) = VariableAddress[(unnamed local variable)] : +# 1700| r1700_22(StructuredBindingTupleNoRefGet &) = Load[(unnamed local variable)] : &:r1700_21, m1700_4 +# 1700| r1700_23(glval) = CopyValue : r1700_22 +# 1700| r1700_24(glval) = FunctionAddress[get] : +# 1700| r1700_25(int &) = Call[get] : func:r1700_24, this:r1700_23 +# 1700| m1700_26(unknown) = ^CallSideEffect : ~m1700_13 +# 1700| m1700_27(unknown) = Chi : total:m1700_13, partial:m1700_26 +# 1700| v1700_28(void) = ^IndirectReadSideEffect[-1] : &:r1700_23, m1700_16 +# 1700| m1700_29(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1700_23 +# 1700| m1700_30(StructuredBindingTupleNoRefGet) = Chi : total:m1700_16, partial:m1700_29 +# 1700| r1700_31(glval) = CopyValue : r1700_25 +# 1700| r1700_32(int &) = CopyValue : r1700_31 +# 1700| m1700_33(int &) = Store[r] : &:r1700_20, r1700_32 +# 1700| r1700_34(glval) = VariableAddress[rv] : +# 1700| r1700_35(glval) = VariableAddress[(unnamed local variable)] : +# 1700| r1700_36(StructuredBindingTupleNoRefGet &) = Load[(unnamed local variable)] : &:r1700_35, m1700_4 +# 1700| r1700_37(glval) = CopyValue : r1700_36 +# 1700| r1700_38(glval) = FunctionAddress[get] : +# 1700| r1700_39(int &&) = Call[get] : func:r1700_38, this:r1700_37 +# 1700| m1700_40(unknown) = ^CallSideEffect : ~m1700_27 +# 1700| m1700_41(unknown) = Chi : total:m1700_27, partial:m1700_40 +# 1700| v1700_42(void) = ^IndirectReadSideEffect[-1] : &:r1700_37, m1700_30 +# 1700| m1700_43(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1700_37 +# 1700| m1700_44(StructuredBindingTupleNoRefGet) = Chi : total:m1700_30, partial:m1700_43 +# 1700| r1700_45(glval) = CopyValue : r1700_39 +# 1700| r1700_46(int &) = CopyValue : r1700_45 +# 1700| m1700_47(int &&) = Store[rv] : &:r1700_34, r1700_46 +# 1701| r1701_1(int) = Constant[4] : # 1701| r1701_2(glval) = VariableAddress[i] : -# 1701| r1701_3(int &&) = Load[i] : &:r1701_2, m1698_19 -# 1701| r1701_4(int) = Load[?] : &:r1701_3, m1699_5 -# 1701| m1701_5(int) = Store[v] : &:r1701_1, r1701_4 -# 1702| r1702_1(int) = Constant[5] : -# 1702| r1702_2(glval) = VariableAddress[r] : -# 1702| r1702_3(int &) = Load[r] : &:r1702_2, m1698_33 +# 1701| r1701_3(int &&) = Load[i] : &:r1701_2, m1700_19 +# 1701| r1701_4(glval) = CopyValue : r1701_3 +# 1701| m1701_5(int) = Store[?] : &:r1701_4, r1701_1 +# 1702| r1702_1(glval) = VariableAddress[ri] : +# 1702| r1702_2(glval) = VariableAddress[i] : +# 1702| r1702_3(int &&) = Load[i] : &:r1702_2, m1700_19 # 1702| r1702_4(glval) = CopyValue : r1702_3 -# 1702| m1702_5(int) = Store[?] : &:r1702_4, r1702_1 -# 1702| m1702_6(unknown) = Chi : total:m1698_41, partial:m1702_5 -# 1703| r1703_1(glval) = VariableAddress[rr] : -# 1703| r1703_2(glval) = VariableAddress[r] : -# 1703| r1703_3(int &) = Load[r] : &:r1703_2, m1698_33 -# 1703| r1703_4(glval) = CopyValue : r1703_3 -# 1703| r1703_5(int &) = CopyValue : r1703_4 -# 1703| m1703_6(int &) = Store[rr] : &:r1703_1, r1703_5 -# 1704| r1704_1(glval) = VariableAddress[w] : +# 1702| r1702_5(int &) = CopyValue : r1702_4 +# 1702| m1702_6(int &) = Store[ri] : &:r1702_1, r1702_5 +# 1703| r1703_1(glval) = VariableAddress[v] : +# 1703| r1703_2(glval) = VariableAddress[i] : +# 1703| r1703_3(int &&) = Load[i] : &:r1703_2, m1700_19 +# 1703| r1703_4(int) = Load[?] : &:r1703_3, m1701_5 +# 1703| m1703_5(int) = Store[v] : &:r1703_1, r1703_4 +# 1704| r1704_1(int) = Constant[5] : # 1704| r1704_2(glval) = VariableAddress[r] : -# 1704| r1704_3(int &) = Load[r] : &:r1704_2, m1698_33 -# 1704| r1704_4(int) = Load[?] : &:r1704_3, ~m1702_6 -# 1704| m1704_5(int) = Store[w] : &:r1704_1, r1704_4 -# 1708| r1708_1(glval) = VariableAddress[unnamed_local_variable] : -# 1708| r1708_2(glval) = VariableAddress[t] : -# 1708| r1708_3(StructuredBindingTupleNoRefGet &) = CopyValue : r1708_2 -# 1708| m1708_4(StructuredBindingTupleNoRefGet &) = Store[unnamed_local_variable] : &:r1708_1, r1708_3 -# 1709| r1709_1(glval) = VariableAddress[i] : -# 1709| r1709_2(glval) = VariableAddress[#temp1709:20] : -# 1709| r1709_3(glval) = VariableAddress[unnamed_local_variable] : -# 1709| r1709_4(StructuredBindingTupleNoRefGet &) = Load[unnamed_local_variable] : &:r1709_3, m1708_4 -# 1709| r1709_5(glval) = CopyValue : r1709_4 -# 1709| r1709_6(glval) = FunctionAddress[get] : -# 1709| r1709_7(int) = Call[get] : func:r1709_6, this:r1709_5 -# 1709| m1709_8(unknown) = ^CallSideEffect : ~m1702_6 -# 1709| m1709_9(unknown) = Chi : total:m1702_6, partial:m1709_8 -# 1709| v1709_10(void) = ^IndirectReadSideEffect[-1] : &:r1709_5, m1698_44 -# 1709| m1709_11(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1709_5 -# 1709| m1709_12(StructuredBindingTupleNoRefGet) = Chi : total:m1698_44, partial:m1709_11 -# 1709| m1709_13(int) = Store[#temp1709:20] : &:r1709_2, r1709_7 -# 1709| r1709_14(int &) = CopyValue : r1709_2 -# 1709| m1709_15(int &&) = Store[i] : &:r1709_1, r1709_14 -# 1710| r1710_1(glval) = VariableAddress[r] : -# 1710| r1710_2(glval) = VariableAddress[unnamed_local_variable] : -# 1710| r1710_3(StructuredBindingTupleNoRefGet &) = Load[unnamed_local_variable] : &:r1710_2, m1708_4 -# 1710| r1710_4(glval) = CopyValue : r1710_3 -# 1710| r1710_5(glval) = FunctionAddress[get] : -# 1710| r1710_6(int &) = Call[get] : func:r1710_5, this:r1710_4 -# 1710| m1710_7(unknown) = ^CallSideEffect : ~m1709_9 -# 1710| m1710_8(unknown) = Chi : total:m1709_9, partial:m1710_7 -# 1710| v1710_9(void) = ^IndirectReadSideEffect[-1] : &:r1710_4, m1709_12 -# 1710| m1710_10(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1710_4 -# 1710| m1710_11(StructuredBindingTupleNoRefGet) = Chi : total:m1709_12, partial:m1710_10 -# 1710| r1710_12(glval) = CopyValue : r1710_6 -# 1710| r1710_13(int &) = CopyValue : r1710_12 -# 1710| m1710_14(int &) = Store[r] : &:r1710_1, r1710_13 -# 1711| r1711_1(glval) = VariableAddress[rv] : -# 1711| r1711_2(glval) = VariableAddress[unnamed_local_variable] : -# 1711| r1711_3(StructuredBindingTupleNoRefGet &) = Load[unnamed_local_variable] : &:r1711_2, m1708_4 -# 1711| r1711_4(glval) = CopyValue : r1711_3 -# 1711| r1711_5(glval) = FunctionAddress[get] : -# 1711| r1711_6(int &&) = Call[get] : func:r1711_5, this:r1711_4 -# 1711| m1711_7(unknown) = ^CallSideEffect : ~m1710_8 -# 1711| m1711_8(unknown) = Chi : total:m1710_8, partial:m1711_7 -# 1711| v1711_9(void) = ^IndirectReadSideEffect[-1] : &:r1711_4, m1710_11 -# 1711| m1711_10(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1711_4 -# 1711| m1711_11(StructuredBindingTupleNoRefGet) = Chi : total:m1710_11, partial:m1711_10 -# 1711| r1711_12(glval) = CopyValue : r1711_6 -# 1711| r1711_13(int &) = CopyValue : r1711_12 -# 1711| m1711_14(int &&) = Store[rv] : &:r1711_1, r1711_13 -# 1712| r1712_1(int) = Constant[4] : -# 1712| r1712_2(glval) = VariableAddress[i] : -# 1712| r1712_3(int &&) = Load[i] : &:r1712_2, m1709_15 -# 1712| r1712_4(glval) = CopyValue : r1712_3 -# 1712| m1712_5(int) = Store[?] : &:r1712_4, r1712_1 -# 1713| r1713_1(glval) = VariableAddress[ri] : -# 1713| r1713_2(glval) = VariableAddress[i] : -# 1713| r1713_3(int &&) = Load[i] : &:r1713_2, m1709_15 -# 1713| r1713_4(glval) = CopyValue : r1713_3 -# 1713| r1713_5(int &) = CopyValue : r1713_4 -# 1713| m1713_6(int &) = Store[ri] : &:r1713_1, r1713_5 -# 1714| r1714_1(glval) = VariableAddress[v] : +# 1704| r1704_3(int &) = Load[r] : &:r1704_2, m1700_33 +# 1704| r1704_4(glval) = CopyValue : r1704_3 +# 1704| m1704_5(int) = Store[?] : &:r1704_4, r1704_1 +# 1704| m1704_6(unknown) = Chi : total:m1700_41, partial:m1704_5 +# 1705| r1705_1(glval) = VariableAddress[rr] : +# 1705| r1705_2(glval) = VariableAddress[r] : +# 1705| r1705_3(int &) = Load[r] : &:r1705_2, m1700_33 +# 1705| r1705_4(glval) = CopyValue : r1705_3 +# 1705| r1705_5(int &) = CopyValue : r1705_4 +# 1705| m1705_6(int &) = Store[rr] : &:r1705_1, r1705_5 +# 1706| r1706_1(glval) = VariableAddress[w] : +# 1706| r1706_2(glval) = VariableAddress[r] : +# 1706| r1706_3(int &) = Load[r] : &:r1706_2, m1700_33 +# 1706| r1706_4(int) = Load[?] : &:r1706_3, ~m1704_6 +# 1706| m1706_5(int) = Store[w] : &:r1706_1, r1706_4 +# 1710| r1710_1(glval) = VariableAddress[unnamed_local_variable] : +# 1710| r1710_2(glval) = VariableAddress[t] : +# 1710| r1710_3(StructuredBindingTupleNoRefGet &) = CopyValue : r1710_2 +# 1710| m1710_4(StructuredBindingTupleNoRefGet &) = Store[unnamed_local_variable] : &:r1710_1, r1710_3 +# 1711| r1711_1(glval) = VariableAddress[i] : +# 1711| r1711_2(glval) = VariableAddress[#temp1711:20] : +# 1711| r1711_3(glval) = VariableAddress[unnamed_local_variable] : +# 1711| r1711_4(StructuredBindingTupleNoRefGet &) = Load[unnamed_local_variable] : &:r1711_3, m1710_4 +# 1711| r1711_5(glval) = CopyValue : r1711_4 +# 1711| r1711_6(glval) = FunctionAddress[get] : +# 1711| r1711_7(int) = Call[get] : func:r1711_6, this:r1711_5 +# 1711| m1711_8(unknown) = ^CallSideEffect : ~m1704_6 +# 1711| m1711_9(unknown) = Chi : total:m1704_6, partial:m1711_8 +# 1711| v1711_10(void) = ^IndirectReadSideEffect[-1] : &:r1711_5, m1700_44 +# 1711| m1711_11(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1711_5 +# 1711| m1711_12(StructuredBindingTupleNoRefGet) = Chi : total:m1700_44, partial:m1711_11 +# 1711| m1711_13(int) = Store[#temp1711:20] : &:r1711_2, r1711_7 +# 1711| r1711_14(int &) = CopyValue : r1711_2 +# 1711| m1711_15(int &&) = Store[i] : &:r1711_1, r1711_14 +# 1712| r1712_1(glval) = VariableAddress[r] : +# 1712| r1712_2(glval) = VariableAddress[unnamed_local_variable] : +# 1712| r1712_3(StructuredBindingTupleNoRefGet &) = Load[unnamed_local_variable] : &:r1712_2, m1710_4 +# 1712| r1712_4(glval) = CopyValue : r1712_3 +# 1712| r1712_5(glval) = FunctionAddress[get] : +# 1712| r1712_6(int &) = Call[get] : func:r1712_5, this:r1712_4 +# 1712| m1712_7(unknown) = ^CallSideEffect : ~m1711_9 +# 1712| m1712_8(unknown) = Chi : total:m1711_9, partial:m1712_7 +# 1712| v1712_9(void) = ^IndirectReadSideEffect[-1] : &:r1712_4, m1711_12 +# 1712| m1712_10(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1712_4 +# 1712| m1712_11(StructuredBindingTupleNoRefGet) = Chi : total:m1711_12, partial:m1712_10 +# 1712| r1712_12(glval) = CopyValue : r1712_6 +# 1712| r1712_13(int &) = CopyValue : r1712_12 +# 1712| m1712_14(int &) = Store[r] : &:r1712_1, r1712_13 +# 1713| r1713_1(glval) = VariableAddress[rv] : +# 1713| r1713_2(glval) = VariableAddress[unnamed_local_variable] : +# 1713| r1713_3(StructuredBindingTupleNoRefGet &) = Load[unnamed_local_variable] : &:r1713_2, m1710_4 +# 1713| r1713_4(glval) = CopyValue : r1713_3 +# 1713| r1713_5(glval) = FunctionAddress[get] : +# 1713| r1713_6(int &&) = Call[get] : func:r1713_5, this:r1713_4 +# 1713| m1713_7(unknown) = ^CallSideEffect : ~m1712_8 +# 1713| m1713_8(unknown) = Chi : total:m1712_8, partial:m1713_7 +# 1713| v1713_9(void) = ^IndirectReadSideEffect[-1] : &:r1713_4, m1712_11 +# 1713| m1713_10(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1713_4 +# 1713| m1713_11(StructuredBindingTupleNoRefGet) = Chi : total:m1712_11, partial:m1713_10 +# 1713| r1713_12(glval) = CopyValue : r1713_6 +# 1713| r1713_13(int &) = CopyValue : r1713_12 +# 1713| m1713_14(int &&) = Store[rv] : &:r1713_1, r1713_13 +# 1714| r1714_1(int) = Constant[4] : # 1714| r1714_2(glval) = VariableAddress[i] : -# 1714| r1714_3(int &&) = Load[i] : &:r1714_2, m1709_15 -# 1714| r1714_4(int) = Load[?] : &:r1714_3, m1712_5 -# 1714| m1714_5(int) = Store[v] : &:r1714_1, r1714_4 -# 1715| r1715_1(int) = Constant[5] : -# 1715| r1715_2(glval) = VariableAddress[r] : -# 1715| r1715_3(int &) = Load[r] : &:r1715_2, m1710_14 +# 1714| r1714_3(int &&) = Load[i] : &:r1714_2, m1711_15 +# 1714| r1714_4(glval) = CopyValue : r1714_3 +# 1714| m1714_5(int) = Store[?] : &:r1714_4, r1714_1 +# 1715| r1715_1(glval) = VariableAddress[ri] : +# 1715| r1715_2(glval) = VariableAddress[i] : +# 1715| r1715_3(int &&) = Load[i] : &:r1715_2, m1711_15 # 1715| r1715_4(glval) = CopyValue : r1715_3 -# 1715| m1715_5(int) = Store[?] : &:r1715_4, r1715_1 -# 1715| m1715_6(unknown) = Chi : total:m1711_8, partial:m1715_5 -# 1716| r1716_1(glval) = VariableAddress[rr] : -# 1716| r1716_2(glval) = VariableAddress[r] : -# 1716| r1716_3(int &) = Load[r] : &:r1716_2, m1710_14 -# 1716| r1716_4(glval) = CopyValue : r1716_3 -# 1716| r1716_5(int &) = CopyValue : r1716_4 -# 1716| m1716_6(int &) = Store[rr] : &:r1716_1, r1716_5 -# 1717| r1717_1(glval) = VariableAddress[w] : +# 1715| r1715_5(int &) = CopyValue : r1715_4 +# 1715| m1715_6(int &) = Store[ri] : &:r1715_1, r1715_5 +# 1716| r1716_1(glval) = VariableAddress[v] : +# 1716| r1716_2(glval) = VariableAddress[i] : +# 1716| r1716_3(int &&) = Load[i] : &:r1716_2, m1711_15 +# 1716| r1716_4(int) = Load[?] : &:r1716_3, m1714_5 +# 1716| m1716_5(int) = Store[v] : &:r1716_1, r1716_4 +# 1717| r1717_1(int) = Constant[5] : # 1717| r1717_2(glval) = VariableAddress[r] : -# 1717| r1717_3(int &) = Load[r] : &:r1717_2, m1710_14 -# 1717| r1717_4(int) = Load[?] : &:r1717_3, ~m1715_6 -# 1717| m1717_5(int) = Store[w] : &:r1717_1, r1717_4 -# 1719| v1719_1(void) = NoOp : -# 1694| v1694_5(void) = ReturnVoid : -# 1694| v1694_6(void) = AliasedUse : ~m1715_6 -# 1694| v1694_7(void) = ExitFunction : - -# 1721| void array_structured_binding_non_ref_init() -# 1721| Block 0 -# 1721| v1721_1(void) = EnterFunction : -# 1721| m1721_2(unknown) = AliasedDefinition : -# 1721| m1721_3(unknown) = InitializeNonLocal : -# 1721| m1721_4(unknown) = Chi : total:m1721_2, partial:m1721_3 -# 1722| r1722_1(glval) = VariableAddress[xs] : -# 1722| m1722_2(int[2]) = Uninitialized[xs] : &:r1722_1 -# 1722| r1722_3(int) = Constant[0] : -# 1722| r1722_4(glval) = PointerAdd[4] : r1722_1, r1722_3 -# 1722| r1722_5(int) = Constant[1] : -# 1722| m1722_6(int) = Store[?] : &:r1722_4, r1722_5 -# 1722| m1722_7(int[2]) = Chi : total:m1722_2, partial:m1722_6 -# 1722| r1722_8(int) = Constant[1] : -# 1722| r1722_9(glval) = PointerAdd[4] : r1722_1, r1722_8 -# 1722| r1722_10(int) = Constant[2] : -# 1722| m1722_11(int) = Store[?] : &:r1722_9, r1722_10 -# 1722| m1722_12(int[2]) = Chi : total:m1722_7, partial:m1722_11 -# 1723| r1723_1(glval) = VariableAddress[(unnamed local variable)] : -# 1723| r1723_2(glval) = VariableAddress[xs] : -# 1723| r1723_3(int[2]) = Load[xs] : &:r1723_2, m1722_12 -# 1723| m1723_4(int[2]) = Store[(unnamed local variable)] : &:r1723_1, r1723_3 -# 1723| r1723_5(glval) = VariableAddress[x0] : +# 1717| r1717_3(int &) = Load[r] : &:r1717_2, m1712_14 +# 1717| r1717_4(glval) = CopyValue : r1717_3 +# 1717| m1717_5(int) = Store[?] : &:r1717_4, r1717_1 +# 1717| m1717_6(unknown) = Chi : total:m1713_8, partial:m1717_5 +# 1718| r1718_1(glval) = VariableAddress[rr] : +# 1718| r1718_2(glval) = VariableAddress[r] : +# 1718| r1718_3(int &) = Load[r] : &:r1718_2, m1712_14 +# 1718| r1718_4(glval) = CopyValue : r1718_3 +# 1718| r1718_5(int &) = CopyValue : r1718_4 +# 1718| m1718_6(int &) = Store[rr] : &:r1718_1, r1718_5 +# 1719| r1719_1(glval) = VariableAddress[w] : +# 1719| r1719_2(glval) = VariableAddress[r] : +# 1719| r1719_3(int &) = Load[r] : &:r1719_2, m1712_14 +# 1719| r1719_4(int) = Load[?] : &:r1719_3, ~m1717_6 +# 1719| m1719_5(int) = Store[w] : &:r1719_1, r1719_4 +# 1721| v1721_1(void) = NoOp : +# 1696| v1696_5(void) = ReturnVoid : +# 1696| v1696_6(void) = AliasedUse : ~m1717_6 +# 1696| v1696_7(void) = ExitFunction : + +# 1723| void array_structured_binding_non_ref_init() +# 1723| Block 0 +# 1723| v1723_1(void) = EnterFunction : +# 1723| m1723_2(unknown) = AliasedDefinition : +# 1723| m1723_3(unknown) = InitializeNonLocal : +# 1723| m1723_4(unknown) = Chi : total:m1723_2, partial:m1723_3 +# 1724| r1724_1(glval) = VariableAddress[xs] : +# 1724| m1724_2(int[2]) = Uninitialized[xs] : &:r1724_1 +# 1724| r1724_3(int) = Constant[0] : +# 1724| r1724_4(glval) = PointerAdd[4] : r1724_1, r1724_3 +# 1724| r1724_5(int) = Constant[1] : +# 1724| m1724_6(int) = Store[?] : &:r1724_4, r1724_5 +# 1724| m1724_7(int[2]) = Chi : total:m1724_2, partial:m1724_6 +# 1724| r1724_8(int) = Constant[1] : +# 1724| r1724_9(glval) = PointerAdd[4] : r1724_1, r1724_8 +# 1724| r1724_10(int) = Constant[2] : +# 1724| m1724_11(int) = Store[?] : &:r1724_9, r1724_10 +# 1724| m1724_12(int[2]) = Chi : total:m1724_7, partial:m1724_11 +# 1725| r1725_1(glval) = VariableAddress[(unnamed local variable)] : +# 1725| r1725_2(glval) = VariableAddress[xs] : +# 1725| r1725_3(int[2]) = Load[xs] : &:r1725_2, m1724_12 +# 1725| m1725_4(int[2]) = Store[(unnamed local variable)] : &:r1725_1, r1725_3 +# 1725| r1725_5(glval) = VariableAddress[x0] : #-----| r0_1(glval) = VariableAddress[(unnamed local variable)] : #-----| r0_2(int *) = Convert : r0_1 #-----| r0_3(unsigned long) = Constant[0] : #-----| r0_4(glval) = PointerAdd[4] : r0_2, r0_3 -#-----| m0_5(int &) = Store[x0] : &:r1723_5, r0_4 -# 1723| r1723_6(glval) = VariableAddress[x1] : +#-----| m0_5(int &) = Store[x0] : &:r1725_5, r0_4 +# 1725| r1725_6(glval) = VariableAddress[x1] : #-----| r0_6(glval) = VariableAddress[(unnamed local variable)] : #-----| r0_7(int *) = Convert : r0_6 #-----| r0_8(unsigned long) = Constant[1] : #-----| r0_9(glval) = PointerAdd[4] : r0_7, r0_8 -#-----| m0_10(int &) = Store[x1] : &:r1723_6, r0_9 -# 1724| v1724_1(void) = NoOp : -# 1721| v1721_5(void) = ReturnVoid : -# 1721| v1721_6(void) = AliasedUse : m1721_3 -# 1721| v1721_7(void) = ExitFunction : - -# 1729| void CapturedLambdaMyObj::CapturedLambdaMyObj() -# 1729| Block 0 -# 1729| v1729_1(void) = EnterFunction : -# 1729| m1729_2(unknown) = AliasedDefinition : -# 1729| m1729_3(unknown) = InitializeNonLocal : -# 1729| m1729_4(unknown) = Chi : total:m1729_2, partial:m1729_3 -# 1729| r1729_5(glval) = VariableAddress[#this] : -# 1729| m1729_6(glval) = InitializeParameter[#this] : &:r1729_5 -# 1729| r1729_7(glval) = Load[#this] : &:r1729_5, m1729_6 -# 1729| m1729_8(CapturedLambdaMyObj) = InitializeIndirection[#this] : &:r1729_7 -# 1729| v1729_9(void) = NoOp : -# 1729| v1729_10(void) = ReturnIndirection[#this] : &:r1729_7, m1729_8 -# 1729| v1729_11(void) = ReturnVoid : -# 1729| v1729_12(void) = AliasedUse : m1729_3 -# 1729| v1729_13(void) = ExitFunction : - -# 1732| void captured_lambda(int, int&, int&&) -# 1732| Block 0 -# 1732| v1732_1(void) = EnterFunction : -# 1732| m1732_2(unknown) = AliasedDefinition : -# 1732| m1732_3(unknown) = InitializeNonLocal : -# 1732| m1732_4(unknown) = Chi : total:m1732_2, partial:m1732_3 -# 1732| r1732_5(glval) = VariableAddress[x] : -# 1732| m1732_6(int) = InitializeParameter[x] : &:r1732_5 -# 1732| r1732_7(glval) = VariableAddress[y] : -# 1732| m1732_8(int &) = InitializeParameter[y] : &:r1732_7 -# 1732| r1732_9(int &) = Load[y] : &:r1732_7, m1732_8 -# 1732| m1732_10(unknown) = InitializeIndirection[y] : &:r1732_9 -# 1732| r1732_11(glval) = VariableAddress[z] : -# 1732| m1732_12(int &&) = InitializeParameter[z] : &:r1732_11 -# 1732| r1732_13(int &&) = Load[z] : &:r1732_11, m1732_12 -# 1732| m1732_14(unknown) = InitializeIndirection[z] : &:r1732_13 -# 1734| r1734_1(glval) = VariableAddress[obj1] : -# 1734| r1734_2(glval) = VariableAddress[#temp1734:24] : -# 1734| m1734_3(CapturedLambdaMyObj) = Uninitialized[#temp1734:24] : &:r1734_2 -# 1734| r1734_4(glval) = FunctionAddress[CapturedLambdaMyObj] : -# 1734| v1734_5(void) = Call[CapturedLambdaMyObj] : func:r1734_4, this:r1734_2 -# 1734| m1734_6(unknown) = ^CallSideEffect : ~m1732_4 -# 1734| m1734_7(unknown) = Chi : total:m1732_4, partial:m1734_6 -# 1734| m1734_8(CapturedLambdaMyObj) = ^IndirectMayWriteSideEffect[-1] : &:r1734_2 -# 1734| m1734_9(CapturedLambdaMyObj) = Chi : total:m1734_3, partial:m1734_8 -# 1734| r1734_10(glval) = Convert : r1734_2 -# 1734| r1734_11(CapturedLambdaMyObj &) = CopyValue : r1734_10 -# 1734| m1734_12(CapturedLambdaMyObj &) = Store[obj1] : &:r1734_1, r1734_11 -# 1735| r1735_1(glval) = VariableAddress[obj2] : -# 1735| m1735_2(CapturedLambdaMyObj) = Uninitialized[obj2] : &:r1735_1 -# 1735| r1735_3(glval) = FunctionAddress[CapturedLambdaMyObj] : -# 1735| v1735_4(void) = Call[CapturedLambdaMyObj] : func:r1735_3, this:r1735_1 -# 1735| m1735_5(unknown) = ^CallSideEffect : ~m1734_7 -# 1735| m1735_6(unknown) = Chi : total:m1734_7, partial:m1735_5 -# 1735| m1735_7(CapturedLambdaMyObj) = ^IndirectMayWriteSideEffect[-1] : &:r1735_1 -# 1735| m1735_8(CapturedLambdaMyObj) = Chi : total:m1735_2, partial:m1735_7 -# 1737| r1737_1(glval) = VariableAddress[lambda_outer] : -# 1737| r1737_2(glval) = VariableAddress[#temp1737:24] : -# 1737| m1737_3(decltype([...](...){...})) = Uninitialized[#temp1737:24] : &:r1737_2 -# 1737| r1737_4(glval) = FieldAddress[obj1] : r1737_2 -# 1737| r1737_5(glval) = VariableAddress[obj1] : -# 1737| r1737_6(CapturedLambdaMyObj &) = Load[obj1] : &:r1737_5, m1734_12 -#-----| r0_1(CapturedLambdaMyObj) = Load[?] : &:r1737_6, m1734_9 -#-----| m0_2(CapturedLambdaMyObj) = Store[?] : &:r1737_4, r0_1 -#-----| m0_3(decltype([...](...){...})) = Chi : total:m1737_3, partial:m0_2 -# 1737| r1737_7(glval) = FieldAddress[obj2] : r1737_2 -# 1737| r1737_8(glval) = VariableAddress[obj2] : -# 1737| r1737_9(CapturedLambdaMyObj) = Load[obj2] : &:r1737_8, m1735_8 -# 1737| m1737_10(CapturedLambdaMyObj) = Store[?] : &:r1737_7, r1737_9 -# 1737| m1737_11(decltype([...](...){...})) = Chi : total:m0_3, partial:m1737_10 -# 1737| r1737_12(glval) = FieldAddress[x] : r1737_2 -# 1737| r1737_13(glval) = VariableAddress[x] : -# 1737| r1737_14(int) = Load[x] : &:r1737_13, m1732_6 -# 1737| m1737_15(int) = Store[?] : &:r1737_12, r1737_14 -# 1737| m1737_16(decltype([...](...){...})) = Chi : total:m1737_11, partial:m1737_15 -# 1737| r1737_17(glval) = FieldAddress[y] : r1737_2 -# 1737| r1737_18(glval) = VariableAddress[y] : -# 1737| r1737_19(int &) = Load[y] : &:r1737_18, m1732_8 -# 1739| r1739_1(int) = Load[?] : &:r1737_19, ~m1732_10 -# 1739| m1739_2(int) = Store[?] : &:r1737_17, r1739_1 -# 1739| m1739_3(decltype([...](...){...})) = Chi : total:m1737_16, partial:m1739_2 -# 1737| r1737_20(glval) = FieldAddress[z] : r1737_2 -# 1737| r1737_21(glval) = VariableAddress[z] : -# 1737| r1737_22(int &&) = Load[z] : &:r1737_21, m1732_12 -# 1739| r1739_4(int) = Load[?] : &:r1737_22, ~m1732_14 -# 1739| m1739_5(int) = Store[?] : &:r1737_20, r1739_4 -# 1739| m1739_6(decltype([...](...){...})) = Chi : total:m1739_3, partial:m1739_5 -# 1737| r1737_23(decltype([...](...){...})) = Load[#temp1737:24] : &:r1737_2, m1739_6 -# 1737| m1737_24(decltype([...](...){...})) = Store[lambda_outer] : &:r1737_1, r1737_23 -# 1740| v1740_1(void) = NoOp : -# 1732| v1732_15(void) = ReturnIndirection[y] : &:r1732_9, m1732_10 -# 1732| v1732_16(void) = ReturnIndirection[z] : &:r1732_13, m1732_14 -# 1732| v1732_17(void) = ReturnVoid : -# 1732| v1732_18(void) = AliasedUse : ~m1735_6 -# 1732| v1732_19(void) = ExitFunction : - -# 1737| void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1737, col. 25)::operator()() const -# 1737| Block 0 -# 1737| v1737_1(void) = EnterFunction : -# 1737| m1737_2(unknown) = AliasedDefinition : -# 1737| m1737_3(unknown) = InitializeNonLocal : -# 1737| m1737_4(unknown) = Chi : total:m1737_2, partial:m1737_3 -# 1737| r1737_5(glval) = VariableAddress[#this] : -# 1737| m1737_6(glval) = InitializeParameter[#this] : &:r1737_5 -# 1737| r1737_7(glval) = Load[#this] : &:r1737_5, m1737_6 -# 1737| m1737_8(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1737_7 -# 1738| r1738_1(glval) = VariableAddress[lambda_inner] : -# 1738| r1738_2(glval) = VariableAddress[#temp1738:28] : -# 1738| m1738_3(decltype([...](...){...})) = Uninitialized[#temp1738:28] : &:r1738_2 -# 1738| r1738_4(glval) = FieldAddress[obj1] : r1738_2 -# 1738| r1738_5(glval) = VariableAddress[#this] : -# 1738| r1738_6(lambda [] type at line 1738, col. 29 *) = Load[#this] : &:r1738_5, m1737_6 -# 1738| r1738_7(glval) = FieldAddress[obj1] : r1738_6 -# 1738| r1738_8(CapturedLambdaMyObj) = Load[?] : &:r1738_7, ~m1737_8 -# 1738| m1738_9(CapturedLambdaMyObj) = Store[?] : &:r1738_4, r1738_8 -# 1738| m1738_10(decltype([...](...){...})) = Chi : total:m1738_3, partial:m1738_9 -# 1738| r1738_11(glval) = FieldAddress[obj2] : r1738_2 -# 1738| r1738_12(glval) = VariableAddress[#this] : -# 1738| r1738_13(lambda [] type at line 1738, col. 29 *) = Load[#this] : &:r1738_12, m1737_6 -# 1738| r1738_14(glval) = FieldAddress[obj2] : r1738_13 -# 1738| r1738_15(CapturedLambdaMyObj) = Load[?] : &:r1738_14, ~m1737_8 -# 1738| m1738_16(CapturedLambdaMyObj) = Store[?] : &:r1738_11, r1738_15 -# 1738| m1738_17(decltype([...](...){...})) = Chi : total:m1738_10, partial:m1738_16 -# 1738| r1738_18(glval) = FieldAddress[x] : r1738_2 -# 1738| r1738_19(glval) = VariableAddress[#this] : -# 1738| r1738_20(lambda [] type at line 1737, col. 25 *) = Load[#this] : &:r1738_19, m1737_6 -# 1738| r1738_21(glval) = FieldAddress[x] : r1738_20 -# 1738| r1738_22(int) = Load[?] : &:r1738_21, ~m1737_8 -# 1738| m1738_23(int) = Store[?] : &:r1738_18, r1738_22 -# 1738| m1738_24(decltype([...](...){...})) = Chi : total:m1738_17, partial:m1738_23 -# 1738| r1738_25(glval) = FieldAddress[y] : r1738_2 -# 1738| r1738_26(glval) = VariableAddress[#this] : -# 1738| r1738_27(lambda [] type at line 1737, col. 25 *) = Load[#this] : &:r1738_26, m1737_6 -# 1738| r1738_28(glval) = FieldAddress[y] : r1738_27 -# 1738| r1738_29(int) = Load[?] : &:r1738_28, ~m1737_8 -# 1738| m1738_30(int) = Store[?] : &:r1738_25, r1738_29 -# 1738| m1738_31(decltype([...](...){...})) = Chi : total:m1738_24, partial:m1738_30 -# 1738| r1738_32(glval) = FieldAddress[z] : r1738_2 -# 1738| r1738_33(glval) = VariableAddress[#this] : -# 1738| r1738_34(lambda [] type at line 1737, col. 25 *) = Load[#this] : &:r1738_33, m1737_6 -# 1738| r1738_35(glval) = FieldAddress[z] : r1738_34 -# 1738| r1738_36(int) = Load[?] : &:r1738_35, ~m1737_8 -# 1738| m1738_37(int) = Store[?] : &:r1738_32, r1738_36 -# 1738| m1738_38(decltype([...](...){...})) = Chi : total:m1738_31, partial:m1738_37 -# 1738| r1738_39(decltype([...](...){...})) = Load[#temp1738:28] : &:r1738_2, m1738_38 -# 1738| m1738_40(decltype([...](...){...})) = Store[lambda_inner] : &:r1738_1, r1738_39 -# 1739| v1739_1(void) = NoOp : -# 1737| v1737_9(void) = ReturnIndirection[#this] : &:r1737_7, m1737_8 -# 1737| v1737_10(void) = ReturnVoid : -# 1737| v1737_11(void) = AliasedUse : m1737_3 -# 1737| v1737_12(void) = ExitFunction : - -# 1738| void (void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1737, col. 25)::operator()() const)::(lambda [] type at line 1738, col. 29)::operator()() const -# 1738| Block 0 -# 1738| v1738_1(void) = EnterFunction : -# 1738| m1738_2(unknown) = AliasedDefinition : -# 1738| m1738_3(unknown) = InitializeNonLocal : -# 1738| m1738_4(unknown) = Chi : total:m1738_2, partial:m1738_3 -# 1738| r1738_5(glval) = VariableAddress[#this] : -# 1738| m1738_6(glval) = InitializeParameter[#this] : &:r1738_5 -# 1738| r1738_7(glval) = Load[#this] : &:r1738_5, m1738_6 -# 1738| m1738_8(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1738_7 -# 1738| v1738_9(void) = NoOp : -# 1738| v1738_10(void) = NoOp : -# 1738| v1738_11(void) = ReturnIndirection[#this] : &:r1738_7, m1738_8 -# 1738| v1738_12(void) = ReturnVoid : -# 1738| v1738_13(void) = AliasedUse : m1738_3 -# 1738| v1738_14(void) = ExitFunction : - -# 1742| int goto_on_same_line() -# 1742| Block 0 -# 1742| v1742_1(void) = EnterFunction : -# 1742| m1742_2(unknown) = AliasedDefinition : -# 1742| m1742_3(unknown) = InitializeNonLocal : -# 1742| m1742_4(unknown) = Chi : total:m1742_2, partial:m1742_3 -# 1743| r1743_1(glval) = VariableAddress[x] : -# 1743| r1743_2(int) = Constant[42] : -# 1743| m1743_3(int) = Store[x] : &:r1743_1, r1743_2 -# 1744| v1744_1(void) = NoOp : -# 1744| v1744_2(void) = NoOp : -# 1745| r1745_1(glval) = VariableAddress[#return] : -# 1745| r1745_2(glval) = VariableAddress[x] : -# 1745| r1745_3(int) = Load[x] : &:r1745_2, m1743_3 -# 1745| m1745_4(int) = Store[#return] : &:r1745_1, r1745_3 -# 1742| r1742_5(glval) = VariableAddress[#return] : -# 1742| v1742_6(void) = ReturnValue : &:r1742_5, m1745_4 -# 1742| v1742_7(void) = AliasedUse : m1742_3 -# 1742| v1742_8(void) = ExitFunction : - -# 1750| void TrivialLambdaClass::m() const -# 1750| Block 0 -# 1750| v1750_1(void) = EnterFunction : -# 1750| m1750_2(unknown) = AliasedDefinition : -# 1750| m1750_3(unknown) = InitializeNonLocal : -# 1750| m1750_4(unknown) = Chi : total:m1750_2, partial:m1750_3 -# 1750| r1750_5(glval) = VariableAddress[#this] : -# 1750| m1750_6(glval) = InitializeParameter[#this] : &:r1750_5 -# 1750| r1750_7(glval) = Load[#this] : &:r1750_5, m1750_6 -# 1750| m1750_8(TrivialLambdaClass) = InitializeIndirection[#this] : &:r1750_7 -# 1751| r1751_1(glval) = VariableAddress[l_m_outer] : -# 1751| r1751_2(glval) = VariableAddress[#temp1751:25] : -# 1751| m1751_3(decltype([...](...){...})) = Uninitialized[#temp1751:25] : &:r1751_2 -# 1751| r1751_4(glval) = FieldAddress[(captured this)] : r1751_2 -# 1751| r1751_5(glval) = VariableAddress[#this] : -# 1751| r1751_6(TrivialLambdaClass *) = Load[#this] : &:r1751_5, m1750_6 -# 1751| r1751_7(TrivialLambdaClass) = Load[?] : &:r1751_6, ~m1750_8 -# 1751| m1751_8(TrivialLambdaClass) = Store[?] : &:r1751_4, r1751_7 -# 1751| r1751_9(decltype([...](...){...})) = Load[#temp1751:25] : &:r1751_2, ~m1751_8 -# 1751| m1751_10(decltype([...](...){...})) = Store[l_m_outer] : &:r1751_1, r1751_9 -# 1758| v1758_1(void) = NoOp : -# 1750| v1750_9(void) = ReturnIndirection[#this] : &:r1750_7, m1750_8 -# 1750| v1750_10(void) = ReturnVoid : -# 1750| v1750_11(void) = AliasedUse : m1750_3 -# 1750| v1750_12(void) = ExitFunction : - -# 1751| void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1751, col. 26)::operator()() const -# 1751| Block 0 -# 1751| v1751_1(void) = EnterFunction : -# 1751| m1751_2(unknown) = AliasedDefinition : -# 1751| m1751_3(unknown) = InitializeNonLocal : -# 1751| m1751_4(unknown) = Chi : total:m1751_2, partial:m1751_3 -# 1751| r1751_5(glval) = VariableAddress[#this] : -# 1751| m1751_6(glval) = InitializeParameter[#this] : &:r1751_5 -# 1751| r1751_7(glval) = Load[#this] : &:r1751_5, m1751_6 -# 1751| m1751_8(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1751_7 -# 1752| r1752_1(glval) = VariableAddress[#this] : -# 1752| r1752_2(lambda [] type at line 1751, col. 26 *) = Load[#this] : &:r1752_1, m1751_6 -# 1752| r1752_3(glval) = FieldAddress[(captured this)] : r1752_2 -# 1752| r1752_4(TrivialLambdaClass *) = CopyValue : r1752_3 -# 1752| r1752_5(glval) = FunctionAddress[m] : -# 1752| v1752_6(void) = Call[m] : func:r1752_5, this:r1752_4 -# 1752| m1752_7(unknown) = ^CallSideEffect : ~m1751_4 -# 1752| m1752_8(unknown) = Chi : total:m1751_4, partial:m1752_7 -# 1752| v1752_9(void) = ^IndirectReadSideEffect[-1] : &:r1752_4, ~m1751_8 -# 1754| r1754_1(glval) = VariableAddress[l_m_inner] : -# 1754| r1754_2(glval) = VariableAddress[#temp1754:29] : -# 1754| m1754_3(decltype([...](...){...})) = Uninitialized[#temp1754:29] : &:r1754_2 -# 1754| r1754_4(glval) = FieldAddress[(captured this)] : r1754_2 -# 1754| r1754_5(glval) = VariableAddress[#this] : -# 1754| r1754_6(lambda [] type at line 1754, col. 30 *) = Load[#this] : &:r1754_5, m1751_6 -# 1754| r1754_7(glval) = FieldAddress[(captured this)] : r1754_6 -# 1754| r1754_8(TrivialLambdaClass) = Load[?] : &:r1754_7, ~m1751_8 -# 1754| m1754_9(TrivialLambdaClass) = Store[?] : &:r1754_4, r1754_8 -# 1754| r1754_10(decltype([...](...){...})) = Load[#temp1754:29] : &:r1754_2, ~m1754_9 -# 1754| m1754_11(decltype([...](...){...})) = Store[l_m_inner] : &:r1754_1, r1754_10 -# 1757| v1757_1(void) = NoOp : -# 1751| v1751_9(void) = ReturnIndirection[#this] : &:r1751_7, m1751_8 -# 1751| v1751_10(void) = ReturnVoid : -# 1751| v1751_11(void) = AliasedUse : ~m1752_8 -# 1751| v1751_12(void) = ExitFunction : - -# 1754| void (void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1751, col. 26)::operator()() const)::(lambda [] type at line 1754, col. 30)::operator()() const -# 1754| Block 0 -# 1754| v1754_1(void) = EnterFunction : -# 1754| m1754_2(unknown) = AliasedDefinition : -# 1754| m1754_3(unknown) = InitializeNonLocal : -# 1754| m1754_4(unknown) = Chi : total:m1754_2, partial:m1754_3 -# 1754| r1754_5(glval) = VariableAddress[#this] : -# 1754| m1754_6(glval) = InitializeParameter[#this] : &:r1754_5 -# 1754| r1754_7(glval) = Load[#this] : &:r1754_5, m1754_6 -# 1754| m1754_8(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1754_7 -# 1755| r1755_1(glval) = VariableAddress[#this] : -# 1755| r1755_2(lambda [] type at line 1754, col. 30 *) = Load[#this] : &:r1755_1, m1754_6 -# 1755| r1755_3(glval) = FieldAddress[(captured this)] : r1755_2 -# 1755| r1755_4(TrivialLambdaClass *) = CopyValue : r1755_3 -# 1755| r1755_5(glval) = FunctionAddress[m] : -# 1755| v1755_6(void) = Call[m] : func:r1755_5, this:r1755_4 -# 1755| m1755_7(unknown) = ^CallSideEffect : ~m1754_4 -# 1755| m1755_8(unknown) = Chi : total:m1754_4, partial:m1755_7 -# 1755| v1755_9(void) = ^IndirectReadSideEffect[-1] : &:r1755_4, ~m1754_8 -# 1756| v1756_1(void) = NoOp : -# 1754| v1754_9(void) = ReturnIndirection[#this] : &:r1754_7, m1754_8 -# 1754| v1754_10(void) = ReturnVoid : -# 1754| v1754_11(void) = AliasedUse : ~m1755_8 -# 1754| v1754_12(void) = ExitFunction : - -# 1761| void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) -# 1761| Block 0 -# 1761| v1761_1(void) = EnterFunction : -# 1761| m1761_2(unknown) = AliasedDefinition : -# 1761| m1761_3(unknown) = InitializeNonLocal : -# 1761| m1761_4(unknown) = Chi : total:m1761_2, partial:m1761_3 -# 1761| r1761_5(glval) = VariableAddress[p1] : -# 1761| m1761_6(TrivialLambdaClass) = InitializeParameter[p1] : &:r1761_5 -# 1761| r1761_7(glval) = VariableAddress[p2] : -# 1761| m1761_8(TrivialLambdaClass &) = InitializeParameter[p2] : &:r1761_7 -# 1761| r1761_9(TrivialLambdaClass &) = Load[p2] : &:r1761_7, m1761_8 -# 1761| m1761_10(unknown) = InitializeIndirection[p2] : &:r1761_9 -# 1761| r1761_11(glval) = VariableAddress[p3] : -# 1761| m1761_12(TrivialLambdaClass &&) = InitializeParameter[p3] : &:r1761_11 -# 1761| r1761_13(TrivialLambdaClass &&) = Load[p3] : &:r1761_11, m1761_12 -# 1761| m1761_14(unknown) = InitializeIndirection[p3] : &:r1761_13 -# 1762| r1762_1(glval) = VariableAddress[l1] : -# 1762| m1762_2(TrivialLambdaClass) = Uninitialized[l1] : &:r1762_1 -# 1763| r1763_1(glval) = VariableAddress[l2] : -# 1763| r1763_2(glval) = VariableAddress[#temp1763:36] : -# 1763| r1763_3(TrivialLambdaClass) = Constant[0] : -# 1763| m1763_4(TrivialLambdaClass) = Store[#temp1763:36] : &:r1763_2, r1763_3 -# 1763| r1763_5(glval) = Convert : r1763_2 -# 1763| r1763_6(TrivialLambdaClass &) = CopyValue : r1763_5 -# 1763| m1763_7(TrivialLambdaClass &) = Store[l2] : &:r1763_1, r1763_6 -# 1765| r1765_1(glval) = VariableAddress[l_outer1] : -# 1765| r1765_2(glval) = VariableAddress[#temp1765:20] : -# 1765| m1765_3(decltype([...](...){...})) = Uninitialized[#temp1765:20] : &:r1765_2 -# 1765| r1765_4(glval) = FieldAddress[p1] : r1765_2 -# 1765| r1765_5(glval) = VariableAddress[p1] : -# 1765| r1765_6(TrivialLambdaClass) = Load[p1] : &:r1765_5, m1761_6 -# 1765| m1765_7(TrivialLambdaClass) = Store[?] : &:r1765_4, r1765_6 -# 1765| m1765_8(decltype([...](...){...})) = Chi : total:m1765_3, partial:m1765_7 -# 1765| r1765_9(glval) = FieldAddress[p2] : r1765_2 -# 1765| r1765_10(glval) = VariableAddress[p2] : -# 1765| r1765_11(TrivialLambdaClass &) = Load[p2] : &:r1765_10, m1761_8 -#-----| r0_1(TrivialLambdaClass) = Load[?] : &:r1765_11, ~m1761_10 -#-----| m0_2(TrivialLambdaClass) = Store[?] : &:r1765_9, r0_1 -#-----| m0_3(decltype([...](...){...})) = Chi : total:m1765_8, partial:m0_2 -# 1765| r1765_12(glval) = FieldAddress[p3] : r1765_2 -# 1765| r1765_13(glval) = VariableAddress[p3] : -# 1765| r1765_14(TrivialLambdaClass &&) = Load[p3] : &:r1765_13, m1761_12 -#-----| r0_4(TrivialLambdaClass) = Load[?] : &:r1765_14, ~m1761_14 -#-----| m0_5(TrivialLambdaClass) = Store[?] : &:r1765_12, r0_4 +#-----| m0_10(int &) = Store[x1] : &:r1725_6, r0_9 +# 1726| v1726_1(void) = NoOp : +# 1723| v1723_5(void) = ReturnVoid : +# 1723| v1723_6(void) = AliasedUse : m1723_3 +# 1723| v1723_7(void) = ExitFunction : + +# 1731| void CapturedLambdaMyObj::CapturedLambdaMyObj() +# 1731| Block 0 +# 1731| v1731_1(void) = EnterFunction : +# 1731| m1731_2(unknown) = AliasedDefinition : +# 1731| m1731_3(unknown) = InitializeNonLocal : +# 1731| m1731_4(unknown) = Chi : total:m1731_2, partial:m1731_3 +# 1731| r1731_5(glval) = VariableAddress[#this] : +# 1731| m1731_6(glval) = InitializeParameter[#this] : &:r1731_5 +# 1731| r1731_7(glval) = Load[#this] : &:r1731_5, m1731_6 +# 1731| m1731_8(CapturedLambdaMyObj) = InitializeIndirection[#this] : &:r1731_7 +# 1731| v1731_9(void) = NoOp : +# 1731| v1731_10(void) = ReturnIndirection[#this] : &:r1731_7, m1731_8 +# 1731| v1731_11(void) = ReturnVoid : +# 1731| v1731_12(void) = AliasedUse : m1731_3 +# 1731| v1731_13(void) = ExitFunction : + +# 1734| void captured_lambda(int, int&, int&&) +# 1734| Block 0 +# 1734| v1734_1(void) = EnterFunction : +# 1734| m1734_2(unknown) = AliasedDefinition : +# 1734| m1734_3(unknown) = InitializeNonLocal : +# 1734| m1734_4(unknown) = Chi : total:m1734_2, partial:m1734_3 +# 1734| r1734_5(glval) = VariableAddress[x] : +# 1734| m1734_6(int) = InitializeParameter[x] : &:r1734_5 +# 1734| r1734_7(glval) = VariableAddress[y] : +# 1734| m1734_8(int &) = InitializeParameter[y] : &:r1734_7 +# 1734| r1734_9(int &) = Load[y] : &:r1734_7, m1734_8 +# 1734| m1734_10(unknown) = InitializeIndirection[y] : &:r1734_9 +# 1734| r1734_11(glval) = VariableAddress[z] : +# 1734| m1734_12(int &&) = InitializeParameter[z] : &:r1734_11 +# 1734| r1734_13(int &&) = Load[z] : &:r1734_11, m1734_12 +# 1734| m1734_14(unknown) = InitializeIndirection[z] : &:r1734_13 +# 1736| r1736_1(glval) = VariableAddress[obj1] : +# 1736| r1736_2(glval) = VariableAddress[#temp1736:24] : +# 1736| m1736_3(CapturedLambdaMyObj) = Uninitialized[#temp1736:24] : &:r1736_2 +# 1736| r1736_4(glval) = FunctionAddress[CapturedLambdaMyObj] : +# 1736| v1736_5(void) = Call[CapturedLambdaMyObj] : func:r1736_4, this:r1736_2 +# 1736| m1736_6(unknown) = ^CallSideEffect : ~m1734_4 +# 1736| m1736_7(unknown) = Chi : total:m1734_4, partial:m1736_6 +# 1736| m1736_8(CapturedLambdaMyObj) = ^IndirectMayWriteSideEffect[-1] : &:r1736_2 +# 1736| m1736_9(CapturedLambdaMyObj) = Chi : total:m1736_3, partial:m1736_8 +# 1736| r1736_10(glval) = Convert : r1736_2 +# 1736| r1736_11(CapturedLambdaMyObj &) = CopyValue : r1736_10 +# 1736| m1736_12(CapturedLambdaMyObj &) = Store[obj1] : &:r1736_1, r1736_11 +# 1737| r1737_1(glval) = VariableAddress[obj2] : +# 1737| m1737_2(CapturedLambdaMyObj) = Uninitialized[obj2] : &:r1737_1 +# 1737| r1737_3(glval) = FunctionAddress[CapturedLambdaMyObj] : +# 1737| v1737_4(void) = Call[CapturedLambdaMyObj] : func:r1737_3, this:r1737_1 +# 1737| m1737_5(unknown) = ^CallSideEffect : ~m1736_7 +# 1737| m1737_6(unknown) = Chi : total:m1736_7, partial:m1737_5 +# 1737| m1737_7(CapturedLambdaMyObj) = ^IndirectMayWriteSideEffect[-1] : &:r1737_1 +# 1737| m1737_8(CapturedLambdaMyObj) = Chi : total:m1737_2, partial:m1737_7 +# 1739| r1739_1(glval) = VariableAddress[lambda_outer] : +# 1739| r1739_2(glval) = VariableAddress[#temp1739:24] : +# 1739| m1739_3(decltype([...](...){...})) = Uninitialized[#temp1739:24] : &:r1739_2 +# 1739| r1739_4(glval) = FieldAddress[obj1] : r1739_2 +# 1739| r1739_5(glval) = VariableAddress[obj1] : +# 1739| r1739_6(CapturedLambdaMyObj &) = Load[obj1] : &:r1739_5, m1736_12 +#-----| r0_1(CapturedLambdaMyObj) = Load[?] : &:r1739_6, m1736_9 +#-----| m0_2(CapturedLambdaMyObj) = Store[?] : &:r1739_4, r0_1 +#-----| m0_3(decltype([...](...){...})) = Chi : total:m1739_3, partial:m0_2 +# 1739| r1739_7(glval) = FieldAddress[obj2] : r1739_2 +# 1739| r1739_8(glval) = VariableAddress[obj2] : +# 1739| r1739_9(CapturedLambdaMyObj) = Load[obj2] : &:r1739_8, m1737_8 +# 1739| m1739_10(CapturedLambdaMyObj) = Store[?] : &:r1739_7, r1739_9 +# 1739| m1739_11(decltype([...](...){...})) = Chi : total:m0_3, partial:m1739_10 +# 1739| r1739_12(glval) = FieldAddress[x] : r1739_2 +# 1739| r1739_13(glval) = VariableAddress[x] : +# 1739| r1739_14(int) = Load[x] : &:r1739_13, m1734_6 +# 1739| m1739_15(int) = Store[?] : &:r1739_12, r1739_14 +# 1739| m1739_16(decltype([...](...){...})) = Chi : total:m1739_11, partial:m1739_15 +# 1739| r1739_17(glval) = FieldAddress[y] : r1739_2 +# 1739| r1739_18(glval) = VariableAddress[y] : +# 1739| r1739_19(int &) = Load[y] : &:r1739_18, m1734_8 +# 1741| r1741_1(int) = Load[?] : &:r1739_19, ~m1734_10 +# 1741| m1741_2(int) = Store[?] : &:r1739_17, r1741_1 +# 1741| m1741_3(decltype([...](...){...})) = Chi : total:m1739_16, partial:m1741_2 +# 1739| r1739_20(glval) = FieldAddress[z] : r1739_2 +# 1739| r1739_21(glval) = VariableAddress[z] : +# 1739| r1739_22(int &&) = Load[z] : &:r1739_21, m1734_12 +# 1741| r1741_4(int) = Load[?] : &:r1739_22, ~m1734_14 +# 1741| m1741_5(int) = Store[?] : &:r1739_20, r1741_4 +# 1741| m1741_6(decltype([...](...){...})) = Chi : total:m1741_3, partial:m1741_5 +# 1739| r1739_23(decltype([...](...){...})) = Load[#temp1739:24] : &:r1739_2, m1741_6 +# 1739| m1739_24(decltype([...](...){...})) = Store[lambda_outer] : &:r1739_1, r1739_23 +# 1742| v1742_1(void) = NoOp : +# 1734| v1734_15(void) = ReturnIndirection[y] : &:r1734_9, m1734_10 +# 1734| v1734_16(void) = ReturnIndirection[z] : &:r1734_13, m1734_14 +# 1734| v1734_17(void) = ReturnVoid : +# 1734| v1734_18(void) = AliasedUse : ~m1737_6 +# 1734| v1734_19(void) = ExitFunction : + +# 1739| void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1739, col. 25)::operator()() const +# 1739| Block 0 +# 1739| v1739_1(void) = EnterFunction : +# 1739| m1739_2(unknown) = AliasedDefinition : +# 1739| m1739_3(unknown) = InitializeNonLocal : +# 1739| m1739_4(unknown) = Chi : total:m1739_2, partial:m1739_3 +# 1739| r1739_5(glval) = VariableAddress[#this] : +# 1739| m1739_6(glval) = InitializeParameter[#this] : &:r1739_5 +# 1739| r1739_7(glval) = Load[#this] : &:r1739_5, m1739_6 +# 1739| m1739_8(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1739_7 +# 1740| r1740_1(glval) = VariableAddress[lambda_inner] : +# 1740| r1740_2(glval) = VariableAddress[#temp1740:28] : +# 1740| m1740_3(decltype([...](...){...})) = Uninitialized[#temp1740:28] : &:r1740_2 +# 1740| r1740_4(glval) = FieldAddress[obj1] : r1740_2 +# 1740| r1740_5(glval) = VariableAddress[#this] : +# 1740| r1740_6(lambda [] type at line 1740, col. 29 *) = Load[#this] : &:r1740_5, m1739_6 +# 1740| r1740_7(glval) = FieldAddress[obj1] : r1740_6 +# 1740| r1740_8(CapturedLambdaMyObj) = Load[?] : &:r1740_7, ~m1739_8 +# 1740| m1740_9(CapturedLambdaMyObj) = Store[?] : &:r1740_4, r1740_8 +# 1740| m1740_10(decltype([...](...){...})) = Chi : total:m1740_3, partial:m1740_9 +# 1740| r1740_11(glval) = FieldAddress[obj2] : r1740_2 +# 1740| r1740_12(glval) = VariableAddress[#this] : +# 1740| r1740_13(lambda [] type at line 1740, col. 29 *) = Load[#this] : &:r1740_12, m1739_6 +# 1740| r1740_14(glval) = FieldAddress[obj2] : r1740_13 +# 1740| r1740_15(CapturedLambdaMyObj) = Load[?] : &:r1740_14, ~m1739_8 +# 1740| m1740_16(CapturedLambdaMyObj) = Store[?] : &:r1740_11, r1740_15 +# 1740| m1740_17(decltype([...](...){...})) = Chi : total:m1740_10, partial:m1740_16 +# 1740| r1740_18(glval) = FieldAddress[x] : r1740_2 +# 1740| r1740_19(glval) = VariableAddress[#this] : +# 1740| r1740_20(lambda [] type at line 1739, col. 25 *) = Load[#this] : &:r1740_19, m1739_6 +# 1740| r1740_21(glval) = FieldAddress[x] : r1740_20 +# 1740| r1740_22(int) = Load[?] : &:r1740_21, ~m1739_8 +# 1740| m1740_23(int) = Store[?] : &:r1740_18, r1740_22 +# 1740| m1740_24(decltype([...](...){...})) = Chi : total:m1740_17, partial:m1740_23 +# 1740| r1740_25(glval) = FieldAddress[y] : r1740_2 +# 1740| r1740_26(glval) = VariableAddress[#this] : +# 1740| r1740_27(lambda [] type at line 1739, col. 25 *) = Load[#this] : &:r1740_26, m1739_6 +# 1740| r1740_28(glval) = FieldAddress[y] : r1740_27 +# 1740| r1740_29(int) = Load[?] : &:r1740_28, ~m1739_8 +# 1740| m1740_30(int) = Store[?] : &:r1740_25, r1740_29 +# 1740| m1740_31(decltype([...](...){...})) = Chi : total:m1740_24, partial:m1740_30 +# 1740| r1740_32(glval) = FieldAddress[z] : r1740_2 +# 1740| r1740_33(glval) = VariableAddress[#this] : +# 1740| r1740_34(lambda [] type at line 1739, col. 25 *) = Load[#this] : &:r1740_33, m1739_6 +# 1740| r1740_35(glval) = FieldAddress[z] : r1740_34 +# 1740| r1740_36(int) = Load[?] : &:r1740_35, ~m1739_8 +# 1740| m1740_37(int) = Store[?] : &:r1740_32, r1740_36 +# 1740| m1740_38(decltype([...](...){...})) = Chi : total:m1740_31, partial:m1740_37 +# 1740| r1740_39(decltype([...](...){...})) = Load[#temp1740:28] : &:r1740_2, m1740_38 +# 1740| m1740_40(decltype([...](...){...})) = Store[lambda_inner] : &:r1740_1, r1740_39 +# 1741| v1741_1(void) = NoOp : +# 1739| v1739_9(void) = ReturnIndirection[#this] : &:r1739_7, m1739_8 +# 1739| v1739_10(void) = ReturnVoid : +# 1739| v1739_11(void) = AliasedUse : m1739_3 +# 1739| v1739_12(void) = ExitFunction : + +# 1740| void (void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1739, col. 25)::operator()() const)::(lambda [] type at line 1740, col. 29)::operator()() const +# 1740| Block 0 +# 1740| v1740_1(void) = EnterFunction : +# 1740| m1740_2(unknown) = AliasedDefinition : +# 1740| m1740_3(unknown) = InitializeNonLocal : +# 1740| m1740_4(unknown) = Chi : total:m1740_2, partial:m1740_3 +# 1740| r1740_5(glval) = VariableAddress[#this] : +# 1740| m1740_6(glval) = InitializeParameter[#this] : &:r1740_5 +# 1740| r1740_7(glval) = Load[#this] : &:r1740_5, m1740_6 +# 1740| m1740_8(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1740_7 +# 1740| v1740_9(void) = NoOp : +# 1740| v1740_10(void) = NoOp : +# 1740| v1740_11(void) = ReturnIndirection[#this] : &:r1740_7, m1740_8 +# 1740| v1740_12(void) = ReturnVoid : +# 1740| v1740_13(void) = AliasedUse : m1740_3 +# 1740| v1740_14(void) = ExitFunction : + +# 1744| int goto_on_same_line() +# 1744| Block 0 +# 1744| v1744_1(void) = EnterFunction : +# 1744| m1744_2(unknown) = AliasedDefinition : +# 1744| m1744_3(unknown) = InitializeNonLocal : +# 1744| m1744_4(unknown) = Chi : total:m1744_2, partial:m1744_3 +# 1745| r1745_1(glval) = VariableAddress[x] : +# 1745| r1745_2(int) = Constant[42] : +# 1745| m1745_3(int) = Store[x] : &:r1745_1, r1745_2 +# 1746| v1746_1(void) = NoOp : +# 1746| v1746_2(void) = NoOp : +# 1747| r1747_1(glval) = VariableAddress[#return] : +# 1747| r1747_2(glval) = VariableAddress[x] : +# 1747| r1747_3(int) = Load[x] : &:r1747_2, m1745_3 +# 1747| m1747_4(int) = Store[#return] : &:r1747_1, r1747_3 +# 1744| r1744_5(glval) = VariableAddress[#return] : +# 1744| v1744_6(void) = ReturnValue : &:r1744_5, m1747_4 +# 1744| v1744_7(void) = AliasedUse : m1744_3 +# 1744| v1744_8(void) = ExitFunction : + +# 1752| void TrivialLambdaClass::m() const +# 1752| Block 0 +# 1752| v1752_1(void) = EnterFunction : +# 1752| m1752_2(unknown) = AliasedDefinition : +# 1752| m1752_3(unknown) = InitializeNonLocal : +# 1752| m1752_4(unknown) = Chi : total:m1752_2, partial:m1752_3 +# 1752| r1752_5(glval) = VariableAddress[#this] : +# 1752| m1752_6(glval) = InitializeParameter[#this] : &:r1752_5 +# 1752| r1752_7(glval) = Load[#this] : &:r1752_5, m1752_6 +# 1752| m1752_8(TrivialLambdaClass) = InitializeIndirection[#this] : &:r1752_7 +# 1753| r1753_1(glval) = VariableAddress[l_m_outer] : +# 1753| r1753_2(glval) = VariableAddress[#temp1753:25] : +# 1753| m1753_3(decltype([...](...){...})) = Uninitialized[#temp1753:25] : &:r1753_2 +# 1753| r1753_4(glval) = FieldAddress[(captured this)] : r1753_2 +# 1753| r1753_5(glval) = VariableAddress[#this] : +# 1753| r1753_6(TrivialLambdaClass *) = Load[#this] : &:r1753_5, m1752_6 +# 1753| r1753_7(TrivialLambdaClass) = Load[?] : &:r1753_6, ~m1752_8 +# 1753| m1753_8(TrivialLambdaClass) = Store[?] : &:r1753_4, r1753_7 +# 1753| r1753_9(decltype([...](...){...})) = Load[#temp1753:25] : &:r1753_2, ~m1753_8 +# 1753| m1753_10(decltype([...](...){...})) = Store[l_m_outer] : &:r1753_1, r1753_9 +# 1760| v1760_1(void) = NoOp : +# 1752| v1752_9(void) = ReturnIndirection[#this] : &:r1752_7, m1752_8 +# 1752| v1752_10(void) = ReturnVoid : +# 1752| v1752_11(void) = AliasedUse : m1752_3 +# 1752| v1752_12(void) = ExitFunction : + +# 1753| void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1753, col. 26)::operator()() const +# 1753| Block 0 +# 1753| v1753_1(void) = EnterFunction : +# 1753| m1753_2(unknown) = AliasedDefinition : +# 1753| m1753_3(unknown) = InitializeNonLocal : +# 1753| m1753_4(unknown) = Chi : total:m1753_2, partial:m1753_3 +# 1753| r1753_5(glval) = VariableAddress[#this] : +# 1753| m1753_6(glval) = InitializeParameter[#this] : &:r1753_5 +# 1753| r1753_7(glval) = Load[#this] : &:r1753_5, m1753_6 +# 1753| m1753_8(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1753_7 +# 1754| r1754_1(glval) = VariableAddress[#this] : +# 1754| r1754_2(lambda [] type at line 1753, col. 26 *) = Load[#this] : &:r1754_1, m1753_6 +# 1754| r1754_3(glval) = FieldAddress[(captured this)] : r1754_2 +# 1754| r1754_4(TrivialLambdaClass *) = CopyValue : r1754_3 +# 1754| r1754_5(glval) = FunctionAddress[m] : +# 1754| v1754_6(void) = Call[m] : func:r1754_5, this:r1754_4 +# 1754| m1754_7(unknown) = ^CallSideEffect : ~m1753_4 +# 1754| m1754_8(unknown) = Chi : total:m1753_4, partial:m1754_7 +# 1754| v1754_9(void) = ^IndirectReadSideEffect[-1] : &:r1754_4, ~m1753_8 +# 1756| r1756_1(glval) = VariableAddress[l_m_inner] : +# 1756| r1756_2(glval) = VariableAddress[#temp1756:29] : +# 1756| m1756_3(decltype([...](...){...})) = Uninitialized[#temp1756:29] : &:r1756_2 +# 1756| r1756_4(glval) = FieldAddress[(captured this)] : r1756_2 +# 1756| r1756_5(glval) = VariableAddress[#this] : +# 1756| r1756_6(lambda [] type at line 1756, col. 30 *) = Load[#this] : &:r1756_5, m1753_6 +# 1756| r1756_7(glval) = FieldAddress[(captured this)] : r1756_6 +# 1756| r1756_8(TrivialLambdaClass) = Load[?] : &:r1756_7, ~m1753_8 +# 1756| m1756_9(TrivialLambdaClass) = Store[?] : &:r1756_4, r1756_8 +# 1756| r1756_10(decltype([...](...){...})) = Load[#temp1756:29] : &:r1756_2, ~m1756_9 +# 1756| m1756_11(decltype([...](...){...})) = Store[l_m_inner] : &:r1756_1, r1756_10 +# 1759| v1759_1(void) = NoOp : +# 1753| v1753_9(void) = ReturnIndirection[#this] : &:r1753_7, m1753_8 +# 1753| v1753_10(void) = ReturnVoid : +# 1753| v1753_11(void) = AliasedUse : ~m1754_8 +# 1753| v1753_12(void) = ExitFunction : + +# 1756| void (void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1753, col. 26)::operator()() const)::(lambda [] type at line 1756, col. 30)::operator()() const +# 1756| Block 0 +# 1756| v1756_1(void) = EnterFunction : +# 1756| m1756_2(unknown) = AliasedDefinition : +# 1756| m1756_3(unknown) = InitializeNonLocal : +# 1756| m1756_4(unknown) = Chi : total:m1756_2, partial:m1756_3 +# 1756| r1756_5(glval) = VariableAddress[#this] : +# 1756| m1756_6(glval) = InitializeParameter[#this] : &:r1756_5 +# 1756| r1756_7(glval) = Load[#this] : &:r1756_5, m1756_6 +# 1756| m1756_8(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1756_7 +# 1757| r1757_1(glval) = VariableAddress[#this] : +# 1757| r1757_2(lambda [] type at line 1756, col. 30 *) = Load[#this] : &:r1757_1, m1756_6 +# 1757| r1757_3(glval) = FieldAddress[(captured this)] : r1757_2 +# 1757| r1757_4(TrivialLambdaClass *) = CopyValue : r1757_3 +# 1757| r1757_5(glval) = FunctionAddress[m] : +# 1757| v1757_6(void) = Call[m] : func:r1757_5, this:r1757_4 +# 1757| m1757_7(unknown) = ^CallSideEffect : ~m1756_4 +# 1757| m1757_8(unknown) = Chi : total:m1756_4, partial:m1757_7 +# 1757| v1757_9(void) = ^IndirectReadSideEffect[-1] : &:r1757_4, ~m1756_8 +# 1758| v1758_1(void) = NoOp : +# 1756| v1756_9(void) = ReturnIndirection[#this] : &:r1756_7, m1756_8 +# 1756| v1756_10(void) = ReturnVoid : +# 1756| v1756_11(void) = AliasedUse : ~m1757_8 +# 1756| v1756_12(void) = ExitFunction : + +# 1763| void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) +# 1763| Block 0 +# 1763| v1763_1(void) = EnterFunction : +# 1763| m1763_2(unknown) = AliasedDefinition : +# 1763| m1763_3(unknown) = InitializeNonLocal : +# 1763| m1763_4(unknown) = Chi : total:m1763_2, partial:m1763_3 +# 1763| r1763_5(glval) = VariableAddress[p1] : +# 1763| m1763_6(TrivialLambdaClass) = InitializeParameter[p1] : &:r1763_5 +# 1763| r1763_7(glval) = VariableAddress[p2] : +# 1763| m1763_8(TrivialLambdaClass &) = InitializeParameter[p2] : &:r1763_7 +# 1763| r1763_9(TrivialLambdaClass &) = Load[p2] : &:r1763_7, m1763_8 +# 1763| m1763_10(unknown) = InitializeIndirection[p2] : &:r1763_9 +# 1763| r1763_11(glval) = VariableAddress[p3] : +# 1763| m1763_12(TrivialLambdaClass &&) = InitializeParameter[p3] : &:r1763_11 +# 1763| r1763_13(TrivialLambdaClass &&) = Load[p3] : &:r1763_11, m1763_12 +# 1763| m1763_14(unknown) = InitializeIndirection[p3] : &:r1763_13 +# 1764| r1764_1(glval) = VariableAddress[l1] : +# 1764| m1764_2(TrivialLambdaClass) = Uninitialized[l1] : &:r1764_1 +# 1765| r1765_1(glval) = VariableAddress[l2] : +# 1765| r1765_2(glval) = VariableAddress[#temp1765:36] : +# 1765| r1765_3(TrivialLambdaClass) = Constant[0] : +# 1765| m1765_4(TrivialLambdaClass) = Store[#temp1765:36] : &:r1765_2, r1765_3 +# 1765| r1765_5(glval) = Convert : r1765_2 +# 1765| r1765_6(TrivialLambdaClass &) = CopyValue : r1765_5 +# 1765| m1765_7(TrivialLambdaClass &) = Store[l2] : &:r1765_1, r1765_6 +# 1767| r1767_1(glval) = VariableAddress[l_outer1] : +# 1767| r1767_2(glval) = VariableAddress[#temp1767:20] : +# 1767| m1767_3(decltype([...](...){...})) = Uninitialized[#temp1767:20] : &:r1767_2 +# 1767| r1767_4(glval) = FieldAddress[p1] : r1767_2 +# 1767| r1767_5(glval) = VariableAddress[p1] : +# 1767| r1767_6(TrivialLambdaClass) = Load[p1] : &:r1767_5, m1763_6 +# 1767| m1767_7(TrivialLambdaClass) = Store[?] : &:r1767_4, r1767_6 +# 1767| m1767_8(decltype([...](...){...})) = Chi : total:m1767_3, partial:m1767_7 +# 1767| r1767_9(glval) = FieldAddress[p2] : r1767_2 +# 1767| r1767_10(glval) = VariableAddress[p2] : +# 1767| r1767_11(TrivialLambdaClass &) = Load[p2] : &:r1767_10, m1763_8 +#-----| r0_1(TrivialLambdaClass) = Load[?] : &:r1767_11, ~m1763_10 +#-----| m0_2(TrivialLambdaClass) = Store[?] : &:r1767_9, r0_1 +#-----| m0_3(decltype([...](...){...})) = Chi : total:m1767_8, partial:m0_2 +# 1767| r1767_12(glval) = FieldAddress[p3] : r1767_2 +# 1767| r1767_13(glval) = VariableAddress[p3] : +# 1767| r1767_14(TrivialLambdaClass &&) = Load[p3] : &:r1767_13, m1763_12 +#-----| r0_4(TrivialLambdaClass) = Load[?] : &:r1767_14, ~m1763_14 +#-----| m0_5(TrivialLambdaClass) = Store[?] : &:r1767_12, r0_4 #-----| m0_6(decltype([...](...){...})) = Chi : total:m0_3, partial:m0_5 -# 1765| r1765_15(glval) = FieldAddress[l1] : r1765_2 -# 1765| r1765_16(glval) = VariableAddress[l1] : -# 1765| r1765_17(TrivialLambdaClass) = Load[l1] : &:r1765_16, m1762_2 -# 1765| m1765_18(TrivialLambdaClass) = Store[?] : &:r1765_15, r1765_17 -# 1765| m1765_19(decltype([...](...){...})) = Chi : total:m0_6, partial:m1765_18 -# 1765| r1765_20(glval) = FieldAddress[l2] : r1765_2 -# 1765| r1765_21(glval) = VariableAddress[l2] : -# 1765| r1765_22(TrivialLambdaClass &) = Load[l2] : &:r1765_21, m1763_7 -#-----| r0_7(TrivialLambdaClass) = Load[?] : &:r1765_22, m1763_4 -#-----| m0_8(TrivialLambdaClass) = Store[?] : &:r1765_20, r0_7 -#-----| m0_9(decltype([...](...){...})) = Chi : total:m1765_19, partial:m0_8 -# 1765| r1765_23(decltype([...](...){...})) = Load[#temp1765:20] : &:r1765_2, m0_9 -# 1765| m1765_24(decltype([...](...){...})) = Store[l_outer1] : &:r1765_1, r1765_23 -# 1768| v1768_1(void) = NoOp : -# 1761| v1761_15(void) = ReturnIndirection[p2] : &:r1761_9, m1761_10 -# 1761| v1761_16(void) = ReturnIndirection[p3] : &:r1761_13, m1761_14 -# 1761| v1761_17(void) = ReturnVoid : -# 1761| v1761_18(void) = AliasedUse : m1761_3 -# 1761| v1761_19(void) = ExitFunction : - -# 1765| void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1765, col. 21)::operator()() const -# 1765| Block 0 -# 1765| v1765_1(void) = EnterFunction : -# 1765| m1765_2(unknown) = AliasedDefinition : -# 1765| m1765_3(unknown) = InitializeNonLocal : -# 1765| m1765_4(unknown) = Chi : total:m1765_2, partial:m1765_3 -# 1765| r1765_5(glval) = VariableAddress[#this] : -# 1765| m1765_6(glval) = InitializeParameter[#this] : &:r1765_5 -# 1765| r1765_7(glval) = Load[#this] : &:r1765_5, m1765_6 -# 1765| m1765_8(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1765_7 -# 1766| r1766_1(glval) = VariableAddress[l_inner1] : -# 1766| r1766_2(glval) = VariableAddress[#temp1766:24] : -# 1766| m1766_3(decltype([...](...){...})) = Uninitialized[#temp1766:24] : &:r1766_2 -# 1766| r1766_4(glval) = FieldAddress[p1] : r1766_2 -# 1766| r1766_5(glval) = VariableAddress[#this] : -# 1766| r1766_6(lambda [] type at line 1766, col. 25 *) = Load[#this] : &:r1766_5, m1765_6 -# 1766| r1766_7(glval) = FieldAddress[p1] : r1766_6 -# 1766| r1766_8(TrivialLambdaClass) = Load[?] : &:r1766_7, ~m1765_8 -# 1766| m1766_9(TrivialLambdaClass) = Store[?] : &:r1766_4, r1766_8 -# 1766| r1766_10(decltype([...](...){...})) = Load[#temp1766:24] : &:r1766_2, ~m1766_9 -# 1766| m1766_11(decltype([...](...){...})) = Store[l_inner1] : &:r1766_1, r1766_10 -# 1767| v1767_1(void) = NoOp : -# 1765| v1765_9(void) = ReturnIndirection[#this] : &:r1765_7, m1765_8 -# 1765| v1765_10(void) = ReturnVoid : -# 1765| v1765_11(void) = AliasedUse : m1765_3 -# 1765| v1765_12(void) = ExitFunction : - -# 1766| void (void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1765, col. 21)::operator()() const)::(lambda [] type at line 1766, col. 25)::operator()() const -# 1766| Block 0 -# 1766| v1766_1(void) = EnterFunction : -# 1766| m1766_2(unknown) = AliasedDefinition : -# 1766| m1766_3(unknown) = InitializeNonLocal : -# 1766| m1766_4(unknown) = Chi : total:m1766_2, partial:m1766_3 -# 1766| r1766_5(glval) = VariableAddress[#this] : -# 1766| m1766_6(glval) = InitializeParameter[#this] : &:r1766_5 -# 1766| r1766_7(glval) = Load[#this] : &:r1766_5, m1766_6 -# 1766| m1766_8(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1766_7 -# 1766| v1766_9(void) = NoOp : -# 1766| v1766_10(void) = ReturnIndirection[#this] : &:r1766_7, m1766_8 -# 1766| v1766_11(void) = ReturnVoid : -# 1766| v1766_12(void) = AliasedUse : m1766_3 -# 1766| v1766_13(void) = ExitFunction : - -# 1773| void CopyConstructorWithImplicitArgumentClass::CopyConstructorWithImplicitArgumentClass() -# 1773| Block 0 -# 1773| v1773_1(void) = EnterFunction : -# 1773| m1773_2(unknown) = AliasedDefinition : -# 1773| m1773_3(unknown) = InitializeNonLocal : -# 1773| m1773_4(unknown) = Chi : total:m1773_2, partial:m1773_3 -# 1773| r1773_5(glval) = VariableAddress[#this] : -# 1773| m1773_6(glval) = InitializeParameter[#this] : &:r1773_5 -# 1773| r1773_7(glval) = Load[#this] : &:r1773_5, m1773_6 -# 1773| m1773_8(CopyConstructorWithImplicitArgumentClass) = InitializeIndirection[#this] : &:r1773_7 -# 1773| v1773_9(void) = NoOp : -# 1773| v1773_10(void) = ReturnIndirection[#this] : &:r1773_7, m1773_8 -# 1773| v1773_11(void) = ReturnVoid : -# 1773| v1773_12(void) = AliasedUse : m1773_3 -# 1773| v1773_13(void) = ExitFunction : - -# 1774| void CopyConstructorWithImplicitArgumentClass::CopyConstructorWithImplicitArgumentClass(CopyConstructorWithImplicitArgumentClass const&) -# 1774| Block 0 -# 1774| v1774_1(void) = EnterFunction : -# 1774| m1774_2(unknown) = AliasedDefinition : -# 1774| m1774_3(unknown) = InitializeNonLocal : -# 1774| m1774_4(unknown) = Chi : total:m1774_2, partial:m1774_3 -# 1774| r1774_5(glval) = VariableAddress[#this] : -# 1774| m1774_6(glval) = InitializeParameter[#this] : &:r1774_5 -# 1774| r1774_7(glval) = Load[#this] : &:r1774_5, m1774_6 -# 1774| m1774_8(CopyConstructorWithImplicitArgumentClass) = InitializeIndirection[#this] : &:r1774_7 -# 1774| r1774_9(glval) = VariableAddress[c] : -# 1774| m1774_10(CopyConstructorWithImplicitArgumentClass &) = InitializeParameter[c] : &:r1774_9 -# 1774| r1774_11(CopyConstructorWithImplicitArgumentClass &) = Load[c] : &:r1774_9, m1774_10 -# 1774| m1774_12(unknown) = InitializeIndirection[c] : &:r1774_11 -# 1775| r1775_1(glval) = VariableAddress[c] : -# 1775| r1775_2(CopyConstructorWithImplicitArgumentClass &) = Load[c] : &:r1775_1, m1774_10 -# 1775| r1775_3(glval) = CopyValue : r1775_2 -# 1775| r1775_4(glval) = FieldAddress[x] : r1775_3 -# 1775| r1775_5(int) = Load[?] : &:r1775_4, ~m1774_12 -# 1775| r1775_6(glval) = VariableAddress[#this] : -# 1775| r1775_7(CopyConstructorWithImplicitArgumentClass *) = Load[#this] : &:r1775_6, m1774_6 -# 1775| r1775_8(glval) = FieldAddress[x] : r1775_7 -# 1775| m1775_9(int) = Store[?] : &:r1775_8, r1775_5 -# 1775| m1775_10(unknown) = Chi : total:m1774_8, partial:m1775_9 -# 1776| v1776_1(void) = NoOp : -# 1774| v1774_13(void) = ReturnIndirection[#this] : &:r1774_7, m1775_10 -# 1774| v1774_14(void) = ReturnIndirection[c] : &:r1774_11, m1774_12 -# 1774| v1774_15(void) = ReturnVoid : -# 1774| v1774_16(void) = AliasedUse : m1774_3 -# 1774| v1774_17(void) = ExitFunction : - -# 1782| void CopyConstructorWithBitwiseCopyClass::CopyConstructorWithBitwiseCopyClass() -# 1782| Block 0 -# 1782| v1782_1(void) = EnterFunction : -# 1782| m1782_2(unknown) = AliasedDefinition : -# 1782| m1782_3(unknown) = InitializeNonLocal : -# 1782| m1782_4(unknown) = Chi : total:m1782_2, partial:m1782_3 -# 1782| r1782_5(glval) = VariableAddress[#this] : -# 1782| m1782_6(glval) = InitializeParameter[#this] : &:r1782_5 -# 1782| r1782_7(glval) = Load[#this] : &:r1782_5, m1782_6 -# 1782| m1782_8(CopyConstructorWithBitwiseCopyClass) = InitializeIndirection[#this] : &:r1782_7 -# 1782| v1782_9(void) = NoOp : -# 1782| v1782_10(void) = ReturnIndirection[#this] : &:r1782_7, m1782_8 -# 1782| v1782_11(void) = ReturnVoid : -# 1782| v1782_12(void) = AliasedUse : m1782_3 -# 1782| v1782_13(void) = ExitFunction : - -# 1785| void CopyConstructorTestNonVirtualClass::CopyConstructorTestNonVirtualClass(CopyConstructorTestNonVirtualClass const&) -# 1785| Block 0 -# 1785| v1785_1(void) = EnterFunction : -# 1785| m1785_2(unknown) = AliasedDefinition : -# 1785| m1785_3(unknown) = InitializeNonLocal : -# 1785| m1785_4(unknown) = Chi : total:m1785_2, partial:m1785_3 -# 1785| r1785_5(glval) = VariableAddress[#this] : -# 1785| m1785_6(glval) = InitializeParameter[#this] : &:r1785_5 -# 1785| r1785_7(glval) = Load[#this] : &:r1785_5, m1785_6 -# 1785| m1785_8(CopyConstructorTestNonVirtualClass) = InitializeIndirection[#this] : &:r1785_7 +# 1767| r1767_15(glval) = FieldAddress[l1] : r1767_2 +# 1767| r1767_16(glval) = VariableAddress[l1] : +# 1767| r1767_17(TrivialLambdaClass) = Load[l1] : &:r1767_16, m1764_2 +# 1767| m1767_18(TrivialLambdaClass) = Store[?] : &:r1767_15, r1767_17 +# 1767| m1767_19(decltype([...](...){...})) = Chi : total:m0_6, partial:m1767_18 +# 1767| r1767_20(glval) = FieldAddress[l2] : r1767_2 +# 1767| r1767_21(glval) = VariableAddress[l2] : +# 1767| r1767_22(TrivialLambdaClass &) = Load[l2] : &:r1767_21, m1765_7 +#-----| r0_7(TrivialLambdaClass) = Load[?] : &:r1767_22, m1765_4 +#-----| m0_8(TrivialLambdaClass) = Store[?] : &:r1767_20, r0_7 +#-----| m0_9(decltype([...](...){...})) = Chi : total:m1767_19, partial:m0_8 +# 1767| r1767_23(decltype([...](...){...})) = Load[#temp1767:20] : &:r1767_2, m0_9 +# 1767| m1767_24(decltype([...](...){...})) = Store[l_outer1] : &:r1767_1, r1767_23 +# 1770| v1770_1(void) = NoOp : +# 1763| v1763_15(void) = ReturnIndirection[p2] : &:r1763_9, m1763_10 +# 1763| v1763_16(void) = ReturnIndirection[p3] : &:r1763_13, m1763_14 +# 1763| v1763_17(void) = ReturnVoid : +# 1763| v1763_18(void) = AliasedUse : m1763_3 +# 1763| v1763_19(void) = ExitFunction : + +# 1767| void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1767, col. 21)::operator()() const +# 1767| Block 0 +# 1767| v1767_1(void) = EnterFunction : +# 1767| m1767_2(unknown) = AliasedDefinition : +# 1767| m1767_3(unknown) = InitializeNonLocal : +# 1767| m1767_4(unknown) = Chi : total:m1767_2, partial:m1767_3 +# 1767| r1767_5(glval) = VariableAddress[#this] : +# 1767| m1767_6(glval) = InitializeParameter[#this] : &:r1767_5 +# 1767| r1767_7(glval) = Load[#this] : &:r1767_5, m1767_6 +# 1767| m1767_8(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1767_7 +# 1768| r1768_1(glval) = VariableAddress[l_inner1] : +# 1768| r1768_2(glval) = VariableAddress[#temp1768:24] : +# 1768| m1768_3(decltype([...](...){...})) = Uninitialized[#temp1768:24] : &:r1768_2 +# 1768| r1768_4(glval) = FieldAddress[p1] : r1768_2 +# 1768| r1768_5(glval) = VariableAddress[#this] : +# 1768| r1768_6(lambda [] type at line 1768, col. 25 *) = Load[#this] : &:r1768_5, m1767_6 +# 1768| r1768_7(glval) = FieldAddress[p1] : r1768_6 +# 1768| r1768_8(TrivialLambdaClass) = Load[?] : &:r1768_7, ~m1767_8 +# 1768| m1768_9(TrivialLambdaClass) = Store[?] : &:r1768_4, r1768_8 +# 1768| r1768_10(decltype([...](...){...})) = Load[#temp1768:24] : &:r1768_2, ~m1768_9 +# 1768| m1768_11(decltype([...](...){...})) = Store[l_inner1] : &:r1768_1, r1768_10 +# 1769| v1769_1(void) = NoOp : +# 1767| v1767_9(void) = ReturnIndirection[#this] : &:r1767_7, m1767_8 +# 1767| v1767_10(void) = ReturnVoid : +# 1767| v1767_11(void) = AliasedUse : m1767_3 +# 1767| v1767_12(void) = ExitFunction : + +# 1768| void (void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1767, col. 21)::operator()() const)::(lambda [] type at line 1768, col. 25)::operator()() const +# 1768| Block 0 +# 1768| v1768_1(void) = EnterFunction : +# 1768| m1768_2(unknown) = AliasedDefinition : +# 1768| m1768_3(unknown) = InitializeNonLocal : +# 1768| m1768_4(unknown) = Chi : total:m1768_2, partial:m1768_3 +# 1768| r1768_5(glval) = VariableAddress[#this] : +# 1768| m1768_6(glval) = InitializeParameter[#this] : &:r1768_5 +# 1768| r1768_7(glval) = Load[#this] : &:r1768_5, m1768_6 +# 1768| m1768_8(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1768_7 +# 1768| v1768_9(void) = NoOp : +# 1768| v1768_10(void) = ReturnIndirection[#this] : &:r1768_7, m1768_8 +# 1768| v1768_11(void) = ReturnVoid : +# 1768| v1768_12(void) = AliasedUse : m1768_3 +# 1768| v1768_13(void) = ExitFunction : + +# 1775| void CopyConstructorWithImplicitArgumentClass::CopyConstructorWithImplicitArgumentClass() +# 1775| Block 0 +# 1775| v1775_1(void) = EnterFunction : +# 1775| m1775_2(unknown) = AliasedDefinition : +# 1775| m1775_3(unknown) = InitializeNonLocal : +# 1775| m1775_4(unknown) = Chi : total:m1775_2, partial:m1775_3 +# 1775| r1775_5(glval) = VariableAddress[#this] : +# 1775| m1775_6(glval) = InitializeParameter[#this] : &:r1775_5 +# 1775| r1775_7(glval) = Load[#this] : &:r1775_5, m1775_6 +# 1775| m1775_8(CopyConstructorWithImplicitArgumentClass) = InitializeIndirection[#this] : &:r1775_7 +# 1775| v1775_9(void) = NoOp : +# 1775| v1775_10(void) = ReturnIndirection[#this] : &:r1775_7, m1775_8 +# 1775| v1775_11(void) = ReturnVoid : +# 1775| v1775_12(void) = AliasedUse : m1775_3 +# 1775| v1775_13(void) = ExitFunction : + +# 1776| void CopyConstructorWithImplicitArgumentClass::CopyConstructorWithImplicitArgumentClass(CopyConstructorWithImplicitArgumentClass const&) +# 1776| Block 0 +# 1776| v1776_1(void) = EnterFunction : +# 1776| m1776_2(unknown) = AliasedDefinition : +# 1776| m1776_3(unknown) = InitializeNonLocal : +# 1776| m1776_4(unknown) = Chi : total:m1776_2, partial:m1776_3 +# 1776| r1776_5(glval) = VariableAddress[#this] : +# 1776| m1776_6(glval) = InitializeParameter[#this] : &:r1776_5 +# 1776| r1776_7(glval) = Load[#this] : &:r1776_5, m1776_6 +# 1776| m1776_8(CopyConstructorWithImplicitArgumentClass) = InitializeIndirection[#this] : &:r1776_7 +# 1776| r1776_9(glval) = VariableAddress[c] : +# 1776| m1776_10(CopyConstructorWithImplicitArgumentClass &) = InitializeParameter[c] : &:r1776_9 +# 1776| r1776_11(CopyConstructorWithImplicitArgumentClass &) = Load[c] : &:r1776_9, m1776_10 +# 1776| m1776_12(unknown) = InitializeIndirection[c] : &:r1776_11 +# 1777| r1777_1(glval) = VariableAddress[c] : +# 1777| r1777_2(CopyConstructorWithImplicitArgumentClass &) = Load[c] : &:r1777_1, m1776_10 +# 1777| r1777_3(glval) = CopyValue : r1777_2 +# 1777| r1777_4(glval) = FieldAddress[x] : r1777_3 +# 1777| r1777_5(int) = Load[?] : &:r1777_4, ~m1776_12 +# 1777| r1777_6(glval) = VariableAddress[#this] : +# 1777| r1777_7(CopyConstructorWithImplicitArgumentClass *) = Load[#this] : &:r1777_6, m1776_6 +# 1777| r1777_8(glval) = FieldAddress[x] : r1777_7 +# 1777| m1777_9(int) = Store[?] : &:r1777_8, r1777_5 +# 1777| m1777_10(unknown) = Chi : total:m1776_8, partial:m1777_9 +# 1778| v1778_1(void) = NoOp : +# 1776| v1776_13(void) = ReturnIndirection[#this] : &:r1776_7, m1777_10 +# 1776| v1776_14(void) = ReturnIndirection[c] : &:r1776_11, m1776_12 +# 1776| v1776_15(void) = ReturnVoid : +# 1776| v1776_16(void) = AliasedUse : m1776_3 +# 1776| v1776_17(void) = ExitFunction : + +# 1784| void CopyConstructorWithBitwiseCopyClass::CopyConstructorWithBitwiseCopyClass() +# 1784| Block 0 +# 1784| v1784_1(void) = EnterFunction : +# 1784| m1784_2(unknown) = AliasedDefinition : +# 1784| m1784_3(unknown) = InitializeNonLocal : +# 1784| m1784_4(unknown) = Chi : total:m1784_2, partial:m1784_3 +# 1784| r1784_5(glval) = VariableAddress[#this] : +# 1784| m1784_6(glval) = InitializeParameter[#this] : &:r1784_5 +# 1784| r1784_7(glval) = Load[#this] : &:r1784_5, m1784_6 +# 1784| m1784_8(CopyConstructorWithBitwiseCopyClass) = InitializeIndirection[#this] : &:r1784_7 +# 1784| v1784_9(void) = NoOp : +# 1784| v1784_10(void) = ReturnIndirection[#this] : &:r1784_7, m1784_8 +# 1784| v1784_11(void) = ReturnVoid : +# 1784| v1784_12(void) = AliasedUse : m1784_3 +# 1784| v1784_13(void) = ExitFunction : + +# 1787| void CopyConstructorTestNonVirtualClass::CopyConstructorTestNonVirtualClass(CopyConstructorTestNonVirtualClass const&) +# 1787| Block 0 +# 1787| v1787_1(void) = EnterFunction : +# 1787| m1787_2(unknown) = AliasedDefinition : +# 1787| m1787_3(unknown) = InitializeNonLocal : +# 1787| m1787_4(unknown) = Chi : total:m1787_2, partial:m1787_3 +# 1787| r1787_5(glval) = VariableAddress[#this] : +# 1787| m1787_6(glval) = InitializeParameter[#this] : &:r1787_5 +# 1787| r1787_7(glval) = Load[#this] : &:r1787_5, m1787_6 +# 1787| m1787_8(CopyConstructorTestNonVirtualClass) = InitializeIndirection[#this] : &:r1787_7 #-----| r0_1(glval) = VariableAddress[(unnamed parameter 0)] : #-----| m0_2(CopyConstructorTestNonVirtualClass &) = InitializeParameter[(unnamed parameter 0)] : &:r0_1 #-----| r0_3(CopyConstructorTestNonVirtualClass &) = Load[(unnamed parameter 0)] : &:r0_1, m0_2 #-----| m0_4(unknown) = InitializeIndirection[(unnamed parameter 0)] : &:r0_3 -# 1785| r1785_9(glval) = ConvertToNonVirtualBase[CopyConstructorTestNonVirtualClass : CopyConstructorWithImplicitArgumentClass] : r1785_7 -# 1785| r1785_10(glval) = FunctionAddress[CopyConstructorWithImplicitArgumentClass] : -# 1785| r1785_11(glval) = VariableAddress[(unnamed parameter 0)] : -# 1785| r1785_12(CopyConstructorTestNonVirtualClass &) = Load[(unnamed parameter 0)] : &:r1785_11, m0_2 -# 1785| r1785_13(glval) = CopyValue : r1785_12 -# 1785| r1785_14(glval) = ConvertToNonVirtualBase[CopyConstructorTestNonVirtualClass : CopyConstructorWithImplicitArgumentClass] : r1785_13 -# 1785| r1785_15(CopyConstructorWithImplicitArgumentClass &) = CopyValue : r1785_14 -# 1785| v1785_16(void) = Call[CopyConstructorWithImplicitArgumentClass] : func:r1785_10, this:r1785_9, 0:r1785_15 -# 1785| m1785_17(unknown) = ^CallSideEffect : ~m1785_4 -# 1785| m1785_18(unknown) = Chi : total:m1785_4, partial:m1785_17 -# 1785| v1785_19(void) = ^BufferReadSideEffect[0] : &:r1785_15, ~m0_4 -# 1785| m1785_20(CopyConstructorWithImplicitArgumentClass) = ^IndirectMayWriteSideEffect[-1] : &:r1785_9 -# 1785| m1785_21(unknown) = Chi : total:m1785_8, partial:m1785_20 -# 1785| v1785_22(void) = NoOp : -# 1785| v1785_23(void) = ReturnIndirection[#this] : &:r1785_7, m1785_21 +# 1787| r1787_9(glval) = ConvertToNonVirtualBase[CopyConstructorTestNonVirtualClass : CopyConstructorWithImplicitArgumentClass] : r1787_7 +# 1787| r1787_10(glval) = FunctionAddress[CopyConstructorWithImplicitArgumentClass] : +# 1787| r1787_11(glval) = VariableAddress[(unnamed parameter 0)] : +# 1787| r1787_12(CopyConstructorTestNonVirtualClass &) = Load[(unnamed parameter 0)] : &:r1787_11, m0_2 +# 1787| r1787_13(glval) = CopyValue : r1787_12 +# 1787| r1787_14(glval) = ConvertToNonVirtualBase[CopyConstructorTestNonVirtualClass : CopyConstructorWithImplicitArgumentClass] : r1787_13 +# 1787| r1787_15(CopyConstructorWithImplicitArgumentClass &) = CopyValue : r1787_14 +# 1787| v1787_16(void) = Call[CopyConstructorWithImplicitArgumentClass] : func:r1787_10, this:r1787_9, 0:r1787_15 +# 1787| m1787_17(unknown) = ^CallSideEffect : ~m1787_4 +# 1787| m1787_18(unknown) = Chi : total:m1787_4, partial:m1787_17 +# 1787| v1787_19(void) = ^BufferReadSideEffect[0] : &:r1787_15, ~m0_4 +# 1787| m1787_20(CopyConstructorWithImplicitArgumentClass) = ^IndirectMayWriteSideEffect[-1] : &:r1787_9 +# 1787| m1787_21(unknown) = Chi : total:m1787_8, partial:m1787_20 +# 1787| v1787_22(void) = NoOp : +# 1787| v1787_23(void) = ReturnIndirection[#this] : &:r1787_7, m1787_21 #-----| v0_5(void) = ReturnIndirection[(unnamed parameter 0)] : &:r0_3, m0_4 -# 1785| v1785_24(void) = ReturnVoid : -# 1785| v1785_25(void) = AliasedUse : ~m1785_18 -# 1785| v1785_26(void) = ExitFunction : - -# 1789| void CopyConstructorTestNonVirtualClass::CopyConstructorTestNonVirtualClass() -# 1789| Block 0 -# 1789| v1789_1(void) = EnterFunction : -# 1789| m1789_2(unknown) = AliasedDefinition : -# 1789| m1789_3(unknown) = InitializeNonLocal : -# 1789| m1789_4(unknown) = Chi : total:m1789_2, partial:m1789_3 -# 1789| r1789_5(glval) = VariableAddress[#this] : -# 1789| m1789_6(glval) = InitializeParameter[#this] : &:r1789_5 -# 1789| r1789_7(glval) = Load[#this] : &:r1789_5, m1789_6 -# 1789| m1789_8(CopyConstructorTestNonVirtualClass) = InitializeIndirection[#this] : &:r1789_7 -# 1789| r1789_9(glval) = ConvertToNonVirtualBase[CopyConstructorTestNonVirtualClass : CopyConstructorWithImplicitArgumentClass] : r1789_7 -# 1789| r1789_10(glval) = FunctionAddress[CopyConstructorWithImplicitArgumentClass] : -# 1789| v1789_11(void) = Call[CopyConstructorWithImplicitArgumentClass] : func:r1789_10, this:r1789_9 -# 1789| m1789_12(unknown) = ^CallSideEffect : ~m1789_4 -# 1789| m1789_13(unknown) = Chi : total:m1789_4, partial:m1789_12 -# 1789| m1789_14(CopyConstructorWithImplicitArgumentClass) = ^IndirectMayWriteSideEffect[-1] : &:r1789_9 -# 1789| m1789_15(unknown) = Chi : total:m1789_8, partial:m1789_14 -# 1789| r1789_16(glval) = ConvertToNonVirtualBase[CopyConstructorTestNonVirtualClass : CopyConstructorWithBitwiseCopyClass] : r1789_7 -# 1789| r1789_17(glval) = FunctionAddress[CopyConstructorWithBitwiseCopyClass] : -# 1789| v1789_18(void) = Call[CopyConstructorWithBitwiseCopyClass] : func:r1789_17, this:r1789_16 -# 1789| m1789_19(unknown) = ^CallSideEffect : ~m1789_13 -# 1789| m1789_20(unknown) = Chi : total:m1789_13, partial:m1789_19 -# 1789| m1789_21(CopyConstructorWithBitwiseCopyClass) = ^IndirectMayWriteSideEffect[-1] : &:r1789_16 -# 1789| m1789_22(unknown) = Chi : total:m1789_15, partial:m1789_21 -# 1789| v1789_23(void) = NoOp : -# 1789| v1789_24(void) = ReturnIndirection[#this] : &:r1789_7, m1789_22 -# 1789| v1789_25(void) = ReturnVoid : -# 1789| v1789_26(void) = AliasedUse : ~m1789_20 -# 1789| v1789_27(void) = ExitFunction : - -# 1792| void CopyConstructorTestVirtualClass::CopyConstructorTestVirtualClass(CopyConstructorTestVirtualClass const&) -# 1792| Block 0 -# 1792| v1792_1(void) = EnterFunction : -# 1792| m1792_2(unknown) = AliasedDefinition : -# 1792| m1792_3(unknown) = InitializeNonLocal : -# 1792| m1792_4(unknown) = Chi : total:m1792_2, partial:m1792_3 -# 1792| r1792_5(glval) = VariableAddress[#this] : -# 1792| m1792_6(glval) = InitializeParameter[#this] : &:r1792_5 -# 1792| r1792_7(glval) = Load[#this] : &:r1792_5, m1792_6 -# 1792| m1792_8(CopyConstructorTestVirtualClass) = InitializeIndirection[#this] : &:r1792_7 -# 1792| m1792_9(unknown) = Chi : total:m1792_4, partial:m1792_8 +# 1787| v1787_24(void) = ReturnVoid : +# 1787| v1787_25(void) = AliasedUse : ~m1787_18 +# 1787| v1787_26(void) = ExitFunction : + +# 1791| void CopyConstructorTestNonVirtualClass::CopyConstructorTestNonVirtualClass() +# 1791| Block 0 +# 1791| v1791_1(void) = EnterFunction : +# 1791| m1791_2(unknown) = AliasedDefinition : +# 1791| m1791_3(unknown) = InitializeNonLocal : +# 1791| m1791_4(unknown) = Chi : total:m1791_2, partial:m1791_3 +# 1791| r1791_5(glval) = VariableAddress[#this] : +# 1791| m1791_6(glval) = InitializeParameter[#this] : &:r1791_5 +# 1791| r1791_7(glval) = Load[#this] : &:r1791_5, m1791_6 +# 1791| m1791_8(CopyConstructorTestNonVirtualClass) = InitializeIndirection[#this] : &:r1791_7 +# 1791| r1791_9(glval) = ConvertToNonVirtualBase[CopyConstructorTestNonVirtualClass : CopyConstructorWithImplicitArgumentClass] : r1791_7 +# 1791| r1791_10(glval) = FunctionAddress[CopyConstructorWithImplicitArgumentClass] : +# 1791| v1791_11(void) = Call[CopyConstructorWithImplicitArgumentClass] : func:r1791_10, this:r1791_9 +# 1791| m1791_12(unknown) = ^CallSideEffect : ~m1791_4 +# 1791| m1791_13(unknown) = Chi : total:m1791_4, partial:m1791_12 +# 1791| m1791_14(CopyConstructorWithImplicitArgumentClass) = ^IndirectMayWriteSideEffect[-1] : &:r1791_9 +# 1791| m1791_15(unknown) = Chi : total:m1791_8, partial:m1791_14 +# 1791| r1791_16(glval) = ConvertToNonVirtualBase[CopyConstructorTestNonVirtualClass : CopyConstructorWithBitwiseCopyClass] : r1791_7 +# 1791| r1791_17(glval) = FunctionAddress[CopyConstructorWithBitwiseCopyClass] : +# 1791| v1791_18(void) = Call[CopyConstructorWithBitwiseCopyClass] : func:r1791_17, this:r1791_16 +# 1791| m1791_19(unknown) = ^CallSideEffect : ~m1791_13 +# 1791| m1791_20(unknown) = Chi : total:m1791_13, partial:m1791_19 +# 1791| m1791_21(CopyConstructorWithBitwiseCopyClass) = ^IndirectMayWriteSideEffect[-1] : &:r1791_16 +# 1791| m1791_22(unknown) = Chi : total:m1791_15, partial:m1791_21 +# 1791| v1791_23(void) = NoOp : +# 1791| v1791_24(void) = ReturnIndirection[#this] : &:r1791_7, m1791_22 +# 1791| v1791_25(void) = ReturnVoid : +# 1791| v1791_26(void) = AliasedUse : ~m1791_20 +# 1791| v1791_27(void) = ExitFunction : + +# 1794| void CopyConstructorTestVirtualClass::CopyConstructorTestVirtualClass(CopyConstructorTestVirtualClass const&) +# 1794| Block 0 +# 1794| v1794_1(void) = EnterFunction : +# 1794| m1794_2(unknown) = AliasedDefinition : +# 1794| m1794_3(unknown) = InitializeNonLocal : +# 1794| m1794_4(unknown) = Chi : total:m1794_2, partial:m1794_3 +# 1794| r1794_5(glval) = VariableAddress[#this] : +# 1794| m1794_6(glval) = InitializeParameter[#this] : &:r1794_5 +# 1794| r1794_7(glval) = Load[#this] : &:r1794_5, m1794_6 +# 1794| m1794_8(CopyConstructorTestVirtualClass) = InitializeIndirection[#this] : &:r1794_7 +# 1794| m1794_9(unknown) = Chi : total:m1794_4, partial:m1794_8 #-----| r0_1(glval) = VariableAddress[(unnamed parameter 0)] : #-----| m0_2(CopyConstructorTestVirtualClass &) = InitializeParameter[(unnamed parameter 0)] : &:r0_1 #-----| r0_3(CopyConstructorTestVirtualClass &) = Load[(unnamed parameter 0)] : &:r0_1, m0_2 #-----| m0_4(unknown) = InitializeIndirection[(unnamed parameter 0)] : &:r0_3 -# 1792| r1792_10(glval) = ConvertToNonVirtualBase[CopyConstructorTestVirtualClass : CopyConstructorWithImplicitArgumentClass] : r1792_7 -# 1792| r1792_11(glval) = FunctionAddress[CopyConstructorWithImplicitArgumentClass] : -# 1792| r1792_12(glval) = VariableAddress[(unnamed parameter 0)] : -# 1792| r1792_13(CopyConstructorTestVirtualClass &) = Load[(unnamed parameter 0)] : &:r1792_12, m0_2 -# 1792| r1792_14(glval) = CopyValue : r1792_13 -# 1792| r1792_15(glval) = ConvertToVirtualBase[CopyConstructorTestVirtualClass : CopyConstructorWithImplicitArgumentClass] : r1792_14 -# 1792| r1792_16(CopyConstructorWithImplicitArgumentClass &) = CopyValue : r1792_15 -# 1792| v1792_17(void) = Call[CopyConstructorWithImplicitArgumentClass] : func:r1792_11, this:r1792_10, 0:r1792_16 -# 1792| m1792_18(unknown) = ^CallSideEffect : ~m1792_9 -# 1792| m1792_19(unknown) = Chi : total:m1792_9, partial:m1792_18 -# 1792| v1792_20(void) = ^BufferReadSideEffect[0] : &:r1792_16, ~m0_4 -# 1792| m1792_21(CopyConstructorWithImplicitArgumentClass) = ^IndirectMayWriteSideEffect[-1] : &:r1792_10 -# 1792| m1792_22(unknown) = Chi : total:m1792_19, partial:m1792_21 -# 1792| v1792_23(void) = NoOp : -# 1792| v1792_24(void) = ReturnIndirection[#this] : &:r1792_7, ~m1792_22 +# 1794| r1794_10(glval) = ConvertToNonVirtualBase[CopyConstructorTestVirtualClass : CopyConstructorWithImplicitArgumentClass] : r1794_7 +# 1794| r1794_11(glval) = FunctionAddress[CopyConstructorWithImplicitArgumentClass] : +# 1794| r1794_12(glval) = VariableAddress[(unnamed parameter 0)] : +# 1794| r1794_13(CopyConstructorTestVirtualClass &) = Load[(unnamed parameter 0)] : &:r1794_12, m0_2 +# 1794| r1794_14(glval) = CopyValue : r1794_13 +# 1794| r1794_15(glval) = ConvertToVirtualBase[CopyConstructorTestVirtualClass : CopyConstructorWithImplicitArgumentClass] : r1794_14 +# 1794| r1794_16(CopyConstructorWithImplicitArgumentClass &) = CopyValue : r1794_15 +# 1794| v1794_17(void) = Call[CopyConstructorWithImplicitArgumentClass] : func:r1794_11, this:r1794_10, 0:r1794_16 +# 1794| m1794_18(unknown) = ^CallSideEffect : ~m1794_9 +# 1794| m1794_19(unknown) = Chi : total:m1794_9, partial:m1794_18 +# 1794| v1794_20(void) = ^BufferReadSideEffect[0] : &:r1794_16, ~m0_4 +# 1794| m1794_21(CopyConstructorWithImplicitArgumentClass) = ^IndirectMayWriteSideEffect[-1] : &:r1794_10 +# 1794| m1794_22(unknown) = Chi : total:m1794_19, partial:m1794_21 +# 1794| v1794_23(void) = NoOp : +# 1794| v1794_24(void) = ReturnIndirection[#this] : &:r1794_7, ~m1794_22 #-----| v0_5(void) = ReturnIndirection[(unnamed parameter 0)] : &:r0_3, m0_4 -# 1792| v1792_25(void) = ReturnVoid : -# 1792| v1792_26(void) = AliasedUse : ~m1792_22 -# 1792| v1792_27(void) = ExitFunction : - -# 1796| void CopyConstructorTestVirtualClass::CopyConstructorTestVirtualClass() -# 1796| Block 0 -# 1796| v1796_1(void) = EnterFunction : -# 1796| m1796_2(unknown) = AliasedDefinition : -# 1796| m1796_3(unknown) = InitializeNonLocal : -# 1796| m1796_4(unknown) = Chi : total:m1796_2, partial:m1796_3 -# 1796| r1796_5(glval) = VariableAddress[#this] : -# 1796| m1796_6(glval) = InitializeParameter[#this] : &:r1796_5 -# 1796| r1796_7(glval) = Load[#this] : &:r1796_5, m1796_6 -# 1796| m1796_8(CopyConstructorTestVirtualClass) = InitializeIndirection[#this] : &:r1796_7 -# 1796| m1796_9(unknown) = Chi : total:m1796_4, partial:m1796_8 -# 1796| r1796_10(glval) = ConvertToNonVirtualBase[CopyConstructorTestVirtualClass : CopyConstructorWithImplicitArgumentClass] : r1796_7 -# 1796| r1796_11(glval) = FunctionAddress[CopyConstructorWithImplicitArgumentClass] : -# 1796| v1796_12(void) = Call[CopyConstructorWithImplicitArgumentClass] : func:r1796_11, this:r1796_10 -# 1796| m1796_13(unknown) = ^CallSideEffect : ~m1796_9 -# 1796| m1796_14(unknown) = Chi : total:m1796_9, partial:m1796_13 -# 1796| m1796_15(CopyConstructorWithImplicitArgumentClass) = ^IndirectMayWriteSideEffect[-1] : &:r1796_10 -# 1796| m1796_16(unknown) = Chi : total:m1796_14, partial:m1796_15 -# 1796| r1796_17(glval) = ConvertToNonVirtualBase[CopyConstructorTestVirtualClass : CopyConstructorWithBitwiseCopyClass] : r1796_7 -# 1796| r1796_18(glval) = FunctionAddress[CopyConstructorWithBitwiseCopyClass] : -# 1796| v1796_19(void) = Call[CopyConstructorWithBitwiseCopyClass] : func:r1796_18, this:r1796_17 -# 1796| m1796_20(unknown) = ^CallSideEffect : ~m1796_16 -# 1796| m1796_21(unknown) = Chi : total:m1796_16, partial:m1796_20 -# 1796| m1796_22(CopyConstructorWithBitwiseCopyClass) = ^IndirectMayWriteSideEffect[-1] : &:r1796_17 -# 1796| m1796_23(unknown) = Chi : total:m1796_21, partial:m1796_22 -# 1796| v1796_24(void) = NoOp : -# 1796| v1796_25(void) = ReturnIndirection[#this] : &:r1796_7, ~m1796_23 -# 1796| v1796_26(void) = ReturnVoid : -# 1796| v1796_27(void) = AliasedUse : ~m1796_23 -# 1796| v1796_28(void) = ExitFunction : - -# 1799| int implicit_copy_constructor_test(CopyConstructorTestNonVirtualClass const&, CopyConstructorTestVirtualClass const&) -# 1799| Block 0 -# 1799| v1799_1(void) = EnterFunction : -# 1799| m1799_2(unknown) = AliasedDefinition : -# 1799| m1799_3(unknown) = InitializeNonLocal : -# 1799| m1799_4(unknown) = Chi : total:m1799_2, partial:m1799_3 -# 1800| r1800_1(glval) = VariableAddress[x] : -# 1800| m1800_2(CopyConstructorTestNonVirtualClass &) = InitializeParameter[x] : &:r1800_1 -# 1800| r1800_3(CopyConstructorTestNonVirtualClass &) = Load[x] : &:r1800_1, m1800_2 -# 1800| m1800_4(unknown) = InitializeIndirection[x] : &:r1800_3 -# 1801| r1801_1(glval) = VariableAddress[y] : -# 1801| m1801_2(CopyConstructorTestVirtualClass &) = InitializeParameter[y] : &:r1801_1 -# 1801| r1801_3(CopyConstructorTestVirtualClass &) = Load[y] : &:r1801_1, m1801_2 -# 1801| m1801_4(unknown) = InitializeIndirection[y] : &:r1801_3 -# 1802| r1802_1(glval) = VariableAddress[cx] : -# 1802| m1802_2(CopyConstructorTestNonVirtualClass) = Uninitialized[cx] : &:r1802_1 -# 1802| r1802_3(glval) = FunctionAddress[CopyConstructorTestNonVirtualClass] : -# 1802| r1802_4(glval) = VariableAddress[x] : -# 1802| r1802_5(CopyConstructorTestNonVirtualClass &) = Load[x] : &:r1802_4, m1800_2 -# 1802| r1802_6(glval) = CopyValue : r1802_5 -# 1802| r1802_7(CopyConstructorTestNonVirtualClass &) = CopyValue : r1802_6 -# 1802| v1802_8(void) = Call[CopyConstructorTestNonVirtualClass] : func:r1802_3, this:r1802_1, 0:r1802_7 -# 1802| m1802_9(unknown) = ^CallSideEffect : ~m1799_4 -# 1802| m1802_10(unknown) = Chi : total:m1799_4, partial:m1802_9 -# 1802| v1802_11(void) = ^BufferReadSideEffect[0] : &:r1802_7, ~m1800_4 -# 1802| m1802_12(CopyConstructorTestNonVirtualClass) = ^IndirectMayWriteSideEffect[-1] : &:r1802_1 -# 1802| m1802_13(CopyConstructorTestNonVirtualClass) = Chi : total:m1802_2, partial:m1802_12 -# 1803| r1803_1(glval) = VariableAddress[cy] : -# 1803| m1803_2(CopyConstructorTestVirtualClass) = Uninitialized[cy] : &:r1803_1 -# 1803| m1803_3(unknown) = Chi : total:m1802_10, partial:m1803_2 -# 1803| r1803_4(glval) = FunctionAddress[CopyConstructorTestVirtualClass] : -# 1803| r1803_5(glval) = VariableAddress[y] : -# 1803| r1803_6(CopyConstructorTestVirtualClass &) = Load[y] : &:r1803_5, m1801_2 -# 1803| r1803_7(glval) = CopyValue : r1803_6 -# 1803| r1803_8(CopyConstructorTestVirtualClass &) = CopyValue : r1803_7 -# 1803| v1803_9(void) = Call[CopyConstructorTestVirtualClass] : func:r1803_4, this:r1803_1, 0:r1803_8 -# 1803| m1803_10(unknown) = ^CallSideEffect : ~m1803_3 -# 1803| m1803_11(unknown) = Chi : total:m1803_3, partial:m1803_10 -# 1803| v1803_12(void) = ^BufferReadSideEffect[0] : &:r1803_8, ~m1801_4 -# 1803| m1803_13(CopyConstructorTestVirtualClass) = ^IndirectMayWriteSideEffect[-1] : &:r1803_1 -# 1803| m1803_14(unknown) = Chi : total:m1803_11, partial:m1803_13 -# 1804| r1804_1(glval) = VariableAddress[#return] : -# 1804| m1804_2(int) = Uninitialized[#return] : &:r1804_1 -# 1800| v1800_5(void) = ReturnIndirection[x] : &:r1800_3, m1800_4 -# 1801| v1801_5(void) = ReturnIndirection[y] : &:r1801_3, m1801_4 -# 1799| r1799_5(glval) = VariableAddress[#return] : -# 1799| v1799_6(void) = ReturnValue : &:r1799_5, m1804_2 -# 1799| v1799_7(void) = AliasedUse : ~m1803_11 -# 1799| v1799_8(void) = ExitFunction : - -# 1806| void if_initialization(int) -# 1806| Block 0 -# 1806| v1806_1(void) = EnterFunction : -# 1806| m1806_2(unknown) = AliasedDefinition : -# 1806| m1806_3(unknown) = InitializeNonLocal : -# 1806| m1806_4(unknown) = Chi : total:m1806_2, partial:m1806_3 -# 1806| r1806_5(glval) = VariableAddress[x] : -# 1806| m1806_6(int) = InitializeParameter[x] : &:r1806_5 -# 1807| r1807_1(glval) = VariableAddress[y] : -# 1807| r1807_2(glval) = VariableAddress[x] : -# 1807| r1807_3(int) = Load[x] : &:r1807_2, m1806_6 -# 1807| m1807_4(int) = Store[y] : &:r1807_1, r1807_3 -# 1807| r1807_5(glval) = VariableAddress[x] : -# 1807| r1807_6(int) = Load[x] : &:r1807_5, m1806_6 -# 1807| r1807_7(int) = Constant[1] : -# 1807| r1807_8(int) = Add : r1807_6, r1807_7 -# 1807| r1807_9(int) = Constant[0] : -# 1807| r1807_10(bool) = CompareNE : r1807_8, r1807_9 -# 1807| v1807_11(void) = ConditionalBranch : r1807_10 +# 1794| v1794_25(void) = ReturnVoid : +# 1794| v1794_26(void) = AliasedUse : ~m1794_22 +# 1794| v1794_27(void) = ExitFunction : + +# 1798| void CopyConstructorTestVirtualClass::CopyConstructorTestVirtualClass() +# 1798| Block 0 +# 1798| v1798_1(void) = EnterFunction : +# 1798| m1798_2(unknown) = AliasedDefinition : +# 1798| m1798_3(unknown) = InitializeNonLocal : +# 1798| m1798_4(unknown) = Chi : total:m1798_2, partial:m1798_3 +# 1798| r1798_5(glval) = VariableAddress[#this] : +# 1798| m1798_6(glval) = InitializeParameter[#this] : &:r1798_5 +# 1798| r1798_7(glval) = Load[#this] : &:r1798_5, m1798_6 +# 1798| m1798_8(CopyConstructorTestVirtualClass) = InitializeIndirection[#this] : &:r1798_7 +# 1798| m1798_9(unknown) = Chi : total:m1798_4, partial:m1798_8 +# 1798| r1798_10(glval) = ConvertToNonVirtualBase[CopyConstructorTestVirtualClass : CopyConstructorWithImplicitArgumentClass] : r1798_7 +# 1798| r1798_11(glval) = FunctionAddress[CopyConstructorWithImplicitArgumentClass] : +# 1798| v1798_12(void) = Call[CopyConstructorWithImplicitArgumentClass] : func:r1798_11, this:r1798_10 +# 1798| m1798_13(unknown) = ^CallSideEffect : ~m1798_9 +# 1798| m1798_14(unknown) = Chi : total:m1798_9, partial:m1798_13 +# 1798| m1798_15(CopyConstructorWithImplicitArgumentClass) = ^IndirectMayWriteSideEffect[-1] : &:r1798_10 +# 1798| m1798_16(unknown) = Chi : total:m1798_14, partial:m1798_15 +# 1798| r1798_17(glval) = ConvertToNonVirtualBase[CopyConstructorTestVirtualClass : CopyConstructorWithBitwiseCopyClass] : r1798_7 +# 1798| r1798_18(glval) = FunctionAddress[CopyConstructorWithBitwiseCopyClass] : +# 1798| v1798_19(void) = Call[CopyConstructorWithBitwiseCopyClass] : func:r1798_18, this:r1798_17 +# 1798| m1798_20(unknown) = ^CallSideEffect : ~m1798_16 +# 1798| m1798_21(unknown) = Chi : total:m1798_16, partial:m1798_20 +# 1798| m1798_22(CopyConstructorWithBitwiseCopyClass) = ^IndirectMayWriteSideEffect[-1] : &:r1798_17 +# 1798| m1798_23(unknown) = Chi : total:m1798_21, partial:m1798_22 +# 1798| v1798_24(void) = NoOp : +# 1798| v1798_25(void) = ReturnIndirection[#this] : &:r1798_7, ~m1798_23 +# 1798| v1798_26(void) = ReturnVoid : +# 1798| v1798_27(void) = AliasedUse : ~m1798_23 +# 1798| v1798_28(void) = ExitFunction : + +# 1801| int implicit_copy_constructor_test(CopyConstructorTestNonVirtualClass const&, CopyConstructorTestVirtualClass const&) +# 1801| Block 0 +# 1801| v1801_1(void) = EnterFunction : +# 1801| m1801_2(unknown) = AliasedDefinition : +# 1801| m1801_3(unknown) = InitializeNonLocal : +# 1801| m1801_4(unknown) = Chi : total:m1801_2, partial:m1801_3 +# 1802| r1802_1(glval) = VariableAddress[x] : +# 1802| m1802_2(CopyConstructorTestNonVirtualClass &) = InitializeParameter[x] : &:r1802_1 +# 1802| r1802_3(CopyConstructorTestNonVirtualClass &) = Load[x] : &:r1802_1, m1802_2 +# 1802| m1802_4(unknown) = InitializeIndirection[x] : &:r1802_3 +# 1803| r1803_1(glval) = VariableAddress[y] : +# 1803| m1803_2(CopyConstructorTestVirtualClass &) = InitializeParameter[y] : &:r1803_1 +# 1803| r1803_3(CopyConstructorTestVirtualClass &) = Load[y] : &:r1803_1, m1803_2 +# 1803| m1803_4(unknown) = InitializeIndirection[y] : &:r1803_3 +# 1804| r1804_1(glval) = VariableAddress[cx] : +# 1804| m1804_2(CopyConstructorTestNonVirtualClass) = Uninitialized[cx] : &:r1804_1 +# 1804| r1804_3(glval) = FunctionAddress[CopyConstructorTestNonVirtualClass] : +# 1804| r1804_4(glval) = VariableAddress[x] : +# 1804| r1804_5(CopyConstructorTestNonVirtualClass &) = Load[x] : &:r1804_4, m1802_2 +# 1804| r1804_6(glval) = CopyValue : r1804_5 +# 1804| r1804_7(CopyConstructorTestNonVirtualClass &) = CopyValue : r1804_6 +# 1804| v1804_8(void) = Call[CopyConstructorTestNonVirtualClass] : func:r1804_3, this:r1804_1, 0:r1804_7 +# 1804| m1804_9(unknown) = ^CallSideEffect : ~m1801_4 +# 1804| m1804_10(unknown) = Chi : total:m1801_4, partial:m1804_9 +# 1804| v1804_11(void) = ^BufferReadSideEffect[0] : &:r1804_7, ~m1802_4 +# 1804| m1804_12(CopyConstructorTestNonVirtualClass) = ^IndirectMayWriteSideEffect[-1] : &:r1804_1 +# 1804| m1804_13(CopyConstructorTestNonVirtualClass) = Chi : total:m1804_2, partial:m1804_12 +# 1805| r1805_1(glval) = VariableAddress[cy] : +# 1805| m1805_2(CopyConstructorTestVirtualClass) = Uninitialized[cy] : &:r1805_1 +# 1805| m1805_3(unknown) = Chi : total:m1804_10, partial:m1805_2 +# 1805| r1805_4(glval) = FunctionAddress[CopyConstructorTestVirtualClass] : +# 1805| r1805_5(glval) = VariableAddress[y] : +# 1805| r1805_6(CopyConstructorTestVirtualClass &) = Load[y] : &:r1805_5, m1803_2 +# 1805| r1805_7(glval) = CopyValue : r1805_6 +# 1805| r1805_8(CopyConstructorTestVirtualClass &) = CopyValue : r1805_7 +# 1805| v1805_9(void) = Call[CopyConstructorTestVirtualClass] : func:r1805_4, this:r1805_1, 0:r1805_8 +# 1805| m1805_10(unknown) = ^CallSideEffect : ~m1805_3 +# 1805| m1805_11(unknown) = Chi : total:m1805_3, partial:m1805_10 +# 1805| v1805_12(void) = ^BufferReadSideEffect[0] : &:r1805_8, ~m1803_4 +# 1805| m1805_13(CopyConstructorTestVirtualClass) = ^IndirectMayWriteSideEffect[-1] : &:r1805_1 +# 1805| m1805_14(unknown) = Chi : total:m1805_11, partial:m1805_13 +# 1806| r1806_1(glval) = VariableAddress[#return] : +# 1806| m1806_2(int) = Uninitialized[#return] : &:r1806_1 +# 1802| v1802_5(void) = ReturnIndirection[x] : &:r1802_3, m1802_4 +# 1803| v1803_5(void) = ReturnIndirection[y] : &:r1803_3, m1803_4 +# 1801| r1801_5(glval) = VariableAddress[#return] : +# 1801| v1801_6(void) = ReturnValue : &:r1801_5, m1806_2 +# 1801| v1801_7(void) = AliasedUse : ~m1805_11 +# 1801| v1801_8(void) = ExitFunction : + +# 1808| void if_initialization(int) +# 1808| Block 0 +# 1808| v1808_1(void) = EnterFunction : +# 1808| m1808_2(unknown) = AliasedDefinition : +# 1808| m1808_3(unknown) = InitializeNonLocal : +# 1808| m1808_4(unknown) = Chi : total:m1808_2, partial:m1808_3 +# 1808| r1808_5(glval) = VariableAddress[x] : +# 1808| m1808_6(int) = InitializeParameter[x] : &:r1808_5 +# 1809| r1809_1(glval) = VariableAddress[y] : +# 1809| r1809_2(glval) = VariableAddress[x] : +# 1809| r1809_3(int) = Load[x] : &:r1809_2, m1808_6 +# 1809| m1809_4(int) = Store[y] : &:r1809_1, r1809_3 +# 1809| r1809_5(glval) = VariableAddress[x] : +# 1809| r1809_6(int) = Load[x] : &:r1809_5, m1808_6 +# 1809| r1809_7(int) = Constant[1] : +# 1809| r1809_8(int) = Add : r1809_6, r1809_7 +# 1809| r1809_9(int) = Constant[0] : +# 1809| r1809_10(bool) = CompareNE : r1809_8, r1809_9 +# 1809| v1809_11(void) = ConditionalBranch : r1809_10 #-----| False -> Block 2 #-----| True -> Block 1 -# 1808| Block 1 -# 1808| r1808_1(glval) = VariableAddress[x] : -# 1808| r1808_2(int) = Load[x] : &:r1808_1, m1806_6 -# 1808| r1808_3(glval) = VariableAddress[y] : -# 1808| r1808_4(int) = Load[y] : &:r1808_3, m1807_4 -# 1808| r1808_5(int) = Add : r1808_2, r1808_4 -# 1808| r1808_6(glval) = VariableAddress[x] : -# 1808| m1808_7(int) = Store[x] : &:r1808_6, r1808_5 +# 1810| Block 1 +# 1810| r1810_1(glval) = VariableAddress[x] : +# 1810| r1810_2(int) = Load[x] : &:r1810_1, m1808_6 +# 1810| r1810_3(glval) = VariableAddress[y] : +# 1810| r1810_4(int) = Load[y] : &:r1810_3, m1809_4 +# 1810| r1810_5(int) = Add : r1810_2, r1810_4 +# 1810| r1810_6(glval) = VariableAddress[x] : +# 1810| m1810_7(int) = Store[x] : &:r1810_6, r1810_5 #-----| Goto -> Block 2 -# 1811| Block 2 -# 1811| m1811_1(int) = Phi : from 0:m1806_6, from 1:m1808_7 -# 1811| r1811_2(glval) = VariableAddress[w] : -# 1811| m1811_3(int) = Uninitialized[w] : &:r1811_2 -# 1812| r1812_1(glval) = VariableAddress[x] : -# 1812| r1812_2(int) = Load[x] : &:r1812_1, m1811_1 -# 1812| r1812_3(glval) = VariableAddress[w] : -# 1812| m1812_4(int) = Store[w] : &:r1812_3, r1812_2 -# 1812| r1812_5(glval) = VariableAddress[x] : -# 1812| r1812_6(int) = Load[x] : &:r1812_5, m1811_1 -# 1812| r1812_7(int) = Constant[1] : -# 1812| r1812_8(int) = Add : r1812_6, r1812_7 -# 1812| r1812_9(int) = Constant[0] : -# 1812| r1812_10(bool) = CompareNE : r1812_8, r1812_9 -# 1812| v1812_11(void) = ConditionalBranch : r1812_10 +# 1813| Block 2 +# 1813| m1813_1(int) = Phi : from 0:m1808_6, from 1:m1810_7 +# 1813| r1813_2(glval) = VariableAddress[w] : +# 1813| m1813_3(int) = Uninitialized[w] : &:r1813_2 +# 1814| r1814_1(glval) = VariableAddress[x] : +# 1814| r1814_2(int) = Load[x] : &:r1814_1, m1813_1 +# 1814| r1814_3(glval) = VariableAddress[w] : +# 1814| m1814_4(int) = Store[w] : &:r1814_3, r1814_2 +# 1814| r1814_5(glval) = VariableAddress[x] : +# 1814| r1814_6(int) = Load[x] : &:r1814_5, m1813_1 +# 1814| r1814_7(int) = Constant[1] : +# 1814| r1814_8(int) = Add : r1814_6, r1814_7 +# 1814| r1814_9(int) = Constant[0] : +# 1814| r1814_10(bool) = CompareNE : r1814_8, r1814_9 +# 1814| v1814_11(void) = ConditionalBranch : r1814_10 #-----| False -> Block 4 #-----| True -> Block 3 -# 1813| Block 3 -# 1813| r1813_1(glval) = VariableAddress[x] : -# 1813| r1813_2(int) = Load[x] : &:r1813_1, m1811_1 -# 1813| r1813_3(glval) = VariableAddress[w] : -# 1813| r1813_4(int) = Load[w] : &:r1813_3, m1812_4 -# 1813| r1813_5(int) = Add : r1813_2, r1813_4 -# 1813| r1813_6(glval) = VariableAddress[x] : -# 1813| m1813_7(int) = Store[x] : &:r1813_6, r1813_5 +# 1815| Block 3 +# 1815| r1815_1(glval) = VariableAddress[x] : +# 1815| r1815_2(int) = Load[x] : &:r1815_1, m1813_1 +# 1815| r1815_3(glval) = VariableAddress[w] : +# 1815| r1815_4(int) = Load[w] : &:r1815_3, m1814_4 +# 1815| r1815_5(int) = Add : r1815_2, r1815_4 +# 1815| r1815_6(glval) = VariableAddress[x] : +# 1815| m1815_7(int) = Store[x] : &:r1815_6, r1815_5 #-----| Goto -> Block 4 -# 1816| Block 4 -# 1816| m1816_1(int) = Phi : from 2:m1811_1, from 3:m1813_7 -# 1816| r1816_2(glval) = VariableAddress[x] : -# 1816| r1816_3(int) = Load[x] : &:r1816_2, m1816_1 -# 1816| r1816_4(glval) = VariableAddress[w] : -# 1816| m1816_5(int) = Store[w] : &:r1816_4, r1816_3 -# 1816| r1816_6(glval) = VariableAddress[w2] : -# 1816| r1816_7(glval) = VariableAddress[w] : -# 1816| r1816_8(int) = Load[w] : &:r1816_7, m1816_5 -# 1816| m1816_9(int) = Store[w2] : &:r1816_6, r1816_8 -# 1816| r1816_10(glval) = VariableAddress[w2] : -# 1816| r1816_11(int) = Load[w2] : &:r1816_10, m1816_9 -# 1816| r1816_12(int) = Constant[0] : -# 1816| r1816_13(bool) = CompareNE : r1816_11, r1816_12 -# 1816| r1816_14(bool) = CopyValue : r1816_13 -# 1816| v1816_15(void) = ConditionalBranch : r1816_14 +# 1818| Block 4 +# 1818| m1818_1(int) = Phi : from 2:m1813_1, from 3:m1815_7 +# 1818| r1818_2(glval) = VariableAddress[x] : +# 1818| r1818_3(int) = Load[x] : &:r1818_2, m1818_1 +# 1818| r1818_4(glval) = VariableAddress[w] : +# 1818| m1818_5(int) = Store[w] : &:r1818_4, r1818_3 +# 1818| r1818_6(glval) = VariableAddress[w2] : +# 1818| r1818_7(glval) = VariableAddress[w] : +# 1818| r1818_8(int) = Load[w] : &:r1818_7, m1818_5 +# 1818| m1818_9(int) = Store[w2] : &:r1818_6, r1818_8 +# 1818| r1818_10(glval) = VariableAddress[w2] : +# 1818| r1818_11(int) = Load[w2] : &:r1818_10, m1818_9 +# 1818| r1818_12(int) = Constant[0] : +# 1818| r1818_13(bool) = CompareNE : r1818_11, r1818_12 +# 1818| r1818_14(bool) = CopyValue : r1818_13 +# 1818| v1818_15(void) = ConditionalBranch : r1818_14 #-----| False -> Block 6 #-----| True -> Block 5 -# 1817| Block 5 -# 1817| r1817_1(glval) = VariableAddress[x] : -# 1817| r1817_2(int) = Load[x] : &:r1817_1, m1816_1 -# 1817| r1817_3(glval) = VariableAddress[w] : -# 1817| r1817_4(int) = Load[w] : &:r1817_3, m1816_5 -# 1817| r1817_5(int) = Add : r1817_2, r1817_4 -# 1817| r1817_6(glval) = VariableAddress[x] : -# 1817| m1817_7(int) = Store[x] : &:r1817_6, r1817_5 +# 1819| Block 5 +# 1819| r1819_1(glval) = VariableAddress[x] : +# 1819| r1819_2(int) = Load[x] : &:r1819_1, m1818_1 +# 1819| r1819_3(glval) = VariableAddress[w] : +# 1819| r1819_4(int) = Load[w] : &:r1819_3, m1818_5 +# 1819| r1819_5(int) = Add : r1819_2, r1819_4 +# 1819| r1819_6(glval) = VariableAddress[x] : +# 1819| m1819_7(int) = Store[x] : &:r1819_6, r1819_5 #-----| Goto -> Block 6 -# 1820| Block 6 -# 1820| m1820_1(int) = Phi : from 4:m1816_1, from 5:m1817_7 -# 1820| r1820_2(glval) = VariableAddress[v] : -# 1820| r1820_3(glval) = VariableAddress[x] : -# 1820| r1820_4(int) = Load[x] : &:r1820_3, m1820_1 -# 1820| m1820_5(int) = Store[v] : &:r1820_2, r1820_4 -# 1820| r1820_6(glval) = VariableAddress[v2] : -# 1820| r1820_7(glval) = VariableAddress[v] : -# 1820| r1820_8(int) = Load[v] : &:r1820_7, m1820_5 -# 1820| m1820_9(int) = Store[v2] : &:r1820_6, r1820_8 -# 1820| r1820_10(glval) = VariableAddress[v2] : -# 1820| r1820_11(int) = Load[v2] : &:r1820_10, m1820_9 -# 1820| r1820_12(int) = Constant[0] : -# 1820| r1820_13(bool) = CompareNE : r1820_11, r1820_12 -# 1820| r1820_14(bool) = CopyValue : r1820_13 -# 1820| v1820_15(void) = ConditionalBranch : r1820_14 +# 1822| Block 6 +# 1822| m1822_1(int) = Phi : from 4:m1818_1, from 5:m1819_7 +# 1822| r1822_2(glval) = VariableAddress[v] : +# 1822| r1822_3(glval) = VariableAddress[x] : +# 1822| r1822_4(int) = Load[x] : &:r1822_3, m1822_1 +# 1822| m1822_5(int) = Store[v] : &:r1822_2, r1822_4 +# 1822| r1822_6(glval) = VariableAddress[v2] : +# 1822| r1822_7(glval) = VariableAddress[v] : +# 1822| r1822_8(int) = Load[v] : &:r1822_7, m1822_5 +# 1822| m1822_9(int) = Store[v2] : &:r1822_6, r1822_8 +# 1822| r1822_10(glval) = VariableAddress[v2] : +# 1822| r1822_11(int) = Load[v2] : &:r1822_10, m1822_9 +# 1822| r1822_12(int) = Constant[0] : +# 1822| r1822_13(bool) = CompareNE : r1822_11, r1822_12 +# 1822| r1822_14(bool) = CopyValue : r1822_13 +# 1822| v1822_15(void) = ConditionalBranch : r1822_14 #-----| False -> Block 8 #-----| True -> Block 7 -# 1821| Block 7 -# 1821| r1821_1(glval) = VariableAddress[x] : -# 1821| r1821_2(int) = Load[x] : &:r1821_1, m1820_1 -# 1821| r1821_3(glval) = VariableAddress[v] : -# 1821| r1821_4(int) = Load[v] : &:r1821_3, m1820_5 -# 1821| r1821_5(int) = Add : r1821_2, r1821_4 -# 1821| r1821_6(glval) = VariableAddress[x] : -# 1821| m1821_7(int) = Store[x] : &:r1821_6, r1821_5 +# 1823| Block 7 +# 1823| r1823_1(glval) = VariableAddress[x] : +# 1823| r1823_2(int) = Load[x] : &:r1823_1, m1822_1 +# 1823| r1823_3(glval) = VariableAddress[v] : +# 1823| r1823_4(int) = Load[v] : &:r1823_3, m1822_5 +# 1823| r1823_5(int) = Add : r1823_2, r1823_4 +# 1823| r1823_6(glval) = VariableAddress[x] : +# 1823| m1823_7(int) = Store[x] : &:r1823_6, r1823_5 #-----| Goto -> Block 8 -# 1824| Block 8 -# 1824| m1824_1(int) = Phi : from 6:m1820_1, from 7:m1821_7 -# 1824| r1824_2(glval) = VariableAddress[z] : -# 1824| r1824_3(glval) = VariableAddress[x] : -# 1824| r1824_4(int) = Load[x] : &:r1824_3, m1824_1 -# 1824| m1824_5(int) = Store[z] : &:r1824_2, r1824_4 -# 1825| r1825_1(glval) = VariableAddress[z] : -# 1825| r1825_2(int) = Load[z] : &:r1825_1, m1824_5 -# 1825| r1825_3(int) = Constant[0] : -# 1825| r1825_4(bool) = CompareNE : r1825_2, r1825_3 -# 1825| v1825_5(void) = ConditionalBranch : r1825_4 +# 1826| Block 8 +# 1826| m1826_1(int) = Phi : from 6:m1822_1, from 7:m1823_7 +# 1826| r1826_2(glval) = VariableAddress[z] : +# 1826| r1826_3(glval) = VariableAddress[x] : +# 1826| r1826_4(int) = Load[x] : &:r1826_3, m1826_1 +# 1826| m1826_5(int) = Store[z] : &:r1826_2, r1826_4 +# 1827| r1827_1(glval) = VariableAddress[z] : +# 1827| r1827_2(int) = Load[z] : &:r1827_1, m1826_5 +# 1827| r1827_3(int) = Constant[0] : +# 1827| r1827_4(bool) = CompareNE : r1827_2, r1827_3 +# 1827| v1827_5(void) = ConditionalBranch : r1827_4 #-----| False -> Block 10 #-----| True -> Block 9 -# 1826| Block 9 -# 1826| r1826_1(glval) = VariableAddress[x] : -# 1826| r1826_2(int) = Load[x] : &:r1826_1, m1824_1 -# 1826| r1826_3(glval) = VariableAddress[z] : -# 1826| r1826_4(int) = Load[z] : &:r1826_3, m1824_5 -# 1826| r1826_5(int) = Add : r1826_2, r1826_4 -# 1826| r1826_6(glval) = VariableAddress[x] : -# 1826| m1826_7(int) = Store[x] : &:r1826_6, r1826_5 +# 1828| Block 9 +# 1828| r1828_1(glval) = VariableAddress[x] : +# 1828| r1828_2(int) = Load[x] : &:r1828_1, m1826_1 +# 1828| r1828_3(glval) = VariableAddress[z] : +# 1828| r1828_4(int) = Load[z] : &:r1828_3, m1826_5 +# 1828| r1828_5(int) = Add : r1828_2, r1828_4 +# 1828| r1828_6(glval) = VariableAddress[x] : +# 1828| m1828_7(int) = Store[x] : &:r1828_6, r1828_5 #-----| Goto -> Block 10 -# 1829| Block 10 -# 1829| m1829_1(int) = Phi : from 8:m1824_1, from 9:m1826_7 -# 1829| r1829_2(glval) = VariableAddress[z2] : -# 1829| r1829_3(glval) = VariableAddress[z] : -# 1829| r1829_4(int) = Load[z] : &:r1829_3, m1824_5 -# 1829| m1829_5(int) = Store[z2] : &:r1829_2, r1829_4 -# 1829| r1829_6(glval) = VariableAddress[z2] : -# 1829| r1829_7(int) = Load[z2] : &:r1829_6, m1829_5 -# 1829| r1829_8(int) = Constant[0] : -# 1829| r1829_9(bool) = CompareNE : r1829_7, r1829_8 -# 1829| r1829_10(bool) = CopyValue : r1829_9 -# 1829| v1829_11(void) = ConditionalBranch : r1829_10 +# 1831| Block 10 +# 1831| m1831_1(int) = Phi : from 8:m1826_1, from 9:m1828_7 +# 1831| r1831_2(glval) = VariableAddress[z2] : +# 1831| r1831_3(glval) = VariableAddress[z] : +# 1831| r1831_4(int) = Load[z] : &:r1831_3, m1826_5 +# 1831| m1831_5(int) = Store[z2] : &:r1831_2, r1831_4 +# 1831| r1831_6(glval) = VariableAddress[z2] : +# 1831| r1831_7(int) = Load[z2] : &:r1831_6, m1831_5 +# 1831| r1831_8(int) = Constant[0] : +# 1831| r1831_9(bool) = CompareNE : r1831_7, r1831_8 +# 1831| r1831_10(bool) = CopyValue : r1831_9 +# 1831| v1831_11(void) = ConditionalBranch : r1831_10 #-----| False -> Block 12 #-----| True -> Block 11 -# 1830| Block 11 -# 1830| r1830_1(glval) = VariableAddress[z2] : -# 1830| r1830_2(int) = Load[z2] : &:r1830_1, m1829_5 -# 1830| r1830_3(glval) = VariableAddress[x] : -# 1830| r1830_4(int) = Load[x] : &:r1830_3, m1829_1 -# 1830| r1830_5(int) = Add : r1830_4, r1830_2 -# 1830| m1830_6(int) = Store[x] : &:r1830_3, r1830_5 +# 1832| Block 11 +# 1832| r1832_1(glval) = VariableAddress[z2] : +# 1832| r1832_2(int) = Load[z2] : &:r1832_1, m1831_5 +# 1832| r1832_3(glval) = VariableAddress[x] : +# 1832| r1832_4(int) = Load[x] : &:r1832_3, m1831_1 +# 1832| r1832_5(int) = Add : r1832_4, r1832_2 +# 1832| m1832_6(int) = Store[x] : &:r1832_3, r1832_5 #-----| Goto -> Block 12 -# 1832| Block 12 -# 1832| v1832_1(void) = NoOp : -# 1806| v1806_7(void) = ReturnVoid : -# 1806| v1806_8(void) = AliasedUse : m1806_3 -# 1806| v1806_9(void) = ExitFunction : - -# 1834| void switch_initialization(int) -# 1834| Block 0 -# 1834| v1834_1(void) = EnterFunction : -# 1834| m1834_2(unknown) = AliasedDefinition : -# 1834| m1834_3(unknown) = InitializeNonLocal : -# 1834| m1834_4(unknown) = Chi : total:m1834_2, partial:m1834_3 -# 1834| r1834_5(glval) = VariableAddress[x] : -# 1834| m1834_6(int) = InitializeParameter[x] : &:r1834_5 -# 1835| r1835_1(glval) = VariableAddress[y] : -# 1835| r1835_2(glval) = VariableAddress[x] : -# 1835| r1835_3(int) = Load[x] : &:r1835_2, m1834_6 -# 1835| m1835_4(int) = Store[y] : &:r1835_1, r1835_3 -# 1835| r1835_5(glval) = VariableAddress[x] : -# 1835| r1835_6(int) = Load[x] : &:r1835_5, m1834_6 -# 1835| r1835_7(int) = Constant[1] : -# 1835| r1835_8(int) = Add : r1835_6, r1835_7 -# 1835| v1835_9(void) = Switch : r1835_8 +# 1834| Block 12 +# 1834| v1834_1(void) = NoOp : +# 1808| v1808_7(void) = ReturnVoid : +# 1808| v1808_8(void) = AliasedUse : m1808_3 +# 1808| v1808_9(void) = ExitFunction : + +# 1836| void switch_initialization(int) +# 1836| Block 0 +# 1836| v1836_1(void) = EnterFunction : +# 1836| m1836_2(unknown) = AliasedDefinition : +# 1836| m1836_3(unknown) = InitializeNonLocal : +# 1836| m1836_4(unknown) = Chi : total:m1836_2, partial:m1836_3 +# 1836| r1836_5(glval) = VariableAddress[x] : +# 1836| m1836_6(int) = InitializeParameter[x] : &:r1836_5 +# 1837| r1837_1(glval) = VariableAddress[y] : +# 1837| r1837_2(glval) = VariableAddress[x] : +# 1837| r1837_3(int) = Load[x] : &:r1837_2, m1836_6 +# 1837| m1837_4(int) = Store[y] : &:r1837_1, r1837_3 +# 1837| r1837_5(glval) = VariableAddress[x] : +# 1837| r1837_6(int) = Load[x] : &:r1837_5, m1836_6 +# 1837| r1837_7(int) = Constant[1] : +# 1837| r1837_8(int) = Add : r1837_6, r1837_7 +# 1837| v1837_9(void) = Switch : r1837_8 #-----| Default -> Block 1 -# 1836| Block 1 -# 1836| v1836_1(void) = NoOp : -# 1837| r1837_1(glval) = VariableAddress[x] : -# 1837| r1837_2(int) = Load[x] : &:r1837_1, m1834_6 -# 1837| r1837_3(glval) = VariableAddress[y] : -# 1837| r1837_4(int) = Load[y] : &:r1837_3, m1835_4 -# 1837| r1837_5(int) = Add : r1837_2, r1837_4 -# 1837| r1837_6(glval) = VariableAddress[x] : -# 1837| m1837_7(int) = Store[x] : &:r1837_6, r1837_5 -# 1840| r1840_1(glval) = VariableAddress[w] : -# 1840| m1840_2(int) = Uninitialized[w] : &:r1840_1 -# 1841| r1841_1(glval) = VariableAddress[x] : -# 1841| r1841_2(int) = Load[x] : &:r1841_1, m1837_7 -# 1841| r1841_3(glval) = VariableAddress[w] : -# 1841| m1841_4(int) = Store[w] : &:r1841_3, r1841_2 -# 1841| r1841_5(glval) = VariableAddress[x] : -# 1841| r1841_6(int) = Load[x] : &:r1841_5, m1837_7 -# 1841| r1841_7(int) = Constant[1] : -# 1841| r1841_8(int) = Add : r1841_6, r1841_7 -# 1841| v1841_9(void) = Switch : r1841_8 +# 1838| Block 1 +# 1838| v1838_1(void) = NoOp : +# 1839| r1839_1(glval) = VariableAddress[x] : +# 1839| r1839_2(int) = Load[x] : &:r1839_1, m1836_6 +# 1839| r1839_3(glval) = VariableAddress[y] : +# 1839| r1839_4(int) = Load[y] : &:r1839_3, m1837_4 +# 1839| r1839_5(int) = Add : r1839_2, r1839_4 +# 1839| r1839_6(glval) = VariableAddress[x] : +# 1839| m1839_7(int) = Store[x] : &:r1839_6, r1839_5 +# 1842| r1842_1(glval) = VariableAddress[w] : +# 1842| m1842_2(int) = Uninitialized[w] : &:r1842_1 +# 1843| r1843_1(glval) = VariableAddress[x] : +# 1843| r1843_2(int) = Load[x] : &:r1843_1, m1839_7 +# 1843| r1843_3(glval) = VariableAddress[w] : +# 1843| m1843_4(int) = Store[w] : &:r1843_3, r1843_2 +# 1843| r1843_5(glval) = VariableAddress[x] : +# 1843| r1843_6(int) = Load[x] : &:r1843_5, m1839_7 +# 1843| r1843_7(int) = Constant[1] : +# 1843| r1843_8(int) = Add : r1843_6, r1843_7 +# 1843| v1843_9(void) = Switch : r1843_8 #-----| Default -> Block 2 -# 1842| Block 2 -# 1842| v1842_1(void) = NoOp : -# 1843| r1843_1(glval) = VariableAddress[x] : -# 1843| r1843_2(int) = Load[x] : &:r1843_1, m1837_7 -# 1843| r1843_3(glval) = VariableAddress[w] : -# 1843| r1843_4(int) = Load[w] : &:r1843_3, m1841_4 -# 1843| r1843_5(int) = Add : r1843_2, r1843_4 -# 1843| r1843_6(glval) = VariableAddress[x] : -# 1843| m1843_7(int) = Store[x] : &:r1843_6, r1843_5 -# 1846| r1846_1(glval) = VariableAddress[x] : -# 1846| r1846_2(int) = Load[x] : &:r1846_1, m1843_7 -# 1846| r1846_3(glval) = VariableAddress[w] : -# 1846| m1846_4(int) = Store[w] : &:r1846_3, r1846_2 -# 1846| r1846_5(glval) = VariableAddress[w2] : -# 1846| r1846_6(glval) = VariableAddress[w] : -# 1846| r1846_7(int) = Load[w] : &:r1846_6, m1846_4 -# 1846| m1846_8(int) = Store[w2] : &:r1846_5, r1846_7 -# 1846| r1846_9(glval) = VariableAddress[w2] : -# 1846| r1846_10(int) = Load[w2] : &:r1846_9, m1846_8 -# 1846| r1846_11(int) = CopyValue : r1846_10 -# 1846| v1846_12(void) = Switch : r1846_11 -#-----| Default -> Block 3 - -# 1847| Block 3 -# 1847| v1847_1(void) = NoOp : +# 1844| Block 2 +# 1844| v1844_1(void) = NoOp : +# 1845| r1845_1(glval) = VariableAddress[x] : +# 1845| r1845_2(int) = Load[x] : &:r1845_1, m1839_7 +# 1845| r1845_3(glval) = VariableAddress[w] : +# 1845| r1845_4(int) = Load[w] : &:r1845_3, m1843_4 +# 1845| r1845_5(int) = Add : r1845_2, r1845_4 +# 1845| r1845_6(glval) = VariableAddress[x] : +# 1845| m1845_7(int) = Store[x] : &:r1845_6, r1845_5 # 1848| r1848_1(glval) = VariableAddress[x] : -# 1848| r1848_2(int) = Load[x] : &:r1848_1, m1843_7 +# 1848| r1848_2(int) = Load[x] : &:r1848_1, m1845_7 # 1848| r1848_3(glval) = VariableAddress[w] : -# 1848| r1848_4(int) = Load[w] : &:r1848_3, m1846_4 -# 1848| r1848_5(int) = Add : r1848_2, r1848_4 -# 1848| r1848_6(glval) = VariableAddress[x] : -# 1848| m1848_7(int) = Store[x] : &:r1848_6, r1848_5 -# 1851| r1851_1(glval) = VariableAddress[v] : -# 1851| r1851_2(glval) = VariableAddress[x] : -# 1851| r1851_3(int) = Load[x] : &:r1851_2, m1848_7 -# 1851| m1851_4(int) = Store[v] : &:r1851_1, r1851_3 -# 1851| r1851_5(glval) = VariableAddress[v2] : -# 1851| r1851_6(glval) = VariableAddress[v] : -# 1851| r1851_7(int) = Load[v] : &:r1851_6, m1851_4 -# 1851| m1851_8(int) = Store[v2] : &:r1851_5, r1851_7 -# 1851| r1851_9(glval) = VariableAddress[v2] : -# 1851| r1851_10(int) = Load[v2] : &:r1851_9, m1851_8 -# 1851| r1851_11(int) = CopyValue : r1851_10 -# 1851| v1851_12(void) = Switch : r1851_11 +# 1848| m1848_4(int) = Store[w] : &:r1848_3, r1848_2 +# 1848| r1848_5(glval) = VariableAddress[w2] : +# 1848| r1848_6(glval) = VariableAddress[w] : +# 1848| r1848_7(int) = Load[w] : &:r1848_6, m1848_4 +# 1848| m1848_8(int) = Store[w2] : &:r1848_5, r1848_7 +# 1848| r1848_9(glval) = VariableAddress[w2] : +# 1848| r1848_10(int) = Load[w2] : &:r1848_9, m1848_8 +# 1848| r1848_11(int) = CopyValue : r1848_10 +# 1848| v1848_12(void) = Switch : r1848_11 +#-----| Default -> Block 3 + +# 1849| Block 3 +# 1849| v1849_1(void) = NoOp : +# 1850| r1850_1(glval) = VariableAddress[x] : +# 1850| r1850_2(int) = Load[x] : &:r1850_1, m1845_7 +# 1850| r1850_3(glval) = VariableAddress[w] : +# 1850| r1850_4(int) = Load[w] : &:r1850_3, m1848_4 +# 1850| r1850_5(int) = Add : r1850_2, r1850_4 +# 1850| r1850_6(glval) = VariableAddress[x] : +# 1850| m1850_7(int) = Store[x] : &:r1850_6, r1850_5 +# 1853| r1853_1(glval) = VariableAddress[v] : +# 1853| r1853_2(glval) = VariableAddress[x] : +# 1853| r1853_3(int) = Load[x] : &:r1853_2, m1850_7 +# 1853| m1853_4(int) = Store[v] : &:r1853_1, r1853_3 +# 1853| r1853_5(glval) = VariableAddress[v2] : +# 1853| r1853_6(glval) = VariableAddress[v] : +# 1853| r1853_7(int) = Load[v] : &:r1853_6, m1853_4 +# 1853| m1853_8(int) = Store[v2] : &:r1853_5, r1853_7 +# 1853| r1853_9(glval) = VariableAddress[v2] : +# 1853| r1853_10(int) = Load[v2] : &:r1853_9, m1853_8 +# 1853| r1853_11(int) = CopyValue : r1853_10 +# 1853| v1853_12(void) = Switch : r1853_11 #-----| Default -> Block 4 -# 1852| Block 4 -# 1852| v1852_1(void) = NoOp : -# 1853| r1853_1(glval) = VariableAddress[x] : -# 1853| r1853_2(int) = Load[x] : &:r1853_1, m1848_7 -# 1853| r1853_3(glval) = VariableAddress[v] : -# 1853| r1853_4(int) = Load[v] : &:r1853_3, m1851_4 -# 1853| r1853_5(int) = Add : r1853_2, r1853_4 -# 1853| r1853_6(glval) = VariableAddress[x] : -# 1853| m1853_7(int) = Store[x] : &:r1853_6, r1853_5 -# 1856| r1856_1(glval) = VariableAddress[z] : -# 1856| r1856_2(glval) = VariableAddress[x] : -# 1856| r1856_3(int) = Load[x] : &:r1856_2, m1853_7 -# 1856| m1856_4(int) = Store[z] : &:r1856_1, r1856_3 -# 1857| r1857_1(glval) = VariableAddress[z] : -# 1857| r1857_2(int) = Load[z] : &:r1857_1, m1856_4 -# 1857| v1857_3(void) = Switch : r1857_2 +# 1854| Block 4 +# 1854| v1854_1(void) = NoOp : +# 1855| r1855_1(glval) = VariableAddress[x] : +# 1855| r1855_2(int) = Load[x] : &:r1855_1, m1850_7 +# 1855| r1855_3(glval) = VariableAddress[v] : +# 1855| r1855_4(int) = Load[v] : &:r1855_3, m1853_4 +# 1855| r1855_5(int) = Add : r1855_2, r1855_4 +# 1855| r1855_6(glval) = VariableAddress[x] : +# 1855| m1855_7(int) = Store[x] : &:r1855_6, r1855_5 +# 1858| r1858_1(glval) = VariableAddress[z] : +# 1858| r1858_2(glval) = VariableAddress[x] : +# 1858| r1858_3(int) = Load[x] : &:r1858_2, m1855_7 +# 1858| m1858_4(int) = Store[z] : &:r1858_1, r1858_3 +# 1859| r1859_1(glval) = VariableAddress[z] : +# 1859| r1859_2(int) = Load[z] : &:r1859_1, m1858_4 +# 1859| v1859_3(void) = Switch : r1859_2 #-----| Default -> Block 5 -# 1858| Block 5 -# 1858| v1858_1(void) = NoOp : -# 1859| r1859_1(glval) = VariableAddress[x] : -# 1859| r1859_2(int) = Load[x] : &:r1859_1, m1853_7 -# 1859| r1859_3(glval) = VariableAddress[z] : -# 1859| r1859_4(int) = Load[z] : &:r1859_3, m1856_4 -# 1859| r1859_5(int) = Add : r1859_2, r1859_4 -# 1859| r1859_6(glval) = VariableAddress[x] : -# 1859| m1859_7(int) = Store[x] : &:r1859_6, r1859_5 -# 1862| r1862_1(glval) = VariableAddress[z2] : -# 1862| r1862_2(glval) = VariableAddress[z] : -# 1862| r1862_3(int) = Load[z] : &:r1862_2, m1856_4 -# 1862| m1862_4(int) = Store[z2] : &:r1862_1, r1862_3 -# 1862| r1862_5(glval) = VariableAddress[z2] : -# 1862| r1862_6(int) = Load[z2] : &:r1862_5, m1862_4 -# 1862| r1862_7(int) = CopyValue : r1862_6 -# 1862| v1862_8(void) = Switch : r1862_7 +# 1860| Block 5 +# 1860| v1860_1(void) = NoOp : +# 1861| r1861_1(glval) = VariableAddress[x] : +# 1861| r1861_2(int) = Load[x] : &:r1861_1, m1855_7 +# 1861| r1861_3(glval) = VariableAddress[z] : +# 1861| r1861_4(int) = Load[z] : &:r1861_3, m1858_4 +# 1861| r1861_5(int) = Add : r1861_2, r1861_4 +# 1861| r1861_6(glval) = VariableAddress[x] : +# 1861| m1861_7(int) = Store[x] : &:r1861_6, r1861_5 +# 1864| r1864_1(glval) = VariableAddress[z2] : +# 1864| r1864_2(glval) = VariableAddress[z] : +# 1864| r1864_3(int) = Load[z] : &:r1864_2, m1858_4 +# 1864| m1864_4(int) = Store[z2] : &:r1864_1, r1864_3 +# 1864| r1864_5(glval) = VariableAddress[z2] : +# 1864| r1864_6(int) = Load[z2] : &:r1864_5, m1864_4 +# 1864| r1864_7(int) = CopyValue : r1864_6 +# 1864| v1864_8(void) = Switch : r1864_7 #-----| Default -> Block 6 -# 1863| Block 6 -# 1863| v1863_1(void) = NoOp : -# 1864| r1864_1(glval) = VariableAddress[z2] : -# 1864| r1864_2(int) = Load[z2] : &:r1864_1, m1862_4 -# 1864| r1864_3(glval) = VariableAddress[x] : -# 1864| r1864_4(int) = Load[x] : &:r1864_3, m1859_7 -# 1864| r1864_5(int) = Add : r1864_4, r1864_2 -# 1864| m1864_6(int) = Store[x] : &:r1864_3, r1864_5 -# 1866| v1866_1(void) = NoOp : -# 1834| v1834_7(void) = ReturnVoid : -# 1834| v1834_8(void) = AliasedUse : m1834_3 -# 1834| v1834_9(void) = ExitFunction : - -# 1870| int global_2 -# 1870| Block 0 -# 1870| v1870_1(void) = EnterFunction : -# 1870| m1870_2(unknown) = AliasedDefinition : -# 1870| r1870_3(glval) = VariableAddress[global_2] : -# 1870| r1870_4(int) = Constant[1] : -# 1870| m1870_5(int) = Store[global_2] : &:r1870_3, r1870_4 -# 1870| m1870_6(unknown) = Chi : total:m1870_2, partial:m1870_5 -# 1870| v1870_7(void) = ReturnVoid : -# 1870| v1870_8(void) = AliasedUse : ~m1870_6 -# 1870| v1870_9(void) = ExitFunction : - -# 1874| constructor_only global_4 -# 1874| Block 0 -# 1874| v1874_1(void) = EnterFunction : -# 1874| m1874_2(unknown) = AliasedDefinition : -# 1874| r1874_3(glval) = VariableAddress[global_4] : -# 1874| r1874_4(glval) = FunctionAddress[constructor_only] : -# 1874| r1874_5(int) = Constant[1] : -# 1874| v1874_6(void) = Call[constructor_only] : func:r1874_4, this:r1874_3, 0:r1874_5 -# 1874| m1874_7(unknown) = ^CallSideEffect : ~m1874_2 -# 1874| m1874_8(unknown) = Chi : total:m1874_2, partial:m1874_7 -# 1874| m1874_9(constructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1874_3 -# 1874| m1874_10(unknown) = Chi : total:m1874_8, partial:m1874_9 -# 1874| v1874_11(void) = ReturnVoid : -# 1874| v1874_12(void) = AliasedUse : ~m1874_10 -# 1874| v1874_13(void) = ExitFunction : - -# 1876| constructor_only global_5 +# 1865| Block 6 +# 1865| v1865_1(void) = NoOp : +# 1866| r1866_1(glval) = VariableAddress[z2] : +# 1866| r1866_2(int) = Load[z2] : &:r1866_1, m1864_4 +# 1866| r1866_3(glval) = VariableAddress[x] : +# 1866| r1866_4(int) = Load[x] : &:r1866_3, m1861_7 +# 1866| r1866_5(int) = Add : r1866_4, r1866_2 +# 1866| m1866_6(int) = Store[x] : &:r1866_3, r1866_5 +# 1868| v1868_1(void) = NoOp : +# 1836| v1836_7(void) = ReturnVoid : +# 1836| v1836_8(void) = AliasedUse : m1836_3 +# 1836| v1836_9(void) = ExitFunction : + +# 1872| int global_2 +# 1872| Block 0 +# 1872| v1872_1(void) = EnterFunction : +# 1872| m1872_2(unknown) = AliasedDefinition : +# 1872| r1872_3(glval) = VariableAddress[global_2] : +# 1872| r1872_4(int) = Constant[1] : +# 1872| m1872_5(int) = Store[global_2] : &:r1872_3, r1872_4 +# 1872| m1872_6(unknown) = Chi : total:m1872_2, partial:m1872_5 +# 1872| v1872_7(void) = ReturnVoid : +# 1872| v1872_8(void) = AliasedUse : ~m1872_6 +# 1872| v1872_9(void) = ExitFunction : + +# 1876| constructor_only global_4 # 1876| Block 0 # 1876| v1876_1(void) = EnterFunction : # 1876| m1876_2(unknown) = AliasedDefinition : -# 1876| r1876_3(glval) = VariableAddress[global_5] : +# 1876| r1876_3(glval) = VariableAddress[global_4] : # 1876| r1876_4(glval) = FunctionAddress[constructor_only] : -# 1876| r1876_5(int) = Constant[2] : +# 1876| r1876_5(int) = Constant[1] : # 1876| v1876_6(void) = Call[constructor_only] : func:r1876_4, this:r1876_3, 0:r1876_5 # 1876| m1876_7(unknown) = ^CallSideEffect : ~m1876_2 # 1876| m1876_8(unknown) = Chi : total:m1876_2, partial:m1876_7 @@ -14154,49 +14208,65 @@ ir.cpp: # 1876| v1876_12(void) = AliasedUse : ~m1876_10 # 1876| v1876_13(void) = ExitFunction : -# 1878| char* global_string +# 1878| constructor_only global_5 # 1878| Block 0 -# 1878| v1878_1(void) = EnterFunction : -# 1878| m1878_2(unknown) = AliasedDefinition : -# 1878| r1878_3(glval) = VariableAddress[global_string] : -# 1878| r1878_4(glval) = StringConstant["global string"] : -# 1878| r1878_5(char *) = Convert : r1878_4 -# 1878| r1878_6(char *) = Convert : r1878_5 -# 1878| m1878_7(char *) = Store[global_string] : &:r1878_3, r1878_6 -# 1878| m1878_8(unknown) = Chi : total:m1878_2, partial:m1878_7 -# 1878| v1878_9(void) = ReturnVoid : -# 1878| v1878_10(void) = AliasedUse : ~m1878_8 -# 1878| v1878_11(void) = ExitFunction : - -# 1880| int global_6 +# 1878| v1878_1(void) = EnterFunction : +# 1878| m1878_2(unknown) = AliasedDefinition : +# 1878| r1878_3(glval) = VariableAddress[global_5] : +# 1878| r1878_4(glval) = FunctionAddress[constructor_only] : +# 1878| r1878_5(int) = Constant[2] : +# 1878| v1878_6(void) = Call[constructor_only] : func:r1878_4, this:r1878_3, 0:r1878_5 +# 1878| m1878_7(unknown) = ^CallSideEffect : ~m1878_2 +# 1878| m1878_8(unknown) = Chi : total:m1878_2, partial:m1878_7 +# 1878| m1878_9(constructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1878_3 +# 1878| m1878_10(unknown) = Chi : total:m1878_8, partial:m1878_9 +# 1878| v1878_11(void) = ReturnVoid : +# 1878| v1878_12(void) = AliasedUse : ~m1878_10 +# 1878| v1878_13(void) = ExitFunction : + +# 1880| char* global_string # 1880| Block 0 -# 1880| v1880_1(void) = EnterFunction : -# 1880| m1880_2(unknown) = AliasedDefinition : -# 1880| r1880_3(glval) = VariableAddress[global_6] : -# 1880| r1880_4(glval) = VariableAddress[global_2] : -# 1880| r1880_5(int) = Load[global_2] : &:r1880_4, ~m1880_2 -# 1880| m1880_6(int) = Store[global_6] : &:r1880_3, r1880_5 -# 1880| m1880_7(unknown) = Chi : total:m1880_2, partial:m1880_6 -# 1880| v1880_8(void) = ReturnVoid : -# 1880| v1880_9(void) = AliasedUse : ~m1880_7 -# 1880| v1880_10(void) = ExitFunction : - -# 1883| block_assignment::A& block_assignment::A::operator=(block_assignment::A&&) -# 1883| Block 0 -# 1883| v1883_1(void) = EnterFunction : -# 1883| m1883_2(unknown) = AliasedDefinition : -# 1883| m1883_3(unknown) = InitializeNonLocal : -# 1883| m1883_4(unknown) = Chi : total:m1883_2, partial:m1883_3 -# 1883| r1883_5(glval) = VariableAddress[#this] : -# 1883| m1883_6(glval) = InitializeParameter[#this] : &:r1883_5 -# 1883| r1883_7(glval) = Load[#this] : &:r1883_5, m1883_6 -# 1883| m1883_8(A) = InitializeIndirection[#this] : &:r1883_7 +# 1880| v1880_1(void) = EnterFunction : +# 1880| m1880_2(unknown) = AliasedDefinition : +# 1880| r1880_3(glval) = VariableAddress[global_string] : +# 1880| r1880_4(glval) = StringConstant["global string"] : +# 1880| r1880_5(char *) = Convert : r1880_4 +# 1880| r1880_6(char *) = Convert : r1880_5 +# 1880| m1880_7(char *) = Store[global_string] : &:r1880_3, r1880_6 +# 1880| m1880_8(unknown) = Chi : total:m1880_2, partial:m1880_7 +# 1880| v1880_9(void) = ReturnVoid : +# 1880| v1880_10(void) = AliasedUse : ~m1880_8 +# 1880| v1880_11(void) = ExitFunction : + +# 1882| int global_6 +# 1882| Block 0 +# 1882| v1882_1(void) = EnterFunction : +# 1882| m1882_2(unknown) = AliasedDefinition : +# 1882| r1882_3(glval) = VariableAddress[global_6] : +# 1882| r1882_4(glval) = VariableAddress[global_2] : +# 1882| r1882_5(int) = Load[global_2] : &:r1882_4, ~m1882_2 +# 1882| m1882_6(int) = Store[global_6] : &:r1882_3, r1882_5 +# 1882| m1882_7(unknown) = Chi : total:m1882_2, partial:m1882_6 +# 1882| v1882_8(void) = ReturnVoid : +# 1882| v1882_9(void) = AliasedUse : ~m1882_7 +# 1882| v1882_10(void) = ExitFunction : + +# 1885| block_assignment::A& block_assignment::A::operator=(block_assignment::A&&) +# 1885| Block 0 +# 1885| v1885_1(void) = EnterFunction : +# 1885| m1885_2(unknown) = AliasedDefinition : +# 1885| m1885_3(unknown) = InitializeNonLocal : +# 1885| m1885_4(unknown) = Chi : total:m1885_2, partial:m1885_3 +# 1885| r1885_5(glval) = VariableAddress[#this] : +# 1885| m1885_6(glval) = InitializeParameter[#this] : &:r1885_5 +# 1885| r1885_7(glval) = Load[#this] : &:r1885_5, m1885_6 +# 1885| m1885_8(A) = InitializeIndirection[#this] : &:r1885_7 #-----| r0_1(glval) = VariableAddress[(unnamed parameter 0)] : #-----| m0_2(A &&) = InitializeParameter[(unnamed parameter 0)] : &:r0_1 #-----| r0_3(A &&) = Load[(unnamed parameter 0)] : &:r0_1, m0_2 #-----| m0_4(unknown) = InitializeIndirection[(unnamed parameter 0)] : &:r0_3 #-----| r0_5(glval) = VariableAddress[#this] : -#-----| r0_6(A *) = Load[#this] : &:r0_5, m1883_6 +#-----| r0_6(A *) = Load[#this] : &:r0_5, m1885_6 #-----| r0_7(glval[1]>) = FieldAddress[e] : r0_6 #-----| r0_8(glval) = VariableAddress[(unnamed parameter 0)] : #-----| r0_9(A &&) = Load[(unnamed parameter 0)] : &:r0_8, m0_2 @@ -14204,3285 +14274,3265 @@ ir.cpp: #-----| r0_11(glval[1]>) = FieldAddress[e] : r0_10 #-----| r0_12(enum [1]) = Load[?] : &:r0_11, ~m0_4 #-----| m0_13(enum [1]) = Store[?] : &:r0_7, r0_12 -#-----| m0_14(unknown) = Chi : total:m1883_8, partial:m0_13 +#-----| m0_14(unknown) = Chi : total:m1885_8, partial:m0_13 #-----| r0_15(glval) = VariableAddress[#return] : #-----| r0_16(glval) = VariableAddress[#this] : -#-----| r0_17(A *) = Load[#this] : &:r0_16, m1883_6 +#-----| r0_17(A *) = Load[#this] : &:r0_16, m1885_6 #-----| r0_18(glval) = CopyValue : r0_17 #-----| r0_19(A &) = CopyValue : r0_18 #-----| m0_20(A &) = Store[#return] : &:r0_15, r0_19 -# 1883| v1883_9(void) = ReturnIndirection[#this] : &:r1883_7, m0_14 +# 1885| v1885_9(void) = ReturnIndirection[#this] : &:r1885_7, m0_14 #-----| v0_21(void) = ReturnIndirection[(unnamed parameter 0)] : &:r0_3, m0_4 -# 1883| r1883_10(glval) = VariableAddress[#return] : -# 1883| v1883_11(void) = ReturnValue : &:r1883_10, m0_20 -# 1883| v1883_12(void) = AliasedUse : m1883_3 -# 1883| v1883_13(void) = ExitFunction : - -# 1888| block_assignment::B& block_assignment::B::operator=(block_assignment::B&&) -# 1888| Block 0 -# 1888| v1888_1(void) = EnterFunction : -# 1888| m1888_2(unknown) = AliasedDefinition : -# 1888| m1888_3(unknown) = InitializeNonLocal : -# 1888| m1888_4(unknown) = Chi : total:m1888_2, partial:m1888_3 -# 1888| r1888_5(glval) = VariableAddress[#this] : -# 1888| m1888_6(glval) = InitializeParameter[#this] : &:r1888_5 -# 1888| r1888_7(glval) = Load[#this] : &:r1888_5, m1888_6 -# 1888| m1888_8(B) = InitializeIndirection[#this] : &:r1888_7 +# 1885| r1885_10(glval) = VariableAddress[#return] : +# 1885| v1885_11(void) = ReturnValue : &:r1885_10, m0_20 +# 1885| v1885_12(void) = AliasedUse : m1885_3 +# 1885| v1885_13(void) = ExitFunction : + +# 1890| block_assignment::B& block_assignment::B::operator=(block_assignment::B&&) +# 1890| Block 0 +# 1890| v1890_1(void) = EnterFunction : +# 1890| m1890_2(unknown) = AliasedDefinition : +# 1890| m1890_3(unknown) = InitializeNonLocal : +# 1890| m1890_4(unknown) = Chi : total:m1890_2, partial:m1890_3 +# 1890| r1890_5(glval) = VariableAddress[#this] : +# 1890| m1890_6(glval) = InitializeParameter[#this] : &:r1890_5 +# 1890| r1890_7(glval) = Load[#this] : &:r1890_5, m1890_6 +# 1890| m1890_8(B) = InitializeIndirection[#this] : &:r1890_7 #-----| r0_1(glval) = VariableAddress[(unnamed parameter 0)] : #-----| m0_2(B &&) = InitializeParameter[(unnamed parameter 0)] : &:r0_1 #-----| r0_3(B &&) = Load[(unnamed parameter 0)] : &:r0_1, m0_2 #-----| m0_4(unknown) = InitializeIndirection[(unnamed parameter 0)] : &:r0_3 -# 1888| r1888_9(glval) = VariableAddress[#this] : -# 1888| r1888_10(B *) = Load[#this] : &:r1888_9, m1888_6 -#-----| r0_5(A *) = ConvertToNonVirtualBase[B : A] : r1888_10 -# 1888| r1888_11(glval) = FunctionAddress[operator=] : -# 1888| r1888_12(glval) = VariableAddress[(unnamed parameter 0)] : -# 1888| r1888_13(B &&) = Load[(unnamed parameter 0)] : &:r1888_12, m0_2 -#-----| r0_6(glval) = CopyValue : r1888_13 -# 1888| r1888_14(B *) = CopyValue : r0_6 -#-----| r0_7(A *) = ConvertToNonVirtualBase[B : A] : r1888_14 -# 1888| r1888_15(glval) = CopyValue : r0_7 -#-----| r0_8(A &) = CopyValue : r1888_15 -# 1888| r1888_16(A &) = Call[operator=] : func:r1888_11, this:r0_5, 0:r0_8 -# 1888| m1888_17(unknown) = ^CallSideEffect : ~m1888_4 -# 1888| m1888_18(unknown) = Chi : total:m1888_4, partial:m1888_17 -#-----| v0_9(void) = ^IndirectReadSideEffect[-1] : &:r0_5, ~m1888_8 +# 1890| r1890_9(glval) = VariableAddress[#this] : +# 1890| r1890_10(B *) = Load[#this] : &:r1890_9, m1890_6 +#-----| r0_5(A *) = ConvertToNonVirtualBase[B : A] : r1890_10 +# 1890| r1890_11(glval) = FunctionAddress[operator=] : +# 1890| r1890_12(glval) = VariableAddress[(unnamed parameter 0)] : +# 1890| r1890_13(B &&) = Load[(unnamed parameter 0)] : &:r1890_12, m0_2 +#-----| r0_6(glval) = CopyValue : r1890_13 +# 1890| r1890_14(B *) = CopyValue : r0_6 +#-----| r0_7(A *) = ConvertToNonVirtualBase[B : A] : r1890_14 +# 1890| r1890_15(glval) = CopyValue : r0_7 +#-----| r0_8(A &) = CopyValue : r1890_15 +# 1890| r1890_16(A &) = Call[operator=] : func:r1890_11, this:r0_5, 0:r0_8 +# 1890| m1890_17(unknown) = ^CallSideEffect : ~m1890_4 +# 1890| m1890_18(unknown) = Chi : total:m1890_4, partial:m1890_17 +#-----| v0_9(void) = ^IndirectReadSideEffect[-1] : &:r0_5, ~m1890_8 #-----| v0_10(void) = ^BufferReadSideEffect[0] : &:r0_8, ~m0_4 #-----| m0_11(A) = ^IndirectMayWriteSideEffect[-1] : &:r0_5 -#-----| m0_12(unknown) = Chi : total:m1888_8, partial:m0_11 +#-----| m0_12(unknown) = Chi : total:m1890_8, partial:m0_11 #-----| m0_13(unknown) = ^BufferMayWriteSideEffect[0] : &:r0_8 #-----| m0_14(unknown) = Chi : total:m0_4, partial:m0_13 -#-----| r0_15(glval) = CopyValue : r1888_16 +#-----| r0_15(glval) = CopyValue : r1890_16 #-----| r0_16(glval) = VariableAddress[#return] : #-----| r0_17(glval) = VariableAddress[#this] : -#-----| r0_18(B *) = Load[#this] : &:r0_17, m1888_6 +#-----| r0_18(B *) = Load[#this] : &:r0_17, m1890_6 #-----| r0_19(glval) = CopyValue : r0_18 #-----| r0_20(B &) = CopyValue : r0_19 #-----| m0_21(B &) = Store[#return] : &:r0_16, r0_20 -# 1888| v1888_19(void) = ReturnIndirection[#this] : &:r1888_7, m0_12 +# 1890| v1890_19(void) = ReturnIndirection[#this] : &:r1890_7, m0_12 #-----| v0_22(void) = ReturnIndirection[(unnamed parameter 0)] : &:r0_3, m0_14 -# 1888| r1888_20(glval) = VariableAddress[#return] : -# 1888| v1888_21(void) = ReturnValue : &:r1888_20, m0_21 -# 1888| v1888_22(void) = AliasedUse : ~m1888_18 -# 1888| v1888_23(void) = ExitFunction : - -# 1892| void block_assignment::foo() -# 1892| Block 0 -# 1892| v1892_1(void) = EnterFunction : -# 1892| m1892_2(unknown) = AliasedDefinition : -# 1892| m1892_3(unknown) = InitializeNonLocal : -# 1892| m1892_4(unknown) = Chi : total:m1892_2, partial:m1892_3 -# 1893| r1893_1(glval) = VariableAddress[v] : -# 1893| m1893_2(B) = Uninitialized[v] : &:r1893_1 -# 1893| m1893_3(unknown) = Chi : total:m1892_4, partial:m1893_2 -# 1893| r1893_4(glval) = FunctionAddress[B] : -# 1893| r1893_5(A *) = Constant[0] : -# 1893| v1893_6(void) = Call[B] : func:r1893_4, this:r1893_1, 0:r1893_5 -# 1893| m1893_7(unknown) = ^CallSideEffect : ~m1893_3 -# 1893| m1893_8(unknown) = Chi : total:m1893_3, partial:m1893_7 -# 1893| v1893_9(void) = ^BufferReadSideEffect[0] : &:r1893_5, ~m1893_8 -# 1893| m1893_10(B) = ^IndirectMayWriteSideEffect[-1] : &:r1893_1 -# 1893| m1893_11(unknown) = Chi : total:m1893_8, partial:m1893_10 -# 1893| m1893_12(unknown) = ^BufferMayWriteSideEffect[0] : &:r1893_5 -# 1893| m1893_13(unknown) = Chi : total:m1893_11, partial:m1893_12 -# 1894| r1894_1(glval) = VariableAddress[v] : -# 1894| r1894_2(glval) = FunctionAddress[operator=] : -# 1894| r1894_3(glval) = VariableAddress[#temp1894:13] : -# 1894| m1894_4(B) = Uninitialized[#temp1894:13] : &:r1894_3 -# 1894| m1894_5(unknown) = Chi : total:m1893_13, partial:m1894_4 -# 1894| r1894_6(glval) = FunctionAddress[B] : -# 1894| r1894_7(A *) = Constant[0] : -# 1894| v1894_8(void) = Call[B] : func:r1894_6, this:r1894_3, 0:r1894_7 -# 1894| m1894_9(unknown) = ^CallSideEffect : ~m1894_5 -# 1894| m1894_10(unknown) = Chi : total:m1894_5, partial:m1894_9 -# 1894| v1894_11(void) = ^BufferReadSideEffect[0] : &:r1894_7, ~m1894_10 -# 1894| m1894_12(B) = ^IndirectMayWriteSideEffect[-1] : &:r1894_3 -# 1894| m1894_13(unknown) = Chi : total:m1894_10, partial:m1894_12 -# 1894| m1894_14(unknown) = ^BufferMayWriteSideEffect[0] : &:r1894_7 -# 1894| m1894_15(unknown) = Chi : total:m1894_13, partial:m1894_14 -# 1894| r1894_16(B &) = CopyValue : r1894_3 -# 1894| r1894_17(B &) = Call[operator=] : func:r1894_2, this:r1894_1, 0:r1894_16 -# 1894| m1894_18(unknown) = ^CallSideEffect : ~m1894_15 -# 1894| m1894_19(unknown) = Chi : total:m1894_15, partial:m1894_18 -# 1894| v1894_20(void) = ^IndirectReadSideEffect[-1] : &:r1894_1, ~m1894_19 -# 1894| v1894_21(void) = ^BufferReadSideEffect[0] : &:r1894_16, ~m1894_19 -# 1894| m1894_22(B) = ^IndirectMayWriteSideEffect[-1] : &:r1894_1 -# 1894| m1894_23(unknown) = Chi : total:m1894_19, partial:m1894_22 -# 1894| m1894_24(unknown) = ^BufferMayWriteSideEffect[0] : &:r1894_16 -# 1894| m1894_25(unknown) = Chi : total:m1894_23, partial:m1894_24 -# 1894| r1894_26(glval) = CopyValue : r1894_17 -# 1895| v1895_1(void) = NoOp : -# 1892| v1892_5(void) = ReturnVoid : -# 1892| v1892_6(void) = AliasedUse : ~m1894_19 -# 1892| v1892_7(void) = ExitFunction : - -# 1898| void magicvars() -# 1898| Block 0 -# 1898| v1898_1(void) = EnterFunction : -# 1898| m1898_2(unknown) = AliasedDefinition : -# 1898| m1898_3(unknown) = InitializeNonLocal : -# 1898| m1898_4(unknown) = Chi : total:m1898_2, partial:m1898_3 -# 1899| r1899_1(glval) = VariableAddress[pf] : -# 1899| r1899_2(glval) = VariableAddress[__PRETTY_FUNCTION__] : -# 1899| r1899_3(char *) = Convert : r1899_2 -# 1899| m1899_4(char *) = Store[pf] : &:r1899_1, r1899_3 -# 1900| r1900_1(glval) = VariableAddress[strfunc] : -# 1900| r1900_2(glval) = VariableAddress[__func__] : -# 1900| r1900_3(char *) = Convert : r1900_2 -# 1900| m1900_4(char *) = Store[strfunc] : &:r1900_1, r1900_3 -# 1901| v1901_1(void) = NoOp : -# 1898| v1898_5(void) = ReturnVoid : -# 1898| v1898_6(void) = AliasedUse : m1898_3 -# 1898| v1898_7(void) = ExitFunction : - -# 1899| const char[17] __PRETTY_FUNCTION__ -# 1899| Block 0 -# 1899| v1899_1(void) = EnterFunction : -# 1899| m1899_2(unknown) = AliasedDefinition : -# 1899| r1899_3(glval) = VariableAddress[__PRETTY_FUNCTION__] : -# 1899| r1899_4(glval) = StringConstant[__PRETTY_FUNCTION__] : -# 1899| r1899_5(char[17]) = Load[?] : &:r1899_4, ~m? -# 1899| m1899_6(char[17]) = Store[__PRETTY_FUNCTION__] : &:r1899_3, r1899_5 -# 1899| m1899_7(unknown) = Chi : total:m1899_2, partial:m1899_6 -# 1899| v1899_8(void) = ReturnVoid : -# 1899| v1899_9(void) = AliasedUse : ~m1899_7 -# 1899| v1899_10(void) = ExitFunction : - -# 1900| const char[10] __func__ +# 1890| r1890_20(glval) = VariableAddress[#return] : +# 1890| v1890_21(void) = ReturnValue : &:r1890_20, m0_21 +# 1890| v1890_22(void) = AliasedUse : ~m1890_18 +# 1890| v1890_23(void) = ExitFunction : + +# 1894| void block_assignment::foo() +# 1894| Block 0 +# 1894| v1894_1(void) = EnterFunction : +# 1894| m1894_2(unknown) = AliasedDefinition : +# 1894| m1894_3(unknown) = InitializeNonLocal : +# 1894| m1894_4(unknown) = Chi : total:m1894_2, partial:m1894_3 +# 1895| r1895_1(glval) = VariableAddress[v] : +# 1895| m1895_2(B) = Uninitialized[v] : &:r1895_1 +# 1895| m1895_3(unknown) = Chi : total:m1894_4, partial:m1895_2 +# 1895| r1895_4(glval) = FunctionAddress[B] : +# 1895| r1895_5(A *) = Constant[0] : +# 1895| v1895_6(void) = Call[B] : func:r1895_4, this:r1895_1, 0:r1895_5 +# 1895| m1895_7(unknown) = ^CallSideEffect : ~m1895_3 +# 1895| m1895_8(unknown) = Chi : total:m1895_3, partial:m1895_7 +# 1895| v1895_9(void) = ^BufferReadSideEffect[0] : &:r1895_5, ~m1895_8 +# 1895| m1895_10(B) = ^IndirectMayWriteSideEffect[-1] : &:r1895_1 +# 1895| m1895_11(unknown) = Chi : total:m1895_8, partial:m1895_10 +# 1895| m1895_12(unknown) = ^BufferMayWriteSideEffect[0] : &:r1895_5 +# 1895| m1895_13(unknown) = Chi : total:m1895_11, partial:m1895_12 +# 1896| r1896_1(glval) = VariableAddress[v] : +# 1896| r1896_2(glval) = FunctionAddress[operator=] : +# 1896| r1896_3(glval) = VariableAddress[#temp1896:13] : +# 1896| m1896_4(B) = Uninitialized[#temp1896:13] : &:r1896_3 +# 1896| m1896_5(unknown) = Chi : total:m1895_13, partial:m1896_4 +# 1896| r1896_6(glval) = FunctionAddress[B] : +# 1896| r1896_7(A *) = Constant[0] : +# 1896| v1896_8(void) = Call[B] : func:r1896_6, this:r1896_3, 0:r1896_7 +# 1896| m1896_9(unknown) = ^CallSideEffect : ~m1896_5 +# 1896| m1896_10(unknown) = Chi : total:m1896_5, partial:m1896_9 +# 1896| v1896_11(void) = ^BufferReadSideEffect[0] : &:r1896_7, ~m1896_10 +# 1896| m1896_12(B) = ^IndirectMayWriteSideEffect[-1] : &:r1896_3 +# 1896| m1896_13(unknown) = Chi : total:m1896_10, partial:m1896_12 +# 1896| m1896_14(unknown) = ^BufferMayWriteSideEffect[0] : &:r1896_7 +# 1896| m1896_15(unknown) = Chi : total:m1896_13, partial:m1896_14 +# 1896| r1896_16(B &) = CopyValue : r1896_3 +# 1896| r1896_17(B &) = Call[operator=] : func:r1896_2, this:r1896_1, 0:r1896_16 +# 1896| m1896_18(unknown) = ^CallSideEffect : ~m1896_15 +# 1896| m1896_19(unknown) = Chi : total:m1896_15, partial:m1896_18 +# 1896| v1896_20(void) = ^IndirectReadSideEffect[-1] : &:r1896_1, ~m1896_19 +# 1896| v1896_21(void) = ^BufferReadSideEffect[0] : &:r1896_16, ~m1896_19 +# 1896| m1896_22(B) = ^IndirectMayWriteSideEffect[-1] : &:r1896_1 +# 1896| m1896_23(unknown) = Chi : total:m1896_19, partial:m1896_22 +# 1896| m1896_24(unknown) = ^BufferMayWriteSideEffect[0] : &:r1896_16 +# 1896| m1896_25(unknown) = Chi : total:m1896_23, partial:m1896_24 +# 1896| r1896_26(glval) = CopyValue : r1896_17 +# 1897| v1897_1(void) = NoOp : +# 1894| v1894_5(void) = ReturnVoid : +# 1894| v1894_6(void) = AliasedUse : ~m1896_19 +# 1894| v1894_7(void) = ExitFunction : + +# 1900| void magicvars() # 1900| Block 0 -# 1900| v1900_1(void) = EnterFunction : -# 1900| m1900_2(unknown) = AliasedDefinition : -# 1900| r1900_3(glval) = VariableAddress[__func__] : -# 1900| r1900_4(glval) = StringConstant[__func__] : -# 1900| r1900_5(char[10]) = Load[?] : &:r1900_4, ~m? -# 1900| m1900_6(char[10]) = Store[__func__] : &:r1900_3, r1900_5 -# 1900| m1900_7(unknown) = Chi : total:m1900_2, partial:m1900_6 -# 1900| v1900_8(void) = ReturnVoid : -# 1900| v1900_9(void) = AliasedUse : ~m1900_7 -# 1900| v1900_10(void) = ExitFunction : - -# 1911| void* missing_declaration_entries::Bar1::missing_type_decl_entry(missing_declaration_entries::Bar1::pointer) -# 1911| Block 0 -# 1911| v1911_1(void) = EnterFunction : -# 1911| m1911_2(unknown) = AliasedDefinition : -# 1911| m1911_3(unknown) = InitializeNonLocal : -# 1911| m1911_4(unknown) = Chi : total:m1911_2, partial:m1911_3 -# 1911| r1911_5(glval) = VariableAddress[#this] : -# 1911| m1911_6(glval>) = InitializeParameter[#this] : &:r1911_5 -# 1911| r1911_7(glval>) = Load[#this] : &:r1911_5, m1911_6 -# 1911| m1911_8(Bar1) = InitializeIndirection[#this] : &:r1911_7 -# 1911| r1911_9(glval) = VariableAddress[p] : -# 1911| m1911_10(S *) = InitializeParameter[p] : &:r1911_9 -# 1911| r1911_11(S *) = Load[p] : &:r1911_9, m1911_10 -# 1911| m1911_12(unknown) = InitializeIndirection[p] : &:r1911_11 -# 1913| r1913_1(glval) = VariableAddress[#return] : -# 1913| r1913_2(glval) = VariableAddress[p] : -# 1913| r1913_3(S *) = Load[p] : &:r1913_2, m1911_10 -# 1913| r1913_4(void *) = Convert : r1913_3 -# 1913| m1913_5(void *) = Store[#return] : &:r1913_1, r1913_4 -# 1911| v1911_13(void) = ReturnIndirection[#this] : &:r1911_7, m1911_8 -# 1911| v1911_14(void) = ReturnIndirection[p] : &:r1911_11, m1911_12 -# 1911| r1911_15(glval) = VariableAddress[#return] : -# 1911| v1911_16(void) = ReturnValue : &:r1911_15, m1913_5 -# 1911| v1911_17(void) = AliasedUse : m1911_3 -# 1911| v1911_18(void) = ExitFunction : - -# 1917| void missing_declaration_entries::test1() -# 1917| Block 0 -# 1917| v1917_1(void) = EnterFunction : -# 1917| m1917_2(unknown) = AliasedDefinition : -# 1917| m1917_3(unknown) = InitializeNonLocal : -# 1917| m1917_4(unknown) = Chi : total:m1917_2, partial:m1917_3 -# 1918| r1918_1(glval>) = VariableAddress[b] : -# 1918| m1918_2(Bar1) = Uninitialized[b] : &:r1918_1 -# 1919| r1919_1(glval>) = VariableAddress[b] : -# 1919| r1919_2(glval) = FunctionAddress[missing_type_decl_entry] : -# 1919| r1919_3(S *) = Constant[0] : -# 1919| r1919_4(void *) = Call[missing_type_decl_entry] : func:r1919_2, this:r1919_1, 0:r1919_3 -# 1919| m1919_5(unknown) = ^CallSideEffect : ~m1917_4 -# 1919| m1919_6(unknown) = Chi : total:m1917_4, partial:m1919_5 -# 1919| v1919_7(void) = ^IndirectReadSideEffect[-1] : &:r1919_1, m1918_2 -# 1919| v1919_8(void) = ^BufferReadSideEffect[0] : &:r1919_3, ~m1919_6 -# 1919| m1919_9(Bar1) = ^IndirectMayWriteSideEffect[-1] : &:r1919_1 -# 1919| m1919_10(Bar1) = Chi : total:m1918_2, partial:m1919_9 -# 1919| m1919_11(unknown) = ^BufferMayWriteSideEffect[0] : &:r1919_3 -# 1919| m1919_12(unknown) = Chi : total:m1919_6, partial:m1919_11 -# 1920| v1920_1(void) = NoOp : -# 1917| v1917_5(void) = ReturnVoid : -# 1917| v1917_6(void) = AliasedUse : ~m1919_12 -# 1917| v1917_7(void) = ExitFunction : - -# 1924| int missing_declaration_entries::Bar2::two_missing_variable_declaration_entries() -# 1924| Block 0 -# 1924| v1924_1(void) = EnterFunction : -# 1924| m1924_2(unknown) = AliasedDefinition : -# 1924| m1924_3(unknown) = InitializeNonLocal : -# 1924| m1924_4(unknown) = Chi : total:m1924_2, partial:m1924_3 -# 1924| r1924_5(glval) = VariableAddress[#this] : -# 1924| m1924_6(glval>) = InitializeParameter[#this] : &:r1924_5 -# 1924| r1924_7(glval>) = Load[#this] : &:r1924_5, m1924_6 -# 1924| m1924_8(Bar2) = InitializeIndirection[#this] : &:r1924_7 -# 1925| r1925_1(glval) = VariableAddress[x] : -# 1925| m1925_2(int[10]) = Uninitialized[x] : &:r1925_1 -# 1925| r1925_3(glval) = VariableAddress[y] : -# 1925| m1925_4(int[10]) = Uninitialized[y] : &:r1925_3 -# 1926| r1926_1(int) = Constant[10] : -# 1926| r1926_2(glval) = VariableAddress[x] : -# 1926| r1926_3(int *) = Convert : r1926_2 -# 1926| r1926_4(glval) = CopyValue : r1926_3 -# 1926| m1926_5(int) = Store[?] : &:r1926_4, r1926_1 -# 1926| m1926_6(int[10]) = Chi : total:m1925_2, partial:m1926_5 -# 1927| r1927_1(int) = Constant[10] : -# 1927| r1927_2(glval) = VariableAddress[y] : -# 1927| r1927_3(int *) = Convert : r1927_2 -# 1927| r1927_4(glval) = CopyValue : r1927_3 -# 1927| m1927_5(int) = Store[?] : &:r1927_4, r1927_1 -# 1927| m1927_6(int[10]) = Chi : total:m1925_4, partial:m1927_5 -# 1928| r1928_1(glval) = VariableAddress[#return] : +# 1900| v1900_1(void) = EnterFunction : +# 1900| m1900_2(unknown) = AliasedDefinition : +# 1900| m1900_3(unknown) = InitializeNonLocal : +# 1900| m1900_4(unknown) = Chi : total:m1900_2, partial:m1900_3 +# 1901| r1901_1(glval) = VariableAddress[pf] : +# 1901| r1901_2(glval) = VariableAddress[__PRETTY_FUNCTION__] : +# 1901| r1901_3(char *) = Convert : r1901_2 +# 1901| m1901_4(char *) = Store[pf] : &:r1901_1, r1901_3 +# 1902| r1902_1(glval) = VariableAddress[strfunc] : +# 1902| r1902_2(glval) = VariableAddress[__func__] : +# 1902| r1902_3(char *) = Convert : r1902_2 +# 1902| m1902_4(char *) = Store[strfunc] : &:r1902_1, r1902_3 +# 1903| v1903_1(void) = NoOp : +# 1900| v1900_5(void) = ReturnVoid : +# 1900| v1900_6(void) = AliasedUse : m1900_3 +# 1900| v1900_7(void) = ExitFunction : + +# 1901| const char[17] __PRETTY_FUNCTION__ +# 1901| Block 0 +# 1901| v1901_1(void) = EnterFunction : +# 1901| m1901_2(unknown) = AliasedDefinition : +# 1901| r1901_3(glval) = VariableAddress[__PRETTY_FUNCTION__] : +# 1901| r1901_4(glval) = StringConstant[__PRETTY_FUNCTION__] : +# 1901| r1901_5(char[17]) = Load[?] : &:r1901_4, ~m? +# 1901| m1901_6(char[17]) = Store[__PRETTY_FUNCTION__] : &:r1901_3, r1901_5 +# 1901| m1901_7(unknown) = Chi : total:m1901_2, partial:m1901_6 +# 1901| v1901_8(void) = ReturnVoid : +# 1901| v1901_9(void) = AliasedUse : ~m1901_7 +# 1901| v1901_10(void) = ExitFunction : + +# 1902| const char[10] __func__ +# 1902| Block 0 +# 1902| v1902_1(void) = EnterFunction : +# 1902| m1902_2(unknown) = AliasedDefinition : +# 1902| r1902_3(glval) = VariableAddress[__func__] : +# 1902| r1902_4(glval) = StringConstant[__func__] : +# 1902| r1902_5(char[10]) = Load[?] : &:r1902_4, ~m? +# 1902| m1902_6(char[10]) = Store[__func__] : &:r1902_3, r1902_5 +# 1902| m1902_7(unknown) = Chi : total:m1902_2, partial:m1902_6 +# 1902| v1902_8(void) = ReturnVoid : +# 1902| v1902_9(void) = AliasedUse : ~m1902_7 +# 1902| v1902_10(void) = ExitFunction : + +# 1913| void* missing_declaration_entries::Bar1::missing_type_decl_entry(missing_declaration_entries::Bar1::pointer) +# 1913| Block 0 +# 1913| v1913_1(void) = EnterFunction : +# 1913| m1913_2(unknown) = AliasedDefinition : +# 1913| m1913_3(unknown) = InitializeNonLocal : +# 1913| m1913_4(unknown) = Chi : total:m1913_2, partial:m1913_3 +# 1913| r1913_5(glval) = VariableAddress[#this] : +# 1913| m1913_6(glval>) = InitializeParameter[#this] : &:r1913_5 +# 1913| r1913_7(glval>) = Load[#this] : &:r1913_5, m1913_6 +# 1913| m1913_8(Bar1) = InitializeIndirection[#this] : &:r1913_7 +# 1913| r1913_9(glval) = VariableAddress[p] : +# 1913| m1913_10(S *) = InitializeParameter[p] : &:r1913_9 +# 1913| r1913_11(S *) = Load[p] : &:r1913_9, m1913_10 +# 1913| m1913_12(unknown) = InitializeIndirection[p] : &:r1913_11 +# 1915| r1915_1(glval) = VariableAddress[#return] : +# 1915| r1915_2(glval) = VariableAddress[p] : +# 1915| r1915_3(S *) = Load[p] : &:r1915_2, m1913_10 +# 1915| r1915_4(void *) = Convert : r1915_3 +# 1915| m1915_5(void *) = Store[#return] : &:r1915_1, r1915_4 +# 1913| v1913_13(void) = ReturnIndirection[#this] : &:r1913_7, m1913_8 +# 1913| v1913_14(void) = ReturnIndirection[p] : &:r1913_11, m1913_12 +# 1913| r1913_15(glval) = VariableAddress[#return] : +# 1913| v1913_16(void) = ReturnValue : &:r1913_15, m1915_5 +# 1913| v1913_17(void) = AliasedUse : m1913_3 +# 1913| v1913_18(void) = ExitFunction : + +# 1919| void missing_declaration_entries::test1() +# 1919| Block 0 +# 1919| v1919_1(void) = EnterFunction : +# 1919| m1919_2(unknown) = AliasedDefinition : +# 1919| m1919_3(unknown) = InitializeNonLocal : +# 1919| m1919_4(unknown) = Chi : total:m1919_2, partial:m1919_3 +# 1920| r1920_1(glval>) = VariableAddress[b] : +# 1920| m1920_2(Bar1) = Uninitialized[b] : &:r1920_1 +# 1921| r1921_1(glval>) = VariableAddress[b] : +# 1921| r1921_2(glval) = FunctionAddress[missing_type_decl_entry] : +# 1921| r1921_3(S *) = Constant[0] : +# 1921| r1921_4(void *) = Call[missing_type_decl_entry] : func:r1921_2, this:r1921_1, 0:r1921_3 +# 1921| m1921_5(unknown) = ^CallSideEffect : ~m1919_4 +# 1921| m1921_6(unknown) = Chi : total:m1919_4, partial:m1921_5 +# 1921| v1921_7(void) = ^IndirectReadSideEffect[-1] : &:r1921_1, m1920_2 +# 1921| v1921_8(void) = ^BufferReadSideEffect[0] : &:r1921_3, ~m1921_6 +# 1921| m1921_9(Bar1) = ^IndirectMayWriteSideEffect[-1] : &:r1921_1 +# 1921| m1921_10(Bar1) = Chi : total:m1920_2, partial:m1921_9 +# 1921| m1921_11(unknown) = ^BufferMayWriteSideEffect[0] : &:r1921_3 +# 1921| m1921_12(unknown) = Chi : total:m1921_6, partial:m1921_11 +# 1922| v1922_1(void) = NoOp : +# 1919| v1919_5(void) = ReturnVoid : +# 1919| v1919_6(void) = AliasedUse : ~m1921_12 +# 1919| v1919_7(void) = ExitFunction : + +# 1926| int missing_declaration_entries::Bar2::two_missing_variable_declaration_entries() +# 1926| Block 0 +# 1926| v1926_1(void) = EnterFunction : +# 1926| m1926_2(unknown) = AliasedDefinition : +# 1926| m1926_3(unknown) = InitializeNonLocal : +# 1926| m1926_4(unknown) = Chi : total:m1926_2, partial:m1926_3 +# 1926| r1926_5(glval) = VariableAddress[#this] : +# 1926| m1926_6(glval>) = InitializeParameter[#this] : &:r1926_5 +# 1926| r1926_7(glval>) = Load[#this] : &:r1926_5, m1926_6 +# 1926| m1926_8(Bar2) = InitializeIndirection[#this] : &:r1926_7 +# 1927| r1927_1(glval) = VariableAddress[x] : +# 1927| m1927_2(int[10]) = Uninitialized[x] : &:r1927_1 +# 1927| r1927_3(glval) = VariableAddress[y] : +# 1927| m1927_4(int[10]) = Uninitialized[y] : &:r1927_3 +# 1928| r1928_1(int) = Constant[10] : # 1928| r1928_2(glval) = VariableAddress[x] : # 1928| r1928_3(int *) = Convert : r1928_2 -# 1928| r1928_4(int) = Load[?] : &:r1928_3, m1926_5 -# 1928| r1928_5(glval) = VariableAddress[y] : -# 1928| r1928_6(int *) = Convert : r1928_5 -# 1928| r1928_7(int) = Load[?] : &:r1928_6, m1927_5 -# 1928| r1928_8(int) = Add : r1928_4, r1928_7 -# 1928| m1928_9(int) = Store[#return] : &:r1928_1, r1928_8 -# 1924| v1924_9(void) = ReturnIndirection[#this] : &:r1924_7, m1924_8 -# 1924| r1924_10(glval) = VariableAddress[#return] : -# 1924| v1924_11(void) = ReturnValue : &:r1924_10, m1928_9 -# 1924| v1924_12(void) = AliasedUse : m1924_3 -# 1924| v1924_13(void) = ExitFunction : - -# 1932| void missing_declaration_entries::test2() -# 1932| Block 0 -# 1932| v1932_1(void) = EnterFunction : -# 1932| m1932_2(unknown) = AliasedDefinition : -# 1932| m1932_3(unknown) = InitializeNonLocal : -# 1932| m1932_4(unknown) = Chi : total:m1932_2, partial:m1932_3 -# 1933| r1933_1(glval>) = VariableAddress[b] : -# 1933| m1933_2(Bar2) = Uninitialized[b] : &:r1933_1 -# 1934| r1934_1(glval>) = VariableAddress[b] : -# 1934| r1934_2(glval) = FunctionAddress[two_missing_variable_declaration_entries] : -# 1934| r1934_3(int) = Call[two_missing_variable_declaration_entries] : func:r1934_2, this:r1934_1 -# 1934| m1934_4(unknown) = ^CallSideEffect : ~m1932_4 -# 1934| m1934_5(unknown) = Chi : total:m1932_4, partial:m1934_4 -# 1934| v1934_6(void) = ^IndirectReadSideEffect[-1] : &:r1934_1, m1933_2 -# 1934| m1934_7(Bar2) = ^IndirectMayWriteSideEffect[-1] : &:r1934_1 -# 1934| m1934_8(Bar2) = Chi : total:m1933_2, partial:m1934_7 -# 1935| v1935_1(void) = NoOp : -# 1932| v1932_5(void) = ReturnVoid : -# 1932| v1932_6(void) = AliasedUse : ~m1934_5 -# 1932| v1932_7(void) = ExitFunction : - -# 1939| int missing_declaration_entries::Bar3::two_more_missing_variable_declaration_entries() -# 1939| Block 0 -# 1939| v1939_1(void) = EnterFunction : -# 1939| m1939_2(unknown) = AliasedDefinition : -# 1939| m1939_3(unknown) = InitializeNonLocal : -# 1939| m1939_4(unknown) = Chi : total:m1939_2, partial:m1939_3 -# 1939| r1939_5(glval) = VariableAddress[#this] : -# 1939| m1939_6(glval>) = InitializeParameter[#this] : &:r1939_5 -# 1939| r1939_7(glval>) = Load[#this] : &:r1939_5, m1939_6 -# 1939| m1939_8(Bar3) = InitializeIndirection[#this] : &:r1939_7 -# 1942| r1942_1(glval) = VariableAddress[#return] : -# 1942| r1942_2(glval) = VariableAddress[g] : -# 1942| r1942_3(int) = Load[g] : &:r1942_2, ~m1939_3 -# 1942| m1942_4(int) = Store[#return] : &:r1942_1, r1942_3 -# 1939| v1939_9(void) = ReturnIndirection[#this] : &:r1939_7, m1939_8 -# 1939| r1939_10(glval) = VariableAddress[#return] : -# 1939| v1939_11(void) = ReturnValue : &:r1939_10, m1942_4 -# 1939| v1939_12(void) = AliasedUse : m1939_3 -# 1939| v1939_13(void) = ExitFunction : - -# 1946| void missing_declaration_entries::test3() -# 1946| Block 0 -# 1946| v1946_1(void) = EnterFunction : -# 1946| m1946_2(unknown) = AliasedDefinition : -# 1946| m1946_3(unknown) = InitializeNonLocal : -# 1946| m1946_4(unknown) = Chi : total:m1946_2, partial:m1946_3 -# 1947| r1947_1(glval>) = VariableAddress[b] : -# 1947| m1947_2(Bar3) = Uninitialized[b] : &:r1947_1 -# 1948| r1948_1(glval>) = VariableAddress[b] : -# 1948| r1948_2(glval) = FunctionAddress[two_more_missing_variable_declaration_entries] : -# 1948| r1948_3(int) = Call[two_more_missing_variable_declaration_entries] : func:r1948_2, this:r1948_1 -# 1948| m1948_4(unknown) = ^CallSideEffect : ~m1946_4 -# 1948| m1948_5(unknown) = Chi : total:m1946_4, partial:m1948_4 -# 1948| v1948_6(void) = ^IndirectReadSideEffect[-1] : &:r1948_1, m1947_2 -# 1948| m1948_7(Bar3) = ^IndirectMayWriteSideEffect[-1] : &:r1948_1 -# 1948| m1948_8(Bar3) = Chi : total:m1947_2, partial:m1948_7 -# 1949| v1949_1(void) = NoOp : -# 1946| v1946_5(void) = ReturnVoid : -# 1946| v1946_6(void) = AliasedUse : ~m1948_5 -# 1946| v1946_7(void) = ExitFunction : - -# 1952| char global_template -# 1952| Block 0 -# 1952| v1952_1(void) = EnterFunction : -# 1952| m1952_2(unknown) = AliasedDefinition : -# 1952| r1952_3(glval) = VariableAddress[global_template] : -# 1952| r1952_4(char) = Constant[42] : -# 1952| m1952_5(char) = Store[global_template] : &:r1952_3, r1952_4 -# 1952| m1952_6(unknown) = Chi : total:m1952_2, partial:m1952_5 -# 1952| v1952_7(void) = ReturnVoid : -# 1952| v1952_8(void) = AliasedUse : ~m1952_6 -# 1952| v1952_9(void) = ExitFunction : - -# 1952| int global_template -# 1952| Block 0 -# 1952| v1952_1(void) = EnterFunction : -# 1952| m1952_2(unknown) = AliasedDefinition : -# 1952| r1952_3(glval) = VariableAddress[global_template] : -# 1952| r1952_4(int) = Constant[42] : -# 1952| m1952_5(int) = Store[global_template] : &:r1952_3, r1952_4 -# 1952| m1952_6(unknown) = Chi : total:m1952_2, partial:m1952_5 -# 1952| v1952_7(void) = ReturnVoid : -# 1952| v1952_8(void) = AliasedUse : ~m1952_6 -# 1952| v1952_9(void) = ExitFunction : - -# 1954| int test_global_template_int() +# 1928| r1928_4(glval) = CopyValue : r1928_3 +# 1928| m1928_5(int) = Store[?] : &:r1928_4, r1928_1 +# 1928| m1928_6(int[10]) = Chi : total:m1927_2, partial:m1928_5 +# 1929| r1929_1(int) = Constant[10] : +# 1929| r1929_2(glval) = VariableAddress[y] : +# 1929| r1929_3(int *) = Convert : r1929_2 +# 1929| r1929_4(glval) = CopyValue : r1929_3 +# 1929| m1929_5(int) = Store[?] : &:r1929_4, r1929_1 +# 1929| m1929_6(int[10]) = Chi : total:m1927_4, partial:m1929_5 +# 1930| r1930_1(glval) = VariableAddress[#return] : +# 1930| r1930_2(glval) = VariableAddress[x] : +# 1930| r1930_3(int *) = Convert : r1930_2 +# 1930| r1930_4(int) = Load[?] : &:r1930_3, m1928_5 +# 1930| r1930_5(glval) = VariableAddress[y] : +# 1930| r1930_6(int *) = Convert : r1930_5 +# 1930| r1930_7(int) = Load[?] : &:r1930_6, m1929_5 +# 1930| r1930_8(int) = Add : r1930_4, r1930_7 +# 1930| m1930_9(int) = Store[#return] : &:r1930_1, r1930_8 +# 1926| v1926_9(void) = ReturnIndirection[#this] : &:r1926_7, m1926_8 +# 1926| r1926_10(glval) = VariableAddress[#return] : +# 1926| v1926_11(void) = ReturnValue : &:r1926_10, m1930_9 +# 1926| v1926_12(void) = AliasedUse : m1926_3 +# 1926| v1926_13(void) = ExitFunction : + +# 1934| void missing_declaration_entries::test2() +# 1934| Block 0 +# 1934| v1934_1(void) = EnterFunction : +# 1934| m1934_2(unknown) = AliasedDefinition : +# 1934| m1934_3(unknown) = InitializeNonLocal : +# 1934| m1934_4(unknown) = Chi : total:m1934_2, partial:m1934_3 +# 1935| r1935_1(glval>) = VariableAddress[b] : +# 1935| m1935_2(Bar2) = Uninitialized[b] : &:r1935_1 +# 1936| r1936_1(glval>) = VariableAddress[b] : +# 1936| r1936_2(glval) = FunctionAddress[two_missing_variable_declaration_entries] : +# 1936| r1936_3(int) = Call[two_missing_variable_declaration_entries] : func:r1936_2, this:r1936_1 +# 1936| m1936_4(unknown) = ^CallSideEffect : ~m1934_4 +# 1936| m1936_5(unknown) = Chi : total:m1934_4, partial:m1936_4 +# 1936| v1936_6(void) = ^IndirectReadSideEffect[-1] : &:r1936_1, m1935_2 +# 1936| m1936_7(Bar2) = ^IndirectMayWriteSideEffect[-1] : &:r1936_1 +# 1936| m1936_8(Bar2) = Chi : total:m1935_2, partial:m1936_7 +# 1937| v1937_1(void) = NoOp : +# 1934| v1934_5(void) = ReturnVoid : +# 1934| v1934_6(void) = AliasedUse : ~m1936_5 +# 1934| v1934_7(void) = ExitFunction : + +# 1941| int missing_declaration_entries::Bar3::two_more_missing_variable_declaration_entries() +# 1941| Block 0 +# 1941| v1941_1(void) = EnterFunction : +# 1941| m1941_2(unknown) = AliasedDefinition : +# 1941| m1941_3(unknown) = InitializeNonLocal : +# 1941| m1941_4(unknown) = Chi : total:m1941_2, partial:m1941_3 +# 1941| r1941_5(glval) = VariableAddress[#this] : +# 1941| m1941_6(glval>) = InitializeParameter[#this] : &:r1941_5 +# 1941| r1941_7(glval>) = Load[#this] : &:r1941_5, m1941_6 +# 1941| m1941_8(Bar3) = InitializeIndirection[#this] : &:r1941_7 +# 1944| r1944_1(glval) = VariableAddress[#return] : +# 1944| r1944_2(glval) = VariableAddress[g] : +# 1944| r1944_3(int) = Load[g] : &:r1944_2, ~m1941_3 +# 1944| m1944_4(int) = Store[#return] : &:r1944_1, r1944_3 +# 1941| v1941_9(void) = ReturnIndirection[#this] : &:r1941_7, m1941_8 +# 1941| r1941_10(glval) = VariableAddress[#return] : +# 1941| v1941_11(void) = ReturnValue : &:r1941_10, m1944_4 +# 1941| v1941_12(void) = AliasedUse : m1941_3 +# 1941| v1941_13(void) = ExitFunction : + +# 1948| void missing_declaration_entries::test3() +# 1948| Block 0 +# 1948| v1948_1(void) = EnterFunction : +# 1948| m1948_2(unknown) = AliasedDefinition : +# 1948| m1948_3(unknown) = InitializeNonLocal : +# 1948| m1948_4(unknown) = Chi : total:m1948_2, partial:m1948_3 +# 1949| r1949_1(glval>) = VariableAddress[b] : +# 1949| m1949_2(Bar3) = Uninitialized[b] : &:r1949_1 +# 1950| r1950_1(glval>) = VariableAddress[b] : +# 1950| r1950_2(glval) = FunctionAddress[two_more_missing_variable_declaration_entries] : +# 1950| r1950_3(int) = Call[two_more_missing_variable_declaration_entries] : func:r1950_2, this:r1950_1 +# 1950| m1950_4(unknown) = ^CallSideEffect : ~m1948_4 +# 1950| m1950_5(unknown) = Chi : total:m1948_4, partial:m1950_4 +# 1950| v1950_6(void) = ^IndirectReadSideEffect[-1] : &:r1950_1, m1949_2 +# 1950| m1950_7(Bar3) = ^IndirectMayWriteSideEffect[-1] : &:r1950_1 +# 1950| m1950_8(Bar3) = Chi : total:m1949_2, partial:m1950_7 +# 1951| v1951_1(void) = NoOp : +# 1948| v1948_5(void) = ReturnVoid : +# 1948| v1948_6(void) = AliasedUse : ~m1950_5 +# 1948| v1948_7(void) = ExitFunction : + +# 1954| char global_template # 1954| Block 0 # 1954| v1954_1(void) = EnterFunction : # 1954| m1954_2(unknown) = AliasedDefinition : -# 1954| m1954_3(unknown) = InitializeNonLocal : -# 1954| m1954_4(unknown) = Chi : total:m1954_2, partial:m1954_3 -# 1955| r1955_1(glval) = VariableAddress[local_int] : -# 1955| r1955_2(glval) = VariableAddress[global_template] : -# 1955| r1955_3(int) = Load[global_template] : &:r1955_2, ~m1954_3 -# 1955| m1955_4(int) = Store[local_int] : &:r1955_1, r1955_3 -# 1956| r1956_1(glval) = VariableAddress[local_char] : -# 1956| r1956_2(glval) = VariableAddress[global_template] : -# 1956| r1956_3(char) = Load[global_template] : &:r1956_2, ~m1954_3 -# 1956| m1956_4(char) = Store[local_char] : &:r1956_1, r1956_3 -# 1957| r1957_1(glval) = VariableAddress[#return] : -# 1957| r1957_2(glval) = VariableAddress[local_int] : -# 1957| r1957_3(int) = Load[local_int] : &:r1957_2, m1955_4 -# 1957| r1957_4(glval) = VariableAddress[local_char] : -# 1957| r1957_5(char) = Load[local_char] : &:r1957_4, m1956_4 -# 1957| r1957_6(int) = Convert : r1957_5 -# 1957| r1957_7(int) = Add : r1957_3, r1957_6 -# 1957| m1957_8(int) = Store[#return] : &:r1957_1, r1957_7 -# 1954| r1954_5(glval) = VariableAddress[#return] : -# 1954| v1954_6(void) = ReturnValue : &:r1954_5, m1957_8 -# 1954| v1954_7(void) = AliasedUse : m1954_3 -# 1954| v1954_8(void) = ExitFunction : - -# 1962| int noreturnTest(int) -# 1962| Block 0 -# 1962| v1962_1(void) = EnterFunction : -# 1962| m1962_2(unknown) = AliasedDefinition : -# 1962| m1962_3(unknown) = InitializeNonLocal : -# 1962| m1962_4(unknown) = Chi : total:m1962_2, partial:m1962_3 -# 1962| r1962_5(glval) = VariableAddress[x] : -# 1962| m1962_6(int) = InitializeParameter[x] : &:r1962_5 -# 1963| r1963_1(glval) = VariableAddress[x] : -# 1963| r1963_2(int) = Load[x] : &:r1963_1, m1962_6 -# 1963| r1963_3(int) = Constant[10] : -# 1963| r1963_4(bool) = CompareLT : r1963_2, r1963_3 -# 1963| v1963_5(void) = ConditionalBranch : r1963_4 +# 1954| r1954_3(glval) = VariableAddress[global_template] : +# 1954| r1954_4(char) = Constant[42] : +# 1954| m1954_5(char) = Store[global_template] : &:r1954_3, r1954_4 +# 1954| m1954_6(unknown) = Chi : total:m1954_2, partial:m1954_5 +# 1954| v1954_7(void) = ReturnVoid : +# 1954| v1954_8(void) = AliasedUse : ~m1954_6 +# 1954| v1954_9(void) = ExitFunction : + +# 1954| int global_template +# 1954| Block 0 +# 1954| v1954_1(void) = EnterFunction : +# 1954| m1954_2(unknown) = AliasedDefinition : +# 1954| r1954_3(glval) = VariableAddress[global_template] : +# 1954| r1954_4(int) = Constant[42] : +# 1954| m1954_5(int) = Store[global_template] : &:r1954_3, r1954_4 +# 1954| m1954_6(unknown) = Chi : total:m1954_2, partial:m1954_5 +# 1954| v1954_7(void) = ReturnVoid : +# 1954| v1954_8(void) = AliasedUse : ~m1954_6 +# 1954| v1954_9(void) = ExitFunction : + +# 1956| int test_global_template_int() +# 1956| Block 0 +# 1956| v1956_1(void) = EnterFunction : +# 1956| m1956_2(unknown) = AliasedDefinition : +# 1956| m1956_3(unknown) = InitializeNonLocal : +# 1956| m1956_4(unknown) = Chi : total:m1956_2, partial:m1956_3 +# 1957| r1957_1(glval) = VariableAddress[local_int] : +# 1957| r1957_2(glval) = VariableAddress[global_template] : +# 1957| r1957_3(int) = Load[global_template] : &:r1957_2, ~m1956_3 +# 1957| m1957_4(int) = Store[local_int] : &:r1957_1, r1957_3 +# 1958| r1958_1(glval) = VariableAddress[local_char] : +# 1958| r1958_2(glval) = VariableAddress[global_template] : +# 1958| r1958_3(char) = Load[global_template] : &:r1958_2, ~m1956_3 +# 1958| m1958_4(char) = Store[local_char] : &:r1958_1, r1958_3 +# 1959| r1959_1(glval) = VariableAddress[#return] : +# 1959| r1959_2(glval) = VariableAddress[local_int] : +# 1959| r1959_3(int) = Load[local_int] : &:r1959_2, m1957_4 +# 1959| r1959_4(glval) = VariableAddress[local_char] : +# 1959| r1959_5(char) = Load[local_char] : &:r1959_4, m1958_4 +# 1959| r1959_6(int) = Convert : r1959_5 +# 1959| r1959_7(int) = Add : r1959_3, r1959_6 +# 1959| m1959_8(int) = Store[#return] : &:r1959_1, r1959_7 +# 1956| r1956_5(glval) = VariableAddress[#return] : +# 1956| v1956_6(void) = ReturnValue : &:r1956_5, m1959_8 +# 1956| v1956_7(void) = AliasedUse : m1956_3 +# 1956| v1956_8(void) = ExitFunction : + +# 1964| int noreturnTest(int) +# 1964| Block 0 +# 1964| v1964_1(void) = EnterFunction : +# 1964| m1964_2(unknown) = AliasedDefinition : +# 1964| m1964_3(unknown) = InitializeNonLocal : +# 1964| m1964_4(unknown) = Chi : total:m1964_2, partial:m1964_3 +# 1964| r1964_5(glval) = VariableAddress[x] : +# 1964| m1964_6(int) = InitializeParameter[x] : &:r1964_5 +# 1965| r1965_1(glval) = VariableAddress[x] : +# 1965| r1965_2(int) = Load[x] : &:r1965_1, m1964_6 +# 1965| r1965_3(int) = Constant[10] : +# 1965| r1965_4(bool) = CompareLT : r1965_2, r1965_3 +# 1965| v1965_5(void) = ConditionalBranch : r1965_4 #-----| False -> Block 2 #-----| True -> Block 1 -# 1964| Block 1 -# 1964| r1964_1(glval) = VariableAddress[#return] : -# 1964| r1964_2(glval) = VariableAddress[x] : -# 1964| r1964_3(int) = Load[x] : &:r1964_2, m1962_6 -# 1964| m1964_4(int) = Store[#return] : &:r1964_1, r1964_3 -# 1962| r1962_7(glval) = VariableAddress[#return] : -# 1962| v1962_8(void) = ReturnValue : &:r1962_7, m1964_4 -# 1962| v1962_9(void) = AliasedUse : m1962_3 -# 1962| v1962_10(void) = ExitFunction : - -# 1966| Block 2 -# 1966| r1966_1(glval) = FunctionAddress[noreturnFunc] : -# 1966| v1966_2(void) = Call[noreturnFunc] : func:r1966_1 -# 1966| m1966_3(unknown) = ^CallSideEffect : ~m1962_4 -# 1966| m1966_4(unknown) = Chi : total:m1962_4, partial:m1966_3 -# 1962| v1962_11(void) = Unreached : - -# 1970| int noreturnTest2(int) -# 1970| Block 0 -# 1970| v1970_1(void) = EnterFunction : -# 1970| m1970_2(unknown) = AliasedDefinition : -# 1970| m1970_3(unknown) = InitializeNonLocal : -# 1970| m1970_4(unknown) = Chi : total:m1970_2, partial:m1970_3 -# 1970| r1970_5(glval) = VariableAddress[x] : -# 1970| m1970_6(int) = InitializeParameter[x] : &:r1970_5 -# 1971| r1971_1(glval) = VariableAddress[x] : -# 1971| r1971_2(int) = Load[x] : &:r1971_1, m1970_6 -# 1971| r1971_3(int) = Constant[10] : -# 1971| r1971_4(bool) = CompareLT : r1971_2, r1971_3 -# 1971| v1971_5(void) = ConditionalBranch : r1971_4 +# 1966| Block 1 +# 1966| r1966_1(glval) = VariableAddress[#return] : +# 1966| r1966_2(glval) = VariableAddress[x] : +# 1966| r1966_3(int) = Load[x] : &:r1966_2, m1964_6 +# 1966| m1966_4(int) = Store[#return] : &:r1966_1, r1966_3 +# 1964| r1964_7(glval) = VariableAddress[#return] : +# 1964| v1964_8(void) = ReturnValue : &:r1964_7, m1966_4 +# 1964| v1964_9(void) = AliasedUse : m1964_3 +# 1964| v1964_10(void) = ExitFunction : + +# 1968| Block 2 +# 1968| r1968_1(glval) = FunctionAddress[noreturnFunc] : +# 1968| v1968_2(void) = Call[noreturnFunc] : func:r1968_1 +# 1968| m1968_3(unknown) = ^CallSideEffect : ~m1964_4 +# 1968| m1968_4(unknown) = Chi : total:m1964_4, partial:m1968_3 +# 1964| v1964_11(void) = Unreached : + +# 1972| int noreturnTest2(int) +# 1972| Block 0 +# 1972| v1972_1(void) = EnterFunction : +# 1972| m1972_2(unknown) = AliasedDefinition : +# 1972| m1972_3(unknown) = InitializeNonLocal : +# 1972| m1972_4(unknown) = Chi : total:m1972_2, partial:m1972_3 +# 1972| r1972_5(glval) = VariableAddress[x] : +# 1972| m1972_6(int) = InitializeParameter[x] : &:r1972_5 +# 1973| r1973_1(glval) = VariableAddress[x] : +# 1973| r1973_2(int) = Load[x] : &:r1973_1, m1972_6 +# 1973| r1973_3(int) = Constant[10] : +# 1973| r1973_4(bool) = CompareLT : r1973_2, r1973_3 +# 1973| v1973_5(void) = ConditionalBranch : r1973_4 #-----| False -> Block 2 #-----| True -> Block 1 -# 1972| Block 1 -# 1972| r1972_1(glval) = FunctionAddress[noreturnFunc] : -# 1972| v1972_2(void) = Call[noreturnFunc] : func:r1972_1 -# 1972| m1972_3(unknown) = ^CallSideEffect : ~m1970_4 -# 1972| m1972_4(unknown) = Chi : total:m1970_4, partial:m1972_3 -# 1970| v1970_7(void) = Unreached : - -# 1974| Block 2 -# 1974| r1974_1(glval) = VariableAddress[#return] : -# 1974| r1974_2(glval) = VariableAddress[x] : -# 1974| r1974_3(int) = Load[x] : &:r1974_2, m1970_6 -# 1974| m1974_4(int) = Store[#return] : &:r1974_1, r1974_3 -# 1970| r1970_8(glval) = VariableAddress[#return] : -# 1970| v1970_9(void) = ReturnValue : &:r1970_8, m1974_4 -# 1970| v1970_10(void) = AliasedUse : m1970_3 -# 1970| v1970_11(void) = ExitFunction : - -# 1977| int static_function(int) -# 1977| Block 0 -# 1977| v1977_1(void) = EnterFunction : -# 1977| m1977_2(unknown) = AliasedDefinition : -# 1977| m1977_3(unknown) = InitializeNonLocal : -# 1977| m1977_4(unknown) = Chi : total:m1977_2, partial:m1977_3 -# 1977| r1977_5(glval) = VariableAddress[x] : -# 1977| m1977_6(int) = InitializeParameter[x] : &:r1977_5 -# 1978| r1978_1(glval) = VariableAddress[#return] : -# 1978| r1978_2(glval) = VariableAddress[x] : -# 1978| r1978_3(int) = Load[x] : &:r1978_2, m1977_6 -# 1978| m1978_4(int) = Store[#return] : &:r1978_1, r1978_3 -# 1977| r1977_7(glval) = VariableAddress[#return] : -# 1977| v1977_8(void) = ReturnValue : &:r1977_7, m1978_4 -# 1977| v1977_9(void) = AliasedUse : m1977_3 -# 1977| v1977_10(void) = ExitFunction : - -# 1981| void test_static_functions_with_assignments() -# 1981| Block 0 -# 1981| v1981_1(void) = EnterFunction : -# 1981| m1981_2(unknown) = AliasedDefinition : -# 1981| m1981_3(unknown) = InitializeNonLocal : -# 1981| m1981_4(unknown) = Chi : total:m1981_2, partial:m1981_3 -# 1982| r1982_1(glval) = VariableAddress[c] : -# 1982| m1982_2(C) = Uninitialized[c] : &:r1982_1 -# 1982| m1982_3(unknown) = Chi : total:m1981_4, partial:m1982_2 -# 1982| r1982_4(glval) = FunctionAddress[C] : -# 1982| v1982_5(void) = Call[C] : func:r1982_4, this:r1982_1 -# 1982| m1982_6(unknown) = ^CallSideEffect : ~m1982_3 -# 1982| m1982_7(unknown) = Chi : total:m1982_3, partial:m1982_6 -# 1982| m1982_8(C) = ^IndirectMayWriteSideEffect[-1] : &:r1982_1 -# 1982| m1982_9(unknown) = Chi : total:m1982_7, partial:m1982_8 -# 1983| r1983_1(glval) = VariableAddress[x] : -# 1983| m1983_2(int) = Uninitialized[x] : &:r1983_1 +# 1974| Block 1 +# 1974| r1974_1(glval) = FunctionAddress[noreturnFunc] : +# 1974| v1974_2(void) = Call[noreturnFunc] : func:r1974_1 +# 1974| m1974_3(unknown) = ^CallSideEffect : ~m1972_4 +# 1974| m1974_4(unknown) = Chi : total:m1972_4, partial:m1974_3 +# 1972| v1972_7(void) = Unreached : + +# 1976| Block 2 +# 1976| r1976_1(glval) = VariableAddress[#return] : +# 1976| r1976_2(glval) = VariableAddress[x] : +# 1976| r1976_3(int) = Load[x] : &:r1976_2, m1972_6 +# 1976| m1976_4(int) = Store[#return] : &:r1976_1, r1976_3 +# 1972| r1972_8(glval) = VariableAddress[#return] : +# 1972| v1972_9(void) = ReturnValue : &:r1972_8, m1976_4 +# 1972| v1972_10(void) = AliasedUse : m1972_3 +# 1972| v1972_11(void) = ExitFunction : + +# 1979| int static_function(int) +# 1979| Block 0 +# 1979| v1979_1(void) = EnterFunction : +# 1979| m1979_2(unknown) = AliasedDefinition : +# 1979| m1979_3(unknown) = InitializeNonLocal : +# 1979| m1979_4(unknown) = Chi : total:m1979_2, partial:m1979_3 +# 1979| r1979_5(glval) = VariableAddress[x] : +# 1979| m1979_6(int) = InitializeParameter[x] : &:r1979_5 +# 1980| r1980_1(glval) = VariableAddress[#return] : +# 1980| r1980_2(glval) = VariableAddress[x] : +# 1980| r1980_3(int) = Load[x] : &:r1980_2, m1979_6 +# 1980| m1980_4(int) = Store[#return] : &:r1980_1, r1980_3 +# 1979| r1979_7(glval) = VariableAddress[#return] : +# 1979| v1979_8(void) = ReturnValue : &:r1979_7, m1980_4 +# 1979| v1979_9(void) = AliasedUse : m1979_3 +# 1979| v1979_10(void) = ExitFunction : + +# 1983| void test_static_functions_with_assignments() +# 1983| Block 0 +# 1983| v1983_1(void) = EnterFunction : +# 1983| m1983_2(unknown) = AliasedDefinition : +# 1983| m1983_3(unknown) = InitializeNonLocal : +# 1983| m1983_4(unknown) = Chi : total:m1983_2, partial:m1983_3 # 1984| r1984_1(glval) = VariableAddress[c] : -# 1984| r1984_2(glval) = FunctionAddress[StaticMemberFunction] : -# 1984| r1984_3(int) = Constant[10] : -# 1984| r1984_4(int) = Call[StaticMemberFunction] : func:r1984_2, 0:r1984_3 -# 1984| m1984_5(unknown) = ^CallSideEffect : ~m1982_9 -# 1984| m1984_6(unknown) = Chi : total:m1982_9, partial:m1984_5 -# 1984| r1984_7(glval) = VariableAddress[x] : -# 1984| m1984_8(int) = Store[x] : &:r1984_7, r1984_4 -# 1985| r1985_1(glval) = VariableAddress[y] : -# 1985| m1985_2(int) = Uninitialized[y] : &:r1985_1 -# 1986| r1986_1(glval) = FunctionAddress[StaticMemberFunction] : -# 1986| r1986_2(int) = Constant[10] : -# 1986| r1986_3(int) = Call[StaticMemberFunction] : func:r1986_1, 0:r1986_2 -# 1986| m1986_4(unknown) = ^CallSideEffect : ~m1984_6 -# 1986| m1986_5(unknown) = Chi : total:m1984_6, partial:m1986_4 -# 1986| r1986_6(glval) = VariableAddress[y] : -# 1986| m1986_7(int) = Store[y] : &:r1986_6, r1986_3 -# 1987| r1987_1(glval) = VariableAddress[z] : -# 1987| m1987_2(int) = Uninitialized[z] : &:r1987_1 -# 1988| r1988_1(glval) = FunctionAddress[static_function] : +# 1984| m1984_2(C) = Uninitialized[c] : &:r1984_1 +# 1984| m1984_3(unknown) = Chi : total:m1983_4, partial:m1984_2 +# 1984| r1984_4(glval) = FunctionAddress[C] : +# 1984| v1984_5(void) = Call[C] : func:r1984_4, this:r1984_1 +# 1984| m1984_6(unknown) = ^CallSideEffect : ~m1984_3 +# 1984| m1984_7(unknown) = Chi : total:m1984_3, partial:m1984_6 +# 1984| m1984_8(C) = ^IndirectMayWriteSideEffect[-1] : &:r1984_1 +# 1984| m1984_9(unknown) = Chi : total:m1984_7, partial:m1984_8 +# 1985| r1985_1(glval) = VariableAddress[x] : +# 1985| m1985_2(int) = Uninitialized[x] : &:r1985_1 +# 1986| r1986_1(glval) = VariableAddress[c] : +# 1986| r1986_2(glval) = FunctionAddress[StaticMemberFunction] : +# 1986| r1986_3(int) = Constant[10] : +# 1986| r1986_4(int) = Call[StaticMemberFunction] : func:r1986_2, 0:r1986_3 +# 1986| m1986_5(unknown) = ^CallSideEffect : ~m1984_9 +# 1986| m1986_6(unknown) = Chi : total:m1984_9, partial:m1986_5 +# 1986| r1986_7(glval) = VariableAddress[x] : +# 1986| m1986_8(int) = Store[x] : &:r1986_7, r1986_4 +# 1987| r1987_1(glval) = VariableAddress[y] : +# 1987| m1987_2(int) = Uninitialized[y] : &:r1987_1 +# 1988| r1988_1(glval) = FunctionAddress[StaticMemberFunction] : # 1988| r1988_2(int) = Constant[10] : -# 1988| r1988_3(int) = Call[static_function] : func:r1988_1, 0:r1988_2 -# 1988| m1988_4(unknown) = ^CallSideEffect : ~m1986_5 -# 1988| m1988_5(unknown) = Chi : total:m1986_5, partial:m1988_4 -# 1988| r1988_6(glval) = VariableAddress[z] : -# 1988| m1988_7(int) = Store[z] : &:r1988_6, r1988_3 -# 1989| v1989_1(void) = NoOp : -# 1989| r1989_2(glval) = VariableAddress[c] : -# 1989| r1989_3(glval) = FunctionAddress[~C] : -# 1989| v1989_4(void) = Call[~C] : func:r1989_3, this:r1989_2 -# 1989| m1989_5(unknown) = ^CallSideEffect : ~m1988_5 -# 1989| m1989_6(unknown) = Chi : total:m1988_5, partial:m1989_5 -# 1989| v1989_7(void) = ^IndirectReadSideEffect[-1] : &:r1989_2, ~m1989_6 -# 1989| m1989_8(C) = ^IndirectMayWriteSideEffect[-1] : &:r1989_2 -# 1989| m1989_9(unknown) = Chi : total:m1989_6, partial:m1989_8 -# 1981| v1981_5(void) = ReturnVoid : -# 1981| v1981_6(void) = AliasedUse : ~m1989_6 -# 1981| v1981_7(void) = ExitFunction : - -# 1991| void test_double_assign() -# 1991| Block 0 -# 1991| v1991_1(void) = EnterFunction : -# 1991| m1991_2(unknown) = AliasedDefinition : -# 1991| m1991_3(unknown) = InitializeNonLocal : -# 1991| m1991_4(unknown) = Chi : total:m1991_2, partial:m1991_3 -# 1992| r1992_1(glval) = VariableAddress[i] : -# 1992| m1992_2(int) = Uninitialized[i] : &:r1992_1 -# 1992| r1992_3(glval) = VariableAddress[j] : -# 1992| m1992_4(int) = Uninitialized[j] : &:r1992_3 -# 1993| r1993_1(int) = Constant[40] : -# 1993| r1993_2(glval) = VariableAddress[j] : -# 1993| m1993_3(int) = Store[j] : &:r1993_2, r1993_1 -# 1993| r1993_4(int) = Load[j] : &:r1993_2, m1993_3 -# 1993| r1993_5(glval) = VariableAddress[i] : -# 1993| m1993_6(int) = Store[i] : &:r1993_5, r1993_4 -# 1994| v1994_1(void) = NoOp : -# 1991| v1991_5(void) = ReturnVoid : -# 1991| v1991_6(void) = AliasedUse : m1991_3 -# 1991| v1991_7(void) = ExitFunction : - -# 1996| void test_assign_with_assign_operation() -# 1996| Block 0 -# 1996| v1996_1(void) = EnterFunction : -# 1996| m1996_2(unknown) = AliasedDefinition : -# 1996| m1996_3(unknown) = InitializeNonLocal : -# 1996| m1996_4(unknown) = Chi : total:m1996_2, partial:m1996_3 -# 1997| r1997_1(glval) = VariableAddress[i] : -# 1997| m1997_2(int) = Uninitialized[i] : &:r1997_1 -# 1997| r1997_3(glval) = VariableAddress[j] : -# 1997| r1997_4(int) = Constant[0] : -# 1997| m1997_5(int) = Store[j] : &:r1997_3, r1997_4 -# 1998| r1998_1(int) = Constant[40] : -# 1998| r1998_2(glval) = VariableAddress[j] : -# 1998| r1998_3(int) = Load[j] : &:r1998_2, m1997_5 -# 1998| r1998_4(int) = Add : r1998_3, r1998_1 -# 1998| m1998_5(int) = Store[j] : &:r1998_2, r1998_4 -# 1998| r1998_6(int) = Load[j] : &:r1998_2, m1998_5 -# 1998| r1998_7(glval) = VariableAddress[i] : -# 1998| m1998_8(int) = Store[i] : &:r1998_7, r1998_6 -# 1999| v1999_1(void) = NoOp : -# 1996| v1996_5(void) = ReturnVoid : -# 1996| v1996_6(void) = AliasedUse : m1996_3 -# 1996| v1996_7(void) = ExitFunction : - -# 2005| D& D::ReferenceStaticMemberFunction() -# 2005| Block 0 -# 2005| v2005_1(void) = EnterFunction : -# 2005| m2005_2(unknown) = AliasedDefinition : -# 2005| m2005_3(unknown) = InitializeNonLocal : -# 2005| m2005_4(unknown) = Chi : total:m2005_2, partial:m2005_3 -# 2006| r2006_1(glval) = VariableAddress[#return] : -# 2006| r2006_2(glval) = VariableAddress[x] : -# 2006| r2006_3(D &) = CopyValue : r2006_2 -# 2006| m2006_4(D &) = Store[#return] : &:r2006_1, r2006_3 -# 2005| r2005_5(glval) = VariableAddress[#return] : -# 2005| v2005_6(void) = ReturnValue : &:r2005_5, m2006_4 -# 2005| v2005_7(void) = AliasedUse : m2005_3 -# 2005| v2005_8(void) = ExitFunction : - -# 2008| D D::ObjectStaticMemberFunction() -# 2008| Block 0 -# 2008| v2008_1(void) = EnterFunction : -# 2008| m2008_2(unknown) = AliasedDefinition : -# 2008| m2008_3(unknown) = InitializeNonLocal : -# 2008| m2008_4(unknown) = Chi : total:m2008_2, partial:m2008_3 -# 2009| r2009_1(glval) = VariableAddress[#return] : -# 2009| r2009_2(glval) = VariableAddress[x] : -# 2009| r2009_3(D) = Load[x] : &:r2009_2, ~m2008_3 -# 2009| m2009_4(D) = Store[#return] : &:r2009_1, r2009_3 -# 2008| r2008_5(glval) = VariableAddress[#return] : -# 2008| v2008_6(void) = ReturnValue : &:r2008_5, m2009_4 -# 2008| v2008_7(void) = AliasedUse : m2008_3 -# 2008| v2008_8(void) = ExitFunction : - -# 2013| void test_static_member_functions_with_reference_return() -# 2013| Block 0 -# 2013| v2013_1(void) = EnterFunction : -# 2013| m2013_2(unknown) = AliasedDefinition : -# 2013| m2013_3(unknown) = InitializeNonLocal : -# 2013| m2013_4(unknown) = Chi : total:m2013_2, partial:m2013_3 -# 2014| r2014_1(glval) = VariableAddress[d] : -# 2014| m2014_2(D) = Uninitialized[d] : &:r2014_1 +# 1988| r1988_3(int) = Call[StaticMemberFunction] : func:r1988_1, 0:r1988_2 +# 1988| m1988_4(unknown) = ^CallSideEffect : ~m1986_6 +# 1988| m1988_5(unknown) = Chi : total:m1986_6, partial:m1988_4 +# 1988| r1988_6(glval) = VariableAddress[y] : +# 1988| m1988_7(int) = Store[y] : &:r1988_6, r1988_3 +# 1989| r1989_1(glval) = VariableAddress[z] : +# 1989| m1989_2(int) = Uninitialized[z] : &:r1989_1 +# 1990| r1990_1(glval) = FunctionAddress[static_function] : +# 1990| r1990_2(int) = Constant[10] : +# 1990| r1990_3(int) = Call[static_function] : func:r1990_1, 0:r1990_2 +# 1990| m1990_4(unknown) = ^CallSideEffect : ~m1988_5 +# 1990| m1990_5(unknown) = Chi : total:m1988_5, partial:m1990_4 +# 1990| r1990_6(glval) = VariableAddress[z] : +# 1990| m1990_7(int) = Store[z] : &:r1990_6, r1990_3 +# 1991| v1991_1(void) = NoOp : +# 1991| r1991_2(glval) = VariableAddress[c] : +# 1991| r1991_3(glval) = FunctionAddress[~C] : +# 1991| v1991_4(void) = Call[~C] : func:r1991_3, this:r1991_2 +# 1991| m1991_5(unknown) = ^CallSideEffect : ~m1990_5 +# 1991| m1991_6(unknown) = Chi : total:m1990_5, partial:m1991_5 +# 1991| v1991_7(void) = ^IndirectReadSideEffect[-1] : &:r1991_2, ~m1991_6 +# 1991| m1991_8(C) = ^IndirectMayWriteSideEffect[-1] : &:r1991_2 +# 1991| m1991_9(unknown) = Chi : total:m1991_6, partial:m1991_8 +# 1983| v1983_5(void) = ReturnVoid : +# 1983| v1983_6(void) = AliasedUse : ~m1991_6 +# 1983| v1983_7(void) = ExitFunction : + +# 1993| void test_double_assign() +# 1993| Block 0 +# 1993| v1993_1(void) = EnterFunction : +# 1993| m1993_2(unknown) = AliasedDefinition : +# 1993| m1993_3(unknown) = InitializeNonLocal : +# 1993| m1993_4(unknown) = Chi : total:m1993_2, partial:m1993_3 +# 1994| r1994_1(glval) = VariableAddress[i] : +# 1994| m1994_2(int) = Uninitialized[i] : &:r1994_1 +# 1994| r1994_3(glval) = VariableAddress[j] : +# 1994| m1994_4(int) = Uninitialized[j] : &:r1994_3 +# 1995| r1995_1(int) = Constant[40] : +# 1995| r1995_2(glval) = VariableAddress[j] : +# 1995| m1995_3(int) = Store[j] : &:r1995_2, r1995_1 +# 1995| r1995_4(int) = Load[j] : &:r1995_2, m1995_3 +# 1995| r1995_5(glval) = VariableAddress[i] : +# 1995| m1995_6(int) = Store[i] : &:r1995_5, r1995_4 +# 1996| v1996_1(void) = NoOp : +# 1993| v1993_5(void) = ReturnVoid : +# 1993| v1993_6(void) = AliasedUse : m1993_3 +# 1993| v1993_7(void) = ExitFunction : + +# 1998| void test_assign_with_assign_operation() +# 1998| Block 0 +# 1998| v1998_1(void) = EnterFunction : +# 1998| m1998_2(unknown) = AliasedDefinition : +# 1998| m1998_3(unknown) = InitializeNonLocal : +# 1998| m1998_4(unknown) = Chi : total:m1998_2, partial:m1998_3 +# 1999| r1999_1(glval) = VariableAddress[i] : +# 1999| m1999_2(int) = Uninitialized[i] : &:r1999_1 +# 1999| r1999_3(glval) = VariableAddress[j] : +# 1999| r1999_4(int) = Constant[0] : +# 1999| m1999_5(int) = Store[j] : &:r1999_3, r1999_4 +# 2000| r2000_1(int) = Constant[40] : +# 2000| r2000_2(glval) = VariableAddress[j] : +# 2000| r2000_3(int) = Load[j] : &:r2000_2, m1999_5 +# 2000| r2000_4(int) = Add : r2000_3, r2000_1 +# 2000| m2000_5(int) = Store[j] : &:r2000_2, r2000_4 +# 2000| r2000_6(int) = Load[j] : &:r2000_2, m2000_5 +# 2000| r2000_7(glval) = VariableAddress[i] : +# 2000| m2000_8(int) = Store[i] : &:r2000_7, r2000_6 +# 2001| v2001_1(void) = NoOp : +# 1998| v1998_5(void) = ReturnVoid : +# 1998| v1998_6(void) = AliasedUse : m1998_3 +# 1998| v1998_7(void) = ExitFunction : + +# 2007| D& D::ReferenceStaticMemberFunction() +# 2007| Block 0 +# 2007| v2007_1(void) = EnterFunction : +# 2007| m2007_2(unknown) = AliasedDefinition : +# 2007| m2007_3(unknown) = InitializeNonLocal : +# 2007| m2007_4(unknown) = Chi : total:m2007_2, partial:m2007_3 +# 2008| r2008_1(glval) = VariableAddress[#return] : +# 2008| r2008_2(glval) = VariableAddress[x] : +# 2008| r2008_3(D &) = CopyValue : r2008_2 +# 2008| m2008_4(D &) = Store[#return] : &:r2008_1, r2008_3 +# 2007| r2007_5(glval) = VariableAddress[#return] : +# 2007| v2007_6(void) = ReturnValue : &:r2007_5, m2008_4 +# 2007| v2007_7(void) = AliasedUse : m2007_3 +# 2007| v2007_8(void) = ExitFunction : + +# 2010| D D::ObjectStaticMemberFunction() +# 2010| Block 0 +# 2010| v2010_1(void) = EnterFunction : +# 2010| m2010_2(unknown) = AliasedDefinition : +# 2010| m2010_3(unknown) = InitializeNonLocal : +# 2010| m2010_4(unknown) = Chi : total:m2010_2, partial:m2010_3 +# 2011| r2011_1(glval) = VariableAddress[#return] : +# 2011| r2011_2(glval) = VariableAddress[x] : +# 2011| r2011_3(D) = Load[x] : &:r2011_2, ~m2010_3 +# 2011| m2011_4(D) = Store[#return] : &:r2011_1, r2011_3 +# 2010| r2010_5(glval) = VariableAddress[#return] : +# 2010| v2010_6(void) = ReturnValue : &:r2010_5, m2011_4 +# 2010| v2010_7(void) = AliasedUse : m2010_3 +# 2010| v2010_8(void) = ExitFunction : + +# 2015| void test_static_member_functions_with_reference_return() +# 2015| Block 0 +# 2015| v2015_1(void) = EnterFunction : +# 2015| m2015_2(unknown) = AliasedDefinition : +# 2015| m2015_3(unknown) = InitializeNonLocal : +# 2015| m2015_4(unknown) = Chi : total:m2015_2, partial:m2015_3 # 2016| r2016_1(glval) = VariableAddress[d] : -# 2016| r2016_2(glval) = FunctionAddress[ReferenceStaticMemberFunction] : -# 2016| r2016_3(D &) = Call[ReferenceStaticMemberFunction] : func:r2016_2 -# 2016| m2016_4(unknown) = ^CallSideEffect : ~m2013_4 -# 2016| m2016_5(unknown) = Chi : total:m2013_4, partial:m2016_4 -# 2016| r2016_6(glval) = CopyValue : r2016_3 -# 2017| r2017_1(glval) = FunctionAddress[ReferenceStaticMemberFunction] : -# 2017| r2017_2(D &) = Call[ReferenceStaticMemberFunction] : func:r2017_1 -# 2017| m2017_3(unknown) = ^CallSideEffect : ~m2016_5 -# 2017| m2017_4(unknown) = Chi : total:m2016_5, partial:m2017_3 -# 2017| r2017_5(glval) = CopyValue : r2017_2 +# 2016| m2016_2(D) = Uninitialized[d] : &:r2016_1 # 2018| r2018_1(glval) = VariableAddress[d] : -# 2018| r2018_2(glval) = FunctionAddress[ObjectStaticMemberFunction] : -# 2018| r2018_3(D) = Call[ObjectStaticMemberFunction] : func:r2018_2 -# 2018| m2018_4(unknown) = ^CallSideEffect : ~m2017_4 -# 2018| m2018_5(unknown) = Chi : total:m2017_4, partial:m2018_4 -# 2019| r2019_1(glval) = FunctionAddress[ObjectStaticMemberFunction] : -# 2019| r2019_2(D) = Call[ObjectStaticMemberFunction] : func:r2019_1 +# 2018| r2018_2(glval) = FunctionAddress[ReferenceStaticMemberFunction] : +# 2018| r2018_3(D &) = Call[ReferenceStaticMemberFunction] : func:r2018_2 +# 2018| m2018_4(unknown) = ^CallSideEffect : ~m2015_4 +# 2018| m2018_5(unknown) = Chi : total:m2015_4, partial:m2018_4 +# 2018| r2018_6(glval) = CopyValue : r2018_3 +# 2019| r2019_1(glval) = FunctionAddress[ReferenceStaticMemberFunction] : +# 2019| r2019_2(D &) = Call[ReferenceStaticMemberFunction] : func:r2019_1 # 2019| m2019_3(unknown) = ^CallSideEffect : ~m2018_5 # 2019| m2019_4(unknown) = Chi : total:m2018_5, partial:m2019_3 -# 2021| r2021_1(glval) = VariableAddress[x] : -# 2021| m2021_2(D) = Uninitialized[x] : &:r2021_1 -# 2022| r2022_1(glval) = VariableAddress[d] : -# 2022| r2022_2(glval) = FunctionAddress[ReferenceStaticMemberFunction] : -# 2022| r2022_3(D &) = Call[ReferenceStaticMemberFunction] : func:r2022_2 -# 2022| m2022_4(unknown) = ^CallSideEffect : ~m2019_4 -# 2022| m2022_5(unknown) = Chi : total:m2019_4, partial:m2022_4 -# 2022| r2022_6(D) = Load[?] : &:r2022_3, ~m2022_5 -# 2022| r2022_7(glval) = VariableAddress[x] : -# 2022| m2022_8(D) = Store[x] : &:r2022_7, r2022_6 -# 2023| r2023_1(glval) = VariableAddress[y] : -# 2023| m2023_2(D) = Uninitialized[y] : &:r2023_1 -# 2024| r2024_1(glval) = FunctionAddress[ReferenceStaticMemberFunction] : -# 2024| r2024_2(D &) = Call[ReferenceStaticMemberFunction] : func:r2024_1 -# 2024| m2024_3(unknown) = ^CallSideEffect : ~m2022_5 -# 2024| m2024_4(unknown) = Chi : total:m2022_5, partial:m2024_3 -# 2024| r2024_5(D) = Load[?] : &:r2024_2, ~m2024_4 -# 2024| r2024_6(glval) = VariableAddress[y] : -# 2024| m2024_7(D) = Store[y] : &:r2024_6, r2024_5 -# 2025| r2025_1(glval) = VariableAddress[j] : -# 2025| m2025_2(D) = Uninitialized[j] : &:r2025_1 -# 2026| r2026_1(glval) = VariableAddress[d] : -# 2026| r2026_2(glval) = FunctionAddress[ObjectStaticMemberFunction] : -# 2026| r2026_3(D) = Call[ObjectStaticMemberFunction] : func:r2026_2 -# 2026| m2026_4(unknown) = ^CallSideEffect : ~m2024_4 -# 2026| m2026_5(unknown) = Chi : total:m2024_4, partial:m2026_4 -# 2026| r2026_6(glval) = VariableAddress[j] : -# 2026| m2026_7(D) = Store[j] : &:r2026_6, r2026_3 -# 2027| r2027_1(glval) = VariableAddress[k] : -# 2027| m2027_2(D) = Uninitialized[k] : &:r2027_1 -# 2028| r2028_1(glval) = FunctionAddress[ObjectStaticMemberFunction] : -# 2028| r2028_2(D) = Call[ObjectStaticMemberFunction] : func:r2028_1 -# 2028| m2028_3(unknown) = ^CallSideEffect : ~m2026_5 -# 2028| m2028_4(unknown) = Chi : total:m2026_5, partial:m2028_3 -# 2028| r2028_5(glval) = VariableAddress[k] : -# 2028| m2028_6(D) = Store[k] : &:r2028_5, r2028_2 -# 2029| v2029_1(void) = NoOp : -# 2013| v2013_5(void) = ReturnVoid : -# 2013| v2013_6(void) = AliasedUse : ~m2028_4 -# 2013| v2013_7(void) = ExitFunction : - -# 2031| void test_volatile() -# 2031| Block 0 -# 2031| v2031_1(void) = EnterFunction : -# 2031| m2031_2(unknown) = AliasedDefinition : -# 2031| m2031_3(unknown) = InitializeNonLocal : -# 2031| m2031_4(unknown) = Chi : total:m2031_2, partial:m2031_3 -# 2032| r2032_1(glval) = VariableAddress[x] : -# 2032| m2032_2(int) = Uninitialized[x] : &:r2032_1 -# 2033| r2033_1(glval) = VariableAddress[x] : -# 2033| r2033_2(int) = Load[x] : &:r2033_1, m2032_2 -# 2034| v2034_1(void) = NoOp : -# 2031| v2031_5(void) = ReturnVoid : -# 2031| v2031_6(void) = AliasedUse : m2031_3 -# 2031| v2031_7(void) = ExitFunction : - -# 2042| void value_category_test() -# 2042| Block 0 -# 2042| v2042_1(void) = EnterFunction : -# 2042| m2042_2(unknown) = AliasedDefinition : -# 2042| m2042_3(unknown) = InitializeNonLocal : -# 2042| m2042_4(unknown) = Chi : total:m2042_2, partial:m2042_3 -# 2043| r2043_1(glval) = VariableAddress[c] : -# 2043| m2043_2(ValCat) = Uninitialized[c] : &:r2043_1 +# 2019| r2019_5(glval) = CopyValue : r2019_2 +# 2020| r2020_1(glval) = VariableAddress[d] : +# 2020| r2020_2(glval) = FunctionAddress[ObjectStaticMemberFunction] : +# 2020| r2020_3(D) = Call[ObjectStaticMemberFunction] : func:r2020_2 +# 2020| m2020_4(unknown) = ^CallSideEffect : ~m2019_4 +# 2020| m2020_5(unknown) = Chi : total:m2019_4, partial:m2020_4 +# 2021| r2021_1(glval) = FunctionAddress[ObjectStaticMemberFunction] : +# 2021| r2021_2(D) = Call[ObjectStaticMemberFunction] : func:r2021_1 +# 2021| m2021_3(unknown) = ^CallSideEffect : ~m2020_5 +# 2021| m2021_4(unknown) = Chi : total:m2020_5, partial:m2021_3 +# 2023| r2023_1(glval) = VariableAddress[x] : +# 2023| m2023_2(D) = Uninitialized[x] : &:r2023_1 +# 2024| r2024_1(glval) = VariableAddress[d] : +# 2024| r2024_2(glval) = FunctionAddress[ReferenceStaticMemberFunction] : +# 2024| r2024_3(D &) = Call[ReferenceStaticMemberFunction] : func:r2024_2 +# 2024| m2024_4(unknown) = ^CallSideEffect : ~m2021_4 +# 2024| m2024_5(unknown) = Chi : total:m2021_4, partial:m2024_4 +# 2024| r2024_6(D) = Load[?] : &:r2024_3, ~m2024_5 +# 2024| r2024_7(glval) = VariableAddress[x] : +# 2024| m2024_8(D) = Store[x] : &:r2024_7, r2024_6 +# 2025| r2025_1(glval) = VariableAddress[y] : +# 2025| m2025_2(D) = Uninitialized[y] : &:r2025_1 +# 2026| r2026_1(glval) = FunctionAddress[ReferenceStaticMemberFunction] : +# 2026| r2026_2(D &) = Call[ReferenceStaticMemberFunction] : func:r2026_1 +# 2026| m2026_3(unknown) = ^CallSideEffect : ~m2024_5 +# 2026| m2026_4(unknown) = Chi : total:m2024_5, partial:m2026_3 +# 2026| r2026_5(D) = Load[?] : &:r2026_2, ~m2026_4 +# 2026| r2026_6(glval) = VariableAddress[y] : +# 2026| m2026_7(D) = Store[y] : &:r2026_6, r2026_5 +# 2027| r2027_1(glval) = VariableAddress[j] : +# 2027| m2027_2(D) = Uninitialized[j] : &:r2027_1 +# 2028| r2028_1(glval) = VariableAddress[d] : +# 2028| r2028_2(glval) = FunctionAddress[ObjectStaticMemberFunction] : +# 2028| r2028_3(D) = Call[ObjectStaticMemberFunction] : func:r2028_2 +# 2028| m2028_4(unknown) = ^CallSideEffect : ~m2026_4 +# 2028| m2028_5(unknown) = Chi : total:m2026_4, partial:m2028_4 +# 2028| r2028_6(glval) = VariableAddress[j] : +# 2028| m2028_7(D) = Store[j] : &:r2028_6, r2028_3 +# 2029| r2029_1(glval) = VariableAddress[k] : +# 2029| m2029_2(D) = Uninitialized[k] : &:r2029_1 +# 2030| r2030_1(glval) = FunctionAddress[ObjectStaticMemberFunction] : +# 2030| r2030_2(D) = Call[ObjectStaticMemberFunction] : func:r2030_1 +# 2030| m2030_3(unknown) = ^CallSideEffect : ~m2028_5 +# 2030| m2030_4(unknown) = Chi : total:m2028_5, partial:m2030_3 +# 2030| r2030_5(glval) = VariableAddress[k] : +# 2030| m2030_6(D) = Store[k] : &:r2030_5, r2030_2 +# 2031| v2031_1(void) = NoOp : +# 2015| v2015_5(void) = ReturnVoid : +# 2015| v2015_6(void) = AliasedUse : ~m2030_4 +# 2015| v2015_7(void) = ExitFunction : + +# 2033| void test_volatile() +# 2033| Block 0 +# 2033| v2033_1(void) = EnterFunction : +# 2033| m2033_2(unknown) = AliasedDefinition : +# 2033| m2033_3(unknown) = InitializeNonLocal : +# 2033| m2033_4(unknown) = Chi : total:m2033_2, partial:m2033_3 +# 2034| r2034_1(glval) = VariableAddress[x] : +# 2034| m2034_2(int) = Uninitialized[x] : &:r2034_1 +# 2035| r2035_1(glval) = VariableAddress[x] : +# 2035| r2035_2(int) = Load[x] : &:r2035_1, m2034_2 +# 2036| v2036_1(void) = NoOp : +# 2033| v2033_5(void) = ReturnVoid : +# 2033| v2033_6(void) = AliasedUse : m2033_3 +# 2033| v2033_7(void) = ExitFunction : + +# 2044| void value_category_test() +# 2044| Block 0 +# 2044| v2044_1(void) = EnterFunction : +# 2044| m2044_2(unknown) = AliasedDefinition : +# 2044| m2044_3(unknown) = InitializeNonLocal : +# 2044| m2044_4(unknown) = Chi : total:m2044_2, partial:m2044_3 +# 2045| r2045_1(glval) = VariableAddress[c] : +# 2045| m2045_2(ValCat) = Uninitialized[c] : &:r2045_1 #-----| r0_1(glval) = VariableAddress[#temp0:0] : #-----| m0_2(ValCat) = Uninitialized[#temp0:0] : &:r0_1 #-----| r0_3(ValCat) = Load[#temp0:0] : &:r0_1, m0_2 -# 2045| r2045_1(glval) = VariableAddress[c] : -# 2045| r2045_2(glval) = FunctionAddress[lvalue] : -# 2045| r2045_3(ValCat &) = Call[lvalue] : func:r2045_2 -# 2045| m2045_4(unknown) = ^CallSideEffect : ~m2042_4 -# 2045| m2045_5(unknown) = Chi : total:m2042_4, partial:m2045_4 -# 2045| r2045_6(glval) = CopyValue : r2045_3 -# 2045| m2045_7(ValCat) = Store[?] : &:r2045_6, r0_3 -# 2045| m2045_8(unknown) = Chi : total:m2045_5, partial:m2045_7 +# 2047| r2047_1(glval) = VariableAddress[c] : +# 2047| r2047_2(glval) = FunctionAddress[lvalue] : +# 2047| r2047_3(ValCat &) = Call[lvalue] : func:r2047_2 +# 2047| m2047_4(unknown) = ^CallSideEffect : ~m2044_4 +# 2047| m2047_5(unknown) = Chi : total:m2044_4, partial:m2047_4 +# 2047| r2047_6(glval) = CopyValue : r2047_3 +# 2047| m2047_7(ValCat) = Store[?] : &:r2047_6, r0_3 +# 2047| m2047_8(unknown) = Chi : total:m2047_5, partial:m2047_7 #-----| r0_4(glval) = VariableAddress[#temp0:0] : #-----| m0_5(ValCat) = Uninitialized[#temp0:0] : &:r0_4 #-----| r0_6(ValCat) = Load[#temp0:0] : &:r0_4, m0_5 -# 2046| r2046_1(glval) = VariableAddress[c] : -# 2046| r2046_2(glval) = FunctionAddress[xvalue] : -# 2046| r2046_3(ValCat &&) = Call[xvalue] : func:r2046_2 -# 2046| m2046_4(unknown) = ^CallSideEffect : ~m2045_8 -# 2046| m2046_5(unknown) = Chi : total:m2045_8, partial:m2046_4 -# 2046| r2046_6(glval) = CopyValue : r2046_3 -# 2046| m2046_7(ValCat) = Store[?] : &:r2046_6, r0_6 -# 2046| m2046_8(unknown) = Chi : total:m2046_5, partial:m2046_7 +# 2048| r2048_1(glval) = VariableAddress[c] : +# 2048| r2048_2(glval) = FunctionAddress[xvalue] : +# 2048| r2048_3(ValCat &&) = Call[xvalue] : func:r2048_2 +# 2048| m2048_4(unknown) = ^CallSideEffect : ~m2047_8 +# 2048| m2048_5(unknown) = Chi : total:m2047_8, partial:m2048_4 +# 2048| r2048_6(glval) = CopyValue : r2048_3 +# 2048| m2048_7(ValCat) = Store[?] : &:r2048_6, r0_6 +# 2048| m2048_8(unknown) = Chi : total:m2048_5, partial:m2048_7 #-----| r0_7(glval) = VariableAddress[#temp0:0] : #-----| m0_8(ValCat) = Uninitialized[#temp0:0] : &:r0_7 #-----| r0_9(ValCat) = Load[#temp0:0] : &:r0_7, m0_8 -# 2047| r2047_1(glval) = VariableAddress[#temp2047:5] : -# 2047| r2047_2(glval) = VariableAddress[c] : -# 2047| r2047_3(glval) = FunctionAddress[prvalue] : -# 2047| r2047_4(ValCat) = Call[prvalue] : func:r2047_3 -# 2047| m2047_5(unknown) = ^CallSideEffect : ~m2046_8 -# 2047| m2047_6(unknown) = Chi : total:m2046_8, partial:m2047_5 -# 2047| m2047_7(ValCat) = Store[#temp2047:5] : &:r2047_1, r2047_4 -# 2047| m2047_8(ValCat) = Store[#temp2047:5] : &:r2047_1, r0_9 +# 2049| r2049_1(glval) = VariableAddress[#temp2049:5] : +# 2049| r2049_2(glval) = VariableAddress[c] : +# 2049| r2049_3(glval) = FunctionAddress[prvalue] : +# 2049| r2049_4(ValCat) = Call[prvalue] : func:r2049_3 +# 2049| m2049_5(unknown) = ^CallSideEffect : ~m2048_8 +# 2049| m2049_6(unknown) = Chi : total:m2048_8, partial:m2049_5 +# 2049| m2049_7(ValCat) = Store[#temp2049:5] : &:r2049_1, r2049_4 +# 2049| m2049_8(ValCat) = Store[#temp2049:5] : &:r2049_1, r0_9 #-----| r0_10(glval) = VariableAddress[#temp0:0] : #-----| m0_11(ValCat) = Uninitialized[#temp0:0] : &:r0_10 #-----| r0_12(ValCat) = Load[#temp0:0] : &:r0_10, m0_11 -# 2048| r2048_1(glval) = FunctionAddress[lvalue] : -# 2048| r2048_2(ValCat &) = Call[lvalue] : func:r2048_1 -# 2048| m2048_3(unknown) = ^CallSideEffect : ~m2047_6 -# 2048| m2048_4(unknown) = Chi : total:m2047_6, partial:m2048_3 -# 2048| r2048_5(glval) = CopyValue : r2048_2 -# 2048| m2048_6(ValCat) = Store[?] : &:r2048_5, r0_12 -# 2048| m2048_7(unknown) = Chi : total:m2048_4, partial:m2048_6 +# 2050| r2050_1(glval) = FunctionAddress[lvalue] : +# 2050| r2050_2(ValCat &) = Call[lvalue] : func:r2050_1 +# 2050| m2050_3(unknown) = ^CallSideEffect : ~m2049_6 +# 2050| m2050_4(unknown) = Chi : total:m2049_6, partial:m2050_3 +# 2050| r2050_5(glval) = CopyValue : r2050_2 +# 2050| m2050_6(ValCat) = Store[?] : &:r2050_5, r0_12 +# 2050| m2050_7(unknown) = Chi : total:m2050_4, partial:m2050_6 #-----| r0_13(glval) = VariableAddress[#temp0:0] : #-----| m0_14(ValCat) = Uninitialized[#temp0:0] : &:r0_13 #-----| r0_15(ValCat) = Load[#temp0:0] : &:r0_13, m0_14 -# 2049| r2049_1(glval) = FunctionAddress[xvalue] : -# 2049| r2049_2(ValCat &&) = Call[xvalue] : func:r2049_1 -# 2049| m2049_3(unknown) = ^CallSideEffect : ~m2048_7 -# 2049| m2049_4(unknown) = Chi : total:m2048_7, partial:m2049_3 -# 2049| r2049_5(glval) = CopyValue : r2049_2 -# 2049| m2049_6(ValCat) = Store[?] : &:r2049_5, r0_15 -# 2049| m2049_7(unknown) = Chi : total:m2049_4, partial:m2049_6 +# 2051| r2051_1(glval) = FunctionAddress[xvalue] : +# 2051| r2051_2(ValCat &&) = Call[xvalue] : func:r2051_1 +# 2051| m2051_3(unknown) = ^CallSideEffect : ~m2050_7 +# 2051| m2051_4(unknown) = Chi : total:m2050_7, partial:m2051_3 +# 2051| r2051_5(glval) = CopyValue : r2051_2 +# 2051| m2051_6(ValCat) = Store[?] : &:r2051_5, r0_15 +# 2051| m2051_7(unknown) = Chi : total:m2051_4, partial:m2051_6 #-----| r0_16(glval) = VariableAddress[#temp0:0] : #-----| m0_17(ValCat) = Uninitialized[#temp0:0] : &:r0_16 #-----| r0_18(ValCat) = Load[#temp0:0] : &:r0_16, m0_17 -# 2050| r2050_1(glval) = VariableAddress[#temp2050:5] : -# 2050| r2050_2(glval) = FunctionAddress[prvalue] : -# 2050| r2050_3(ValCat) = Call[prvalue] : func:r2050_2 -# 2050| m2050_4(unknown) = ^CallSideEffect : ~m2049_7 -# 2050| m2050_5(unknown) = Chi : total:m2049_7, partial:m2050_4 -# 2050| m2050_6(ValCat) = Store[#temp2050:5] : &:r2050_1, r2050_3 -# 2050| m2050_7(ValCat) = Store[#temp2050:5] : &:r2050_1, r0_18 -# 2051| v2051_1(void) = NoOp : -# 2042| v2042_5(void) = ReturnVoid : -# 2042| v2042_6(void) = AliasedUse : ~m2050_5 -# 2042| v2042_7(void) = ExitFunction : - -# 2053| void SetStaticFuncPtr() -# 2053| Block 0 -# 2053| v2053_1(void) = EnterFunction : -# 2053| m2053_2(unknown) = AliasedDefinition : -# 2053| m2053_3(unknown) = InitializeNonLocal : -# 2053| m2053_4(unknown) = Chi : total:m2053_2, partial:m2053_3 -# 2054| r2054_1(glval) = VariableAddress[c] : -# 2054| m2054_2(C) = Uninitialized[c] : &:r2054_1 -# 2054| m2054_3(unknown) = Chi : total:m2053_4, partial:m2054_2 -# 2054| r2054_4(glval) = FunctionAddress[C] : -# 2054| v2054_5(void) = Call[C] : func:r2054_4, this:r2054_1 -# 2054| m2054_6(unknown) = ^CallSideEffect : ~m2054_3 -# 2054| m2054_7(unknown) = Chi : total:m2054_3, partial:m2054_6 -# 2054| m2054_8(C) = ^IndirectMayWriteSideEffect[-1] : &:r2054_1 -# 2054| m2054_9(unknown) = Chi : total:m2054_7, partial:m2054_8 -# 2055| r2055_1(glval<..(*)(..)>) = VariableAddress[pfn] : -# 2055| r2055_2(..(*)(..)) = FunctionAddress[StaticMemberFunction] : -# 2055| m2055_3(..(*)(..)) = Store[pfn] : &:r2055_1, r2055_2 +# 2052| r2052_1(glval) = VariableAddress[#temp2052:5] : +# 2052| r2052_2(glval) = FunctionAddress[prvalue] : +# 2052| r2052_3(ValCat) = Call[prvalue] : func:r2052_2 +# 2052| m2052_4(unknown) = ^CallSideEffect : ~m2051_7 +# 2052| m2052_5(unknown) = Chi : total:m2051_7, partial:m2052_4 +# 2052| m2052_6(ValCat) = Store[#temp2052:5] : &:r2052_1, r2052_3 +# 2052| m2052_7(ValCat) = Store[#temp2052:5] : &:r2052_1, r0_18 +# 2053| v2053_1(void) = NoOp : +# 2044| v2044_5(void) = ReturnVoid : +# 2044| v2044_6(void) = AliasedUse : ~m2052_5 +# 2044| v2044_7(void) = ExitFunction : + +# 2055| void SetStaticFuncPtr() +# 2055| Block 0 +# 2055| v2055_1(void) = EnterFunction : +# 2055| m2055_2(unknown) = AliasedDefinition : +# 2055| m2055_3(unknown) = InitializeNonLocal : +# 2055| m2055_4(unknown) = Chi : total:m2055_2, partial:m2055_3 # 2056| r2056_1(glval) = VariableAddress[c] : -# 2056| r2056_2(..(*)(..)) = FunctionAddress[StaticMemberFunction] : -# 2056| r2056_3(glval<..(*)(..)>) = VariableAddress[pfn] : -# 2056| m2056_4(..(*)(..)) = Store[pfn] : &:r2056_3, r2056_2 -# 2057| v2057_1(void) = NoOp : -# 2057| r2057_2(glval) = VariableAddress[c] : -# 2057| r2057_3(glval) = FunctionAddress[~C] : -# 2057| v2057_4(void) = Call[~C] : func:r2057_3, this:r2057_2 -# 2057| m2057_5(unknown) = ^CallSideEffect : ~m2054_9 -# 2057| m2057_6(unknown) = Chi : total:m2054_9, partial:m2057_5 -# 2057| v2057_7(void) = ^IndirectReadSideEffect[-1] : &:r2057_2, ~m2057_6 -# 2057| m2057_8(C) = ^IndirectMayWriteSideEffect[-1] : &:r2057_2 -# 2057| m2057_9(unknown) = Chi : total:m2057_6, partial:m2057_8 -# 2053| v2053_5(void) = ReturnVoid : -# 2053| v2053_6(void) = AliasedUse : ~m2057_6 -# 2053| v2053_7(void) = ExitFunction : - -# 2059| void TernaryTestInt(bool, int, int, int) -# 2059| Block 0 -# 2059| v2059_1(void) = EnterFunction : -# 2059| m2059_2(unknown) = AliasedDefinition : -# 2059| m2059_3(unknown) = InitializeNonLocal : -# 2059| m2059_4(unknown) = Chi : total:m2059_2, partial:m2059_3 -# 2059| m2059_5(int) = UninitializedGroup[x,y] : -# 2059| r2059_6(glval) = VariableAddress[a] : -# 2059| m2059_7(bool) = InitializeParameter[a] : &:r2059_6 -# 2059| r2059_8(glval) = VariableAddress[x] : -# 2059| m2059_9(int) = InitializeParameter[x] : &:r2059_8 -# 2059| m2059_10(int) = Chi : total:m2059_5, partial:m2059_9 -# 2059| r2059_11(glval) = VariableAddress[y] : -# 2059| m2059_12(int) = InitializeParameter[y] : &:r2059_11 -# 2059| m2059_13(int) = Chi : total:m2059_10, partial:m2059_12 -# 2059| r2059_14(glval) = VariableAddress[z] : -# 2059| m2059_15(int) = InitializeParameter[z] : &:r2059_14 -# 2060| r2060_1(glval) = VariableAddress[a] : -# 2060| r2060_2(bool) = Load[a] : &:r2060_1, m2059_7 -# 2060| v2060_3(void) = ConditionalBranch : r2060_2 +# 2056| m2056_2(C) = Uninitialized[c] : &:r2056_1 +# 2056| m2056_3(unknown) = Chi : total:m2055_4, partial:m2056_2 +# 2056| r2056_4(glval) = FunctionAddress[C] : +# 2056| v2056_5(void) = Call[C] : func:r2056_4, this:r2056_1 +# 2056| m2056_6(unknown) = ^CallSideEffect : ~m2056_3 +# 2056| m2056_7(unknown) = Chi : total:m2056_3, partial:m2056_6 +# 2056| m2056_8(C) = ^IndirectMayWriteSideEffect[-1] : &:r2056_1 +# 2056| m2056_9(unknown) = Chi : total:m2056_7, partial:m2056_8 +# 2057| r2057_1(glval<..(*)(..)>) = VariableAddress[pfn] : +# 2057| r2057_2(..(*)(..)) = FunctionAddress[StaticMemberFunction] : +# 2057| m2057_3(..(*)(..)) = Store[pfn] : &:r2057_1, r2057_2 +# 2058| r2058_1(glval) = VariableAddress[c] : +# 2058| r2058_2(..(*)(..)) = FunctionAddress[StaticMemberFunction] : +# 2058| r2058_3(glval<..(*)(..)>) = VariableAddress[pfn] : +# 2058| m2058_4(..(*)(..)) = Store[pfn] : &:r2058_3, r2058_2 +# 2059| v2059_1(void) = NoOp : +# 2059| r2059_2(glval) = VariableAddress[c] : +# 2059| r2059_3(glval) = FunctionAddress[~C] : +# 2059| v2059_4(void) = Call[~C] : func:r2059_3, this:r2059_2 +# 2059| m2059_5(unknown) = ^CallSideEffect : ~m2056_9 +# 2059| m2059_6(unknown) = Chi : total:m2056_9, partial:m2059_5 +# 2059| v2059_7(void) = ^IndirectReadSideEffect[-1] : &:r2059_2, ~m2059_6 +# 2059| m2059_8(C) = ^IndirectMayWriteSideEffect[-1] : &:r2059_2 +# 2059| m2059_9(unknown) = Chi : total:m2059_6, partial:m2059_8 +# 2055| v2055_5(void) = ReturnVoid : +# 2055| v2055_6(void) = AliasedUse : ~m2059_6 +# 2055| v2055_7(void) = ExitFunction : + +# 2061| void TernaryTestInt(bool, int, int, int) +# 2061| Block 0 +# 2061| v2061_1(void) = EnterFunction : +# 2061| m2061_2(unknown) = AliasedDefinition : +# 2061| m2061_3(unknown) = InitializeNonLocal : +# 2061| m2061_4(unknown) = Chi : total:m2061_2, partial:m2061_3 +# 2061| m2061_5(int) = UninitializedGroup[x,y] : +# 2061| r2061_6(glval) = VariableAddress[a] : +# 2061| m2061_7(bool) = InitializeParameter[a] : &:r2061_6 +# 2061| r2061_8(glval) = VariableAddress[x] : +# 2061| m2061_9(int) = InitializeParameter[x] : &:r2061_8 +# 2061| m2061_10(int) = Chi : total:m2061_5, partial:m2061_9 +# 2061| r2061_11(glval) = VariableAddress[y] : +# 2061| m2061_12(int) = InitializeParameter[y] : &:r2061_11 +# 2061| m2061_13(int) = Chi : total:m2061_10, partial:m2061_12 +# 2061| r2061_14(glval) = VariableAddress[z] : +# 2061| m2061_15(int) = InitializeParameter[z] : &:r2061_14 +# 2062| r2062_1(glval) = VariableAddress[a] : +# 2062| r2062_2(bool) = Load[a] : &:r2062_1, m2061_7 +# 2062| v2062_3(void) = ConditionalBranch : r2062_2 #-----| False -> Block 3 #-----| True -> Block 2 -# 2060| Block 1 -# 2060| m2060_4(int) = Phi : from 2:m2060_12, from 3:m2060_16 -# 2060| r2060_5(glval) = VariableAddress[#temp2060:9] : -# 2060| r2060_6(int) = Load[#temp2060:9] : &:r2060_5, m2060_4 -# 2060| r2060_7(glval) = VariableAddress[z] : -# 2060| m2060_8(int) = Store[z] : &:r2060_7, r2060_6 -# 2061| r2061_1(glval) = VariableAddress[a] : -# 2061| r2061_2(bool) = Load[a] : &:r2061_1, m2059_7 -# 2061| v2061_3(void) = ConditionalBranch : r2061_2 +# 2062| Block 1 +# 2062| m2062_4(int) = Phi : from 2:m2062_12, from 3:m2062_16 +# 2062| r2062_5(glval) = VariableAddress[#temp2062:9] : +# 2062| r2062_6(int) = Load[#temp2062:9] : &:r2062_5, m2062_4 +# 2062| r2062_7(glval) = VariableAddress[z] : +# 2062| m2062_8(int) = Store[z] : &:r2062_7, r2062_6 +# 2063| r2063_1(glval) = VariableAddress[a] : +# 2063| r2063_2(bool) = Load[a] : &:r2063_1, m2061_7 +# 2063| v2063_3(void) = ConditionalBranch : r2063_2 #-----| False -> Block 6 #-----| True -> Block 5 -# 2060| Block 2 -# 2060| r2060_9(glval) = VariableAddress[x] : -# 2060| r2060_10(int) = Load[x] : &:r2060_9, m2059_9 -# 2060| r2060_11(glval) = VariableAddress[#temp2060:9] : -# 2060| m2060_12(int) = Store[#temp2060:9] : &:r2060_11, r2060_10 +# 2062| Block 2 +# 2062| r2062_9(glval) = VariableAddress[x] : +# 2062| r2062_10(int) = Load[x] : &:r2062_9, m2061_9 +# 2062| r2062_11(glval) = VariableAddress[#temp2062:9] : +# 2062| m2062_12(int) = Store[#temp2062:9] : &:r2062_11, r2062_10 #-----| Goto -> Block 1 -# 2060| Block 3 -# 2060| r2060_13(glval) = VariableAddress[y] : -# 2060| r2060_14(int) = Load[y] : &:r2060_13, m2059_12 -# 2060| r2060_15(glval) = VariableAddress[#temp2060:9] : -# 2060| m2060_16(int) = Store[#temp2060:9] : &:r2060_15, r2060_14 +# 2062| Block 3 +# 2062| r2062_13(glval) = VariableAddress[y] : +# 2062| r2062_14(int) = Load[y] : &:r2062_13, m2061_12 +# 2062| r2062_15(glval) = VariableAddress[#temp2062:9] : +# 2062| m2062_16(int) = Store[#temp2062:9] : &:r2062_15, r2062_14 #-----| Goto -> Block 1 -# 2061| Block 4 -# 2061| m2061_4(int) = Phi : from 5:m2061_12, from 6:m2061_15 -# 2061| r2061_5(glval) = VariableAddress[#temp2061:9] : -# 2061| r2061_6(int) = Load[#temp2061:9] : &:r2061_5, m2061_4 -# 2061| r2061_7(glval) = VariableAddress[z] : -# 2061| m2061_8(int) = Store[z] : &:r2061_7, r2061_6 -# 2062| r2062_1(glval) = VariableAddress[a] : -# 2062| r2062_2(bool) = Load[a] : &:r2062_1, m2059_7 -# 2062| v2062_3(void) = ConditionalBranch : r2062_2 +# 2063| Block 4 +# 2063| m2063_4(int) = Phi : from 5:m2063_12, from 6:m2063_15 +# 2063| r2063_5(glval) = VariableAddress[#temp2063:9] : +# 2063| r2063_6(int) = Load[#temp2063:9] : &:r2063_5, m2063_4 +# 2063| r2063_7(glval) = VariableAddress[z] : +# 2063| m2063_8(int) = Store[z] : &:r2063_7, r2063_6 +# 2064| r2064_1(glval) = VariableAddress[a] : +# 2064| r2064_2(bool) = Load[a] : &:r2064_1, m2061_7 +# 2064| v2064_3(void) = ConditionalBranch : r2064_2 #-----| False -> Block 9 #-----| True -> Block 8 -# 2061| Block 5 -# 2061| r2061_9(glval) = VariableAddress[x] : -# 2061| r2061_10(int) = Load[x] : &:r2061_9, m2059_9 -# 2061| r2061_11(glval) = VariableAddress[#temp2061:9] : -# 2061| m2061_12(int) = Store[#temp2061:9] : &:r2061_11, r2061_10 +# 2063| Block 5 +# 2063| r2063_9(glval) = VariableAddress[x] : +# 2063| r2063_10(int) = Load[x] : &:r2063_9, m2061_9 +# 2063| r2063_11(glval) = VariableAddress[#temp2063:9] : +# 2063| m2063_12(int) = Store[#temp2063:9] : &:r2063_11, r2063_10 #-----| Goto -> Block 4 -# 2061| Block 6 -# 2061| r2061_13(int) = Constant[5] : -# 2061| r2061_14(glval) = VariableAddress[#temp2061:9] : -# 2061| m2061_15(int) = Store[#temp2061:9] : &:r2061_14, r2061_13 +# 2063| Block 6 +# 2063| r2063_13(int) = Constant[5] : +# 2063| r2063_14(glval) = VariableAddress[#temp2063:9] : +# 2063| m2063_15(int) = Store[#temp2063:9] : &:r2063_14, r2063_13 #-----| Goto -> Block 4 -# 2062| Block 7 -# 2062| m2062_4(int) = Phi : from 8:m2062_11, from 9:m2062_14 -# 2062| r2062_5(glval) = VariableAddress[#temp2062:9] : -# 2062| r2062_6(int) = Load[#temp2062:9] : &:r2062_5, m2062_4 -# 2062| r2062_7(glval) = VariableAddress[z] : -# 2062| m2062_8(int) = Store[z] : &:r2062_7, r2062_6 -# 2063| r2063_1(int) = Constant[7] : -# 2063| r2063_2(glval) = VariableAddress[a] : -# 2063| r2063_3(bool) = Load[a] : &:r2063_2, m2059_7 -# 2063| v2063_4(void) = ConditionalBranch : r2063_3 +# 2064| Block 7 +# 2064| m2064_4(int) = Phi : from 8:m2064_11, from 9:m2064_14 +# 2064| r2064_5(glval) = VariableAddress[#temp2064:9] : +# 2064| r2064_6(int) = Load[#temp2064:9] : &:r2064_5, m2064_4 +# 2064| r2064_7(glval) = VariableAddress[z] : +# 2064| m2064_8(int) = Store[z] : &:r2064_7, r2064_6 +# 2065| r2065_1(int) = Constant[7] : +# 2065| r2065_2(glval) = VariableAddress[a] : +# 2065| r2065_3(bool) = Load[a] : &:r2065_2, m2061_7 +# 2065| v2065_4(void) = ConditionalBranch : r2065_3 #-----| False -> Block 12 #-----| True -> Block 11 -# 2062| Block 8 -# 2062| r2062_9(int) = Constant[3] : -# 2062| r2062_10(glval) = VariableAddress[#temp2062:9] : -# 2062| m2062_11(int) = Store[#temp2062:9] : &:r2062_10, r2062_9 +# 2064| Block 8 +# 2064| r2064_9(int) = Constant[3] : +# 2064| r2064_10(glval) = VariableAddress[#temp2064:9] : +# 2064| m2064_11(int) = Store[#temp2064:9] : &:r2064_10, r2064_9 #-----| Goto -> Block 7 -# 2062| Block 9 -# 2062| r2062_12(int) = Constant[5] : -# 2062| r2062_13(glval) = VariableAddress[#temp2062:9] : -# 2062| m2062_14(int) = Store[#temp2062:9] : &:r2062_13, r2062_12 +# 2064| Block 9 +# 2064| r2064_12(int) = Constant[5] : +# 2064| r2064_13(glval) = VariableAddress[#temp2064:9] : +# 2064| m2064_14(int) = Store[#temp2064:9] : &:r2064_13, r2064_12 #-----| Goto -> Block 7 -# 2063| Block 10 -# 2063| m2063_5(glval) = Phi : from 11:m2063_12, from 12:m2063_15 -# 2063| r2063_6(glval) = VariableAddress[#temp2063:6] : -# 2063| r2063_7(glval) = Load[#temp2063:6] : &:r2063_6, m2063_5 -# 2063| m2063_8(int) = Store[?] : &:r2063_7, r2063_1 -# 2063| m2063_9(int) = Chi : total:m2059_13, partial:m2063_8 -# 2064| v2064_1(void) = NoOp : -# 2059| v2059_16(void) = ReturnVoid : -# 2059| v2059_17(void) = AliasedUse : m2059_3 -# 2059| v2059_18(void) = ExitFunction : - -# 2063| Block 11 -# 2063| r2063_10(glval) = VariableAddress[x] : -# 2063| r2063_11(glval) = VariableAddress[#temp2063:6] : -# 2063| m2063_12(glval) = Store[#temp2063:6] : &:r2063_11, r2063_10 +# 2065| Block 10 +# 2065| m2065_5(glval) = Phi : from 11:m2065_12, from 12:m2065_15 +# 2065| r2065_6(glval) = VariableAddress[#temp2065:6] : +# 2065| r2065_7(glval) = Load[#temp2065:6] : &:r2065_6, m2065_5 +# 2065| m2065_8(int) = Store[?] : &:r2065_7, r2065_1 +# 2065| m2065_9(int) = Chi : total:m2061_13, partial:m2065_8 +# 2066| v2066_1(void) = NoOp : +# 2061| v2061_16(void) = ReturnVoid : +# 2061| v2061_17(void) = AliasedUse : m2061_3 +# 2061| v2061_18(void) = ExitFunction : + +# 2065| Block 11 +# 2065| r2065_10(glval) = VariableAddress[x] : +# 2065| r2065_11(glval) = VariableAddress[#temp2065:6] : +# 2065| m2065_12(glval) = Store[#temp2065:6] : &:r2065_11, r2065_10 #-----| Goto -> Block 10 -# 2063| Block 12 -# 2063| r2063_13(glval) = VariableAddress[y] : -# 2063| r2063_14(glval) = VariableAddress[#temp2063:6] : -# 2063| m2063_15(glval) = Store[#temp2063:6] : &:r2063_14, r2063_13 +# 2065| Block 12 +# 2065| r2065_13(glval) = VariableAddress[y] : +# 2065| r2065_14(glval) = VariableAddress[#temp2065:6] : +# 2065| m2065_15(glval) = Store[#temp2065:6] : &:r2065_14, r2065_13 #-----| Goto -> Block 10 -# 2069| void TernaryTestPodObj(bool, TernaryPodObj, TernaryPodObj, TernaryPodObj) -# 2069| Block 0 -# 2069| v2069_1(void) = EnterFunction : -# 2069| m2069_2(unknown) = AliasedDefinition : -# 2069| m2069_3(unknown) = InitializeNonLocal : -# 2069| m2069_4(unknown) = Chi : total:m2069_2, partial:m2069_3 -# 2069| r2069_5(glval) = VariableAddress[a] : -# 2069| m2069_6(bool) = InitializeParameter[a] : &:r2069_5 -# 2069| r2069_7(glval) = VariableAddress[x] : -# 2069| m2069_8(TernaryPodObj) = InitializeParameter[x] : &:r2069_7 -# 2069| r2069_9(glval) = VariableAddress[y] : -# 2069| m2069_10(TernaryPodObj) = InitializeParameter[y] : &:r2069_9 -# 2069| r2069_11(glval) = VariableAddress[z] : -# 2069| m2069_12(TernaryPodObj) = InitializeParameter[z] : &:r2069_11 -# 2070| r2070_1(glval) = VariableAddress[a] : -# 2070| r2070_2(bool) = Load[a] : &:r2070_1, m2069_6 -# 2070| v2070_3(void) = ConditionalBranch : r2070_2 +# 2071| void TernaryTestPodObj(bool, TernaryPodObj, TernaryPodObj, TernaryPodObj) +# 2071| Block 0 +# 2071| v2071_1(void) = EnterFunction : +# 2071| m2071_2(unknown) = AliasedDefinition : +# 2071| m2071_3(unknown) = InitializeNonLocal : +# 2071| m2071_4(unknown) = Chi : total:m2071_2, partial:m2071_3 +# 2071| r2071_5(glval) = VariableAddress[a] : +# 2071| m2071_6(bool) = InitializeParameter[a] : &:r2071_5 +# 2071| r2071_7(glval) = VariableAddress[x] : +# 2071| m2071_8(TernaryPodObj) = InitializeParameter[x] : &:r2071_7 +# 2071| r2071_9(glval) = VariableAddress[y] : +# 2071| m2071_10(TernaryPodObj) = InitializeParameter[y] : &:r2071_9 +# 2071| r2071_11(glval) = VariableAddress[z] : +# 2071| m2071_12(TernaryPodObj) = InitializeParameter[z] : &:r2071_11 +# 2072| r2072_1(glval) = VariableAddress[a] : +# 2072| r2072_2(bool) = Load[a] : &:r2072_1, m2071_6 +# 2072| v2072_3(void) = ConditionalBranch : r2072_2 #-----| False -> Block 3 #-----| True -> Block 2 -# 2070| Block 1 -# 2070| m2070_4(TernaryPodObj) = Phi : from 2:m2070_12, from 3:m2070_16 -# 2070| r2070_5(glval) = VariableAddress[#temp2070:9] : -# 2070| r2070_6(TernaryPodObj) = Load[#temp2070:9] : &:r2070_5, m2070_4 -# 2070| r2070_7(glval) = VariableAddress[z] : -# 2070| m2070_8(TernaryPodObj) = Store[z] : &:r2070_7, r2070_6 -# 2071| r2071_1(glval) = VariableAddress[#temp2071:9] : -# 2071| r2071_2(glval) = VariableAddress[a] : -# 2071| r2071_3(bool) = Load[a] : &:r2071_2, m2069_6 -# 2071| v2071_4(void) = ConditionalBranch : r2071_3 +# 2072| Block 1 +# 2072| m2072_4(TernaryPodObj) = Phi : from 2:m2072_12, from 3:m2072_16 +# 2072| r2072_5(glval) = VariableAddress[#temp2072:9] : +# 2072| r2072_6(TernaryPodObj) = Load[#temp2072:9] : &:r2072_5, m2072_4 +# 2072| r2072_7(glval) = VariableAddress[z] : +# 2072| m2072_8(TernaryPodObj) = Store[z] : &:r2072_7, r2072_6 +# 2073| r2073_1(glval) = VariableAddress[#temp2073:9] : +# 2073| r2073_2(glval) = VariableAddress[a] : +# 2073| r2073_3(bool) = Load[a] : &:r2073_2, m2071_6 +# 2073| v2073_4(void) = ConditionalBranch : r2073_3 #-----| False -> Block 6 #-----| True -> Block 5 -# 2070| Block 2 -# 2070| r2070_9(glval) = VariableAddress[x] : -# 2070| r2070_10(TernaryPodObj) = Load[x] : &:r2070_9, m2069_8 -# 2070| r2070_11(glval) = VariableAddress[#temp2070:9] : -# 2070| m2070_12(TernaryPodObj) = Store[#temp2070:9] : &:r2070_11, r2070_10 +# 2072| Block 2 +# 2072| r2072_9(glval) = VariableAddress[x] : +# 2072| r2072_10(TernaryPodObj) = Load[x] : &:r2072_9, m2071_8 +# 2072| r2072_11(glval) = VariableAddress[#temp2072:9] : +# 2072| m2072_12(TernaryPodObj) = Store[#temp2072:9] : &:r2072_11, r2072_10 #-----| Goto -> Block 1 -# 2070| Block 3 -# 2070| r2070_13(glval) = VariableAddress[y] : -# 2070| r2070_14(TernaryPodObj) = Load[y] : &:r2070_13, m2069_10 -# 2070| r2070_15(glval) = VariableAddress[#temp2070:9] : -# 2070| m2070_16(TernaryPodObj) = Store[#temp2070:9] : &:r2070_15, r2070_14 +# 2072| Block 3 +# 2072| r2072_13(glval) = VariableAddress[y] : +# 2072| r2072_14(TernaryPodObj) = Load[y] : &:r2072_13, m2071_10 +# 2072| r2072_15(glval) = VariableAddress[#temp2072:9] : +# 2072| m2072_16(TernaryPodObj) = Store[#temp2072:9] : &:r2072_15, r2072_14 #-----| Goto -> Block 1 -# 2071| Block 4 -# 2071| m2071_5(TernaryPodObj) = Phi : from 5:m2071_18, from 6:m2071_24 -# 2071| r2071_6(glval) = VariableAddress[#temp2071:9] : -# 2071| r2071_7(TernaryPodObj) = Load[#temp2071:9] : &:r2071_6, m2071_5 -# 2071| m2071_8(TernaryPodObj) = Store[#temp2071:9] : &:r2071_1, r2071_7 -# 2071| r2071_9(TernaryPodObj) = Load[#temp2071:9] : &:r2071_1, m2071_8 -# 2071| r2071_10(glval) = VariableAddress[z] : -# 2071| m2071_11(TernaryPodObj) = Store[z] : &:r2071_10, r2071_9 -# 2072| r2072_1(glval) = VariableAddress[#temp2072:9] : -# 2072| r2072_2(glval) = VariableAddress[a] : -# 2072| r2072_3(bool) = Load[a] : &:r2072_2, m2069_6 -# 2072| v2072_4(void) = ConditionalBranch : r2072_3 +# 2073| Block 4 +# 2073| m2073_5(TernaryPodObj) = Phi : from 5:m2073_18, from 6:m2073_24 +# 2073| r2073_6(glval) = VariableAddress[#temp2073:9] : +# 2073| r2073_7(TernaryPodObj) = Load[#temp2073:9] : &:r2073_6, m2073_5 +# 2073| m2073_8(TernaryPodObj) = Store[#temp2073:9] : &:r2073_1, r2073_7 +# 2073| r2073_9(TernaryPodObj) = Load[#temp2073:9] : &:r2073_1, m2073_8 +# 2073| r2073_10(glval) = VariableAddress[z] : +# 2073| m2073_11(TernaryPodObj) = Store[z] : &:r2073_10, r2073_9 +# 2074| r2074_1(glval) = VariableAddress[#temp2074:9] : +# 2074| r2074_2(glval) = VariableAddress[a] : +# 2074| r2074_3(bool) = Load[a] : &:r2074_2, m2071_6 +# 2074| v2074_4(void) = ConditionalBranch : r2074_3 #-----| False -> Block 9 #-----| True -> Block 8 -# 2071| Block 5 -# 2071| r2071_12(glval) = VariableAddress[#temp2071:13] : -# 2071| r2071_13(glval) = VariableAddress[x] : -# 2071| r2071_14(TernaryPodObj) = Load[x] : &:r2071_13, m2069_8 -# 2071| m2071_15(TernaryPodObj) = Store[#temp2071:13] : &:r2071_12, r2071_14 -# 2071| r2071_16(TernaryPodObj) = Load[#temp2071:13] : &:r2071_12, m2071_15 -# 2071| r2071_17(glval) = VariableAddress[#temp2071:9] : -# 2071| m2071_18(TernaryPodObj) = Store[#temp2071:9] : &:r2071_17, r2071_16 +# 2073| Block 5 +# 2073| r2073_12(glval) = VariableAddress[#temp2073:13] : +# 2073| r2073_13(glval) = VariableAddress[x] : +# 2073| r2073_14(TernaryPodObj) = Load[x] : &:r2073_13, m2071_8 +# 2073| m2073_15(TernaryPodObj) = Store[#temp2073:13] : &:r2073_12, r2073_14 +# 2073| r2073_16(TernaryPodObj) = Load[#temp2073:13] : &:r2073_12, m2073_15 +# 2073| r2073_17(glval) = VariableAddress[#temp2073:9] : +# 2073| m2073_18(TernaryPodObj) = Store[#temp2073:9] : &:r2073_17, r2073_16 #-----| Goto -> Block 4 -# 2071| Block 6 -# 2071| r2071_19(glval) = VariableAddress[#temp2071:17] : -# 2071| r2071_20(TernaryPodObj) = Constant[0] : -# 2071| m2071_21(TernaryPodObj) = Store[#temp2071:17] : &:r2071_19, r2071_20 -# 2071| r2071_22(TernaryPodObj) = Load[#temp2071:17] : &:r2071_19, m2071_21 -# 2071| r2071_23(glval) = VariableAddress[#temp2071:9] : -# 2071| m2071_24(TernaryPodObj) = Store[#temp2071:9] : &:r2071_23, r2071_22 +# 2073| Block 6 +# 2073| r2073_19(glval) = VariableAddress[#temp2073:17] : +# 2073| r2073_20(TernaryPodObj) = Constant[0] : +# 2073| m2073_21(TernaryPodObj) = Store[#temp2073:17] : &:r2073_19, r2073_20 +# 2073| r2073_22(TernaryPodObj) = Load[#temp2073:17] : &:r2073_19, m2073_21 +# 2073| r2073_23(glval) = VariableAddress[#temp2073:9] : +# 2073| m2073_24(TernaryPodObj) = Store[#temp2073:9] : &:r2073_23, r2073_22 #-----| Goto -> Block 4 -# 2072| Block 7 -# 2072| m2072_5(TernaryPodObj) = Phi : from 8:m2072_17, from 9:m2072_23 -# 2072| r2072_6(glval) = VariableAddress[#temp2072:9] : -# 2072| r2072_7(TernaryPodObj) = Load[#temp2072:9] : &:r2072_6, m2072_5 -# 2072| m2072_8(TernaryPodObj) = Store[#temp2072:9] : &:r2072_1, r2072_7 -# 2072| r2072_9(TernaryPodObj) = Load[#temp2072:9] : &:r2072_1, m2072_8 -# 2072| r2072_10(glval) = VariableAddress[z] : -# 2072| m2072_11(TernaryPodObj) = Store[z] : &:r2072_10, r2072_9 -# 2073| r2073_1(glval) = VariableAddress[#temp2073:23] : -# 2073| r2073_2(TernaryPodObj) = Constant[0] : -# 2073| m2073_3(TernaryPodObj) = Store[#temp2073:23] : &:r2073_1, r2073_2 -# 2073| r2073_4(TernaryPodObj) = Load[#temp2073:23] : &:r2073_1, m2073_3 -# 2073| r2073_5(glval) = VariableAddress[a] : -# 2073| r2073_6(bool) = Load[a] : &:r2073_5, m2069_6 -# 2073| v2073_7(void) = ConditionalBranch : r2073_6 +# 2074| Block 7 +# 2074| m2074_5(TernaryPodObj) = Phi : from 8:m2074_17, from 9:m2074_23 +# 2074| r2074_6(glval) = VariableAddress[#temp2074:9] : +# 2074| r2074_7(TernaryPodObj) = Load[#temp2074:9] : &:r2074_6, m2074_5 +# 2074| m2074_8(TernaryPodObj) = Store[#temp2074:9] : &:r2074_1, r2074_7 +# 2074| r2074_9(TernaryPodObj) = Load[#temp2074:9] : &:r2074_1, m2074_8 +# 2074| r2074_10(glval) = VariableAddress[z] : +# 2074| m2074_11(TernaryPodObj) = Store[z] : &:r2074_10, r2074_9 +# 2075| r2075_1(glval) = VariableAddress[#temp2075:23] : +# 2075| r2075_2(TernaryPodObj) = Constant[0] : +# 2075| m2075_3(TernaryPodObj) = Store[#temp2075:23] : &:r2075_1, r2075_2 +# 2075| r2075_4(TernaryPodObj) = Load[#temp2075:23] : &:r2075_1, m2075_3 +# 2075| r2075_5(glval) = VariableAddress[a] : +# 2075| r2075_6(bool) = Load[a] : &:r2075_5, m2071_6 +# 2075| v2075_7(void) = ConditionalBranch : r2075_6 #-----| False -> Block 12 #-----| True -> Block 11 -# 2072| Block 8 -# 2072| r2072_12(glval) = VariableAddress[#temp2072:13] : -# 2072| r2072_13(TernaryPodObj) = Constant[0] : -# 2072| m2072_14(TernaryPodObj) = Store[#temp2072:13] : &:r2072_12, r2072_13 -# 2072| r2072_15(TernaryPodObj) = Load[#temp2072:13] : &:r2072_12, m2072_14 -# 2072| r2072_16(glval) = VariableAddress[#temp2072:9] : -# 2072| m2072_17(TernaryPodObj) = Store[#temp2072:9] : &:r2072_16, r2072_15 +# 2074| Block 8 +# 2074| r2074_12(glval) = VariableAddress[#temp2074:13] : +# 2074| r2074_13(TernaryPodObj) = Constant[0] : +# 2074| m2074_14(TernaryPodObj) = Store[#temp2074:13] : &:r2074_12, r2074_13 +# 2074| r2074_15(TernaryPodObj) = Load[#temp2074:13] : &:r2074_12, m2074_14 +# 2074| r2074_16(glval) = VariableAddress[#temp2074:9] : +# 2074| m2074_17(TernaryPodObj) = Store[#temp2074:9] : &:r2074_16, r2074_15 #-----| Goto -> Block 7 -# 2072| Block 9 -# 2072| r2072_18(glval) = VariableAddress[#temp2072:31] : -# 2072| r2072_19(TernaryPodObj) = Constant[0] : -# 2072| m2072_20(TernaryPodObj) = Store[#temp2072:31] : &:r2072_18, r2072_19 -# 2072| r2072_21(TernaryPodObj) = Load[#temp2072:31] : &:r2072_18, m2072_20 -# 2072| r2072_22(glval) = VariableAddress[#temp2072:9] : -# 2072| m2072_23(TernaryPodObj) = Store[#temp2072:9] : &:r2072_22, r2072_21 +# 2074| Block 9 +# 2074| r2074_18(glval) = VariableAddress[#temp2074:31] : +# 2074| r2074_19(TernaryPodObj) = Constant[0] : +# 2074| m2074_20(TernaryPodObj) = Store[#temp2074:31] : &:r2074_18, r2074_19 +# 2074| r2074_21(TernaryPodObj) = Load[#temp2074:31] : &:r2074_18, m2074_20 +# 2074| r2074_22(glval) = VariableAddress[#temp2074:9] : +# 2074| m2074_23(TernaryPodObj) = Store[#temp2074:9] : &:r2074_22, r2074_21 #-----| Goto -> Block 7 -# 2073| Block 10 -# 2073| m2073_8(TernaryPodObj) = Phi : from 11:m2073_18, from 12:m2073_22 -# 2073| r2073_9(glval) = VariableAddress[#temp2073:10] : -# 2073| r2073_10(TernaryPodObj) = Load[#temp2073:10] : &:r2073_9, m2073_8 -# 2073| r2073_11(glval) = VariableAddress[z] : -# 2073| m2073_12(TernaryPodObj) = Store[z] : &:r2073_11, r2073_10 -# 2073| r2073_13(glval) = CopyValue : r2073_11 -# 2073| m2073_14(TernaryPodObj) = Store[?] : &:r2073_13, r2073_4 -# 2074| v2074_1(void) = NoOp : -# 2069| v2069_13(void) = ReturnVoid : -# 2069| v2069_14(void) = AliasedUse : m2069_3 -# 2069| v2069_15(void) = ExitFunction : - -# 2073| Block 11 -# 2073| r2073_15(glval) = VariableAddress[x] : -# 2073| r2073_16(TernaryPodObj) = Load[x] : &:r2073_15, m2069_8 -# 2073| r2073_17(glval) = VariableAddress[#temp2073:10] : -# 2073| m2073_18(TernaryPodObj) = Store[#temp2073:10] : &:r2073_17, r2073_16 +# 2075| Block 10 +# 2075| m2075_8(TernaryPodObj) = Phi : from 11:m2075_18, from 12:m2075_22 +# 2075| r2075_9(glval) = VariableAddress[#temp2075:10] : +# 2075| r2075_10(TernaryPodObj) = Load[#temp2075:10] : &:r2075_9, m2075_8 +# 2075| r2075_11(glval) = VariableAddress[z] : +# 2075| m2075_12(TernaryPodObj) = Store[z] : &:r2075_11, r2075_10 +# 2075| r2075_13(glval) = CopyValue : r2075_11 +# 2075| m2075_14(TernaryPodObj) = Store[?] : &:r2075_13, r2075_4 +# 2076| v2076_1(void) = NoOp : +# 2071| v2071_13(void) = ReturnVoid : +# 2071| v2071_14(void) = AliasedUse : m2071_3 +# 2071| v2071_15(void) = ExitFunction : + +# 2075| Block 11 +# 2075| r2075_15(glval) = VariableAddress[x] : +# 2075| r2075_16(TernaryPodObj) = Load[x] : &:r2075_15, m2071_8 +# 2075| r2075_17(glval) = VariableAddress[#temp2075:10] : +# 2075| m2075_18(TernaryPodObj) = Store[#temp2075:10] : &:r2075_17, r2075_16 #-----| Goto -> Block 10 -# 2073| Block 12 -# 2073| r2073_19(glval) = VariableAddress[y] : -# 2073| r2073_20(TernaryPodObj) = Load[y] : &:r2073_19, m2069_10 -# 2073| r2073_21(glval) = VariableAddress[#temp2073:10] : -# 2073| m2073_22(TernaryPodObj) = Store[#temp2073:10] : &:r2073_21, r2073_20 +# 2075| Block 12 +# 2075| r2075_19(glval) = VariableAddress[y] : +# 2075| r2075_20(TernaryPodObj) = Load[y] : &:r2075_19, m2071_10 +# 2075| r2075_21(glval) = VariableAddress[#temp2075:10] : +# 2075| m2075_22(TernaryPodObj) = Store[#temp2075:10] : &:r2075_21, r2075_20 #-----| Goto -> Block 10 -# 2076| TernaryNonPodObj& TernaryNonPodObj::operator=(TernaryNonPodObj const&) -# 2076| Block 0 -# 2076| v2076_1(void) = EnterFunction : -# 2076| m2076_2(unknown) = AliasedDefinition : -# 2076| m2076_3(unknown) = InitializeNonLocal : -# 2076| m2076_4(unknown) = Chi : total:m2076_2, partial:m2076_3 -# 2076| r2076_5(glval) = VariableAddress[#this] : -# 2076| m2076_6(glval) = InitializeParameter[#this] : &:r2076_5 -# 2076| r2076_7(glval) = Load[#this] : &:r2076_5, m2076_6 -# 2076| m2076_8(TernaryNonPodObj) = InitializeIndirection[#this] : &:r2076_7 +# 2078| TernaryNonPodObj& TernaryNonPodObj::operator=(TernaryNonPodObj const&) +# 2078| Block 0 +# 2078| v2078_1(void) = EnterFunction : +# 2078| m2078_2(unknown) = AliasedDefinition : +# 2078| m2078_3(unknown) = InitializeNonLocal : +# 2078| m2078_4(unknown) = Chi : total:m2078_2, partial:m2078_3 +# 2078| r2078_5(glval) = VariableAddress[#this] : +# 2078| m2078_6(glval) = InitializeParameter[#this] : &:r2078_5 +# 2078| r2078_7(glval) = Load[#this] : &:r2078_5, m2078_6 +# 2078| m2078_8(TernaryNonPodObj) = InitializeIndirection[#this] : &:r2078_7 #-----| r0_1(glval) = VariableAddress[(unnamed parameter 0)] : #-----| m0_2(TernaryNonPodObj &) = InitializeParameter[(unnamed parameter 0)] : &:r0_1 #-----| r0_3(TernaryNonPodObj &) = Load[(unnamed parameter 0)] : &:r0_1, m0_2 #-----| m0_4(unknown) = InitializeIndirection[(unnamed parameter 0)] : &:r0_3 #-----| r0_5(glval) = VariableAddress[#return] : #-----| r0_6(glval) = VariableAddress[#this] : -#-----| r0_7(TernaryNonPodObj *) = Load[#this] : &:r0_6, m2076_6 +#-----| r0_7(TernaryNonPodObj *) = Load[#this] : &:r0_6, m2078_6 #-----| r0_8(glval) = CopyValue : r0_7 #-----| r0_9(TernaryNonPodObj &) = CopyValue : r0_8 #-----| m0_10(TernaryNonPodObj &) = Store[#return] : &:r0_5, r0_9 -# 2076| v2076_9(void) = ReturnIndirection[#this] : &:r2076_7, m2076_8 +# 2078| v2078_9(void) = ReturnIndirection[#this] : &:r2078_7, m2078_8 #-----| v0_11(void) = ReturnIndirection[(unnamed parameter 0)] : &:r0_3, m0_4 -# 2076| r2076_10(glval) = VariableAddress[#return] : -# 2076| v2076_11(void) = ReturnValue : &:r2076_10, m0_10 -# 2076| v2076_12(void) = AliasedUse : m2076_3 -# 2076| v2076_13(void) = ExitFunction : - -# 2076| void TernaryNonPodObj::TernaryNonPodObj() -# 2076| Block 0 -# 2076| v2076_1(void) = EnterFunction : -# 2076| m2076_2(unknown) = AliasedDefinition : -# 2076| m2076_3(unknown) = InitializeNonLocal : -# 2076| m2076_4(unknown) = Chi : total:m2076_2, partial:m2076_3 -# 2076| r2076_5(glval) = VariableAddress[#this] : -# 2076| m2076_6(glval) = InitializeParameter[#this] : &:r2076_5 -# 2076| r2076_7(glval) = Load[#this] : &:r2076_5, m2076_6 -# 2076| m2076_8(TernaryNonPodObj) = InitializeIndirection[#this] : &:r2076_7 -# 2076| v2076_9(void) = NoOp : -# 2076| v2076_10(void) = ReturnIndirection[#this] : &:r2076_7, m2076_8 -# 2076| v2076_11(void) = ReturnVoid : -# 2076| v2076_12(void) = AliasedUse : m2076_3 -# 2076| v2076_13(void) = ExitFunction : - -# 2076| void TernaryNonPodObj::TernaryNonPodObj(TernaryNonPodObj const&) -# 2076| Block 0 -# 2076| v2076_1(void) = EnterFunction : -# 2076| m2076_2(unknown) = AliasedDefinition : -# 2076| m2076_3(unknown) = InitializeNonLocal : -# 2076| m2076_4(unknown) = Chi : total:m2076_2, partial:m2076_3 -# 2076| r2076_5(glval) = VariableAddress[#this] : -# 2076| m2076_6(glval) = InitializeParameter[#this] : &:r2076_5 -# 2076| r2076_7(glval) = Load[#this] : &:r2076_5, m2076_6 -# 2076| m2076_8(TernaryNonPodObj) = InitializeIndirection[#this] : &:r2076_7 +# 2078| r2078_10(glval) = VariableAddress[#return] : +# 2078| v2078_11(void) = ReturnValue : &:r2078_10, m0_10 +# 2078| v2078_12(void) = AliasedUse : m2078_3 +# 2078| v2078_13(void) = ExitFunction : + +# 2078| void TernaryNonPodObj::TernaryNonPodObj() +# 2078| Block 0 +# 2078| v2078_1(void) = EnterFunction : +# 2078| m2078_2(unknown) = AliasedDefinition : +# 2078| m2078_3(unknown) = InitializeNonLocal : +# 2078| m2078_4(unknown) = Chi : total:m2078_2, partial:m2078_3 +# 2078| r2078_5(glval) = VariableAddress[#this] : +# 2078| m2078_6(glval) = InitializeParameter[#this] : &:r2078_5 +# 2078| r2078_7(glval) = Load[#this] : &:r2078_5, m2078_6 +# 2078| m2078_8(TernaryNonPodObj) = InitializeIndirection[#this] : &:r2078_7 +# 2078| v2078_9(void) = NoOp : +# 2078| v2078_10(void) = ReturnIndirection[#this] : &:r2078_7, m2078_8 +# 2078| v2078_11(void) = ReturnVoid : +# 2078| v2078_12(void) = AliasedUse : m2078_3 +# 2078| v2078_13(void) = ExitFunction : + +# 2078| void TernaryNonPodObj::TernaryNonPodObj(TernaryNonPodObj const&) +# 2078| Block 0 +# 2078| v2078_1(void) = EnterFunction : +# 2078| m2078_2(unknown) = AliasedDefinition : +# 2078| m2078_3(unknown) = InitializeNonLocal : +# 2078| m2078_4(unknown) = Chi : total:m2078_2, partial:m2078_3 +# 2078| r2078_5(glval) = VariableAddress[#this] : +# 2078| m2078_6(glval) = InitializeParameter[#this] : &:r2078_5 +# 2078| r2078_7(glval) = Load[#this] : &:r2078_5, m2078_6 +# 2078| m2078_8(TernaryNonPodObj) = InitializeIndirection[#this] : &:r2078_7 #-----| r0_1(glval) = VariableAddress[(unnamed parameter 0)] : #-----| m0_2(TernaryNonPodObj &) = InitializeParameter[(unnamed parameter 0)] : &:r0_1 #-----| r0_3(TernaryNonPodObj &) = Load[(unnamed parameter 0)] : &:r0_1, m0_2 #-----| m0_4(unknown) = InitializeIndirection[(unnamed parameter 0)] : &:r0_3 -# 2076| v2076_9(void) = NoOp : -# 2076| v2076_10(void) = ReturnIndirection[#this] : &:r2076_7, m2076_8 +# 2078| v2078_9(void) = NoOp : +# 2078| v2078_10(void) = ReturnIndirection[#this] : &:r2078_7, m2078_8 #-----| v0_5(void) = ReturnIndirection[(unnamed parameter 0)] : &:r0_3, m0_4 -# 2076| v2076_11(void) = ReturnVoid : -# 2076| v2076_12(void) = AliasedUse : m2076_3 -# 2076| v2076_13(void) = ExitFunction : - -# 2077| void TernaryNonPodObj::~TernaryNonPodObj() -# 2077| Block 0 -# 2077| v2077_1(void) = EnterFunction : -# 2077| m2077_2(unknown) = AliasedDefinition : -# 2077| m2077_3(unknown) = InitializeNonLocal : -# 2077| m2077_4(unknown) = Chi : total:m2077_2, partial:m2077_3 -# 2077| r2077_5(glval) = VariableAddress[#this] : -# 2077| m2077_6(glval) = InitializeParameter[#this] : &:r2077_5 -# 2077| r2077_7(glval) = Load[#this] : &:r2077_5, m2077_6 -# 2077| m2077_8(TernaryNonPodObj) = InitializeIndirection[#this] : &:r2077_7 -# 2077| v2077_9(void) = NoOp : -# 2077| v2077_10(void) = ReturnIndirection[#this] : &:r2077_7, m2077_8 -# 2077| v2077_11(void) = ReturnVoid : -# 2077| v2077_12(void) = AliasedUse : m2077_3 -# 2077| v2077_13(void) = ExitFunction : - -# 2080| void TernaryTestNonPodObj(bool, TernaryNonPodObj, TernaryNonPodObj, TernaryNonPodObj) -# 2080| Block 0 -# 2080| v2080_1(void) = EnterFunction : -# 2080| m2080_2(unknown) = AliasedDefinition : -# 2080| m2080_3(unknown) = InitializeNonLocal : -# 2080| m2080_4(unknown) = Chi : total:m2080_2, partial:m2080_3 -# 2080| m2080_5(unknown) = UninitializedGroup[x,y] : -# 2080| r2080_6(glval) = VariableAddress[a] : -# 2080| m2080_7(bool) = InitializeParameter[a] : &:r2080_6 -# 2080| r2080_8(glval) = VariableAddress[x] : -# 2080| m2080_9(TernaryNonPodObj) = InitializeParameter[x] : &:r2080_8 -# 2080| m2080_10(unknown) = Chi : total:m2080_5, partial:m2080_9 -# 2080| r2080_11(glval) = VariableAddress[y] : -# 2080| m2080_12(TernaryNonPodObj) = InitializeParameter[y] : &:r2080_11 -# 2080| m2080_13(unknown) = Chi : total:m2080_10, partial:m2080_12 -# 2080| r2080_14(glval) = VariableAddress[z] : -# 2080| m2080_15(TernaryNonPodObj) = InitializeParameter[z] : &:r2080_14 -# 2081| r2081_1(glval) = VariableAddress[z] : -# 2081| r2081_2(glval) = FunctionAddress[operator=] : -# 2081| r2081_3(glval) = VariableAddress[a] : -# 2081| r2081_4(bool) = Load[a] : &:r2081_3, m2080_7 -# 2081| v2081_5(void) = ConditionalBranch : r2081_4 +# 2078| v2078_11(void) = ReturnVoid : +# 2078| v2078_12(void) = AliasedUse : m2078_3 +# 2078| v2078_13(void) = ExitFunction : + +# 2079| void TernaryNonPodObj::~TernaryNonPodObj() +# 2079| Block 0 +# 2079| v2079_1(void) = EnterFunction : +# 2079| m2079_2(unknown) = AliasedDefinition : +# 2079| m2079_3(unknown) = InitializeNonLocal : +# 2079| m2079_4(unknown) = Chi : total:m2079_2, partial:m2079_3 +# 2079| r2079_5(glval) = VariableAddress[#this] : +# 2079| m2079_6(glval) = InitializeParameter[#this] : &:r2079_5 +# 2079| r2079_7(glval) = Load[#this] : &:r2079_5, m2079_6 +# 2079| m2079_8(TernaryNonPodObj) = InitializeIndirection[#this] : &:r2079_7 +# 2079| v2079_9(void) = NoOp : +# 2079| v2079_10(void) = ReturnIndirection[#this] : &:r2079_7, m2079_8 +# 2079| v2079_11(void) = ReturnVoid : +# 2079| v2079_12(void) = AliasedUse : m2079_3 +# 2079| v2079_13(void) = ExitFunction : + +# 2082| void TernaryTestNonPodObj(bool, TernaryNonPodObj, TernaryNonPodObj, TernaryNonPodObj) +# 2082| Block 0 +# 2082| v2082_1(void) = EnterFunction : +# 2082| m2082_2(unknown) = AliasedDefinition : +# 2082| m2082_3(unknown) = InitializeNonLocal : +# 2082| m2082_4(unknown) = Chi : total:m2082_2, partial:m2082_3 +# 2082| m2082_5(unknown) = UninitializedGroup[x,y] : +# 2082| r2082_6(glval) = VariableAddress[a] : +# 2082| m2082_7(bool) = InitializeParameter[a] : &:r2082_6 +# 2082| r2082_8(glval) = VariableAddress[x] : +# 2082| m2082_9(TernaryNonPodObj) = InitializeParameter[x] : &:r2082_8 +# 2082| m2082_10(unknown) = Chi : total:m2082_5, partial:m2082_9 +# 2082| r2082_11(glval) = VariableAddress[y] : +# 2082| m2082_12(TernaryNonPodObj) = InitializeParameter[y] : &:r2082_11 +# 2082| m2082_13(unknown) = Chi : total:m2082_10, partial:m2082_12 +# 2082| r2082_14(glval) = VariableAddress[z] : +# 2082| m2082_15(TernaryNonPodObj) = InitializeParameter[z] : &:r2082_14 +# 2083| r2083_1(glval) = VariableAddress[z] : +# 2083| r2083_2(glval) = FunctionAddress[operator=] : +# 2083| r2083_3(glval) = VariableAddress[a] : +# 2083| r2083_4(bool) = Load[a] : &:r2083_3, m2082_7 +# 2083| v2083_5(void) = ConditionalBranch : r2083_4 #-----| False -> Block 3 #-----| True -> Block 2 -# 2081| Block 1 -# 2081| m2081_6(glval) = Phi : from 2:m2081_21, from 3:m2081_24 -# 2081| r2081_7(glval) = VariableAddress[#temp2081:9] : -# 2081| r2081_8(glval) = Load[#temp2081:9] : &:r2081_7, m2081_6 -# 2081| r2081_9(glval) = Convert : r2081_8 -# 2081| r2081_10(TernaryNonPodObj &) = CopyValue : r2081_9 -# 2081| r2081_11(TernaryNonPodObj &) = Call[operator=] : func:r2081_2, this:r2081_1, 0:r2081_10 -# 2081| m2081_12(unknown) = ^CallSideEffect : ~m2080_4 -# 2081| m2081_13(unknown) = Chi : total:m2080_4, partial:m2081_12 -# 2081| v2081_14(void) = ^IndirectReadSideEffect[-1] : &:r2081_1, m2080_15 -# 2081| v2081_15(void) = ^BufferReadSideEffect[0] : &:r2081_10, ~m2080_13 -# 2081| m2081_16(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2081_1 -# 2081| m2081_17(TernaryNonPodObj) = Chi : total:m2080_15, partial:m2081_16 -# 2081| r2081_18(glval) = CopyValue : r2081_11 -# 2082| r2082_1(glval) = VariableAddress[z] : -# 2082| r2082_2(glval) = FunctionAddress[operator=] : -# 2082| r2082_3(glval) = VariableAddress[#temp2082:9] : -# 2082| r2082_4(glval) = VariableAddress[a] : -# 2082| r2082_5(bool) = Load[a] : &:r2082_4, m2080_7 -# 2082| v2082_6(void) = ConditionalBranch : r2082_5 +# 2083| Block 1 +# 2083| m2083_6(glval) = Phi : from 2:m2083_21, from 3:m2083_24 +# 2083| r2083_7(glval) = VariableAddress[#temp2083:9] : +# 2083| r2083_8(glval) = Load[#temp2083:9] : &:r2083_7, m2083_6 +# 2083| r2083_9(glval) = Convert : r2083_8 +# 2083| r2083_10(TernaryNonPodObj &) = CopyValue : r2083_9 +# 2083| r2083_11(TernaryNonPodObj &) = Call[operator=] : func:r2083_2, this:r2083_1, 0:r2083_10 +# 2083| m2083_12(unknown) = ^CallSideEffect : ~m2082_4 +# 2083| m2083_13(unknown) = Chi : total:m2082_4, partial:m2083_12 +# 2083| v2083_14(void) = ^IndirectReadSideEffect[-1] : &:r2083_1, m2082_15 +# 2083| v2083_15(void) = ^BufferReadSideEffect[0] : &:r2083_10, ~m2082_13 +# 2083| m2083_16(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2083_1 +# 2083| m2083_17(TernaryNonPodObj) = Chi : total:m2082_15, partial:m2083_16 +# 2083| r2083_18(glval) = CopyValue : r2083_11 +# 2084| r2084_1(glval) = VariableAddress[z] : +# 2084| r2084_2(glval) = FunctionAddress[operator=] : +# 2084| r2084_3(glval) = VariableAddress[#temp2084:9] : +# 2084| r2084_4(glval) = VariableAddress[a] : +# 2084| r2084_5(bool) = Load[a] : &:r2084_4, m2082_7 +# 2084| v2084_6(void) = ConditionalBranch : r2084_5 #-----| False -> Block 6 #-----| True -> Block 5 -# 2081| Block 2 -# 2081| r2081_19(glval) = VariableAddress[x] : -# 2081| r2081_20(glval) = VariableAddress[#temp2081:9] : -# 2081| m2081_21(glval) = Store[#temp2081:9] : &:r2081_20, r2081_19 +# 2083| Block 2 +# 2083| r2083_19(glval) = VariableAddress[x] : +# 2083| r2083_20(glval) = VariableAddress[#temp2083:9] : +# 2083| m2083_21(glval) = Store[#temp2083:9] : &:r2083_20, r2083_19 #-----| Goto -> Block 1 -# 2081| Block 3 -# 2081| r2081_22(glval) = VariableAddress[y] : -# 2081| r2081_23(glval) = VariableAddress[#temp2081:9] : -# 2081| m2081_24(glval) = Store[#temp2081:9] : &:r2081_23, r2081_22 +# 2083| Block 3 +# 2083| r2083_22(glval) = VariableAddress[y] : +# 2083| r2083_23(glval) = VariableAddress[#temp2083:9] : +# 2083| m2083_24(glval) = Store[#temp2083:9] : &:r2083_23, r2083_22 #-----| Goto -> Block 1 -# 2082| Block 4 -# 2082| m2082_7(unknown) = Phi : from 5:~m2082_39, from 6:~m2082_51 -# 2082| m2082_8(TernaryNonPodObj) = Phi : from 5:m2082_45, from 6:m2082_56 -# 2082| r2082_9(glval) = VariableAddress[#temp2082:9] : -# 2082| r2082_10(TernaryNonPodObj) = Load[#temp2082:9] : &:r2082_9, m2082_8 -# 2082| m2082_11(TernaryNonPodObj) = Store[#temp2082:9] : &:r2082_3, r2082_10 -# 2082| m2082_12(unknown) = Chi : total:m2082_7, partial:m2082_11 -# 2082| r2082_13(glval) = Convert : r2082_3 -# 2082| r2082_14(TernaryNonPodObj &) = CopyValue : r2082_13 -# 2082| r2082_15(TernaryNonPodObj &) = Call[operator=] : func:r2082_2, this:r2082_1, 0:r2082_14 -# 2082| m2082_16(unknown) = ^CallSideEffect : ~m2082_12 -# 2082| m2082_17(unknown) = Chi : total:m2082_12, partial:m2082_16 -# 2082| v2082_18(void) = ^IndirectReadSideEffect[-1] : &:r2082_1, m2081_17 -# 2082| v2082_19(void) = ^BufferReadSideEffect[0] : &:r2082_14, ~m2082_17 -# 2082| m2082_20(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2082_1 -# 2082| m2082_21(TernaryNonPodObj) = Chi : total:m2081_17, partial:m2082_20 -# 2082| r2082_22(glval) = CopyValue : r2082_3 -# 2082| r2082_23(glval) = FunctionAddress[~TernaryNonPodObj] : -# 2082| v2082_24(void) = Call[~TernaryNonPodObj] : func:r2082_23, this:r2082_22 -# 2082| m2082_25(unknown) = ^CallSideEffect : ~m2082_17 -# 2082| m2082_26(unknown) = Chi : total:m2082_17, partial:m2082_25 -# 2082| v2082_27(void) = ^IndirectReadSideEffect[-1] : &:r2082_22, ~m2082_26 -# 2082| m2082_28(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2082_22 -# 2082| m2082_29(unknown) = Chi : total:m2082_26, partial:m2082_28 -# 2082| r2082_30(glval) = CopyValue : r2082_15 -# 2083| r2083_1(glval) = VariableAddress[z] : -# 2083| r2083_2(glval) = FunctionAddress[operator=] : -# 2083| r2083_3(glval) = VariableAddress[#temp2083:9] : -# 2083| r2083_4(glval) = VariableAddress[a] : -# 2083| r2083_5(bool) = Load[a] : &:r2083_4, m2080_7 -# 2083| v2083_6(void) = ConditionalBranch : r2083_5 +# 2084| Block 4 +# 2084| m2084_7(unknown) = Phi : from 5:~m2084_39, from 6:~m2084_51 +# 2084| m2084_8(TernaryNonPodObj) = Phi : from 5:m2084_45, from 6:m2084_56 +# 2084| r2084_9(glval) = VariableAddress[#temp2084:9] : +# 2084| r2084_10(TernaryNonPodObj) = Load[#temp2084:9] : &:r2084_9, m2084_8 +# 2084| m2084_11(TernaryNonPodObj) = Store[#temp2084:9] : &:r2084_3, r2084_10 +# 2084| m2084_12(unknown) = Chi : total:m2084_7, partial:m2084_11 +# 2084| r2084_13(glval) = Convert : r2084_3 +# 2084| r2084_14(TernaryNonPodObj &) = CopyValue : r2084_13 +# 2084| r2084_15(TernaryNonPodObj &) = Call[operator=] : func:r2084_2, this:r2084_1, 0:r2084_14 +# 2084| m2084_16(unknown) = ^CallSideEffect : ~m2084_12 +# 2084| m2084_17(unknown) = Chi : total:m2084_12, partial:m2084_16 +# 2084| v2084_18(void) = ^IndirectReadSideEffect[-1] : &:r2084_1, m2083_17 +# 2084| v2084_19(void) = ^BufferReadSideEffect[0] : &:r2084_14, ~m2084_17 +# 2084| m2084_20(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2084_1 +# 2084| m2084_21(TernaryNonPodObj) = Chi : total:m2083_17, partial:m2084_20 +# 2084| r2084_22(glval) = CopyValue : r2084_3 +# 2084| r2084_23(glval) = FunctionAddress[~TernaryNonPodObj] : +# 2084| v2084_24(void) = Call[~TernaryNonPodObj] : func:r2084_23, this:r2084_22 +# 2084| m2084_25(unknown) = ^CallSideEffect : ~m2084_17 +# 2084| m2084_26(unknown) = Chi : total:m2084_17, partial:m2084_25 +# 2084| v2084_27(void) = ^IndirectReadSideEffect[-1] : &:r2084_22, ~m2084_26 +# 2084| m2084_28(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2084_22 +# 2084| m2084_29(unknown) = Chi : total:m2084_26, partial:m2084_28 +# 2084| r2084_30(glval) = CopyValue : r2084_15 +# 2085| r2085_1(glval) = VariableAddress[z] : +# 2085| r2085_2(glval) = FunctionAddress[operator=] : +# 2085| r2085_3(glval) = VariableAddress[#temp2085:9] : +# 2085| r2085_4(glval) = VariableAddress[a] : +# 2085| r2085_5(bool) = Load[a] : &:r2085_4, m2082_7 +# 2085| v2085_6(void) = ConditionalBranch : r2085_5 #-----| False -> Block 9 #-----| True -> Block 8 -# 2082| Block 5 -# 2082| r2082_31(glval) = VariableAddress[#temp2082:13] : -# 2082| m2082_32(TernaryNonPodObj) = Uninitialized[#temp2082:13] : &:r2082_31 -# 2082| r2082_33(glval) = FunctionAddress[TernaryNonPodObj] : -# 2082| r2082_34(glval) = VariableAddress[x] : -# 2082| r2082_35(glval) = Convert : r2082_34 -# 2082| r2082_36(TernaryNonPodObj &) = CopyValue : r2082_35 -# 2082| v2082_37(void) = Call[TernaryNonPodObj] : func:r2082_33, this:r2082_31, 0:r2082_36 -# 2082| m2082_38(unknown) = ^CallSideEffect : ~m2081_13 -# 2082| m2082_39(unknown) = Chi : total:m2081_13, partial:m2082_38 -# 2082| v2082_40(void) = ^BufferReadSideEffect[0] : &:r2082_36, ~m2080_9 -# 2082| m2082_41(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2082_31 -# 2082| m2082_42(TernaryNonPodObj) = Chi : total:m2082_32, partial:m2082_41 -# 2082| r2082_43(TernaryNonPodObj) = Load[#temp2082:13] : &:r2082_31, m2082_42 -# 2082| r2082_44(glval) = VariableAddress[#temp2082:9] : -# 2082| m2082_45(TernaryNonPodObj) = Store[#temp2082:9] : &:r2082_44, r2082_43 +# 2084| Block 5 +# 2084| r2084_31(glval) = VariableAddress[#temp2084:13] : +# 2084| m2084_32(TernaryNonPodObj) = Uninitialized[#temp2084:13] : &:r2084_31 +# 2084| r2084_33(glval) = FunctionAddress[TernaryNonPodObj] : +# 2084| r2084_34(glval) = VariableAddress[x] : +# 2084| r2084_35(glval) = Convert : r2084_34 +# 2084| r2084_36(TernaryNonPodObj &) = CopyValue : r2084_35 +# 2084| v2084_37(void) = Call[TernaryNonPodObj] : func:r2084_33, this:r2084_31, 0:r2084_36 +# 2084| m2084_38(unknown) = ^CallSideEffect : ~m2083_13 +# 2084| m2084_39(unknown) = Chi : total:m2083_13, partial:m2084_38 +# 2084| v2084_40(void) = ^BufferReadSideEffect[0] : &:r2084_36, ~m2082_9 +# 2084| m2084_41(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2084_31 +# 2084| m2084_42(TernaryNonPodObj) = Chi : total:m2084_32, partial:m2084_41 +# 2084| r2084_43(TernaryNonPodObj) = Load[#temp2084:13] : &:r2084_31, m2084_42 +# 2084| r2084_44(glval) = VariableAddress[#temp2084:9] : +# 2084| m2084_45(TernaryNonPodObj) = Store[#temp2084:9] : &:r2084_44, r2084_43 #-----| Goto -> Block 4 -# 2082| Block 6 -# 2082| r2082_46(glval) = VariableAddress[#temp2082:17] : -# 2082| m2082_47(TernaryNonPodObj) = Uninitialized[#temp2082:17] : &:r2082_46 -# 2082| r2082_48(glval) = FunctionAddress[TernaryNonPodObj] : -# 2082| v2082_49(void) = Call[TernaryNonPodObj] : func:r2082_48, this:r2082_46 -# 2082| m2082_50(unknown) = ^CallSideEffect : ~m2081_13 -# 2082| m2082_51(unknown) = Chi : total:m2081_13, partial:m2082_50 -# 2082| m2082_52(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2082_46 -# 2082| m2082_53(TernaryNonPodObj) = Chi : total:m2082_47, partial:m2082_52 -# 2082| r2082_54(TernaryNonPodObj) = Load[#temp2082:17] : &:r2082_46, m2082_53 -# 2082| r2082_55(glval) = VariableAddress[#temp2082:9] : -# 2082| m2082_56(TernaryNonPodObj) = Store[#temp2082:9] : &:r2082_55, r2082_54 +# 2084| Block 6 +# 2084| r2084_46(glval) = VariableAddress[#temp2084:17] : +# 2084| m2084_47(TernaryNonPodObj) = Uninitialized[#temp2084:17] : &:r2084_46 +# 2084| r2084_48(glval) = FunctionAddress[TernaryNonPodObj] : +# 2084| v2084_49(void) = Call[TernaryNonPodObj] : func:r2084_48, this:r2084_46 +# 2084| m2084_50(unknown) = ^CallSideEffect : ~m2083_13 +# 2084| m2084_51(unknown) = Chi : total:m2083_13, partial:m2084_50 +# 2084| m2084_52(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2084_46 +# 2084| m2084_53(TernaryNonPodObj) = Chi : total:m2084_47, partial:m2084_52 +# 2084| r2084_54(TernaryNonPodObj) = Load[#temp2084:17] : &:r2084_46, m2084_53 +# 2084| r2084_55(glval) = VariableAddress[#temp2084:9] : +# 2084| m2084_56(TernaryNonPodObj) = Store[#temp2084:9] : &:r2084_55, r2084_54 #-----| Goto -> Block 4 -# 2083| Block 7 -# 2083| m2083_7(unknown) = Phi : from 8:~m2083_36, from 9:~m2083_47 -# 2083| m2083_8(TernaryNonPodObj) = Phi : from 8:m2083_41, from 9:m2083_52 -# 2083| r2083_9(glval) = VariableAddress[#temp2083:9] : -# 2083| r2083_10(TernaryNonPodObj) = Load[#temp2083:9] : &:r2083_9, m2083_8 -# 2083| m2083_11(TernaryNonPodObj) = Store[#temp2083:9] : &:r2083_3, r2083_10 -# 2083| m2083_12(unknown) = Chi : total:m2083_7, partial:m2083_11 -# 2083| r2083_13(glval) = Convert : r2083_3 -# 2083| r2083_14(TernaryNonPodObj &) = CopyValue : r2083_13 -# 2083| r2083_15(TernaryNonPodObj &) = Call[operator=] : func:r2083_2, this:r2083_1, 0:r2083_14 -# 2083| m2083_16(unknown) = ^CallSideEffect : ~m2083_12 -# 2083| m2083_17(unknown) = Chi : total:m2083_12, partial:m2083_16 -# 2083| v2083_18(void) = ^IndirectReadSideEffect[-1] : &:r2083_1, m2082_21 -# 2083| v2083_19(void) = ^BufferReadSideEffect[0] : &:r2083_14, ~m2083_17 -# 2083| m2083_20(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2083_1 -# 2083| m2083_21(TernaryNonPodObj) = Chi : total:m2082_21, partial:m2083_20 -# 2083| r2083_22(glval) = CopyValue : r2083_3 -# 2083| r2083_23(glval) = FunctionAddress[~TernaryNonPodObj] : -# 2083| v2083_24(void) = Call[~TernaryNonPodObj] : func:r2083_23, this:r2083_22 -# 2083| m2083_25(unknown) = ^CallSideEffect : ~m2083_17 -# 2083| m2083_26(unknown) = Chi : total:m2083_17, partial:m2083_25 -# 2083| v2083_27(void) = ^IndirectReadSideEffect[-1] : &:r2083_22, ~m2083_26 -# 2083| m2083_28(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2083_22 -# 2083| m2083_29(unknown) = Chi : total:m2083_26, partial:m2083_28 -# 2083| r2083_30(glval) = CopyValue : r2083_15 -# 2084| r2084_1(glval) = VariableAddress[z] : -# 2084| r2084_2(glval) = FunctionAddress[operator=] : -# 2084| r2084_3(glval) = VariableAddress[a] : -# 2084| r2084_4(bool) = Load[a] : &:r2084_3, m2080_7 -# 2084| v2084_5(void) = ConditionalBranch : r2084_4 +# 2085| Block 7 +# 2085| m2085_7(unknown) = Phi : from 8:~m2085_36, from 9:~m2085_47 +# 2085| m2085_8(TernaryNonPodObj) = Phi : from 8:m2085_41, from 9:m2085_52 +# 2085| r2085_9(glval) = VariableAddress[#temp2085:9] : +# 2085| r2085_10(TernaryNonPodObj) = Load[#temp2085:9] : &:r2085_9, m2085_8 +# 2085| m2085_11(TernaryNonPodObj) = Store[#temp2085:9] : &:r2085_3, r2085_10 +# 2085| m2085_12(unknown) = Chi : total:m2085_7, partial:m2085_11 +# 2085| r2085_13(glval) = Convert : r2085_3 +# 2085| r2085_14(TernaryNonPodObj &) = CopyValue : r2085_13 +# 2085| r2085_15(TernaryNonPodObj &) = Call[operator=] : func:r2085_2, this:r2085_1, 0:r2085_14 +# 2085| m2085_16(unknown) = ^CallSideEffect : ~m2085_12 +# 2085| m2085_17(unknown) = Chi : total:m2085_12, partial:m2085_16 +# 2085| v2085_18(void) = ^IndirectReadSideEffect[-1] : &:r2085_1, m2084_21 +# 2085| v2085_19(void) = ^BufferReadSideEffect[0] : &:r2085_14, ~m2085_17 +# 2085| m2085_20(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2085_1 +# 2085| m2085_21(TernaryNonPodObj) = Chi : total:m2084_21, partial:m2085_20 +# 2085| r2085_22(glval) = CopyValue : r2085_3 +# 2085| r2085_23(glval) = FunctionAddress[~TernaryNonPodObj] : +# 2085| v2085_24(void) = Call[~TernaryNonPodObj] : func:r2085_23, this:r2085_22 +# 2085| m2085_25(unknown) = ^CallSideEffect : ~m2085_17 +# 2085| m2085_26(unknown) = Chi : total:m2085_17, partial:m2085_25 +# 2085| v2085_27(void) = ^IndirectReadSideEffect[-1] : &:r2085_22, ~m2085_26 +# 2085| m2085_28(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2085_22 +# 2085| m2085_29(unknown) = Chi : total:m2085_26, partial:m2085_28 +# 2085| r2085_30(glval) = CopyValue : r2085_15 +# 2086| r2086_1(glval) = VariableAddress[z] : +# 2086| r2086_2(glval) = FunctionAddress[operator=] : +# 2086| r2086_3(glval) = VariableAddress[a] : +# 2086| r2086_4(bool) = Load[a] : &:r2086_3, m2082_7 +# 2086| v2086_5(void) = ConditionalBranch : r2086_4 #-----| False -> Block 12 #-----| True -> Block 11 -# 2083| Block 8 -# 2083| r2083_31(glval) = VariableAddress[#temp2083:13] : -# 2083| m2083_32(TernaryNonPodObj) = Uninitialized[#temp2083:13] : &:r2083_31 -# 2083| r2083_33(glval) = FunctionAddress[TernaryNonPodObj] : -# 2083| v2083_34(void) = Call[TernaryNonPodObj] : func:r2083_33, this:r2083_31 -# 2083| m2083_35(unknown) = ^CallSideEffect : ~m2082_29 -# 2083| m2083_36(unknown) = Chi : total:m2082_29, partial:m2083_35 -# 2083| m2083_37(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2083_31 -# 2083| m2083_38(TernaryNonPodObj) = Chi : total:m2083_32, partial:m2083_37 -# 2083| r2083_39(TernaryNonPodObj) = Load[#temp2083:13] : &:r2083_31, m2083_38 -# 2083| r2083_40(glval) = VariableAddress[#temp2083:9] : -# 2083| m2083_41(TernaryNonPodObj) = Store[#temp2083:9] : &:r2083_40, r2083_39 +# 2085| Block 8 +# 2085| r2085_31(glval) = VariableAddress[#temp2085:13] : +# 2085| m2085_32(TernaryNonPodObj) = Uninitialized[#temp2085:13] : &:r2085_31 +# 2085| r2085_33(glval) = FunctionAddress[TernaryNonPodObj] : +# 2085| v2085_34(void) = Call[TernaryNonPodObj] : func:r2085_33, this:r2085_31 +# 2085| m2085_35(unknown) = ^CallSideEffect : ~m2084_29 +# 2085| m2085_36(unknown) = Chi : total:m2084_29, partial:m2085_35 +# 2085| m2085_37(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2085_31 +# 2085| m2085_38(TernaryNonPodObj) = Chi : total:m2085_32, partial:m2085_37 +# 2085| r2085_39(TernaryNonPodObj) = Load[#temp2085:13] : &:r2085_31, m2085_38 +# 2085| r2085_40(glval) = VariableAddress[#temp2085:9] : +# 2085| m2085_41(TernaryNonPodObj) = Store[#temp2085:9] : &:r2085_40, r2085_39 #-----| Goto -> Block 7 -# 2083| Block 9 -# 2083| r2083_42(glval) = VariableAddress[#temp2083:34] : -# 2083| m2083_43(TernaryNonPodObj) = Uninitialized[#temp2083:34] : &:r2083_42 -# 2083| r2083_44(glval) = FunctionAddress[TernaryNonPodObj] : -# 2083| v2083_45(void) = Call[TernaryNonPodObj] : func:r2083_44, this:r2083_42 -# 2083| m2083_46(unknown) = ^CallSideEffect : ~m2082_29 -# 2083| m2083_47(unknown) = Chi : total:m2082_29, partial:m2083_46 -# 2083| m2083_48(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2083_42 -# 2083| m2083_49(TernaryNonPodObj) = Chi : total:m2083_43, partial:m2083_48 -# 2083| r2083_50(TernaryNonPodObj) = Load[#temp2083:34] : &:r2083_42, m2083_49 -# 2083| r2083_51(glval) = VariableAddress[#temp2083:9] : -# 2083| m2083_52(TernaryNonPodObj) = Store[#temp2083:9] : &:r2083_51, r2083_50 +# 2085| Block 9 +# 2085| r2085_42(glval) = VariableAddress[#temp2085:34] : +# 2085| m2085_43(TernaryNonPodObj) = Uninitialized[#temp2085:34] : &:r2085_42 +# 2085| r2085_44(glval) = FunctionAddress[TernaryNonPodObj] : +# 2085| v2085_45(void) = Call[TernaryNonPodObj] : func:r2085_44, this:r2085_42 +# 2085| m2085_46(unknown) = ^CallSideEffect : ~m2084_29 +# 2085| m2085_47(unknown) = Chi : total:m2084_29, partial:m2085_46 +# 2085| m2085_48(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2085_42 +# 2085| m2085_49(TernaryNonPodObj) = Chi : total:m2085_43, partial:m2085_48 +# 2085| r2085_50(TernaryNonPodObj) = Load[#temp2085:34] : &:r2085_42, m2085_49 +# 2085| r2085_51(glval) = VariableAddress[#temp2085:9] : +# 2085| m2085_52(TernaryNonPodObj) = Store[#temp2085:9] : &:r2085_51, r2085_50 #-----| Goto -> Block 7 -# 2084| Block 10 -# 2084| m2084_6(glval) = Phi : from 11:m2084_49, from 12:m2084_52 -# 2084| r2084_7(glval) = VariableAddress[#temp2084:10] : -# 2084| r2084_8(glval) = Load[#temp2084:10] : &:r2084_7, m2084_6 -# 2084| r2084_9(glval) = Convert : r2084_8 -# 2084| r2084_10(TernaryNonPodObj &) = CopyValue : r2084_9 -# 2084| r2084_11(TernaryNonPodObj &) = Call[operator=] : func:r2084_2, this:r2084_1, 0:r2084_10 -# 2084| m2084_12(unknown) = ^CallSideEffect : ~m2083_29 -# 2084| m2084_13(unknown) = Chi : total:m2083_29, partial:m2084_12 -# 2084| v2084_14(void) = ^IndirectReadSideEffect[-1] : &:r2084_1, m2083_21 -# 2084| v2084_15(void) = ^BufferReadSideEffect[0] : &:r2084_10, ~m2080_13 -# 2084| m2084_16(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2084_1 -# 2084| m2084_17(TernaryNonPodObj) = Chi : total:m2083_21, partial:m2084_16 -# 2084| r2084_18(glval) = CopyValue : r2084_11 -# 2084| r2084_19(glval) = FunctionAddress[operator=] : -# 2084| r2084_20(glval) = VariableAddress[#temp2084:23] : -# 2084| m2084_21(TernaryNonPodObj) = Uninitialized[#temp2084:23] : &:r2084_20 -# 2084| m2084_22(unknown) = Chi : total:m2084_13, partial:m2084_21 -# 2084| r2084_23(glval) = FunctionAddress[TernaryNonPodObj] : -# 2084| v2084_24(void) = Call[TernaryNonPodObj] : func:r2084_23, this:r2084_20 -# 2084| m2084_25(unknown) = ^CallSideEffect : ~m2084_22 -# 2084| m2084_26(unknown) = Chi : total:m2084_22, partial:m2084_25 -# 2084| m2084_27(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2084_20 -# 2084| m2084_28(unknown) = Chi : total:m2084_26, partial:m2084_27 -# 2084| r2084_29(glval) = Convert : r2084_20 -# 2084| r2084_30(TernaryNonPodObj &) = CopyValue : r2084_29 -# 2084| r2084_31(TernaryNonPodObj &) = Call[operator=] : func:r2084_19, this:r2084_18, 0:r2084_30 -# 2084| m2084_32(unknown) = ^CallSideEffect : ~m2084_28 -# 2084| m2084_33(unknown) = Chi : total:m2084_28, partial:m2084_32 -# 2084| v2084_34(void) = ^IndirectReadSideEffect[-1] : &:r2084_18, m2084_17 -# 2084| v2084_35(void) = ^BufferReadSideEffect[0] : &:r2084_30, ~m2084_33 -# 2084| m2084_36(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2084_18 -# 2084| m2084_37(TernaryNonPodObj) = Chi : total:m2084_17, partial:m2084_36 -# 2084| r2084_38(glval) = CopyValue : r2084_20 -# 2084| r2084_39(glval) = FunctionAddress[~TernaryNonPodObj] : -# 2084| v2084_40(void) = Call[~TernaryNonPodObj] : func:r2084_39, this:r2084_38 -# 2084| m2084_41(unknown) = ^CallSideEffect : ~m2084_33 -# 2084| m2084_42(unknown) = Chi : total:m2084_33, partial:m2084_41 -# 2084| v2084_43(void) = ^IndirectReadSideEffect[-1] : &:r2084_38, ~m2084_42 -# 2084| m2084_44(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2084_38 -# 2084| m2084_45(unknown) = Chi : total:m2084_42, partial:m2084_44 -# 2084| r2084_46(glval) = CopyValue : r2084_31 -# 2085| v2085_1(void) = NoOp : -# 2080| v2080_16(void) = ReturnVoid : -# 2080| v2080_17(void) = AliasedUse : ~m2084_42 -# 2080| v2080_18(void) = ExitFunction : - -# 2084| Block 11 -# 2084| r2084_47(glval) = VariableAddress[x] : -# 2084| r2084_48(glval) = VariableAddress[#temp2084:10] : -# 2084| m2084_49(glval) = Store[#temp2084:10] : &:r2084_48, r2084_47 +# 2086| Block 10 +# 2086| m2086_6(glval) = Phi : from 11:m2086_49, from 12:m2086_52 +# 2086| r2086_7(glval) = VariableAddress[#temp2086:10] : +# 2086| r2086_8(glval) = Load[#temp2086:10] : &:r2086_7, m2086_6 +# 2086| r2086_9(glval) = Convert : r2086_8 +# 2086| r2086_10(TernaryNonPodObj &) = CopyValue : r2086_9 +# 2086| r2086_11(TernaryNonPodObj &) = Call[operator=] : func:r2086_2, this:r2086_1, 0:r2086_10 +# 2086| m2086_12(unknown) = ^CallSideEffect : ~m2085_29 +# 2086| m2086_13(unknown) = Chi : total:m2085_29, partial:m2086_12 +# 2086| v2086_14(void) = ^IndirectReadSideEffect[-1] : &:r2086_1, m2085_21 +# 2086| v2086_15(void) = ^BufferReadSideEffect[0] : &:r2086_10, ~m2082_13 +# 2086| m2086_16(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2086_1 +# 2086| m2086_17(TernaryNonPodObj) = Chi : total:m2085_21, partial:m2086_16 +# 2086| r2086_18(glval) = CopyValue : r2086_11 +# 2086| r2086_19(glval) = FunctionAddress[operator=] : +# 2086| r2086_20(glval) = VariableAddress[#temp2086:23] : +# 2086| m2086_21(TernaryNonPodObj) = Uninitialized[#temp2086:23] : &:r2086_20 +# 2086| m2086_22(unknown) = Chi : total:m2086_13, partial:m2086_21 +# 2086| r2086_23(glval) = FunctionAddress[TernaryNonPodObj] : +# 2086| v2086_24(void) = Call[TernaryNonPodObj] : func:r2086_23, this:r2086_20 +# 2086| m2086_25(unknown) = ^CallSideEffect : ~m2086_22 +# 2086| m2086_26(unknown) = Chi : total:m2086_22, partial:m2086_25 +# 2086| m2086_27(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2086_20 +# 2086| m2086_28(unknown) = Chi : total:m2086_26, partial:m2086_27 +# 2086| r2086_29(glval) = Convert : r2086_20 +# 2086| r2086_30(TernaryNonPodObj &) = CopyValue : r2086_29 +# 2086| r2086_31(TernaryNonPodObj &) = Call[operator=] : func:r2086_19, this:r2086_18, 0:r2086_30 +# 2086| m2086_32(unknown) = ^CallSideEffect : ~m2086_28 +# 2086| m2086_33(unknown) = Chi : total:m2086_28, partial:m2086_32 +# 2086| v2086_34(void) = ^IndirectReadSideEffect[-1] : &:r2086_18, m2086_17 +# 2086| v2086_35(void) = ^BufferReadSideEffect[0] : &:r2086_30, ~m2086_33 +# 2086| m2086_36(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2086_18 +# 2086| m2086_37(TernaryNonPodObj) = Chi : total:m2086_17, partial:m2086_36 +# 2086| r2086_38(glval) = CopyValue : r2086_20 +# 2086| r2086_39(glval) = FunctionAddress[~TernaryNonPodObj] : +# 2086| v2086_40(void) = Call[~TernaryNonPodObj] : func:r2086_39, this:r2086_38 +# 2086| m2086_41(unknown) = ^CallSideEffect : ~m2086_33 +# 2086| m2086_42(unknown) = Chi : total:m2086_33, partial:m2086_41 +# 2086| v2086_43(void) = ^IndirectReadSideEffect[-1] : &:r2086_38, ~m2086_42 +# 2086| m2086_44(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2086_38 +# 2086| m2086_45(unknown) = Chi : total:m2086_42, partial:m2086_44 +# 2086| r2086_46(glval) = CopyValue : r2086_31 +# 2087| v2087_1(void) = NoOp : +# 2082| v2082_16(void) = ReturnVoid : +# 2082| v2082_17(void) = AliasedUse : ~m2086_42 +# 2082| v2082_18(void) = ExitFunction : + +# 2086| Block 11 +# 2086| r2086_47(glval) = VariableAddress[x] : +# 2086| r2086_48(glval) = VariableAddress[#temp2086:10] : +# 2086| m2086_49(glval) = Store[#temp2086:10] : &:r2086_48, r2086_47 #-----| Goto -> Block 10 -# 2084| Block 12 -# 2084| r2084_50(glval) = VariableAddress[y] : -# 2084| r2084_51(glval) = VariableAddress[#temp2084:10] : -# 2084| m2084_52(glval) = Store[#temp2084:10] : &:r2084_51, r2084_50 +# 2086| Block 12 +# 2086| r2086_50(glval) = VariableAddress[y] : +# 2086| r2086_51(glval) = VariableAddress[#temp2086:10] : +# 2086| m2086_52(glval) = Store[#temp2086:10] : &:r2086_51, r2086_50 #-----| Goto -> Block 10 -# 2089| unsigned int CommaTest(unsigned int) -# 2089| Block 0 -# 2089| v2089_1(void) = EnterFunction : -# 2089| m2089_2(unknown) = AliasedDefinition : -# 2089| m2089_3(unknown) = InitializeNonLocal : -# 2089| m2089_4(unknown) = Chi : total:m2089_2, partial:m2089_3 -# 2089| r2089_5(glval) = VariableAddress[x] : -# 2089| m2089_6(unsigned int) = InitializeParameter[x] : &:r2089_5 -# 2090| r2090_1(glval) = VariableAddress[y] : -# 2090| m2090_2(unsigned int) = Uninitialized[y] : &:r2090_1 -# 2091| r2091_1(glval) = VariableAddress[x] : -# 2091| r2091_2(unsigned int) = Load[x] : &:r2091_1, m2089_6 -# 2091| r2091_3(unsigned int) = Constant[100] : -# 2091| r2091_4(bool) = CompareLT : r2091_2, r2091_3 -# 2091| v2091_5(void) = ConditionalBranch : r2091_4 +# 2091| unsigned int CommaTest(unsigned int) +# 2091| Block 0 +# 2091| v2091_1(void) = EnterFunction : +# 2091| m2091_2(unknown) = AliasedDefinition : +# 2091| m2091_3(unknown) = InitializeNonLocal : +# 2091| m2091_4(unknown) = Chi : total:m2091_2, partial:m2091_3 +# 2091| r2091_5(glval) = VariableAddress[x] : +# 2091| m2091_6(unsigned int) = InitializeParameter[x] : &:r2091_5 +# 2092| r2092_1(glval) = VariableAddress[y] : +# 2092| m2092_2(unsigned int) = Uninitialized[y] : &:r2092_1 +# 2093| r2093_1(glval) = VariableAddress[x] : +# 2093| r2093_2(unsigned int) = Load[x] : &:r2093_1, m2091_6 +# 2093| r2093_3(unsigned int) = Constant[100] : +# 2093| r2093_4(bool) = CompareLT : r2093_2, r2093_3 +# 2093| v2093_5(void) = ConditionalBranch : r2093_4 #-----| False -> Block 3 #-----| True -> Block 2 -# 2091| Block 1 -# 2091| m2091_6(unknown) = Phi : from 2:~m2092_6, from 3:~m2093_6 -# 2091| m2091_7(unsigned int) = Phi : from 2:m2091_13, from 3:m2091_15 -# 2091| r2091_8(glval) = VariableAddress[#temp2091:7] : -# 2091| r2091_9(unsigned int) = Load[#temp2091:7] : &:r2091_8, m2091_7 -# 2091| r2091_10(glval) = VariableAddress[y] : -# 2091| m2091_11(unsigned int) = Store[y] : &:r2091_10, r2091_9 -# 2094| r2094_1(glval) = VariableAddress[#return] : -# 2094| m2094_2(unsigned int) = Uninitialized[#return] : &:r2094_1 -# 2089| r2089_7(glval) = VariableAddress[#return] : -# 2089| v2089_8(void) = ReturnValue : &:r2089_7, m2094_2 -# 2089| v2089_9(void) = AliasedUse : ~m2091_6 -# 2089| v2089_10(void) = ExitFunction : - -# 2092| Block 2 -# 2092| r2092_1(glval) = FunctionAddress[CommaTestHelper] : -# 2092| r2092_2(glval) = VariableAddress[x] : -# 2092| r2092_3(unsigned int) = Load[x] : &:r2092_2, m2089_6 -# 2092| v2092_4(void) = Call[CommaTestHelper] : func:r2092_1, 0:r2092_3 -# 2092| m2092_5(unknown) = ^CallSideEffect : ~m2089_4 -# 2092| m2092_6(unknown) = Chi : total:m2089_4, partial:m2092_5 -# 2092| r2092_7(glval) = VariableAddress[x] : -# 2092| r2092_8(unsigned int) = Load[x] : &:r2092_7, m2089_6 -# 2092| r2092_9(unsigned int) = CopyValue : r2092_8 -# 2091| r2091_12(glval) = VariableAddress[#temp2091:7] : -# 2091| m2091_13(unsigned int) = Store[#temp2091:7] : &:r2091_12, r2092_9 +# 2093| Block 1 +# 2093| m2093_6(unknown) = Phi : from 2:~m2094_6, from 3:~m2095_6 +# 2093| m2093_7(unsigned int) = Phi : from 2:m2093_13, from 3:m2093_15 +# 2093| r2093_8(glval) = VariableAddress[#temp2093:7] : +# 2093| r2093_9(unsigned int) = Load[#temp2093:7] : &:r2093_8, m2093_7 +# 2093| r2093_10(glval) = VariableAddress[y] : +# 2093| m2093_11(unsigned int) = Store[y] : &:r2093_10, r2093_9 +# 2096| r2096_1(glval) = VariableAddress[#return] : +# 2096| m2096_2(unsigned int) = Uninitialized[#return] : &:r2096_1 +# 2091| r2091_7(glval) = VariableAddress[#return] : +# 2091| v2091_8(void) = ReturnValue : &:r2091_7, m2096_2 +# 2091| v2091_9(void) = AliasedUse : ~m2093_6 +# 2091| v2091_10(void) = ExitFunction : + +# 2094| Block 2 +# 2094| r2094_1(glval) = FunctionAddress[CommaTestHelper] : +# 2094| r2094_2(glval) = VariableAddress[x] : +# 2094| r2094_3(unsigned int) = Load[x] : &:r2094_2, m2091_6 +# 2094| v2094_4(void) = Call[CommaTestHelper] : func:r2094_1, 0:r2094_3 +# 2094| m2094_5(unknown) = ^CallSideEffect : ~m2091_4 +# 2094| m2094_6(unknown) = Chi : total:m2091_4, partial:m2094_5 +# 2094| r2094_7(glval) = VariableAddress[x] : +# 2094| r2094_8(unsigned int) = Load[x] : &:r2094_7, m2091_6 +# 2094| r2094_9(unsigned int) = CopyValue : r2094_8 +# 2093| r2093_12(glval) = VariableAddress[#temp2093:7] : +# 2093| m2093_13(unsigned int) = Store[#temp2093:7] : &:r2093_12, r2094_9 #-----| Goto -> Block 1 -# 2093| Block 3 -# 2093| r2093_1(glval) = FunctionAddress[CommaTestHelper] : -# 2093| r2093_2(glval) = VariableAddress[x] : -# 2093| r2093_3(unsigned int) = Load[x] : &:r2093_2, m2089_6 -# 2093| v2093_4(void) = Call[CommaTestHelper] : func:r2093_1, 0:r2093_3 -# 2093| m2093_5(unknown) = ^CallSideEffect : ~m2089_4 -# 2093| m2093_6(unknown) = Chi : total:m2089_4, partial:m2093_5 -# 2093| r2093_7(int) = Constant[10] : -# 2093| r2093_8(int) = CopyValue : r2093_7 -# 2093| r2093_9(unsigned int) = Convert : r2093_8 -# 2091| r2091_14(glval) = VariableAddress[#temp2091:7] : -# 2091| m2091_15(unsigned int) = Store[#temp2091:7] : &:r2091_14, r2093_9 +# 2095| Block 3 +# 2095| r2095_1(glval) = FunctionAddress[CommaTestHelper] : +# 2095| r2095_2(glval) = VariableAddress[x] : +# 2095| r2095_3(unsigned int) = Load[x] : &:r2095_2, m2091_6 +# 2095| v2095_4(void) = Call[CommaTestHelper] : func:r2095_1, 0:r2095_3 +# 2095| m2095_5(unknown) = ^CallSideEffect : ~m2091_4 +# 2095| m2095_6(unknown) = Chi : total:m2091_4, partial:m2095_5 +# 2095| r2095_7(int) = Constant[10] : +# 2095| r2095_8(int) = CopyValue : r2095_7 +# 2095| r2095_9(unsigned int) = Convert : r2095_8 +# 2093| r2093_14(glval) = VariableAddress[#temp2093:7] : +# 2093| m2093_15(unsigned int) = Store[#temp2093:7] : &:r2093_14, r2095_9 #-----| Goto -> Block 1 -# 2096| void NewDeleteMem() -# 2096| Block 0 -# 2096| v2096_1(void) = EnterFunction : -# 2096| m2096_2(unknown) = AliasedDefinition : -# 2096| m2096_3(unknown) = InitializeNonLocal : -# 2096| m2096_4(unknown) = Chi : total:m2096_2, partial:m2096_3 -# 2097| r2097_1(glval) = VariableAddress[x] : -# 2097| r2097_2(glval) = FunctionAddress[operator new] : -# 2097| r2097_3(unsigned long) = Constant[4] : -# 2097| r2097_4(void *) = Call[operator new] : func:r2097_2, 0:r2097_3 -# 2097| m2097_5(unknown) = ^CallSideEffect : ~m2096_4 -# 2097| m2097_6(unknown) = Chi : total:m2096_4, partial:m2097_5 -# 2097| m2097_7(unknown) = ^InitializeDynamicAllocation : &:r2097_4 -# 2097| m2097_8(unknown) = Chi : total:m2097_6, partial:m2097_7 -# 2097| r2097_9(int *) = Convert : r2097_4 -# 2097| m2097_10(int *) = Store[x] : &:r2097_1, r2097_9 -# 2098| r2098_1(int) = Constant[6] : -# 2098| r2098_2(glval) = VariableAddress[x] : -# 2098| r2098_3(int *) = Load[x] : &:r2098_2, m2097_10 -# 2098| r2098_4(glval) = CopyValue : r2098_3 -# 2098| m2098_5(int) = Store[?] : &:r2098_4, r2098_1 -# 2098| m2098_6(unknown) = Chi : total:m2097_8, partial:m2098_5 -# 2099| r2099_1(glval) = FunctionAddress[operator delete] : -# 2099| r2099_2(glval) = VariableAddress[x] : -# 2099| r2099_3(int *) = Load[x] : &:r2099_2, m2097_10 -# 2099| v2099_4(void) = Call[operator delete] : func:r2099_1, 0:r2099_3 -# 2099| m2099_5(unknown) = ^CallSideEffect : ~m2098_6 -# 2099| m2099_6(unknown) = Chi : total:m2098_6, partial:m2099_5 -# 2100| v2100_1(void) = NoOp : -# 2096| v2096_5(void) = ReturnVoid : -# 2096| v2096_6(void) = AliasedUse : ~m2099_6 -# 2096| v2096_7(void) = ExitFunction : - -# 2102| void Base2::Base2() -# 2102| Block 0 -# 2102| v2102_1(void) = EnterFunction : -# 2102| m2102_2(unknown) = AliasedDefinition : -# 2102| m2102_3(unknown) = InitializeNonLocal : -# 2102| m2102_4(unknown) = Chi : total:m2102_2, partial:m2102_3 -# 2102| r2102_5(glval) = VariableAddress[#this] : -# 2102| m2102_6(glval) = InitializeParameter[#this] : &:r2102_5 -# 2102| r2102_7(glval) = Load[#this] : &:r2102_5, m2102_6 -# 2102| m2102_8(Base2) = InitializeIndirection[#this] : &:r2102_7 -# 2102| v2102_9(void) = NoOp : -# 2102| v2102_10(void) = ReturnIndirection[#this] : &:r2102_7, m2102_8 -# 2102| v2102_11(void) = ReturnVoid : -# 2102| v2102_12(void) = AliasedUse : m2102_3 -# 2102| v2102_13(void) = ExitFunction : - -# 2104| void Base2::operator delete(void*) +# 2098| void NewDeleteMem() +# 2098| Block 0 +# 2098| v2098_1(void) = EnterFunction : +# 2098| m2098_2(unknown) = AliasedDefinition : +# 2098| m2098_3(unknown) = InitializeNonLocal : +# 2098| m2098_4(unknown) = Chi : total:m2098_2, partial:m2098_3 +# 2099| r2099_1(glval) = VariableAddress[x] : +# 2099| r2099_2(glval) = FunctionAddress[operator new] : +# 2099| r2099_3(unsigned long) = Constant[4] : +# 2099| r2099_4(void *) = Call[operator new] : func:r2099_2, 0:r2099_3 +# 2099| m2099_5(unknown) = ^CallSideEffect : ~m2098_4 +# 2099| m2099_6(unknown) = Chi : total:m2098_4, partial:m2099_5 +# 2099| m2099_7(unknown) = ^InitializeDynamicAllocation : &:r2099_4 +# 2099| m2099_8(unknown) = Chi : total:m2099_6, partial:m2099_7 +# 2099| r2099_9(int *) = Convert : r2099_4 +# 2099| m2099_10(int *) = Store[x] : &:r2099_1, r2099_9 +# 2100| r2100_1(int) = Constant[6] : +# 2100| r2100_2(glval) = VariableAddress[x] : +# 2100| r2100_3(int *) = Load[x] : &:r2100_2, m2099_10 +# 2100| r2100_4(glval) = CopyValue : r2100_3 +# 2100| m2100_5(int) = Store[?] : &:r2100_4, r2100_1 +# 2100| m2100_6(unknown) = Chi : total:m2099_8, partial:m2100_5 +# 2101| r2101_1(glval) = FunctionAddress[operator delete] : +# 2101| r2101_2(glval) = VariableAddress[x] : +# 2101| r2101_3(int *) = Load[x] : &:r2101_2, m2099_10 +# 2101| v2101_4(void) = Call[operator delete] : func:r2101_1, 0:r2101_3 +# 2101| m2101_5(unknown) = ^CallSideEffect : ~m2100_6 +# 2101| m2101_6(unknown) = Chi : total:m2100_6, partial:m2101_5 +# 2102| v2102_1(void) = NoOp : +# 2098| v2098_5(void) = ReturnVoid : +# 2098| v2098_6(void) = AliasedUse : ~m2101_6 +# 2098| v2098_7(void) = ExitFunction : + +# 2104| void Base2::Base2() # 2104| Block 0 -# 2104| v2104_1(void) = EnterFunction : -# 2104| m2104_2(unknown) = AliasedDefinition : -# 2104| m2104_3(unknown) = InitializeNonLocal : -# 2104| m2104_4(unknown) = Chi : total:m2104_2, partial:m2104_3 -# 2104| r2104_5(glval) = VariableAddress[p] : -# 2104| m2104_6(void *) = InitializeParameter[p] : &:r2104_5 -# 2104| r2104_7(void *) = Load[p] : &:r2104_5, m2104_6 -# 2104| m2104_8(unknown) = InitializeIndirection[p] : &:r2104_7 -# 2105| v2105_1(void) = NoOp : -# 2104| v2104_9(void) = ReturnIndirection[p] : &:r2104_7, m2104_8 -# 2104| v2104_10(void) = ReturnVoid : -# 2104| v2104_11(void) = AliasedUse : m2104_3 -# 2104| v2104_12(void) = ExitFunction : - -# 2106| void Base2::~Base2() +# 2104| v2104_1(void) = EnterFunction : +# 2104| m2104_2(unknown) = AliasedDefinition : +# 2104| m2104_3(unknown) = InitializeNonLocal : +# 2104| m2104_4(unknown) = Chi : total:m2104_2, partial:m2104_3 +# 2104| r2104_5(glval) = VariableAddress[#this] : +# 2104| m2104_6(glval) = InitializeParameter[#this] : &:r2104_5 +# 2104| r2104_7(glval) = Load[#this] : &:r2104_5, m2104_6 +# 2104| m2104_8(Base2) = InitializeIndirection[#this] : &:r2104_7 +# 2104| v2104_9(void) = NoOp : +# 2104| v2104_10(void) = ReturnIndirection[#this] : &:r2104_7, m2104_8 +# 2104| v2104_11(void) = ReturnVoid : +# 2104| v2104_12(void) = AliasedUse : m2104_3 +# 2104| v2104_13(void) = ExitFunction : + +# 2106| void Base2::operator delete(void*) # 2106| Block 0 -# 2106| v2106_1(void) = EnterFunction : -# 2106| m2106_2(unknown) = AliasedDefinition : -# 2106| m2106_3(unknown) = InitializeNonLocal : -# 2106| m2106_4(unknown) = Chi : total:m2106_2, partial:m2106_3 -# 2106| r2106_5(glval) = VariableAddress[#this] : -# 2106| m2106_6(glval) = InitializeParameter[#this] : &:r2106_5 -# 2106| r2106_7(glval) = Load[#this] : &:r2106_5, m2106_6 -# 2106| m2106_8(Base2) = InitializeIndirection[#this] : &:r2106_7 -# 2106| v2106_9(void) = NoOp : -# 2106| v2106_10(void) = ReturnIndirection[#this] : &:r2106_7, m2106_8 -# 2106| v2106_11(void) = ReturnVoid : -# 2106| v2106_12(void) = AliasedUse : m2106_3 -# 2106| v2106_13(void) = ExitFunction : - -# 2109| void Derived2::Derived2() -# 2109| Block 0 -# 2109| v2109_1(void) = EnterFunction : -# 2109| m2109_2(unknown) = AliasedDefinition : -# 2109| m2109_3(unknown) = InitializeNonLocal : -# 2109| m2109_4(unknown) = Chi : total:m2109_2, partial:m2109_3 -# 2109| r2109_5(glval) = VariableAddress[#this] : -# 2109| m2109_6(glval) = InitializeParameter[#this] : &:r2109_5 -# 2109| r2109_7(glval) = Load[#this] : &:r2109_5, m2109_6 -# 2109| m2109_8(Derived2) = InitializeIndirection[#this] : &:r2109_7 -# 2109| r2109_9(glval) = ConvertToNonVirtualBase[Derived2 : Base2] : r2109_7 -# 2109| r2109_10(glval) = FunctionAddress[Base2] : -# 2109| v2109_11(void) = Call[Base2] : func:r2109_10, this:r2109_9 -# 2109| m2109_12(unknown) = ^CallSideEffect : ~m2109_4 -# 2109| m2109_13(unknown) = Chi : total:m2109_4, partial:m2109_12 -# 2109| m2109_14(Base2) = ^IndirectMayWriteSideEffect[-1] : &:r2109_9 -# 2109| m2109_15(unknown) = Chi : total:m2109_8, partial:m2109_14 -# 2109| v2109_16(void) = NoOp : -# 2109| v2109_17(void) = ReturnIndirection[#this] : &:r2109_7, m2109_15 -# 2109| v2109_18(void) = ReturnVoid : -# 2109| v2109_19(void) = AliasedUse : ~m2109_13 -# 2109| v2109_20(void) = ExitFunction : - -# 2112| void Derived2::~Derived2() -# 2112| Block 0 -# 2112| v2112_1(void) = EnterFunction : -# 2112| m2112_2(unknown) = AliasedDefinition : -# 2112| m2112_3(unknown) = InitializeNonLocal : -# 2112| m2112_4(unknown) = Chi : total:m2112_2, partial:m2112_3 -# 2112| r2112_5(glval) = VariableAddress[#this] : -# 2112| m2112_6(glval) = InitializeParameter[#this] : &:r2112_5 -# 2112| r2112_7(glval) = Load[#this] : &:r2112_5, m2112_6 -# 2112| m2112_8(Derived2) = InitializeIndirection[#this] : &:r2112_7 -# 2112| m2112_9(unknown) = Chi : total:m2112_4, partial:m2112_8 -# 2112| v2112_10(void) = NoOp : -# 2112| r2112_11(glval) = ConvertToNonVirtualBase[Derived2 : Base2] : r2112_7 -# 2112| r2112_12(glval) = FunctionAddress[~Base2] : -# 2112| v2112_13(void) = Call[~Base2] : func:r2112_12, this:r2112_11 -# 2112| m2112_14(unknown) = ^CallSideEffect : ~m2112_9 -# 2112| m2112_15(unknown) = Chi : total:m2112_9, partial:m2112_14 -# 2112| v2112_16(void) = ReturnIndirection[#this] : &:r2112_7, ~m2112_15 -# 2112| v2112_17(void) = ReturnVoid : -# 2112| v2112_18(void) = AliasedUse : ~m2112_15 -# 2112| v2112_19(void) = ExitFunction : - -# 2114| void Derived2::operator delete(void*) +# 2106| v2106_1(void) = EnterFunction : +# 2106| m2106_2(unknown) = AliasedDefinition : +# 2106| m2106_3(unknown) = InitializeNonLocal : +# 2106| m2106_4(unknown) = Chi : total:m2106_2, partial:m2106_3 +# 2106| r2106_5(glval) = VariableAddress[p] : +# 2106| m2106_6(void *) = InitializeParameter[p] : &:r2106_5 +# 2106| r2106_7(void *) = Load[p] : &:r2106_5, m2106_6 +# 2106| m2106_8(unknown) = InitializeIndirection[p] : &:r2106_7 +# 2107| v2107_1(void) = NoOp : +# 2106| v2106_9(void) = ReturnIndirection[p] : &:r2106_7, m2106_8 +# 2106| v2106_10(void) = ReturnVoid : +# 2106| v2106_11(void) = AliasedUse : m2106_3 +# 2106| v2106_12(void) = ExitFunction : + +# 2108| void Base2::~Base2() +# 2108| Block 0 +# 2108| v2108_1(void) = EnterFunction : +# 2108| m2108_2(unknown) = AliasedDefinition : +# 2108| m2108_3(unknown) = InitializeNonLocal : +# 2108| m2108_4(unknown) = Chi : total:m2108_2, partial:m2108_3 +# 2108| r2108_5(glval) = VariableAddress[#this] : +# 2108| m2108_6(glval) = InitializeParameter[#this] : &:r2108_5 +# 2108| r2108_7(glval) = Load[#this] : &:r2108_5, m2108_6 +# 2108| m2108_8(Base2) = InitializeIndirection[#this] : &:r2108_7 +# 2108| v2108_9(void) = NoOp : +# 2108| v2108_10(void) = ReturnIndirection[#this] : &:r2108_7, m2108_8 +# 2108| v2108_11(void) = ReturnVoid : +# 2108| v2108_12(void) = AliasedUse : m2108_3 +# 2108| v2108_13(void) = ExitFunction : + +# 2111| void Derived2::Derived2() +# 2111| Block 0 +# 2111| v2111_1(void) = EnterFunction : +# 2111| m2111_2(unknown) = AliasedDefinition : +# 2111| m2111_3(unknown) = InitializeNonLocal : +# 2111| m2111_4(unknown) = Chi : total:m2111_2, partial:m2111_3 +# 2111| r2111_5(glval) = VariableAddress[#this] : +# 2111| m2111_6(glval) = InitializeParameter[#this] : &:r2111_5 +# 2111| r2111_7(glval) = Load[#this] : &:r2111_5, m2111_6 +# 2111| m2111_8(Derived2) = InitializeIndirection[#this] : &:r2111_7 +# 2111| r2111_9(glval) = ConvertToNonVirtualBase[Derived2 : Base2] : r2111_7 +# 2111| r2111_10(glval) = FunctionAddress[Base2] : +# 2111| v2111_11(void) = Call[Base2] : func:r2111_10, this:r2111_9 +# 2111| m2111_12(unknown) = ^CallSideEffect : ~m2111_4 +# 2111| m2111_13(unknown) = Chi : total:m2111_4, partial:m2111_12 +# 2111| m2111_14(Base2) = ^IndirectMayWriteSideEffect[-1] : &:r2111_9 +# 2111| m2111_15(unknown) = Chi : total:m2111_8, partial:m2111_14 +# 2111| v2111_16(void) = NoOp : +# 2111| v2111_17(void) = ReturnIndirection[#this] : &:r2111_7, m2111_15 +# 2111| v2111_18(void) = ReturnVoid : +# 2111| v2111_19(void) = AliasedUse : ~m2111_13 +# 2111| v2111_20(void) = ExitFunction : + +# 2114| void Derived2::~Derived2() # 2114| Block 0 -# 2114| v2114_1(void) = EnterFunction : -# 2114| m2114_2(unknown) = AliasedDefinition : -# 2114| m2114_3(unknown) = InitializeNonLocal : -# 2114| m2114_4(unknown) = Chi : total:m2114_2, partial:m2114_3 -# 2114| r2114_5(glval) = VariableAddress[p] : -# 2114| m2114_6(void *) = InitializeParameter[p] : &:r2114_5 -# 2114| r2114_7(void *) = Load[p] : &:r2114_5, m2114_6 -# 2114| m2114_8(unknown) = InitializeIndirection[p] : &:r2114_7 -# 2115| v2115_1(void) = NoOp : -# 2114| v2114_9(void) = ReturnIndirection[p] : &:r2114_7, m2114_8 -# 2114| v2114_10(void) = ReturnVoid : -# 2114| v2114_11(void) = AliasedUse : m2114_3 -# 2114| v2114_12(void) = ExitFunction : - -# 2119| int virtual_delete() -# 2119| Block 0 -# 2119| v2119_1(void) = EnterFunction : -# 2119| m2119_2(unknown) = AliasedDefinition : -# 2119| m2119_3(unknown) = InitializeNonLocal : -# 2119| m2119_4(unknown) = Chi : total:m2119_2, partial:m2119_3 -# 2121| r2121_1(glval) = VariableAddress[b1] : -# 2121| r2121_2(glval) = FunctionAddress[operator new] : -# 2121| r2121_3(unsigned long) = Constant[8] : -# 2121| r2121_4(void *) = Call[operator new] : func:r2121_2, 0:r2121_3 -# 2121| m2121_5(unknown) = ^CallSideEffect : ~m2119_4 -# 2121| m2121_6(unknown) = Chi : total:m2119_4, partial:m2121_5 -# 2121| m2121_7(unknown) = ^InitializeDynamicAllocation : &:r2121_4 -# 2121| m2121_8(unknown) = Chi : total:m2121_6, partial:m2121_7 -# 2121| r2121_9(Base2 *) = Convert : r2121_4 -# 2121| r2121_10(glval) = FunctionAddress[Base2] : -# 2121| v2121_11(void) = Call[Base2] : func:r2121_10, this:r2121_9 -# 2121| m2121_12(unknown) = ^CallSideEffect : ~m2121_8 -# 2121| m2121_13(unknown) = Chi : total:m2121_8, partial:m2121_12 -# 2121| m2121_14(Base2) = ^IndirectMayWriteSideEffect[-1] : &:r2121_9 -# 2121| m2121_15(unknown) = Chi : total:m2121_13, partial:m2121_14 -# 2121| m2121_16(Base2 *) = Store[b1] : &:r2121_1, r2121_9 -# 2121| m2121_17(unknown) = Chi : total:m2121_15, partial:m2121_16 -# 2122| r2122_1(glval) = VariableAddress[b1] : -# 2122| r2122_2(Base2 *) = Load[b1] : &:r2122_1, m2121_16 -# 2122| r2122_3(glval) = FunctionAddress[~Base2] : -# 2122| v2122_4(void) = Call[~Base2] : func:r2122_3 -# 2122| m2122_5(unknown) = ^CallSideEffect : ~m2121_17 -# 2122| m2122_6(unknown) = Chi : total:m2121_17, partial:m2122_5 -# 2122| v2122_7(void) = ^IndirectReadSideEffect[-1] : &:r2122_2, ~m2122_6 -# 2122| m2122_8(Base2) = ^IndirectMayWriteSideEffect[-1] : &:r2122_2 -# 2122| m2122_9(unknown) = Chi : total:m2122_6, partial:m2122_8 -# 2122| r2122_10(glval) = VirtualDeleteFunctionAddress : -# 2122| r2122_11(Base2 *) = CopyValue : r2122_1 -# 2122| v2122_12(void) = Call[?] : func:r2122_10, 0:r2122_11 -# 2122| m2122_13(unknown) = ^CallSideEffect : ~m2122_9 -# 2122| m2122_14(unknown) = Chi : total:m2122_9, partial:m2122_13 -# 2124| r2124_1(glval) = VariableAddress[b2] : -# 2124| r2124_2(glval) = FunctionAddress[operator new] : -# 2124| r2124_3(unsigned long) = Constant[16] : -# 2124| r2124_4(void *) = Call[operator new] : func:r2124_2, 0:r2124_3 -# 2124| m2124_5(unknown) = ^CallSideEffect : ~m2122_14 -# 2124| m2124_6(unknown) = Chi : total:m2122_14, partial:m2124_5 -# 2124| m2124_7(unknown) = ^InitializeDynamicAllocation : &:r2124_4 -# 2124| m2124_8(unknown) = Chi : total:m2124_6, partial:m2124_7 -# 2124| r2124_9(Derived2 *) = Convert : r2124_4 -# 2124| r2124_10(glval) = FunctionAddress[Derived2] : -# 2124| v2124_11(void) = Call[Derived2] : func:r2124_10, this:r2124_9 -# 2124| m2124_12(unknown) = ^CallSideEffect : ~m2124_8 -# 2124| m2124_13(unknown) = Chi : total:m2124_8, partial:m2124_12 -# 2124| m2124_14(Derived2) = ^IndirectMayWriteSideEffect[-1] : &:r2124_9 -# 2124| m2124_15(unknown) = Chi : total:m2124_13, partial:m2124_14 -# 2124| r2124_16(Base2 *) = ConvertToNonVirtualBase[Derived2 : Base2] : r2124_9 -# 2124| m2124_17(Base2 *) = Store[b2] : &:r2124_1, r2124_16 -# 2124| m2124_18(unknown) = Chi : total:m2124_15, partial:m2124_17 -# 2125| r2125_1(glval) = VariableAddress[b2] : -# 2125| r2125_2(Base2 *) = Load[b2] : &:r2125_1, m2124_17 -# 2125| r2125_3(glval) = FunctionAddress[~Base2] : -# 2125| v2125_4(void) = Call[~Base2] : func:r2125_3 -# 2125| m2125_5(unknown) = ^CallSideEffect : ~m2124_18 -# 2125| m2125_6(unknown) = Chi : total:m2124_18, partial:m2125_5 -# 2125| v2125_7(void) = ^IndirectReadSideEffect[-1] : &:r2125_2, ~m2125_6 -# 2125| m2125_8(Base2) = ^IndirectMayWriteSideEffect[-1] : &:r2125_2 -# 2125| m2125_9(unknown) = Chi : total:m2125_6, partial:m2125_8 -# 2125| r2125_10(glval) = VirtualDeleteFunctionAddress : -# 2125| r2125_11(Base2 *) = CopyValue : r2125_1 -# 2125| v2125_12(void) = Call[?] : func:r2125_10, 0:r2125_11 -# 2125| m2125_13(unknown) = ^CallSideEffect : ~m2125_9 -# 2125| m2125_14(unknown) = Chi : total:m2125_9, partial:m2125_13 -# 2127| r2127_1(glval) = VariableAddress[d] : -# 2127| r2127_2(glval) = FunctionAddress[operator new] : -# 2127| r2127_3(unsigned long) = Constant[16] : -# 2127| r2127_4(void *) = Call[operator new] : func:r2127_2, 0:r2127_3 -# 2127| m2127_5(unknown) = ^CallSideEffect : ~m2125_14 -# 2127| m2127_6(unknown) = Chi : total:m2125_14, partial:m2127_5 -# 2127| m2127_7(unknown) = ^InitializeDynamicAllocation : &:r2127_4 -# 2127| m2127_8(unknown) = Chi : total:m2127_6, partial:m2127_7 -# 2127| r2127_9(Derived2 *) = Convert : r2127_4 -# 2127| r2127_10(glval) = FunctionAddress[Derived2] : -# 2127| v2127_11(void) = Call[Derived2] : func:r2127_10, this:r2127_9 -# 2127| m2127_12(unknown) = ^CallSideEffect : ~m2127_8 -# 2127| m2127_13(unknown) = Chi : total:m2127_8, partial:m2127_12 -# 2127| m2127_14(Derived2) = ^IndirectMayWriteSideEffect[-1] : &:r2127_9 -# 2127| m2127_15(unknown) = Chi : total:m2127_13, partial:m2127_14 -# 2127| m2127_16(Derived2 *) = Store[d] : &:r2127_1, r2127_9 -# 2127| m2127_17(unknown) = Chi : total:m2127_15, partial:m2127_16 -# 2128| r2128_1(glval) = VariableAddress[d] : -# 2128| r2128_2(Derived2 *) = Load[d] : &:r2128_1, m2127_16 -# 2128| r2128_3(glval) = FunctionAddress[~Derived2] : -# 2128| v2128_4(void) = Call[~Derived2] : func:r2128_3 -# 2128| m2128_5(unknown) = ^CallSideEffect : ~m2127_17 -# 2128| m2128_6(unknown) = Chi : total:m2127_17, partial:m2128_5 -# 2128| v2128_7(void) = ^IndirectReadSideEffect[-1] : &:r2128_2, ~m2128_6 -# 2128| m2128_8(Derived2) = ^IndirectMayWriteSideEffect[-1] : &:r2128_2 -# 2128| m2128_9(unknown) = Chi : total:m2128_6, partial:m2128_8 -# 2128| r2128_10(glval) = VirtualDeleteFunctionAddress : -# 2128| r2128_11(Derived2 *) = CopyValue : r2128_1 -# 2128| v2128_12(void) = Call[?] : func:r2128_10, 0:r2128_11 -# 2128| m2128_13(unknown) = ^CallSideEffect : ~m2128_9 -# 2128| m2128_14(unknown) = Chi : total:m2128_9, partial:m2128_13 -# 2129| r2129_1(glval) = VariableAddress[#return] : -# 2129| m2129_2(int) = Uninitialized[#return] : &:r2129_1 -# 2119| r2119_5(glval) = VariableAddress[#return] : -# 2119| v2119_6(void) = ReturnValue : &:r2119_5, m2129_2 -# 2119| v2119_7(void) = AliasedUse : ~m2128_14 -# 2119| v2119_8(void) = ExitFunction : - -# 2133| void test_constant_folding() -# 2133| Block 0 -# 2133| v2133_1(void) = EnterFunction : -# 2133| m2133_2(unknown) = AliasedDefinition : -# 2133| m2133_3(unknown) = InitializeNonLocal : -# 2133| m2133_4(unknown) = Chi : total:m2133_2, partial:m2133_3 -# 2134| r2134_1(glval) = VariableAddress[x] : -# 2134| r2134_2(int) = Constant[116] : -# 2134| m2134_3(int) = Store[x] : &:r2134_1, r2134_2 -# 2135| r2135_1(glval) = FunctionAddress[test_constant_folding_use] : -# 2135| r2135_2(int) = Constant[116] : -# 2135| v2135_3(void) = Call[test_constant_folding_use] : func:r2135_1, 0:r2135_2 -# 2135| m2135_4(unknown) = ^CallSideEffect : ~m2133_4 -# 2135| m2135_5(unknown) = Chi : total:m2133_4, partial:m2135_4 -# 2136| v2136_1(void) = NoOp : -# 2133| v2133_5(void) = ReturnVoid : -# 2133| v2133_6(void) = AliasedUse : ~m2135_5 -# 2133| v2133_7(void) = ExitFunction : - -# 2140| int NonExit() -# 2140| Block 0 -# 2140| v2140_1(void) = EnterFunction : -# 2140| m2140_2(unknown) = AliasedDefinition : -# 2140| m2140_3(unknown) = InitializeNonLocal : -# 2140| m2140_4(unknown) = Chi : total:m2140_2, partial:m2140_3 -# 2141| r2141_1(glval) = VariableAddress[x] : -# 2141| r2141_2(glval) = FunctionAddress[Add] : -# 2141| r2141_3(int) = Constant[3] : -# 2141| r2141_4(int) = Constant[4] : -# 2141| r2141_5(int) = Call[Add] : func:r2141_2, 0:r2141_3, 1:r2141_4 -# 2141| m2141_6(unknown) = ^CallSideEffect : ~m2140_4 -# 2141| m2141_7(unknown) = Chi : total:m2140_4, partial:m2141_6 -# 2141| m2141_8(int) = Store[x] : &:r2141_1, r2141_5 -# 2142| r2142_1(glval) = VariableAddress[x] : -# 2142| r2142_2(int) = Load[x] : &:r2142_1, m2141_8 -# 2142| r2142_3(int) = Constant[7] : -# 2142| r2142_4(bool) = CompareEQ : r2142_2, r2142_3 -# 2142| v2142_5(void) = ConditionalBranch : r2142_4 +# 2114| v2114_1(void) = EnterFunction : +# 2114| m2114_2(unknown) = AliasedDefinition : +# 2114| m2114_3(unknown) = InitializeNonLocal : +# 2114| m2114_4(unknown) = Chi : total:m2114_2, partial:m2114_3 +# 2114| r2114_5(glval) = VariableAddress[#this] : +# 2114| m2114_6(glval) = InitializeParameter[#this] : &:r2114_5 +# 2114| r2114_7(glval) = Load[#this] : &:r2114_5, m2114_6 +# 2114| m2114_8(Derived2) = InitializeIndirection[#this] : &:r2114_7 +# 2114| m2114_9(unknown) = Chi : total:m2114_4, partial:m2114_8 +# 2114| v2114_10(void) = NoOp : +# 2114| r2114_11(glval) = ConvertToNonVirtualBase[Derived2 : Base2] : r2114_7 +# 2114| r2114_12(glval) = FunctionAddress[~Base2] : +# 2114| v2114_13(void) = Call[~Base2] : func:r2114_12, this:r2114_11 +# 2114| m2114_14(unknown) = ^CallSideEffect : ~m2114_9 +# 2114| m2114_15(unknown) = Chi : total:m2114_9, partial:m2114_14 +# 2114| v2114_16(void) = ReturnIndirection[#this] : &:r2114_7, ~m2114_15 +# 2114| v2114_17(void) = ReturnVoid : +# 2114| v2114_18(void) = AliasedUse : ~m2114_15 +# 2114| v2114_19(void) = ExitFunction : + +# 2116| void Derived2::operator delete(void*) +# 2116| Block 0 +# 2116| v2116_1(void) = EnterFunction : +# 2116| m2116_2(unknown) = AliasedDefinition : +# 2116| m2116_3(unknown) = InitializeNonLocal : +# 2116| m2116_4(unknown) = Chi : total:m2116_2, partial:m2116_3 +# 2116| r2116_5(glval) = VariableAddress[p] : +# 2116| m2116_6(void *) = InitializeParameter[p] : &:r2116_5 +# 2116| r2116_7(void *) = Load[p] : &:r2116_5, m2116_6 +# 2116| m2116_8(unknown) = InitializeIndirection[p] : &:r2116_7 +# 2117| v2117_1(void) = NoOp : +# 2116| v2116_9(void) = ReturnIndirection[p] : &:r2116_7, m2116_8 +# 2116| v2116_10(void) = ReturnVoid : +# 2116| v2116_11(void) = AliasedUse : m2116_3 +# 2116| v2116_12(void) = ExitFunction : + +# 2121| int virtual_delete() +# 2121| Block 0 +# 2121| v2121_1(void) = EnterFunction : +# 2121| m2121_2(unknown) = AliasedDefinition : +# 2121| m2121_3(unknown) = InitializeNonLocal : +# 2121| m2121_4(unknown) = Chi : total:m2121_2, partial:m2121_3 +# 2123| r2123_1(glval) = VariableAddress[b1] : +# 2123| r2123_2(glval) = FunctionAddress[operator new] : +# 2123| r2123_3(unsigned long) = Constant[8] : +# 2123| r2123_4(void *) = Call[operator new] : func:r2123_2, 0:r2123_3 +# 2123| m2123_5(unknown) = ^CallSideEffect : ~m2121_4 +# 2123| m2123_6(unknown) = Chi : total:m2121_4, partial:m2123_5 +# 2123| m2123_7(unknown) = ^InitializeDynamicAllocation : &:r2123_4 +# 2123| m2123_8(unknown) = Chi : total:m2123_6, partial:m2123_7 +# 2123| r2123_9(Base2 *) = Convert : r2123_4 +# 2123| r2123_10(glval) = FunctionAddress[Base2] : +# 2123| v2123_11(void) = Call[Base2] : func:r2123_10, this:r2123_9 +# 2123| m2123_12(unknown) = ^CallSideEffect : ~m2123_8 +# 2123| m2123_13(unknown) = Chi : total:m2123_8, partial:m2123_12 +# 2123| m2123_14(Base2) = ^IndirectMayWriteSideEffect[-1] : &:r2123_9 +# 2123| m2123_15(unknown) = Chi : total:m2123_13, partial:m2123_14 +# 2123| m2123_16(Base2 *) = Store[b1] : &:r2123_1, r2123_9 +# 2123| m2123_17(unknown) = Chi : total:m2123_15, partial:m2123_16 +# 2124| r2124_1(glval) = VariableAddress[b1] : +# 2124| r2124_2(Base2 *) = Load[b1] : &:r2124_1, m2123_16 +# 2124| r2124_3(glval) = FunctionAddress[~Base2] : +# 2124| v2124_4(void) = Call[~Base2] : func:r2124_3 +# 2124| m2124_5(unknown) = ^CallSideEffect : ~m2123_17 +# 2124| m2124_6(unknown) = Chi : total:m2123_17, partial:m2124_5 +# 2124| v2124_7(void) = ^IndirectReadSideEffect[-1] : &:r2124_2, ~m2124_6 +# 2124| m2124_8(Base2) = ^IndirectMayWriteSideEffect[-1] : &:r2124_2 +# 2124| m2124_9(unknown) = Chi : total:m2124_6, partial:m2124_8 +# 2124| r2124_10(glval) = VirtualDeleteFunctionAddress : +# 2124| r2124_11(Base2 *) = CopyValue : r2124_1 +# 2124| v2124_12(void) = Call[?] : func:r2124_10, 0:r2124_11 +# 2124| m2124_13(unknown) = ^CallSideEffect : ~m2124_9 +# 2124| m2124_14(unknown) = Chi : total:m2124_9, partial:m2124_13 +# 2126| r2126_1(glval) = VariableAddress[b2] : +# 2126| r2126_2(glval) = FunctionAddress[operator new] : +# 2126| r2126_3(unsigned long) = Constant[16] : +# 2126| r2126_4(void *) = Call[operator new] : func:r2126_2, 0:r2126_3 +# 2126| m2126_5(unknown) = ^CallSideEffect : ~m2124_14 +# 2126| m2126_6(unknown) = Chi : total:m2124_14, partial:m2126_5 +# 2126| m2126_7(unknown) = ^InitializeDynamicAllocation : &:r2126_4 +# 2126| m2126_8(unknown) = Chi : total:m2126_6, partial:m2126_7 +# 2126| r2126_9(Derived2 *) = Convert : r2126_4 +# 2126| r2126_10(glval) = FunctionAddress[Derived2] : +# 2126| v2126_11(void) = Call[Derived2] : func:r2126_10, this:r2126_9 +# 2126| m2126_12(unknown) = ^CallSideEffect : ~m2126_8 +# 2126| m2126_13(unknown) = Chi : total:m2126_8, partial:m2126_12 +# 2126| m2126_14(Derived2) = ^IndirectMayWriteSideEffect[-1] : &:r2126_9 +# 2126| m2126_15(unknown) = Chi : total:m2126_13, partial:m2126_14 +# 2126| r2126_16(Base2 *) = ConvertToNonVirtualBase[Derived2 : Base2] : r2126_9 +# 2126| m2126_17(Base2 *) = Store[b2] : &:r2126_1, r2126_16 +# 2126| m2126_18(unknown) = Chi : total:m2126_15, partial:m2126_17 +# 2127| r2127_1(glval) = VariableAddress[b2] : +# 2127| r2127_2(Base2 *) = Load[b2] : &:r2127_1, m2126_17 +# 2127| r2127_3(glval) = FunctionAddress[~Base2] : +# 2127| v2127_4(void) = Call[~Base2] : func:r2127_3 +# 2127| m2127_5(unknown) = ^CallSideEffect : ~m2126_18 +# 2127| m2127_6(unknown) = Chi : total:m2126_18, partial:m2127_5 +# 2127| v2127_7(void) = ^IndirectReadSideEffect[-1] : &:r2127_2, ~m2127_6 +# 2127| m2127_8(Base2) = ^IndirectMayWriteSideEffect[-1] : &:r2127_2 +# 2127| m2127_9(unknown) = Chi : total:m2127_6, partial:m2127_8 +# 2127| r2127_10(glval) = VirtualDeleteFunctionAddress : +# 2127| r2127_11(Base2 *) = CopyValue : r2127_1 +# 2127| v2127_12(void) = Call[?] : func:r2127_10, 0:r2127_11 +# 2127| m2127_13(unknown) = ^CallSideEffect : ~m2127_9 +# 2127| m2127_14(unknown) = Chi : total:m2127_9, partial:m2127_13 +# 2129| r2129_1(glval) = VariableAddress[d] : +# 2129| r2129_2(glval) = FunctionAddress[operator new] : +# 2129| r2129_3(unsigned long) = Constant[16] : +# 2129| r2129_4(void *) = Call[operator new] : func:r2129_2, 0:r2129_3 +# 2129| m2129_5(unknown) = ^CallSideEffect : ~m2127_14 +# 2129| m2129_6(unknown) = Chi : total:m2127_14, partial:m2129_5 +# 2129| m2129_7(unknown) = ^InitializeDynamicAllocation : &:r2129_4 +# 2129| m2129_8(unknown) = Chi : total:m2129_6, partial:m2129_7 +# 2129| r2129_9(Derived2 *) = Convert : r2129_4 +# 2129| r2129_10(glval) = FunctionAddress[Derived2] : +# 2129| v2129_11(void) = Call[Derived2] : func:r2129_10, this:r2129_9 +# 2129| m2129_12(unknown) = ^CallSideEffect : ~m2129_8 +# 2129| m2129_13(unknown) = Chi : total:m2129_8, partial:m2129_12 +# 2129| m2129_14(Derived2) = ^IndirectMayWriteSideEffect[-1] : &:r2129_9 +# 2129| m2129_15(unknown) = Chi : total:m2129_13, partial:m2129_14 +# 2129| m2129_16(Derived2 *) = Store[d] : &:r2129_1, r2129_9 +# 2129| m2129_17(unknown) = Chi : total:m2129_15, partial:m2129_16 +# 2130| r2130_1(glval) = VariableAddress[d] : +# 2130| r2130_2(Derived2 *) = Load[d] : &:r2130_1, m2129_16 +# 2130| r2130_3(glval) = FunctionAddress[~Derived2] : +# 2130| v2130_4(void) = Call[~Derived2] : func:r2130_3 +# 2130| m2130_5(unknown) = ^CallSideEffect : ~m2129_17 +# 2130| m2130_6(unknown) = Chi : total:m2129_17, partial:m2130_5 +# 2130| v2130_7(void) = ^IndirectReadSideEffect[-1] : &:r2130_2, ~m2130_6 +# 2130| m2130_8(Derived2) = ^IndirectMayWriteSideEffect[-1] : &:r2130_2 +# 2130| m2130_9(unknown) = Chi : total:m2130_6, partial:m2130_8 +# 2130| r2130_10(glval) = VirtualDeleteFunctionAddress : +# 2130| r2130_11(Derived2 *) = CopyValue : r2130_1 +# 2130| v2130_12(void) = Call[?] : func:r2130_10, 0:r2130_11 +# 2130| m2130_13(unknown) = ^CallSideEffect : ~m2130_9 +# 2130| m2130_14(unknown) = Chi : total:m2130_9, partial:m2130_13 +# 2131| r2131_1(glval) = VariableAddress[#return] : +# 2131| m2131_2(int) = Uninitialized[#return] : &:r2131_1 +# 2121| r2121_5(glval) = VariableAddress[#return] : +# 2121| v2121_6(void) = ReturnValue : &:r2121_5, m2131_2 +# 2121| v2121_7(void) = AliasedUse : ~m2130_14 +# 2121| v2121_8(void) = ExitFunction : + +# 2135| void test_constant_folding() +# 2135| Block 0 +# 2135| v2135_1(void) = EnterFunction : +# 2135| m2135_2(unknown) = AliasedDefinition : +# 2135| m2135_3(unknown) = InitializeNonLocal : +# 2135| m2135_4(unknown) = Chi : total:m2135_2, partial:m2135_3 +# 2136| r2136_1(glval) = VariableAddress[x] : +# 2136| r2136_2(int) = Constant[116] : +# 2136| m2136_3(int) = Store[x] : &:r2136_1, r2136_2 +# 2137| r2137_1(glval) = FunctionAddress[test_constant_folding_use] : +# 2137| r2137_2(int) = Constant[116] : +# 2137| v2137_3(void) = Call[test_constant_folding_use] : func:r2137_1, 0:r2137_2 +# 2137| m2137_4(unknown) = ^CallSideEffect : ~m2135_4 +# 2137| m2137_5(unknown) = Chi : total:m2135_4, partial:m2137_4 +# 2138| v2138_1(void) = NoOp : +# 2135| v2135_5(void) = ReturnVoid : +# 2135| v2135_6(void) = AliasedUse : ~m2137_5 +# 2135| v2135_7(void) = ExitFunction : + +# 2142| int NonExit() +# 2142| Block 0 +# 2142| v2142_1(void) = EnterFunction : +# 2142| m2142_2(unknown) = AliasedDefinition : +# 2142| m2142_3(unknown) = InitializeNonLocal : +# 2142| m2142_4(unknown) = Chi : total:m2142_2, partial:m2142_3 +# 2143| r2143_1(glval) = VariableAddress[x] : +# 2143| r2143_2(glval) = FunctionAddress[Add] : +# 2143| r2143_3(int) = Constant[3] : +# 2143| r2143_4(int) = Constant[4] : +# 2143| r2143_5(int) = Call[Add] : func:r2143_2, 0:r2143_3, 1:r2143_4 +# 2143| m2143_6(unknown) = ^CallSideEffect : ~m2142_4 +# 2143| m2143_7(unknown) = Chi : total:m2142_4, partial:m2143_6 +# 2143| m2143_8(int) = Store[x] : &:r2143_1, r2143_5 +# 2144| r2144_1(glval) = VariableAddress[x] : +# 2144| r2144_2(int) = Load[x] : &:r2144_1, m2143_8 +# 2144| r2144_3(int) = Constant[7] : +# 2144| r2144_4(bool) = CompareEQ : r2144_2, r2144_3 +# 2144| v2144_5(void) = ConditionalBranch : r2144_4 #-----| False -> Block 2 #-----| True -> Block 1 -# 2143| Block 1 -# 2143| r2143_1(glval) = FunctionAddress[exit] : -# 2143| r2143_2(int) = Constant[3] : -# 2143| v2143_3(void) = Call[exit] : func:r2143_1, 0:r2143_2 -# 2143| m2143_4(unknown) = ^CallSideEffect : ~m2141_7 -# 2143| m2143_5(unknown) = Chi : total:m2141_7, partial:m2143_4 -# 2140| v2140_5(void) = Unreached : - -# 2144| Block 2 -# 2144| r2144_1(glval) = FunctionAddress[VoidFunc] : -# 2144| v2144_2(void) = Call[VoidFunc] : func:r2144_1 -# 2144| m2144_3(unknown) = ^CallSideEffect : ~m2141_7 -# 2144| m2144_4(unknown) = Chi : total:m2141_7, partial:m2144_3 -# 2145| r2145_1(glval) = VariableAddress[#return] : -# 2145| r2145_2(glval) = VariableAddress[x] : -# 2145| r2145_3(int) = Load[x] : &:r2145_2, m2141_8 -# 2145| m2145_4(int) = Store[#return] : &:r2145_1, r2145_3 -# 2140| r2140_6(glval) = VariableAddress[#return] : -# 2140| v2140_7(void) = ReturnValue : &:r2140_6, m2145_4 -# 2140| v2140_8(void) = AliasedUse : ~m2144_4 -# 2140| v2140_9(void) = ExitFunction : - -# 2148| void CallsNonExit() -# 2148| Block 0 -# 2148| v2148_1(void) = EnterFunction : -# 2148| m2148_2(unknown) = AliasedDefinition : -# 2148| m2148_3(unknown) = InitializeNonLocal : -# 2148| m2148_4(unknown) = Chi : total:m2148_2, partial:m2148_3 -# 2149| r2149_1(glval) = FunctionAddress[VoidFunc] : -# 2149| v2149_2(void) = Call[VoidFunc] : func:r2149_1 -# 2149| m2149_3(unknown) = ^CallSideEffect : ~m2148_4 -# 2149| m2149_4(unknown) = Chi : total:m2148_4, partial:m2149_3 -# 2150| r2150_1(glval) = FunctionAddress[exit] : -# 2150| r2150_2(int) = Constant[3] : -# 2150| v2150_3(void) = Call[exit] : func:r2150_1, 0:r2150_2 -# 2150| m2150_4(unknown) = ^CallSideEffect : ~m2149_4 -# 2150| m2150_5(unknown) = Chi : total:m2149_4, partial:m2150_4 -# 2148| v2148_5(void) = Unreached : - -# 2153| int TransNonExit() -# 2153| Block 0 -# 2153| v2153_1(void) = EnterFunction : -# 2153| m2153_2(unknown) = AliasedDefinition : -# 2153| m2153_3(unknown) = InitializeNonLocal : -# 2153| m2153_4(unknown) = Chi : total:m2153_2, partial:m2153_3 -# 2154| r2154_1(glval) = VariableAddress[x] : -# 2154| r2154_2(glval) = FunctionAddress[Add] : -# 2154| r2154_3(int) = Constant[3] : -# 2154| r2154_4(int) = Constant[4] : -# 2154| r2154_5(int) = Call[Add] : func:r2154_2, 0:r2154_3, 1:r2154_4 -# 2154| m2154_6(unknown) = ^CallSideEffect : ~m2153_4 -# 2154| m2154_7(unknown) = Chi : total:m2153_4, partial:m2154_6 -# 2154| m2154_8(int) = Store[x] : &:r2154_1, r2154_5 -# 2155| r2155_1(glval) = VariableAddress[x] : -# 2155| r2155_2(int) = Load[x] : &:r2155_1, m2154_8 -# 2155| r2155_3(int) = Constant[7] : -# 2155| r2155_4(bool) = CompareEQ : r2155_2, r2155_3 -# 2155| v2155_5(void) = ConditionalBranch : r2155_4 +# 2145| Block 1 +# 2145| r2145_1(glval) = FunctionAddress[exit] : +# 2145| r2145_2(int) = Constant[3] : +# 2145| v2145_3(void) = Call[exit] : func:r2145_1, 0:r2145_2 +# 2145| m2145_4(unknown) = ^CallSideEffect : ~m2143_7 +# 2145| m2145_5(unknown) = Chi : total:m2143_7, partial:m2145_4 +# 2142| v2142_5(void) = Unreached : + +# 2146| Block 2 +# 2146| r2146_1(glval) = FunctionAddress[VoidFunc] : +# 2146| v2146_2(void) = Call[VoidFunc] : func:r2146_1 +# 2146| m2146_3(unknown) = ^CallSideEffect : ~m2143_7 +# 2146| m2146_4(unknown) = Chi : total:m2143_7, partial:m2146_3 +# 2147| r2147_1(glval) = VariableAddress[#return] : +# 2147| r2147_2(glval) = VariableAddress[x] : +# 2147| r2147_3(int) = Load[x] : &:r2147_2, m2143_8 +# 2147| m2147_4(int) = Store[#return] : &:r2147_1, r2147_3 +# 2142| r2142_6(glval) = VariableAddress[#return] : +# 2142| v2142_7(void) = ReturnValue : &:r2142_6, m2147_4 +# 2142| v2142_8(void) = AliasedUse : ~m2146_4 +# 2142| v2142_9(void) = ExitFunction : + +# 2150| void CallsNonExit() +# 2150| Block 0 +# 2150| v2150_1(void) = EnterFunction : +# 2150| m2150_2(unknown) = AliasedDefinition : +# 2150| m2150_3(unknown) = InitializeNonLocal : +# 2150| m2150_4(unknown) = Chi : total:m2150_2, partial:m2150_3 +# 2151| r2151_1(glval) = FunctionAddress[VoidFunc] : +# 2151| v2151_2(void) = Call[VoidFunc] : func:r2151_1 +# 2151| m2151_3(unknown) = ^CallSideEffect : ~m2150_4 +# 2151| m2151_4(unknown) = Chi : total:m2150_4, partial:m2151_3 +# 2152| r2152_1(glval) = FunctionAddress[exit] : +# 2152| r2152_2(int) = Constant[3] : +# 2152| v2152_3(void) = Call[exit] : func:r2152_1, 0:r2152_2 +# 2152| m2152_4(unknown) = ^CallSideEffect : ~m2151_4 +# 2152| m2152_5(unknown) = Chi : total:m2151_4, partial:m2152_4 +# 2150| v2150_5(void) = Unreached : + +# 2155| int TransNonExit() +# 2155| Block 0 +# 2155| v2155_1(void) = EnterFunction : +# 2155| m2155_2(unknown) = AliasedDefinition : +# 2155| m2155_3(unknown) = InitializeNonLocal : +# 2155| m2155_4(unknown) = Chi : total:m2155_2, partial:m2155_3 +# 2156| r2156_1(glval) = VariableAddress[x] : +# 2156| r2156_2(glval) = FunctionAddress[Add] : +# 2156| r2156_3(int) = Constant[3] : +# 2156| r2156_4(int) = Constant[4] : +# 2156| r2156_5(int) = Call[Add] : func:r2156_2, 0:r2156_3, 1:r2156_4 +# 2156| m2156_6(unknown) = ^CallSideEffect : ~m2155_4 +# 2156| m2156_7(unknown) = Chi : total:m2155_4, partial:m2156_6 +# 2156| m2156_8(int) = Store[x] : &:r2156_1, r2156_5 +# 2157| r2157_1(glval) = VariableAddress[x] : +# 2157| r2157_2(int) = Load[x] : &:r2157_1, m2156_8 +# 2157| r2157_3(int) = Constant[7] : +# 2157| r2157_4(bool) = CompareEQ : r2157_2, r2157_3 +# 2157| v2157_5(void) = ConditionalBranch : r2157_4 #-----| False -> Block 2 #-----| True -> Block 1 -# 2156| Block 1 -# 2156| r2156_1(glval) = FunctionAddress[CallsNonExit] : -# 2156| v2156_2(void) = Call[CallsNonExit] : func:r2156_1 -# 2153| v2153_5(void) = Unreached : - -# 2157| Block 2 -# 2157| r2157_1(glval) = FunctionAddress[VoidFunc] : -# 2157| v2157_2(void) = Call[VoidFunc] : func:r2157_1 -# 2157| m2157_3(unknown) = ^CallSideEffect : ~m2154_7 -# 2157| m2157_4(unknown) = Chi : total:m2154_7, partial:m2157_3 -# 2158| r2158_1(glval) = VariableAddress[#return] : -# 2158| r2158_2(glval) = VariableAddress[x] : -# 2158| r2158_3(int) = Load[x] : &:r2158_2, m2154_8 -# 2158| m2158_4(int) = Store[#return] : &:r2158_1, r2158_3 -# 2153| r2153_6(glval) = VariableAddress[#return] : -# 2153| v2153_7(void) = ReturnValue : &:r2153_6, m2158_4 -# 2153| v2153_8(void) = AliasedUse : ~m2157_4 -# 2153| v2153_9(void) = ExitFunction : - -# 2161| void newArrayCorrectType(size_t) -# 2161| Block 0 -# 2161| v2161_1(void) = EnterFunction : -# 2161| m2161_2(unknown) = AliasedDefinition : -# 2161| m2161_3(unknown) = InitializeNonLocal : -# 2161| m2161_4(unknown) = Chi : total:m2161_2, partial:m2161_3 -# 2161| r2161_5(glval) = VariableAddress[n] : -# 2161| m2161_6(unsigned long) = InitializeParameter[n] : &:r2161_5 -# 2162| r2162_1(glval) = FunctionAddress[operator new[]] : -# 2162| r2162_2(glval) = VariableAddress[n] : -# 2162| r2162_3(unsigned long) = Load[n] : &:r2162_2, m2161_6 -# 2162| r2162_4(unsigned long) = Constant[4] : -# 2162| r2162_5(unsigned long) = Mul : r2162_3, r2162_4 -# 2162| r2162_6(void *) = Call[operator new[]] : func:r2162_1, 0:r2162_5 -# 2162| m2162_7(unknown) = ^CallSideEffect : ~m2161_4 -# 2162| m2162_8(unknown) = Chi : total:m2161_4, partial:m2162_7 -# 2162| m2162_9(unknown) = ^InitializeDynamicAllocation : &:r2162_6 -# 2162| r2162_10(int *) = Convert : r2162_6 -# 2163| r2163_1(glval) = FunctionAddress[operator new[]] : -# 2163| r2163_2(glval) = VariableAddress[n] : -# 2163| r2163_3(unsigned long) = Load[n] : &:r2163_2, m2161_6 -# 2163| r2163_4(unsigned long) = Constant[4] : -# 2163| r2163_5(unsigned long) = Mul : r2163_3, r2163_4 -# 2163| r2163_6(float) = Constant[1.0] : -# 2163| r2163_7(void *) = Call[operator new[]] : func:r2163_1, 0:r2163_5, 1:r2163_6 -# 2163| m2163_8(unknown) = ^CallSideEffect : ~m2162_8 -# 2163| m2163_9(unknown) = Chi : total:m2162_8, partial:m2163_8 -# 2163| m2163_10(unknown) = ^InitializeDynamicAllocation : &:r2163_7 -# 2163| r2163_11(int *) = Convert : r2163_7 +# 2158| Block 1 +# 2158| r2158_1(glval) = FunctionAddress[CallsNonExit] : +# 2158| v2158_2(void) = Call[CallsNonExit] : func:r2158_1 +# 2155| v2155_5(void) = Unreached : + +# 2159| Block 2 +# 2159| r2159_1(glval) = FunctionAddress[VoidFunc] : +# 2159| v2159_2(void) = Call[VoidFunc] : func:r2159_1 +# 2159| m2159_3(unknown) = ^CallSideEffect : ~m2156_7 +# 2159| m2159_4(unknown) = Chi : total:m2156_7, partial:m2159_3 +# 2160| r2160_1(glval) = VariableAddress[#return] : +# 2160| r2160_2(glval) = VariableAddress[x] : +# 2160| r2160_3(int) = Load[x] : &:r2160_2, m2156_8 +# 2160| m2160_4(int) = Store[#return] : &:r2160_1, r2160_3 +# 2155| r2155_6(glval) = VariableAddress[#return] : +# 2155| v2155_7(void) = ReturnValue : &:r2155_6, m2160_4 +# 2155| v2155_8(void) = AliasedUse : ~m2159_4 +# 2155| v2155_9(void) = ExitFunction : + +# 2163| void newArrayCorrectType(size_t) +# 2163| Block 0 +# 2163| v2163_1(void) = EnterFunction : +# 2163| m2163_2(unknown) = AliasedDefinition : +# 2163| m2163_3(unknown) = InitializeNonLocal : +# 2163| m2163_4(unknown) = Chi : total:m2163_2, partial:m2163_3 +# 2163| r2163_5(glval) = VariableAddress[n] : +# 2163| m2163_6(unsigned long) = InitializeParameter[n] : &:r2163_5 # 2164| r2164_1(glval) = FunctionAddress[operator new[]] : # 2164| r2164_2(glval) = VariableAddress[n] : -# 2164| r2164_3(unsigned long) = Load[n] : &:r2164_2, m2161_6 -# 2164| r2164_4(unsigned long) = Constant[8] : +# 2164| r2164_3(unsigned long) = Load[n] : &:r2164_2, m2163_6 +# 2164| r2164_4(unsigned long) = Constant[4] : # 2164| r2164_5(unsigned long) = Mul : r2164_3, r2164_4 # 2164| r2164_6(void *) = Call[operator new[]] : func:r2164_1, 0:r2164_5 -# 2164| m2164_7(unknown) = ^CallSideEffect : ~m2163_9 -# 2164| m2164_8(unknown) = Chi : total:m2163_9, partial:m2164_7 +# 2164| m2164_7(unknown) = ^CallSideEffect : ~m2163_4 +# 2164| m2164_8(unknown) = Chi : total:m2163_4, partial:m2164_7 # 2164| m2164_9(unknown) = ^InitializeDynamicAllocation : &:r2164_6 -# 2164| r2164_10(String *) = Convert : r2164_6 +# 2164| r2164_10(int *) = Convert : r2164_6 # 2165| r2165_1(glval) = FunctionAddress[operator new[]] : # 2165| r2165_2(glval) = VariableAddress[n] : -# 2165| r2165_3(unsigned long) = Load[n] : &:r2165_2, m2161_6 -# 2165| r2165_4(unsigned long) = Constant[256] : +# 2165| r2165_3(unsigned long) = Load[n] : &:r2165_2, m2163_6 +# 2165| r2165_4(unsigned long) = Constant[4] : # 2165| r2165_5(unsigned long) = Mul : r2165_3, r2165_4 -# 2165| r2165_6(align_val_t) = Constant[128] : +# 2165| r2165_6(float) = Constant[1.0] : # 2165| r2165_7(void *) = Call[operator new[]] : func:r2165_1, 0:r2165_5, 1:r2165_6 # 2165| m2165_8(unknown) = ^CallSideEffect : ~m2164_8 # 2165| m2165_9(unknown) = Chi : total:m2164_8, partial:m2165_8 # 2165| m2165_10(unknown) = ^InitializeDynamicAllocation : &:r2165_7 -# 2165| r2165_11(Overaligned *) = Convert : r2165_7 +# 2165| r2165_11(int *) = Convert : r2165_7 # 2166| r2166_1(glval) = FunctionAddress[operator new[]] : # 2166| r2166_2(glval) = VariableAddress[n] : -# 2166| r2166_3(unsigned long) = Load[n] : &:r2166_2, m2161_6 -# 2166| r2166_4(unsigned long) = Constant[1] : +# 2166| r2166_3(unsigned long) = Load[n] : &:r2166_2, m2163_6 +# 2166| r2166_4(unsigned long) = Constant[8] : # 2166| r2166_5(unsigned long) = Mul : r2166_3, r2166_4 # 2166| r2166_6(void *) = Call[operator new[]] : func:r2166_1, 0:r2166_5 # 2166| m2166_7(unknown) = ^CallSideEffect : ~m2165_9 # 2166| m2166_8(unknown) = Chi : total:m2165_9, partial:m2166_7 # 2166| m2166_9(unknown) = ^InitializeDynamicAllocation : &:r2166_6 -# 2166| r2166_10(DefaultCtorWithDefaultParam *) = Convert : r2166_6 +# 2166| r2166_10(String *) = Convert : r2166_6 # 2167| r2167_1(glval) = FunctionAddress[operator new[]] : # 2167| r2167_2(glval) = VariableAddress[n] : -# 2167| r2167_3(unsigned long) = Load[n] : &:r2167_2, m2161_6 -# 2167| r2167_4(unsigned long) = Constant[4] : +# 2167| r2167_3(unsigned long) = Load[n] : &:r2167_2, m2163_6 +# 2167| r2167_4(unsigned long) = Constant[256] : # 2167| r2167_5(unsigned long) = Mul : r2167_3, r2167_4 -# 2167| r2167_6(void *) = Call[operator new[]] : func:r2167_1, 0:r2167_5 -# 2167| m2167_7(unknown) = ^CallSideEffect : ~m2166_8 -# 2167| m2167_8(unknown) = Chi : total:m2166_8, partial:m2167_7 -# 2167| m2167_9(unknown) = ^InitializeDynamicAllocation : &:r2167_6 -# 2167| r2167_10(int *) = Convert : r2167_6 -# 2168| v2168_1(void) = NoOp : -# 2161| v2161_7(void) = ReturnVoid : -# 2161| v2161_8(void) = AliasedUse : ~m2167_8 -# 2161| v2161_9(void) = ExitFunction : - -# 2172| char* test_strtod(char*) -# 2172| Block 0 -# 2172| v2172_1(void) = EnterFunction : -# 2172| m2172_2(unknown) = AliasedDefinition : -# 2172| m2172_3(unknown) = InitializeNonLocal : -# 2172| m2172_4(unknown) = Chi : total:m2172_2, partial:m2172_3 -# 2172| r2172_5(glval) = VariableAddress[s] : -# 2172| m2172_6(char *) = InitializeParameter[s] : &:r2172_5 -# 2172| r2172_7(char *) = Load[s] : &:r2172_5, m2172_6 -# 2172| m2172_8(unknown) = InitializeIndirection[s] : &:r2172_7 -# 2172| m2172_9(unknown) = Chi : total:m2172_4, partial:m2172_8 -# 2173| r2173_1(glval) = VariableAddress[end] : -# 2173| m2173_2(char *) = Uninitialized[end] : &:r2173_1 -# 2174| r2174_1(glval) = VariableAddress[d] : -# 2174| r2174_2(glval) = FunctionAddress[strtod] : -# 2174| r2174_3(glval) = VariableAddress[s] : -# 2174| r2174_4(char *) = Load[s] : &:r2174_3, m2172_6 -# 2174| r2174_5(char *) = Convert : r2174_4 -# 2174| r2174_6(glval) = VariableAddress[end] : -# 2174| r2174_7(char **) = CopyValue : r2174_6 -# 2174| r2174_8(double) = Call[strtod] : func:r2174_2, 0:r2174_5, 1:r2174_7 -# 2174| v2174_9(void) = ^BufferReadSideEffect[0] : &:r2174_5, ~m2172_8 -# 2174| m2174_10(char *) = ^IndirectMayWriteSideEffect[1] : &:r2174_7 -# 2174| m2174_11(char *) = Chi : total:m2173_2, partial:m2174_10 -# 2174| m2174_12(double) = Store[d] : &:r2174_1, r2174_8 -# 2175| r2175_1(glval) = VariableAddress[#return] : -# 2175| r2175_2(glval) = VariableAddress[end] : -# 2175| r2175_3(char *) = Load[end] : &:r2175_2, m2174_11 -# 2175| m2175_4(char *) = Store[#return] : &:r2175_1, r2175_3 -# 2172| v2172_10(void) = ReturnIndirection[s] : &:r2172_7, m2172_8 -# 2172| r2172_11(glval) = VariableAddress[#return] : -# 2172| v2172_12(void) = ReturnValue : &:r2172_11, m2175_4 -# 2172| v2172_13(void) = AliasedUse : ~m2172_9 -# 2172| v2172_14(void) = ExitFunction : - -# 2182| void call_as_child_of_ConditionDeclExpr() -# 2182| Block 0 -# 2182| v2182_1(void) = EnterFunction : -# 2182| m2182_2(unknown) = AliasedDefinition : -# 2182| m2182_3(unknown) = InitializeNonLocal : -# 2182| m2182_4(unknown) = Chi : total:m2182_2, partial:m2182_3 -# 2183| r2183_1(glval) = VariableAddress[b] : -# 2183| r2183_2(HasOperatorBool) = Constant[0] : -# 2183| m2183_3(HasOperatorBool) = Store[b] : &:r2183_1, r2183_2 -# 2183| m2183_4(unknown) = Chi : total:m2182_4, partial:m2183_3 -# 2183| r2183_5(glval) = VariableAddress[b] : -# 2183| r2183_6(glval) = FunctionAddress[operator bool] : -# 2183| r2183_7(bool) = Call[operator bool] : func:r2183_6, this:r2183_5 -# 2183| m2183_8(unknown) = ^CallSideEffect : ~m2183_4 -# 2183| m2183_9(unknown) = Chi : total:m2183_4, partial:m2183_8 -# 2183| v2183_10(void) = ^IndirectReadSideEffect[-1] : &:r2183_5, ~m2183_9 -# 2183| m2183_11(HasOperatorBool) = ^IndirectMayWriteSideEffect[-1] : &:r2183_5 -# 2183| m2183_12(unknown) = Chi : total:m2183_9, partial:m2183_11 -# 2183| r2183_13(bool) = CopyValue : r2183_7 -# 2183| v2183_14(void) = ConditionalBranch : r2183_13 +# 2167| r2167_6(align_val_t) = Constant[128] : +# 2167| r2167_7(void *) = Call[operator new[]] : func:r2167_1, 0:r2167_5, 1:r2167_6 +# 2167| m2167_8(unknown) = ^CallSideEffect : ~m2166_8 +# 2167| m2167_9(unknown) = Chi : total:m2166_8, partial:m2167_8 +# 2167| m2167_10(unknown) = ^InitializeDynamicAllocation : &:r2167_7 +# 2167| r2167_11(Overaligned *) = Convert : r2167_7 +# 2168| r2168_1(glval) = FunctionAddress[operator new[]] : +# 2168| r2168_2(glval) = VariableAddress[n] : +# 2168| r2168_3(unsigned long) = Load[n] : &:r2168_2, m2163_6 +# 2168| r2168_4(unsigned long) = Constant[1] : +# 2168| r2168_5(unsigned long) = Mul : r2168_3, r2168_4 +# 2168| r2168_6(void *) = Call[operator new[]] : func:r2168_1, 0:r2168_5 +# 2168| m2168_7(unknown) = ^CallSideEffect : ~m2167_9 +# 2168| m2168_8(unknown) = Chi : total:m2167_9, partial:m2168_7 +# 2168| m2168_9(unknown) = ^InitializeDynamicAllocation : &:r2168_6 +# 2168| r2168_10(DefaultCtorWithDefaultParam *) = Convert : r2168_6 +# 2169| r2169_1(glval) = FunctionAddress[operator new[]] : +# 2169| r2169_2(glval) = VariableAddress[n] : +# 2169| r2169_3(unsigned long) = Load[n] : &:r2169_2, m2163_6 +# 2169| r2169_4(unsigned long) = Constant[4] : +# 2169| r2169_5(unsigned long) = Mul : r2169_3, r2169_4 +# 2169| r2169_6(void *) = Call[operator new[]] : func:r2169_1, 0:r2169_5 +# 2169| m2169_7(unknown) = ^CallSideEffect : ~m2168_8 +# 2169| m2169_8(unknown) = Chi : total:m2168_8, partial:m2169_7 +# 2169| m2169_9(unknown) = ^InitializeDynamicAllocation : &:r2169_6 +# 2169| r2169_10(int *) = Convert : r2169_6 +# 2170| v2170_1(void) = NoOp : +# 2163| v2163_7(void) = ReturnVoid : +# 2163| v2163_8(void) = AliasedUse : ~m2169_8 +# 2163| v2163_9(void) = ExitFunction : + +# 2174| char* test_strtod(char*) +# 2174| Block 0 +# 2174| v2174_1(void) = EnterFunction : +# 2174| m2174_2(unknown) = AliasedDefinition : +# 2174| m2174_3(unknown) = InitializeNonLocal : +# 2174| m2174_4(unknown) = Chi : total:m2174_2, partial:m2174_3 +# 2174| r2174_5(glval) = VariableAddress[s] : +# 2174| m2174_6(char *) = InitializeParameter[s] : &:r2174_5 +# 2174| r2174_7(char *) = Load[s] : &:r2174_5, m2174_6 +# 2174| m2174_8(unknown) = InitializeIndirection[s] : &:r2174_7 +# 2174| m2174_9(unknown) = Chi : total:m2174_4, partial:m2174_8 +# 2175| r2175_1(glval) = VariableAddress[end] : +# 2175| m2175_2(char *) = Uninitialized[end] : &:r2175_1 +# 2176| r2176_1(glval) = VariableAddress[d] : +# 2176| r2176_2(glval) = FunctionAddress[strtod] : +# 2176| r2176_3(glval) = VariableAddress[s] : +# 2176| r2176_4(char *) = Load[s] : &:r2176_3, m2174_6 +# 2176| r2176_5(char *) = Convert : r2176_4 +# 2176| r2176_6(glval) = VariableAddress[end] : +# 2176| r2176_7(char **) = CopyValue : r2176_6 +# 2176| r2176_8(double) = Call[strtod] : func:r2176_2, 0:r2176_5, 1:r2176_7 +# 2176| v2176_9(void) = ^BufferReadSideEffect[0] : &:r2176_5, ~m2174_8 +# 2176| m2176_10(char *) = ^IndirectMayWriteSideEffect[1] : &:r2176_7 +# 2176| m2176_11(char *) = Chi : total:m2175_2, partial:m2176_10 +# 2176| m2176_12(double) = Store[d] : &:r2176_1, r2176_8 +# 2177| r2177_1(glval) = VariableAddress[#return] : +# 2177| r2177_2(glval) = VariableAddress[end] : +# 2177| r2177_3(char *) = Load[end] : &:r2177_2, m2176_11 +# 2177| m2177_4(char *) = Store[#return] : &:r2177_1, r2177_3 +# 2174| v2174_10(void) = ReturnIndirection[s] : &:r2174_7, m2174_8 +# 2174| r2174_11(glval) = VariableAddress[#return] : +# 2174| v2174_12(void) = ReturnValue : &:r2174_11, m2177_4 +# 2174| v2174_13(void) = AliasedUse : ~m2174_9 +# 2174| v2174_14(void) = ExitFunction : + +# 2184| void call_as_child_of_ConditionDeclExpr() +# 2184| Block 0 +# 2184| v2184_1(void) = EnterFunction : +# 2184| m2184_2(unknown) = AliasedDefinition : +# 2184| m2184_3(unknown) = InitializeNonLocal : +# 2184| m2184_4(unknown) = Chi : total:m2184_2, partial:m2184_3 +# 2185| r2185_1(glval) = VariableAddress[b] : +# 2185| r2185_2(HasOperatorBool) = Constant[0] : +# 2185| m2185_3(HasOperatorBool) = Store[b] : &:r2185_1, r2185_2 +# 2185| m2185_4(unknown) = Chi : total:m2184_4, partial:m2185_3 +# 2185| r2185_5(glval) = VariableAddress[b] : +# 2185| r2185_6(glval) = FunctionAddress[operator bool] : +# 2185| r2185_7(bool) = Call[operator bool] : func:r2185_6, this:r2185_5 +# 2185| m2185_8(unknown) = ^CallSideEffect : ~m2185_4 +# 2185| m2185_9(unknown) = Chi : total:m2185_4, partial:m2185_8 +# 2185| v2185_10(void) = ^IndirectReadSideEffect[-1] : &:r2185_5, ~m2185_9 +# 2185| m2185_11(HasOperatorBool) = ^IndirectMayWriteSideEffect[-1] : &:r2185_5 +# 2185| m2185_12(unknown) = Chi : total:m2185_9, partial:m2185_11 +# 2185| r2185_13(bool) = CopyValue : r2185_7 +# 2185| v2185_14(void) = ConditionalBranch : r2185_13 #-----| False -> Block 2 #-----| True -> Block 1 -# 2183| Block 1 -# 2183| v2183_15(void) = NoOp : +# 2185| Block 1 +# 2185| v2185_15(void) = NoOp : #-----| Goto -> Block 2 -# 2184| Block 2 -# 2184| v2184_1(void) = NoOp : -# 2182| v2182_5(void) = ReturnVoid : -# 2182| v2182_6(void) = AliasedUse : ~m2183_9 -# 2182| v2182_7(void) = ExitFunction : - -# 2186| void ClassWithDestructor::ClassWithDestructor(ClassWithDestructor const&) -# 2186| Block 0 -# 2186| v2186_1(void) = EnterFunction : -# 2186| m2186_2(unknown) = AliasedDefinition : -# 2186| m2186_3(unknown) = InitializeNonLocal : -# 2186| m2186_4(unknown) = Chi : total:m2186_2, partial:m2186_3 -# 2186| r2186_5(glval) = VariableAddress[#this] : -# 2186| m2186_6(glval) = InitializeParameter[#this] : &:r2186_5 -# 2186| r2186_7(glval) = Load[#this] : &:r2186_5, m2186_6 -# 2186| m2186_8(ClassWithDestructor) = InitializeIndirection[#this] : &:r2186_7 +# 2186| Block 2 +# 2186| v2186_1(void) = NoOp : +# 2184| v2184_5(void) = ReturnVoid : +# 2184| v2184_6(void) = AliasedUse : ~m2185_9 +# 2184| v2184_7(void) = ExitFunction : + +# 2188| void ClassWithDestructor::ClassWithDestructor(ClassWithDestructor const&) +# 2188| Block 0 +# 2188| v2188_1(void) = EnterFunction : +# 2188| m2188_2(unknown) = AliasedDefinition : +# 2188| m2188_3(unknown) = InitializeNonLocal : +# 2188| m2188_4(unknown) = Chi : total:m2188_2, partial:m2188_3 +# 2188| r2188_5(glval) = VariableAddress[#this] : +# 2188| m2188_6(glval) = InitializeParameter[#this] : &:r2188_5 +# 2188| r2188_7(glval) = Load[#this] : &:r2188_5, m2188_6 +# 2188| m2188_8(ClassWithDestructor) = InitializeIndirection[#this] : &:r2188_7 #-----| r0_1(glval) = VariableAddress[(unnamed parameter 0)] : #-----| m0_2(ClassWithDestructor &) = InitializeParameter[(unnamed parameter 0)] : &:r0_1 #-----| r0_3(ClassWithDestructor &) = Load[(unnamed parameter 0)] : &:r0_1, m0_2 #-----| m0_4(unknown) = InitializeIndirection[(unnamed parameter 0)] : &:r0_3 -# 2186| r2186_9(glval) = FieldAddress[x] : r2186_7 -# 2186| r2186_10(glval) = VariableAddress[(unnamed parameter 0)] : -# 2186| r2186_11(ClassWithDestructor &) = Load[(unnamed parameter 0)] : &:r2186_10, m0_2 -# 2186| r2186_12(glval) = CopyValue : r2186_11 -# 2186| r2186_13(glval) = FieldAddress[x] : r2186_12 -# 2186| r2186_14(char *) = Load[?] : &:r2186_13, ~m0_4 -# 2186| m2186_15(char *) = Store[?] : &:r2186_9, r2186_14 -# 2186| m2186_16(unknown) = Chi : total:m2186_8, partial:m2186_15 -# 2186| v2186_17(void) = NoOp : -# 2186| v2186_18(void) = ReturnIndirection[#this] : &:r2186_7, m2186_16 +# 2188| r2188_9(glval) = FieldAddress[x] : r2188_7 +# 2188| r2188_10(glval) = VariableAddress[(unnamed parameter 0)] : +# 2188| r2188_11(ClassWithDestructor &) = Load[(unnamed parameter 0)] : &:r2188_10, m0_2 +# 2188| r2188_12(glval) = CopyValue : r2188_11 +# 2188| r2188_13(glval) = FieldAddress[x] : r2188_12 +# 2188| r2188_14(char *) = Load[?] : &:r2188_13, ~m0_4 +# 2188| m2188_15(char *) = Store[?] : &:r2188_9, r2188_14 +# 2188| m2188_16(unknown) = Chi : total:m2188_8, partial:m2188_15 +# 2188| v2188_17(void) = NoOp : +# 2188| v2188_18(void) = ReturnIndirection[#this] : &:r2188_7, m2188_16 #-----| v0_5(void) = ReturnIndirection[(unnamed parameter 0)] : &:r0_3, m0_4 -# 2186| v2186_19(void) = ReturnVoid : -# 2186| v2186_20(void) = AliasedUse : m2186_3 -# 2186| v2186_21(void) = ExitFunction : - -# 2189| void ClassWithDestructor::ClassWithDestructor() -# 2189| Block 0 -# 2189| v2189_1(void) = EnterFunction : -# 2189| m2189_2(unknown) = AliasedDefinition : -# 2189| m2189_3(unknown) = InitializeNonLocal : -# 2189| m2189_4(unknown) = Chi : total:m2189_2, partial:m2189_3 -# 2189| r2189_5(glval) = VariableAddress[#this] : -# 2189| m2189_6(glval) = InitializeParameter[#this] : &:r2189_5 -# 2189| r2189_7(glval) = Load[#this] : &:r2189_5, m2189_6 -# 2189| m2189_8(ClassWithDestructor) = InitializeIndirection[#this] : &:r2189_7 -# 2189| r2189_9(glval) = FunctionAddress[operator new] : -# 2189| r2189_10(unsigned long) = Constant[1] : -# 2189| r2189_11(void *) = Call[operator new] : func:r2189_9, 0:r2189_10 -# 2189| m2189_12(unknown) = ^CallSideEffect : ~m2189_4 -# 2189| m2189_13(unknown) = Chi : total:m2189_4, partial:m2189_12 -# 2189| m2189_14(unknown) = ^InitializeDynamicAllocation : &:r2189_11 -# 2189| m2189_15(unknown) = Chi : total:m2189_13, partial:m2189_14 -# 2189| r2189_16(char *) = Convert : r2189_11 -# 2189| r2189_17(glval) = VariableAddress[#this] : -# 2189| r2189_18(ClassWithDestructor *) = Load[#this] : &:r2189_17, m2189_6 -# 2189| r2189_19(glval) = FieldAddress[x] : r2189_18 -# 2189| m2189_20(char *) = Store[?] : &:r2189_19, r2189_16 -# 2189| m2189_21(unknown) = Chi : total:m2189_8, partial:m2189_20 -# 2189| v2189_22(void) = NoOp : -# 2189| v2189_23(void) = ReturnIndirection[#this] : &:r2189_7, m2189_21 -# 2189| v2189_24(void) = ReturnVoid : -# 2189| v2189_25(void) = AliasedUse : ~m2189_15 -# 2189| v2189_26(void) = ExitFunction : - -# 2190| void ClassWithDestructor::~ClassWithDestructor() -# 2190| Block 0 -# 2190| v2190_1(void) = EnterFunction : -# 2190| m2190_2(unknown) = AliasedDefinition : -# 2190| m2190_3(unknown) = InitializeNonLocal : -# 2190| m2190_4(unknown) = Chi : total:m2190_2, partial:m2190_3 -# 2190| r2190_5(glval) = VariableAddress[#this] : -# 2190| m2190_6(glval) = InitializeParameter[#this] : &:r2190_5 -# 2190| r2190_7(glval) = Load[#this] : &:r2190_5, m2190_6 -# 2190| m2190_8(ClassWithDestructor) = InitializeIndirection[#this] : &:r2190_7 -# 2190| r2190_9(glval) = FunctionAddress[operator delete] : -# 2190| r2190_10(glval) = VariableAddress[#this] : -# 2190| r2190_11(ClassWithDestructor *) = Load[#this] : &:r2190_10, m2190_6 -# 2190| r2190_12(glval) = FieldAddress[x] : r2190_11 -# 2190| r2190_13(char *) = Load[?] : &:r2190_12, ~m2190_8 -# 2190| v2190_14(void) = Call[operator delete] : func:r2190_9, 0:r2190_13 -# 2190| m2190_15(unknown) = ^CallSideEffect : ~m2190_4 -# 2190| m2190_16(unknown) = Chi : total:m2190_4, partial:m2190_15 -# 2190| v2190_17(void) = NoOp : -# 2190| v2190_18(void) = ReturnIndirection[#this] : &:r2190_7, m2190_8 -# 2190| v2190_19(void) = ReturnVoid : -# 2190| v2190_20(void) = AliasedUse : ~m2190_16 -# 2190| v2190_21(void) = ExitFunction : - -# 2192| void ClassWithDestructor::set_x(char) +# 2188| v2188_19(void) = ReturnVoid : +# 2188| v2188_20(void) = AliasedUse : m2188_3 +# 2188| v2188_21(void) = ExitFunction : + +# 2191| void ClassWithDestructor::ClassWithDestructor() +# 2191| Block 0 +# 2191| v2191_1(void) = EnterFunction : +# 2191| m2191_2(unknown) = AliasedDefinition : +# 2191| m2191_3(unknown) = InitializeNonLocal : +# 2191| m2191_4(unknown) = Chi : total:m2191_2, partial:m2191_3 +# 2191| r2191_5(glval) = VariableAddress[#this] : +# 2191| m2191_6(glval) = InitializeParameter[#this] : &:r2191_5 +# 2191| r2191_7(glval) = Load[#this] : &:r2191_5, m2191_6 +# 2191| m2191_8(ClassWithDestructor) = InitializeIndirection[#this] : &:r2191_7 +# 2191| r2191_9(glval) = FunctionAddress[operator new] : +# 2191| r2191_10(unsigned long) = Constant[1] : +# 2191| r2191_11(void *) = Call[operator new] : func:r2191_9, 0:r2191_10 +# 2191| m2191_12(unknown) = ^CallSideEffect : ~m2191_4 +# 2191| m2191_13(unknown) = Chi : total:m2191_4, partial:m2191_12 +# 2191| m2191_14(unknown) = ^InitializeDynamicAllocation : &:r2191_11 +# 2191| m2191_15(unknown) = Chi : total:m2191_13, partial:m2191_14 +# 2191| r2191_16(char *) = Convert : r2191_11 +# 2191| r2191_17(glval) = VariableAddress[#this] : +# 2191| r2191_18(ClassWithDestructor *) = Load[#this] : &:r2191_17, m2191_6 +# 2191| r2191_19(glval) = FieldAddress[x] : r2191_18 +# 2191| m2191_20(char *) = Store[?] : &:r2191_19, r2191_16 +# 2191| m2191_21(unknown) = Chi : total:m2191_8, partial:m2191_20 +# 2191| v2191_22(void) = NoOp : +# 2191| v2191_23(void) = ReturnIndirection[#this] : &:r2191_7, m2191_21 +# 2191| v2191_24(void) = ReturnVoid : +# 2191| v2191_25(void) = AliasedUse : ~m2191_15 +# 2191| v2191_26(void) = ExitFunction : + +# 2192| void ClassWithDestructor::~ClassWithDestructor() # 2192| Block 0 -# 2192| v2192_1(void) = EnterFunction : -# 2192| m2192_2(unknown) = AliasedDefinition : -# 2192| m2192_3(unknown) = InitializeNonLocal : -# 2192| m2192_4(unknown) = Chi : total:m2192_2, partial:m2192_3 -# 2192| r2192_5(glval) = VariableAddress[#this] : -# 2192| m2192_6(glval) = InitializeParameter[#this] : &:r2192_5 -# 2192| r2192_7(glval) = Load[#this] : &:r2192_5, m2192_6 -# 2192| m2192_8(ClassWithDestructor) = InitializeIndirection[#this] : &:r2192_7 -# 2192| r2192_9(glval) = VariableAddress[y] : -# 2192| m2192_10(char) = InitializeParameter[y] : &:r2192_9 -# 2192| r2192_11(glval) = VariableAddress[y] : -# 2192| r2192_12(char) = Load[y] : &:r2192_11, m2192_10 -# 2192| r2192_13(glval) = VariableAddress[#this] : -# 2192| r2192_14(ClassWithDestructor *) = Load[#this] : &:r2192_13, m2192_6 -# 2192| r2192_15(glval) = FieldAddress[x] : r2192_14 -# 2192| r2192_16(char *) = Load[?] : &:r2192_15, ~m2192_8 -# 2192| r2192_17(glval) = CopyValue : r2192_16 -# 2192| m2192_18(char) = Store[?] : &:r2192_17, r2192_12 -# 2192| m2192_19(unknown) = Chi : total:m2192_4, partial:m2192_18 -# 2192| v2192_20(void) = NoOp : -# 2192| v2192_21(void) = ReturnIndirection[#this] : &:r2192_7, m2192_8 -# 2192| v2192_22(void) = ReturnVoid : -# 2192| v2192_23(void) = AliasedUse : ~m2192_19 -# 2192| v2192_24(void) = ExitFunction : - -# 2193| char ClassWithDestructor::get_x() -# 2193| Block 0 -# 2193| v2193_1(void) = EnterFunction : -# 2193| m2193_2(unknown) = AliasedDefinition : -# 2193| m2193_3(unknown) = InitializeNonLocal : -# 2193| m2193_4(unknown) = Chi : total:m2193_2, partial:m2193_3 -# 2193| r2193_5(glval) = VariableAddress[#this] : -# 2193| m2193_6(glval) = InitializeParameter[#this] : &:r2193_5 -# 2193| r2193_7(glval) = Load[#this] : &:r2193_5, m2193_6 -# 2193| m2193_8(ClassWithDestructor) = InitializeIndirection[#this] : &:r2193_7 -# 2193| r2193_9(glval) = VariableAddress[#return] : -# 2193| r2193_10(glval) = VariableAddress[#this] : -# 2193| r2193_11(ClassWithDestructor *) = Load[#this] : &:r2193_10, m2193_6 -# 2193| r2193_12(glval) = FieldAddress[x] : r2193_11 -# 2193| r2193_13(char *) = Load[?] : &:r2193_12, ~m2193_8 -# 2193| r2193_14(char) = Load[?] : &:r2193_13, ~m2193_4 -# 2193| m2193_15(char) = Store[#return] : &:r2193_9, r2193_14 -# 2193| v2193_16(void) = ReturnIndirection[#this] : &:r2193_7, m2193_8 -# 2193| r2193_17(glval) = VariableAddress[#return] : -# 2193| v2193_18(void) = ReturnValue : &:r2193_17, m2193_15 -# 2193| v2193_19(void) = AliasedUse : m2193_3 -# 2193| v2193_20(void) = ExitFunction : - -# 2197| bool initialization_with_destructor_bool -# 2197| Block 0 -# 2197| v2197_1(void) = EnterFunction : -# 2197| m2197_2(unknown) = AliasedDefinition : -# 2197| r2197_3(glval) = VariableAddress[initialization_with_destructor_bool] : -# 2197| r2197_4(bool) = Constant[1] : -# 2197| m2197_5(bool) = Store[initialization_with_destructor_bool] : &:r2197_3, r2197_4 -# 2197| m2197_6(unknown) = Chi : total:m2197_2, partial:m2197_5 -# 2197| v2197_7(void) = ReturnVoid : -# 2197| v2197_8(void) = AliasedUse : ~m2197_6 -# 2197| v2197_9(void) = ExitFunction : - -# 2199| void initialization_with_destructor(bool, char) +# 2192| v2192_1(void) = EnterFunction : +# 2192| m2192_2(unknown) = AliasedDefinition : +# 2192| m2192_3(unknown) = InitializeNonLocal : +# 2192| m2192_4(unknown) = Chi : total:m2192_2, partial:m2192_3 +# 2192| r2192_5(glval) = VariableAddress[#this] : +# 2192| m2192_6(glval) = InitializeParameter[#this] : &:r2192_5 +# 2192| r2192_7(glval) = Load[#this] : &:r2192_5, m2192_6 +# 2192| m2192_8(ClassWithDestructor) = InitializeIndirection[#this] : &:r2192_7 +# 2192| r2192_9(glval) = FunctionAddress[operator delete] : +# 2192| r2192_10(glval) = VariableAddress[#this] : +# 2192| r2192_11(ClassWithDestructor *) = Load[#this] : &:r2192_10, m2192_6 +# 2192| r2192_12(glval) = FieldAddress[x] : r2192_11 +# 2192| r2192_13(char *) = Load[?] : &:r2192_12, ~m2192_8 +# 2192| v2192_14(void) = Call[operator delete] : func:r2192_9, 0:r2192_13 +# 2192| m2192_15(unknown) = ^CallSideEffect : ~m2192_4 +# 2192| m2192_16(unknown) = Chi : total:m2192_4, partial:m2192_15 +# 2192| v2192_17(void) = NoOp : +# 2192| v2192_18(void) = ReturnIndirection[#this] : &:r2192_7, m2192_8 +# 2192| v2192_19(void) = ReturnVoid : +# 2192| v2192_20(void) = AliasedUse : ~m2192_16 +# 2192| v2192_21(void) = ExitFunction : + +# 2194| void ClassWithDestructor::set_x(char) +# 2194| Block 0 +# 2194| v2194_1(void) = EnterFunction : +# 2194| m2194_2(unknown) = AliasedDefinition : +# 2194| m2194_3(unknown) = InitializeNonLocal : +# 2194| m2194_4(unknown) = Chi : total:m2194_2, partial:m2194_3 +# 2194| r2194_5(glval) = VariableAddress[#this] : +# 2194| m2194_6(glval) = InitializeParameter[#this] : &:r2194_5 +# 2194| r2194_7(glval) = Load[#this] : &:r2194_5, m2194_6 +# 2194| m2194_8(ClassWithDestructor) = InitializeIndirection[#this] : &:r2194_7 +# 2194| r2194_9(glval) = VariableAddress[y] : +# 2194| m2194_10(char) = InitializeParameter[y] : &:r2194_9 +# 2194| r2194_11(glval) = VariableAddress[y] : +# 2194| r2194_12(char) = Load[y] : &:r2194_11, m2194_10 +# 2194| r2194_13(glval) = VariableAddress[#this] : +# 2194| r2194_14(ClassWithDestructor *) = Load[#this] : &:r2194_13, m2194_6 +# 2194| r2194_15(glval) = FieldAddress[x] : r2194_14 +# 2194| r2194_16(char *) = Load[?] : &:r2194_15, ~m2194_8 +# 2194| r2194_17(glval) = CopyValue : r2194_16 +# 2194| m2194_18(char) = Store[?] : &:r2194_17, r2194_12 +# 2194| m2194_19(unknown) = Chi : total:m2194_4, partial:m2194_18 +# 2194| v2194_20(void) = NoOp : +# 2194| v2194_21(void) = ReturnIndirection[#this] : &:r2194_7, m2194_8 +# 2194| v2194_22(void) = ReturnVoid : +# 2194| v2194_23(void) = AliasedUse : ~m2194_19 +# 2194| v2194_24(void) = ExitFunction : + +# 2195| char ClassWithDestructor::get_x() +# 2195| Block 0 +# 2195| v2195_1(void) = EnterFunction : +# 2195| m2195_2(unknown) = AliasedDefinition : +# 2195| m2195_3(unknown) = InitializeNonLocal : +# 2195| m2195_4(unknown) = Chi : total:m2195_2, partial:m2195_3 +# 2195| r2195_5(glval) = VariableAddress[#this] : +# 2195| m2195_6(glval) = InitializeParameter[#this] : &:r2195_5 +# 2195| r2195_7(glval) = Load[#this] : &:r2195_5, m2195_6 +# 2195| m2195_8(ClassWithDestructor) = InitializeIndirection[#this] : &:r2195_7 +# 2195| r2195_9(glval) = VariableAddress[#return] : +# 2195| r2195_10(glval) = VariableAddress[#this] : +# 2195| r2195_11(ClassWithDestructor *) = Load[#this] : &:r2195_10, m2195_6 +# 2195| r2195_12(glval) = FieldAddress[x] : r2195_11 +# 2195| r2195_13(char *) = Load[?] : &:r2195_12, ~m2195_8 +# 2195| r2195_14(char) = Load[?] : &:r2195_13, ~m2195_4 +# 2195| m2195_15(char) = Store[#return] : &:r2195_9, r2195_14 +# 2195| v2195_16(void) = ReturnIndirection[#this] : &:r2195_7, m2195_8 +# 2195| r2195_17(glval) = VariableAddress[#return] : +# 2195| v2195_18(void) = ReturnValue : &:r2195_17, m2195_15 +# 2195| v2195_19(void) = AliasedUse : m2195_3 +# 2195| v2195_20(void) = ExitFunction : + +# 2199| bool initialization_with_destructor_bool # 2199| Block 0 -# 2199| v2199_1(void) = EnterFunction : -# 2199| m2199_2(unknown) = AliasedDefinition : -# 2199| m2199_3(unknown) = InitializeNonLocal : -# 2199| m2199_4(unknown) = Chi : total:m2199_2, partial:m2199_3 -# 2199| r2199_5(glval) = VariableAddress[b] : -# 2199| m2199_6(bool) = InitializeParameter[b] : &:r2199_5 -# 2199| r2199_7(glval) = VariableAddress[c] : -# 2199| m2199_8(char) = InitializeParameter[c] : &:r2199_7 -# 2200| r2200_1(glval) = VariableAddress[x] : -# 2200| m2200_2(ClassWithDestructor) = Uninitialized[x] : &:r2200_1 -# 2200| r2200_3(glval) = FunctionAddress[ClassWithDestructor] : -# 2200| v2200_4(void) = Call[ClassWithDestructor] : func:r2200_3, this:r2200_1 -# 2200| m2200_5(unknown) = ^CallSideEffect : ~m2199_4 -# 2200| m2200_6(unknown) = Chi : total:m2199_4, partial:m2200_5 -# 2200| m2200_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2200_1 -# 2200| m2200_8(ClassWithDestructor) = Chi : total:m2200_2, partial:m2200_7 -# 2200| r2200_9(glval) = VariableAddress[b] : -# 2200| r2200_10(bool) = Load[b] : &:r2200_9, m2199_6 -# 2200| v2200_11(void) = ConditionalBranch : r2200_10 +# 2199| v2199_1(void) = EnterFunction : +# 2199| m2199_2(unknown) = AliasedDefinition : +# 2199| r2199_3(glval) = VariableAddress[initialization_with_destructor_bool] : +# 2199| r2199_4(bool) = Constant[1] : +# 2199| m2199_5(bool) = Store[initialization_with_destructor_bool] : &:r2199_3, r2199_4 +# 2199| m2199_6(unknown) = Chi : total:m2199_2, partial:m2199_5 +# 2199| v2199_7(void) = ReturnVoid : +# 2199| v2199_8(void) = AliasedUse : ~m2199_6 +# 2199| v2199_9(void) = ExitFunction : + +# 2201| void initialization_with_destructor(bool, char) +# 2201| Block 0 +# 2201| v2201_1(void) = EnterFunction : +# 2201| m2201_2(unknown) = AliasedDefinition : +# 2201| m2201_3(unknown) = InitializeNonLocal : +# 2201| m2201_4(unknown) = Chi : total:m2201_2, partial:m2201_3 +# 2201| r2201_5(glval) = VariableAddress[b] : +# 2201| m2201_6(bool) = InitializeParameter[b] : &:r2201_5 +# 2201| r2201_7(glval) = VariableAddress[c] : +# 2201| m2201_8(char) = InitializeParameter[c] : &:r2201_7 +# 2202| r2202_1(glval) = VariableAddress[x] : +# 2202| m2202_2(ClassWithDestructor) = Uninitialized[x] : &:r2202_1 +# 2202| r2202_3(glval) = FunctionAddress[ClassWithDestructor] : +# 2202| v2202_4(void) = Call[ClassWithDestructor] : func:r2202_3, this:r2202_1 +# 2202| m2202_5(unknown) = ^CallSideEffect : ~m2201_4 +# 2202| m2202_6(unknown) = Chi : total:m2201_4, partial:m2202_5 +# 2202| m2202_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2202_1 +# 2202| m2202_8(ClassWithDestructor) = Chi : total:m2202_2, partial:m2202_7 +# 2202| r2202_9(glval) = VariableAddress[b] : +# 2202| r2202_10(bool) = Load[b] : &:r2202_9, m2201_6 +# 2202| v2202_11(void) = ConditionalBranch : r2202_10 #-----| False -> Block 3 #-----| True -> Block 2 -# 2199| Block 1 -# 2199| m2199_9(unknown) = Phi : from 14:~m2234_5, from 19:~m2234_13, from 23:~m2234_22 -# 2199| v2199_10(void) = ReturnVoid : -# 2199| v2199_11(void) = AliasedUse : ~m2199_9 -# 2199| v2199_12(void) = ExitFunction : - -# 2201| Block 2 -# 2201| r2201_1(glval) = VariableAddress[x] : -# 2201| r2201_2(glval) = FunctionAddress[set_x] : -# 2201| r2201_3(char) = Constant[97] : -# 2201| v2201_4(void) = Call[set_x] : func:r2201_2, this:r2201_1, 0:r2201_3 -# 2201| m2201_5(unknown) = ^CallSideEffect : ~m2200_6 -# 2201| m2201_6(unknown) = Chi : total:m2200_6, partial:m2201_5 -# 2201| v2201_7(void) = ^IndirectReadSideEffect[-1] : &:r2201_1, m2200_8 -# 2201| m2201_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2201_1 -# 2201| m2201_9(ClassWithDestructor) = Chi : total:m2200_8, partial:m2201_8 +# 2201| Block 1 +# 2201| m2201_9(unknown) = Phi : from 14:~m2236_5, from 19:~m2236_13, from 23:~m2236_22 +# 2201| v2201_10(void) = ReturnVoid : +# 2201| v2201_11(void) = AliasedUse : ~m2201_9 +# 2201| v2201_12(void) = ExitFunction : + +# 2203| Block 2 +# 2203| r2203_1(glval) = VariableAddress[x] : +# 2203| r2203_2(glval) = FunctionAddress[set_x] : +# 2203| r2203_3(char) = Constant[97] : +# 2203| v2203_4(void) = Call[set_x] : func:r2203_2, this:r2203_1, 0:r2203_3 +# 2203| m2203_5(unknown) = ^CallSideEffect : ~m2202_6 +# 2203| m2203_6(unknown) = Chi : total:m2202_6, partial:m2203_5 +# 2203| v2203_7(void) = ^IndirectReadSideEffect[-1] : &:r2203_1, m2202_8 +# 2203| m2203_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2203_1 +# 2203| m2203_9(ClassWithDestructor) = Chi : total:m2202_8, partial:m2203_8 #-----| Goto -> Block 3 -# 2201| Block 3 -# 2201| m2201_10(ClassWithDestructor) = Phi : from 0:m2200_8, from 2:m2201_9 -# 2201| m2201_11(unknown) = Phi : from 0:~m2200_6, from 2:~m2201_6 -# 2201| r2201_12(glval) = VariableAddress[x] : -# 2201| r2201_13(glval) = FunctionAddress[~ClassWithDestructor] : -# 2201| v2201_14(void) = Call[~ClassWithDestructor] : func:r2201_13, this:r2201_12 -# 2201| m2201_15(unknown) = ^CallSideEffect : ~m2201_11 -# 2201| m2201_16(unknown) = Chi : total:m2201_11, partial:m2201_15 -# 2201| v2201_17(void) = ^IndirectReadSideEffect[-1] : &:r2201_12, m2201_10 -# 2201| m2201_18(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2201_12 -# 2201| m2201_19(ClassWithDestructor) = Chi : total:m2201_10, partial:m2201_18 -# 2203| r2203_1(glval) = VariableAddress[x] : -# 2203| m2203_2(ClassWithDestructor) = Uninitialized[x] : &:r2203_1 -# 2203| r2203_3(glval) = FunctionAddress[ClassWithDestructor] : -# 2203| v2203_4(void) = Call[ClassWithDestructor] : func:r2203_3, this:r2203_1 -# 2203| m2203_5(unknown) = ^CallSideEffect : ~m2201_16 -# 2203| m2203_6(unknown) = Chi : total:m2201_16, partial:m2203_5 -# 2203| m2203_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2203_1 -# 2203| m2203_8(ClassWithDestructor) = Chi : total:m2203_2, partial:m2203_7 -# 2203| r2203_9(bool) = Constant[1] : -# 2203| v2203_10(void) = ConditionalBranch : r2203_9 +# 2203| Block 3 +# 2203| m2203_10(ClassWithDestructor) = Phi : from 0:m2202_8, from 2:m2203_9 +# 2203| m2203_11(unknown) = Phi : from 0:~m2202_6, from 2:~m2203_6 +# 2203| r2203_12(glval) = VariableAddress[x] : +# 2203| r2203_13(glval) = FunctionAddress[~ClassWithDestructor] : +# 2203| v2203_14(void) = Call[~ClassWithDestructor] : func:r2203_13, this:r2203_12 +# 2203| m2203_15(unknown) = ^CallSideEffect : ~m2203_11 +# 2203| m2203_16(unknown) = Chi : total:m2203_11, partial:m2203_15 +# 2203| v2203_17(void) = ^IndirectReadSideEffect[-1] : &:r2203_12, m2203_10 +# 2203| m2203_18(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2203_12 +# 2203| m2203_19(ClassWithDestructor) = Chi : total:m2203_10, partial:m2203_18 +# 2205| r2205_1(glval) = VariableAddress[x] : +# 2205| m2205_2(ClassWithDestructor) = Uninitialized[x] : &:r2205_1 +# 2205| r2205_3(glval) = FunctionAddress[ClassWithDestructor] : +# 2205| v2205_4(void) = Call[ClassWithDestructor] : func:r2205_3, this:r2205_1 +# 2205| m2205_5(unknown) = ^CallSideEffect : ~m2203_16 +# 2205| m2205_6(unknown) = Chi : total:m2203_16, partial:m2205_5 +# 2205| m2205_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2205_1 +# 2205| m2205_8(ClassWithDestructor) = Chi : total:m2205_2, partial:m2205_7 +# 2205| r2205_9(bool) = Constant[1] : +# 2205| v2205_10(void) = ConditionalBranch : r2205_9 #-----| False -> Block 24 #-----| True -> Block 4 -# 2204| Block 4 -# 2204| r2204_1(glval) = VariableAddress[x] : -# 2204| r2204_2(glval) = FunctionAddress[set_x] : -# 2204| r2204_3(char) = Constant[97] : -# 2204| v2204_4(void) = Call[set_x] : func:r2204_2, this:r2204_1, 0:r2204_3 -# 2204| m2204_5(unknown) = ^CallSideEffect : ~m2203_6 -# 2204| m2204_6(unknown) = Chi : total:m2203_6, partial:m2204_5 -# 2204| v2204_7(void) = ^IndirectReadSideEffect[-1] : &:r2204_1, m2203_8 -# 2204| m2204_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2204_1 -# 2204| m2204_9(ClassWithDestructor) = Chi : total:m2203_8, partial:m2204_8 -# 2204| r2204_10(glval) = VariableAddress[x] : -# 2204| r2204_11(glval) = FunctionAddress[~ClassWithDestructor] : -# 2204| v2204_12(void) = Call[~ClassWithDestructor] : func:r2204_11, this:r2204_10 -# 2204| m2204_13(unknown) = ^CallSideEffect : ~m2204_6 -# 2204| m2204_14(unknown) = Chi : total:m2204_6, partial:m2204_13 -# 2204| v2204_15(void) = ^IndirectReadSideEffect[-1] : &:r2204_10, m2204_9 -# 2204| m2204_16(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2204_10 -# 2204| m2204_17(ClassWithDestructor) = Chi : total:m2204_9, partial:m2204_16 +# 2206| Block 4 # 2206| r2206_1(glval) = VariableAddress[x] : -# 2206| m2206_2(ClassWithDestructor) = Uninitialized[x] : &:r2206_1 -# 2206| r2206_3(glval) = FunctionAddress[ClassWithDestructor] : -# 2206| v2206_4(void) = Call[ClassWithDestructor] : func:r2206_3, this:r2206_1 -# 2206| m2206_5(unknown) = ^CallSideEffect : ~m2204_14 -# 2206| m2206_6(unknown) = Chi : total:m2204_14, partial:m2206_5 -# 2206| m2206_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2206_1 -# 2206| m2206_8(ClassWithDestructor) = Chi : total:m2206_2, partial:m2206_7 -# 2206| r2206_9(glval) = VariableAddress[c] : -# 2206| r2206_10(char) = Load[c] : &:r2206_9, m2199_8 -# 2206| r2206_11(int) = Convert : r2206_10 -# 2206| v2206_12(void) = Switch : r2206_11 +# 2206| r2206_2(glval) = FunctionAddress[set_x] : +# 2206| r2206_3(char) = Constant[97] : +# 2206| v2206_4(void) = Call[set_x] : func:r2206_2, this:r2206_1, 0:r2206_3 +# 2206| m2206_5(unknown) = ^CallSideEffect : ~m2205_6 +# 2206| m2206_6(unknown) = Chi : total:m2205_6, partial:m2206_5 +# 2206| v2206_7(void) = ^IndirectReadSideEffect[-1] : &:r2206_1, m2205_8 +# 2206| m2206_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2206_1 +# 2206| m2206_9(ClassWithDestructor) = Chi : total:m2205_8, partial:m2206_8 +# 2206| r2206_10(glval) = VariableAddress[x] : +# 2206| r2206_11(glval) = FunctionAddress[~ClassWithDestructor] : +# 2206| v2206_12(void) = Call[~ClassWithDestructor] : func:r2206_11, this:r2206_10 +# 2206| m2206_13(unknown) = ^CallSideEffect : ~m2206_6 +# 2206| m2206_14(unknown) = Chi : total:m2206_6, partial:m2206_13 +# 2206| v2206_15(void) = ^IndirectReadSideEffect[-1] : &:r2206_10, m2206_9 +# 2206| m2206_16(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2206_10 +# 2206| m2206_17(ClassWithDestructor) = Chi : total:m2206_9, partial:m2206_16 +# 2208| r2208_1(glval) = VariableAddress[x] : +# 2208| m2208_2(ClassWithDestructor) = Uninitialized[x] : &:r2208_1 +# 2208| r2208_3(glval) = FunctionAddress[ClassWithDestructor] : +# 2208| v2208_4(void) = Call[ClassWithDestructor] : func:r2208_3, this:r2208_1 +# 2208| m2208_5(unknown) = ^CallSideEffect : ~m2206_14 +# 2208| m2208_6(unknown) = Chi : total:m2206_14, partial:m2208_5 +# 2208| m2208_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2208_1 +# 2208| m2208_8(ClassWithDestructor) = Chi : total:m2208_2, partial:m2208_7 +# 2208| r2208_9(glval) = VariableAddress[c] : +# 2208| r2208_10(char) = Load[c] : &:r2208_9, m2201_8 +# 2208| r2208_11(int) = Convert : r2208_10 +# 2208| v2208_12(void) = Switch : r2208_11 #-----| Case[97] -> Block 5 #-----| Default -> Block 6 -# 2207| Block 5 -# 2207| v2207_1(void) = NoOp : -# 2208| r2208_1(glval) = VariableAddress[x] : -# 2208| r2208_2(glval) = FunctionAddress[set_x] : -# 2208| r2208_3(char) = Constant[97] : -# 2208| v2208_4(void) = Call[set_x] : func:r2208_2, this:r2208_1, 0:r2208_3 -# 2208| m2208_5(unknown) = ^CallSideEffect : ~m2206_6 -# 2208| m2208_6(unknown) = Chi : total:m2206_6, partial:m2208_5 -# 2208| v2208_7(void) = ^IndirectReadSideEffect[-1] : &:r2208_1, m2206_8 -# 2208| m2208_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2208_1 -# 2208| m2208_9(ClassWithDestructor) = Chi : total:m2206_8, partial:m2208_8 -# 2213| r2213_1(glval) = VariableAddress[x] : -# 2213| r2213_2(glval) = FunctionAddress[~ClassWithDestructor] : -# 2213| v2213_3(void) = Call[~ClassWithDestructor] : func:r2213_2, this:r2213_1 -# 2213| m2213_4(unknown) = ^CallSideEffect : ~m2208_6 -# 2213| m2213_5(unknown) = Chi : total:m2208_6, partial:m2213_4 -# 2213| v2213_6(void) = ^IndirectReadSideEffect[-1] : &:r2213_1, m2208_9 -# 2213| m2213_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2213_1 -# 2213| m2213_8(ClassWithDestructor) = Chi : total:m2208_9, partial:m2213_7 +# 2209| Block 5 # 2209| v2209_1(void) = NoOp : +# 2210| r2210_1(glval) = VariableAddress[x] : +# 2210| r2210_2(glval) = FunctionAddress[set_x] : +# 2210| r2210_3(char) = Constant[97] : +# 2210| v2210_4(void) = Call[set_x] : func:r2210_2, this:r2210_1, 0:r2210_3 +# 2210| m2210_5(unknown) = ^CallSideEffect : ~m2208_6 +# 2210| m2210_6(unknown) = Chi : total:m2208_6, partial:m2210_5 +# 2210| v2210_7(void) = ^IndirectReadSideEffect[-1] : &:r2210_1, m2208_8 +# 2210| m2210_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2210_1 +# 2210| m2210_9(ClassWithDestructor) = Chi : total:m2208_8, partial:m2210_8 +# 2215| r2215_1(glval) = VariableAddress[x] : +# 2215| r2215_2(glval) = FunctionAddress[~ClassWithDestructor] : +# 2215| v2215_3(void) = Call[~ClassWithDestructor] : func:r2215_2, this:r2215_1 +# 2215| m2215_4(unknown) = ^CallSideEffect : ~m2210_6 +# 2215| m2215_5(unknown) = Chi : total:m2210_6, partial:m2215_4 +# 2215| v2215_6(void) = ^IndirectReadSideEffect[-1] : &:r2215_1, m2210_9 +# 2215| m2215_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2215_1 +# 2215| m2215_8(ClassWithDestructor) = Chi : total:m2210_9, partial:m2215_7 +# 2211| v2211_1(void) = NoOp : #-----| Goto -> Block 7 -# 2210| Block 6 -# 2210| v2210_1(void) = NoOp : -# 2211| r2211_1(glval) = VariableAddress[x] : -# 2211| r2211_2(glval) = FunctionAddress[set_x] : -# 2211| r2211_3(char) = Constant[98] : -# 2211| v2211_4(void) = Call[set_x] : func:r2211_2, this:r2211_1, 0:r2211_3 -# 2211| m2211_5(unknown) = ^CallSideEffect : ~m2206_6 -# 2211| m2211_6(unknown) = Chi : total:m2206_6, partial:m2211_5 -# 2211| v2211_7(void) = ^IndirectReadSideEffect[-1] : &:r2211_1, m2206_8 -# 2211| m2211_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2211_1 -# 2211| m2211_9(ClassWithDestructor) = Chi : total:m2206_8, partial:m2211_8 -# 2213| r2213_9(glval) = VariableAddress[x] : -# 2213| r2213_10(glval) = FunctionAddress[~ClassWithDestructor] : -# 2213| v2213_11(void) = Call[~ClassWithDestructor] : func:r2213_10, this:r2213_9 -# 2213| m2213_12(unknown) = ^CallSideEffect : ~m2211_6 -# 2213| m2213_13(unknown) = Chi : total:m2211_6, partial:m2213_12 -# 2213| v2213_14(void) = ^IndirectReadSideEffect[-1] : &:r2213_9, m2211_9 -# 2213| m2213_15(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2213_9 -# 2213| m2213_16(ClassWithDestructor) = Chi : total:m2211_9, partial:m2213_15 +# 2212| Block 6 # 2212| v2212_1(void) = NoOp : +# 2213| r2213_1(glval) = VariableAddress[x] : +# 2213| r2213_2(glval) = FunctionAddress[set_x] : +# 2213| r2213_3(char) = Constant[98] : +# 2213| v2213_4(void) = Call[set_x] : func:r2213_2, this:r2213_1, 0:r2213_3 +# 2213| m2213_5(unknown) = ^CallSideEffect : ~m2208_6 +# 2213| m2213_6(unknown) = Chi : total:m2208_6, partial:m2213_5 +# 2213| v2213_7(void) = ^IndirectReadSideEffect[-1] : &:r2213_1, m2208_8 +# 2213| m2213_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2213_1 +# 2213| m2213_9(ClassWithDestructor) = Chi : total:m2208_8, partial:m2213_8 +# 2215| r2215_9(glval) = VariableAddress[x] : +# 2215| r2215_10(glval) = FunctionAddress[~ClassWithDestructor] : +# 2215| v2215_11(void) = Call[~ClassWithDestructor] : func:r2215_10, this:r2215_9 +# 2215| m2215_12(unknown) = ^CallSideEffect : ~m2213_6 +# 2215| m2215_13(unknown) = Chi : total:m2213_6, partial:m2215_12 +# 2215| v2215_14(void) = ^IndirectReadSideEffect[-1] : &:r2215_9, m2213_9 +# 2215| m2215_15(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2215_9 +# 2215| m2215_16(ClassWithDestructor) = Chi : total:m2213_9, partial:m2215_15 +# 2214| v2214_1(void) = NoOp : #-----| Goto -> Block 7 -# 2213| Block 7 -# 2213| m2213_17(unknown) = Phi : from 5:~m2213_5, from 6:~m2213_13 -# 2213| v2213_18(void) = NoOp : -# 2215| r2215_1(glval) = VariableAddress[x] : -# 2215| m2215_2(ClassWithDestructor) = Uninitialized[x] : &:r2215_1 -# 2215| r2215_3(glval) = FunctionAddress[ClassWithDestructor] : -# 2215| v2215_4(void) = Call[ClassWithDestructor] : func:r2215_3, this:r2215_1 -# 2215| m2215_5(unknown) = ^CallSideEffect : ~m2213_17 -# 2215| m2215_6(unknown) = Chi : total:m2213_17, partial:m2215_5 -# 2215| m2215_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2215_1 -# 2215| m2215_8(ClassWithDestructor) = Chi : total:m2215_2, partial:m2215_7 -# 2216| r2216_1(glval>) = VariableAddress[ys] : -# 2216| m2216_2(vector) = Uninitialized[ys] : &:r2216_1 -# 2216| r2216_3(glval) = FunctionAddress[vector] : -# 2216| r2216_4(glval) = VariableAddress[#temp2216:45] : -# 2216| r2216_5(glval) = VariableAddress[x] : -# 2216| r2216_6(ClassWithDestructor) = Load[x] : &:r2216_5, m2215_8 -# 2216| m2216_7(ClassWithDestructor) = Store[#temp2216:45] : &:r2216_4, r2216_6 -# 2216| r2216_8(ClassWithDestructor) = Load[#temp2216:45] : &:r2216_4, m2216_7 -# 2216| v2216_9(void) = Call[vector] : func:r2216_3, this:r2216_1, 0:r2216_8 -# 2216| m2216_10(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2216_1 -# 2216| r2216_11(glval) = CopyValue : r2216_4 -# 2216| r2216_12(glval) = FunctionAddress[~ClassWithDestructor] : -# 2216| v2216_13(void) = Call[~ClassWithDestructor] : func:r2216_12, this:r2216_11 -# 2216| m2216_14(unknown) = ^CallSideEffect : ~m2215_6 -# 2216| m2216_15(unknown) = Chi : total:m2215_6, partial:m2216_14 -# 2216| v2216_16(void) = ^IndirectReadSideEffect[-1] : &:r2216_11, m2216_7 -# 2216| m2216_17(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2216_11 -# 2216| m2216_18(ClassWithDestructor) = Chi : total:m2216_7, partial:m2216_17 -# 2216| r2216_19(glval &>) = VariableAddress[(__range)] : -# 2216| r2216_20(glval>) = VariableAddress[ys] : -# 2216| r2216_21(vector &) = CopyValue : r2216_20 -# 2216| m2216_22(vector &) = Store[(__range)] : &:r2216_19, r2216_21 -# 2216| r2216_23(glval>) = VariableAddress[(__begin)] : -# 2216| r2216_24(glval &>) = VariableAddress[(__range)] : -# 2216| r2216_25(vector &) = Load[(__range)] : &:r2216_24, m2216_22 -#-----| r0_1(glval>) = CopyValue : r2216_25 +# 2215| Block 7 +# 2215| m2215_17(unknown) = Phi : from 5:~m2215_5, from 6:~m2215_13 +# 2215| v2215_18(void) = NoOp : +# 2217| r2217_1(glval) = VariableAddress[x] : +# 2217| m2217_2(ClassWithDestructor) = Uninitialized[x] : &:r2217_1 +# 2217| r2217_3(glval) = FunctionAddress[ClassWithDestructor] : +# 2217| v2217_4(void) = Call[ClassWithDestructor] : func:r2217_3, this:r2217_1 +# 2217| m2217_5(unknown) = ^CallSideEffect : ~m2215_17 +# 2217| m2217_6(unknown) = Chi : total:m2215_17, partial:m2217_5 +# 2217| m2217_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2217_1 +# 2217| m2217_8(ClassWithDestructor) = Chi : total:m2217_2, partial:m2217_7 +# 2218| r2218_1(glval>) = VariableAddress[ys] : +# 2218| m2218_2(vector) = Uninitialized[ys] : &:r2218_1 +# 2218| r2218_3(glval) = FunctionAddress[vector] : +# 2218| r2218_4(glval) = VariableAddress[#temp2218:45] : +# 2218| r2218_5(glval) = VariableAddress[x] : +# 2218| r2218_6(ClassWithDestructor) = Load[x] : &:r2218_5, m2217_8 +# 2218| m2218_7(ClassWithDestructor) = Store[#temp2218:45] : &:r2218_4, r2218_6 +# 2218| r2218_8(ClassWithDestructor) = Load[#temp2218:45] : &:r2218_4, m2218_7 +# 2218| v2218_9(void) = Call[vector] : func:r2218_3, this:r2218_1, 0:r2218_8 +# 2218| m2218_10(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2218_1 +# 2218| r2218_11(glval) = CopyValue : r2218_4 +# 2218| r2218_12(glval) = FunctionAddress[~ClassWithDestructor] : +# 2218| v2218_13(void) = Call[~ClassWithDestructor] : func:r2218_12, this:r2218_11 +# 2218| m2218_14(unknown) = ^CallSideEffect : ~m2217_6 +# 2218| m2218_15(unknown) = Chi : total:m2217_6, partial:m2218_14 +# 2218| v2218_16(void) = ^IndirectReadSideEffect[-1] : &:r2218_11, m2218_7 +# 2218| m2218_17(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2218_11 +# 2218| m2218_18(ClassWithDestructor) = Chi : total:m2218_7, partial:m2218_17 +# 2218| r2218_19(glval &>) = VariableAddress[(__range)] : +# 2218| r2218_20(glval>) = VariableAddress[ys] : +# 2218| r2218_21(vector &) = CopyValue : r2218_20 +# 2218| m2218_22(vector &) = Store[(__range)] : &:r2218_19, r2218_21 +# 2218| r2218_23(glval>) = VariableAddress[(__begin)] : +# 2218| r2218_24(glval &>) = VariableAddress[(__range)] : +# 2218| r2218_25(vector &) = Load[(__range)] : &:r2218_24, m2218_22 +#-----| r0_1(glval>) = CopyValue : r2218_25 #-----| r0_2(glval>) = Convert : r0_1 -# 2216| r2216_26(glval) = FunctionAddress[begin] : -# 2216| r2216_27(iterator) = Call[begin] : func:r2216_26, this:r0_2 -#-----| v0_3(void) = ^IndirectReadSideEffect[-1] : &:r0_2, m2216_10 -# 2216| m2216_28(iterator) = Store[(__begin)] : &:r2216_23, r2216_27 -# 2216| r2216_29(glval>) = VariableAddress[(__end)] : -# 2216| r2216_30(glval &>) = VariableAddress[(__range)] : -# 2216| r2216_31(vector &) = Load[(__range)] : &:r2216_30, m2216_22 -#-----| r0_4(glval>) = CopyValue : r2216_31 +# 2218| r2218_26(glval) = FunctionAddress[begin] : +# 2218| r2218_27(iterator) = Call[begin] : func:r2218_26, this:r0_2 +#-----| v0_3(void) = ^IndirectReadSideEffect[-1] : &:r0_2, m2218_10 +# 2218| m2218_28(iterator) = Store[(__begin)] : &:r2218_23, r2218_27 +# 2218| r2218_29(glval>) = VariableAddress[(__end)] : +# 2218| r2218_30(glval &>) = VariableAddress[(__range)] : +# 2218| r2218_31(vector &) = Load[(__range)] : &:r2218_30, m2218_22 +#-----| r0_4(glval>) = CopyValue : r2218_31 #-----| r0_5(glval>) = Convert : r0_4 -# 2216| r2216_32(glval) = FunctionAddress[end] : -# 2216| r2216_33(iterator) = Call[end] : func:r2216_32, this:r0_5 -#-----| v0_6(void) = ^IndirectReadSideEffect[-1] : &:r0_5, m2216_10 -# 2216| m2216_34(iterator) = Store[(__end)] : &:r2216_29, r2216_33 -# 2216| m2216_35(unknown) = Chi : total:m2216_15, partial:m2216_34 +# 2218| r2218_32(glval) = FunctionAddress[end] : +# 2218| r2218_33(iterator) = Call[end] : func:r2218_32, this:r0_5 +#-----| v0_6(void) = ^IndirectReadSideEffect[-1] : &:r0_5, m2218_10 +# 2218| m2218_34(iterator) = Store[(__end)] : &:r2218_29, r2218_33 +# 2218| m2218_35(unknown) = Chi : total:m2218_15, partial:m2218_34 #-----| Goto -> Block 8 -# 2216| Block 8 -# 2216| m2216_36(iterator) = Phi : from 7:m2216_28, from 9:m2216_60 -# 2216| m2216_37(unknown) = Phi : from 7:~m2216_35, from 9:~m2216_65 -# 2216| r2216_38(glval>) = VariableAddress[(__begin)] : -#-----| r0_7(glval>) = Convert : r2216_38 -# 2216| r2216_39(glval) = FunctionAddress[operator!=] : +# 2218| Block 8 +# 2218| m2218_36(iterator) = Phi : from 7:m2218_28, from 9:m2218_60 +# 2218| m2218_37(unknown) = Phi : from 7:~m2218_35, from 9:~m2218_65 +# 2218| r2218_38(glval>) = VariableAddress[(__begin)] : +#-----| r0_7(glval>) = Convert : r2218_38 +# 2218| r2218_39(glval) = FunctionAddress[operator!=] : #-----| r0_8(glval>) = VariableAddress[#temp0:0] : #-----| m0_9(iterator) = Uninitialized[#temp0:0] : &:r0_8 -#-----| m0_10(unknown) = Chi : total:m2216_37, partial:m0_9 -# 2216| r2216_40(glval) = FunctionAddress[iterator] : -# 2216| r2216_41(glval>) = VariableAddress[(__end)] : -#-----| r0_11(glval>) = Convert : r2216_41 +#-----| m0_10(unknown) = Chi : total:m2218_37, partial:m0_9 +# 2218| r2218_40(glval) = FunctionAddress[iterator] : +# 2218| r2218_41(glval>) = VariableAddress[(__end)] : +#-----| r0_11(glval>) = Convert : r2218_41 #-----| r0_12(iterator &) = CopyValue : r0_11 -# 2216| v2216_42(void) = Call[iterator] : func:r2216_40, this:r0_8, 0:r0_12 -# 2216| m2216_43(unknown) = ^CallSideEffect : ~m0_10 -# 2216| m2216_44(unknown) = Chi : total:m0_10, partial:m2216_43 -#-----| v0_13(void) = ^BufferReadSideEffect[0] : &:r0_12, ~m2216_44 -# 2216| m2216_45(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r0_8 -# 2216| m2216_46(unknown) = Chi : total:m2216_44, partial:m2216_45 -#-----| r0_14(iterator) = Load[#temp0:0] : &:r0_8, ~m2216_46 -# 2216| r2216_47(bool) = Call[operator!=] : func:r2216_39, this:r0_7, 0:r0_14 -#-----| v0_15(void) = ^IndirectReadSideEffect[-1] : &:r0_7, m2216_36 -# 2216| v2216_48(void) = ConditionalBranch : r2216_47 +# 2218| v2218_42(void) = Call[iterator] : func:r2218_40, this:r0_8, 0:r0_12 +# 2218| m2218_43(unknown) = ^CallSideEffect : ~m0_10 +# 2218| m2218_44(unknown) = Chi : total:m0_10, partial:m2218_43 +#-----| v0_13(void) = ^BufferReadSideEffect[0] : &:r0_12, ~m2218_44 +# 2218| m2218_45(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r0_8 +# 2218| m2218_46(unknown) = Chi : total:m2218_44, partial:m2218_45 +#-----| r0_14(iterator) = Load[#temp0:0] : &:r0_8, ~m2218_46 +# 2218| r2218_47(bool) = Call[operator!=] : func:r2218_39, this:r0_7, 0:r0_14 +#-----| v0_15(void) = ^IndirectReadSideEffect[-1] : &:r0_7, m2218_36 +# 2218| v2218_48(void) = ConditionalBranch : r2218_47 #-----| False -> Block 10 #-----| True -> Block 9 -# 2216| Block 9 -# 2216| r2216_49(glval) = VariableAddress[y] : -# 2216| r2216_50(glval>) = VariableAddress[(__begin)] : -#-----| r0_16(glval>) = Convert : r2216_50 -# 2216| r2216_51(glval) = FunctionAddress[operator*] : -# 2216| r2216_52(ClassWithDestructor &) = Call[operator*] : func:r2216_51, this:r0_16 -#-----| v0_17(void) = ^IndirectReadSideEffect[-1] : &:r0_16, m2216_36 -# 2216| r2216_53(ClassWithDestructor) = Load[?] : &:r2216_52, ~m2216_46 -# 2216| m2216_54(ClassWithDestructor) = Store[y] : &:r2216_49, r2216_53 -# 2217| r2217_1(glval) = VariableAddress[y] : -# 2217| r2217_2(glval) = FunctionAddress[set_x] : -# 2217| r2217_3(char) = Constant[97] : -# 2217| v2217_4(void) = Call[set_x] : func:r2217_2, this:r2217_1, 0:r2217_3 -# 2217| m2217_5(unknown) = ^CallSideEffect : ~m2216_46 -# 2217| m2217_6(unknown) = Chi : total:m2216_46, partial:m2217_5 -# 2217| v2217_7(void) = ^IndirectReadSideEffect[-1] : &:r2217_1, m2216_54 -# 2217| m2217_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2217_1 -# 2217| m2217_9(ClassWithDestructor) = Chi : total:m2216_54, partial:m2217_8 -# 2216| r2216_55(glval>) = VariableAddress[(__begin)] : -# 2216| r2216_56(glval) = FunctionAddress[operator++] : -# 2216| r2216_57(iterator &) = Call[operator++] : func:r2216_56, this:r2216_55 -# 2216| v2216_58(void) = ^IndirectReadSideEffect[-1] : &:r2216_55, m2216_36 -# 2216| m2216_59(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2216_55 -# 2216| m2216_60(iterator) = Chi : total:m2216_36, partial:m2216_59 -# 2216| r2216_61(glval) = VariableAddress[y] : -# 2216| r2216_62(glval) = FunctionAddress[~ClassWithDestructor] : -# 2216| v2216_63(void) = Call[~ClassWithDestructor] : func:r2216_62, this:r2216_61 -# 2216| m2216_64(unknown) = ^CallSideEffect : ~m2217_6 -# 2216| m2216_65(unknown) = Chi : total:m2217_6, partial:m2216_64 -# 2216| v2216_66(void) = ^IndirectReadSideEffect[-1] : &:r2216_61, m2217_9 -# 2216| m2216_67(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2216_61 -# 2216| m2216_68(ClassWithDestructor) = Chi : total:m2217_9, partial:m2216_67 -# 2216| r2216_69(glval>) = CopyValue : r2216_57 +# 2218| Block 9 +# 2218| r2218_49(glval) = VariableAddress[y] : +# 2218| r2218_50(glval>) = VariableAddress[(__begin)] : +#-----| r0_16(glval>) = Convert : r2218_50 +# 2218| r2218_51(glval) = FunctionAddress[operator*] : +# 2218| r2218_52(ClassWithDestructor &) = Call[operator*] : func:r2218_51, this:r0_16 +#-----| v0_17(void) = ^IndirectReadSideEffect[-1] : &:r0_16, m2218_36 +# 2218| r2218_53(ClassWithDestructor) = Load[?] : &:r2218_52, ~m2218_46 +# 2218| m2218_54(ClassWithDestructor) = Store[y] : &:r2218_49, r2218_53 +# 2219| r2219_1(glval) = VariableAddress[y] : +# 2219| r2219_2(glval) = FunctionAddress[set_x] : +# 2219| r2219_3(char) = Constant[97] : +# 2219| v2219_4(void) = Call[set_x] : func:r2219_2, this:r2219_1, 0:r2219_3 +# 2219| m2219_5(unknown) = ^CallSideEffect : ~m2218_46 +# 2219| m2219_6(unknown) = Chi : total:m2218_46, partial:m2219_5 +# 2219| v2219_7(void) = ^IndirectReadSideEffect[-1] : &:r2219_1, m2218_54 +# 2219| m2219_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2219_1 +# 2219| m2219_9(ClassWithDestructor) = Chi : total:m2218_54, partial:m2219_8 +# 2218| r2218_55(glval>) = VariableAddress[(__begin)] : +# 2218| r2218_56(glval) = FunctionAddress[operator++] : +# 2218| r2218_57(iterator &) = Call[operator++] : func:r2218_56, this:r2218_55 +# 2218| v2218_58(void) = ^IndirectReadSideEffect[-1] : &:r2218_55, m2218_36 +# 2218| m2218_59(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2218_55 +# 2218| m2218_60(iterator) = Chi : total:m2218_36, partial:m2218_59 +# 2218| r2218_61(glval) = VariableAddress[y] : +# 2218| r2218_62(glval) = FunctionAddress[~ClassWithDestructor] : +# 2218| v2218_63(void) = Call[~ClassWithDestructor] : func:r2218_62, this:r2218_61 +# 2218| m2218_64(unknown) = ^CallSideEffect : ~m2219_6 +# 2218| m2218_65(unknown) = Chi : total:m2219_6, partial:m2218_64 +# 2218| v2218_66(void) = ^IndirectReadSideEffect[-1] : &:r2218_61, m2219_9 +# 2218| m2218_67(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2218_61 +# 2218| m2218_68(ClassWithDestructor) = Chi : total:m2219_9, partial:m2218_67 +# 2218| r2218_69(glval>) = CopyValue : r2218_57 #-----| Goto (back edge) -> Block 8 -# 2216| Block 10 -# 2216| r2216_70(glval>) = VariableAddress[ys] : -# 2216| r2216_71(glval) = FunctionAddress[~vector] : -# 2216| v2216_72(void) = Call[~vector] : func:r2216_71, this:r2216_70 -# 2216| v2216_73(void) = ^IndirectReadSideEffect[-1] : &:r2216_70, m2216_10 -# 2216| m2216_74(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2216_70 -# 2219| r2219_1(glval>) = VariableAddress[ys] : -# 2219| m2219_2(vector) = Uninitialized[ys] : &:r2219_1 -# 2219| r2219_3(glval) = FunctionAddress[vector] : -# 2219| r2219_4(glval) = VariableAddress[#temp2219:45] : -# 2219| r2219_5(glval) = VariableAddress[x] : -# 2219| r2219_6(ClassWithDestructor) = Load[x] : &:r2219_5, m2215_8 -# 2219| m2219_7(ClassWithDestructor) = Store[#temp2219:45] : &:r2219_4, r2219_6 -# 2219| r2219_8(ClassWithDestructor) = Load[#temp2219:45] : &:r2219_4, m2219_7 -# 2219| v2219_9(void) = Call[vector] : func:r2219_3, this:r2219_1, 0:r2219_8 -# 2219| m2219_10(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2219_1 -# 2219| r2219_11(glval) = CopyValue : r2219_4 -# 2219| r2219_12(glval) = FunctionAddress[~ClassWithDestructor] : -# 2219| v2219_13(void) = Call[~ClassWithDestructor] : func:r2219_12, this:r2219_11 -# 2219| m2219_14(unknown) = ^CallSideEffect : ~m2216_46 -# 2219| m2219_15(unknown) = Chi : total:m2216_46, partial:m2219_14 -# 2219| v2219_16(void) = ^IndirectReadSideEffect[-1] : &:r2219_11, m2219_7 -# 2219| m2219_17(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2219_11 -# 2219| m2219_18(ClassWithDestructor) = Chi : total:m2219_7, partial:m2219_17 -# 2219| r2219_19(glval &>) = VariableAddress[(__range)] : -# 2219| r2219_20(glval>) = VariableAddress[ys] : -# 2219| r2219_21(vector &) = CopyValue : r2219_20 -# 2219| m2219_22(vector &) = Store[(__range)] : &:r2219_19, r2219_21 -# 2219| r2219_23(glval>) = VariableAddress[(__begin)] : -# 2219| r2219_24(glval &>) = VariableAddress[(__range)] : -# 2219| r2219_25(vector &) = Load[(__range)] : &:r2219_24, m2219_22 -#-----| r0_18(glval>) = CopyValue : r2219_25 +# 2218| Block 10 +# 2218| r2218_70(glval>) = VariableAddress[ys] : +# 2218| r2218_71(glval) = FunctionAddress[~vector] : +# 2218| v2218_72(void) = Call[~vector] : func:r2218_71, this:r2218_70 +# 2218| v2218_73(void) = ^IndirectReadSideEffect[-1] : &:r2218_70, m2218_10 +# 2218| m2218_74(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2218_70 +# 2221| r2221_1(glval>) = VariableAddress[ys] : +# 2221| m2221_2(vector) = Uninitialized[ys] : &:r2221_1 +# 2221| r2221_3(glval) = FunctionAddress[vector] : +# 2221| r2221_4(glval) = VariableAddress[#temp2221:45] : +# 2221| r2221_5(glval) = VariableAddress[x] : +# 2221| r2221_6(ClassWithDestructor) = Load[x] : &:r2221_5, m2217_8 +# 2221| m2221_7(ClassWithDestructor) = Store[#temp2221:45] : &:r2221_4, r2221_6 +# 2221| r2221_8(ClassWithDestructor) = Load[#temp2221:45] : &:r2221_4, m2221_7 +# 2221| v2221_9(void) = Call[vector] : func:r2221_3, this:r2221_1, 0:r2221_8 +# 2221| m2221_10(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2221_1 +# 2221| r2221_11(glval) = CopyValue : r2221_4 +# 2221| r2221_12(glval) = FunctionAddress[~ClassWithDestructor] : +# 2221| v2221_13(void) = Call[~ClassWithDestructor] : func:r2221_12, this:r2221_11 +# 2221| m2221_14(unknown) = ^CallSideEffect : ~m2218_46 +# 2221| m2221_15(unknown) = Chi : total:m2218_46, partial:m2221_14 +# 2221| v2221_16(void) = ^IndirectReadSideEffect[-1] : &:r2221_11, m2221_7 +# 2221| m2221_17(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2221_11 +# 2221| m2221_18(ClassWithDestructor) = Chi : total:m2221_7, partial:m2221_17 +# 2221| r2221_19(glval &>) = VariableAddress[(__range)] : +# 2221| r2221_20(glval>) = VariableAddress[ys] : +# 2221| r2221_21(vector &) = CopyValue : r2221_20 +# 2221| m2221_22(vector &) = Store[(__range)] : &:r2221_19, r2221_21 +# 2221| r2221_23(glval>) = VariableAddress[(__begin)] : +# 2221| r2221_24(glval &>) = VariableAddress[(__range)] : +# 2221| r2221_25(vector &) = Load[(__range)] : &:r2221_24, m2221_22 +#-----| r0_18(glval>) = CopyValue : r2221_25 #-----| r0_19(glval>) = Convert : r0_18 -# 2219| r2219_26(glval) = FunctionAddress[begin] : -# 2219| r2219_27(iterator) = Call[begin] : func:r2219_26, this:r0_19 -#-----| v0_20(void) = ^IndirectReadSideEffect[-1] : &:r0_19, m2219_10 -# 2219| m2219_28(iterator) = Store[(__begin)] : &:r2219_23, r2219_27 -# 2219| r2219_29(glval>) = VariableAddress[(__end)] : -# 2219| r2219_30(glval &>) = VariableAddress[(__range)] : -# 2219| r2219_31(vector &) = Load[(__range)] : &:r2219_30, m2219_22 -#-----| r0_21(glval>) = CopyValue : r2219_31 +# 2221| r2221_26(glval) = FunctionAddress[begin] : +# 2221| r2221_27(iterator) = Call[begin] : func:r2221_26, this:r0_19 +#-----| v0_20(void) = ^IndirectReadSideEffect[-1] : &:r0_19, m2221_10 +# 2221| m2221_28(iterator) = Store[(__begin)] : &:r2221_23, r2221_27 +# 2221| r2221_29(glval>) = VariableAddress[(__end)] : +# 2221| r2221_30(glval &>) = VariableAddress[(__range)] : +# 2221| r2221_31(vector &) = Load[(__range)] : &:r2221_30, m2221_22 +#-----| r0_21(glval>) = CopyValue : r2221_31 #-----| r0_22(glval>) = Convert : r0_21 -# 2219| r2219_32(glval) = FunctionAddress[end] : -# 2219| r2219_33(iterator) = Call[end] : func:r2219_32, this:r0_22 -#-----| v0_23(void) = ^IndirectReadSideEffect[-1] : &:r0_22, m2219_10 -# 2219| m2219_34(iterator) = Store[(__end)] : &:r2219_29, r2219_33 -# 2219| m2219_35(unknown) = Chi : total:m2219_15, partial:m2219_34 +# 2221| r2221_32(glval) = FunctionAddress[end] : +# 2221| r2221_33(iterator) = Call[end] : func:r2221_32, this:r0_22 +#-----| v0_23(void) = ^IndirectReadSideEffect[-1] : &:r0_22, m2221_10 +# 2221| m2221_34(iterator) = Store[(__end)] : &:r2221_29, r2221_33 +# 2221| m2221_35(unknown) = Chi : total:m2221_15, partial:m2221_34 #-----| Goto -> Block 11 -# 2219| Block 11 -# 2219| m2219_36(iterator) = Phi : from 10:m2219_28, from 12:m2219_54 -# 2219| m2219_37(unknown) = Phi : from 10:~m2219_35, from 12:~m2219_59 -# 2219| r2219_38(glval>) = VariableAddress[(__begin)] : -#-----| r0_24(glval>) = Convert : r2219_38 -# 2219| r2219_39(glval) = FunctionAddress[operator!=] : +# 2221| Block 11 +# 2221| m2221_36(iterator) = Phi : from 10:m2221_28, from 12:m2221_54 +# 2221| m2221_37(unknown) = Phi : from 10:~m2221_35, from 12:~m2221_59 +# 2221| r2221_38(glval>) = VariableAddress[(__begin)] : +#-----| r0_24(glval>) = Convert : r2221_38 +# 2221| r2221_39(glval) = FunctionAddress[operator!=] : #-----| r0_25(glval>) = VariableAddress[#temp0:0] : #-----| m0_26(iterator) = Uninitialized[#temp0:0] : &:r0_25 -#-----| m0_27(unknown) = Chi : total:m2219_37, partial:m0_26 -# 2219| r2219_40(glval) = FunctionAddress[iterator] : -# 2219| r2219_41(glval>) = VariableAddress[(__end)] : -#-----| r0_28(glval>) = Convert : r2219_41 +#-----| m0_27(unknown) = Chi : total:m2221_37, partial:m0_26 +# 2221| r2221_40(glval) = FunctionAddress[iterator] : +# 2221| r2221_41(glval>) = VariableAddress[(__end)] : +#-----| r0_28(glval>) = Convert : r2221_41 #-----| r0_29(iterator &) = CopyValue : r0_28 -# 2219| v2219_42(void) = Call[iterator] : func:r2219_40, this:r0_25, 0:r0_29 -# 2219| m2219_43(unknown) = ^CallSideEffect : ~m0_27 -# 2219| m2219_44(unknown) = Chi : total:m0_27, partial:m2219_43 -#-----| v0_30(void) = ^BufferReadSideEffect[0] : &:r0_29, ~m2219_44 -# 2219| m2219_45(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r0_25 -# 2219| m2219_46(unknown) = Chi : total:m2219_44, partial:m2219_45 -#-----| r0_31(iterator) = Load[#temp0:0] : &:r0_25, ~m2219_46 -# 2219| r2219_47(bool) = Call[operator!=] : func:r2219_39, this:r0_24, 0:r0_31 -#-----| v0_32(void) = ^IndirectReadSideEffect[-1] : &:r0_24, m2219_36 -# 2219| v2219_48(void) = ConditionalBranch : r2219_47 +# 2221| v2221_42(void) = Call[iterator] : func:r2221_40, this:r0_25, 0:r0_29 +# 2221| m2221_43(unknown) = ^CallSideEffect : ~m0_27 +# 2221| m2221_44(unknown) = Chi : total:m0_27, partial:m2221_43 +#-----| v0_30(void) = ^BufferReadSideEffect[0] : &:r0_29, ~m2221_44 +# 2221| m2221_45(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r0_25 +# 2221| m2221_46(unknown) = Chi : total:m2221_44, partial:m2221_45 +#-----| r0_31(iterator) = Load[#temp0:0] : &:r0_25, ~m2221_46 +# 2221| r2221_47(bool) = Call[operator!=] : func:r2221_39, this:r0_24, 0:r0_31 +#-----| v0_32(void) = ^IndirectReadSideEffect[-1] : &:r0_24, m2221_36 +# 2221| v2221_48(void) = ConditionalBranch : r2221_47 #-----| False -> Block 15 #-----| True -> Block 13 -# 2219| Block 12 -# 2219| r2219_49(glval>) = VariableAddress[(__begin)] : -# 2219| r2219_50(glval) = FunctionAddress[operator++] : -# 2219| r2219_51(iterator &) = Call[operator++] : func:r2219_50, this:r2219_49 -# 2219| v2219_52(void) = ^IndirectReadSideEffect[-1] : &:r2219_49, m2219_36 -# 2219| m2219_53(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2219_49 -# 2219| m2219_54(iterator) = Chi : total:m2219_36, partial:m2219_53 -# 2219| r2219_55(glval) = VariableAddress[y] : -# 2219| r2219_56(glval) = FunctionAddress[~ClassWithDestructor] : -# 2219| v2219_57(void) = Call[~ClassWithDestructor] : func:r2219_56, this:r2219_55 -# 2219| m2219_58(unknown) = ^CallSideEffect : ~m2221_5 -# 2219| m2219_59(unknown) = Chi : total:m2221_5, partial:m2219_58 -# 2219| v2219_60(void) = ^IndirectReadSideEffect[-1] : &:r2219_55, m2221_8 -# 2219| m2219_61(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2219_55 -# 2219| m2219_62(ClassWithDestructor) = Chi : total:m2221_8, partial:m2219_61 -# 2219| r2219_63(glval>) = CopyValue : r2219_51 +# 2221| Block 12 +# 2221| r2221_49(glval>) = VariableAddress[(__begin)] : +# 2221| r2221_50(glval) = FunctionAddress[operator++] : +# 2221| r2221_51(iterator &) = Call[operator++] : func:r2221_50, this:r2221_49 +# 2221| v2221_52(void) = ^IndirectReadSideEffect[-1] : &:r2221_49, m2221_36 +# 2221| m2221_53(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2221_49 +# 2221| m2221_54(iterator) = Chi : total:m2221_36, partial:m2221_53 +# 2221| r2221_55(glval) = VariableAddress[y] : +# 2221| r2221_56(glval) = FunctionAddress[~ClassWithDestructor] : +# 2221| v2221_57(void) = Call[~ClassWithDestructor] : func:r2221_56, this:r2221_55 +# 2221| m2221_58(unknown) = ^CallSideEffect : ~m2223_5 +# 2221| m2221_59(unknown) = Chi : total:m2223_5, partial:m2221_58 +# 2221| v2221_60(void) = ^IndirectReadSideEffect[-1] : &:r2221_55, m2223_8 +# 2221| m2221_61(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2221_55 +# 2221| m2221_62(ClassWithDestructor) = Chi : total:m2223_8, partial:m2221_61 +# 2221| r2221_63(glval>) = CopyValue : r2221_51 #-----| Goto (back edge) -> Block 11 -# 2219| Block 13 -# 2219| r2219_64(glval) = VariableAddress[y] : -# 2219| r2219_65(glval>) = VariableAddress[(__begin)] : -#-----| r0_33(glval>) = Convert : r2219_65 -# 2219| r2219_66(glval) = FunctionAddress[operator*] : -# 2219| r2219_67(ClassWithDestructor &) = Call[operator*] : func:r2219_66, this:r0_33 -#-----| v0_34(void) = ^IndirectReadSideEffect[-1] : &:r0_33, m2219_36 -# 2219| r2219_68(ClassWithDestructor) = Load[?] : &:r2219_67, ~m2219_46 -# 2219| m2219_69(ClassWithDestructor) = Store[y] : &:r2219_64, r2219_68 -# 2220| r2220_1(glval) = VariableAddress[y] : -# 2220| r2220_2(glval) = FunctionAddress[set_x] : -# 2220| r2220_3(char) = Constant[97] : -# 2220| v2220_4(void) = Call[set_x] : func:r2220_2, this:r2220_1, 0:r2220_3 -# 2220| m2220_5(unknown) = ^CallSideEffect : ~m2219_46 -# 2220| m2220_6(unknown) = Chi : total:m2219_46, partial:m2220_5 -# 2220| v2220_7(void) = ^IndirectReadSideEffect[-1] : &:r2220_1, m2219_69 -# 2220| m2220_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2220_1 -# 2220| m2220_9(ClassWithDestructor) = Chi : total:m2219_69, partial:m2220_8 -# 2221| r2221_1(glval) = VariableAddress[y] : -# 2221| r2221_2(glval) = FunctionAddress[get_x] : -# 2221| r2221_3(char) = Call[get_x] : func:r2221_2, this:r2221_1 -# 2221| m2221_4(unknown) = ^CallSideEffect : ~m2220_6 -# 2221| m2221_5(unknown) = Chi : total:m2220_6, partial:m2221_4 -# 2221| v2221_6(void) = ^IndirectReadSideEffect[-1] : &:r2221_1, m2220_9 -# 2221| m2221_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2221_1 -# 2221| m2221_8(ClassWithDestructor) = Chi : total:m2220_9, partial:m2221_7 -# 2221| r2221_9(int) = Convert : r2221_3 -# 2221| r2221_10(int) = Constant[98] : -# 2221| r2221_11(bool) = CompareEQ : r2221_9, r2221_10 -# 2221| v2221_12(void) = ConditionalBranch : r2221_11 +# 2221| Block 13 +# 2221| r2221_64(glval) = VariableAddress[y] : +# 2221| r2221_65(glval>) = VariableAddress[(__begin)] : +#-----| r0_33(glval>) = Convert : r2221_65 +# 2221| r2221_66(glval) = FunctionAddress[operator*] : +# 2221| r2221_67(ClassWithDestructor &) = Call[operator*] : func:r2221_66, this:r0_33 +#-----| v0_34(void) = ^IndirectReadSideEffect[-1] : &:r0_33, m2221_36 +# 2221| r2221_68(ClassWithDestructor) = Load[?] : &:r2221_67, ~m2221_46 +# 2221| m2221_69(ClassWithDestructor) = Store[y] : &:r2221_64, r2221_68 +# 2222| r2222_1(glval) = VariableAddress[y] : +# 2222| r2222_2(glval) = FunctionAddress[set_x] : +# 2222| r2222_3(char) = Constant[97] : +# 2222| v2222_4(void) = Call[set_x] : func:r2222_2, this:r2222_1, 0:r2222_3 +# 2222| m2222_5(unknown) = ^CallSideEffect : ~m2221_46 +# 2222| m2222_6(unknown) = Chi : total:m2221_46, partial:m2222_5 +# 2222| v2222_7(void) = ^IndirectReadSideEffect[-1] : &:r2222_1, m2221_69 +# 2222| m2222_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2222_1 +# 2222| m2222_9(ClassWithDestructor) = Chi : total:m2221_69, partial:m2222_8 +# 2223| r2223_1(glval) = VariableAddress[y] : +# 2223| r2223_2(glval) = FunctionAddress[get_x] : +# 2223| r2223_3(char) = Call[get_x] : func:r2223_2, this:r2223_1 +# 2223| m2223_4(unknown) = ^CallSideEffect : ~m2222_6 +# 2223| m2223_5(unknown) = Chi : total:m2222_6, partial:m2223_4 +# 2223| v2223_6(void) = ^IndirectReadSideEffect[-1] : &:r2223_1, m2222_9 +# 2223| m2223_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2223_1 +# 2223| m2223_8(ClassWithDestructor) = Chi : total:m2222_9, partial:m2223_7 +# 2223| r2223_9(int) = Convert : r2223_3 +# 2223| r2223_10(int) = Constant[98] : +# 2223| r2223_11(bool) = CompareEQ : r2223_9, r2223_10 +# 2223| v2223_12(void) = ConditionalBranch : r2223_11 #-----| False -> Block 12 #-----| True -> Block 14 -# 2222| Block 14 -# 2222| v2222_1(void) = NoOp : -# 2219| r2219_70(glval) = VariableAddress[y] : -# 2219| r2219_71(glval) = FunctionAddress[~ClassWithDestructor] : -# 2219| v2219_72(void) = Call[~ClassWithDestructor] : func:r2219_71, this:r2219_70 -# 2219| m2219_73(unknown) = ^CallSideEffect : ~m2221_5 -# 2219| m2219_74(unknown) = Chi : total:m2221_5, partial:m2219_73 -# 2219| v2219_75(void) = ^IndirectReadSideEffect[-1] : &:r2219_70, m2221_8 -# 2219| m2219_76(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2219_70 -# 2219| m2219_77(ClassWithDestructor) = Chi : total:m2221_8, partial:m2219_76 -# 2219| r2219_78(glval>) = VariableAddress[ys] : -# 2219| r2219_79(glval) = FunctionAddress[~vector] : -# 2219| v2219_80(void) = Call[~vector] : func:r2219_79, this:r2219_78 -# 2219| v2219_81(void) = ^IndirectReadSideEffect[-1] : &:r2219_78, m2219_10 -# 2219| m2219_82(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2219_78 -# 2234| r2234_1(glval) = VariableAddress[x] : -# 2234| r2234_2(glval) = FunctionAddress[~ClassWithDestructor] : -# 2234| v2234_3(void) = Call[~ClassWithDestructor] : func:r2234_2, this:r2234_1 -# 2234| m2234_4(unknown) = ^CallSideEffect : ~m2219_74 -# 2234| m2234_5(unknown) = Chi : total:m2219_74, partial:m2234_4 -# 2234| v2234_6(void) = ^IndirectReadSideEffect[-1] : &:r2234_1, m2215_8 -# 2234| m2234_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2234_1 -# 2234| m2234_8(ClassWithDestructor) = Chi : total:m2215_8, partial:m2234_7 +# 2224| Block 14 +# 2224| v2224_1(void) = NoOp : +# 2221| r2221_70(glval) = VariableAddress[y] : +# 2221| r2221_71(glval) = FunctionAddress[~ClassWithDestructor] : +# 2221| v2221_72(void) = Call[~ClassWithDestructor] : func:r2221_71, this:r2221_70 +# 2221| m2221_73(unknown) = ^CallSideEffect : ~m2223_5 +# 2221| m2221_74(unknown) = Chi : total:m2223_5, partial:m2221_73 +# 2221| v2221_75(void) = ^IndirectReadSideEffect[-1] : &:r2221_70, m2223_8 +# 2221| m2221_76(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2221_70 +# 2221| m2221_77(ClassWithDestructor) = Chi : total:m2223_8, partial:m2221_76 +# 2221| r2221_78(glval>) = VariableAddress[ys] : +# 2221| r2221_79(glval) = FunctionAddress[~vector] : +# 2221| v2221_80(void) = Call[~vector] : func:r2221_79, this:r2221_78 +# 2221| v2221_81(void) = ^IndirectReadSideEffect[-1] : &:r2221_78, m2221_10 +# 2221| m2221_82(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2221_78 +# 2236| r2236_1(glval) = VariableAddress[x] : +# 2236| r2236_2(glval) = FunctionAddress[~ClassWithDestructor] : +# 2236| v2236_3(void) = Call[~ClassWithDestructor] : func:r2236_2, this:r2236_1 +# 2236| m2236_4(unknown) = ^CallSideEffect : ~m2221_74 +# 2236| m2236_5(unknown) = Chi : total:m2221_74, partial:m2236_4 +# 2236| v2236_6(void) = ^IndirectReadSideEffect[-1] : &:r2236_1, m2217_8 +# 2236| m2236_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2236_1 +# 2236| m2236_8(ClassWithDestructor) = Chi : total:m2217_8, partial:m2236_7 #-----| Goto -> Block 1 -# 2219| Block 15 -# 2219| r2219_83(glval>) = VariableAddress[ys] : -# 2219| r2219_84(glval) = FunctionAddress[~vector] : -# 2219| v2219_85(void) = Call[~vector] : func:r2219_84, this:r2219_83 -# 2219| v2219_86(void) = ^IndirectReadSideEffect[-1] : &:r2219_83, m2219_10 -# 2219| m2219_87(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2219_83 -# 2225| r2225_1(glval>) = VariableAddress[ys] : -# 2225| m2225_2(vector) = Uninitialized[ys] : &:r2225_1 -# 2225| r2225_3(glval) = FunctionAddress[vector] : -# 2225| r2225_4(int) = Constant[1] : -# 2225| v2225_5(void) = Call[vector] : func:r2225_3, this:r2225_1, 0:r2225_4 -# 2225| m2225_6(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2225_1 -# 2225| r2225_7(glval &>) = VariableAddress[(__range)] : -# 2225| r2225_8(glval>) = VariableAddress[ys] : -# 2225| r2225_9(vector &) = CopyValue : r2225_8 -# 2225| m2225_10(vector &) = Store[(__range)] : &:r2225_7, r2225_9 -# 2225| r2225_11(glval>) = VariableAddress[(__begin)] : -# 2225| r2225_12(glval &>) = VariableAddress[(__range)] : -# 2225| r2225_13(vector &) = Load[(__range)] : &:r2225_12, m2225_10 -#-----| r0_35(glval>) = CopyValue : r2225_13 +# 2221| Block 15 +# 2221| r2221_83(glval>) = VariableAddress[ys] : +# 2221| r2221_84(glval) = FunctionAddress[~vector] : +# 2221| v2221_85(void) = Call[~vector] : func:r2221_84, this:r2221_83 +# 2221| v2221_86(void) = ^IndirectReadSideEffect[-1] : &:r2221_83, m2221_10 +# 2221| m2221_87(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2221_83 +# 2227| r2227_1(glval>) = VariableAddress[ys] : +# 2227| m2227_2(vector) = Uninitialized[ys] : &:r2227_1 +# 2227| r2227_3(glval) = FunctionAddress[vector] : +# 2227| r2227_4(int) = Constant[1] : +# 2227| v2227_5(void) = Call[vector] : func:r2227_3, this:r2227_1, 0:r2227_4 +# 2227| m2227_6(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2227_1 +# 2227| r2227_7(glval &>) = VariableAddress[(__range)] : +# 2227| r2227_8(glval>) = VariableAddress[ys] : +# 2227| r2227_9(vector &) = CopyValue : r2227_8 +# 2227| m2227_10(vector &) = Store[(__range)] : &:r2227_7, r2227_9 +# 2227| r2227_11(glval>) = VariableAddress[(__begin)] : +# 2227| r2227_12(glval &>) = VariableAddress[(__range)] : +# 2227| r2227_13(vector &) = Load[(__range)] : &:r2227_12, m2227_10 +#-----| r0_35(glval>) = CopyValue : r2227_13 #-----| r0_36(glval>) = Convert : r0_35 -# 2225| r2225_14(glval) = FunctionAddress[begin] : -# 2225| r2225_15(iterator) = Call[begin] : func:r2225_14, this:r0_36 -#-----| v0_37(void) = ^IndirectReadSideEffect[-1] : &:r0_36, m2225_6 -# 2225| m2225_16(iterator) = Store[(__begin)] : &:r2225_11, r2225_15 -# 2225| r2225_17(glval>) = VariableAddress[(__end)] : -# 2225| r2225_18(glval &>) = VariableAddress[(__range)] : -# 2225| r2225_19(vector &) = Load[(__range)] : &:r2225_18, m2225_10 -#-----| r0_38(glval>) = CopyValue : r2225_19 +# 2227| r2227_14(glval) = FunctionAddress[begin] : +# 2227| r2227_15(iterator) = Call[begin] : func:r2227_14, this:r0_36 +#-----| v0_37(void) = ^IndirectReadSideEffect[-1] : &:r0_36, m2227_6 +# 2227| m2227_16(iterator) = Store[(__begin)] : &:r2227_11, r2227_15 +# 2227| r2227_17(glval>) = VariableAddress[(__end)] : +# 2227| r2227_18(glval &>) = VariableAddress[(__range)] : +# 2227| r2227_19(vector &) = Load[(__range)] : &:r2227_18, m2227_10 +#-----| r0_38(glval>) = CopyValue : r2227_19 #-----| r0_39(glval>) = Convert : r0_38 -# 2225| r2225_20(glval) = FunctionAddress[end] : -# 2225| r2225_21(iterator) = Call[end] : func:r2225_20, this:r0_39 -#-----| v0_40(void) = ^IndirectReadSideEffect[-1] : &:r0_39, m2225_6 -# 2225| m2225_22(iterator) = Store[(__end)] : &:r2225_17, r2225_21 -# 2225| m2225_23(unknown) = Chi : total:m2219_46, partial:m2225_22 +# 2227| r2227_20(glval) = FunctionAddress[end] : +# 2227| r2227_21(iterator) = Call[end] : func:r2227_20, this:r0_39 +#-----| v0_40(void) = ^IndirectReadSideEffect[-1] : &:r0_39, m2227_6 +# 2227| m2227_22(iterator) = Store[(__end)] : &:r2227_17, r2227_21 +# 2227| m2227_23(unknown) = Chi : total:m2221_46, partial:m2227_22 #-----| Goto -> Block 16 -# 2225| Block 16 -# 2225| m2225_24(iterator) = Phi : from 15:m2225_16, from 17:m2225_42 -# 2225| m2225_25(unknown) = Phi : from 15:~m2225_23, from 17:~m2225_34 -# 2225| r2225_26(glval>) = VariableAddress[(__begin)] : -#-----| r0_41(glval>) = Convert : r2225_26 -# 2225| r2225_27(glval) = FunctionAddress[operator!=] : +# 2227| Block 16 +# 2227| m2227_24(iterator) = Phi : from 15:m2227_16, from 17:m2227_42 +# 2227| m2227_25(unknown) = Phi : from 15:~m2227_23, from 17:~m2227_34 +# 2227| r2227_26(glval>) = VariableAddress[(__begin)] : +#-----| r0_41(glval>) = Convert : r2227_26 +# 2227| r2227_27(glval) = FunctionAddress[operator!=] : #-----| r0_42(glval>) = VariableAddress[#temp0:0] : #-----| m0_43(iterator) = Uninitialized[#temp0:0] : &:r0_42 -#-----| m0_44(unknown) = Chi : total:m2225_25, partial:m0_43 -# 2225| r2225_28(glval) = FunctionAddress[iterator] : -# 2225| r2225_29(glval>) = VariableAddress[(__end)] : -#-----| r0_45(glval>) = Convert : r2225_29 +#-----| m0_44(unknown) = Chi : total:m2227_25, partial:m0_43 +# 2227| r2227_28(glval) = FunctionAddress[iterator] : +# 2227| r2227_29(glval>) = VariableAddress[(__end)] : +#-----| r0_45(glval>) = Convert : r2227_29 #-----| r0_46(iterator &) = CopyValue : r0_45 -# 2225| v2225_30(void) = Call[iterator] : func:r2225_28, this:r0_42, 0:r0_46 -# 2225| m2225_31(unknown) = ^CallSideEffect : ~m0_44 -# 2225| m2225_32(unknown) = Chi : total:m0_44, partial:m2225_31 -#-----| v0_47(void) = ^BufferReadSideEffect[0] : &:r0_46, ~m2225_32 -# 2225| m2225_33(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r0_42 -# 2225| m2225_34(unknown) = Chi : total:m2225_32, partial:m2225_33 -#-----| r0_48(iterator) = Load[#temp0:0] : &:r0_42, ~m2225_34 -# 2225| r2225_35(bool) = Call[operator!=] : func:r2225_27, this:r0_41, 0:r0_48 -#-----| v0_49(void) = ^IndirectReadSideEffect[-1] : &:r0_41, m2225_24 -# 2225| v2225_36(void) = ConditionalBranch : r2225_35 +# 2227| v2227_30(void) = Call[iterator] : func:r2227_28, this:r0_42, 0:r0_46 +# 2227| m2227_31(unknown) = ^CallSideEffect : ~m0_44 +# 2227| m2227_32(unknown) = Chi : total:m0_44, partial:m2227_31 +#-----| v0_47(void) = ^BufferReadSideEffect[0] : &:r0_46, ~m2227_32 +# 2227| m2227_33(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r0_42 +# 2227| m2227_34(unknown) = Chi : total:m2227_32, partial:m2227_33 +#-----| r0_48(iterator) = Load[#temp0:0] : &:r0_42, ~m2227_34 +# 2227| r2227_35(bool) = Call[operator!=] : func:r2227_27, this:r0_41, 0:r0_48 +#-----| v0_49(void) = ^IndirectReadSideEffect[-1] : &:r0_41, m2227_24 +# 2227| v2227_36(void) = ConditionalBranch : r2227_35 #-----| False -> Block 20 #-----| True -> Block 18 -# 2225| Block 17 -# 2225| r2225_37(glval>) = VariableAddress[(__begin)] : -# 2225| r2225_38(glval) = FunctionAddress[operator++] : -# 2225| r2225_39(iterator &) = Call[operator++] : func:r2225_38, this:r2225_37 -# 2225| v2225_40(void) = ^IndirectReadSideEffect[-1] : &:r2225_37, m2225_24 -# 2225| m2225_41(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2225_37 -# 2225| m2225_42(iterator) = Chi : total:m2225_24, partial:m2225_41 -# 2225| r2225_43(glval>) = CopyValue : r2225_39 +# 2227| Block 17 +# 2227| r2227_37(glval>) = VariableAddress[(__begin)] : +# 2227| r2227_38(glval) = FunctionAddress[operator++] : +# 2227| r2227_39(iterator &) = Call[operator++] : func:r2227_38, this:r2227_37 +# 2227| v2227_40(void) = ^IndirectReadSideEffect[-1] : &:r2227_37, m2227_24 +# 2227| m2227_41(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2227_37 +# 2227| m2227_42(iterator) = Chi : total:m2227_24, partial:m2227_41 +# 2227| r2227_43(glval>) = CopyValue : r2227_39 #-----| Goto (back edge) -> Block 16 -# 2225| Block 18 -# 2225| r2225_44(glval) = VariableAddress[y] : -# 2225| r2225_45(glval>) = VariableAddress[(__begin)] : -#-----| r0_50(glval>) = Convert : r2225_45 -# 2225| r2225_46(glval) = FunctionAddress[operator*] : -# 2225| r2225_47(int &) = Call[operator*] : func:r2225_46, this:r0_50 -#-----| v0_51(void) = ^IndirectReadSideEffect[-1] : &:r0_50, m2225_24 -# 2225| r2225_48(int) = Load[?] : &:r2225_47, ~m2225_34 -# 2225| m2225_49(int) = Store[y] : &:r2225_44, r2225_48 -# 2226| r2226_1(glval) = VariableAddress[y] : -# 2226| r2226_2(int) = Load[y] : &:r2226_1, m2225_49 -# 2226| r2226_3(int) = Constant[1] : -# 2226| r2226_4(bool) = CompareEQ : r2226_2, r2226_3 -# 2226| v2226_5(void) = ConditionalBranch : r2226_4 +# 2227| Block 18 +# 2227| r2227_44(glval) = VariableAddress[y] : +# 2227| r2227_45(glval>) = VariableAddress[(__begin)] : +#-----| r0_50(glval>) = Convert : r2227_45 +# 2227| r2227_46(glval) = FunctionAddress[operator*] : +# 2227| r2227_47(int &) = Call[operator*] : func:r2227_46, this:r0_50 +#-----| v0_51(void) = ^IndirectReadSideEffect[-1] : &:r0_50, m2227_24 +# 2227| r2227_48(int) = Load[?] : &:r2227_47, ~m2227_34 +# 2227| m2227_49(int) = Store[y] : &:r2227_44, r2227_48 +# 2228| r2228_1(glval) = VariableAddress[y] : +# 2228| r2228_2(int) = Load[y] : &:r2228_1, m2227_49 +# 2228| r2228_3(int) = Constant[1] : +# 2228| r2228_4(bool) = CompareEQ : r2228_2, r2228_3 +# 2228| v2228_5(void) = ConditionalBranch : r2228_4 #-----| False -> Block 17 #-----| True -> Block 19 -# 2227| Block 19 -# 2227| v2227_1(void) = NoOp : -# 2225| r2225_50(glval>) = VariableAddress[ys] : -# 2225| r2225_51(glval) = FunctionAddress[~vector] : -# 2225| v2225_52(void) = Call[~vector] : func:r2225_51, this:r2225_50 -# 2225| v2225_53(void) = ^IndirectReadSideEffect[-1] : &:r2225_50, m2225_6 -# 2225| m2225_54(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2225_50 -# 2234| r2234_9(glval) = VariableAddress[x] : -# 2234| r2234_10(glval) = FunctionAddress[~ClassWithDestructor] : -# 2234| v2234_11(void) = Call[~ClassWithDestructor] : func:r2234_10, this:r2234_9 -# 2234| m2234_12(unknown) = ^CallSideEffect : ~m2225_34 -# 2234| m2234_13(unknown) = Chi : total:m2225_34, partial:m2234_12 -# 2234| v2234_14(void) = ^IndirectReadSideEffect[-1] : &:r2234_9, m2215_8 -# 2234| m2234_15(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2234_9 -# 2234| m2234_16(ClassWithDestructor) = Chi : total:m2215_8, partial:m2234_15 +# 2229| Block 19 +# 2229| v2229_1(void) = NoOp : +# 2227| r2227_50(glval>) = VariableAddress[ys] : +# 2227| r2227_51(glval) = FunctionAddress[~vector] : +# 2227| v2227_52(void) = Call[~vector] : func:r2227_51, this:r2227_50 +# 2227| v2227_53(void) = ^IndirectReadSideEffect[-1] : &:r2227_50, m2227_6 +# 2227| m2227_54(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2227_50 +# 2236| r2236_9(glval) = VariableAddress[x] : +# 2236| r2236_10(glval) = FunctionAddress[~ClassWithDestructor] : +# 2236| v2236_11(void) = Call[~ClassWithDestructor] : func:r2236_10, this:r2236_9 +# 2236| m2236_12(unknown) = ^CallSideEffect : ~m2227_34 +# 2236| m2236_13(unknown) = Chi : total:m2227_34, partial:m2236_12 +# 2236| v2236_14(void) = ^IndirectReadSideEffect[-1] : &:r2236_9, m2217_8 +# 2236| m2236_15(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2236_9 +# 2236| m2236_16(ClassWithDestructor) = Chi : total:m2217_8, partial:m2236_15 #-----| Goto -> Block 1 -# 2225| Block 20 -# 2225| r2225_55(glval>) = VariableAddress[ys] : -# 2225| r2225_56(glval) = FunctionAddress[~vector] : -# 2225| v2225_57(void) = Call[~vector] : func:r2225_56, this:r2225_55 -# 2225| v2225_58(void) = ^IndirectReadSideEffect[-1] : &:r2225_55, m2225_6 -# 2225| m2225_59(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2225_55 -# 2230| r2230_1(glval>) = VariableAddress[ys] : -# 2230| m2230_2(vector) = Uninitialized[ys] : &:r2230_1 -# 2230| r2230_3(glval) = FunctionAddress[vector] : -# 2230| r2230_4(glval) = VariableAddress[#temp2230:45] : -# 2230| r2230_5(glval) = VariableAddress[x] : -# 2230| r2230_6(ClassWithDestructor) = Load[x] : &:r2230_5, m2215_8 -# 2230| m2230_7(ClassWithDestructor) = Store[#temp2230:45] : &:r2230_4, r2230_6 -# 2230| r2230_8(ClassWithDestructor) = Load[#temp2230:45] : &:r2230_4, m2230_7 -# 2230| v2230_9(void) = Call[vector] : func:r2230_3, this:r2230_1, 0:r2230_8 -# 2230| m2230_10(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2230_1 -# 2230| r2230_11(glval) = CopyValue : r2230_4 -# 2230| r2230_12(glval) = FunctionAddress[~ClassWithDestructor] : -# 2230| v2230_13(void) = Call[~ClassWithDestructor] : func:r2230_12, this:r2230_11 -# 2230| m2230_14(unknown) = ^CallSideEffect : ~m2225_34 -# 2230| m2230_15(unknown) = Chi : total:m2225_34, partial:m2230_14 -# 2230| v2230_16(void) = ^IndirectReadSideEffect[-1] : &:r2230_11, m2230_7 -# 2230| m2230_17(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2230_11 -# 2230| m2230_18(ClassWithDestructor) = Chi : total:m2230_7, partial:m2230_17 -# 2230| r2230_19(glval &>) = VariableAddress[(__range)] : -# 2230| r2230_20(glval>) = VariableAddress[ys] : -# 2230| r2230_21(vector &) = CopyValue : r2230_20 -# 2230| m2230_22(vector &) = Store[(__range)] : &:r2230_19, r2230_21 -# 2230| r2230_23(glval>) = VariableAddress[(__begin)] : -# 2230| r2230_24(glval &>) = VariableAddress[(__range)] : -# 2230| r2230_25(vector &) = Load[(__range)] : &:r2230_24, m2230_22 -#-----| r0_52(glval>) = CopyValue : r2230_25 +# 2227| Block 20 +# 2227| r2227_55(glval>) = VariableAddress[ys] : +# 2227| r2227_56(glval) = FunctionAddress[~vector] : +# 2227| v2227_57(void) = Call[~vector] : func:r2227_56, this:r2227_55 +# 2227| v2227_58(void) = ^IndirectReadSideEffect[-1] : &:r2227_55, m2227_6 +# 2227| m2227_59(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2227_55 +# 2232| r2232_1(glval>) = VariableAddress[ys] : +# 2232| m2232_2(vector) = Uninitialized[ys] : &:r2232_1 +# 2232| r2232_3(glval) = FunctionAddress[vector] : +# 2232| r2232_4(glval) = VariableAddress[#temp2232:45] : +# 2232| r2232_5(glval) = VariableAddress[x] : +# 2232| r2232_6(ClassWithDestructor) = Load[x] : &:r2232_5, m2217_8 +# 2232| m2232_7(ClassWithDestructor) = Store[#temp2232:45] : &:r2232_4, r2232_6 +# 2232| r2232_8(ClassWithDestructor) = Load[#temp2232:45] : &:r2232_4, m2232_7 +# 2232| v2232_9(void) = Call[vector] : func:r2232_3, this:r2232_1, 0:r2232_8 +# 2232| m2232_10(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2232_1 +# 2232| r2232_11(glval) = CopyValue : r2232_4 +# 2232| r2232_12(glval) = FunctionAddress[~ClassWithDestructor] : +# 2232| v2232_13(void) = Call[~ClassWithDestructor] : func:r2232_12, this:r2232_11 +# 2232| m2232_14(unknown) = ^CallSideEffect : ~m2227_34 +# 2232| m2232_15(unknown) = Chi : total:m2227_34, partial:m2232_14 +# 2232| v2232_16(void) = ^IndirectReadSideEffect[-1] : &:r2232_11, m2232_7 +# 2232| m2232_17(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2232_11 +# 2232| m2232_18(ClassWithDestructor) = Chi : total:m2232_7, partial:m2232_17 +# 2232| r2232_19(glval &>) = VariableAddress[(__range)] : +# 2232| r2232_20(glval>) = VariableAddress[ys] : +# 2232| r2232_21(vector &) = CopyValue : r2232_20 +# 2232| m2232_22(vector &) = Store[(__range)] : &:r2232_19, r2232_21 +# 2232| r2232_23(glval>) = VariableAddress[(__begin)] : +# 2232| r2232_24(glval &>) = VariableAddress[(__range)] : +# 2232| r2232_25(vector &) = Load[(__range)] : &:r2232_24, m2232_22 +#-----| r0_52(glval>) = CopyValue : r2232_25 #-----| r0_53(glval>) = Convert : r0_52 -# 2230| r2230_26(glval) = FunctionAddress[begin] : -# 2230| r2230_27(iterator) = Call[begin] : func:r2230_26, this:r0_53 -#-----| v0_54(void) = ^IndirectReadSideEffect[-1] : &:r0_53, m2230_10 -# 2230| m2230_28(iterator) = Store[(__begin)] : &:r2230_23, r2230_27 -# 2230| r2230_29(glval>) = VariableAddress[(__end)] : -# 2230| r2230_30(glval &>) = VariableAddress[(__range)] : -# 2230| r2230_31(vector &) = Load[(__range)] : &:r2230_30, m2230_22 -#-----| r0_55(glval>) = CopyValue : r2230_31 +# 2232| r2232_26(glval) = FunctionAddress[begin] : +# 2232| r2232_27(iterator) = Call[begin] : func:r2232_26, this:r0_53 +#-----| v0_54(void) = ^IndirectReadSideEffect[-1] : &:r0_53, m2232_10 +# 2232| m2232_28(iterator) = Store[(__begin)] : &:r2232_23, r2232_27 +# 2232| r2232_29(glval>) = VariableAddress[(__end)] : +# 2232| r2232_30(glval &>) = VariableAddress[(__range)] : +# 2232| r2232_31(vector &) = Load[(__range)] : &:r2232_30, m2232_22 +#-----| r0_55(glval>) = CopyValue : r2232_31 #-----| r0_56(glval>) = Convert : r0_55 -# 2230| r2230_32(glval) = FunctionAddress[end] : -# 2230| r2230_33(iterator) = Call[end] : func:r2230_32, this:r0_56 -#-----| v0_57(void) = ^IndirectReadSideEffect[-1] : &:r0_56, m2230_10 -# 2230| m2230_34(iterator) = Store[(__end)] : &:r2230_29, r2230_33 -# 2230| m2230_35(unknown) = Chi : total:m2230_15, partial:m2230_34 +# 2232| r2232_32(glval) = FunctionAddress[end] : +# 2232| r2232_33(iterator) = Call[end] : func:r2232_32, this:r0_56 +#-----| v0_57(void) = ^IndirectReadSideEffect[-1] : &:r0_56, m2232_10 +# 2232| m2232_34(iterator) = Store[(__end)] : &:r2232_29, r2232_33 +# 2232| m2232_35(unknown) = Chi : total:m2232_15, partial:m2232_34 #-----| Goto -> Block 21 -# 2230| Block 21 -# 2230| m2230_36(iterator) = Phi : from 20:m2230_28, from 22:m2230_60 -# 2230| m2230_37(unknown) = Phi : from 20:~m2230_35, from 22:~m2230_65 -# 2230| r2230_38(glval>) = VariableAddress[(__begin)] : -#-----| r0_58(glval>) = Convert : r2230_38 -# 2230| r2230_39(glval) = FunctionAddress[operator!=] : +# 2232| Block 21 +# 2232| m2232_36(iterator) = Phi : from 20:m2232_28, from 22:m2232_60 +# 2232| m2232_37(unknown) = Phi : from 20:~m2232_35, from 22:~m2232_65 +# 2232| r2232_38(glval>) = VariableAddress[(__begin)] : +#-----| r0_58(glval>) = Convert : r2232_38 +# 2232| r2232_39(glval) = FunctionAddress[operator!=] : #-----| r0_59(glval>) = VariableAddress[#temp0:0] : #-----| m0_60(iterator) = Uninitialized[#temp0:0] : &:r0_59 -#-----| m0_61(unknown) = Chi : total:m2230_37, partial:m0_60 -# 2230| r2230_40(glval) = FunctionAddress[iterator] : -# 2230| r2230_41(glval>) = VariableAddress[(__end)] : -#-----| r0_62(glval>) = Convert : r2230_41 +#-----| m0_61(unknown) = Chi : total:m2232_37, partial:m0_60 +# 2232| r2232_40(glval) = FunctionAddress[iterator] : +# 2232| r2232_41(glval>) = VariableAddress[(__end)] : +#-----| r0_62(glval>) = Convert : r2232_41 #-----| r0_63(iterator &) = CopyValue : r0_62 -# 2230| v2230_42(void) = Call[iterator] : func:r2230_40, this:r0_59, 0:r0_63 -# 2230| m2230_43(unknown) = ^CallSideEffect : ~m0_61 -# 2230| m2230_44(unknown) = Chi : total:m0_61, partial:m2230_43 -#-----| v0_64(void) = ^BufferReadSideEffect[0] : &:r0_63, ~m2230_44 -# 2230| m2230_45(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r0_59 -# 2230| m2230_46(unknown) = Chi : total:m2230_44, partial:m2230_45 -#-----| r0_65(iterator) = Load[#temp0:0] : &:r0_59, ~m2230_46 -# 2230| r2230_47(bool) = Call[operator!=] : func:r2230_39, this:r0_58, 0:r0_65 -#-----| v0_66(void) = ^IndirectReadSideEffect[-1] : &:r0_58, m2230_36 -# 2230| v2230_48(void) = ConditionalBranch : r2230_47 +# 2232| v2232_42(void) = Call[iterator] : func:r2232_40, this:r0_59, 0:r0_63 +# 2232| m2232_43(unknown) = ^CallSideEffect : ~m0_61 +# 2232| m2232_44(unknown) = Chi : total:m0_61, partial:m2232_43 +#-----| v0_64(void) = ^BufferReadSideEffect[0] : &:r0_63, ~m2232_44 +# 2232| m2232_45(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r0_59 +# 2232| m2232_46(unknown) = Chi : total:m2232_44, partial:m2232_45 +#-----| r0_65(iterator) = Load[#temp0:0] : &:r0_59, ~m2232_46 +# 2232| r2232_47(bool) = Call[operator!=] : func:r2232_39, this:r0_58, 0:r0_65 +#-----| v0_66(void) = ^IndirectReadSideEffect[-1] : &:r0_58, m2232_36 +# 2232| v2232_48(void) = ConditionalBranch : r2232_47 #-----| False -> Block 23 #-----| True -> Block 22 -# 2230| Block 22 -# 2230| r2230_49(glval) = VariableAddress[y] : -# 2230| r2230_50(glval>) = VariableAddress[(__begin)] : -#-----| r0_67(glval>) = Convert : r2230_50 -# 2230| r2230_51(glval) = FunctionAddress[operator*] : -# 2230| r2230_52(ClassWithDestructor &) = Call[operator*] : func:r2230_51, this:r0_67 -#-----| v0_68(void) = ^IndirectReadSideEffect[-1] : &:r0_67, m2230_36 -# 2230| r2230_53(ClassWithDestructor) = Load[?] : &:r2230_52, ~m2230_46 -# 2230| m2230_54(ClassWithDestructor) = Store[y] : &:r2230_49, r2230_53 -# 2231| r2231_1(glval) = VariableAddress[z1] : -# 2231| m2231_2(ClassWithDestructor) = Uninitialized[z1] : &:r2231_1 -# 2231| r2231_3(glval) = FunctionAddress[ClassWithDestructor] : -# 2231| v2231_4(void) = Call[ClassWithDestructor] : func:r2231_3, this:r2231_1 -# 2231| m2231_5(unknown) = ^CallSideEffect : ~m2230_46 -# 2231| m2231_6(unknown) = Chi : total:m2230_46, partial:m2231_5 -# 2231| m2231_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2231_1 -# 2231| m2231_8(ClassWithDestructor) = Chi : total:m2231_2, partial:m2231_7 -# 2232| r2232_1(glval) = VariableAddress[z2] : -# 2232| m2232_2(ClassWithDestructor) = Uninitialized[z2] : &:r2232_1 -# 2232| r2232_3(glval) = FunctionAddress[ClassWithDestructor] : -# 2232| v2232_4(void) = Call[ClassWithDestructor] : func:r2232_3, this:r2232_1 -# 2232| m2232_5(unknown) = ^CallSideEffect : ~m2231_6 -# 2232| m2232_6(unknown) = Chi : total:m2231_6, partial:m2232_5 -# 2232| m2232_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2232_1 -# 2232| m2232_8(ClassWithDestructor) = Chi : total:m2232_2, partial:m2232_7 -# 2233| r2233_1(glval) = VariableAddress[z2] : -# 2233| r2233_2(glval) = FunctionAddress[~ClassWithDestructor] : -# 2233| v2233_3(void) = Call[~ClassWithDestructor] : func:r2233_2, this:r2233_1 -# 2233| m2233_4(unknown) = ^CallSideEffect : ~m2232_6 -# 2233| m2233_5(unknown) = Chi : total:m2232_6, partial:m2233_4 -# 2233| v2233_6(void) = ^IndirectReadSideEffect[-1] : &:r2233_1, m2232_8 +# 2232| Block 22 +# 2232| r2232_49(glval) = VariableAddress[y] : +# 2232| r2232_50(glval>) = VariableAddress[(__begin)] : +#-----| r0_67(glval>) = Convert : r2232_50 +# 2232| r2232_51(glval) = FunctionAddress[operator*] : +# 2232| r2232_52(ClassWithDestructor &) = Call[operator*] : func:r2232_51, this:r0_67 +#-----| v0_68(void) = ^IndirectReadSideEffect[-1] : &:r0_67, m2232_36 +# 2232| r2232_53(ClassWithDestructor) = Load[?] : &:r2232_52, ~m2232_46 +# 2232| m2232_54(ClassWithDestructor) = Store[y] : &:r2232_49, r2232_53 +# 2233| r2233_1(glval) = VariableAddress[z1] : +# 2233| m2233_2(ClassWithDestructor) = Uninitialized[z1] : &:r2233_1 +# 2233| r2233_3(glval) = FunctionAddress[ClassWithDestructor] : +# 2233| v2233_4(void) = Call[ClassWithDestructor] : func:r2233_3, this:r2233_1 +# 2233| m2233_5(unknown) = ^CallSideEffect : ~m2232_46 +# 2233| m2233_6(unknown) = Chi : total:m2232_46, partial:m2233_5 # 2233| m2233_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2233_1 -# 2233| m2233_8(ClassWithDestructor) = Chi : total:m2232_8, partial:m2233_7 -# 2233| r2233_9(glval) = VariableAddress[z1] : -# 2233| r2233_10(glval) = FunctionAddress[~ClassWithDestructor] : -# 2233| v2233_11(void) = Call[~ClassWithDestructor] : func:r2233_10, this:r2233_9 -# 2233| m2233_12(unknown) = ^CallSideEffect : ~m2233_5 -# 2233| m2233_13(unknown) = Chi : total:m2233_5, partial:m2233_12 -# 2233| v2233_14(void) = ^IndirectReadSideEffect[-1] : &:r2233_9, m2231_8 -# 2233| m2233_15(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2233_9 -# 2233| m2233_16(ClassWithDestructor) = Chi : total:m2231_8, partial:m2233_15 -# 2230| r2230_55(glval>) = VariableAddress[(__begin)] : -# 2230| r2230_56(glval) = FunctionAddress[operator++] : -# 2230| r2230_57(iterator &) = Call[operator++] : func:r2230_56, this:r2230_55 -# 2230| v2230_58(void) = ^IndirectReadSideEffect[-1] : &:r2230_55, m2230_36 -# 2230| m2230_59(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2230_55 -# 2230| m2230_60(iterator) = Chi : total:m2230_36, partial:m2230_59 -# 2230| r2230_61(glval) = VariableAddress[y] : -# 2230| r2230_62(glval) = FunctionAddress[~ClassWithDestructor] : -# 2230| v2230_63(void) = Call[~ClassWithDestructor] : func:r2230_62, this:r2230_61 -# 2230| m2230_64(unknown) = ^CallSideEffect : ~m2233_13 -# 2230| m2230_65(unknown) = Chi : total:m2233_13, partial:m2230_64 -# 2230| v2230_66(void) = ^IndirectReadSideEffect[-1] : &:r2230_61, m2230_54 -# 2230| m2230_67(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2230_61 -# 2230| m2230_68(ClassWithDestructor) = Chi : total:m2230_54, partial:m2230_67 -# 2230| r2230_69(glval>) = CopyValue : r2230_57 +# 2233| m2233_8(ClassWithDestructor) = Chi : total:m2233_2, partial:m2233_7 +# 2234| r2234_1(glval) = VariableAddress[z2] : +# 2234| m2234_2(ClassWithDestructor) = Uninitialized[z2] : &:r2234_1 +# 2234| r2234_3(glval) = FunctionAddress[ClassWithDestructor] : +# 2234| v2234_4(void) = Call[ClassWithDestructor] : func:r2234_3, this:r2234_1 +# 2234| m2234_5(unknown) = ^CallSideEffect : ~m2233_6 +# 2234| m2234_6(unknown) = Chi : total:m2233_6, partial:m2234_5 +# 2234| m2234_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2234_1 +# 2234| m2234_8(ClassWithDestructor) = Chi : total:m2234_2, partial:m2234_7 +# 2235| r2235_1(glval) = VariableAddress[z2] : +# 2235| r2235_2(glval) = FunctionAddress[~ClassWithDestructor] : +# 2235| v2235_3(void) = Call[~ClassWithDestructor] : func:r2235_2, this:r2235_1 +# 2235| m2235_4(unknown) = ^CallSideEffect : ~m2234_6 +# 2235| m2235_5(unknown) = Chi : total:m2234_6, partial:m2235_4 +# 2235| v2235_6(void) = ^IndirectReadSideEffect[-1] : &:r2235_1, m2234_8 +# 2235| m2235_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2235_1 +# 2235| m2235_8(ClassWithDestructor) = Chi : total:m2234_8, partial:m2235_7 +# 2235| r2235_9(glval) = VariableAddress[z1] : +# 2235| r2235_10(glval) = FunctionAddress[~ClassWithDestructor] : +# 2235| v2235_11(void) = Call[~ClassWithDestructor] : func:r2235_10, this:r2235_9 +# 2235| m2235_12(unknown) = ^CallSideEffect : ~m2235_5 +# 2235| m2235_13(unknown) = Chi : total:m2235_5, partial:m2235_12 +# 2235| v2235_14(void) = ^IndirectReadSideEffect[-1] : &:r2235_9, m2233_8 +# 2235| m2235_15(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2235_9 +# 2235| m2235_16(ClassWithDestructor) = Chi : total:m2233_8, partial:m2235_15 +# 2232| r2232_55(glval>) = VariableAddress[(__begin)] : +# 2232| r2232_56(glval) = FunctionAddress[operator++] : +# 2232| r2232_57(iterator &) = Call[operator++] : func:r2232_56, this:r2232_55 +# 2232| v2232_58(void) = ^IndirectReadSideEffect[-1] : &:r2232_55, m2232_36 +# 2232| m2232_59(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2232_55 +# 2232| m2232_60(iterator) = Chi : total:m2232_36, partial:m2232_59 +# 2232| r2232_61(glval) = VariableAddress[y] : +# 2232| r2232_62(glval) = FunctionAddress[~ClassWithDestructor] : +# 2232| v2232_63(void) = Call[~ClassWithDestructor] : func:r2232_62, this:r2232_61 +# 2232| m2232_64(unknown) = ^CallSideEffect : ~m2235_13 +# 2232| m2232_65(unknown) = Chi : total:m2235_13, partial:m2232_64 +# 2232| v2232_66(void) = ^IndirectReadSideEffect[-1] : &:r2232_61, m2232_54 +# 2232| m2232_67(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2232_61 +# 2232| m2232_68(ClassWithDestructor) = Chi : total:m2232_54, partial:m2232_67 +# 2232| r2232_69(glval>) = CopyValue : r2232_57 #-----| Goto (back edge) -> Block 21 -# 2230| Block 23 -# 2230| r2230_70(glval>) = VariableAddress[ys] : -# 2230| r2230_71(glval) = FunctionAddress[~vector] : -# 2230| v2230_72(void) = Call[~vector] : func:r2230_71, this:r2230_70 -# 2230| v2230_73(void) = ^IndirectReadSideEffect[-1] : &:r2230_70, m2230_10 -# 2230| m2230_74(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2230_70 -# 2234| v2234_17(void) = NoOp : -# 2234| r2234_18(glval) = VariableAddress[x] : -# 2234| r2234_19(glval) = FunctionAddress[~ClassWithDestructor] : -# 2234| v2234_20(void) = Call[~ClassWithDestructor] : func:r2234_19, this:r2234_18 -# 2234| m2234_21(unknown) = ^CallSideEffect : ~m2230_46 -# 2234| m2234_22(unknown) = Chi : total:m2230_46, partial:m2234_21 -# 2234| v2234_23(void) = ^IndirectReadSideEffect[-1] : &:r2234_18, m2215_8 -# 2234| m2234_24(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2234_18 -# 2234| m2234_25(ClassWithDestructor) = Chi : total:m2215_8, partial:m2234_24 +# 2232| Block 23 +# 2232| r2232_70(glval>) = VariableAddress[ys] : +# 2232| r2232_71(glval) = FunctionAddress[~vector] : +# 2232| v2232_72(void) = Call[~vector] : func:r2232_71, this:r2232_70 +# 2232| v2232_73(void) = ^IndirectReadSideEffect[-1] : &:r2232_70, m2232_10 +# 2232| m2232_74(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2232_70 +# 2236| v2236_17(void) = NoOp : +# 2236| r2236_18(glval) = VariableAddress[x] : +# 2236| r2236_19(glval) = FunctionAddress[~ClassWithDestructor] : +# 2236| v2236_20(void) = Call[~ClassWithDestructor] : func:r2236_19, this:r2236_18 +# 2236| m2236_21(unknown) = ^CallSideEffect : ~m2232_46 +# 2236| m2236_22(unknown) = Chi : total:m2232_46, partial:m2236_21 +# 2236| v2236_23(void) = ^IndirectReadSideEffect[-1] : &:r2236_18, m2217_8 +# 2236| m2236_24(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2236_18 +# 2236| m2236_25(ClassWithDestructor) = Chi : total:m2217_8, partial:m2236_24 #-----| Goto -> Block 1 -# 2199| Block 24 -# 2199| v2199_13(void) = Unreached : - -# 2236| void static_variable_with_destructor_1() -# 2236| Block 0 -# 2236| v2236_1(void) = EnterFunction : -# 2236| m2236_2(unknown) = AliasedDefinition : -# 2236| m2236_3(unknown) = InitializeNonLocal : -# 2236| m2236_4(unknown) = Chi : total:m2236_2, partial:m2236_3 -# 2237| r2237_1(glval) = VariableAddress[a] : -# 2237| m2237_2(ClassWithDestructor) = Uninitialized[a] : &:r2237_1 -# 2237| r2237_3(glval) = FunctionAddress[ClassWithDestructor] : -# 2237| v2237_4(void) = Call[ClassWithDestructor] : func:r2237_3, this:r2237_1 -# 2237| m2237_5(unknown) = ^CallSideEffect : ~m2236_4 -# 2237| m2237_6(unknown) = Chi : total:m2236_4, partial:m2237_5 -# 2237| m2237_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2237_1 -# 2237| m2237_8(ClassWithDestructor) = Chi : total:m2237_2, partial:m2237_7 -# 2238| r2238_1(glval) = VariableAddress[b#init] : -# 2238| r2238_2(bool) = Load[b#init] : &:r2238_1, ~m2237_6 -# 2238| v2238_3(void) = ConditionalBranch : r2238_2 +# 2201| Block 24 +# 2201| v2201_13(void) = Unreached : + +# 2238| void static_variable_with_destructor_1() +# 2238| Block 0 +# 2238| v2238_1(void) = EnterFunction : +# 2238| m2238_2(unknown) = AliasedDefinition : +# 2238| m2238_3(unknown) = InitializeNonLocal : +# 2238| m2238_4(unknown) = Chi : total:m2238_2, partial:m2238_3 +# 2239| r2239_1(glval) = VariableAddress[a] : +# 2239| m2239_2(ClassWithDestructor) = Uninitialized[a] : &:r2239_1 +# 2239| r2239_3(glval) = FunctionAddress[ClassWithDestructor] : +# 2239| v2239_4(void) = Call[ClassWithDestructor] : func:r2239_3, this:r2239_1 +# 2239| m2239_5(unknown) = ^CallSideEffect : ~m2238_4 +# 2239| m2239_6(unknown) = Chi : total:m2238_4, partial:m2239_5 +# 2239| m2239_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2239_1 +# 2239| m2239_8(ClassWithDestructor) = Chi : total:m2239_2, partial:m2239_7 +# 2240| r2240_1(glval) = VariableAddress[b#init] : +# 2240| r2240_2(bool) = Load[b#init] : &:r2240_1, ~m2239_6 +# 2240| v2240_3(void) = ConditionalBranch : r2240_2 #-----| False -> Block 1 #-----| True -> Block 2 -# 2238| Block 1 -# 2238| r2238_4(glval) = VariableAddress[b] : +# 2240| Block 1 +# 2240| r2240_4(glval) = VariableAddress[b] : #-----| r0_1(glval) = FunctionAddress[ClassWithDestructor] : -#-----| v0_2(void) = Call[ClassWithDestructor] : func:r0_1, this:r2238_4 -#-----| m0_3(unknown) = ^CallSideEffect : ~m2237_6 -#-----| m0_4(unknown) = Chi : total:m2237_6, partial:m0_3 -#-----| m0_5(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2238_4 +#-----| v0_2(void) = Call[ClassWithDestructor] : func:r0_1, this:r2240_4 +#-----| m0_3(unknown) = ^CallSideEffect : ~m2239_6 +#-----| m0_4(unknown) = Chi : total:m2239_6, partial:m0_3 +#-----| m0_5(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2240_4 #-----| m0_6(unknown) = Chi : total:m0_4, partial:m0_5 -# 2238| r2238_5(bool) = Constant[1] : -# 2238| m2238_6(bool) = Store[b#init] : &:r2238_1, r2238_5 -# 2238| m2238_7(unknown) = Chi : total:m0_6, partial:m2238_6 +# 2240| r2240_5(bool) = Constant[1] : +# 2240| m2240_6(bool) = Store[b#init] : &:r2240_1, r2240_5 +# 2240| m2240_7(unknown) = Chi : total:m0_6, partial:m2240_6 #-----| Goto -> Block 2 -# 2239| Block 2 -# 2239| m2239_1(unknown) = Phi : from 0:~m2237_6, from 1:~m2238_7 -# 2239| v2239_2(void) = NoOp : -# 2239| r2239_3(glval) = VariableAddress[a] : -# 2239| r2239_4(glval) = FunctionAddress[~ClassWithDestructor] : -# 2239| v2239_5(void) = Call[~ClassWithDestructor] : func:r2239_4, this:r2239_3 -# 2239| m2239_6(unknown) = ^CallSideEffect : ~m2239_1 -# 2239| m2239_7(unknown) = Chi : total:m2239_1, partial:m2239_6 -# 2239| v2239_8(void) = ^IndirectReadSideEffect[-1] : &:r2239_3, m2237_8 -# 2239| m2239_9(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2239_3 -# 2239| m2239_10(ClassWithDestructor) = Chi : total:m2237_8, partial:m2239_9 -# 2236| v2236_5(void) = ReturnVoid : -# 2236| v2236_6(void) = AliasedUse : ~m2239_7 -# 2236| v2236_7(void) = ExitFunction : - -# 2241| void static_variable_with_destructor_2() -# 2241| Block 0 -# 2241| v2241_1(void) = EnterFunction : -# 2241| m2241_2(unknown) = AliasedDefinition : -# 2241| m2241_3(unknown) = InitializeNonLocal : -# 2241| m2241_4(unknown) = Chi : total:m2241_2, partial:m2241_3 -# 2242| r2242_1(glval) = VariableAddress[a#init] : -# 2242| r2242_2(bool) = Load[a#init] : &:r2242_1, ~m2241_3 -# 2242| v2242_3(void) = ConditionalBranch : r2242_2 +# 2241| Block 2 +# 2241| m2241_1(unknown) = Phi : from 0:~m2239_6, from 1:~m2240_7 +# 2241| v2241_2(void) = NoOp : +# 2241| r2241_3(glval) = VariableAddress[a] : +# 2241| r2241_4(glval) = FunctionAddress[~ClassWithDestructor] : +# 2241| v2241_5(void) = Call[~ClassWithDestructor] : func:r2241_4, this:r2241_3 +# 2241| m2241_6(unknown) = ^CallSideEffect : ~m2241_1 +# 2241| m2241_7(unknown) = Chi : total:m2241_1, partial:m2241_6 +# 2241| v2241_8(void) = ^IndirectReadSideEffect[-1] : &:r2241_3, m2239_8 +# 2241| m2241_9(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2241_3 +# 2241| m2241_10(ClassWithDestructor) = Chi : total:m2239_8, partial:m2241_9 +# 2238| v2238_5(void) = ReturnVoid : +# 2238| v2238_6(void) = AliasedUse : ~m2241_7 +# 2238| v2238_7(void) = ExitFunction : + +# 2243| void static_variable_with_destructor_2() +# 2243| Block 0 +# 2243| v2243_1(void) = EnterFunction : +# 2243| m2243_2(unknown) = AliasedDefinition : +# 2243| m2243_3(unknown) = InitializeNonLocal : +# 2243| m2243_4(unknown) = Chi : total:m2243_2, partial:m2243_3 +# 2244| r2244_1(glval) = VariableAddress[a#init] : +# 2244| r2244_2(bool) = Load[a#init] : &:r2244_1, ~m2243_3 +# 2244| v2244_3(void) = ConditionalBranch : r2244_2 #-----| False -> Block 1 #-----| True -> Block 2 -# 2242| Block 1 -# 2242| r2242_4(glval) = VariableAddress[a] : +# 2244| Block 1 +# 2244| r2244_4(glval) = VariableAddress[a] : #-----| r0_1(glval) = FunctionAddress[ClassWithDestructor] : -#-----| v0_2(void) = Call[ClassWithDestructor] : func:r0_1, this:r2242_4 -#-----| m0_3(unknown) = ^CallSideEffect : ~m2241_4 -#-----| m0_4(unknown) = Chi : total:m2241_4, partial:m0_3 -#-----| m0_5(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2242_4 +#-----| v0_2(void) = Call[ClassWithDestructor] : func:r0_1, this:r2244_4 +#-----| m0_3(unknown) = ^CallSideEffect : ~m2243_4 +#-----| m0_4(unknown) = Chi : total:m2243_4, partial:m0_3 +#-----| m0_5(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2244_4 #-----| m0_6(unknown) = Chi : total:m0_4, partial:m0_5 -# 2242| r2242_5(bool) = Constant[1] : -# 2242| m2242_6(bool) = Store[a#init] : &:r2242_1, r2242_5 -# 2242| m2242_7(unknown) = Chi : total:m0_6, partial:m2242_6 +# 2244| r2244_5(bool) = Constant[1] : +# 2244| m2244_6(bool) = Store[a#init] : &:r2244_1, r2244_5 +# 2244| m2244_7(unknown) = Chi : total:m0_6, partial:m2244_6 #-----| Goto -> Block 2 -# 2243| Block 2 -# 2243| m2243_1(unknown) = Phi : from 0:~m2241_4, from 1:~m2242_7 -# 2243| r2243_2(glval) = VariableAddress[b] : -# 2243| m2243_3(ClassWithDestructor) = Uninitialized[b] : &:r2243_2 -# 2243| r2243_4(glval) = FunctionAddress[ClassWithDestructor] : -# 2243| v2243_5(void) = Call[ClassWithDestructor] : func:r2243_4, this:r2243_2 -# 2243| m2243_6(unknown) = ^CallSideEffect : ~m2243_1 -# 2243| m2243_7(unknown) = Chi : total:m2243_1, partial:m2243_6 -# 2243| m2243_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2243_2 -# 2243| m2243_9(ClassWithDestructor) = Chi : total:m2243_3, partial:m2243_8 -# 2244| v2244_1(void) = NoOp : -# 2244| r2244_2(glval) = VariableAddress[b] : -# 2244| r2244_3(glval) = FunctionAddress[~ClassWithDestructor] : -# 2244| v2244_4(void) = Call[~ClassWithDestructor] : func:r2244_3, this:r2244_2 -# 2244| m2244_5(unknown) = ^CallSideEffect : ~m2243_7 -# 2244| m2244_6(unknown) = Chi : total:m2243_7, partial:m2244_5 -# 2244| v2244_7(void) = ^IndirectReadSideEffect[-1] : &:r2244_2, m2243_9 -# 2244| m2244_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2244_2 -# 2244| m2244_9(ClassWithDestructor) = Chi : total:m2243_9, partial:m2244_8 -# 2241| v2241_5(void) = ReturnVoid : -# 2241| v2241_6(void) = AliasedUse : ~m2244_6 -# 2241| v2241_7(void) = ExitFunction : - -# 2246| void static_variable_with_destructor_3() -# 2246| Block 0 -# 2246| v2246_1(void) = EnterFunction : -# 2246| m2246_2(unknown) = AliasedDefinition : -# 2246| m2246_3(unknown) = InitializeNonLocal : -# 2246| m2246_4(unknown) = Chi : total:m2246_2, partial:m2246_3 -# 2247| r2247_1(glval) = VariableAddress[a] : -# 2247| m2247_2(ClassWithDestructor) = Uninitialized[a] : &:r2247_1 -# 2247| r2247_3(glval) = FunctionAddress[ClassWithDestructor] : -# 2247| v2247_4(void) = Call[ClassWithDestructor] : func:r2247_3, this:r2247_1 -# 2247| m2247_5(unknown) = ^CallSideEffect : ~m2246_4 -# 2247| m2247_6(unknown) = Chi : total:m2246_4, partial:m2247_5 -# 2247| m2247_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2247_1 -# 2247| m2247_8(ClassWithDestructor) = Chi : total:m2247_2, partial:m2247_7 -# 2248| r2248_1(glval) = VariableAddress[b] : -# 2248| m2248_2(ClassWithDestructor) = Uninitialized[b] : &:r2248_1 -# 2248| r2248_3(glval) = FunctionAddress[ClassWithDestructor] : -# 2248| v2248_4(void) = Call[ClassWithDestructor] : func:r2248_3, this:r2248_1 -# 2248| m2248_5(unknown) = ^CallSideEffect : ~m2247_6 -# 2248| m2248_6(unknown) = Chi : total:m2247_6, partial:m2248_5 -# 2248| m2248_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2248_1 -# 2248| m2248_8(ClassWithDestructor) = Chi : total:m2248_2, partial:m2248_7 -# 2249| r2249_1(glval) = VariableAddress[c#init] : -# 2249| r2249_2(bool) = Load[c#init] : &:r2249_1, ~m2248_6 -# 2249| v2249_3(void) = ConditionalBranch : r2249_2 +# 2245| Block 2 +# 2245| m2245_1(unknown) = Phi : from 0:~m2243_4, from 1:~m2244_7 +# 2245| r2245_2(glval) = VariableAddress[b] : +# 2245| m2245_3(ClassWithDestructor) = Uninitialized[b] : &:r2245_2 +# 2245| r2245_4(glval) = FunctionAddress[ClassWithDestructor] : +# 2245| v2245_5(void) = Call[ClassWithDestructor] : func:r2245_4, this:r2245_2 +# 2245| m2245_6(unknown) = ^CallSideEffect : ~m2245_1 +# 2245| m2245_7(unknown) = Chi : total:m2245_1, partial:m2245_6 +# 2245| m2245_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2245_2 +# 2245| m2245_9(ClassWithDestructor) = Chi : total:m2245_3, partial:m2245_8 +# 2246| v2246_1(void) = NoOp : +# 2246| r2246_2(glval) = VariableAddress[b] : +# 2246| r2246_3(glval) = FunctionAddress[~ClassWithDestructor] : +# 2246| v2246_4(void) = Call[~ClassWithDestructor] : func:r2246_3, this:r2246_2 +# 2246| m2246_5(unknown) = ^CallSideEffect : ~m2245_7 +# 2246| m2246_6(unknown) = Chi : total:m2245_7, partial:m2246_5 +# 2246| v2246_7(void) = ^IndirectReadSideEffect[-1] : &:r2246_2, m2245_9 +# 2246| m2246_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2246_2 +# 2246| m2246_9(ClassWithDestructor) = Chi : total:m2245_9, partial:m2246_8 +# 2243| v2243_5(void) = ReturnVoid : +# 2243| v2243_6(void) = AliasedUse : ~m2246_6 +# 2243| v2243_7(void) = ExitFunction : + +# 2248| void static_variable_with_destructor_3() +# 2248| Block 0 +# 2248| v2248_1(void) = EnterFunction : +# 2248| m2248_2(unknown) = AliasedDefinition : +# 2248| m2248_3(unknown) = InitializeNonLocal : +# 2248| m2248_4(unknown) = Chi : total:m2248_2, partial:m2248_3 +# 2249| r2249_1(glval) = VariableAddress[a] : +# 2249| m2249_2(ClassWithDestructor) = Uninitialized[a] : &:r2249_1 +# 2249| r2249_3(glval) = FunctionAddress[ClassWithDestructor] : +# 2249| v2249_4(void) = Call[ClassWithDestructor] : func:r2249_3, this:r2249_1 +# 2249| m2249_5(unknown) = ^CallSideEffect : ~m2248_4 +# 2249| m2249_6(unknown) = Chi : total:m2248_4, partial:m2249_5 +# 2249| m2249_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2249_1 +# 2249| m2249_8(ClassWithDestructor) = Chi : total:m2249_2, partial:m2249_7 +# 2250| r2250_1(glval) = VariableAddress[b] : +# 2250| m2250_2(ClassWithDestructor) = Uninitialized[b] : &:r2250_1 +# 2250| r2250_3(glval) = FunctionAddress[ClassWithDestructor] : +# 2250| v2250_4(void) = Call[ClassWithDestructor] : func:r2250_3, this:r2250_1 +# 2250| m2250_5(unknown) = ^CallSideEffect : ~m2249_6 +# 2250| m2250_6(unknown) = Chi : total:m2249_6, partial:m2250_5 +# 2250| m2250_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2250_1 +# 2250| m2250_8(ClassWithDestructor) = Chi : total:m2250_2, partial:m2250_7 +# 2251| r2251_1(glval) = VariableAddress[c#init] : +# 2251| r2251_2(bool) = Load[c#init] : &:r2251_1, ~m2250_6 +# 2251| v2251_3(void) = ConditionalBranch : r2251_2 #-----| False -> Block 1 #-----| True -> Block 2 -# 2249| Block 1 -# 2249| r2249_4(glval) = VariableAddress[c] : +# 2251| Block 1 +# 2251| r2251_4(glval) = VariableAddress[c] : #-----| r0_1(glval) = FunctionAddress[ClassWithDestructor] : -#-----| v0_2(void) = Call[ClassWithDestructor] : func:r0_1, this:r2249_4 -#-----| m0_3(unknown) = ^CallSideEffect : ~m2248_6 -#-----| m0_4(unknown) = Chi : total:m2248_6, partial:m0_3 -#-----| m0_5(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2249_4 +#-----| v0_2(void) = Call[ClassWithDestructor] : func:r0_1, this:r2251_4 +#-----| m0_3(unknown) = ^CallSideEffect : ~m2250_6 +#-----| m0_4(unknown) = Chi : total:m2250_6, partial:m0_3 +#-----| m0_5(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2251_4 #-----| m0_6(unknown) = Chi : total:m0_4, partial:m0_5 -# 2249| r2249_5(bool) = Constant[1] : -# 2249| m2249_6(bool) = Store[c#init] : &:r2249_1, r2249_5 -# 2249| m2249_7(unknown) = Chi : total:m0_6, partial:m2249_6 +# 2251| r2251_5(bool) = Constant[1] : +# 2251| m2251_6(bool) = Store[c#init] : &:r2251_1, r2251_5 +# 2251| m2251_7(unknown) = Chi : total:m0_6, partial:m2251_6 #-----| Goto -> Block 2 -# 2250| Block 2 -# 2250| m2250_1(unknown) = Phi : from 0:~m2248_6, from 1:~m2249_7 -# 2250| v2250_2(void) = NoOp : -# 2250| r2250_3(glval) = VariableAddress[b] : -# 2250| r2250_4(glval) = FunctionAddress[~ClassWithDestructor] : -# 2250| v2250_5(void) = Call[~ClassWithDestructor] : func:r2250_4, this:r2250_3 -# 2250| m2250_6(unknown) = ^CallSideEffect : ~m2250_1 -# 2250| m2250_7(unknown) = Chi : total:m2250_1, partial:m2250_6 -# 2250| v2250_8(void) = ^IndirectReadSideEffect[-1] : &:r2250_3, m2248_8 -# 2250| m2250_9(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2250_3 -# 2250| m2250_10(ClassWithDestructor) = Chi : total:m2248_8, partial:m2250_9 -# 2250| r2250_11(glval) = VariableAddress[a] : -# 2250| r2250_12(glval) = FunctionAddress[~ClassWithDestructor] : -# 2250| v2250_13(void) = Call[~ClassWithDestructor] : func:r2250_12, this:r2250_11 -# 2250| m2250_14(unknown) = ^CallSideEffect : ~m2250_7 -# 2250| m2250_15(unknown) = Chi : total:m2250_7, partial:m2250_14 -# 2250| v2250_16(void) = ^IndirectReadSideEffect[-1] : &:r2250_11, m2247_8 -# 2250| m2250_17(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2250_11 -# 2250| m2250_18(ClassWithDestructor) = Chi : total:m2247_8, partial:m2250_17 -# 2246| v2246_5(void) = ReturnVoid : -# 2246| v2246_6(void) = AliasedUse : ~m2250_15 -# 2246| v2246_7(void) = ExitFunction : - -# 2252| ClassWithDestructor global_class_with_destructor -# 2252| Block 0 -# 2252| v2252_1(void) = EnterFunction : -# 2252| m2252_2(unknown) = AliasedDefinition : -# 2252| r2252_3(glval) = VariableAddress[global_class_with_destructor] : -# 2252| r2252_4(glval) = FunctionAddress[ClassWithDestructor] : -# 2252| v2252_5(void) = Call[ClassWithDestructor] : func:r2252_4, this:r2252_3 -# 2252| m2252_6(unknown) = ^CallSideEffect : ~m2252_2 -# 2252| m2252_7(unknown) = Chi : total:m2252_2, partial:m2252_6 -# 2252| m2252_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2252_3 -# 2252| m2252_9(unknown) = Chi : total:m2252_7, partial:m2252_8 -# 2252| v2252_10(void) = ReturnVoid : -# 2252| v2252_11(void) = AliasedUse : ~m2252_9 -# 2252| v2252_12(void) = ExitFunction : - -# 2256| ClassWithDestructor& vacuous_destructor_call::get(ClassWithDestructor&) -# 2256| Block 0 -# 2256| v2256_1(void) = EnterFunction : -# 2256| m2256_2(unknown) = AliasedDefinition : -# 2256| m2256_3(unknown) = InitializeNonLocal : -# 2256| m2256_4(unknown) = Chi : total:m2256_2, partial:m2256_3 -# 2256| r2256_5(glval) = VariableAddress[t] : -# 2256| m2256_6(ClassWithDestructor &) = InitializeParameter[t] : &:r2256_5 -# 2256| r2256_7(ClassWithDestructor &) = Load[t] : &:r2256_5, m2256_6 -# 2256| m2256_8(unknown) = InitializeIndirection[t] : &:r2256_7 -# 2256| r2256_9(glval) = VariableAddress[#return] : -# 2256| r2256_10(glval) = VariableAddress[t] : -# 2256| r2256_11(ClassWithDestructor &) = Load[t] : &:r2256_10, m2256_6 -# 2256| r2256_12(glval) = CopyValue : r2256_11 -# 2256| r2256_13(ClassWithDestructor &) = CopyValue : r2256_12 -# 2256| m2256_14(ClassWithDestructor &) = Store[#return] : &:r2256_9, r2256_13 -# 2256| v2256_15(void) = ReturnIndirection[t] : &:r2256_7, m2256_8 -# 2256| r2256_16(glval) = VariableAddress[#return] : -# 2256| v2256_17(void) = ReturnValue : &:r2256_16, m2256_14 -# 2256| v2256_18(void) = AliasedUse : m2256_3 -# 2256| v2256_19(void) = ExitFunction : - -# 2256| int& vacuous_destructor_call::get(int&) -# 2256| Block 0 -# 2256| v2256_1(void) = EnterFunction : -# 2256| m2256_2(unknown) = AliasedDefinition : -# 2256| m2256_3(unknown) = InitializeNonLocal : -# 2256| m2256_4(unknown) = Chi : total:m2256_2, partial:m2256_3 -# 2256| r2256_5(glval) = VariableAddress[t] : -# 2256| m2256_6(int &) = InitializeParameter[t] : &:r2256_5 -# 2256| r2256_7(int &) = Load[t] : &:r2256_5, m2256_6 -# 2256| m2256_8(unknown) = InitializeIndirection[t] : &:r2256_7 -# 2256| r2256_9(glval) = VariableAddress[#return] : -# 2256| r2256_10(glval) = VariableAddress[t] : -# 2256| r2256_11(int &) = Load[t] : &:r2256_10, m2256_6 -# 2256| r2256_12(glval) = CopyValue : r2256_11 -# 2256| r2256_13(int &) = CopyValue : r2256_12 -# 2256| m2256_14(int &) = Store[#return] : &:r2256_9, r2256_13 -# 2256| v2256_15(void) = ReturnIndirection[t] : &:r2256_7, m2256_8 -# 2256| r2256_16(glval) = VariableAddress[#return] : -# 2256| v2256_17(void) = ReturnValue : &:r2256_16, m2256_14 -# 2256| v2256_18(void) = AliasedUse : m2256_3 -# 2256| v2256_19(void) = ExitFunction : - -# 2259| void vacuous_destructor_call::call_destructor(ClassWithDestructor&) -# 2259| Block 0 -# 2259| v2259_1(void) = EnterFunction : -# 2259| m2259_2(unknown) = AliasedDefinition : -# 2259| m2259_3(unknown) = InitializeNonLocal : -# 2259| m2259_4(unknown) = Chi : total:m2259_2, partial:m2259_3 -# 2259| r2259_5(glval) = VariableAddress[t] : -# 2259| m2259_6(ClassWithDestructor &) = InitializeParameter[t] : &:r2259_5 -# 2259| r2259_7(ClassWithDestructor &) = Load[t] : &:r2259_5, m2259_6 -# 2259| m2259_8(unknown) = InitializeIndirection[t] : &:r2259_7 -# 2260| r2260_1(glval) = FunctionAddress[get] : -# 2260| r2260_2(glval) = VariableAddress[t] : -# 2260| r2260_3(ClassWithDestructor &) = Load[t] : &:r2260_2, m2259_6 -# 2260| r2260_4(glval) = CopyValue : r2260_3 -# 2260| r2260_5(ClassWithDestructor &) = CopyValue : r2260_4 -# 2260| r2260_6(ClassWithDestructor &) = Call[get] : func:r2260_1, 0:r2260_5 -# 2260| m2260_7(unknown) = ^CallSideEffect : ~m2259_4 -# 2260| m2260_8(unknown) = Chi : total:m2259_4, partial:m2260_7 -# 2260| v2260_9(void) = ^BufferReadSideEffect[0] : &:r2260_5, ~m2259_8 -# 2260| m2260_10(unknown) = ^BufferMayWriteSideEffect[0] : &:r2260_5 -# 2260| m2260_11(unknown) = Chi : total:m2259_8, partial:m2260_10 -# 2260| r2260_12(glval) = CopyValue : r2260_6 -# 2260| r2260_13(glval) = FunctionAddress[~ClassWithDestructor] : -# 2260| v2260_14(void) = Call[~ClassWithDestructor] : func:r2260_13 -# 2260| m2260_15(unknown) = ^CallSideEffect : ~m2260_8 -# 2260| m2260_16(unknown) = Chi : total:m2260_8, partial:m2260_15 -# 2260| v2260_17(void) = ^IndirectReadSideEffect[-1] : &:r2260_12, ~m2260_11 -# 2260| m2260_18(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2260_12 -# 2260| m2260_19(unknown) = Chi : total:m2260_11, partial:m2260_18 -# 2261| v2261_1(void) = NoOp : -# 2259| v2259_9(void) = ReturnIndirection[t] : &:r2259_7, m2260_19 -# 2259| v2259_10(void) = ReturnVoid : -# 2259| v2259_11(void) = AliasedUse : ~m2260_16 -# 2259| v2259_12(void) = ExitFunction : - -# 2259| void vacuous_destructor_call::call_destructor(int&) -# 2259| Block 0 -# 2259| v2259_1(void) = EnterFunction : -# 2259| m2259_2(unknown) = AliasedDefinition : -# 2259| m2259_3(unknown) = InitializeNonLocal : -# 2259| m2259_4(unknown) = Chi : total:m2259_2, partial:m2259_3 -# 2259| r2259_5(glval) = VariableAddress[t] : -# 2259| m2259_6(int &) = InitializeParameter[t] : &:r2259_5 -# 2259| r2259_7(int &) = Load[t] : &:r2259_5, m2259_6 -# 2259| m2259_8(unknown) = InitializeIndirection[t] : &:r2259_7 -# 2260| r2260_1(glval) = FunctionAddress[get] : -# 2260| r2260_2(glval) = VariableAddress[t] : -# 2260| r2260_3(int &) = Load[t] : &:r2260_2, m2259_6 -# 2260| r2260_4(glval) = CopyValue : r2260_3 -# 2260| r2260_5(int &) = CopyValue : r2260_4 -# 2260| r2260_6(int &) = Call[get] : func:r2260_1, 0:r2260_5 -# 2260| m2260_7(unknown) = ^CallSideEffect : ~m2259_4 -# 2260| m2260_8(unknown) = Chi : total:m2259_4, partial:m2260_7 -# 2260| v2260_9(void) = ^BufferReadSideEffect[0] : &:r2260_5, ~m2259_8 -# 2260| m2260_10(unknown) = ^BufferMayWriteSideEffect[0] : &:r2260_5 -# 2260| m2260_11(unknown) = Chi : total:m2259_8, partial:m2260_10 -# 2260| r2260_12(glval) = CopyValue : r2260_6 -# 2261| v2261_1(void) = NoOp : -# 2259| v2259_9(void) = ReturnIndirection[t] : &:r2259_7, m2260_11 -# 2259| v2259_10(void) = ReturnVoid : -# 2259| v2259_11(void) = AliasedUse : ~m2260_8 -# 2259| v2259_12(void) = ExitFunction : - -# 2263| void vacuous_destructor_call::non_vacuous_destructor_call() -# 2263| Block 0 -# 2263| v2263_1(void) = EnterFunction : -# 2263| m2263_2(unknown) = AliasedDefinition : -# 2263| m2263_3(unknown) = InitializeNonLocal : -# 2263| m2263_4(unknown) = Chi : total:m2263_2, partial:m2263_3 -# 2264| r2264_1(glval) = VariableAddress[c] : -# 2264| m2264_2(ClassWithDestructor) = Uninitialized[c] : &:r2264_1 -# 2264| r2264_3(glval) = FunctionAddress[ClassWithDestructor] : -# 2264| v2264_4(void) = Call[ClassWithDestructor] : func:r2264_3, this:r2264_1 -# 2264| m2264_5(unknown) = ^CallSideEffect : ~m2263_4 -# 2264| m2264_6(unknown) = Chi : total:m2263_4, partial:m2264_5 -# 2264| m2264_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2264_1 -# 2264| m2264_8(ClassWithDestructor) = Chi : total:m2264_2, partial:m2264_7 -# 2265| r2265_1(glval) = FunctionAddress[call_destructor] : -# 2265| r2265_2(glval) = VariableAddress[c] : -# 2265| r2265_3(ClassWithDestructor &) = CopyValue : r2265_2 -# 2265| v2265_4(void) = Call[call_destructor] : func:r2265_1, 0:r2265_3 -# 2265| m2265_5(unknown) = ^CallSideEffect : ~m2264_6 -# 2265| m2265_6(unknown) = Chi : total:m2264_6, partial:m2265_5 -# 2265| v2265_7(void) = ^BufferReadSideEffect[0] : &:r2265_3, ~m2264_8 -# 2265| m2265_8(unknown) = ^BufferMayWriteSideEffect[0] : &:r2265_3 -# 2265| m2265_9(ClassWithDestructor) = Chi : total:m2264_8, partial:m2265_8 -# 2266| v2266_1(void) = NoOp : -# 2266| r2266_2(glval) = VariableAddress[c] : -# 2266| r2266_3(glval) = FunctionAddress[~ClassWithDestructor] : -# 2266| v2266_4(void) = Call[~ClassWithDestructor] : func:r2266_3, this:r2266_2 -# 2266| m2266_5(unknown) = ^CallSideEffect : ~m2265_6 -# 2266| m2266_6(unknown) = Chi : total:m2265_6, partial:m2266_5 -# 2266| v2266_7(void) = ^IndirectReadSideEffect[-1] : &:r2266_2, m2265_9 -# 2266| m2266_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2266_2 -# 2266| m2266_9(ClassWithDestructor) = Chi : total:m2265_9, partial:m2266_8 -# 2263| v2263_5(void) = ReturnVoid : -# 2263| v2263_6(void) = AliasedUse : ~m2266_6 -# 2263| v2263_7(void) = ExitFunction : - -# 2268| void vacuous_destructor_call::vacuous_destructor_call() -# 2268| Block 0 -# 2268| v2268_1(void) = EnterFunction : -# 2268| m2268_2(unknown) = AliasedDefinition : -# 2268| m2268_3(unknown) = InitializeNonLocal : -# 2268| m2268_4(unknown) = Chi : total:m2268_2, partial:m2268_3 -# 2269| r2269_1(glval) = VariableAddress[i] : -# 2269| m2269_2(int) = Uninitialized[i] : &:r2269_1 -# 2270| r2270_1(glval) = FunctionAddress[call_destructor] : -# 2270| r2270_2(glval) = VariableAddress[i] : -# 2270| r2270_3(int &) = CopyValue : r2270_2 -# 2270| v2270_4(void) = Call[call_destructor] : func:r2270_1, 0:r2270_3 -# 2270| m2270_5(unknown) = ^CallSideEffect : ~m2268_4 -# 2270| m2270_6(unknown) = Chi : total:m2268_4, partial:m2270_5 -# 2270| v2270_7(void) = ^BufferReadSideEffect[0] : &:r2270_3, ~m2269_2 -# 2270| m2270_8(unknown) = ^BufferMayWriteSideEffect[0] : &:r2270_3 -# 2270| m2270_9(int) = Chi : total:m2269_2, partial:m2270_8 -# 2271| v2271_1(void) = NoOp : -# 2268| v2268_5(void) = ReturnVoid : -# 2268| v2268_6(void) = AliasedUse : ~m2270_6 -# 2268| v2268_7(void) = ExitFunction : - -# 2274| void TryCatchDestructors(bool) -# 2274| Block 0 -# 2274| v2274_1(void) = EnterFunction : -# 2274| m2274_2(unknown) = AliasedDefinition : -# 2274| m2274_3(unknown) = InitializeNonLocal : -# 2274| m2274_4(unknown) = Chi : total:m2274_2, partial:m2274_3 -# 2274| r2274_5(glval) = VariableAddress[b] : -# 2274| m2274_6(bool) = InitializeParameter[b] : &:r2274_5 -# 2276| r2276_1(glval) = VariableAddress[s] : -# 2276| m2276_2(String) = Uninitialized[s] : &:r2276_1 -# 2276| m2276_3(unknown) = Chi : total:m2274_4, partial:m2276_2 -# 2276| r2276_4(glval) = FunctionAddress[String] : -# 2276| v2276_5(void) = Call[String] : func:r2276_4, this:r2276_1 -# 2276| m2276_6(unknown) = ^CallSideEffect : ~m2276_3 -# 2276| m2276_7(unknown) = Chi : total:m2276_3, partial:m2276_6 -# 2276| m2276_8(String) = ^IndirectMayWriteSideEffect[-1] : &:r2276_1 -# 2276| m2276_9(unknown) = Chi : total:m2276_7, partial:m2276_8 +# 2252| Block 2 +# 2252| m2252_1(unknown) = Phi : from 0:~m2250_6, from 1:~m2251_7 +# 2252| v2252_2(void) = NoOp : +# 2252| r2252_3(glval) = VariableAddress[b] : +# 2252| r2252_4(glval) = FunctionAddress[~ClassWithDestructor] : +# 2252| v2252_5(void) = Call[~ClassWithDestructor] : func:r2252_4, this:r2252_3 +# 2252| m2252_6(unknown) = ^CallSideEffect : ~m2252_1 +# 2252| m2252_7(unknown) = Chi : total:m2252_1, partial:m2252_6 +# 2252| v2252_8(void) = ^IndirectReadSideEffect[-1] : &:r2252_3, m2250_8 +# 2252| m2252_9(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2252_3 +# 2252| m2252_10(ClassWithDestructor) = Chi : total:m2250_8, partial:m2252_9 +# 2252| r2252_11(glval) = VariableAddress[a] : +# 2252| r2252_12(glval) = FunctionAddress[~ClassWithDestructor] : +# 2252| v2252_13(void) = Call[~ClassWithDestructor] : func:r2252_12, this:r2252_11 +# 2252| m2252_14(unknown) = ^CallSideEffect : ~m2252_7 +# 2252| m2252_15(unknown) = Chi : total:m2252_7, partial:m2252_14 +# 2252| v2252_16(void) = ^IndirectReadSideEffect[-1] : &:r2252_11, m2249_8 +# 2252| m2252_17(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2252_11 +# 2252| m2252_18(ClassWithDestructor) = Chi : total:m2249_8, partial:m2252_17 +# 2248| v2248_5(void) = ReturnVoid : +# 2248| v2248_6(void) = AliasedUse : ~m2252_15 +# 2248| v2248_7(void) = ExitFunction : + +# 2254| ClassWithDestructor global_class_with_destructor +# 2254| Block 0 +# 2254| v2254_1(void) = EnterFunction : +# 2254| m2254_2(unknown) = AliasedDefinition : +# 2254| r2254_3(glval) = VariableAddress[global_class_with_destructor] : +# 2254| r2254_4(glval) = FunctionAddress[ClassWithDestructor] : +# 2254| v2254_5(void) = Call[ClassWithDestructor] : func:r2254_4, this:r2254_3 +# 2254| m2254_6(unknown) = ^CallSideEffect : ~m2254_2 +# 2254| m2254_7(unknown) = Chi : total:m2254_2, partial:m2254_6 +# 2254| m2254_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2254_3 +# 2254| m2254_9(unknown) = Chi : total:m2254_7, partial:m2254_8 +# 2254| v2254_10(void) = ReturnVoid : +# 2254| v2254_11(void) = AliasedUse : ~m2254_9 +# 2254| v2254_12(void) = ExitFunction : + +# 2258| ClassWithDestructor& vacuous_destructor_call::get(ClassWithDestructor&) +# 2258| Block 0 +# 2258| v2258_1(void) = EnterFunction : +# 2258| m2258_2(unknown) = AliasedDefinition : +# 2258| m2258_3(unknown) = InitializeNonLocal : +# 2258| m2258_4(unknown) = Chi : total:m2258_2, partial:m2258_3 +# 2258| r2258_5(glval) = VariableAddress[t] : +# 2258| m2258_6(ClassWithDestructor &) = InitializeParameter[t] : &:r2258_5 +# 2258| r2258_7(ClassWithDestructor &) = Load[t] : &:r2258_5, m2258_6 +# 2258| m2258_8(unknown) = InitializeIndirection[t] : &:r2258_7 +# 2258| r2258_9(glval) = VariableAddress[#return] : +# 2258| r2258_10(glval) = VariableAddress[t] : +# 2258| r2258_11(ClassWithDestructor &) = Load[t] : &:r2258_10, m2258_6 +# 2258| r2258_12(glval) = CopyValue : r2258_11 +# 2258| r2258_13(ClassWithDestructor &) = CopyValue : r2258_12 +# 2258| m2258_14(ClassWithDestructor &) = Store[#return] : &:r2258_9, r2258_13 +# 2258| v2258_15(void) = ReturnIndirection[t] : &:r2258_7, m2258_8 +# 2258| r2258_16(glval) = VariableAddress[#return] : +# 2258| v2258_17(void) = ReturnValue : &:r2258_16, m2258_14 +# 2258| v2258_18(void) = AliasedUse : m2258_3 +# 2258| v2258_19(void) = ExitFunction : + +# 2258| int& vacuous_destructor_call::get(int&) +# 2258| Block 0 +# 2258| v2258_1(void) = EnterFunction : +# 2258| m2258_2(unknown) = AliasedDefinition : +# 2258| m2258_3(unknown) = InitializeNonLocal : +# 2258| m2258_4(unknown) = Chi : total:m2258_2, partial:m2258_3 +# 2258| r2258_5(glval) = VariableAddress[t] : +# 2258| m2258_6(int &) = InitializeParameter[t] : &:r2258_5 +# 2258| r2258_7(int &) = Load[t] : &:r2258_5, m2258_6 +# 2258| m2258_8(unknown) = InitializeIndirection[t] : &:r2258_7 +# 2258| r2258_9(glval) = VariableAddress[#return] : +# 2258| r2258_10(glval) = VariableAddress[t] : +# 2258| r2258_11(int &) = Load[t] : &:r2258_10, m2258_6 +# 2258| r2258_12(glval) = CopyValue : r2258_11 +# 2258| r2258_13(int &) = CopyValue : r2258_12 +# 2258| m2258_14(int &) = Store[#return] : &:r2258_9, r2258_13 +# 2258| v2258_15(void) = ReturnIndirection[t] : &:r2258_7, m2258_8 +# 2258| r2258_16(glval) = VariableAddress[#return] : +# 2258| v2258_17(void) = ReturnValue : &:r2258_16, m2258_14 +# 2258| v2258_18(void) = AliasedUse : m2258_3 +# 2258| v2258_19(void) = ExitFunction : + +# 2261| void vacuous_destructor_call::call_destructor(ClassWithDestructor&) +# 2261| Block 0 +# 2261| v2261_1(void) = EnterFunction : +# 2261| m2261_2(unknown) = AliasedDefinition : +# 2261| m2261_3(unknown) = InitializeNonLocal : +# 2261| m2261_4(unknown) = Chi : total:m2261_2, partial:m2261_3 +# 2261| r2261_5(glval) = VariableAddress[t] : +# 2261| m2261_6(ClassWithDestructor &) = InitializeParameter[t] : &:r2261_5 +# 2261| r2261_7(ClassWithDestructor &) = Load[t] : &:r2261_5, m2261_6 +# 2261| m2261_8(unknown) = InitializeIndirection[t] : &:r2261_7 +# 2262| r2262_1(glval) = FunctionAddress[get] : +# 2262| r2262_2(glval) = VariableAddress[t] : +# 2262| r2262_3(ClassWithDestructor &) = Load[t] : &:r2262_2, m2261_6 +# 2262| r2262_4(glval) = CopyValue : r2262_3 +# 2262| r2262_5(ClassWithDestructor &) = CopyValue : r2262_4 +# 2262| r2262_6(ClassWithDestructor &) = Call[get] : func:r2262_1, 0:r2262_5 +# 2262| m2262_7(unknown) = ^CallSideEffect : ~m2261_4 +# 2262| m2262_8(unknown) = Chi : total:m2261_4, partial:m2262_7 +# 2262| v2262_9(void) = ^BufferReadSideEffect[0] : &:r2262_5, ~m2261_8 +# 2262| m2262_10(unknown) = ^BufferMayWriteSideEffect[0] : &:r2262_5 +# 2262| m2262_11(unknown) = Chi : total:m2261_8, partial:m2262_10 +# 2262| r2262_12(glval) = CopyValue : r2262_6 +# 2262| r2262_13(glval) = FunctionAddress[~ClassWithDestructor] : +# 2262| v2262_14(void) = Call[~ClassWithDestructor] : func:r2262_13 +# 2262| m2262_15(unknown) = ^CallSideEffect : ~m2262_8 +# 2262| m2262_16(unknown) = Chi : total:m2262_8, partial:m2262_15 +# 2262| v2262_17(void) = ^IndirectReadSideEffect[-1] : &:r2262_12, ~m2262_11 +# 2262| m2262_18(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2262_12 +# 2262| m2262_19(unknown) = Chi : total:m2262_11, partial:m2262_18 +# 2263| v2263_1(void) = NoOp : +# 2261| v2261_9(void) = ReturnIndirection[t] : &:r2261_7, m2262_19 +# 2261| v2261_10(void) = ReturnVoid : +# 2261| v2261_11(void) = AliasedUse : ~m2262_16 +# 2261| v2261_12(void) = ExitFunction : + +# 2261| void vacuous_destructor_call::call_destructor(int&) +# 2261| Block 0 +# 2261| v2261_1(void) = EnterFunction : +# 2261| m2261_2(unknown) = AliasedDefinition : +# 2261| m2261_3(unknown) = InitializeNonLocal : +# 2261| m2261_4(unknown) = Chi : total:m2261_2, partial:m2261_3 +# 2261| r2261_5(glval) = VariableAddress[t] : +# 2261| m2261_6(int &) = InitializeParameter[t] : &:r2261_5 +# 2261| r2261_7(int &) = Load[t] : &:r2261_5, m2261_6 +# 2261| m2261_8(unknown) = InitializeIndirection[t] : &:r2261_7 +# 2262| r2262_1(glval) = FunctionAddress[get] : +# 2262| r2262_2(glval) = VariableAddress[t] : +# 2262| r2262_3(int &) = Load[t] : &:r2262_2, m2261_6 +# 2262| r2262_4(glval) = CopyValue : r2262_3 +# 2262| r2262_5(int &) = CopyValue : r2262_4 +# 2262| r2262_6(int &) = Call[get] : func:r2262_1, 0:r2262_5 +# 2262| m2262_7(unknown) = ^CallSideEffect : ~m2261_4 +# 2262| m2262_8(unknown) = Chi : total:m2261_4, partial:m2262_7 +# 2262| v2262_9(void) = ^BufferReadSideEffect[0] : &:r2262_5, ~m2261_8 +# 2262| m2262_10(unknown) = ^BufferMayWriteSideEffect[0] : &:r2262_5 +# 2262| m2262_11(unknown) = Chi : total:m2261_8, partial:m2262_10 +# 2262| r2262_12(glval) = CopyValue : r2262_6 +# 2263| v2263_1(void) = NoOp : +# 2261| v2261_9(void) = ReturnIndirection[t] : &:r2261_7, m2262_11 +# 2261| v2261_10(void) = ReturnVoid : +# 2261| v2261_11(void) = AliasedUse : ~m2262_8 +# 2261| v2261_12(void) = ExitFunction : + +# 2265| void vacuous_destructor_call::non_vacuous_destructor_call() +# 2265| Block 0 +# 2265| v2265_1(void) = EnterFunction : +# 2265| m2265_2(unknown) = AliasedDefinition : +# 2265| m2265_3(unknown) = InitializeNonLocal : +# 2265| m2265_4(unknown) = Chi : total:m2265_2, partial:m2265_3 +# 2266| r2266_1(glval) = VariableAddress[c] : +# 2266| m2266_2(ClassWithDestructor) = Uninitialized[c] : &:r2266_1 +# 2266| r2266_3(glval) = FunctionAddress[ClassWithDestructor] : +# 2266| v2266_4(void) = Call[ClassWithDestructor] : func:r2266_3, this:r2266_1 +# 2266| m2266_5(unknown) = ^CallSideEffect : ~m2265_4 +# 2266| m2266_6(unknown) = Chi : total:m2265_4, partial:m2266_5 +# 2266| m2266_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2266_1 +# 2266| m2266_8(ClassWithDestructor) = Chi : total:m2266_2, partial:m2266_7 +# 2267| r2267_1(glval) = FunctionAddress[call_destructor] : +# 2267| r2267_2(glval) = VariableAddress[c] : +# 2267| r2267_3(ClassWithDestructor &) = CopyValue : r2267_2 +# 2267| v2267_4(void) = Call[call_destructor] : func:r2267_1, 0:r2267_3 +# 2267| m2267_5(unknown) = ^CallSideEffect : ~m2266_6 +# 2267| m2267_6(unknown) = Chi : total:m2266_6, partial:m2267_5 +# 2267| v2267_7(void) = ^BufferReadSideEffect[0] : &:r2267_3, ~m2266_8 +# 2267| m2267_8(unknown) = ^BufferMayWriteSideEffect[0] : &:r2267_3 +# 2267| m2267_9(ClassWithDestructor) = Chi : total:m2266_8, partial:m2267_8 +# 2268| v2268_1(void) = NoOp : +# 2268| r2268_2(glval) = VariableAddress[c] : +# 2268| r2268_3(glval) = FunctionAddress[~ClassWithDestructor] : +# 2268| v2268_4(void) = Call[~ClassWithDestructor] : func:r2268_3, this:r2268_2 +# 2268| m2268_5(unknown) = ^CallSideEffect : ~m2267_6 +# 2268| m2268_6(unknown) = Chi : total:m2267_6, partial:m2268_5 +# 2268| v2268_7(void) = ^IndirectReadSideEffect[-1] : &:r2268_2, m2267_9 +# 2268| m2268_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2268_2 +# 2268| m2268_9(ClassWithDestructor) = Chi : total:m2267_9, partial:m2268_8 +# 2265| v2265_5(void) = ReturnVoid : +# 2265| v2265_6(void) = AliasedUse : ~m2268_6 +# 2265| v2265_7(void) = ExitFunction : + +# 2270| void vacuous_destructor_call::vacuous_destructor_call() +# 2270| Block 0 +# 2270| v2270_1(void) = EnterFunction : +# 2270| m2270_2(unknown) = AliasedDefinition : +# 2270| m2270_3(unknown) = InitializeNonLocal : +# 2270| m2270_4(unknown) = Chi : total:m2270_2, partial:m2270_3 +# 2271| r2271_1(glval) = VariableAddress[i] : +# 2271| m2271_2(int) = Uninitialized[i] : &:r2271_1 +# 2272| r2272_1(glval) = FunctionAddress[call_destructor] : +# 2272| r2272_2(glval) = VariableAddress[i] : +# 2272| r2272_3(int &) = CopyValue : r2272_2 +# 2272| v2272_4(void) = Call[call_destructor] : func:r2272_1, 0:r2272_3 +# 2272| m2272_5(unknown) = ^CallSideEffect : ~m2270_4 +# 2272| m2272_6(unknown) = Chi : total:m2270_4, partial:m2272_5 +# 2272| v2272_7(void) = ^BufferReadSideEffect[0] : &:r2272_3, ~m2271_2 +# 2272| m2272_8(unknown) = ^BufferMayWriteSideEffect[0] : &:r2272_3 +# 2272| m2272_9(int) = Chi : total:m2271_2, partial:m2272_8 +# 2273| v2273_1(void) = NoOp : +# 2270| v2270_5(void) = ReturnVoid : +# 2270| v2270_6(void) = AliasedUse : ~m2272_6 +# 2270| v2270_7(void) = ExitFunction : + +# 2276| void TryCatchDestructors(bool) +# 2276| Block 0 +# 2276| v2276_1(void) = EnterFunction : +# 2276| m2276_2(unknown) = AliasedDefinition : +# 2276| m2276_3(unknown) = InitializeNonLocal : +# 2276| m2276_4(unknown) = Chi : total:m2276_2, partial:m2276_3 +# 2276| r2276_5(glval) = VariableAddress[b] : +# 2276| m2276_6(bool) = InitializeParameter[b] : &:r2276_5 +# 2278| r2278_1(glval) = VariableAddress[s] : +# 2278| m2278_2(String) = Uninitialized[s] : &:r2278_1 +# 2278| m2278_3(unknown) = Chi : total:m2276_4, partial:m2278_2 +# 2278| r2278_4(glval) = FunctionAddress[String] : +# 2278| v2278_5(void) = Call[String] : func:r2278_4, this:r2278_1 +# 2278| m2278_6(unknown) = ^CallSideEffect : ~m2278_3 +# 2278| m2278_7(unknown) = Chi : total:m2278_3, partial:m2278_6 +# 2278| m2278_8(String) = ^IndirectMayWriteSideEffect[-1] : &:r2278_1 +# 2278| m2278_9(unknown) = Chi : total:m2278_7, partial:m2278_8 #-----| C++ Exception -> Block 7 #-----| Goto -> Block 3 -# 2274| Block 1 -# 2274| m2274_7(unknown) = Phi : from 2:~m2274_10, from 12:~m2290_1 -# 2274| v2274_8(void) = AliasedUse : ~m2274_7 -# 2274| v2274_9(void) = ExitFunction : +# 2276| Block 1 +# 2276| m2276_7(unknown) = Phi : from 2:~m2276_10, from 12:~m2292_1 +# 2276| v2276_8(void) = AliasedUse : ~m2276_7 +# 2276| v2276_9(void) = ExitFunction : -# 2274| Block 2 -# 2274| m2274_10(unknown) = Phi : from 8:~m2283_12, from 11:~m2282_1 -# 2274| v2274_11(void) = Unwind : +# 2276| Block 2 +# 2276| m2276_10(unknown) = Phi : from 8:~m2285_12, from 11:~m2284_1 +# 2276| v2276_11(void) = Unwind : #-----| Goto -> Block 1 -# 2277| Block 3 -# 2277| r2277_1(glval) = VariableAddress[b] : -# 2277| r2277_2(bool) = Load[b] : &:r2277_1, m2274_6 -# 2277| v2277_3(void) = ConditionalBranch : r2277_2 +# 2279| Block 3 +# 2279| r2279_1(glval) = VariableAddress[b] : +# 2279| r2279_2(bool) = Load[b] : &:r2279_1, m2276_6 +# 2279| v2279_3(void) = ConditionalBranch : r2279_2 #-----| False -> Block 5 #-----| True -> Block 4 -# 2278| Block 4 -# 2278| r2278_1(glval) = VariableAddress[#throw2278:7] : -# 2278| r2278_2(glval) = StringConstant["string literal"] : -# 2278| r2278_3(char *) = Convert : r2278_2 -# 2278| m2278_4(char *) = Store[#throw2278:7] : &:r2278_1, r2278_3 -# 2278| v2278_5(void) = ThrowValue : &:r2278_1, m2278_4 -# 2281| r2281_1(glval) = VariableAddress[s] : -# 2281| r2281_2(glval) = FunctionAddress[~String] : -# 2281| v2281_3(void) = Call[~String] : func:r2281_2, this:r2281_1 -# 2281| m2281_4(unknown) = ^CallSideEffect : ~m2276_9 -# 2281| m2281_5(unknown) = Chi : total:m2276_9, partial:m2281_4 -# 2281| v2281_6(void) = ^IndirectReadSideEffect[-1] : &:r2281_1, ~m2281_5 -# 2281| m2281_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2281_1 -# 2281| m2281_8(unknown) = Chi : total:m2281_5, partial:m2281_7 +# 2280| Block 4 +# 2280| r2280_1(glval) = VariableAddress[#throw2280:7] : +# 2280| r2280_2(glval) = StringConstant["string literal"] : +# 2280| r2280_3(char *) = Convert : r2280_2 +# 2280| m2280_4(char *) = Store[#throw2280:7] : &:r2280_1, r2280_3 +# 2280| v2280_5(void) = ThrowValue : &:r2280_1, m2280_4 +# 2283| r2283_1(glval) = VariableAddress[s] : +# 2283| r2283_2(glval) = FunctionAddress[~String] : +# 2283| v2283_3(void) = Call[~String] : func:r2283_2, this:r2283_1 +# 2283| m2283_4(unknown) = ^CallSideEffect : ~m2278_9 +# 2283| m2283_5(unknown) = Chi : total:m2278_9, partial:m2283_4 +# 2283| v2283_6(void) = ^IndirectReadSideEffect[-1] : &:r2283_1, ~m2283_5 +# 2283| m2283_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2283_1 +# 2283| m2283_8(unknown) = Chi : total:m2283_5, partial:m2283_7 #-----| C++ Exception -> Block 7 -# 2280| Block 5 -# 2280| r2280_1(glval) = VariableAddress[s2] : -# 2280| m2280_2(String) = Uninitialized[s2] : &:r2280_1 -# 2280| m2280_3(unknown) = Chi : total:m2276_9, partial:m2280_2 -# 2280| r2280_4(glval) = FunctionAddress[String] : -# 2280| v2280_5(void) = Call[String] : func:r2280_4, this:r2280_1 -# 2280| m2280_6(unknown) = ^CallSideEffect : ~m2280_3 -# 2280| m2280_7(unknown) = Chi : total:m2280_3, partial:m2280_6 -# 2280| m2280_8(String) = ^IndirectMayWriteSideEffect[-1] : &:r2280_1 -# 2280| m2280_9(unknown) = Chi : total:m2280_7, partial:m2280_8 +# 2282| Block 5 +# 2282| r2282_1(glval) = VariableAddress[s2] : +# 2282| m2282_2(String) = Uninitialized[s2] : &:r2282_1 +# 2282| m2282_3(unknown) = Chi : total:m2278_9, partial:m2282_2 +# 2282| r2282_4(glval) = FunctionAddress[String] : +# 2282| v2282_5(void) = Call[String] : func:r2282_4, this:r2282_1 +# 2282| m2282_6(unknown) = ^CallSideEffect : ~m2282_3 +# 2282| m2282_7(unknown) = Chi : total:m2282_3, partial:m2282_6 +# 2282| m2282_8(String) = ^IndirectMayWriteSideEffect[-1] : &:r2282_1 +# 2282| m2282_9(unknown) = Chi : total:m2282_7, partial:m2282_8 #-----| C++ Exception -> Block 7 #-----| Goto -> Block 6 -# 2281| Block 6 -# 2281| r2281_9(glval) = VariableAddress[s2] : -# 2281| r2281_10(glval) = FunctionAddress[~String] : -# 2281| v2281_11(void) = Call[~String] : func:r2281_10, this:r2281_9 -# 2281| m2281_12(unknown) = ^CallSideEffect : ~m2280_9 -# 2281| m2281_13(unknown) = Chi : total:m2280_9, partial:m2281_12 -# 2281| v2281_14(void) = ^IndirectReadSideEffect[-1] : &:r2281_9, ~m2281_13 -# 2281| m2281_15(String) = ^IndirectMayWriteSideEffect[-1] : &:r2281_9 -# 2281| m2281_16(unknown) = Chi : total:m2281_13, partial:m2281_15 -# 2281| r2281_17(glval) = VariableAddress[s] : -# 2281| r2281_18(glval) = FunctionAddress[~String] : -# 2281| v2281_19(void) = Call[~String] : func:r2281_18, this:r2281_17 -# 2281| m2281_20(unknown) = ^CallSideEffect : ~m2281_16 -# 2281| m2281_21(unknown) = Chi : total:m2281_16, partial:m2281_20 -# 2281| v2281_22(void) = ^IndirectReadSideEffect[-1] : &:r2281_17, ~m2281_21 -# 2281| m2281_23(String) = ^IndirectMayWriteSideEffect[-1] : &:r2281_17 -# 2281| m2281_24(unknown) = Chi : total:m2281_21, partial:m2281_23 +# 2283| Block 6 +# 2283| r2283_9(glval) = VariableAddress[s2] : +# 2283| r2283_10(glval) = FunctionAddress[~String] : +# 2283| v2283_11(void) = Call[~String] : func:r2283_10, this:r2283_9 +# 2283| m2283_12(unknown) = ^CallSideEffect : ~m2282_9 +# 2283| m2283_13(unknown) = Chi : total:m2282_9, partial:m2283_12 +# 2283| v2283_14(void) = ^IndirectReadSideEffect[-1] : &:r2283_9, ~m2283_13 +# 2283| m2283_15(String) = ^IndirectMayWriteSideEffect[-1] : &:r2283_9 +# 2283| m2283_16(unknown) = Chi : total:m2283_13, partial:m2283_15 +# 2283| r2283_17(glval) = VariableAddress[s] : +# 2283| r2283_18(glval) = FunctionAddress[~String] : +# 2283| v2283_19(void) = Call[~String] : func:r2283_18, this:r2283_17 +# 2283| m2283_20(unknown) = ^CallSideEffect : ~m2283_16 +# 2283| m2283_21(unknown) = Chi : total:m2283_16, partial:m2283_20 +# 2283| v2283_22(void) = ^IndirectReadSideEffect[-1] : &:r2283_17, ~m2283_21 +# 2283| m2283_23(String) = ^IndirectMayWriteSideEffect[-1] : &:r2283_17 +# 2283| m2283_24(unknown) = Chi : total:m2283_21, partial:m2283_23 #-----| Goto -> Block 12 -# 2282| Block 7 -# 2282| m2282_1(unknown) = Phi : from 0:~m2276_9, from 4:~m2281_8, from 5:~m2280_9 -# 2282| v2282_2(void) = CatchByType[const char *] : +# 2284| Block 7 +# 2284| m2284_1(unknown) = Phi : from 0:~m2278_9, from 4:~m2283_8, from 5:~m2282_9 +# 2284| v2284_2(void) = CatchByType[const char *] : #-----| C++ Exception -> Block 9 #-----| Goto -> Block 8 -# 2282| Block 8 -# 2282| r2282_3(glval) = VariableAddress[s] : -# 2282| m2282_4(char *) = InitializeParameter[s] : &:r2282_3 -# 2282| r2282_5(char *) = Load[s] : &:r2282_3, m2282_4 -# 2282| m2282_6(unknown) = InitializeIndirection[s] : &:r2282_5 -# 2282| m2282_7(unknown) = Chi : total:m2282_1, partial:m2282_6 -# 2283| r2283_1(glval) = VariableAddress[#throw2283:5] : -# 2283| m2283_2(String) = Uninitialized[#throw2283:5] : &:r2283_1 -# 2283| m2283_3(unknown) = Chi : total:m2282_7, partial:m2283_2 -# 2283| r2283_4(glval) = FunctionAddress[String] : -# 2283| r2283_5(glval) = VariableAddress[s] : -# 2283| r2283_6(char *) = Load[s] : &:r2283_5, m2282_4 -# 2283| v2283_7(void) = Call[String] : func:r2283_4, this:r2283_1, 0:r2283_6 -# 2283| m2283_8(unknown) = ^CallSideEffect : ~m2283_3 -# 2283| m2283_9(unknown) = Chi : total:m2283_3, partial:m2283_8 -# 2283| v2283_10(void) = ^BufferReadSideEffect[0] : &:r2283_6, ~m2283_9 -# 2283| m2283_11(String) = ^IndirectMayWriteSideEffect[-1] : &:r2283_1 -# 2283| m2283_12(unknown) = Chi : total:m2283_9, partial:m2283_11 -# 2283| v2283_13(void) = ThrowValue : &:r2283_1, ~m2283_12 +# 2284| Block 8 +# 2284| r2284_3(glval) = VariableAddress[s] : +# 2284| m2284_4(char *) = InitializeParameter[s] : &:r2284_3 +# 2284| r2284_5(char *) = Load[s] : &:r2284_3, m2284_4 +# 2284| m2284_6(unknown) = InitializeIndirection[s] : &:r2284_5 +# 2284| m2284_7(unknown) = Chi : total:m2284_1, partial:m2284_6 +# 2285| r2285_1(glval) = VariableAddress[#throw2285:5] : +# 2285| m2285_2(String) = Uninitialized[#throw2285:5] : &:r2285_1 +# 2285| m2285_3(unknown) = Chi : total:m2284_7, partial:m2285_2 +# 2285| r2285_4(glval) = FunctionAddress[String] : +# 2285| r2285_5(glval) = VariableAddress[s] : +# 2285| r2285_6(char *) = Load[s] : &:r2285_5, m2284_4 +# 2285| v2285_7(void) = Call[String] : func:r2285_4, this:r2285_1, 0:r2285_6 +# 2285| m2285_8(unknown) = ^CallSideEffect : ~m2285_3 +# 2285| m2285_9(unknown) = Chi : total:m2285_3, partial:m2285_8 +# 2285| v2285_10(void) = ^BufferReadSideEffect[0] : &:r2285_6, ~m2285_9 +# 2285| m2285_11(String) = ^IndirectMayWriteSideEffect[-1] : &:r2285_1 +# 2285| m2285_12(unknown) = Chi : total:m2285_9, partial:m2285_11 +# 2285| v2285_13(void) = ThrowValue : &:r2285_1, ~m2285_12 #-----| C++ Exception -> Block 2 -# 2285| Block 9 -# 2285| v2285_1(void) = CatchByType[const String &] : +# 2287| Block 9 +# 2287| v2287_1(void) = CatchByType[const String &] : #-----| C++ Exception -> Block 11 #-----| Goto -> Block 10 -# 2285| Block 10 -# 2285| r2285_2(glval) = VariableAddress[e] : -# 2285| m2285_3(String &) = InitializeParameter[e] : &:r2285_2 -# 2285| r2285_4(String &) = Load[e] : &:r2285_2, m2285_3 -# 2285| m2285_5(unknown) = InitializeIndirection[e] : &:r2285_4 -# 2285| v2285_6(void) = NoOp : +# 2287| Block 10 +# 2287| r2287_2(glval) = VariableAddress[e] : +# 2287| m2287_3(String &) = InitializeParameter[e] : &:r2287_2 +# 2287| r2287_4(String &) = Load[e] : &:r2287_2, m2287_3 +# 2287| m2287_5(unknown) = InitializeIndirection[e] : &:r2287_4 +# 2287| v2287_6(void) = NoOp : #-----| Goto -> Block 12 -# 2287| Block 11 -# 2287| v2287_1(void) = CatchAny : -# 2288| v2288_1(void) = ReThrow : +# 2289| Block 11 +# 2289| v2289_1(void) = CatchAny : +# 2290| v2290_1(void) = ReThrow : #-----| C++ Exception -> Block 2 -# 2290| Block 12 -# 2290| m2290_1(unknown) = Phi : from 6:~m2281_24, from 10:~m2282_1 -# 2290| v2290_2(void) = NoOp : -# 2274| v2274_12(void) = ReturnVoid : +# 2292| Block 12 +# 2292| m2292_1(unknown) = Phi : from 6:~m2283_24, from 10:~m2284_1 +# 2292| v2292_2(void) = NoOp : +# 2276| v2276_12(void) = ReturnVoid : #-----| Goto -> Block 1 -# 2292| void IfDestructors(bool) -# 2292| Block 0 -# 2292| v2292_1(void) = EnterFunction : -# 2292| m2292_2(unknown) = AliasedDefinition : -# 2292| m2292_3(unknown) = InitializeNonLocal : -# 2292| m2292_4(unknown) = Chi : total:m2292_2, partial:m2292_3 -# 2292| r2292_5(glval) = VariableAddress[b] : -# 2292| m2292_6(bool) = InitializeParameter[b] : &:r2292_5 -# 2293| r2293_1(glval) = VariableAddress[s1] : -# 2293| m2293_2(String) = Uninitialized[s1] : &:r2293_1 -# 2293| m2293_3(unknown) = Chi : total:m2292_4, partial:m2293_2 -# 2293| r2293_4(glval) = FunctionAddress[String] : -# 2293| v2293_5(void) = Call[String] : func:r2293_4, this:r2293_1 -# 2293| m2293_6(unknown) = ^CallSideEffect : ~m2293_3 -# 2293| m2293_7(unknown) = Chi : total:m2293_3, partial:m2293_6 -# 2293| m2293_8(String) = ^IndirectMayWriteSideEffect[-1] : &:r2293_1 -# 2293| m2293_9(unknown) = Chi : total:m2293_7, partial:m2293_8 -# 2294| r2294_1(glval) = VariableAddress[b] : -# 2294| r2294_2(bool) = Load[b] : &:r2294_1, m2292_6 -# 2294| v2294_3(void) = ConditionalBranch : r2294_2 -#-----| False -> Block 2 -#-----| True -> Block 1 - -# 2295| Block 1 -# 2295| r2295_1(glval) = VariableAddress[s2] : -# 2295| m2295_2(String) = Uninitialized[s2] : &:r2295_1 -# 2295| m2295_3(unknown) = Chi : total:m2293_9, partial:m2295_2 +# 2294| void IfDestructors(bool) +# 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 +# 2294| r2294_5(glval) = VariableAddress[b] : +# 2294| m2294_6(bool) = InitializeParameter[b] : &:r2294_5 +# 2295| r2295_1(glval) = VariableAddress[s1] : +# 2295| m2295_2(String) = Uninitialized[s1] : &:r2295_1 +# 2295| m2295_3(unknown) = Chi : total:m2294_4, partial:m2295_2 # 2295| r2295_4(glval) = FunctionAddress[String] : # 2295| v2295_5(void) = Call[String] : func:r2295_4, this:r2295_1 # 2295| m2295_6(unknown) = ^CallSideEffect : ~m2295_3 # 2295| m2295_7(unknown) = Chi : total:m2295_3, partial:m2295_6 # 2295| m2295_8(String) = ^IndirectMayWriteSideEffect[-1] : &:r2295_1 # 2295| m2295_9(unknown) = Chi : total:m2295_7, partial:m2295_8 -# 2296| r2296_1(glval) = VariableAddress[s2] : -# 2296| r2296_2(glval) = FunctionAddress[~String] : -# 2296| v2296_3(void) = Call[~String] : func:r2296_2, this:r2296_1 -# 2296| m2296_4(unknown) = ^CallSideEffect : ~m2295_9 -# 2296| m2296_5(unknown) = Chi : total:m2295_9, partial:m2296_4 -# 2296| v2296_6(void) = ^IndirectReadSideEffect[-1] : &:r2296_1, ~m2296_5 -# 2296| m2296_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2296_1 -# 2296| m2296_8(unknown) = Chi : total:m2296_5, partial:m2296_7 -#-----| Goto -> Block 3 +# 2296| r2296_1(glval) = VariableAddress[b] : +# 2296| r2296_2(bool) = Load[b] : &:r2296_1, m2294_6 +# 2296| v2296_3(void) = ConditionalBranch : r2296_2 +#-----| False -> Block 2 +#-----| True -> Block 1 -# 2297| Block 2 -# 2297| r2297_1(glval) = VariableAddress[s3] : -# 2297| m2297_2(String) = Uninitialized[s3] : &:r2297_1 -# 2297| m2297_3(unknown) = Chi : total:m2293_9, partial:m2297_2 +# 2297| Block 1 +# 2297| r2297_1(glval) = VariableAddress[s2] : +# 2297| m2297_2(String) = Uninitialized[s2] : &:r2297_1 +# 2297| m2297_3(unknown) = Chi : total:m2295_9, partial:m2297_2 # 2297| r2297_4(glval) = FunctionAddress[String] : # 2297| v2297_5(void) = Call[String] : func:r2297_4, this:r2297_1 # 2297| m2297_6(unknown) = ^CallSideEffect : ~m2297_3 # 2297| m2297_7(unknown) = Chi : total:m2297_3, partial:m2297_6 # 2297| m2297_8(String) = ^IndirectMayWriteSideEffect[-1] : &:r2297_1 # 2297| m2297_9(unknown) = Chi : total:m2297_7, partial:m2297_8 -# 2298| r2298_1(glval) = VariableAddress[s3] : +# 2298| r2298_1(glval) = VariableAddress[s2] : # 2298| r2298_2(glval) = FunctionAddress[~String] : # 2298| v2298_3(void) = Call[~String] : func:r2298_2, this:r2298_1 # 2298| m2298_4(unknown) = ^CallSideEffect : ~m2297_9 @@ -17492,438 +17542,438 @@ ir.cpp: # 2298| m2298_8(unknown) = Chi : total:m2298_5, partial:m2298_7 #-----| Goto -> Block 3 -# 2299| Block 3 -# 2299| m2299_1(unknown) = Phi : from 1:~m2296_8, from 2:~m2298_8 -# 2299| r2299_2(glval) = VariableAddress[s4] : -# 2299| m2299_3(String) = Uninitialized[s4] : &:r2299_2 -# 2299| m2299_4(unknown) = Chi : total:m2299_1, partial:m2299_3 -# 2299| r2299_5(glval) = FunctionAddress[String] : -# 2299| v2299_6(void) = Call[String] : func:r2299_5, this:r2299_2 -# 2299| m2299_7(unknown) = ^CallSideEffect : ~m2299_4 -# 2299| m2299_8(unknown) = Chi : total:m2299_4, partial:m2299_7 -# 2299| m2299_9(String) = ^IndirectMayWriteSideEffect[-1] : &:r2299_2 -# 2299| m2299_10(unknown) = Chi : total:m2299_8, partial:m2299_9 -# 2300| v2300_1(void) = NoOp : -# 2300| r2300_2(glval) = VariableAddress[s4] : -# 2300| r2300_3(glval) = FunctionAddress[~String] : -# 2300| v2300_4(void) = Call[~String] : func:r2300_3, this:r2300_2 -# 2300| m2300_5(unknown) = ^CallSideEffect : ~m2299_10 -# 2300| m2300_6(unknown) = Chi : total:m2299_10, partial:m2300_5 -# 2300| v2300_7(void) = ^IndirectReadSideEffect[-1] : &:r2300_2, ~m2300_6 -# 2300| m2300_8(String) = ^IndirectMayWriteSideEffect[-1] : &:r2300_2 -# 2300| m2300_9(unknown) = Chi : total:m2300_6, partial:m2300_8 -# 2300| r2300_10(glval) = VariableAddress[s1] : -# 2300| r2300_11(glval) = FunctionAddress[~String] : -# 2300| v2300_12(void) = Call[~String] : func:r2300_11, this:r2300_10 -# 2300| m2300_13(unknown) = ^CallSideEffect : ~m2300_9 -# 2300| m2300_14(unknown) = Chi : total:m2300_9, partial:m2300_13 -# 2300| v2300_15(void) = ^IndirectReadSideEffect[-1] : &:r2300_10, ~m2300_14 -# 2300| m2300_16(String) = ^IndirectMayWriteSideEffect[-1] : &:r2300_10 -# 2300| m2300_17(unknown) = Chi : total:m2300_14, partial:m2300_16 -# 2292| v2292_7(void) = ReturnVoid : -# 2292| v2292_8(void) = AliasedUse : ~m2300_14 -# 2292| v2292_9(void) = ExitFunction : - -# 2302| void ForDestructors() -# 2302| Block 0 -# 2302| v2302_1(void) = EnterFunction : -# 2302| m2302_2(unknown) = AliasedDefinition : -# 2302| m2302_3(unknown) = InitializeNonLocal : -# 2302| m2302_4(unknown) = Chi : total:m2302_2, partial:m2302_3 -# 2303| r2303_1(glval) = VariableAddress[c] : -# 2303| r2303_2(char) = Constant[97] : -# 2303| m2303_3(char) = Store[c] : &:r2303_1, r2303_2 -# 2304| r2304_1(glval) = VariableAddress[s] : -# 2304| m2304_2(String) = Uninitialized[s] : &:r2304_1 -# 2304| m2304_3(unknown) = Chi : total:m2302_4, partial:m2304_2 -# 2304| r2304_4(glval) = FunctionAddress[String] : -# 2304| r2304_5(glval) = StringConstant["hello"] : -# 2304| r2304_6(char *) = Convert : r2304_5 -# 2304| v2304_7(void) = Call[String] : func:r2304_4, this:r2304_1, 0:r2304_6 -# 2304| m2304_8(unknown) = ^CallSideEffect : ~m2304_3 -# 2304| m2304_9(unknown) = Chi : total:m2304_3, partial:m2304_8 -# 2304| v2304_10(void) = ^BufferReadSideEffect[0] : &:r2304_6, ~m2302_3 -# 2304| m2304_11(String) = ^IndirectMayWriteSideEffect[-1] : &:r2304_1 -# 2304| m2304_12(unknown) = Chi : total:m2304_9, partial:m2304_11 +# 2299| Block 2 +# 2299| r2299_1(glval) = VariableAddress[s3] : +# 2299| m2299_2(String) = Uninitialized[s3] : &:r2299_1 +# 2299| m2299_3(unknown) = Chi : total:m2295_9, partial:m2299_2 +# 2299| r2299_4(glval) = FunctionAddress[String] : +# 2299| v2299_5(void) = Call[String] : func:r2299_4, this:r2299_1 +# 2299| m2299_6(unknown) = ^CallSideEffect : ~m2299_3 +# 2299| m2299_7(unknown) = Chi : total:m2299_3, partial:m2299_6 +# 2299| m2299_8(String) = ^IndirectMayWriteSideEffect[-1] : &:r2299_1 +# 2299| m2299_9(unknown) = Chi : total:m2299_7, partial:m2299_8 +# 2300| r2300_1(glval) = VariableAddress[s3] : +# 2300| r2300_2(glval) = FunctionAddress[~String] : +# 2300| v2300_3(void) = Call[~String] : func:r2300_2, this:r2300_1 +# 2300| m2300_4(unknown) = ^CallSideEffect : ~m2299_9 +# 2300| m2300_5(unknown) = Chi : total:m2299_9, partial:m2300_4 +# 2300| v2300_6(void) = ^IndirectReadSideEffect[-1] : &:r2300_1, ~m2300_5 +# 2300| m2300_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2300_1 +# 2300| m2300_8(unknown) = Chi : total:m2300_5, partial:m2300_7 +#-----| Goto -> Block 3 + +# 2301| Block 3 +# 2301| m2301_1(unknown) = Phi : from 1:~m2298_8, from 2:~m2300_8 +# 2301| r2301_2(glval) = VariableAddress[s4] : +# 2301| m2301_3(String) = Uninitialized[s4] : &:r2301_2 +# 2301| m2301_4(unknown) = Chi : total:m2301_1, partial:m2301_3 +# 2301| r2301_5(glval) = FunctionAddress[String] : +# 2301| v2301_6(void) = Call[String] : func:r2301_5, this:r2301_2 +# 2301| m2301_7(unknown) = ^CallSideEffect : ~m2301_4 +# 2301| m2301_8(unknown) = Chi : total:m2301_4, partial:m2301_7 +# 2301| m2301_9(String) = ^IndirectMayWriteSideEffect[-1] : &:r2301_2 +# 2301| m2301_10(unknown) = Chi : total:m2301_8, partial:m2301_9 +# 2302| v2302_1(void) = NoOp : +# 2302| r2302_2(glval) = VariableAddress[s4] : +# 2302| r2302_3(glval) = FunctionAddress[~String] : +# 2302| v2302_4(void) = Call[~String] : func:r2302_3, this:r2302_2 +# 2302| m2302_5(unknown) = ^CallSideEffect : ~m2301_10 +# 2302| m2302_6(unknown) = Chi : total:m2301_10, partial:m2302_5 +# 2302| v2302_7(void) = ^IndirectReadSideEffect[-1] : &:r2302_2, ~m2302_6 +# 2302| m2302_8(String) = ^IndirectMayWriteSideEffect[-1] : &:r2302_2 +# 2302| m2302_9(unknown) = Chi : total:m2302_6, partial:m2302_8 +# 2302| r2302_10(glval) = VariableAddress[s1] : +# 2302| r2302_11(glval) = FunctionAddress[~String] : +# 2302| v2302_12(void) = Call[~String] : func:r2302_11, this:r2302_10 +# 2302| m2302_13(unknown) = ^CallSideEffect : ~m2302_9 +# 2302| m2302_14(unknown) = Chi : total:m2302_9, partial:m2302_13 +# 2302| v2302_15(void) = ^IndirectReadSideEffect[-1] : &:r2302_10, ~m2302_14 +# 2302| m2302_16(String) = ^IndirectMayWriteSideEffect[-1] : &:r2302_10 +# 2302| m2302_17(unknown) = Chi : total:m2302_14, partial:m2302_16 +# 2294| v2294_7(void) = ReturnVoid : +# 2294| v2294_8(void) = AliasedUse : ~m2302_14 +# 2294| v2294_9(void) = ExitFunction : + +# 2304| void ForDestructors() +# 2304| Block 0 +# 2304| v2304_1(void) = EnterFunction : +# 2304| m2304_2(unknown) = AliasedDefinition : +# 2304| m2304_3(unknown) = InitializeNonLocal : +# 2304| m2304_4(unknown) = Chi : total:m2304_2, partial:m2304_3 +# 2305| r2305_1(glval) = VariableAddress[c] : +# 2305| r2305_2(char) = Constant[97] : +# 2305| m2305_3(char) = Store[c] : &:r2305_1, r2305_2 +# 2306| r2306_1(glval) = VariableAddress[s] : +# 2306| m2306_2(String) = Uninitialized[s] : &:r2306_1 +# 2306| m2306_3(unknown) = Chi : total:m2304_4, partial:m2306_2 +# 2306| r2306_4(glval) = FunctionAddress[String] : +# 2306| r2306_5(glval) = StringConstant["hello"] : +# 2306| r2306_6(char *) = Convert : r2306_5 +# 2306| v2306_7(void) = Call[String] : func:r2306_4, this:r2306_1, 0:r2306_6 +# 2306| m2306_8(unknown) = ^CallSideEffect : ~m2306_3 +# 2306| m2306_9(unknown) = Chi : total:m2306_3, partial:m2306_8 +# 2306| v2306_10(void) = ^BufferReadSideEffect[0] : &:r2306_6, ~m2304_3 +# 2306| m2306_11(String) = ^IndirectMayWriteSideEffect[-1] : &:r2306_1 +# 2306| m2306_12(unknown) = Chi : total:m2306_9, partial:m2306_11 #-----| Goto -> Block 1 -# 2304| Block 1 -# 2304| m2304_13(unknown) = Phi : from 0:~m2304_12, from 2:~m2304_28 -# 2304| m2304_14(char) = Phi : from 0:m2303_3, from 2:m2304_30 -# 2304| r2304_15(glval) = VariableAddress[c] : -# 2304| r2304_16(char) = Load[c] : &:r2304_15, m2304_14 -# 2304| r2304_17(int) = Convert : r2304_16 -# 2304| r2304_18(int) = Constant[0] : -# 2304| r2304_19(bool) = CompareNE : r2304_17, r2304_18 -# 2304| v2304_20(void) = ConditionalBranch : r2304_19 +# 2306| Block 1 +# 2306| m2306_13(unknown) = Phi : from 0:~m2306_12, from 2:~m2306_28 +# 2306| m2306_14(char) = Phi : from 0:m2305_3, from 2:m2306_30 +# 2306| r2306_15(glval) = VariableAddress[c] : +# 2306| r2306_16(char) = Load[c] : &:r2306_15, m2306_14 +# 2306| r2306_17(int) = Convert : r2306_16 +# 2306| r2306_18(int) = Constant[0] : +# 2306| r2306_19(bool) = CompareNE : r2306_17, r2306_18 +# 2306| v2306_20(void) = ConditionalBranch : r2306_19 #-----| False -> Block 3 #-----| True -> Block 2 -# 2305| Block 2 -# 2305| r2305_1(glval) = VariableAddress[s2] : -# 2305| m2305_2(String) = Uninitialized[s2] : &:r2305_1 -# 2305| m2305_3(unknown) = Chi : total:m2304_13, partial:m2305_2 -# 2305| r2305_4(glval) = FunctionAddress[String] : -# 2305| v2305_5(void) = Call[String] : func:r2305_4, this:r2305_1 -# 2305| m2305_6(unknown) = ^CallSideEffect : ~m2305_3 -# 2305| m2305_7(unknown) = Chi : total:m2305_3, partial:m2305_6 -# 2305| m2305_8(String) = ^IndirectMayWriteSideEffect[-1] : &:r2305_1 -# 2305| m2305_9(unknown) = Chi : total:m2305_7, partial:m2305_8 -# 2306| r2306_1(glval) = VariableAddress[s2] : -# 2306| r2306_2(glval) = FunctionAddress[~String] : -# 2306| v2306_3(void) = Call[~String] : func:r2306_2, this:r2306_1 -# 2306| m2306_4(unknown) = ^CallSideEffect : ~m2305_9 -# 2306| m2306_5(unknown) = Chi : total:m2305_9, partial:m2306_4 -# 2306| v2306_6(void) = ^IndirectReadSideEffect[-1] : &:r2306_1, ~m2306_5 -# 2306| m2306_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2306_1 -# 2306| m2306_8(unknown) = Chi : total:m2306_5, partial:m2306_7 -# 2304| r2304_21(glval) = VariableAddress[s] : -# 2304| r2304_22(glval) = FunctionAddress[pop_back] : -# 2304| r2304_23(char) = Call[pop_back] : func:r2304_22, this:r2304_21 -# 2304| m2304_24(unknown) = ^CallSideEffect : ~m2306_8 -# 2304| m2304_25(unknown) = Chi : total:m2306_8, partial:m2304_24 -# 2304| v2304_26(void) = ^IndirectReadSideEffect[-1] : &:r2304_21, ~m2304_25 -# 2304| m2304_27(String) = ^IndirectMayWriteSideEffect[-1] : &:r2304_21 -# 2304| m2304_28(unknown) = Chi : total:m2304_25, partial:m2304_27 -# 2304| r2304_29(glval) = VariableAddress[c] : -# 2304| m2304_30(char) = Store[c] : &:r2304_29, r2304_23 +# 2307| Block 2 +# 2307| r2307_1(glval) = VariableAddress[s2] : +# 2307| m2307_2(String) = Uninitialized[s2] : &:r2307_1 +# 2307| m2307_3(unknown) = Chi : total:m2306_13, partial:m2307_2 +# 2307| r2307_4(glval) = FunctionAddress[String] : +# 2307| v2307_5(void) = Call[String] : func:r2307_4, this:r2307_1 +# 2307| m2307_6(unknown) = ^CallSideEffect : ~m2307_3 +# 2307| m2307_7(unknown) = Chi : total:m2307_3, partial:m2307_6 +# 2307| m2307_8(String) = ^IndirectMayWriteSideEffect[-1] : &:r2307_1 +# 2307| m2307_9(unknown) = Chi : total:m2307_7, partial:m2307_8 +# 2308| r2308_1(glval) = VariableAddress[s2] : +# 2308| r2308_2(glval) = FunctionAddress[~String] : +# 2308| v2308_3(void) = Call[~String] : func:r2308_2, this:r2308_1 +# 2308| m2308_4(unknown) = ^CallSideEffect : ~m2307_9 +# 2308| m2308_5(unknown) = Chi : total:m2307_9, partial:m2308_4 +# 2308| v2308_6(void) = ^IndirectReadSideEffect[-1] : &:r2308_1, ~m2308_5 +# 2308| m2308_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2308_1 +# 2308| m2308_8(unknown) = Chi : total:m2308_5, partial:m2308_7 +# 2306| r2306_21(glval) = VariableAddress[s] : +# 2306| r2306_22(glval) = FunctionAddress[pop_back] : +# 2306| r2306_23(char) = Call[pop_back] : func:r2306_22, this:r2306_21 +# 2306| m2306_24(unknown) = ^CallSideEffect : ~m2308_8 +# 2306| m2306_25(unknown) = Chi : total:m2308_8, partial:m2306_24 +# 2306| v2306_26(void) = ^IndirectReadSideEffect[-1] : &:r2306_21, ~m2306_25 +# 2306| m2306_27(String) = ^IndirectMayWriteSideEffect[-1] : &:r2306_21 +# 2306| m2306_28(unknown) = Chi : total:m2306_25, partial:m2306_27 +# 2306| r2306_29(glval) = VariableAddress[c] : +# 2306| m2306_30(char) = Store[c] : &:r2306_29, r2306_23 #-----| Goto (back edge) -> Block 1 -# 2304| Block 3 -# 2304| r2304_31(glval) = VariableAddress[s] : -# 2304| r2304_32(glval) = FunctionAddress[~String] : -# 2304| v2304_33(void) = Call[~String] : func:r2304_32, this:r2304_31 -# 2304| m2304_34(unknown) = ^CallSideEffect : ~m2304_13 -# 2304| m2304_35(unknown) = Chi : total:m2304_13, partial:m2304_34 -# 2304| v2304_36(void) = ^IndirectReadSideEffect[-1] : &:r2304_31, ~m2304_35 -# 2304| m2304_37(String) = ^IndirectMayWriteSideEffect[-1] : &:r2304_31 -# 2304| m2304_38(unknown) = Chi : total:m2304_35, partial:m2304_37 -# 2308| r2308_1(glval &&>) = VariableAddress[(__range)] : -# 2308| r2308_2(glval>) = VariableAddress[#temp2308:20] : -# 2308| m2308_3(vector) = Uninitialized[#temp2308:20] : &:r2308_2 -# 2308| r2308_4(glval) = FunctionAddress[vector] : -# 2308| r2308_5(glval) = VariableAddress[#temp2308:40] : -# 2308| m2308_6(String) = Uninitialized[#temp2308:40] : &:r2308_5 -# 2308| m2308_7(unknown) = Chi : total:m2304_38, partial:m2308_6 -# 2308| r2308_8(glval) = FunctionAddress[String] : -# 2308| r2308_9(glval) = StringConstant["hello"] : -# 2308| r2308_10(char *) = Convert : r2308_9 -# 2308| v2308_11(void) = Call[String] : func:r2308_8, this:r2308_5, 0:r2308_10 -# 2308| m2308_12(unknown) = ^CallSideEffect : ~m2308_7 -# 2308| m2308_13(unknown) = Chi : total:m2308_7, partial:m2308_12 -# 2308| v2308_14(void) = ^BufferReadSideEffect[0] : &:r2308_10, ~m2302_3 -# 2308| m2308_15(String) = ^IndirectMayWriteSideEffect[-1] : &:r2308_5 -# 2308| m2308_16(unknown) = Chi : total:m2308_13, partial:m2308_15 -# 2308| r2308_17(String) = Load[#temp2308:40] : &:r2308_5, ~m2308_16 -# 2308| v2308_18(void) = Call[vector] : func:r2308_4, this:r2308_2, 0:r2308_17 -# 2308| m2308_19(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2308_2 -# 2308| r2308_20(glval) = CopyValue : r2308_5 -# 2308| r2308_21(glval) = FunctionAddress[~String] : -# 2308| v2308_22(void) = Call[~String] : func:r2308_21, this:r2308_20 -# 2308| m2308_23(unknown) = ^CallSideEffect : ~m2308_16 -# 2308| m2308_24(unknown) = Chi : total:m2308_16, partial:m2308_23 -# 2308| v2308_25(void) = ^IndirectReadSideEffect[-1] : &:r2308_20, ~m2308_24 -# 2308| m2308_26(String) = ^IndirectMayWriteSideEffect[-1] : &:r2308_20 -# 2308| m2308_27(unknown) = Chi : total:m2308_24, partial:m2308_26 -# 2308| r2308_28(vector &) = CopyValue : r2308_2 -# 2308| m2308_29(vector &&) = Store[(__range)] : &:r2308_1, r2308_28 -# 2308| r2308_30(glval>) = VariableAddress[(__begin)] : -# 2308| r2308_31(glval &&>) = VariableAddress[(__range)] : -# 2308| r2308_32(vector &&) = Load[(__range)] : &:r2308_31, m2308_29 -#-----| r0_1(glval>) = CopyValue : r2308_32 +# 2306| Block 3 +# 2306| r2306_31(glval) = VariableAddress[s] : +# 2306| r2306_32(glval) = FunctionAddress[~String] : +# 2306| v2306_33(void) = Call[~String] : func:r2306_32, this:r2306_31 +# 2306| m2306_34(unknown) = ^CallSideEffect : ~m2306_13 +# 2306| m2306_35(unknown) = Chi : total:m2306_13, partial:m2306_34 +# 2306| v2306_36(void) = ^IndirectReadSideEffect[-1] : &:r2306_31, ~m2306_35 +# 2306| m2306_37(String) = ^IndirectMayWriteSideEffect[-1] : &:r2306_31 +# 2306| m2306_38(unknown) = Chi : total:m2306_35, partial:m2306_37 +# 2310| r2310_1(glval &&>) = VariableAddress[(__range)] : +# 2310| r2310_2(glval>) = VariableAddress[#temp2310:20] : +# 2310| m2310_3(vector) = Uninitialized[#temp2310:20] : &:r2310_2 +# 2310| r2310_4(glval) = FunctionAddress[vector] : +# 2310| r2310_5(glval) = VariableAddress[#temp2310:40] : +# 2310| m2310_6(String) = Uninitialized[#temp2310:40] : &:r2310_5 +# 2310| m2310_7(unknown) = Chi : total:m2306_38, partial:m2310_6 +# 2310| r2310_8(glval) = FunctionAddress[String] : +# 2310| r2310_9(glval) = StringConstant["hello"] : +# 2310| r2310_10(char *) = Convert : r2310_9 +# 2310| v2310_11(void) = Call[String] : func:r2310_8, this:r2310_5, 0:r2310_10 +# 2310| m2310_12(unknown) = ^CallSideEffect : ~m2310_7 +# 2310| m2310_13(unknown) = Chi : total:m2310_7, partial:m2310_12 +# 2310| v2310_14(void) = ^BufferReadSideEffect[0] : &:r2310_10, ~m2304_3 +# 2310| m2310_15(String) = ^IndirectMayWriteSideEffect[-1] : &:r2310_5 +# 2310| m2310_16(unknown) = Chi : total:m2310_13, partial:m2310_15 +# 2310| r2310_17(String) = Load[#temp2310:40] : &:r2310_5, ~m2310_16 +# 2310| v2310_18(void) = Call[vector] : func:r2310_4, this:r2310_2, 0:r2310_17 +# 2310| m2310_19(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2310_2 +# 2310| r2310_20(glval) = CopyValue : r2310_5 +# 2310| r2310_21(glval) = FunctionAddress[~String] : +# 2310| v2310_22(void) = Call[~String] : func:r2310_21, this:r2310_20 +# 2310| m2310_23(unknown) = ^CallSideEffect : ~m2310_16 +# 2310| m2310_24(unknown) = Chi : total:m2310_16, partial:m2310_23 +# 2310| v2310_25(void) = ^IndirectReadSideEffect[-1] : &:r2310_20, ~m2310_24 +# 2310| m2310_26(String) = ^IndirectMayWriteSideEffect[-1] : &:r2310_20 +# 2310| m2310_27(unknown) = Chi : total:m2310_24, partial:m2310_26 +# 2310| r2310_28(vector &) = CopyValue : r2310_2 +# 2310| m2310_29(vector &&) = Store[(__range)] : &:r2310_1, r2310_28 +# 2310| r2310_30(glval>) = VariableAddress[(__begin)] : +# 2310| r2310_31(glval &&>) = VariableAddress[(__range)] : +# 2310| r2310_32(vector &&) = Load[(__range)] : &:r2310_31, m2310_29 +#-----| r0_1(glval>) = CopyValue : r2310_32 #-----| r0_2(glval>) = Convert : r0_1 -# 2308| r2308_33(glval) = FunctionAddress[begin] : -# 2308| r2308_34(iterator) = Call[begin] : func:r2308_33, this:r0_2 -#-----| v0_3(void) = ^IndirectReadSideEffect[-1] : &:r0_2, m2308_19 -# 2308| m2308_35(iterator) = Store[(__begin)] : &:r2308_30, r2308_34 -# 2308| r2308_36(glval>) = VariableAddress[(__end)] : -# 2308| r2308_37(glval &&>) = VariableAddress[(__range)] : -# 2308| r2308_38(vector &&) = Load[(__range)] : &:r2308_37, m2308_29 -#-----| r0_4(glval>) = CopyValue : r2308_38 +# 2310| r2310_33(glval) = FunctionAddress[begin] : +# 2310| r2310_34(iterator) = Call[begin] : func:r2310_33, this:r0_2 +#-----| v0_3(void) = ^IndirectReadSideEffect[-1] : &:r0_2, m2310_19 +# 2310| m2310_35(iterator) = Store[(__begin)] : &:r2310_30, r2310_34 +# 2310| r2310_36(glval>) = VariableAddress[(__end)] : +# 2310| r2310_37(glval &&>) = VariableAddress[(__range)] : +# 2310| r2310_38(vector &&) = Load[(__range)] : &:r2310_37, m2310_29 +#-----| r0_4(glval>) = CopyValue : r2310_38 #-----| r0_5(glval>) = Convert : r0_4 -# 2308| r2308_39(glval) = FunctionAddress[end] : -# 2308| r2308_40(iterator) = Call[end] : func:r2308_39, this:r0_5 -#-----| v0_6(void) = ^IndirectReadSideEffect[-1] : &:r0_5, m2308_19 -# 2308| m2308_41(iterator) = Store[(__end)] : &:r2308_36, r2308_40 -# 2308| m2308_42(unknown) = Chi : total:m2308_27, partial:m2308_41 +# 2310| r2310_39(glval) = FunctionAddress[end] : +# 2310| r2310_40(iterator) = Call[end] : func:r2310_39, this:r0_5 +#-----| v0_6(void) = ^IndirectReadSideEffect[-1] : &:r0_5, m2310_19 +# 2310| m2310_41(iterator) = Store[(__end)] : &:r2310_36, r2310_40 +# 2310| m2310_42(unknown) = Chi : total:m2310_27, partial:m2310_41 #-----| Goto -> Block 4 -# 2308| Block 4 -# 2308| m2308_43(iterator) = Phi : from 3:m2308_35, from 5:m2308_77 -# 2308| m2308_44(unknown) = Phi : from 3:~m2308_42, from 5:~m2308_85 -# 2308| r2308_45(glval>) = VariableAddress[(__begin)] : -#-----| r0_7(glval>) = Convert : r2308_45 -# 2308| r2308_46(glval) = FunctionAddress[operator!=] : +# 2310| Block 4 +# 2310| m2310_43(iterator) = Phi : from 3:m2310_35, from 5:m2310_77 +# 2310| m2310_44(unknown) = Phi : from 3:~m2310_42, from 5:~m2310_85 +# 2310| r2310_45(glval>) = VariableAddress[(__begin)] : +#-----| r0_7(glval>) = Convert : r2310_45 +# 2310| r2310_46(glval) = FunctionAddress[operator!=] : #-----| r0_8(glval>) = VariableAddress[#temp0:0] : #-----| m0_9(iterator) = Uninitialized[#temp0:0] : &:r0_8 -#-----| m0_10(unknown) = Chi : total:m2308_44, partial:m0_9 -# 2308| r2308_47(glval) = FunctionAddress[iterator] : -# 2308| r2308_48(glval>) = VariableAddress[(__end)] : -#-----| r0_11(glval>) = Convert : r2308_48 +#-----| m0_10(unknown) = Chi : total:m2310_44, partial:m0_9 +# 2310| r2310_47(glval) = FunctionAddress[iterator] : +# 2310| r2310_48(glval>) = VariableAddress[(__end)] : +#-----| r0_11(glval>) = Convert : r2310_48 #-----| r0_12(iterator &) = CopyValue : r0_11 -# 2308| v2308_49(void) = Call[iterator] : func:r2308_47, this:r0_8, 0:r0_12 -# 2308| m2308_50(unknown) = ^CallSideEffect : ~m0_10 -# 2308| m2308_51(unknown) = Chi : total:m0_10, partial:m2308_50 -#-----| v0_13(void) = ^BufferReadSideEffect[0] : &:r0_12, ~m2308_51 -# 2308| m2308_52(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r0_8 -# 2308| m2308_53(unknown) = Chi : total:m2308_51, partial:m2308_52 -#-----| r0_14(iterator) = Load[#temp0:0] : &:r0_8, ~m2308_53 -# 2308| r2308_54(bool) = Call[operator!=] : func:r2308_46, this:r0_7, 0:r0_14 -#-----| v0_15(void) = ^IndirectReadSideEffect[-1] : &:r0_7, m2308_43 -# 2308| v2308_55(void) = ConditionalBranch : r2308_54 +# 2310| v2310_49(void) = Call[iterator] : func:r2310_47, this:r0_8, 0:r0_12 +# 2310| m2310_50(unknown) = ^CallSideEffect : ~m0_10 +# 2310| m2310_51(unknown) = Chi : total:m0_10, partial:m2310_50 +#-----| v0_13(void) = ^BufferReadSideEffect[0] : &:r0_12, ~m2310_51 +# 2310| m2310_52(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r0_8 +# 2310| m2310_53(unknown) = Chi : total:m2310_51, partial:m2310_52 +#-----| r0_14(iterator) = Load[#temp0:0] : &:r0_8, ~m2310_53 +# 2310| r2310_54(bool) = Call[operator!=] : func:r2310_46, this:r0_7, 0:r0_14 +#-----| v0_15(void) = ^IndirectReadSideEffect[-1] : &:r0_7, m2310_43 +# 2310| v2310_55(void) = ConditionalBranch : r2310_54 #-----| False -> Block 6 #-----| True -> Block 5 -# 2308| Block 5 -# 2308| r2308_56(glval) = VariableAddress[s] : -# 2308| m2308_57(String) = Uninitialized[s] : &:r2308_56 -# 2308| m2308_58(unknown) = Chi : total:m2308_53, partial:m2308_57 -# 2308| r2308_59(glval) = FunctionAddress[String] : -# 2308| r2308_60(glval>) = VariableAddress[(__begin)] : -#-----| r0_16(glval>) = Convert : r2308_60 -# 2308| r2308_61(glval) = FunctionAddress[operator*] : -# 2308| r2308_62(String &) = Call[operator*] : func:r2308_61, this:r0_16 -#-----| v0_17(void) = ^IndirectReadSideEffect[-1] : &:r0_16, m2308_43 -# 2308| r2308_63(glval) = CopyValue : r2308_62 -# 2308| r2308_64(glval) = Convert : r2308_63 -# 2308| r2308_65(String &) = CopyValue : r2308_64 -# 2308| v2308_66(void) = Call[String] : func:r2308_59, this:r2308_56, 0:r2308_65 -# 2308| m2308_67(unknown) = ^CallSideEffect : ~m2308_58 -# 2308| m2308_68(unknown) = Chi : total:m2308_58, partial:m2308_67 -# 2308| v2308_69(void) = ^BufferReadSideEffect[0] : &:r2308_65, ~m2308_68 -# 2308| m2308_70(String) = ^IndirectMayWriteSideEffect[-1] : &:r2308_56 -# 2308| m2308_71(unknown) = Chi : total:m2308_68, partial:m2308_70 -# 2309| r2309_1(glval) = VariableAddress[s2] : -# 2309| m2309_2(String) = Uninitialized[s2] : &:r2309_1 -# 2309| m2309_3(unknown) = Chi : total:m2308_71, partial:m2309_2 -# 2309| r2309_4(glval) = FunctionAddress[String] : -# 2309| v2309_5(void) = Call[String] : func:r2309_4, this:r2309_1 -# 2309| m2309_6(unknown) = ^CallSideEffect : ~m2309_3 -# 2309| m2309_7(unknown) = Chi : total:m2309_3, partial:m2309_6 -# 2309| m2309_8(String) = ^IndirectMayWriteSideEffect[-1] : &:r2309_1 -# 2309| m2309_9(unknown) = Chi : total:m2309_7, partial:m2309_8 -# 2310| r2310_1(glval) = VariableAddress[s2] : -# 2310| r2310_2(glval) = FunctionAddress[~String] : -# 2310| v2310_3(void) = Call[~String] : func:r2310_2, this:r2310_1 -# 2310| m2310_4(unknown) = ^CallSideEffect : ~m2309_9 -# 2310| m2310_5(unknown) = Chi : total:m2309_9, partial:m2310_4 -# 2310| v2310_6(void) = ^IndirectReadSideEffect[-1] : &:r2310_1, ~m2310_5 -# 2310| m2310_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2310_1 -# 2310| m2310_8(unknown) = Chi : total:m2310_5, partial:m2310_7 -# 2308| r2308_72(glval>) = VariableAddress[(__begin)] : -# 2308| r2308_73(glval) = FunctionAddress[operator++] : -# 2308| r2308_74(iterator &) = Call[operator++] : func:r2308_73, this:r2308_72 -# 2308| v2308_75(void) = ^IndirectReadSideEffect[-1] : &:r2308_72, m2308_43 -# 2308| m2308_76(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2308_72 -# 2308| m2308_77(iterator) = Chi : total:m2308_43, partial:m2308_76 -# 2308| r2308_78(glval) = VariableAddress[s] : -# 2308| r2308_79(glval) = FunctionAddress[~String] : -# 2308| v2308_80(void) = Call[~String] : func:r2308_79, this:r2308_78 -# 2308| m2308_81(unknown) = ^CallSideEffect : ~m2310_8 -# 2308| m2308_82(unknown) = Chi : total:m2310_8, partial:m2308_81 -# 2308| v2308_83(void) = ^IndirectReadSideEffect[-1] : &:r2308_78, ~m2308_82 -# 2308| m2308_84(String) = ^IndirectMayWriteSideEffect[-1] : &:r2308_78 -# 2308| m2308_85(unknown) = Chi : total:m2308_82, partial:m2308_84 -# 2308| r2308_86(glval>) = CopyValue : r2308_74 +# 2310| Block 5 +# 2310| r2310_56(glval) = VariableAddress[s] : +# 2310| m2310_57(String) = Uninitialized[s] : &:r2310_56 +# 2310| m2310_58(unknown) = Chi : total:m2310_53, partial:m2310_57 +# 2310| r2310_59(glval) = FunctionAddress[String] : +# 2310| r2310_60(glval>) = VariableAddress[(__begin)] : +#-----| r0_16(glval>) = Convert : r2310_60 +# 2310| r2310_61(glval) = FunctionAddress[operator*] : +# 2310| r2310_62(String &) = Call[operator*] : func:r2310_61, this:r0_16 +#-----| v0_17(void) = ^IndirectReadSideEffect[-1] : &:r0_16, m2310_43 +# 2310| r2310_63(glval) = CopyValue : r2310_62 +# 2310| r2310_64(glval) = Convert : r2310_63 +# 2310| r2310_65(String &) = CopyValue : r2310_64 +# 2310| v2310_66(void) = Call[String] : func:r2310_59, this:r2310_56, 0:r2310_65 +# 2310| m2310_67(unknown) = ^CallSideEffect : ~m2310_58 +# 2310| m2310_68(unknown) = Chi : total:m2310_58, partial:m2310_67 +# 2310| v2310_69(void) = ^BufferReadSideEffect[0] : &:r2310_65, ~m2310_68 +# 2310| m2310_70(String) = ^IndirectMayWriteSideEffect[-1] : &:r2310_56 +# 2310| m2310_71(unknown) = Chi : total:m2310_68, partial:m2310_70 +# 2311| r2311_1(glval) = VariableAddress[s2] : +# 2311| m2311_2(String) = Uninitialized[s2] : &:r2311_1 +# 2311| m2311_3(unknown) = Chi : total:m2310_71, partial:m2311_2 +# 2311| r2311_4(glval) = FunctionAddress[String] : +# 2311| v2311_5(void) = Call[String] : func:r2311_4, this:r2311_1 +# 2311| m2311_6(unknown) = ^CallSideEffect : ~m2311_3 +# 2311| m2311_7(unknown) = Chi : total:m2311_3, partial:m2311_6 +# 2311| m2311_8(String) = ^IndirectMayWriteSideEffect[-1] : &:r2311_1 +# 2311| m2311_9(unknown) = Chi : total:m2311_7, partial:m2311_8 +# 2312| r2312_1(glval) = VariableAddress[s2] : +# 2312| r2312_2(glval) = FunctionAddress[~String] : +# 2312| v2312_3(void) = Call[~String] : func:r2312_2, this:r2312_1 +# 2312| m2312_4(unknown) = ^CallSideEffect : ~m2311_9 +# 2312| m2312_5(unknown) = Chi : total:m2311_9, partial:m2312_4 +# 2312| v2312_6(void) = ^IndirectReadSideEffect[-1] : &:r2312_1, ~m2312_5 +# 2312| m2312_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2312_1 +# 2312| m2312_8(unknown) = Chi : total:m2312_5, partial:m2312_7 +# 2310| r2310_72(glval>) = VariableAddress[(__begin)] : +# 2310| r2310_73(glval) = FunctionAddress[operator++] : +# 2310| r2310_74(iterator &) = Call[operator++] : func:r2310_73, this:r2310_72 +# 2310| v2310_75(void) = ^IndirectReadSideEffect[-1] : &:r2310_72, m2310_43 +# 2310| m2310_76(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2310_72 +# 2310| m2310_77(iterator) = Chi : total:m2310_43, partial:m2310_76 +# 2310| r2310_78(glval) = VariableAddress[s] : +# 2310| r2310_79(glval) = FunctionAddress[~String] : +# 2310| v2310_80(void) = Call[~String] : func:r2310_79, this:r2310_78 +# 2310| m2310_81(unknown) = ^CallSideEffect : ~m2312_8 +# 2310| m2310_82(unknown) = Chi : total:m2312_8, partial:m2310_81 +# 2310| v2310_83(void) = ^IndirectReadSideEffect[-1] : &:r2310_78, ~m2310_82 +# 2310| m2310_84(String) = ^IndirectMayWriteSideEffect[-1] : &:r2310_78 +# 2310| m2310_85(unknown) = Chi : total:m2310_82, partial:m2310_84 +# 2310| r2310_86(glval>) = CopyValue : r2310_74 #-----| Goto (back edge) -> Block 4 -# 2308| Block 6 -# 2308| r2308_87(glval>) = CopyValue : r2308_2 -# 2308| r2308_88(glval) = FunctionAddress[~vector] : -# 2308| v2308_89(void) = Call[~vector] : func:r2308_88, this:r2308_87 -# 2308| v2308_90(void) = ^IndirectReadSideEffect[-1] : &:r2308_87, m2308_19 -# 2308| m2308_91(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2308_87 -# 2312| r2312_1(glval) = VariableAddress[s] : -# 2312| m2312_2(String) = Uninitialized[s] : &:r2312_1 -# 2312| m2312_3(unknown) = Chi : total:m2308_53, partial:m2312_2 -# 2312| r2312_4(glval) = FunctionAddress[String] : -# 2312| r2312_5(glval) = StringConstant["hello"] : -# 2312| r2312_6(char *) = Convert : r2312_5 -# 2312| v2312_7(void) = Call[String] : func:r2312_4, this:r2312_1, 0:r2312_6 -# 2312| m2312_8(unknown) = ^CallSideEffect : ~m2312_3 -# 2312| m2312_9(unknown) = Chi : total:m2312_3, partial:m2312_8 -# 2312| v2312_10(void) = ^BufferReadSideEffect[0] : &:r2312_6, ~m2302_3 -# 2312| m2312_11(String) = ^IndirectMayWriteSideEffect[-1] : &:r2312_1 -# 2312| m2312_12(unknown) = Chi : total:m2312_9, partial:m2312_11 -# 2312| r2312_13(glval) = VariableAddress[s2] : -# 2312| m2312_14(String) = Uninitialized[s2] : &:r2312_13 -# 2312| m2312_15(unknown) = Chi : total:m2312_12, partial:m2312_14 -# 2312| r2312_16(glval) = FunctionAddress[String] : -# 2312| r2312_17(glval) = StringConstant["world"] : -# 2312| r2312_18(char *) = Convert : r2312_17 -# 2312| v2312_19(void) = Call[String] : func:r2312_16, this:r2312_13, 0:r2312_18 -# 2312| m2312_20(unknown) = ^CallSideEffect : ~m2312_15 -# 2312| m2312_21(unknown) = Chi : total:m2312_15, partial:m2312_20 -# 2312| v2312_22(void) = ^BufferReadSideEffect[0] : &:r2312_18, ~m2302_3 -# 2312| m2312_23(String) = ^IndirectMayWriteSideEffect[-1] : &:r2312_13 -# 2312| m2312_24(unknown) = Chi : total:m2312_21, partial:m2312_23 +# 2310| Block 6 +# 2310| r2310_87(glval>) = CopyValue : r2310_2 +# 2310| r2310_88(glval) = FunctionAddress[~vector] : +# 2310| v2310_89(void) = Call[~vector] : func:r2310_88, this:r2310_87 +# 2310| v2310_90(void) = ^IndirectReadSideEffect[-1] : &:r2310_87, m2310_19 +# 2310| m2310_91(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2310_87 +# 2314| r2314_1(glval) = VariableAddress[s] : +# 2314| m2314_2(String) = Uninitialized[s] : &:r2314_1 +# 2314| m2314_3(unknown) = Chi : total:m2310_53, partial:m2314_2 +# 2314| r2314_4(glval) = FunctionAddress[String] : +# 2314| r2314_5(glval) = StringConstant["hello"] : +# 2314| r2314_6(char *) = Convert : r2314_5 +# 2314| v2314_7(void) = Call[String] : func:r2314_4, this:r2314_1, 0:r2314_6 +# 2314| m2314_8(unknown) = ^CallSideEffect : ~m2314_3 +# 2314| m2314_9(unknown) = Chi : total:m2314_3, partial:m2314_8 +# 2314| v2314_10(void) = ^BufferReadSideEffect[0] : &:r2314_6, ~m2304_3 +# 2314| m2314_11(String) = ^IndirectMayWriteSideEffect[-1] : &:r2314_1 +# 2314| m2314_12(unknown) = Chi : total:m2314_9, partial:m2314_11 +# 2314| r2314_13(glval) = VariableAddress[s2] : +# 2314| m2314_14(String) = Uninitialized[s2] : &:r2314_13 +# 2314| m2314_15(unknown) = Chi : total:m2314_12, partial:m2314_14 +# 2314| r2314_16(glval) = FunctionAddress[String] : +# 2314| r2314_17(glval) = StringConstant["world"] : +# 2314| r2314_18(char *) = Convert : r2314_17 +# 2314| v2314_19(void) = Call[String] : func:r2314_16, this:r2314_13, 0:r2314_18 +# 2314| m2314_20(unknown) = ^CallSideEffect : ~m2314_15 +# 2314| m2314_21(unknown) = Chi : total:m2314_15, partial:m2314_20 +# 2314| v2314_22(void) = ^BufferReadSideEffect[0] : &:r2314_18, ~m2304_3 +# 2314| m2314_23(String) = ^IndirectMayWriteSideEffect[-1] : &:r2314_13 +# 2314| m2314_24(unknown) = Chi : total:m2314_21, partial:m2314_23 #-----| Goto -> Block 7 -# 2312| Block 7 -# 2312| m2312_25(unknown) = Phi : from 6:~m2312_24, from 8:~m2312_40 -# 2312| m2312_26(char) = Phi : from 6:m2304_14, from 8:m2312_42 -# 2312| r2312_27(glval) = VariableAddress[c] : -# 2312| r2312_28(char) = Load[c] : &:r2312_27, m2312_26 -# 2312| r2312_29(int) = Convert : r2312_28 -# 2312| r2312_30(int) = Constant[0] : -# 2312| r2312_31(bool) = CompareNE : r2312_29, r2312_30 -# 2312| v2312_32(void) = ConditionalBranch : r2312_31 +# 2314| Block 7 +# 2314| m2314_25(unknown) = Phi : from 6:~m2314_24, from 8:~m2314_40 +# 2314| m2314_26(char) = Phi : from 6:m2306_14, from 8:m2314_42 +# 2314| r2314_27(glval) = VariableAddress[c] : +# 2314| r2314_28(char) = Load[c] : &:r2314_27, m2314_26 +# 2314| r2314_29(int) = Convert : r2314_28 +# 2314| r2314_30(int) = Constant[0] : +# 2314| r2314_31(bool) = CompareNE : r2314_29, r2314_30 +# 2314| v2314_32(void) = ConditionalBranch : r2314_31 #-----| False -> Block 9 #-----| True -> Block 8 -# 2313| Block 8 -# 2313| r2313_1(char) = Constant[0] : -# 2313| r2313_2(glval) = VariableAddress[c] : -# 2313| m2313_3(char) = Store[c] : &:r2313_2, r2313_1 -# 2312| r2312_33(glval) = VariableAddress[s] : -# 2312| r2312_34(glval) = FunctionAddress[pop_back] : -# 2312| r2312_35(char) = Call[pop_back] : func:r2312_34, this:r2312_33 -# 2312| m2312_36(unknown) = ^CallSideEffect : ~m2312_25 -# 2312| m2312_37(unknown) = Chi : total:m2312_25, partial:m2312_36 -# 2312| v2312_38(void) = ^IndirectReadSideEffect[-1] : &:r2312_33, ~m2312_37 -# 2312| m2312_39(String) = ^IndirectMayWriteSideEffect[-1] : &:r2312_33 -# 2312| m2312_40(unknown) = Chi : total:m2312_37, partial:m2312_39 -# 2312| r2312_41(glval) = VariableAddress[c] : -# 2312| m2312_42(char) = Store[c] : &:r2312_41, r2312_35 +# 2315| Block 8 +# 2315| r2315_1(char) = Constant[0] : +# 2315| r2315_2(glval) = VariableAddress[c] : +# 2315| m2315_3(char) = Store[c] : &:r2315_2, r2315_1 +# 2314| r2314_33(glval) = VariableAddress[s] : +# 2314| r2314_34(glval) = FunctionAddress[pop_back] : +# 2314| r2314_35(char) = Call[pop_back] : func:r2314_34, this:r2314_33 +# 2314| m2314_36(unknown) = ^CallSideEffect : ~m2314_25 +# 2314| m2314_37(unknown) = Chi : total:m2314_25, partial:m2314_36 +# 2314| v2314_38(void) = ^IndirectReadSideEffect[-1] : &:r2314_33, ~m2314_37 +# 2314| m2314_39(String) = ^IndirectMayWriteSideEffect[-1] : &:r2314_33 +# 2314| m2314_40(unknown) = Chi : total:m2314_37, partial:m2314_39 +# 2314| r2314_41(glval) = VariableAddress[c] : +# 2314| m2314_42(char) = Store[c] : &:r2314_41, r2314_35 #-----| Goto (back edge) -> Block 7 -# 2312| Block 9 -# 2312| r2312_43(glval) = VariableAddress[s2] : -# 2312| r2312_44(glval) = FunctionAddress[~String] : -# 2312| v2312_45(void) = Call[~String] : func:r2312_44, this:r2312_43 -# 2312| m2312_46(unknown) = ^CallSideEffect : ~m2312_25 -# 2312| m2312_47(unknown) = Chi : total:m2312_25, partial:m2312_46 -# 2312| v2312_48(void) = ^IndirectReadSideEffect[-1] : &:r2312_43, ~m2312_47 -# 2312| m2312_49(String) = ^IndirectMayWriteSideEffect[-1] : &:r2312_43 -# 2312| m2312_50(unknown) = Chi : total:m2312_47, partial:m2312_49 -# 2312| r2312_51(glval) = VariableAddress[s] : -# 2312| r2312_52(glval) = FunctionAddress[~String] : -# 2312| v2312_53(void) = Call[~String] : func:r2312_52, this:r2312_51 -# 2312| m2312_54(unknown) = ^CallSideEffect : ~m2312_50 -# 2312| m2312_55(unknown) = Chi : total:m2312_50, partial:m2312_54 -# 2312| v2312_56(void) = ^IndirectReadSideEffect[-1] : &:r2312_51, ~m2312_55 -# 2312| m2312_57(String) = ^IndirectMayWriteSideEffect[-1] : &:r2312_51 -# 2312| m2312_58(unknown) = Chi : total:m2312_55, partial:m2312_57 -# 2315| v2315_1(void) = NoOp : -# 2302| v2302_5(void) = ReturnVoid : -# 2302| v2302_6(void) = AliasedUse : ~m2312_55 -# 2302| v2302_7(void) = ExitFunction : - -# 2317| void IfDestructors2(bool) -# 2317| Block 0 -# 2317| v2317_1(void) = EnterFunction : -# 2317| m2317_2(unknown) = AliasedDefinition : -# 2317| m2317_3(unknown) = InitializeNonLocal : -# 2317| m2317_4(unknown) = Chi : total:m2317_2, partial:m2317_3 -# 2317| r2317_5(glval) = VariableAddress[b] : -# 2317| m2317_6(bool) = InitializeParameter[b] : &:r2317_5 -# 2318| r2318_1(glval) = VariableAddress[s] : -# 2318| m2318_2(String) = Uninitialized[s] : &:r2318_1 -# 2318| m2318_3(unknown) = Chi : total:m2317_4, partial:m2318_2 -# 2318| r2318_4(glval) = FunctionAddress[String] : -# 2318| r2318_5(glval) = StringConstant["hello"] : -# 2318| r2318_6(char *) = Convert : r2318_5 -# 2318| v2318_7(void) = Call[String] : func:r2318_4, this:r2318_1, 0:r2318_6 -# 2318| m2318_8(unknown) = ^CallSideEffect : ~m2318_3 -# 2318| m2318_9(unknown) = Chi : total:m2318_3, partial:m2318_8 -# 2318| v2318_10(void) = ^BufferReadSideEffect[0] : &:r2318_6, ~m2317_3 -# 2318| m2318_11(String) = ^IndirectMayWriteSideEffect[-1] : &:r2318_1 -# 2318| m2318_12(unknown) = Chi : total:m2318_9, partial:m2318_11 -# 2318| r2318_13(glval) = VariableAddress[b] : -# 2318| r2318_14(bool) = Load[b] : &:r2318_13, m2317_6 -# 2318| v2318_15(void) = ConditionalBranch : r2318_14 +# 2314| Block 9 +# 2314| r2314_43(glval) = VariableAddress[s2] : +# 2314| r2314_44(glval) = FunctionAddress[~String] : +# 2314| v2314_45(void) = Call[~String] : func:r2314_44, this:r2314_43 +# 2314| m2314_46(unknown) = ^CallSideEffect : ~m2314_25 +# 2314| m2314_47(unknown) = Chi : total:m2314_25, partial:m2314_46 +# 2314| v2314_48(void) = ^IndirectReadSideEffect[-1] : &:r2314_43, ~m2314_47 +# 2314| m2314_49(String) = ^IndirectMayWriteSideEffect[-1] : &:r2314_43 +# 2314| m2314_50(unknown) = Chi : total:m2314_47, partial:m2314_49 +# 2314| r2314_51(glval) = VariableAddress[s] : +# 2314| r2314_52(glval) = FunctionAddress[~String] : +# 2314| v2314_53(void) = Call[~String] : func:r2314_52, this:r2314_51 +# 2314| m2314_54(unknown) = ^CallSideEffect : ~m2314_50 +# 2314| m2314_55(unknown) = Chi : total:m2314_50, partial:m2314_54 +# 2314| v2314_56(void) = ^IndirectReadSideEffect[-1] : &:r2314_51, ~m2314_55 +# 2314| m2314_57(String) = ^IndirectMayWriteSideEffect[-1] : &:r2314_51 +# 2314| m2314_58(unknown) = Chi : total:m2314_55, partial:m2314_57 +# 2317| v2317_1(void) = NoOp : +# 2304| v2304_5(void) = ReturnVoid : +# 2304| v2304_6(void) = AliasedUse : ~m2314_55 +# 2304| v2304_7(void) = ExitFunction : + +# 2319| void IfDestructors2(bool) +# 2319| Block 0 +# 2319| v2319_1(void) = EnterFunction : +# 2319| m2319_2(unknown) = AliasedDefinition : +# 2319| m2319_3(unknown) = InitializeNonLocal : +# 2319| m2319_4(unknown) = Chi : total:m2319_2, partial:m2319_3 +# 2319| r2319_5(glval) = VariableAddress[b] : +# 2319| m2319_6(bool) = InitializeParameter[b] : &:r2319_5 +# 2320| r2320_1(glval) = VariableAddress[s] : +# 2320| m2320_2(String) = Uninitialized[s] : &:r2320_1 +# 2320| m2320_3(unknown) = Chi : total:m2319_4, partial:m2320_2 +# 2320| r2320_4(glval) = FunctionAddress[String] : +# 2320| r2320_5(glval) = StringConstant["hello"] : +# 2320| r2320_6(char *) = Convert : r2320_5 +# 2320| v2320_7(void) = Call[String] : func:r2320_4, this:r2320_1, 0:r2320_6 +# 2320| m2320_8(unknown) = ^CallSideEffect : ~m2320_3 +# 2320| m2320_9(unknown) = Chi : total:m2320_3, partial:m2320_8 +# 2320| v2320_10(void) = ^BufferReadSideEffect[0] : &:r2320_6, ~m2319_3 +# 2320| m2320_11(String) = ^IndirectMayWriteSideEffect[-1] : &:r2320_1 +# 2320| m2320_12(unknown) = Chi : total:m2320_9, partial:m2320_11 +# 2320| r2320_13(glval) = VariableAddress[b] : +# 2320| r2320_14(bool) = Load[b] : &:r2320_13, m2319_6 +# 2320| v2320_15(void) = ConditionalBranch : r2320_14 #-----| False -> Block 2 #-----| True -> Block 1 -# 2319| Block 1 -# 2319| r2319_1(glval) = VariableAddress[x] : -# 2319| r2319_2(int) = Constant[0] : -# 2319| m2319_3(int) = Store[x] : &:r2319_1, r2319_2 +# 2321| Block 1 +# 2321| r2321_1(glval) = VariableAddress[x] : +# 2321| r2321_2(int) = Constant[0] : +# 2321| m2321_3(int) = Store[x] : &:r2321_1, r2321_2 #-----| Goto -> Block 3 -# 2321| Block 2 -# 2321| r2321_1(glval) = VariableAddress[y] : -# 2321| r2321_2(int) = Constant[0] : -# 2321| m2321_3(int) = Store[y] : &:r2321_1, r2321_2 +# 2323| Block 2 +# 2323| r2323_1(glval) = VariableAddress[y] : +# 2323| r2323_2(int) = Constant[0] : +# 2323| m2323_3(int) = Store[y] : &:r2323_1, r2323_2 #-----| Goto -> Block 3 -# 2322| Block 3 -# 2322| r2322_1(glval) = VariableAddress[s] : -# 2322| r2322_2(glval) = FunctionAddress[~String] : -# 2322| v2322_3(void) = Call[~String] : func:r2322_2, this:r2322_1 -# 2322| m2322_4(unknown) = ^CallSideEffect : ~m2318_12 -# 2322| m2322_5(unknown) = Chi : total:m2318_12, partial:m2322_4 -# 2322| v2322_6(void) = ^IndirectReadSideEffect[-1] : &:r2322_1, ~m2322_5 -# 2322| m2322_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2322_1 -# 2322| m2322_8(unknown) = Chi : total:m2322_5, partial:m2322_7 -# 2323| v2323_1(void) = NoOp : -# 2317| v2317_7(void) = ReturnVoid : -# 2317| v2317_8(void) = AliasedUse : ~m2322_5 -# 2317| v2317_9(void) = ExitFunction : - -# 2332| void IfDestructors3(bool) -# 2332| Block 0 -# 2332| v2332_1(void) = EnterFunction : -# 2332| m2332_2(unknown) = AliasedDefinition : -# 2332| m2332_3(unknown) = InitializeNonLocal : -# 2332| m2332_4(unknown) = Chi : total:m2332_2, partial:m2332_3 -# 2332| r2332_5(glval) = VariableAddress[b] : -# 2332| m2332_6(bool) = InitializeParameter[b] : &:r2332_5 -# 2333| r2333_1(glval) = VariableAddress[B] : -# 2333| m2333_2(Bool) = Uninitialized[B] : &:r2333_1 -# 2333| m2333_3(unknown) = Chi : total:m2332_4, partial:m2333_2 -# 2333| r2333_4(glval) = FunctionAddress[Bool] : -# 2333| r2333_5(glval) = VariableAddress[b] : -# 2333| r2333_6(bool) = Load[b] : &:r2333_5, m2332_6 -# 2333| v2333_7(void) = Call[Bool] : func:r2333_4, this:r2333_1, 0:r2333_6 -# 2333| m2333_8(unknown) = ^CallSideEffect : ~m2333_3 -# 2333| m2333_9(unknown) = Chi : total:m2333_3, partial:m2333_8 -# 2333| m2333_10(Bool) = ^IndirectMayWriteSideEffect[-1] : &:r2333_1 -# 2333| m2333_11(unknown) = Chi : total:m2333_9, partial:m2333_10 -# 2333| r2333_12(glval) = VariableAddress[B] : -# 2333| r2333_13(glval) = FunctionAddress[operator bool] : -# 2333| r2333_14(bool) = Call[operator bool] : func:r2333_13, this:r2333_12 -# 2333| m2333_15(unknown) = ^CallSideEffect : ~m2333_11 -# 2333| m2333_16(unknown) = Chi : total:m2333_11, partial:m2333_15 -# 2333| v2333_17(void) = ^IndirectReadSideEffect[-1] : &:r2333_12, ~m2333_16 -# 2333| m2333_18(Bool) = ^IndirectMayWriteSideEffect[-1] : &:r2333_12 -# 2333| m2333_19(unknown) = Chi : total:m2333_16, partial:m2333_18 -# 2333| r2333_20(bool) = CopyValue : r2333_14 -# 2333| v2333_21(void) = ConditionalBranch : r2333_20 +# 2324| Block 3 +# 2324| r2324_1(glval) = VariableAddress[s] : +# 2324| r2324_2(glval) = FunctionAddress[~String] : +# 2324| v2324_3(void) = Call[~String] : func:r2324_2, this:r2324_1 +# 2324| m2324_4(unknown) = ^CallSideEffect : ~m2320_12 +# 2324| m2324_5(unknown) = Chi : total:m2320_12, partial:m2324_4 +# 2324| v2324_6(void) = ^IndirectReadSideEffect[-1] : &:r2324_1, ~m2324_5 +# 2324| m2324_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2324_1 +# 2324| m2324_8(unknown) = Chi : total:m2324_5, partial:m2324_7 +# 2325| v2325_1(void) = NoOp : +# 2319| v2319_7(void) = ReturnVoid : +# 2319| v2319_8(void) = AliasedUse : ~m2324_5 +# 2319| v2319_9(void) = ExitFunction : + +# 2334| void IfDestructors3(bool) +# 2334| Block 0 +# 2334| v2334_1(void) = EnterFunction : +# 2334| m2334_2(unknown) = AliasedDefinition : +# 2334| m2334_3(unknown) = InitializeNonLocal : +# 2334| m2334_4(unknown) = Chi : total:m2334_2, partial:m2334_3 +# 2334| r2334_5(glval) = VariableAddress[b] : +# 2334| m2334_6(bool) = InitializeParameter[b] : &:r2334_5 +# 2335| r2335_1(glval) = VariableAddress[B] : +# 2335| m2335_2(Bool) = Uninitialized[B] : &:r2335_1 +# 2335| m2335_3(unknown) = Chi : total:m2334_4, partial:m2335_2 +# 2335| r2335_4(glval) = FunctionAddress[Bool] : +# 2335| r2335_5(glval) = VariableAddress[b] : +# 2335| r2335_6(bool) = Load[b] : &:r2335_5, m2334_6 +# 2335| v2335_7(void) = Call[Bool] : func:r2335_4, this:r2335_1, 0:r2335_6 +# 2335| m2335_8(unknown) = ^CallSideEffect : ~m2335_3 +# 2335| m2335_9(unknown) = Chi : total:m2335_3, partial:m2335_8 +# 2335| m2335_10(Bool) = ^IndirectMayWriteSideEffect[-1] : &:r2335_1 +# 2335| m2335_11(unknown) = Chi : total:m2335_9, partial:m2335_10 +# 2335| r2335_12(glval) = VariableAddress[B] : +# 2335| r2335_13(glval) = FunctionAddress[operator bool] : +# 2335| r2335_14(bool) = Call[operator bool] : func:r2335_13, this:r2335_12 +# 2335| m2335_15(unknown) = ^CallSideEffect : ~m2335_11 +# 2335| m2335_16(unknown) = Chi : total:m2335_11, partial:m2335_15 +# 2335| v2335_17(void) = ^IndirectReadSideEffect[-1] : &:r2335_12, ~m2335_16 +# 2335| m2335_18(Bool) = ^IndirectMayWriteSideEffect[-1] : &:r2335_12 +# 2335| m2335_19(unknown) = Chi : total:m2335_16, partial:m2335_18 +# 2335| r2335_20(bool) = CopyValue : r2335_14 +# 2335| v2335_21(void) = ConditionalBranch : r2335_20 #-----| False -> Block 2 #-----| True -> Block 1 -# 2334| Block 1 -# 2334| r2334_1(glval) = VariableAddress[s1] : -# 2334| m2334_2(String) = Uninitialized[s1] : &:r2334_1 -# 2334| m2334_3(unknown) = Chi : total:m2333_19, partial:m2334_2 -# 2334| r2334_4(glval) = FunctionAddress[String] : -# 2334| v2334_5(void) = Call[String] : func:r2334_4, this:r2334_1 -# 2334| m2334_6(unknown) = ^CallSideEffect : ~m2334_3 -# 2334| m2334_7(unknown) = Chi : total:m2334_3, partial:m2334_6 -# 2334| m2334_8(String) = ^IndirectMayWriteSideEffect[-1] : &:r2334_1 -# 2334| m2334_9(unknown) = Chi : total:m2334_7, partial:m2334_8 -# 2335| r2335_1(glval) = VariableAddress[s1] : -# 2335| r2335_2(glval) = FunctionAddress[~String] : -# 2335| v2335_3(void) = Call[~String] : func:r2335_2, this:r2335_1 -# 2335| m2335_4(unknown) = ^CallSideEffect : ~m2334_9 -# 2335| m2335_5(unknown) = Chi : total:m2334_9, partial:m2335_4 -# 2335| v2335_6(void) = ^IndirectReadSideEffect[-1] : &:r2335_1, ~m2335_5 -# 2335| m2335_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2335_1 -# 2335| m2335_8(unknown) = Chi : total:m2335_5, partial:m2335_7 -#-----| Goto -> Block 3 - -# 2336| Block 2 -# 2336| r2336_1(glval) = VariableAddress[s2] : -# 2336| m2336_2(String) = Uninitialized[s2] : &:r2336_1 -# 2336| m2336_3(unknown) = Chi : total:m2333_19, partial:m2336_2 +# 2336| Block 1 +# 2336| r2336_1(glval) = VariableAddress[s1] : +# 2336| m2336_2(String) = Uninitialized[s1] : &:r2336_1 +# 2336| m2336_3(unknown) = Chi : total:m2335_19, partial:m2336_2 # 2336| r2336_4(glval) = FunctionAddress[String] : # 2336| v2336_5(void) = Call[String] : func:r2336_4, this:r2336_1 # 2336| m2336_6(unknown) = ^CallSideEffect : ~m2336_3 # 2336| m2336_7(unknown) = Chi : total:m2336_3, partial:m2336_6 # 2336| m2336_8(String) = ^IndirectMayWriteSideEffect[-1] : &:r2336_1 # 2336| m2336_9(unknown) = Chi : total:m2336_7, partial:m2336_8 -# 2337| r2337_1(glval) = VariableAddress[s2] : +# 2337| r2337_1(glval) = VariableAddress[s1] : # 2337| r2337_2(glval) = FunctionAddress[~String] : # 2337| v2337_3(void) = Call[~String] : func:r2337_2, this:r2337_1 # 2337| m2337_4(unknown) = ^CallSideEffect : ~m2336_9 @@ -17933,2287 +17983,2293 @@ ir.cpp: # 2337| m2337_8(unknown) = Chi : total:m2337_5, partial:m2337_7 #-----| Goto -> Block 3 -# 2337| Block 3 -# 2337| m2337_9(unknown) = Phi : from 1:~m2335_8, from 2:~m2337_8 -# 2337| r2337_10(glval) = VariableAddress[B] : -# 2337| r2337_11(glval) = FunctionAddress[~Bool] : -# 2337| v2337_12(void) = Call[~Bool] : func:r2337_11, this:r2337_10 -# 2337| m2337_13(unknown) = ^CallSideEffect : ~m2337_9 -# 2337| m2337_14(unknown) = Chi : total:m2337_9, partial:m2337_13 -# 2337| v2337_15(void) = ^IndirectReadSideEffect[-1] : &:r2337_10, ~m2337_14 -# 2337| m2337_16(Bool) = ^IndirectMayWriteSideEffect[-1] : &:r2337_10 -# 2337| m2337_17(unknown) = Chi : total:m2337_14, partial:m2337_16 -# 2338| v2338_1(void) = NoOp : -# 2332| v2332_7(void) = ReturnVoid : -# 2332| v2332_8(void) = AliasedUse : ~m2337_14 -# 2332| v2332_9(void) = ExitFunction : - -# 2340| void WhileLoopDestructors(bool) -# 2340| Block 0 -# 2340| v2340_1(void) = EnterFunction : -# 2340| m2340_2(unknown) = AliasedDefinition : -# 2340| m2340_3(unknown) = InitializeNonLocal : -# 2340| m2340_4(unknown) = Chi : total:m2340_2, partial:m2340_3 -# 2340| r2340_5(glval) = VariableAddress[b] : -# 2340| m2340_6(bool) = InitializeParameter[b] : &:r2340_5 -# 2342| r2342_1(glval) = VariableAddress[s] : -# 2342| m2342_2(String) = Uninitialized[s] : &:r2342_1 -# 2342| m2342_3(unknown) = Chi : total:m2340_4, partial:m2342_2 -# 2342| r2342_4(glval) = FunctionAddress[String] : -# 2342| v2342_5(void) = Call[String] : func:r2342_4, this:r2342_1 -# 2342| m2342_6(unknown) = ^CallSideEffect : ~m2342_3 -# 2342| m2342_7(unknown) = Chi : total:m2342_3, partial:m2342_6 -# 2342| m2342_8(String) = ^IndirectMayWriteSideEffect[-1] : &:r2342_1 -# 2342| m2342_9(unknown) = Chi : total:m2342_7, partial:m2342_8 +# 2338| Block 2 +# 2338| r2338_1(glval) = VariableAddress[s2] : +# 2338| m2338_2(String) = Uninitialized[s2] : &:r2338_1 +# 2338| m2338_3(unknown) = Chi : total:m2335_19, partial:m2338_2 +# 2338| r2338_4(glval) = FunctionAddress[String] : +# 2338| v2338_5(void) = Call[String] : func:r2338_4, this:r2338_1 +# 2338| m2338_6(unknown) = ^CallSideEffect : ~m2338_3 +# 2338| m2338_7(unknown) = Chi : total:m2338_3, partial:m2338_6 +# 2338| m2338_8(String) = ^IndirectMayWriteSideEffect[-1] : &:r2338_1 +# 2338| m2338_9(unknown) = Chi : total:m2338_7, partial:m2338_8 +# 2339| r2339_1(glval) = VariableAddress[s2] : +# 2339| r2339_2(glval) = FunctionAddress[~String] : +# 2339| v2339_3(void) = Call[~String] : func:r2339_2, this:r2339_1 +# 2339| m2339_4(unknown) = ^CallSideEffect : ~m2338_9 +# 2339| m2339_5(unknown) = Chi : total:m2338_9, partial:m2339_4 +# 2339| v2339_6(void) = ^IndirectReadSideEffect[-1] : &:r2339_1, ~m2339_5 +# 2339| m2339_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2339_1 +# 2339| m2339_8(unknown) = Chi : total:m2339_5, partial:m2339_7 +#-----| Goto -> Block 3 + +# 2339| Block 3 +# 2339| m2339_9(unknown) = Phi : from 1:~m2337_8, from 2:~m2339_8 +# 2339| r2339_10(glval) = VariableAddress[B] : +# 2339| r2339_11(glval) = FunctionAddress[~Bool] : +# 2339| v2339_12(void) = Call[~Bool] : func:r2339_11, this:r2339_10 +# 2339| m2339_13(unknown) = ^CallSideEffect : ~m2339_9 +# 2339| m2339_14(unknown) = Chi : total:m2339_9, partial:m2339_13 +# 2339| v2339_15(void) = ^IndirectReadSideEffect[-1] : &:r2339_10, ~m2339_14 +# 2339| m2339_16(Bool) = ^IndirectMayWriteSideEffect[-1] : &:r2339_10 +# 2339| m2339_17(unknown) = Chi : total:m2339_14, partial:m2339_16 +# 2340| v2340_1(void) = NoOp : +# 2334| v2334_7(void) = ReturnVoid : +# 2334| v2334_8(void) = AliasedUse : ~m2339_14 +# 2334| v2334_9(void) = ExitFunction : + +# 2342| void WhileLoopDestructors(bool) +# 2342| Block 0 +# 2342| v2342_1(void) = EnterFunction : +# 2342| m2342_2(unknown) = AliasedDefinition : +# 2342| m2342_3(unknown) = InitializeNonLocal : +# 2342| m2342_4(unknown) = Chi : total:m2342_2, partial:m2342_3 +# 2342| r2342_5(glval) = VariableAddress[b] : +# 2342| m2342_6(bool) = InitializeParameter[b] : &:r2342_5 +# 2344| r2344_1(glval) = VariableAddress[s] : +# 2344| m2344_2(String) = Uninitialized[s] : &:r2344_1 +# 2344| m2344_3(unknown) = Chi : total:m2342_4, partial:m2344_2 +# 2344| r2344_4(glval) = FunctionAddress[String] : +# 2344| v2344_5(void) = Call[String] : func:r2344_4, this:r2344_1 +# 2344| m2344_6(unknown) = ^CallSideEffect : ~m2344_3 +# 2344| m2344_7(unknown) = Chi : total:m2344_3, partial:m2344_6 +# 2344| m2344_8(String) = ^IndirectMayWriteSideEffect[-1] : &:r2344_1 +# 2344| m2344_9(unknown) = Chi : total:m2344_7, partial:m2344_8 #-----| Goto -> Block 1 -# 2343| Block 1 -# 2343| m2343_1(bool) = Phi : from 0:m2340_6, from 2:m2344_3 -# 2343| r2343_2(glval) = VariableAddress[b] : -# 2343| r2343_3(bool) = Load[b] : &:r2343_2, m2343_1 -# 2343| v2343_4(void) = ConditionalBranch : r2343_3 +# 2345| Block 1 +# 2345| m2345_1(bool) = Phi : from 0:m2342_6, from 2:m2346_3 +# 2345| r2345_2(glval) = VariableAddress[b] : +# 2345| r2345_3(bool) = Load[b] : &:r2345_2, m2345_1 +# 2345| v2345_4(void) = ConditionalBranch : r2345_3 #-----| False -> Block 3 #-----| True -> Block 2 -# 2344| Block 2 -# 2344| r2344_1(bool) = Constant[0] : -# 2344| r2344_2(glval) = VariableAddress[b] : -# 2344| m2344_3(bool) = Store[b] : &:r2344_2, r2344_1 +# 2346| Block 2 +# 2346| r2346_1(bool) = Constant[0] : +# 2346| r2346_2(glval) = VariableAddress[b] : +# 2346| m2346_3(bool) = Store[b] : &:r2346_2, r2346_1 #-----| Goto (back edge) -> Block 1 -# 2346| Block 3 -# 2346| r2346_1(glval) = VariableAddress[s] : -# 2346| r2346_2(glval) = FunctionAddress[~String] : -# 2346| v2346_3(void) = Call[~String] : func:r2346_2, this:r2346_1 -# 2346| m2346_4(unknown) = ^CallSideEffect : ~m2342_9 -# 2346| m2346_5(unknown) = Chi : total:m2342_9, partial:m2346_4 -# 2346| v2346_6(void) = ^IndirectReadSideEffect[-1] : &:r2346_1, ~m2346_5 -# 2346| m2346_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2346_1 -# 2346| m2346_8(unknown) = Chi : total:m2346_5, partial:m2346_7 +# 2348| Block 3 +# 2348| r2348_1(glval) = VariableAddress[s] : +# 2348| r2348_2(glval) = FunctionAddress[~String] : +# 2348| v2348_3(void) = Call[~String] : func:r2348_2, this:r2348_1 +# 2348| m2348_4(unknown) = ^CallSideEffect : ~m2344_9 +# 2348| m2348_5(unknown) = Chi : total:m2344_9, partial:m2348_4 +# 2348| v2348_6(void) = ^IndirectReadSideEffect[-1] : &:r2348_1, ~m2348_5 +# 2348| m2348_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2348_1 +# 2348| m2348_8(unknown) = Chi : total:m2348_5, partial:m2348_7 #-----| Goto -> Block 4 -# 2349| Block 4 -# 2349| m2349_1(unknown) = Phi : from 3:~m2346_8, from 5:~m2351_8 -# 2349| m2349_2(bool) = Phi : from 3:m2343_1, from 5:m2350_3 -# 2349| r2349_3(glval) = VariableAddress[B] : -# 2349| m2349_4(Bool) = Uninitialized[B] : &:r2349_3 -# 2349| m2349_5(unknown) = Chi : total:m2349_1, partial:m2349_4 -# 2349| r2349_6(glval) = FunctionAddress[Bool] : -# 2349| r2349_7(glval) = VariableAddress[b] : -# 2349| r2349_8(bool) = Load[b] : &:r2349_7, m2349_2 -# 2349| v2349_9(void) = Call[Bool] : func:r2349_6, this:r2349_3, 0:r2349_8 -# 2349| m2349_10(unknown) = ^CallSideEffect : ~m2349_5 -# 2349| m2349_11(unknown) = Chi : total:m2349_5, partial:m2349_10 -# 2349| m2349_12(Bool) = ^IndirectMayWriteSideEffect[-1] : &:r2349_3 -# 2349| m2349_13(unknown) = Chi : total:m2349_11, partial:m2349_12 -# 2349| r2349_14(glval) = VariableAddress[B] : -# 2349| r2349_15(glval) = FunctionAddress[operator bool] : -# 2349| r2349_16(bool) = Call[operator bool] : func:r2349_15, this:r2349_14 -# 2349| m2349_17(unknown) = ^CallSideEffect : ~m2349_13 -# 2349| m2349_18(unknown) = Chi : total:m2349_13, partial:m2349_17 -# 2349| v2349_19(void) = ^IndirectReadSideEffect[-1] : &:r2349_14, ~m2349_18 -# 2349| m2349_20(Bool) = ^IndirectMayWriteSideEffect[-1] : &:r2349_14 -# 2349| m2349_21(unknown) = Chi : total:m2349_18, partial:m2349_20 -# 2349| r2349_22(bool) = CopyValue : r2349_16 -# 2349| v2349_23(void) = ConditionalBranch : r2349_22 +# 2351| Block 4 +# 2351| m2351_1(unknown) = Phi : from 3:~m2348_8, from 5:~m2353_8 +# 2351| m2351_2(bool) = Phi : from 3:m2345_1, from 5:m2352_3 +# 2351| r2351_3(glval) = VariableAddress[B] : +# 2351| m2351_4(Bool) = Uninitialized[B] : &:r2351_3 +# 2351| m2351_5(unknown) = Chi : total:m2351_1, partial:m2351_4 +# 2351| r2351_6(glval) = FunctionAddress[Bool] : +# 2351| r2351_7(glval) = VariableAddress[b] : +# 2351| r2351_8(bool) = Load[b] : &:r2351_7, m2351_2 +# 2351| v2351_9(void) = Call[Bool] : func:r2351_6, this:r2351_3, 0:r2351_8 +# 2351| m2351_10(unknown) = ^CallSideEffect : ~m2351_5 +# 2351| m2351_11(unknown) = Chi : total:m2351_5, partial:m2351_10 +# 2351| m2351_12(Bool) = ^IndirectMayWriteSideEffect[-1] : &:r2351_3 +# 2351| m2351_13(unknown) = Chi : total:m2351_11, partial:m2351_12 +# 2351| r2351_14(glval) = VariableAddress[B] : +# 2351| r2351_15(glval) = FunctionAddress[operator bool] : +# 2351| r2351_16(bool) = Call[operator bool] : func:r2351_15, this:r2351_14 +# 2351| m2351_17(unknown) = ^CallSideEffect : ~m2351_13 +# 2351| m2351_18(unknown) = Chi : total:m2351_13, partial:m2351_17 +# 2351| v2351_19(void) = ^IndirectReadSideEffect[-1] : &:r2351_14, ~m2351_18 +# 2351| m2351_20(Bool) = ^IndirectMayWriteSideEffect[-1] : &:r2351_14 +# 2351| m2351_21(unknown) = Chi : total:m2351_18, partial:m2351_20 +# 2351| r2351_22(bool) = CopyValue : r2351_16 +# 2351| v2351_23(void) = ConditionalBranch : r2351_22 #-----| False -> Block 6 #-----| True -> Block 5 -# 2350| Block 5 -# 2350| r2350_1(bool) = Constant[0] : -# 2350| r2350_2(glval) = VariableAddress[b] : -# 2350| m2350_3(bool) = Store[b] : &:r2350_2, r2350_1 -# 2351| r2351_1(glval) = VariableAddress[B] : -# 2351| r2351_2(glval) = FunctionAddress[~Bool] : -# 2351| v2351_3(void) = Call[~Bool] : func:r2351_2, this:r2351_1 -# 2351| m2351_4(unknown) = ^CallSideEffect : ~m2349_21 -# 2351| m2351_5(unknown) = Chi : total:m2349_21, partial:m2351_4 -# 2351| v2351_6(void) = ^IndirectReadSideEffect[-1] : &:r2351_1, ~m2351_5 -# 2351| m2351_7(Bool) = ^IndirectMayWriteSideEffect[-1] : &:r2351_1 -# 2351| m2351_8(unknown) = Chi : total:m2351_5, partial:m2351_7 +# 2352| Block 5 +# 2352| r2352_1(bool) = Constant[0] : +# 2352| r2352_2(glval) = VariableAddress[b] : +# 2352| m2352_3(bool) = Store[b] : &:r2352_2, r2352_1 +# 2353| r2353_1(glval) = VariableAddress[B] : +# 2353| r2353_2(glval) = FunctionAddress[~Bool] : +# 2353| v2353_3(void) = Call[~Bool] : func:r2353_2, this:r2353_1 +# 2353| m2353_4(unknown) = ^CallSideEffect : ~m2351_21 +# 2353| m2353_5(unknown) = Chi : total:m2351_21, partial:m2353_4 +# 2353| v2353_6(void) = ^IndirectReadSideEffect[-1] : &:r2353_1, ~m2353_5 +# 2353| m2353_7(Bool) = ^IndirectMayWriteSideEffect[-1] : &:r2353_1 +# 2353| m2353_8(unknown) = Chi : total:m2353_5, partial:m2353_7 #-----| Goto (back edge) -> Block 4 -# 2351| Block 6 -# 2351| r2351_9(glval) = VariableAddress[B] : -# 2351| r2351_10(glval) = FunctionAddress[~Bool] : -# 2351| v2351_11(void) = Call[~Bool] : func:r2351_10, this:r2351_9 -# 2351| m2351_12(unknown) = ^CallSideEffect : ~m2349_21 -# 2351| m2351_13(unknown) = Chi : total:m2349_21, partial:m2351_12 -# 2351| v2351_14(void) = ^IndirectReadSideEffect[-1] : &:r2351_9, ~m2351_13 -# 2351| m2351_15(Bool) = ^IndirectMayWriteSideEffect[-1] : &:r2351_9 -# 2351| m2351_16(unknown) = Chi : total:m2351_13, partial:m2351_15 -# 2353| v2353_1(void) = NoOp : -# 2340| v2340_7(void) = ReturnVoid : -# 2340| v2340_8(void) = AliasedUse : ~m2351_13 -# 2340| v2340_9(void) = ExitFunction : - -# 2355| void VoidFunc() -# 2355| Block 0 -# 2355| v2355_1(void) = EnterFunction : -# 2355| m2355_2(unknown) = AliasedDefinition : -# 2355| m2355_3(unknown) = InitializeNonLocal : -# 2355| m2355_4(unknown) = Chi : total:m2355_2, partial:m2355_3 -# 2355| v2355_5(void) = NoOp : -# 2355| v2355_6(void) = ReturnVoid : -# 2355| v2355_7(void) = AliasedUse : m2355_3 -# 2355| v2355_8(void) = ExitFunction : - -# 2357| void IfReturnDestructors(bool) +# 2353| Block 6 +# 2353| r2353_9(glval) = VariableAddress[B] : +# 2353| r2353_10(glval) = FunctionAddress[~Bool] : +# 2353| v2353_11(void) = Call[~Bool] : func:r2353_10, this:r2353_9 +# 2353| m2353_12(unknown) = ^CallSideEffect : ~m2351_21 +# 2353| m2353_13(unknown) = Chi : total:m2351_21, partial:m2353_12 +# 2353| v2353_14(void) = ^IndirectReadSideEffect[-1] : &:r2353_9, ~m2353_13 +# 2353| m2353_15(Bool) = ^IndirectMayWriteSideEffect[-1] : &:r2353_9 +# 2353| m2353_16(unknown) = Chi : total:m2353_13, partial:m2353_15 +# 2355| v2355_1(void) = NoOp : +# 2342| v2342_7(void) = ReturnVoid : +# 2342| v2342_8(void) = AliasedUse : ~m2353_13 +# 2342| v2342_9(void) = ExitFunction : + +# 2357| void VoidFunc() # 2357| Block 0 -# 2357| v2357_1(void) = EnterFunction : -# 2357| m2357_2(unknown) = AliasedDefinition : -# 2357| m2357_3(unknown) = InitializeNonLocal : -# 2357| m2357_4(unknown) = Chi : total:m2357_2, partial:m2357_3 -# 2357| r2357_5(glval) = VariableAddress[b] : -# 2357| m2357_6(bool) = InitializeParameter[b] : &:r2357_5 -# 2358| r2358_1(glval) = VariableAddress[s] : -# 2358| m2358_2(String) = Uninitialized[s] : &:r2358_1 -# 2358| m2358_3(unknown) = Chi : total:m2357_4, partial:m2358_2 -# 2358| r2358_4(glval) = FunctionAddress[String] : -# 2358| v2358_5(void) = Call[String] : func:r2358_4, this:r2358_1 -# 2358| m2358_6(unknown) = ^CallSideEffect : ~m2358_3 -# 2358| m2358_7(unknown) = Chi : total:m2358_3, partial:m2358_6 -# 2358| m2358_8(String) = ^IndirectMayWriteSideEffect[-1] : &:r2358_1 -# 2358| m2358_9(unknown) = Chi : total:m2358_7, partial:m2358_8 -# 2359| r2359_1(glval) = VariableAddress[b] : -# 2359| r2359_2(bool) = Load[b] : &:r2359_1, m2357_6 -# 2359| v2359_3(void) = ConditionalBranch : r2359_2 +# 2357| v2357_1(void) = EnterFunction : +# 2357| m2357_2(unknown) = AliasedDefinition : +# 2357| m2357_3(unknown) = InitializeNonLocal : +# 2357| m2357_4(unknown) = Chi : total:m2357_2, partial:m2357_3 +# 2357| v2357_5(void) = NoOp : +# 2357| v2357_6(void) = ReturnVoid : +# 2357| v2357_7(void) = AliasedUse : m2357_3 +# 2357| v2357_8(void) = ExitFunction : + +# 2359| void IfReturnDestructors(bool) +# 2359| Block 0 +# 2359| v2359_1(void) = EnterFunction : +# 2359| m2359_2(unknown) = AliasedDefinition : +# 2359| m2359_3(unknown) = InitializeNonLocal : +# 2359| m2359_4(unknown) = Chi : total:m2359_2, partial:m2359_3 +# 2359| r2359_5(glval) = VariableAddress[b] : +# 2359| m2359_6(bool) = InitializeParameter[b] : &:r2359_5 +# 2360| r2360_1(glval) = VariableAddress[s] : +# 2360| m2360_2(String) = Uninitialized[s] : &:r2360_1 +# 2360| m2360_3(unknown) = Chi : total:m2359_4, partial:m2360_2 +# 2360| r2360_4(glval) = FunctionAddress[String] : +# 2360| v2360_5(void) = Call[String] : func:r2360_4, this:r2360_1 +# 2360| m2360_6(unknown) = ^CallSideEffect : ~m2360_3 +# 2360| m2360_7(unknown) = Chi : total:m2360_3, partial:m2360_6 +# 2360| m2360_8(String) = ^IndirectMayWriteSideEffect[-1] : &:r2360_1 +# 2360| m2360_9(unknown) = Chi : total:m2360_7, partial:m2360_8 +# 2361| r2361_1(glval) = VariableAddress[b] : +# 2361| r2361_2(bool) = Load[b] : &:r2361_1, m2359_6 +# 2361| v2361_3(void) = ConditionalBranch : r2361_2 #-----| False -> Block 3 #-----| True -> Block 2 -# 2357| Block 1 -# 2357| m2357_7(unknown) = Phi : from 2:~m2366_8, from 4:~m2366_16, from 5:~m2366_25 -# 2357| v2357_8(void) = ReturnVoid : -# 2357| v2357_9(void) = AliasedUse : ~m2357_7 -# 2357| v2357_10(void) = ExitFunction : - -# 2360| Block 2 -# 2360| v2360_1(void) = NoOp : -# 2366| r2366_1(glval) = VariableAddress[s] : -# 2366| r2366_2(glval) = FunctionAddress[~String] : -# 2366| v2366_3(void) = Call[~String] : func:r2366_2, this:r2366_1 -# 2366| m2366_4(unknown) = ^CallSideEffect : ~m2358_9 -# 2366| m2366_5(unknown) = Chi : total:m2358_9, partial:m2366_4 -# 2366| v2366_6(void) = ^IndirectReadSideEffect[-1] : &:r2366_1, ~m2366_5 -# 2366| m2366_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2366_1 -# 2366| m2366_8(unknown) = Chi : total:m2366_5, partial:m2366_7 +# 2359| Block 1 +# 2359| m2359_7(unknown) = Phi : from 2:~m2368_8, from 4:~m2368_16, from 5:~m2368_25 +# 2359| v2359_8(void) = ReturnVoid : +# 2359| v2359_9(void) = AliasedUse : ~m2359_7 +# 2359| v2359_10(void) = ExitFunction : + +# 2362| Block 2 +# 2362| v2362_1(void) = NoOp : +# 2368| r2368_1(glval) = VariableAddress[s] : +# 2368| r2368_2(glval) = FunctionAddress[~String] : +# 2368| v2368_3(void) = Call[~String] : func:r2368_2, this:r2368_1 +# 2368| m2368_4(unknown) = ^CallSideEffect : ~m2360_9 +# 2368| m2368_5(unknown) = Chi : total:m2360_9, partial:m2368_4 +# 2368| v2368_6(void) = ^IndirectReadSideEffect[-1] : &:r2368_1, ~m2368_5 +# 2368| m2368_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2368_1 +# 2368| m2368_8(unknown) = Chi : total:m2368_5, partial:m2368_7 #-----| Goto -> Block 1 -# 2362| Block 3 -# 2362| r2362_1(glval) = VariableAddress[b] : -# 2362| r2362_2(bool) = Load[b] : &:r2362_1, m2357_6 -# 2362| v2362_3(void) = ConditionalBranch : r2362_2 +# 2364| Block 3 +# 2364| r2364_1(glval) = VariableAddress[b] : +# 2364| r2364_2(bool) = Load[b] : &:r2364_1, m2359_6 +# 2364| v2364_3(void) = ConditionalBranch : r2364_2 #-----| False -> Block 5 #-----| True -> Block 4 -# 2363| Block 4 -# 2363| r2363_1(glval) = FunctionAddress[VoidFunc] : -# 2363| v2363_2(void) = Call[VoidFunc] : func:r2363_1 -# 2363| m2363_3(unknown) = ^CallSideEffect : ~m2358_9 -# 2363| m2363_4(unknown) = Chi : total:m2358_9, partial:m2363_3 -# 2363| v2363_5(void) = NoOp : -# 2366| r2366_9(glval) = VariableAddress[s] : -# 2366| r2366_10(glval) = FunctionAddress[~String] : -# 2366| v2366_11(void) = Call[~String] : func:r2366_10, this:r2366_9 -# 2366| m2366_12(unknown) = ^CallSideEffect : ~m2363_4 -# 2366| m2366_13(unknown) = Chi : total:m2363_4, partial:m2366_12 -# 2366| v2366_14(void) = ^IndirectReadSideEffect[-1] : &:r2366_9, ~m2366_13 -# 2366| m2366_15(String) = ^IndirectMayWriteSideEffect[-1] : &:r2366_9 -# 2366| m2366_16(unknown) = Chi : total:m2366_13, partial:m2366_15 +# 2365| Block 4 +# 2365| r2365_1(glval) = FunctionAddress[VoidFunc] : +# 2365| v2365_2(void) = Call[VoidFunc] : func:r2365_1 +# 2365| m2365_3(unknown) = ^CallSideEffect : ~m2360_9 +# 2365| m2365_4(unknown) = Chi : total:m2360_9, partial:m2365_3 +# 2365| v2365_5(void) = NoOp : +# 2368| r2368_9(glval) = VariableAddress[s] : +# 2368| r2368_10(glval) = FunctionAddress[~String] : +# 2368| v2368_11(void) = Call[~String] : func:r2368_10, this:r2368_9 +# 2368| m2368_12(unknown) = ^CallSideEffect : ~m2365_4 +# 2368| m2368_13(unknown) = Chi : total:m2365_4, partial:m2368_12 +# 2368| v2368_14(void) = ^IndirectReadSideEffect[-1] : &:r2368_9, ~m2368_13 +# 2368| m2368_15(String) = ^IndirectMayWriteSideEffect[-1] : &:r2368_9 +# 2368| m2368_16(unknown) = Chi : total:m2368_13, partial:m2368_15 #-----| Goto -> Block 1 -# 2365| Block 5 -# 2365| r2365_1(glval) = VariableAddress[s] : -# 2366| v2366_17(void) = NoOp : -# 2366| r2366_18(glval) = VariableAddress[s] : -# 2366| r2366_19(glval) = FunctionAddress[~String] : -# 2366| v2366_20(void) = Call[~String] : func:r2366_19, this:r2366_18 -# 2366| m2366_21(unknown) = ^CallSideEffect : ~m2358_9 -# 2366| m2366_22(unknown) = Chi : total:m2358_9, partial:m2366_21 -# 2366| v2366_23(void) = ^IndirectReadSideEffect[-1] : &:r2366_18, ~m2366_22 -# 2366| m2366_24(String) = ^IndirectMayWriteSideEffect[-1] : &:r2366_18 -# 2366| m2366_25(unknown) = Chi : total:m2366_22, partial:m2366_24 +# 2367| Block 5 +# 2367| r2367_1(glval) = VariableAddress[s] : +# 2368| v2368_17(void) = NoOp : +# 2368| r2368_18(glval) = VariableAddress[s] : +# 2368| r2368_19(glval) = FunctionAddress[~String] : +# 2368| v2368_20(void) = Call[~String] : func:r2368_19, this:r2368_18 +# 2368| m2368_21(unknown) = ^CallSideEffect : ~m2360_9 +# 2368| m2368_22(unknown) = Chi : total:m2360_9, partial:m2368_21 +# 2368| v2368_23(void) = ^IndirectReadSideEffect[-1] : &:r2368_18, ~m2368_22 +# 2368| m2368_24(String) = ^IndirectMayWriteSideEffect[-1] : &:r2368_18 +# 2368| m2368_25(unknown) = Chi : total:m2368_22, partial:m2368_24 #-----| Goto -> Block 1 -# 2368| int IfReturnDestructors3(bool) -# 2368| Block 0 -# 2368| v2368_1(void) = EnterFunction : -# 2368| m2368_2(unknown) = AliasedDefinition : -# 2368| m2368_3(unknown) = InitializeNonLocal : -# 2368| m2368_4(unknown) = Chi : total:m2368_2, partial:m2368_3 -# 2368| r2368_5(glval) = VariableAddress[b] : -# 2368| m2368_6(bool) = InitializeParameter[b] : &:r2368_5 -# 2369| r2369_1(glval) = VariableAddress[s] : -# 2369| m2369_2(String) = Uninitialized[s] : &:r2369_1 -# 2369| m2369_3(unknown) = Chi : total:m2368_4, partial:m2369_2 -# 2369| r2369_4(glval) = FunctionAddress[String] : -# 2369| v2369_5(void) = Call[String] : func:r2369_4, this:r2369_1 -# 2369| m2369_6(unknown) = ^CallSideEffect : ~m2369_3 -# 2369| m2369_7(unknown) = Chi : total:m2369_3, partial:m2369_6 -# 2369| m2369_8(String) = ^IndirectMayWriteSideEffect[-1] : &:r2369_1 -# 2369| m2369_9(unknown) = Chi : total:m2369_7, partial:m2369_8 -# 2370| r2370_1(glval) = VariableAddress[b] : -# 2370| r2370_2(bool) = Load[b] : &:r2370_1, m2368_6 -# 2370| v2370_3(void) = ConditionalBranch : r2370_2 +# 2370| int IfReturnDestructors3(bool) +# 2370| Block 0 +# 2370| v2370_1(void) = EnterFunction : +# 2370| m2370_2(unknown) = AliasedDefinition : +# 2370| m2370_3(unknown) = InitializeNonLocal : +# 2370| m2370_4(unknown) = Chi : total:m2370_2, partial:m2370_3 +# 2370| r2370_5(glval) = VariableAddress[b] : +# 2370| m2370_6(bool) = InitializeParameter[b] : &:r2370_5 +# 2371| r2371_1(glval) = VariableAddress[s] : +# 2371| m2371_2(String) = Uninitialized[s] : &:r2371_1 +# 2371| m2371_3(unknown) = Chi : total:m2370_4, partial:m2371_2 +# 2371| r2371_4(glval) = FunctionAddress[String] : +# 2371| v2371_5(void) = Call[String] : func:r2371_4, this:r2371_1 +# 2371| m2371_6(unknown) = ^CallSideEffect : ~m2371_3 +# 2371| m2371_7(unknown) = Chi : total:m2371_3, partial:m2371_6 +# 2371| m2371_8(String) = ^IndirectMayWriteSideEffect[-1] : &:r2371_1 +# 2371| m2371_9(unknown) = Chi : total:m2371_7, partial:m2371_8 +# 2372| r2372_1(glval) = VariableAddress[b] : +# 2372| r2372_2(bool) = Load[b] : &:r2372_1, m2370_6 +# 2372| v2372_3(void) = ConditionalBranch : r2372_2 #-----| False -> Block 3 #-----| True -> Block 2 -# 2368| Block 1 -# 2368| m2368_7(unknown) = Phi : from 2:~m2374_8, from 3:~m2374_16 -# 2368| m2368_8(int) = Phi : from 2:m2371_3, from 3:m2373_3 -# 2368| r2368_9(glval) = VariableAddress[#return] : -# 2368| v2368_10(void) = ReturnValue : &:r2368_9, m2368_8 -# 2368| v2368_11(void) = AliasedUse : ~m2368_7 -# 2368| v2368_12(void) = ExitFunction : - -# 2371| Block 2 -# 2371| r2371_1(glval) = VariableAddress[#return] : -# 2371| r2371_2(int) = Constant[1] : -# 2371| m2371_3(int) = Store[#return] : &:r2371_1, r2371_2 -# 2374| r2374_1(glval) = VariableAddress[s] : -# 2374| r2374_2(glval) = FunctionAddress[~String] : -# 2374| v2374_3(void) = Call[~String] : func:r2374_2, this:r2374_1 -# 2374| m2374_4(unknown) = ^CallSideEffect : ~m2369_9 -# 2374| m2374_5(unknown) = Chi : total:m2369_9, partial:m2374_4 -# 2374| v2374_6(void) = ^IndirectReadSideEffect[-1] : &:r2374_1, ~m2374_5 -# 2374| m2374_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2374_1 -# 2374| m2374_8(unknown) = Chi : total:m2374_5, partial:m2374_7 +# 2370| Block 1 +# 2370| m2370_7(unknown) = Phi : from 2:~m2376_8, from 3:~m2376_16 +# 2370| m2370_8(int) = Phi : from 2:m2373_3, from 3:m2375_3 +# 2370| r2370_9(glval) = VariableAddress[#return] : +# 2370| v2370_10(void) = ReturnValue : &:r2370_9, m2370_8 +# 2370| v2370_11(void) = AliasedUse : ~m2370_7 +# 2370| v2370_12(void) = ExitFunction : + +# 2373| Block 2 +# 2373| r2373_1(glval) = VariableAddress[#return] : +# 2373| r2373_2(int) = Constant[1] : +# 2373| m2373_3(int) = Store[#return] : &:r2373_1, r2373_2 +# 2376| r2376_1(glval) = VariableAddress[s] : +# 2376| r2376_2(glval) = FunctionAddress[~String] : +# 2376| v2376_3(void) = Call[~String] : func:r2376_2, this:r2376_1 +# 2376| m2376_4(unknown) = ^CallSideEffect : ~m2371_9 +# 2376| m2376_5(unknown) = Chi : total:m2371_9, partial:m2376_4 +# 2376| v2376_6(void) = ^IndirectReadSideEffect[-1] : &:r2376_1, ~m2376_5 +# 2376| m2376_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2376_1 +# 2376| m2376_8(unknown) = Chi : total:m2376_5, partial:m2376_7 #-----| Goto -> Block 1 -# 2373| Block 3 -# 2373| r2373_1(glval) = VariableAddress[#return] : -# 2373| r2373_2(int) = Constant[0] : -# 2373| m2373_3(int) = Store[#return] : &:r2373_1, r2373_2 -# 2374| r2374_9(glval) = VariableAddress[s] : -# 2374| r2374_10(glval) = FunctionAddress[~String] : -# 2374| v2374_11(void) = Call[~String] : func:r2374_10, this:r2374_9 -# 2374| m2374_12(unknown) = ^CallSideEffect : ~m2369_9 -# 2374| m2374_13(unknown) = Chi : total:m2369_9, partial:m2374_12 -# 2374| v2374_14(void) = ^IndirectReadSideEffect[-1] : &:r2374_9, ~m2374_13 -# 2374| m2374_15(String) = ^IndirectMayWriteSideEffect[-1] : &:r2374_9 -# 2374| m2374_16(unknown) = Chi : total:m2374_13, partial:m2374_15 +# 2375| Block 3 +# 2375| r2375_1(glval) = VariableAddress[#return] : +# 2375| r2375_2(int) = Constant[0] : +# 2375| m2375_3(int) = Store[#return] : &:r2375_1, r2375_2 +# 2376| r2376_9(glval) = VariableAddress[s] : +# 2376| r2376_10(glval) = FunctionAddress[~String] : +# 2376| v2376_11(void) = Call[~String] : func:r2376_10, this:r2376_9 +# 2376| m2376_12(unknown) = ^CallSideEffect : ~m2371_9 +# 2376| m2376_13(unknown) = Chi : total:m2371_9, partial:m2376_12 +# 2376| v2376_14(void) = ^IndirectReadSideEffect[-1] : &:r2376_9, ~m2376_13 +# 2376| m2376_15(String) = ^IndirectMayWriteSideEffect[-1] : &:r2376_9 +# 2376| m2376_16(unknown) = Chi : total:m2376_13, partial:m2376_15 #-----| Goto -> Block 1 -# 2376| void VoidReturnDestructors() -# 2376| Block 0 -# 2376| v2376_1(void) = EnterFunction : -# 2376| m2376_2(unknown) = AliasedDefinition : -# 2376| m2376_3(unknown) = InitializeNonLocal : -# 2376| m2376_4(unknown) = Chi : total:m2376_2, partial:m2376_3 -# 2377| r2377_1(glval) = VariableAddress[s] : -# 2377| m2377_2(String) = Uninitialized[s] : &:r2377_1 -# 2377| m2377_3(unknown) = Chi : total:m2376_4, partial:m2377_2 -# 2377| r2377_4(glval) = FunctionAddress[String] : -# 2377| v2377_5(void) = Call[String] : func:r2377_4, this:r2377_1 -# 2377| m2377_6(unknown) = ^CallSideEffect : ~m2377_3 -# 2377| m2377_7(unknown) = Chi : total:m2377_3, partial:m2377_6 -# 2377| m2377_8(String) = ^IndirectMayWriteSideEffect[-1] : &:r2377_1 -# 2377| m2377_9(unknown) = Chi : total:m2377_7, partial:m2377_8 -# 2378| r2378_1(glval) = FunctionAddress[VoidFunc] : -# 2378| v2378_2(void) = Call[VoidFunc] : func:r2378_1 -# 2378| m2378_3(unknown) = ^CallSideEffect : ~m2377_9 -# 2378| m2378_4(unknown) = Chi : total:m2377_9, partial:m2378_3 -# 2378| v2378_5(void) = NoOp : +# 2378| void VoidReturnDestructors() +# 2378| Block 0 +# 2378| v2378_1(void) = EnterFunction : +# 2378| m2378_2(unknown) = AliasedDefinition : +# 2378| m2378_3(unknown) = InitializeNonLocal : +# 2378| m2378_4(unknown) = Chi : total:m2378_2, partial:m2378_3 # 2379| r2379_1(glval) = VariableAddress[s] : -# 2379| r2379_2(glval) = FunctionAddress[~String] : -# 2379| v2379_3(void) = Call[~String] : func:r2379_2, this:r2379_1 -# 2379| m2379_4(unknown) = ^CallSideEffect : ~m2378_4 -# 2379| m2379_5(unknown) = Chi : total:m2378_4, partial:m2379_4 -# 2379| v2379_6(void) = ^IndirectReadSideEffect[-1] : &:r2379_1, ~m2379_5 -# 2379| m2379_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2379_1 -# 2379| m2379_8(unknown) = Chi : total:m2379_5, partial:m2379_7 -# 2376| v2376_5(void) = ReturnVoid : -# 2376| v2376_6(void) = AliasedUse : ~m2379_5 -# 2376| v2376_7(void) = ExitFunction : - -# 2389| return_routine_type::VoidToIntMemberFunc return_routine_type::GetVoidToIntFunc() -# 2389| Block 0 -# 2389| v2389_1(void) = EnterFunction : -# 2389| m2389_2(unknown) = AliasedDefinition : -# 2389| m2389_3(unknown) = InitializeNonLocal : -# 2389| m2389_4(unknown) = Chi : total:m2389_2, partial:m2389_3 -# 2391| r2391_1(glval<..:: *>) = VariableAddress[#return] : -# 2391| r2391_2(..()(..)) = FunctionAddress[VoidToInt] : -# 2391| m2391_3(..:: *) = Store[#return] : &:r2391_1, r2391_2 -# 2389| r2389_5(glval<..:: *>) = VariableAddress[#return] : -# 2389| v2389_6(void) = ReturnValue : &:r2389_5, m2391_3 -# 2389| v2389_7(void) = AliasedUse : m2389_3 -# 2389| v2389_8(void) = ExitFunction : - -# 2396| int small_operation_should_not_be_constant_folded() -# 2396| Block 0 -# 2396| v2396_1(void) = EnterFunction : -# 2396| m2396_2(unknown) = AliasedDefinition : -# 2396| m2396_3(unknown) = InitializeNonLocal : -# 2396| m2396_4(unknown) = Chi : total:m2396_2, partial:m2396_3 -# 2397| r2397_1(glval) = VariableAddress[#return] : -# 2397| r2397_2(int) = Constant[1] : -# 2397| r2397_3(int) = Constant[2] : -# 2397| r2397_4(int) = BitXor : r2397_2, r2397_3 -# 2397| m2397_5(int) = Store[#return] : &:r2397_1, r2397_4 -# 2396| r2396_5(glval) = VariableAddress[#return] : -# 2396| v2396_6(void) = ReturnValue : &:r2396_5, m2397_5 -# 2396| v2396_7(void) = AliasedUse : m2396_3 -# 2396| v2396_8(void) = ExitFunction : - -# 2407| int large_operation_should_be_constant_folded() -# 2407| Block 0 -# 2407| v2407_1(void) = EnterFunction : -# 2407| m2407_2(unknown) = AliasedDefinition : -# 2407| m2407_3(unknown) = InitializeNonLocal : -# 2407| m2407_4(unknown) = Chi : total:m2407_2, partial:m2407_3 -# 2408| r2408_1(glval) = VariableAddress[#return] : -# 2408| r2408_2(int) = Constant[0] : -# 2408| m2408_3(int) = Store[#return] : &:r2408_1, r2408_2 -# 2407| r2407_5(glval) = VariableAddress[#return] : -# 2407| v2407_6(void) = ReturnValue : &:r2407_5, m2408_3 -# 2407| v2407_7(void) = AliasedUse : m2407_3 -# 2407| v2407_8(void) = ExitFunction : - -# 2411| void initialization_with_temp_destructor() -# 2411| Block 0 -# 2411| v2411_1(void) = EnterFunction : -# 2411| m2411_2(unknown) = AliasedDefinition : -# 2411| m2411_3(unknown) = InitializeNonLocal : -# 2411| m2411_4(unknown) = Chi : total:m2411_2, partial:m2411_3 -# 2412| r2412_1(glval) = VariableAddress[x] : -# 2412| r2412_2(glval) = VariableAddress[#temp2412:18] : -# 2412| m2412_3(ClassWithDestructor) = Uninitialized[#temp2412:18] : &:r2412_2 -# 2412| r2412_4(glval) = FunctionAddress[ClassWithDestructor] : -# 2412| v2412_5(void) = Call[ClassWithDestructor] : func:r2412_4, this:r2412_2 -# 2412| m2412_6(unknown) = ^CallSideEffect : ~m2411_4 -# 2412| m2412_7(unknown) = Chi : total:m2411_4, partial:m2412_6 -# 2412| m2412_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2412_2 -# 2412| m2412_9(ClassWithDestructor) = Chi : total:m2412_3, partial:m2412_8 -# 2412| r2412_10(glval) = FunctionAddress[get_x] : -# 2412| r2412_11(char) = Call[get_x] : func:r2412_10, this:r2412_2 -# 2412| m2412_12(unknown) = ^CallSideEffect : ~m2412_7 -# 2412| m2412_13(unknown) = Chi : total:m2412_7, partial:m2412_12 -# 2412| v2412_14(void) = ^IndirectReadSideEffect[-1] : &:r2412_2, m2412_9 -# 2412| m2412_15(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2412_2 -# 2412| m2412_16(ClassWithDestructor) = Chi : total:m2412_9, partial:m2412_15 -# 2412| r2412_17(glval) = CopyValue : r2412_2 -# 2412| r2412_18(glval) = FunctionAddress[~ClassWithDestructor] : -# 2412| v2412_19(void) = Call[~ClassWithDestructor] : func:r2412_18, this:r2412_17 -# 2412| m2412_20(unknown) = ^CallSideEffect : ~m2412_13 -# 2412| m2412_21(unknown) = Chi : total:m2412_13, partial:m2412_20 -# 2412| v2412_22(void) = ^IndirectReadSideEffect[-1] : &:r2412_17, m2412_16 -# 2412| m2412_23(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2412_17 -# 2412| m2412_24(ClassWithDestructor) = Chi : total:m2412_16, partial:m2412_23 -# 2412| m2412_25(char) = Store[x] : &:r2412_1, r2412_11 -# 2412| r2412_26(glval) = VariableAddress[x] : -# 2412| r2412_27(char) = Load[x] : &:r2412_26, m2412_25 -# 2412| r2412_28(char) = Constant[0] : -# 2412| r2412_29(bool) = CompareNE : r2412_27, r2412_28 -# 2412| r2412_30(bool) = CopyValue : r2412_29 -# 2412| v2412_31(void) = ConditionalBranch : r2412_30 +# 2379| m2379_2(String) = Uninitialized[s] : &:r2379_1 +# 2379| m2379_3(unknown) = Chi : total:m2378_4, partial:m2379_2 +# 2379| r2379_4(glval) = FunctionAddress[String] : +# 2379| v2379_5(void) = Call[String] : func:r2379_4, this:r2379_1 +# 2379| m2379_6(unknown) = ^CallSideEffect : ~m2379_3 +# 2379| m2379_7(unknown) = Chi : total:m2379_3, partial:m2379_6 +# 2379| m2379_8(String) = ^IndirectMayWriteSideEffect[-1] : &:r2379_1 +# 2379| m2379_9(unknown) = Chi : total:m2379_7, partial:m2379_8 +# 2380| r2380_1(glval) = FunctionAddress[VoidFunc] : +# 2380| v2380_2(void) = Call[VoidFunc] : func:r2380_1 +# 2380| m2380_3(unknown) = ^CallSideEffect : ~m2379_9 +# 2380| m2380_4(unknown) = Chi : total:m2379_9, partial:m2380_3 +# 2380| v2380_5(void) = NoOp : +# 2381| r2381_1(glval) = VariableAddress[s] : +# 2381| r2381_2(glval) = FunctionAddress[~String] : +# 2381| v2381_3(void) = Call[~String] : func:r2381_2, this:r2381_1 +# 2381| m2381_4(unknown) = ^CallSideEffect : ~m2380_4 +# 2381| m2381_5(unknown) = Chi : total:m2380_4, partial:m2381_4 +# 2381| v2381_6(void) = ^IndirectReadSideEffect[-1] : &:r2381_1, ~m2381_5 +# 2381| m2381_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2381_1 +# 2381| m2381_8(unknown) = Chi : total:m2381_5, partial:m2381_7 +# 2378| v2378_5(void) = ReturnVoid : +# 2378| v2378_6(void) = AliasedUse : ~m2381_5 +# 2378| v2378_7(void) = ExitFunction : + +# 2391| return_routine_type::VoidToIntMemberFunc return_routine_type::GetVoidToIntFunc() +# 2391| Block 0 +# 2391| v2391_1(void) = EnterFunction : +# 2391| m2391_2(unknown) = AliasedDefinition : +# 2391| m2391_3(unknown) = InitializeNonLocal : +# 2391| m2391_4(unknown) = Chi : total:m2391_2, partial:m2391_3 +# 2393| r2393_1(glval<..:: *>) = VariableAddress[#return] : +# 2393| r2393_2(..()(..)) = FunctionAddress[VoidToInt] : +# 2393| m2393_3(..:: *) = Store[#return] : &:r2393_1, r2393_2 +# 2391| r2391_5(glval<..:: *>) = VariableAddress[#return] : +# 2391| v2391_6(void) = ReturnValue : &:r2391_5, m2393_3 +# 2391| v2391_7(void) = AliasedUse : m2391_3 +# 2391| v2391_8(void) = ExitFunction : + +# 2398| int small_operation_should_not_be_constant_folded() +# 2398| Block 0 +# 2398| v2398_1(void) = EnterFunction : +# 2398| m2398_2(unknown) = AliasedDefinition : +# 2398| m2398_3(unknown) = InitializeNonLocal : +# 2398| m2398_4(unknown) = Chi : total:m2398_2, partial:m2398_3 +# 2399| r2399_1(glval) = VariableAddress[#return] : +# 2399| r2399_2(int) = Constant[1] : +# 2399| r2399_3(int) = Constant[2] : +# 2399| r2399_4(int) = BitXor : r2399_2, r2399_3 +# 2399| m2399_5(int) = Store[#return] : &:r2399_1, r2399_4 +# 2398| r2398_5(glval) = VariableAddress[#return] : +# 2398| v2398_6(void) = ReturnValue : &:r2398_5, m2399_5 +# 2398| v2398_7(void) = AliasedUse : m2398_3 +# 2398| v2398_8(void) = ExitFunction : + +# 2409| int large_operation_should_be_constant_folded() +# 2409| Block 0 +# 2409| v2409_1(void) = EnterFunction : +# 2409| m2409_2(unknown) = AliasedDefinition : +# 2409| m2409_3(unknown) = InitializeNonLocal : +# 2409| m2409_4(unknown) = Chi : total:m2409_2, partial:m2409_3 +# 2410| r2410_1(glval) = VariableAddress[#return] : +# 2410| r2410_2(int) = Constant[0] : +# 2410| m2410_3(int) = Store[#return] : &:r2410_1, r2410_2 +# 2409| r2409_5(glval) = VariableAddress[#return] : +# 2409| v2409_6(void) = ReturnValue : &:r2409_5, m2410_3 +# 2409| v2409_7(void) = AliasedUse : m2409_3 +# 2409| v2409_8(void) = ExitFunction : + +# 2413| void initialization_with_temp_destructor() +# 2413| Block 0 +# 2413| v2413_1(void) = EnterFunction : +# 2413| m2413_2(unknown) = AliasedDefinition : +# 2413| m2413_3(unknown) = InitializeNonLocal : +# 2413| m2413_4(unknown) = Chi : total:m2413_2, partial:m2413_3 +# 2414| r2414_1(glval) = VariableAddress[x] : +# 2414| r2414_2(glval) = VariableAddress[#temp2414:18] : +# 2414| m2414_3(ClassWithDestructor) = Uninitialized[#temp2414:18] : &:r2414_2 +# 2414| r2414_4(glval) = FunctionAddress[ClassWithDestructor] : +# 2414| v2414_5(void) = Call[ClassWithDestructor] : func:r2414_4, this:r2414_2 +# 2414| m2414_6(unknown) = ^CallSideEffect : ~m2413_4 +# 2414| m2414_7(unknown) = Chi : total:m2413_4, partial:m2414_6 +# 2414| m2414_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2414_2 +# 2414| m2414_9(ClassWithDestructor) = Chi : total:m2414_3, partial:m2414_8 +# 2414| r2414_10(glval) = FunctionAddress[get_x] : +# 2414| r2414_11(char) = Call[get_x] : func:r2414_10, this:r2414_2 +# 2414| m2414_12(unknown) = ^CallSideEffect : ~m2414_7 +# 2414| m2414_13(unknown) = Chi : total:m2414_7, partial:m2414_12 +# 2414| v2414_14(void) = ^IndirectReadSideEffect[-1] : &:r2414_2, m2414_9 +# 2414| m2414_15(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2414_2 +# 2414| m2414_16(ClassWithDestructor) = Chi : total:m2414_9, partial:m2414_15 +# 2414| r2414_17(glval) = CopyValue : r2414_2 +# 2414| r2414_18(glval) = FunctionAddress[~ClassWithDestructor] : +# 2414| v2414_19(void) = Call[~ClassWithDestructor] : func:r2414_18, this:r2414_17 +# 2414| m2414_20(unknown) = ^CallSideEffect : ~m2414_13 +# 2414| m2414_21(unknown) = Chi : total:m2414_13, partial:m2414_20 +# 2414| v2414_22(void) = ^IndirectReadSideEffect[-1] : &:r2414_17, m2414_16 +# 2414| m2414_23(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2414_17 +# 2414| m2414_24(ClassWithDestructor) = Chi : total:m2414_16, partial:m2414_23 +# 2414| m2414_25(char) = Store[x] : &:r2414_1, r2414_11 +# 2414| r2414_26(glval) = VariableAddress[x] : +# 2414| r2414_27(char) = Load[x] : &:r2414_26, m2414_25 +# 2414| r2414_28(char) = Constant[0] : +# 2414| r2414_29(bool) = CompareNE : r2414_27, r2414_28 +# 2414| r2414_30(bool) = CopyValue : r2414_29 +# 2414| v2414_31(void) = ConditionalBranch : r2414_30 #-----| False -> Block 2 #-----| True -> Block 1 -# 2413| Block 1 -# 2413| r2413_1(glval) = VariableAddress[x] : -# 2413| r2413_2(char) = Load[x] : &:r2413_1, m2412_25 -# 2413| r2413_3(char) = Constant[1] : -# 2413| r2413_4(char) = Add : r2413_2, r2413_3 -# 2413| m2413_5(char) = Store[x] : &:r2413_1, r2413_4 +# 2415| Block 1 +# 2415| r2415_1(glval) = VariableAddress[x] : +# 2415| r2415_2(char) = Load[x] : &:r2415_1, m2414_25 +# 2415| r2415_3(char) = Constant[1] : +# 2415| r2415_4(char) = Add : r2415_2, r2415_3 +# 2415| m2415_5(char) = Store[x] : &:r2415_1, r2415_4 #-----| Goto -> Block 2 -# 2415| Block 2 -# 2415| r2415_1(glval) = VariableAddress[x] : -# 2415| r2415_2(glval) = VariableAddress[#temp2415:18] : -# 2415| m2415_3(ClassWithDestructor) = Uninitialized[#temp2415:18] : &:r2415_2 -# 2415| r2415_4(glval) = FunctionAddress[ClassWithDestructor] : -# 2415| v2415_5(void) = Call[ClassWithDestructor] : func:r2415_4, this:r2415_2 -# 2415| m2415_6(unknown) = ^CallSideEffect : ~m2412_21 -# 2415| m2415_7(unknown) = Chi : total:m2412_21, partial:m2415_6 -# 2415| m2415_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2415_2 -# 2415| m2415_9(ClassWithDestructor) = Chi : total:m2415_3, partial:m2415_8 -# 2415| r2415_10(glval) = FunctionAddress[get_x] : -# 2415| r2415_11(char) = Call[get_x] : func:r2415_10, this:r2415_2 -# 2415| m2415_12(unknown) = ^CallSideEffect : ~m2415_7 -# 2415| m2415_13(unknown) = Chi : total:m2415_7, partial:m2415_12 -# 2415| v2415_14(void) = ^IndirectReadSideEffect[-1] : &:r2415_2, m2415_9 -# 2415| m2415_15(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2415_2 -# 2415| m2415_16(ClassWithDestructor) = Chi : total:m2415_9, partial:m2415_15 -# 2415| r2415_17(glval) = CopyValue : r2415_2 -# 2415| r2415_18(glval) = FunctionAddress[~ClassWithDestructor] : -# 2415| v2415_19(void) = Call[~ClassWithDestructor] : func:r2415_18, this:r2415_17 -# 2415| m2415_20(unknown) = ^CallSideEffect : ~m2415_13 -# 2415| m2415_21(unknown) = Chi : total:m2415_13, partial:m2415_20 -# 2415| v2415_22(void) = ^IndirectReadSideEffect[-1] : &:r2415_17, m2415_16 -# 2415| m2415_23(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2415_17 -# 2415| m2415_24(ClassWithDestructor) = Chi : total:m2415_16, partial:m2415_23 -# 2415| m2415_25(char) = Store[x] : &:r2415_1, r2415_11 -# 2415| r2415_26(glval) = VariableAddress[x] : -# 2415| r2415_27(char) = Load[x] : &:r2415_26, m2415_25 -# 2415| r2415_28(char) = Constant[0] : -# 2415| r2415_29(bool) = CompareNE : r2415_27, r2415_28 -# 2415| v2415_30(void) = ConditionalBranch : r2415_29 +# 2417| Block 2 +# 2417| r2417_1(glval) = VariableAddress[x] : +# 2417| r2417_2(glval) = VariableAddress[#temp2417:18] : +# 2417| m2417_3(ClassWithDestructor) = Uninitialized[#temp2417:18] : &:r2417_2 +# 2417| r2417_4(glval) = FunctionAddress[ClassWithDestructor] : +# 2417| v2417_5(void) = Call[ClassWithDestructor] : func:r2417_4, this:r2417_2 +# 2417| m2417_6(unknown) = ^CallSideEffect : ~m2414_21 +# 2417| m2417_7(unknown) = Chi : total:m2414_21, partial:m2417_6 +# 2417| m2417_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2417_2 +# 2417| m2417_9(ClassWithDestructor) = Chi : total:m2417_3, partial:m2417_8 +# 2417| r2417_10(glval) = FunctionAddress[get_x] : +# 2417| r2417_11(char) = Call[get_x] : func:r2417_10, this:r2417_2 +# 2417| m2417_12(unknown) = ^CallSideEffect : ~m2417_7 +# 2417| m2417_13(unknown) = Chi : total:m2417_7, partial:m2417_12 +# 2417| v2417_14(void) = ^IndirectReadSideEffect[-1] : &:r2417_2, m2417_9 +# 2417| m2417_15(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2417_2 +# 2417| m2417_16(ClassWithDestructor) = Chi : total:m2417_9, partial:m2417_15 +# 2417| r2417_17(glval) = CopyValue : r2417_2 +# 2417| r2417_18(glval) = FunctionAddress[~ClassWithDestructor] : +# 2417| v2417_19(void) = Call[~ClassWithDestructor] : func:r2417_18, this:r2417_17 +# 2417| m2417_20(unknown) = ^CallSideEffect : ~m2417_13 +# 2417| m2417_21(unknown) = Chi : total:m2417_13, partial:m2417_20 +# 2417| v2417_22(void) = ^IndirectReadSideEffect[-1] : &:r2417_17, m2417_16 +# 2417| m2417_23(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2417_17 +# 2417| m2417_24(ClassWithDestructor) = Chi : total:m2417_16, partial:m2417_23 +# 2417| m2417_25(char) = Store[x] : &:r2417_1, r2417_11 +# 2417| r2417_26(glval) = VariableAddress[x] : +# 2417| r2417_27(char) = Load[x] : &:r2417_26, m2417_25 +# 2417| r2417_28(char) = Constant[0] : +# 2417| r2417_29(bool) = CompareNE : r2417_27, r2417_28 +# 2417| v2417_30(void) = ConditionalBranch : r2417_29 #-----| False -> Block 4 #-----| True -> Block 3 -# 2416| Block 3 -# 2416| r2416_1(glval) = VariableAddress[x] : -# 2416| r2416_2(char) = Load[x] : &:r2416_1, m2415_25 -# 2416| r2416_3(char) = Constant[1] : -# 2416| r2416_4(char) = Add : r2416_2, r2416_3 -# 2416| m2416_5(char) = Store[x] : &:r2416_1, r2416_4 +# 2418| Block 3 +# 2418| r2418_1(glval) = VariableAddress[x] : +# 2418| r2418_2(char) = Load[x] : &:r2418_1, m2417_25 +# 2418| r2418_3(char) = Constant[1] : +# 2418| r2418_4(char) = Add : r2418_2, r2418_3 +# 2418| m2418_5(char) = Store[x] : &:r2418_1, r2418_4 #-----| Goto -> Block 4 -# 2418| Block 4 -# 2418| r2418_1(glval) = VariableAddress[x] : -# 2418| r2418_2(glval) = VariableAddress[#temp2418:28] : -# 2418| m2418_3(ClassWithDestructor) = Uninitialized[#temp2418:28] : &:r2418_2 -# 2418| r2418_4(glval) = FunctionAddress[ClassWithDestructor] : -# 2418| v2418_5(void) = Call[ClassWithDestructor] : func:r2418_4, this:r2418_2 -# 2418| m2418_6(unknown) = ^CallSideEffect : ~m2415_21 -# 2418| m2418_7(unknown) = Chi : total:m2415_21, partial:m2418_6 -# 2418| m2418_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2418_2 -# 2418| m2418_9(ClassWithDestructor) = Chi : total:m2418_3, partial:m2418_8 -# 2418| r2418_10(glval) = FunctionAddress[get_x] : -# 2418| r2418_11(char) = Call[get_x] : func:r2418_10, this:r2418_2 -# 2418| m2418_12(unknown) = ^CallSideEffect : ~m2418_7 -# 2418| m2418_13(unknown) = Chi : total:m2418_7, partial:m2418_12 -# 2418| v2418_14(void) = ^IndirectReadSideEffect[-1] : &:r2418_2, m2418_9 -# 2418| m2418_15(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2418_2 -# 2418| m2418_16(ClassWithDestructor) = Chi : total:m2418_9, partial:m2418_15 -# 2418| r2418_17(glval) = CopyValue : r2418_2 -# 2418| r2418_18(glval) = FunctionAddress[~ClassWithDestructor] : -# 2418| v2418_19(void) = Call[~ClassWithDestructor] : func:r2418_18, this:r2418_17 -# 2418| m2418_20(unknown) = ^CallSideEffect : ~m2418_13 -# 2418| m2418_21(unknown) = Chi : total:m2418_13, partial:m2418_20 -# 2418| v2418_22(void) = ^IndirectReadSideEffect[-1] : &:r2418_17, m2418_16 -# 2418| m2418_23(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2418_17 -# 2418| m2418_24(ClassWithDestructor) = Chi : total:m2418_16, partial:m2418_23 -# 2418| m2418_25(char) = Store[x] : &:r2418_1, r2418_11 -# 2418| r2418_26(bool) = Constant[1] : -# 2418| v2418_27(void) = ConditionalBranch : r2418_26 +# 2420| Block 4 +# 2420| r2420_1(glval) = VariableAddress[x] : +# 2420| r2420_2(glval) = VariableAddress[#temp2420:28] : +# 2420| m2420_3(ClassWithDestructor) = Uninitialized[#temp2420:28] : &:r2420_2 +# 2420| r2420_4(glval) = FunctionAddress[ClassWithDestructor] : +# 2420| v2420_5(void) = Call[ClassWithDestructor] : func:r2420_4, this:r2420_2 +# 2420| m2420_6(unknown) = ^CallSideEffect : ~m2417_21 +# 2420| m2420_7(unknown) = Chi : total:m2417_21, partial:m2420_6 +# 2420| m2420_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2420_2 +# 2420| m2420_9(ClassWithDestructor) = Chi : total:m2420_3, partial:m2420_8 +# 2420| r2420_10(glval) = FunctionAddress[get_x] : +# 2420| r2420_11(char) = Call[get_x] : func:r2420_10, this:r2420_2 +# 2420| m2420_12(unknown) = ^CallSideEffect : ~m2420_7 +# 2420| m2420_13(unknown) = Chi : total:m2420_7, partial:m2420_12 +# 2420| v2420_14(void) = ^IndirectReadSideEffect[-1] : &:r2420_2, m2420_9 +# 2420| m2420_15(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2420_2 +# 2420| m2420_16(ClassWithDestructor) = Chi : total:m2420_9, partial:m2420_15 +# 2420| r2420_17(glval) = CopyValue : r2420_2 +# 2420| r2420_18(glval) = FunctionAddress[~ClassWithDestructor] : +# 2420| v2420_19(void) = Call[~ClassWithDestructor] : func:r2420_18, this:r2420_17 +# 2420| m2420_20(unknown) = ^CallSideEffect : ~m2420_13 +# 2420| m2420_21(unknown) = Chi : total:m2420_13, partial:m2420_20 +# 2420| v2420_22(void) = ^IndirectReadSideEffect[-1] : &:r2420_17, m2420_16 +# 2420| m2420_23(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2420_17 +# 2420| m2420_24(ClassWithDestructor) = Chi : total:m2420_16, partial:m2420_23 +# 2420| m2420_25(char) = Store[x] : &:r2420_1, r2420_11 +# 2420| r2420_26(bool) = Constant[1] : +# 2420| v2420_27(void) = ConditionalBranch : r2420_26 #-----| False -> Block 13 #-----| True -> Block 5 -# 2419| Block 5 -# 2419| r2419_1(glval) = VariableAddress[x] : -# 2419| r2419_2(char) = Load[x] : &:r2419_1, m2418_25 -# 2419| r2419_3(char) = Constant[1] : -# 2419| r2419_4(char) = Add : r2419_2, r2419_3 -# 2419| m2419_5(char) = Store[x] : &:r2419_1, r2419_4 +# 2421| Block 5 # 2421| r2421_1(glval) = VariableAddress[x] : -# 2421| r2421_2(glval) = VariableAddress[#temp2421:21] : -# 2421| m2421_3(ClassWithDestructor) = Uninitialized[#temp2421:21] : &:r2421_2 -# 2421| r2421_4(glval) = FunctionAddress[ClassWithDestructor] : -# 2421| v2421_5(void) = Call[ClassWithDestructor] : func:r2421_4, this:r2421_2 -# 2421| m2421_6(unknown) = ^CallSideEffect : ~m2418_21 -# 2421| m2421_7(unknown) = Chi : total:m2418_21, partial:m2421_6 -# 2421| m2421_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2421_2 -# 2421| m2421_9(ClassWithDestructor) = Chi : total:m2421_3, partial:m2421_8 -# 2421| r2421_10(glval) = FunctionAddress[get_x] : -# 2421| r2421_11(char) = Call[get_x] : func:r2421_10, this:r2421_2 -# 2421| m2421_12(unknown) = ^CallSideEffect : ~m2421_7 -# 2421| m2421_13(unknown) = Chi : total:m2421_7, partial:m2421_12 -# 2421| v2421_14(void) = ^IndirectReadSideEffect[-1] : &:r2421_2, m2421_9 -# 2421| m2421_15(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2421_2 -# 2421| m2421_16(ClassWithDestructor) = Chi : total:m2421_9, partial:m2421_15 -# 2421| r2421_17(glval) = CopyValue : r2421_2 -# 2421| r2421_18(glval) = FunctionAddress[~ClassWithDestructor] : -# 2421| v2421_19(void) = Call[~ClassWithDestructor] : func:r2421_18, this:r2421_17 -# 2421| m2421_20(unknown) = ^CallSideEffect : ~m2421_13 -# 2421| m2421_21(unknown) = Chi : total:m2421_13, partial:m2421_20 -# 2421| v2421_22(void) = ^IndirectReadSideEffect[-1] : &:r2421_17, m2421_16 -# 2421| m2421_23(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2421_17 -# 2421| m2421_24(ClassWithDestructor) = Chi : total:m2421_16, partial:m2421_23 -# 2421| m2421_25(char) = Store[x] : &:r2421_1, r2421_11 -# 2421| r2421_26(glval) = VariableAddress[x] : -# 2421| r2421_27(char) = Load[x] : &:r2421_26, m2421_25 -# 2421| r2421_28(int) = Convert : r2421_27 -# 2421| r2421_29(int) = CopyValue : r2421_28 -# 2421| v2421_30(void) = Switch : r2421_29 +# 2421| r2421_2(char) = Load[x] : &:r2421_1, m2420_25 +# 2421| r2421_3(char) = Constant[1] : +# 2421| r2421_4(char) = Add : r2421_2, r2421_3 +# 2421| m2421_5(char) = Store[x] : &:r2421_1, r2421_4 +# 2423| r2423_1(glval) = VariableAddress[x] : +# 2423| r2423_2(glval) = VariableAddress[#temp2423:21] : +# 2423| m2423_3(ClassWithDestructor) = Uninitialized[#temp2423:21] : &:r2423_2 +# 2423| r2423_4(glval) = FunctionAddress[ClassWithDestructor] : +# 2423| v2423_5(void) = Call[ClassWithDestructor] : func:r2423_4, this:r2423_2 +# 2423| m2423_6(unknown) = ^CallSideEffect : ~m2420_21 +# 2423| m2423_7(unknown) = Chi : total:m2420_21, partial:m2423_6 +# 2423| m2423_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2423_2 +# 2423| m2423_9(ClassWithDestructor) = Chi : total:m2423_3, partial:m2423_8 +# 2423| r2423_10(glval) = FunctionAddress[get_x] : +# 2423| r2423_11(char) = Call[get_x] : func:r2423_10, this:r2423_2 +# 2423| m2423_12(unknown) = ^CallSideEffect : ~m2423_7 +# 2423| m2423_13(unknown) = Chi : total:m2423_7, partial:m2423_12 +# 2423| v2423_14(void) = ^IndirectReadSideEffect[-1] : &:r2423_2, m2423_9 +# 2423| m2423_15(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2423_2 +# 2423| m2423_16(ClassWithDestructor) = Chi : total:m2423_9, partial:m2423_15 +# 2423| r2423_17(glval) = CopyValue : r2423_2 +# 2423| r2423_18(glval) = FunctionAddress[~ClassWithDestructor] : +# 2423| v2423_19(void) = Call[~ClassWithDestructor] : func:r2423_18, this:r2423_17 +# 2423| m2423_20(unknown) = ^CallSideEffect : ~m2423_13 +# 2423| m2423_21(unknown) = Chi : total:m2423_13, partial:m2423_20 +# 2423| v2423_22(void) = ^IndirectReadSideEffect[-1] : &:r2423_17, m2423_16 +# 2423| m2423_23(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2423_17 +# 2423| m2423_24(ClassWithDestructor) = Chi : total:m2423_16, partial:m2423_23 +# 2423| m2423_25(char) = Store[x] : &:r2423_1, r2423_11 +# 2423| r2423_26(glval) = VariableAddress[x] : +# 2423| r2423_27(char) = Load[x] : &:r2423_26, m2423_25 +# 2423| r2423_28(int) = Convert : r2423_27 +# 2423| r2423_29(int) = CopyValue : r2423_28 +# 2423| v2423_30(void) = Switch : r2423_29 #-----| Case[97] -> Block 6 #-----| Default -> Block 7 -# 2422| Block 6 -# 2422| v2422_1(void) = NoOp : -# 2423| r2423_1(glval) = VariableAddress[x] : -# 2423| r2423_2(char) = Load[x] : &:r2423_1, m2421_25 -# 2423| r2423_3(char) = Constant[1] : -# 2423| r2423_4(char) = Add : r2423_2, r2423_3 -# 2423| m2423_5(char) = Store[x] : &:r2423_1, r2423_4 +# 2424| Block 6 +# 2424| v2424_1(void) = NoOp : +# 2425| r2425_1(glval) = VariableAddress[x] : +# 2425| r2425_2(char) = Load[x] : &:r2425_1, m2423_25 +# 2425| r2425_3(char) = Constant[1] : +# 2425| r2425_4(char) = Add : r2425_2, r2425_3 +# 2425| m2425_5(char) = Store[x] : &:r2425_1, r2425_4 #-----| Goto -> Block 7 -# 2426| Block 7 -# 2426| r2426_1(glval) = VariableAddress[x] : -# 2426| r2426_2(glval) = VariableAddress[#temp2426:21] : -# 2426| m2426_3(ClassWithDestructor) = Uninitialized[#temp2426:21] : &:r2426_2 -# 2426| r2426_4(glval) = FunctionAddress[ClassWithDestructor] : -# 2426| v2426_5(void) = Call[ClassWithDestructor] : func:r2426_4, this:r2426_2 -# 2426| m2426_6(unknown) = ^CallSideEffect : ~m2421_21 -# 2426| m2426_7(unknown) = Chi : total:m2421_21, partial:m2426_6 -# 2426| m2426_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2426_2 -# 2426| m2426_9(ClassWithDestructor) = Chi : total:m2426_3, partial:m2426_8 -# 2426| r2426_10(glval) = FunctionAddress[get_x] : -# 2426| r2426_11(char) = Call[get_x] : func:r2426_10, this:r2426_2 -# 2426| m2426_12(unknown) = ^CallSideEffect : ~m2426_7 -# 2426| m2426_13(unknown) = Chi : total:m2426_7, partial:m2426_12 -# 2426| v2426_14(void) = ^IndirectReadSideEffect[-1] : &:r2426_2, m2426_9 -# 2426| m2426_15(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2426_2 -# 2426| m2426_16(ClassWithDestructor) = Chi : total:m2426_9, partial:m2426_15 -# 2426| r2426_17(glval) = CopyValue : r2426_2 -# 2426| r2426_18(glval) = FunctionAddress[~ClassWithDestructor] : -# 2426| v2426_19(void) = Call[~ClassWithDestructor] : func:r2426_18, this:r2426_17 -# 2426| m2426_20(unknown) = ^CallSideEffect : ~m2426_13 -# 2426| m2426_21(unknown) = Chi : total:m2426_13, partial:m2426_20 -# 2426| v2426_22(void) = ^IndirectReadSideEffect[-1] : &:r2426_17, m2426_16 -# 2426| m2426_23(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2426_17 -# 2426| m2426_24(ClassWithDestructor) = Chi : total:m2426_16, partial:m2426_23 -# 2426| m2426_25(char) = Store[x] : &:r2426_1, r2426_11 -# 2426| r2426_26(glval) = VariableAddress[x] : -# 2426| r2426_27(char) = Load[x] : &:r2426_26, m2426_25 -# 2426| r2426_28(int) = Convert : r2426_27 -# 2426| v2426_29(void) = Switch : r2426_28 +# 2428| Block 7 +# 2428| r2428_1(glval) = VariableAddress[x] : +# 2428| r2428_2(glval) = VariableAddress[#temp2428:21] : +# 2428| m2428_3(ClassWithDestructor) = Uninitialized[#temp2428:21] : &:r2428_2 +# 2428| r2428_4(glval) = FunctionAddress[ClassWithDestructor] : +# 2428| v2428_5(void) = Call[ClassWithDestructor] : func:r2428_4, this:r2428_2 +# 2428| m2428_6(unknown) = ^CallSideEffect : ~m2423_21 +# 2428| m2428_7(unknown) = Chi : total:m2423_21, partial:m2428_6 +# 2428| m2428_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2428_2 +# 2428| m2428_9(ClassWithDestructor) = Chi : total:m2428_3, partial:m2428_8 +# 2428| r2428_10(glval) = FunctionAddress[get_x] : +# 2428| r2428_11(char) = Call[get_x] : func:r2428_10, this:r2428_2 +# 2428| m2428_12(unknown) = ^CallSideEffect : ~m2428_7 +# 2428| m2428_13(unknown) = Chi : total:m2428_7, partial:m2428_12 +# 2428| v2428_14(void) = ^IndirectReadSideEffect[-1] : &:r2428_2, m2428_9 +# 2428| m2428_15(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2428_2 +# 2428| m2428_16(ClassWithDestructor) = Chi : total:m2428_9, partial:m2428_15 +# 2428| r2428_17(glval) = CopyValue : r2428_2 +# 2428| r2428_18(glval) = FunctionAddress[~ClassWithDestructor] : +# 2428| v2428_19(void) = Call[~ClassWithDestructor] : func:r2428_18, this:r2428_17 +# 2428| m2428_20(unknown) = ^CallSideEffect : ~m2428_13 +# 2428| m2428_21(unknown) = Chi : total:m2428_13, partial:m2428_20 +# 2428| v2428_22(void) = ^IndirectReadSideEffect[-1] : &:r2428_17, m2428_16 +# 2428| m2428_23(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2428_17 +# 2428| m2428_24(ClassWithDestructor) = Chi : total:m2428_16, partial:m2428_23 +# 2428| m2428_25(char) = Store[x] : &:r2428_1, r2428_11 +# 2428| r2428_26(glval) = VariableAddress[x] : +# 2428| r2428_27(char) = Load[x] : &:r2428_26, m2428_25 +# 2428| r2428_28(int) = Convert : r2428_27 +# 2428| v2428_29(void) = Switch : r2428_28 #-----| Case[97] -> Block 8 #-----| Default -> Block 9 -# 2427| Block 8 -# 2427| v2427_1(void) = NoOp : -# 2428| r2428_1(glval) = VariableAddress[x] : -# 2428| r2428_2(char) = Load[x] : &:r2428_1, m2426_25 -# 2428| r2428_3(char) = Constant[1] : -# 2428| r2428_4(char) = Add : r2428_2, r2428_3 -# 2428| m2428_5(char) = Store[x] : &:r2428_1, r2428_4 +# 2429| Block 8 +# 2429| v2429_1(void) = NoOp : +# 2430| r2430_1(glval) = VariableAddress[x] : +# 2430| r2430_2(char) = Load[x] : &:r2430_1, m2428_25 +# 2430| r2430_3(char) = Constant[1] : +# 2430| r2430_4(char) = Add : r2430_2, r2430_3 +# 2430| m2430_5(char) = Store[x] : &:r2430_1, r2430_4 #-----| Goto -> Block 9 -# 2431| Block 9 -# 2431| r2431_1(glval) = VariableAddress[x] : -# 2431| r2431_2(glval) = VariableAddress[#temp2431:18] : -# 2431| m2431_3(ClassWithDestructor) = Uninitialized[#temp2431:18] : &:r2431_2 -# 2431| r2431_4(glval) = FunctionAddress[ClassWithDestructor] : -# 2431| v2431_5(void) = Call[ClassWithDestructor] : func:r2431_4, this:r2431_2 -# 2431| m2431_6(unknown) = ^CallSideEffect : ~m2426_21 -# 2431| m2431_7(unknown) = Chi : total:m2426_21, partial:m2431_6 -# 2431| m2431_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2431_2 -# 2431| m2431_9(ClassWithDestructor) = Chi : total:m2431_3, partial:m2431_8 -# 2431| r2431_10(glval) = FunctionAddress[get_x] : -# 2431| r2431_11(char) = Call[get_x] : func:r2431_10, this:r2431_2 -# 2431| m2431_12(unknown) = ^CallSideEffect : ~m2431_7 -# 2431| m2431_13(unknown) = Chi : total:m2431_7, partial:m2431_12 -# 2431| v2431_14(void) = ^IndirectReadSideEffect[-1] : &:r2431_2, m2431_9 -# 2431| m2431_15(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2431_2 -# 2431| m2431_16(ClassWithDestructor) = Chi : total:m2431_9, partial:m2431_15 -# 2431| r2431_17(glval) = CopyValue : r2431_2 -# 2431| r2431_18(glval) = FunctionAddress[~ClassWithDestructor] : -# 2431| v2431_19(void) = Call[~ClassWithDestructor] : func:r2431_18, this:r2431_17 -# 2431| m2431_20(unknown) = ^CallSideEffect : ~m2431_13 -# 2431| m2431_21(unknown) = Chi : total:m2431_13, partial:m2431_20 -# 2431| v2431_22(void) = ^IndirectReadSideEffect[-1] : &:r2431_17, m2431_16 -# 2431| m2431_23(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2431_17 -# 2431| m2431_24(ClassWithDestructor) = Chi : total:m2431_16, partial:m2431_23 -# 2431| m2431_25(char) = Store[x] : &:r2431_1, r2431_11 -# 2431| r2431_26(glval &&>) = VariableAddress[(__range)] : -# 2431| r2431_27(glval>) = VariableAddress[#temp2431:58] : -# 2431| m2431_28(vector) = Uninitialized[#temp2431:58] : &:r2431_27 -# 2431| r2431_29(glval) = FunctionAddress[vector] : -# 2431| r2431_30(glval) = VariableAddress[x] : -# 2431| r2431_31(char) = Load[x] : &:r2431_30, m2431_25 -# 2431| v2431_32(void) = Call[vector] : func:r2431_29, this:r2431_27, 0:r2431_31 -# 2431| m2431_33(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2431_27 -# 2431| r2431_34(vector &) = CopyValue : r2431_27 -# 2431| m2431_35(vector &&) = Store[(__range)] : &:r2431_26, r2431_34 -# 2431| r2431_36(glval>) = VariableAddress[(__begin)] : -# 2431| r2431_37(glval &&>) = VariableAddress[(__range)] : -# 2431| r2431_38(vector &&) = Load[(__range)] : &:r2431_37, m2431_35 -#-----| r0_1(glval>) = CopyValue : r2431_38 +# 2433| Block 9 +# 2433| r2433_1(glval) = VariableAddress[x] : +# 2433| r2433_2(glval) = VariableAddress[#temp2433:18] : +# 2433| m2433_3(ClassWithDestructor) = Uninitialized[#temp2433:18] : &:r2433_2 +# 2433| r2433_4(glval) = FunctionAddress[ClassWithDestructor] : +# 2433| v2433_5(void) = Call[ClassWithDestructor] : func:r2433_4, this:r2433_2 +# 2433| m2433_6(unknown) = ^CallSideEffect : ~m2428_21 +# 2433| m2433_7(unknown) = Chi : total:m2428_21, partial:m2433_6 +# 2433| m2433_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2433_2 +# 2433| m2433_9(ClassWithDestructor) = Chi : total:m2433_3, partial:m2433_8 +# 2433| r2433_10(glval) = FunctionAddress[get_x] : +# 2433| r2433_11(char) = Call[get_x] : func:r2433_10, this:r2433_2 +# 2433| m2433_12(unknown) = ^CallSideEffect : ~m2433_7 +# 2433| m2433_13(unknown) = Chi : total:m2433_7, partial:m2433_12 +# 2433| v2433_14(void) = ^IndirectReadSideEffect[-1] : &:r2433_2, m2433_9 +# 2433| m2433_15(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2433_2 +# 2433| m2433_16(ClassWithDestructor) = Chi : total:m2433_9, partial:m2433_15 +# 2433| r2433_17(glval) = CopyValue : r2433_2 +# 2433| r2433_18(glval) = FunctionAddress[~ClassWithDestructor] : +# 2433| v2433_19(void) = Call[~ClassWithDestructor] : func:r2433_18, this:r2433_17 +# 2433| m2433_20(unknown) = ^CallSideEffect : ~m2433_13 +# 2433| m2433_21(unknown) = Chi : total:m2433_13, partial:m2433_20 +# 2433| v2433_22(void) = ^IndirectReadSideEffect[-1] : &:r2433_17, m2433_16 +# 2433| m2433_23(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2433_17 +# 2433| m2433_24(ClassWithDestructor) = Chi : total:m2433_16, partial:m2433_23 +# 2433| m2433_25(char) = Store[x] : &:r2433_1, r2433_11 +# 2433| r2433_26(glval &&>) = VariableAddress[(__range)] : +# 2433| r2433_27(glval>) = VariableAddress[#temp2433:58] : +# 2433| m2433_28(vector) = Uninitialized[#temp2433:58] : &:r2433_27 +# 2433| r2433_29(glval) = FunctionAddress[vector] : +# 2433| r2433_30(glval) = VariableAddress[x] : +# 2433| r2433_31(char) = Load[x] : &:r2433_30, m2433_25 +# 2433| v2433_32(void) = Call[vector] : func:r2433_29, this:r2433_27, 0:r2433_31 +# 2433| m2433_33(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2433_27 +# 2433| r2433_34(vector &) = CopyValue : r2433_27 +# 2433| m2433_35(vector &&) = Store[(__range)] : &:r2433_26, r2433_34 +# 2433| r2433_36(glval>) = VariableAddress[(__begin)] : +# 2433| r2433_37(glval &&>) = VariableAddress[(__range)] : +# 2433| r2433_38(vector &&) = Load[(__range)] : &:r2433_37, m2433_35 +#-----| r0_1(glval>) = CopyValue : r2433_38 #-----| r0_2(glval>) = Convert : r0_1 -# 2431| r2431_39(glval) = FunctionAddress[begin] : -# 2431| r2431_40(iterator) = Call[begin] : func:r2431_39, this:r0_2 -#-----| v0_3(void) = ^IndirectReadSideEffect[-1] : &:r0_2, m2431_33 -# 2431| m2431_41(iterator) = Store[(__begin)] : &:r2431_36, r2431_40 -# 2431| r2431_42(glval>) = VariableAddress[(__end)] : -# 2431| r2431_43(glval &&>) = VariableAddress[(__range)] : -# 2431| r2431_44(vector &&) = Load[(__range)] : &:r2431_43, m2431_35 -#-----| r0_4(glval>) = CopyValue : r2431_44 +# 2433| r2433_39(glval) = FunctionAddress[begin] : +# 2433| r2433_40(iterator) = Call[begin] : func:r2433_39, this:r0_2 +#-----| v0_3(void) = ^IndirectReadSideEffect[-1] : &:r0_2, m2433_33 +# 2433| m2433_41(iterator) = Store[(__begin)] : &:r2433_36, r2433_40 +# 2433| r2433_42(glval>) = VariableAddress[(__end)] : +# 2433| r2433_43(glval &&>) = VariableAddress[(__range)] : +# 2433| r2433_44(vector &&) = Load[(__range)] : &:r2433_43, m2433_35 +#-----| r0_4(glval>) = CopyValue : r2433_44 #-----| r0_5(glval>) = Convert : r0_4 -# 2431| r2431_45(glval) = FunctionAddress[end] : -# 2431| r2431_46(iterator) = Call[end] : func:r2431_45, this:r0_5 -#-----| v0_6(void) = ^IndirectReadSideEffect[-1] : &:r0_5, m2431_33 -# 2431| m2431_47(iterator) = Store[(__end)] : &:r2431_42, r2431_46 -# 2431| m2431_48(unknown) = Chi : total:m2431_21, partial:m2431_47 +# 2433| r2433_45(glval) = FunctionAddress[end] : +# 2433| r2433_46(iterator) = Call[end] : func:r2433_45, this:r0_5 +#-----| v0_6(void) = ^IndirectReadSideEffect[-1] : &:r0_5, m2433_33 +# 2433| m2433_47(iterator) = Store[(__end)] : &:r2433_42, r2433_46 +# 2433| m2433_48(unknown) = Chi : total:m2433_21, partial:m2433_47 #-----| Goto -> Block 10 -# 2431| Block 10 -# 2431| m2431_49(iterator) = Phi : from 9:m2431_41, from 11:m2431_73 -# 2431| m2431_50(unknown) = Phi : from 9:~m2431_48, from 11:~m2431_59 -# 2431| r2431_51(glval>) = VariableAddress[(__begin)] : -#-----| r0_7(glval>) = Convert : r2431_51 -# 2431| r2431_52(glval) = FunctionAddress[operator!=] : +# 2433| Block 10 +# 2433| m2433_49(iterator) = Phi : from 9:m2433_41, from 11:m2433_73 +# 2433| m2433_50(unknown) = Phi : from 9:~m2433_48, from 11:~m2433_59 +# 2433| r2433_51(glval>) = VariableAddress[(__begin)] : +#-----| r0_7(glval>) = Convert : r2433_51 +# 2433| r2433_52(glval) = FunctionAddress[operator!=] : #-----| r0_8(glval>) = VariableAddress[#temp0:0] : #-----| m0_9(iterator) = Uninitialized[#temp0:0] : &:r0_8 -#-----| m0_10(unknown) = Chi : total:m2431_50, partial:m0_9 -# 2431| r2431_53(glval) = FunctionAddress[iterator] : -# 2431| r2431_54(glval>) = VariableAddress[(__end)] : -#-----| r0_11(glval>) = Convert : r2431_54 +#-----| m0_10(unknown) = Chi : total:m2433_50, partial:m0_9 +# 2433| r2433_53(glval) = FunctionAddress[iterator] : +# 2433| r2433_54(glval>) = VariableAddress[(__end)] : +#-----| r0_11(glval>) = Convert : r2433_54 #-----| r0_12(iterator &) = CopyValue : r0_11 -# 2431| v2431_55(void) = Call[iterator] : func:r2431_53, this:r0_8, 0:r0_12 -# 2431| m2431_56(unknown) = ^CallSideEffect : ~m0_10 -# 2431| m2431_57(unknown) = Chi : total:m0_10, partial:m2431_56 -#-----| v0_13(void) = ^BufferReadSideEffect[0] : &:r0_12, ~m2431_57 -# 2431| m2431_58(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r0_8 -# 2431| m2431_59(unknown) = Chi : total:m2431_57, partial:m2431_58 -#-----| r0_14(iterator) = Load[#temp0:0] : &:r0_8, ~m2431_59 -# 2431| r2431_60(bool) = Call[operator!=] : func:r2431_52, this:r0_7, 0:r0_14 -#-----| v0_15(void) = ^IndirectReadSideEffect[-1] : &:r0_7, m2431_49 -# 2431| v2431_61(void) = ConditionalBranch : r2431_60 +# 2433| v2433_55(void) = Call[iterator] : func:r2433_53, this:r0_8, 0:r0_12 +# 2433| m2433_56(unknown) = ^CallSideEffect : ~m0_10 +# 2433| m2433_57(unknown) = Chi : total:m0_10, partial:m2433_56 +#-----| v0_13(void) = ^BufferReadSideEffect[0] : &:r0_12, ~m2433_57 +# 2433| m2433_58(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r0_8 +# 2433| m2433_59(unknown) = Chi : total:m2433_57, partial:m2433_58 +#-----| r0_14(iterator) = Load[#temp0:0] : &:r0_8, ~m2433_59 +# 2433| r2433_60(bool) = Call[operator!=] : func:r2433_52, this:r0_7, 0:r0_14 +#-----| v0_15(void) = ^IndirectReadSideEffect[-1] : &:r0_7, m2433_49 +# 2433| v2433_61(void) = ConditionalBranch : r2433_60 #-----| False -> Block 12 #-----| True -> Block 11 -# 2431| Block 11 -# 2431| r2431_62(glval) = VariableAddress[y] : -# 2431| r2431_63(glval>) = VariableAddress[(__begin)] : -#-----| r0_16(glval>) = Convert : r2431_63 -# 2431| r2431_64(glval) = FunctionAddress[operator*] : -# 2431| r2431_65(char &) = Call[operator*] : func:r2431_64, this:r0_16 -#-----| v0_17(void) = ^IndirectReadSideEffect[-1] : &:r0_16, m2431_49 -# 2431| r2431_66(char) = Load[?] : &:r2431_65, ~m2431_59 -# 2431| m2431_67(char) = Store[y] : &:r2431_62, r2431_66 -# 2432| r2432_1(glval) = VariableAddress[x] : -# 2432| r2432_2(char) = Load[x] : &:r2432_1, m2431_25 -# 2432| r2432_3(int) = Convert : r2432_2 -# 2432| r2432_4(glval) = VariableAddress[y] : -# 2432| r2432_5(char) = Load[y] : &:r2432_4, m2431_67 -# 2432| r2432_6(int) = Convert : r2432_5 -# 2432| r2432_7(int) = Add : r2432_6, r2432_3 -# 2432| r2432_8(char) = Convert : r2432_7 -# 2432| m2432_9(char) = Store[y] : &:r2432_4, r2432_8 -# 2431| r2431_68(glval>) = VariableAddress[(__begin)] : -# 2431| r2431_69(glval) = FunctionAddress[operator++] : -# 2431| r2431_70(iterator &) = Call[operator++] : func:r2431_69, this:r2431_68 -# 2431| v2431_71(void) = ^IndirectReadSideEffect[-1] : &:r2431_68, m2431_49 -# 2431| m2431_72(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2431_68 -# 2431| m2431_73(iterator) = Chi : total:m2431_49, partial:m2431_72 -# 2431| r2431_74(glval>) = CopyValue : r2431_70 +# 2433| Block 11 +# 2433| r2433_62(glval) = VariableAddress[y] : +# 2433| r2433_63(glval>) = VariableAddress[(__begin)] : +#-----| r0_16(glval>) = Convert : r2433_63 +# 2433| r2433_64(glval) = FunctionAddress[operator*] : +# 2433| r2433_65(char &) = Call[operator*] : func:r2433_64, this:r0_16 +#-----| v0_17(void) = ^IndirectReadSideEffect[-1] : &:r0_16, m2433_49 +# 2433| r2433_66(char) = Load[?] : &:r2433_65, ~m2433_59 +# 2433| m2433_67(char) = Store[y] : &:r2433_62, r2433_66 +# 2434| r2434_1(glval) = VariableAddress[x] : +# 2434| r2434_2(char) = Load[x] : &:r2434_1, m2433_25 +# 2434| r2434_3(int) = Convert : r2434_2 +# 2434| r2434_4(glval) = VariableAddress[y] : +# 2434| r2434_5(char) = Load[y] : &:r2434_4, m2433_67 +# 2434| r2434_6(int) = Convert : r2434_5 +# 2434| r2434_7(int) = Add : r2434_6, r2434_3 +# 2434| r2434_8(char) = Convert : r2434_7 +# 2434| m2434_9(char) = Store[y] : &:r2434_4, r2434_8 +# 2433| r2433_68(glval>) = VariableAddress[(__begin)] : +# 2433| r2433_69(glval) = FunctionAddress[operator++] : +# 2433| r2433_70(iterator &) = Call[operator++] : func:r2433_69, this:r2433_68 +# 2433| v2433_71(void) = ^IndirectReadSideEffect[-1] : &:r2433_68, m2433_49 +# 2433| m2433_72(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2433_68 +# 2433| m2433_73(iterator) = Chi : total:m2433_49, partial:m2433_72 +# 2433| r2433_74(glval>) = CopyValue : r2433_70 #-----| Goto (back edge) -> Block 10 -# 2431| Block 12 -# 2431| r2431_75(glval>) = CopyValue : r2431_27 -# 2431| r2431_76(glval) = FunctionAddress[~vector] : -# 2431| v2431_77(void) = Call[~vector] : func:r2431_76, this:r2431_75 -# 2431| v2431_78(void) = ^IndirectReadSideEffect[-1] : &:r2431_75, m2431_33 -# 2431| m2431_79(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2431_75 -# 2433| v2433_1(void) = NoOp : -# 2411| v2411_5(void) = ReturnVoid : -# 2411| v2411_6(void) = AliasedUse : ~m2431_57 -# 2411| v2411_7(void) = ExitFunction : - -# 2411| Block 13 -# 2411| v2411_8(void) = Unreached : - -# 2435| void param_with_destructor_by_value(ClassWithDestructor) -# 2435| Block 0 -# 2435| v2435_1(void) = EnterFunction : -# 2435| m2435_2(unknown) = AliasedDefinition : -# 2435| m2435_3(unknown) = InitializeNonLocal : -# 2435| m2435_4(unknown) = Chi : total:m2435_2, partial:m2435_3 -# 2435| r2435_5(glval) = VariableAddress[c] : -# 2435| m2435_6(ClassWithDestructor) = InitializeParameter[c] : &:r2435_5 -# 2437| v2437_1(void) = NoOp : -# 2435| v2435_7(void) = ReturnVoid : -# 2435| v2435_8(void) = AliasedUse : m2435_3 -# 2435| v2435_9(void) = ExitFunction : - -# 2439| void param_with_destructor_by_pointer(ClassWithDestructor*) -# 2439| Block 0 -# 2439| v2439_1(void) = EnterFunction : -# 2439| m2439_2(unknown) = AliasedDefinition : -# 2439| m2439_3(unknown) = InitializeNonLocal : -# 2439| m2439_4(unknown) = Chi : total:m2439_2, partial:m2439_3 -# 2439| r2439_5(glval) = VariableAddress[c] : -# 2439| m2439_6(ClassWithDestructor *) = InitializeParameter[c] : &:r2439_5 -# 2439| r2439_7(ClassWithDestructor *) = Load[c] : &:r2439_5, m2439_6 -# 2439| m2439_8(unknown) = InitializeIndirection[c] : &:r2439_7 -# 2441| v2441_1(void) = NoOp : -# 2439| v2439_9(void) = ReturnIndirection[c] : &:r2439_7, m2439_8 -# 2439| v2439_10(void) = ReturnVoid : -# 2439| v2439_11(void) = AliasedUse : m2439_3 -# 2439| v2439_12(void) = ExitFunction : - -# 2443| void param_with_destructor_by_ref(ClassWithDestructor&) -# 2443| Block 0 -# 2443| v2443_1(void) = EnterFunction : -# 2443| m2443_2(unknown) = AliasedDefinition : -# 2443| m2443_3(unknown) = InitializeNonLocal : -# 2443| m2443_4(unknown) = Chi : total:m2443_2, partial:m2443_3 -# 2443| r2443_5(glval) = VariableAddress[c] : -# 2443| m2443_6(ClassWithDestructor &) = InitializeParameter[c] : &:r2443_5 -# 2443| r2443_7(ClassWithDestructor &) = Load[c] : &:r2443_5, m2443_6 -# 2443| m2443_8(unknown) = InitializeIndirection[c] : &:r2443_7 -# 2445| v2445_1(void) = NoOp : -# 2443| v2443_9(void) = ReturnIndirection[c] : &:r2443_7, m2443_8 -# 2443| v2443_10(void) = ReturnVoid : -# 2443| v2443_11(void) = AliasedUse : m2443_3 -# 2443| v2443_12(void) = ExitFunction : - -# 2447| void param_with_destructor_by_rref(ClassWithDestructor&&) -# 2447| Block 0 -# 2447| v2447_1(void) = EnterFunction : -# 2447| m2447_2(unknown) = AliasedDefinition : -# 2447| m2447_3(unknown) = InitializeNonLocal : -# 2447| m2447_4(unknown) = Chi : total:m2447_2, partial:m2447_3 -# 2447| r2447_5(glval) = VariableAddress[c] : -# 2447| m2447_6(ClassWithDestructor &&) = InitializeParameter[c] : &:r2447_5 -# 2447| r2447_7(ClassWithDestructor &&) = Load[c] : &:r2447_5, m2447_6 -# 2447| m2447_8(unknown) = InitializeIndirection[c] : &:r2447_7 -# 2449| v2449_1(void) = NoOp : -# 2447| v2447_9(void) = ReturnIndirection[c] : &:r2447_7, m2447_8 -# 2447| v2447_10(void) = ReturnVoid : -# 2447| v2447_11(void) = AliasedUse : m2447_3 -# 2447| v2447_12(void) = ExitFunction : - -# 2451| void rethrow_with_destruction(int) -# 2451| Block 0 -# 2451| v2451_1(void) = EnterFunction : -# 2451| m2451_2(unknown) = AliasedDefinition : -# 2451| m2451_3(unknown) = InitializeNonLocal : -# 2451| m2451_4(unknown) = Chi : total:m2451_2, partial:m2451_3 -# 2451| r2451_5(glval) = VariableAddress[x] : -# 2451| m2451_6(int) = InitializeParameter[x] : &:r2451_5 -# 2452| r2452_1(glval) = VariableAddress[c] : -# 2452| m2452_2(ClassWithDestructor) = Uninitialized[c] : &:r2452_1 -# 2452| r2452_3(glval) = FunctionAddress[ClassWithDestructor] : -# 2452| v2452_4(void) = Call[ClassWithDestructor] : func:r2452_3, this:r2452_1 -# 2452| m2452_5(unknown) = ^CallSideEffect : ~m2451_4 -# 2452| m2452_6(unknown) = Chi : total:m2451_4, partial:m2452_5 -# 2452| m2452_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2452_1 -# 2452| m2452_8(ClassWithDestructor) = Chi : total:m2452_2, partial:m2452_7 -# 2453| v2453_1(void) = ReThrow : +# 2433| Block 12 +# 2433| r2433_75(glval>) = CopyValue : r2433_27 +# 2433| r2433_76(glval) = FunctionAddress[~vector] : +# 2433| v2433_77(void) = Call[~vector] : func:r2433_76, this:r2433_75 +# 2433| v2433_78(void) = ^IndirectReadSideEffect[-1] : &:r2433_75, m2433_33 +# 2433| m2433_79(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2433_75 +# 2435| v2435_1(void) = NoOp : +# 2413| v2413_5(void) = ReturnVoid : +# 2413| v2413_6(void) = AliasedUse : ~m2433_57 +# 2413| v2413_7(void) = ExitFunction : + +# 2413| Block 13 +# 2413| v2413_8(void) = Unreached : + +# 2437| void param_with_destructor_by_value(ClassWithDestructor) +# 2437| Block 0 +# 2437| v2437_1(void) = EnterFunction : +# 2437| m2437_2(unknown) = AliasedDefinition : +# 2437| m2437_3(unknown) = InitializeNonLocal : +# 2437| m2437_4(unknown) = Chi : total:m2437_2, partial:m2437_3 +# 2437| r2437_5(glval) = VariableAddress[c] : +# 2437| m2437_6(ClassWithDestructor) = InitializeParameter[c] : &:r2437_5 +# 2439| v2439_1(void) = NoOp : +# 2437| v2437_7(void) = ReturnVoid : +# 2437| v2437_8(void) = AliasedUse : m2437_3 +# 2437| v2437_9(void) = ExitFunction : + +# 2441| void param_with_destructor_by_pointer(ClassWithDestructor*) +# 2441| Block 0 +# 2441| v2441_1(void) = EnterFunction : +# 2441| m2441_2(unknown) = AliasedDefinition : +# 2441| m2441_3(unknown) = InitializeNonLocal : +# 2441| m2441_4(unknown) = Chi : total:m2441_2, partial:m2441_3 +# 2441| r2441_5(glval) = VariableAddress[c] : +# 2441| m2441_6(ClassWithDestructor *) = InitializeParameter[c] : &:r2441_5 +# 2441| r2441_7(ClassWithDestructor *) = Load[c] : &:r2441_5, m2441_6 +# 2441| m2441_8(unknown) = InitializeIndirection[c] : &:r2441_7 +# 2443| v2443_1(void) = NoOp : +# 2441| v2441_9(void) = ReturnIndirection[c] : &:r2441_7, m2441_8 +# 2441| v2441_10(void) = ReturnVoid : +# 2441| v2441_11(void) = AliasedUse : m2441_3 +# 2441| v2441_12(void) = ExitFunction : + +# 2445| void param_with_destructor_by_ref(ClassWithDestructor&) +# 2445| Block 0 +# 2445| v2445_1(void) = EnterFunction : +# 2445| m2445_2(unknown) = AliasedDefinition : +# 2445| m2445_3(unknown) = InitializeNonLocal : +# 2445| m2445_4(unknown) = Chi : total:m2445_2, partial:m2445_3 +# 2445| r2445_5(glval) = VariableAddress[c] : +# 2445| m2445_6(ClassWithDestructor &) = InitializeParameter[c] : &:r2445_5 +# 2445| r2445_7(ClassWithDestructor &) = Load[c] : &:r2445_5, m2445_6 +# 2445| m2445_8(unknown) = InitializeIndirection[c] : &:r2445_7 +# 2447| v2447_1(void) = NoOp : +# 2445| v2445_9(void) = ReturnIndirection[c] : &:r2445_7, m2445_8 +# 2445| v2445_10(void) = ReturnVoid : +# 2445| v2445_11(void) = AliasedUse : m2445_3 +# 2445| v2445_12(void) = ExitFunction : + +# 2449| void param_with_destructor_by_rref(ClassWithDestructor&&) +# 2449| Block 0 +# 2449| v2449_1(void) = EnterFunction : +# 2449| m2449_2(unknown) = AliasedDefinition : +# 2449| m2449_3(unknown) = InitializeNonLocal : +# 2449| m2449_4(unknown) = Chi : total:m2449_2, partial:m2449_3 +# 2449| r2449_5(glval) = VariableAddress[c] : +# 2449| m2449_6(ClassWithDestructor &&) = InitializeParameter[c] : &:r2449_5 +# 2449| r2449_7(ClassWithDestructor &&) = Load[c] : &:r2449_5, m2449_6 +# 2449| m2449_8(unknown) = InitializeIndirection[c] : &:r2449_7 +# 2451| v2451_1(void) = NoOp : +# 2449| v2449_9(void) = ReturnIndirection[c] : &:r2449_7, m2449_8 +# 2449| v2449_10(void) = ReturnVoid : +# 2449| v2449_11(void) = AliasedUse : m2449_3 +# 2449| v2449_12(void) = ExitFunction : + +# 2453| void rethrow_with_destruction(int) +# 2453| Block 0 +# 2453| v2453_1(void) = EnterFunction : +# 2453| m2453_2(unknown) = AliasedDefinition : +# 2453| m2453_3(unknown) = InitializeNonLocal : +# 2453| m2453_4(unknown) = Chi : total:m2453_2, partial:m2453_3 +# 2453| r2453_5(glval) = VariableAddress[x] : +# 2453| m2453_6(int) = InitializeParameter[x] : &:r2453_5 # 2454| r2454_1(glval) = VariableAddress[c] : -# 2454| r2454_2(glval) = FunctionAddress[~ClassWithDestructor] : -# 2454| v2454_3(void) = Call[~ClassWithDestructor] : func:r2454_2, this:r2454_1 -# 2454| m2454_4(unknown) = ^CallSideEffect : ~m2452_6 -# 2454| m2454_5(unknown) = Chi : total:m2452_6, partial:m2454_4 -# 2454| v2454_6(void) = ^IndirectReadSideEffect[-1] : &:r2454_1, m2452_8 +# 2454| m2454_2(ClassWithDestructor) = Uninitialized[c] : &:r2454_1 +# 2454| r2454_3(glval) = FunctionAddress[ClassWithDestructor] : +# 2454| v2454_4(void) = Call[ClassWithDestructor] : func:r2454_3, this:r2454_1 +# 2454| m2454_5(unknown) = ^CallSideEffect : ~m2453_4 +# 2454| m2454_6(unknown) = Chi : total:m2453_4, partial:m2454_5 # 2454| m2454_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2454_1 -# 2454| m2454_8(ClassWithDestructor) = Chi : total:m2452_8, partial:m2454_7 +# 2454| m2454_8(ClassWithDestructor) = Chi : total:m2454_2, partial:m2454_7 +# 2455| v2455_1(void) = ReThrow : +# 2456| r2456_1(glval) = VariableAddress[c] : +# 2456| r2456_2(glval) = FunctionAddress[~ClassWithDestructor] : +# 2456| v2456_3(void) = Call[~ClassWithDestructor] : func:r2456_2, this:r2456_1 +# 2456| m2456_4(unknown) = ^CallSideEffect : ~m2454_6 +# 2456| m2456_5(unknown) = Chi : total:m2454_6, partial:m2456_4 +# 2456| v2456_6(void) = ^IndirectReadSideEffect[-1] : &:r2456_1, m2454_8 +# 2456| m2456_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2456_1 +# 2456| m2456_8(ClassWithDestructor) = Chi : total:m2454_8, partial:m2456_7 #-----| C++ Exception -> Block 1 -# 2451| Block 1 -# 2451| v2451_7(void) = Unwind : -# 2451| v2451_8(void) = AliasedUse : ~m2454_5 -# 2451| v2451_9(void) = ExitFunction : - -# 2460| void new_with_destructor(ClassWithDestructor) -# 2460| Block 0 -# 2460| v2460_1(void) = EnterFunction : -# 2460| m2460_2(unknown) = AliasedDefinition : -# 2460| m2460_3(unknown) = InitializeNonLocal : -# 2460| m2460_4(unknown) = Chi : total:m2460_2, partial:m2460_3 -# 2460| r2460_5(glval) = VariableAddress[a] : -# 2460| m2460_6(ClassWithDestructor) = InitializeParameter[a] : &:r2460_5 -# 2462| r2462_1(glval) = VariableAddress[b] : -# 2462| r2462_2(glval) = FunctionAddress[operator new] : -# 2462| r2462_3(unsigned long) = Constant[1] : -# 2462| r2462_4(void *) = Call[operator new] : func:r2462_2, 0:r2462_3 -# 2462| m2462_5(unknown) = ^CallSideEffect : ~m2460_4 -# 2462| m2462_6(unknown) = Chi : total:m2460_4, partial:m2462_5 -# 2462| m2462_7(unknown) = ^InitializeDynamicAllocation : &:r2462_4 -# 2462| m2462_8(unknown) = Chi : total:m2462_6, partial:m2462_7 -# 2462| r2462_9(ByValueConstructor *) = Convert : r2462_4 -# 2462| r2462_10(glval) = FunctionAddress[ByValueConstructor] : -# 2462| r2462_11(glval) = VariableAddress[#temp2462:52] : -# 2462| r2462_12(glval) = VariableAddress[a] : -# 2462| r2462_13(ClassWithDestructor) = Load[a] : &:r2462_12, m2460_6 -# 2462| m2462_14(ClassWithDestructor) = Store[#temp2462:52] : &:r2462_11, r2462_13 -# 2462| r2462_15(ClassWithDestructor) = Load[#temp2462:52] : &:r2462_11, m2462_14 -# 2462| v2462_16(void) = Call[ByValueConstructor] : func:r2462_10, this:r2462_9, 0:r2462_15 -# 2462| m2462_17(unknown) = ^CallSideEffect : ~m2462_8 -# 2462| m2462_18(unknown) = Chi : total:m2462_8, partial:m2462_17 -# 2462| m2462_19(ByValueConstructor) = ^IndirectMayWriteSideEffect[-1] : &:r2462_9 -# 2462| m2462_20(unknown) = Chi : total:m2462_18, partial:m2462_19 -# 2462| r2462_21(glval) = CopyValue : r2462_11 -# 2462| r2462_22(glval) = FunctionAddress[~ClassWithDestructor] : -# 2462| v2462_23(void) = Call[~ClassWithDestructor] : func:r2462_22, this:r2462_21 -# 2462| m2462_24(unknown) = ^CallSideEffect : ~m2462_20 -# 2462| m2462_25(unknown) = Chi : total:m2462_20, partial:m2462_24 -# 2462| v2462_26(void) = ^IndirectReadSideEffect[-1] : &:r2462_21, m2462_14 -# 2462| m2462_27(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2462_21 -# 2462| m2462_28(ClassWithDestructor) = Chi : total:m2462_14, partial:m2462_27 -# 2462| m2462_29(ByValueConstructor *) = Store[b] : &:r2462_1, r2462_9 -# 2463| v2463_1(void) = NoOp : -# 2460| v2460_7(void) = ReturnVoid : -# 2460| v2460_8(void) = AliasedUse : ~m2462_25 -# 2460| v2460_9(void) = ExitFunction : - -# 2479| void rvalue_conversion_with_destructor::test() -# 2479| Block 0 -# 2479| v2479_1(void) = EnterFunction : -# 2479| m2479_2(unknown) = AliasedDefinition : -# 2479| m2479_3(unknown) = InitializeNonLocal : -# 2479| m2479_4(unknown) = Chi : total:m2479_2, partial:m2479_3 -# 2481| r2481_1(glval) = VariableAddress[a] : -# 2481| r2481_2(glval) = VariableAddress[#temp2481:18] : -# 2481| r2481_3(glval) = FunctionAddress[get] : -# 2481| r2481_4(B) = Call[get] : func:r2481_3 -# 2481| m2481_5(unknown) = ^CallSideEffect : ~m2479_4 -# 2481| m2481_6(unknown) = Chi : total:m2479_4, partial:m2481_5 -# 2481| m2481_7(B) = Store[#temp2481:18] : &:r2481_2, r2481_4 -# 2481| m2481_8(unknown) = Chi : total:m2481_6, partial:m2481_7 -# 2481| r2481_9(glval) = Convert : r2481_2 -# 2481| r2481_10(glval) = FunctionAddress[operator->] : -# 2481| r2481_11(A *) = Call[operator->] : func:r2481_10, this:r2481_9 -# 2481| m2481_12(unknown) = ^CallSideEffect : ~m2481_8 -# 2481| m2481_13(unknown) = Chi : total:m2481_8, partial:m2481_12 -# 2481| v2481_14(void) = ^IndirectReadSideEffect[-1] : &:r2481_9, ~m2481_13 -# 2481| r2481_15(glval) = FieldAddress[a] : r2481_11 -# 2481| r2481_16(glval) = CopyValue : r2481_2 -# 2481| r2481_17(glval) = FunctionAddress[~B] : -# 2481| v2481_18(void) = Call[~B] : func:r2481_17, this:r2481_16 -# 2481| m2481_19(unknown) = ^CallSideEffect : ~m2481_13 -# 2481| m2481_20(unknown) = Chi : total:m2481_13, partial:m2481_19 -# 2481| v2481_21(void) = ^IndirectReadSideEffect[-1] : &:r2481_16, ~m2481_20 -# 2481| m2481_22(B) = ^IndirectMayWriteSideEffect[-1] : &:r2481_16 -# 2481| m2481_23(unknown) = Chi : total:m2481_20, partial:m2481_22 -# 2481| r2481_24(unsigned int) = Load[?] : &:r2481_15, ~m2481_23 -# 2481| m2481_25(unsigned int) = Store[a] : &:r2481_1, r2481_24 -# 2482| v2482_1(void) = NoOp : -# 2479| v2479_5(void) = ReturnVoid : -# 2479| v2479_6(void) = AliasedUse : ~m2481_20 -# 2479| v2479_7(void) = ExitFunction : - -# 2485| void destructor_without_block(bool) -# 2485| Block 0 -# 2485| v2485_1(void) = EnterFunction : -# 2485| m2485_2(unknown) = AliasedDefinition : -# 2485| m2485_3(unknown) = InitializeNonLocal : -# 2485| m2485_4(unknown) = Chi : total:m2485_2, partial:m2485_3 -# 2485| r2485_5(glval) = VariableAddress[b] : -# 2485| m2485_6(bool) = InitializeParameter[b] : &:r2485_5 -# 2487| r2487_1(glval) = VariableAddress[b] : -# 2487| r2487_2(bool) = Load[b] : &:r2487_1, m2485_6 -# 2487| v2487_3(void) = ConditionalBranch : r2487_2 +# 2453| Block 1 +# 2453| v2453_7(void) = Unwind : +# 2453| v2453_8(void) = AliasedUse : ~m2456_5 +# 2453| v2453_9(void) = ExitFunction : + +# 2462| void new_with_destructor(ClassWithDestructor) +# 2462| Block 0 +# 2462| v2462_1(void) = EnterFunction : +# 2462| m2462_2(unknown) = AliasedDefinition : +# 2462| m2462_3(unknown) = InitializeNonLocal : +# 2462| m2462_4(unknown) = Chi : total:m2462_2, partial:m2462_3 +# 2462| r2462_5(glval) = VariableAddress[a] : +# 2462| m2462_6(ClassWithDestructor) = InitializeParameter[a] : &:r2462_5 +# 2464| r2464_1(glval) = VariableAddress[b] : +# 2464| r2464_2(glval) = FunctionAddress[operator new] : +# 2464| r2464_3(unsigned long) = Constant[1] : +# 2464| r2464_4(void *) = Call[operator new] : func:r2464_2, 0:r2464_3 +# 2464| m2464_5(unknown) = ^CallSideEffect : ~m2462_4 +# 2464| m2464_6(unknown) = Chi : total:m2462_4, partial:m2464_5 +# 2464| m2464_7(unknown) = ^InitializeDynamicAllocation : &:r2464_4 +# 2464| m2464_8(unknown) = Chi : total:m2464_6, partial:m2464_7 +# 2464| r2464_9(ByValueConstructor *) = Convert : r2464_4 +# 2464| r2464_10(glval) = FunctionAddress[ByValueConstructor] : +# 2464| r2464_11(glval) = VariableAddress[#temp2464:52] : +# 2464| r2464_12(glval) = VariableAddress[a] : +# 2464| r2464_13(ClassWithDestructor) = Load[a] : &:r2464_12, m2462_6 +# 2464| m2464_14(ClassWithDestructor) = Store[#temp2464:52] : &:r2464_11, r2464_13 +# 2464| r2464_15(ClassWithDestructor) = Load[#temp2464:52] : &:r2464_11, m2464_14 +# 2464| v2464_16(void) = Call[ByValueConstructor] : func:r2464_10, this:r2464_9, 0:r2464_15 +# 2464| m2464_17(unknown) = ^CallSideEffect : ~m2464_8 +# 2464| m2464_18(unknown) = Chi : total:m2464_8, partial:m2464_17 +# 2464| m2464_19(ByValueConstructor) = ^IndirectMayWriteSideEffect[-1] : &:r2464_9 +# 2464| m2464_20(unknown) = Chi : total:m2464_18, partial:m2464_19 +# 2464| r2464_21(glval) = CopyValue : r2464_11 +# 2464| r2464_22(glval) = FunctionAddress[~ClassWithDestructor] : +# 2464| v2464_23(void) = Call[~ClassWithDestructor] : func:r2464_22, this:r2464_21 +# 2464| m2464_24(unknown) = ^CallSideEffect : ~m2464_20 +# 2464| m2464_25(unknown) = Chi : total:m2464_20, partial:m2464_24 +# 2464| v2464_26(void) = ^IndirectReadSideEffect[-1] : &:r2464_21, m2464_14 +# 2464| m2464_27(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2464_21 +# 2464| m2464_28(ClassWithDestructor) = Chi : total:m2464_14, partial:m2464_27 +# 2464| m2464_29(ByValueConstructor *) = Store[b] : &:r2464_1, r2464_9 +# 2465| v2465_1(void) = NoOp : +# 2462| v2462_7(void) = ReturnVoid : +# 2462| v2462_8(void) = AliasedUse : ~m2464_25 +# 2462| v2462_9(void) = ExitFunction : + +# 2481| void rvalue_conversion_with_destructor::test() +# 2481| Block 0 +# 2481| v2481_1(void) = EnterFunction : +# 2481| m2481_2(unknown) = AliasedDefinition : +# 2481| m2481_3(unknown) = InitializeNonLocal : +# 2481| m2481_4(unknown) = Chi : total:m2481_2, partial:m2481_3 +# 2483| r2483_1(glval) = VariableAddress[a] : +# 2483| r2483_2(glval) = VariableAddress[#temp2483:18] : +# 2483| r2483_3(glval) = FunctionAddress[get] : +# 2483| r2483_4(B) = Call[get] : func:r2483_3 +# 2483| m2483_5(unknown) = ^CallSideEffect : ~m2481_4 +# 2483| m2483_6(unknown) = Chi : total:m2481_4, partial:m2483_5 +# 2483| m2483_7(B) = Store[#temp2483:18] : &:r2483_2, r2483_4 +# 2483| m2483_8(unknown) = Chi : total:m2483_6, partial:m2483_7 +# 2483| r2483_9(glval) = Convert : r2483_2 +# 2483| r2483_10(glval) = FunctionAddress[operator->] : +# 2483| r2483_11(A *) = Call[operator->] : func:r2483_10, this:r2483_9 +# 2483| m2483_12(unknown) = ^CallSideEffect : ~m2483_8 +# 2483| m2483_13(unknown) = Chi : total:m2483_8, partial:m2483_12 +# 2483| v2483_14(void) = ^IndirectReadSideEffect[-1] : &:r2483_9, ~m2483_13 +# 2483| r2483_15(glval) = FieldAddress[a] : r2483_11 +# 2483| r2483_16(glval) = CopyValue : r2483_2 +# 2483| r2483_17(glval) = FunctionAddress[~B] : +# 2483| v2483_18(void) = Call[~B] : func:r2483_17, this:r2483_16 +# 2483| m2483_19(unknown) = ^CallSideEffect : ~m2483_13 +# 2483| m2483_20(unknown) = Chi : total:m2483_13, partial:m2483_19 +# 2483| v2483_21(void) = ^IndirectReadSideEffect[-1] : &:r2483_16, ~m2483_20 +# 2483| m2483_22(B) = ^IndirectMayWriteSideEffect[-1] : &:r2483_16 +# 2483| m2483_23(unknown) = Chi : total:m2483_20, partial:m2483_22 +# 2483| r2483_24(unsigned int) = Load[?] : &:r2483_15, ~m2483_23 +# 2483| m2483_25(unsigned int) = Store[a] : &:r2483_1, r2483_24 +# 2484| v2484_1(void) = NoOp : +# 2481| v2481_5(void) = ReturnVoid : +# 2481| v2481_6(void) = AliasedUse : ~m2483_20 +# 2481| v2481_7(void) = ExitFunction : + +# 2487| void destructor_without_block(bool) +# 2487| Block 0 +# 2487| v2487_1(void) = EnterFunction : +# 2487| m2487_2(unknown) = AliasedDefinition : +# 2487| m2487_3(unknown) = InitializeNonLocal : +# 2487| m2487_4(unknown) = Chi : total:m2487_2, partial:m2487_3 +# 2487| r2487_5(glval) = VariableAddress[b] : +# 2487| m2487_6(bool) = InitializeParameter[b] : &:r2487_5 +# 2489| r2489_1(glval) = VariableAddress[b] : +# 2489| r2489_2(bool) = Load[b] : &:r2489_1, m2487_6 +# 2489| v2489_3(void) = ConditionalBranch : r2489_2 #-----| False -> Block 2 #-----| True -> Block 1 -# 2488| Block 1 -# 2488| r2488_1(glval) = VariableAddress[c] : -# 2488| m2488_2(ClassWithDestructor) = Uninitialized[c] : &:r2488_1 -# 2488| r2488_3(glval) = FunctionAddress[ClassWithDestructor] : -# 2488| v2488_4(void) = Call[ClassWithDestructor] : func:r2488_3, this:r2488_1 -# 2488| m2488_5(unknown) = ^CallSideEffect : ~m2485_4 -# 2488| m2488_6(unknown) = Chi : total:m2485_4, partial:m2488_5 -# 2488| m2488_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2488_1 -# 2488| m2488_8(ClassWithDestructor) = Chi : total:m2488_2, partial:m2488_7 +# 2490| Block 1 +# 2490| r2490_1(glval) = VariableAddress[c] : +# 2490| m2490_2(ClassWithDestructor) = Uninitialized[c] : &:r2490_1 +# 2490| r2490_3(glval) = FunctionAddress[ClassWithDestructor] : +# 2490| v2490_4(void) = Call[ClassWithDestructor] : func:r2490_3, this:r2490_1 +# 2490| m2490_5(unknown) = ^CallSideEffect : ~m2487_4 +# 2490| m2490_6(unknown) = Chi : total:m2487_4, partial:m2490_5 +# 2490| m2490_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2490_1 +# 2490| m2490_8(ClassWithDestructor) = Chi : total:m2490_2, partial:m2490_7 #-----| r0_1(glval) = VariableAddress[c] : #-----| r0_2(glval) = FunctionAddress[~ClassWithDestructor] : #-----| v0_3(void) = Call[~ClassWithDestructor] : func:r0_2, this:r0_1 -#-----| m0_4(unknown) = ^CallSideEffect : ~m2488_6 -#-----| m0_5(unknown) = Chi : total:m2488_6, partial:m0_4 -#-----| v0_6(void) = ^IndirectReadSideEffect[-1] : &:r0_1, m2488_8 +#-----| m0_4(unknown) = ^CallSideEffect : ~m2490_6 +#-----| m0_5(unknown) = Chi : total:m2490_6, partial:m0_4 +#-----| v0_6(void) = ^IndirectReadSideEffect[-1] : &:r0_1, m2490_8 #-----| m0_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r0_1 -#-----| m0_8(ClassWithDestructor) = Chi : total:m2488_8, partial:m0_7 +#-----| m0_8(ClassWithDestructor) = Chi : total:m2490_8, partial:m0_7 #-----| Goto -> Block 2 -# 2490| Block 2 -# 2490| m2490_1(unknown) = Phi : from 0:~m2485_4, from 1:~m0_5 -# 2490| r2490_2(glval) = VariableAddress[b] : -# 2490| r2490_3(bool) = Load[b] : &:r2490_2, m2485_6 -# 2490| v2490_4(void) = ConditionalBranch : r2490_3 +# 2492| Block 2 +# 2492| m2492_1(unknown) = Phi : from 0:~m2487_4, from 1:~m0_5 +# 2492| r2492_2(glval) = VariableAddress[b] : +# 2492| r2492_3(bool) = Load[b] : &:r2492_2, m2487_6 +# 2492| v2492_4(void) = ConditionalBranch : r2492_3 #-----| False -> Block 4 #-----| True -> Block 3 -# 2491| Block 3 -# 2491| r2491_1(glval) = VariableAddress[d] : -# 2491| m2491_2(ClassWithDestructor) = Uninitialized[d] : &:r2491_1 -# 2491| r2491_3(glval) = FunctionAddress[ClassWithDestructor] : -# 2491| v2491_4(void) = Call[ClassWithDestructor] : func:r2491_3, this:r2491_1 -# 2491| m2491_5(unknown) = ^CallSideEffect : ~m2490_1 -# 2491| m2491_6(unknown) = Chi : total:m2490_1, partial:m2491_5 -# 2491| m2491_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2491_1 -# 2491| m2491_8(ClassWithDestructor) = Chi : total:m2491_2, partial:m2491_7 +# 2493| Block 3 +# 2493| r2493_1(glval) = VariableAddress[d] : +# 2493| m2493_2(ClassWithDestructor) = Uninitialized[d] : &:r2493_1 +# 2493| r2493_3(glval) = FunctionAddress[ClassWithDestructor] : +# 2493| v2493_4(void) = Call[ClassWithDestructor] : func:r2493_3, this:r2493_1 +# 2493| m2493_5(unknown) = ^CallSideEffect : ~m2492_1 +# 2493| m2493_6(unknown) = Chi : total:m2492_1, partial:m2493_5 +# 2493| m2493_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2493_1 +# 2493| m2493_8(ClassWithDestructor) = Chi : total:m2493_2, partial:m2493_7 #-----| r0_9(glval) = VariableAddress[d] : #-----| r0_10(glval) = FunctionAddress[~ClassWithDestructor] : #-----| v0_11(void) = Call[~ClassWithDestructor] : func:r0_10, this:r0_9 -#-----| m0_12(unknown) = ^CallSideEffect : ~m2491_6 -#-----| m0_13(unknown) = Chi : total:m2491_6, partial:m0_12 -#-----| v0_14(void) = ^IndirectReadSideEffect[-1] : &:r0_9, m2491_8 +#-----| m0_12(unknown) = ^CallSideEffect : ~m2493_6 +#-----| m0_13(unknown) = Chi : total:m2493_6, partial:m0_12 +#-----| v0_14(void) = ^IndirectReadSideEffect[-1] : &:r0_9, m2493_8 #-----| m0_15(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r0_9 -#-----| m0_16(ClassWithDestructor) = Chi : total:m2491_8, partial:m0_15 +#-----| m0_16(ClassWithDestructor) = Chi : total:m2493_8, partial:m0_15 #-----| Goto -> Block 5 -# 2493| Block 4 -# 2493| r2493_1(glval) = VariableAddress[e] : -# 2493| m2493_2(ClassWithDestructor) = Uninitialized[e] : &:r2493_1 -# 2493| r2493_3(glval) = FunctionAddress[ClassWithDestructor] : -# 2493| v2493_4(void) = Call[ClassWithDestructor] : func:r2493_3, this:r2493_1 -# 2493| m2493_5(unknown) = ^CallSideEffect : ~m2490_1 -# 2493| m2493_6(unknown) = Chi : total:m2490_1, partial:m2493_5 -# 2493| m2493_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2493_1 -# 2493| m2493_8(ClassWithDestructor) = Chi : total:m2493_2, partial:m2493_7 +# 2495| Block 4 +# 2495| r2495_1(glval) = VariableAddress[e] : +# 2495| m2495_2(ClassWithDestructor) = Uninitialized[e] : &:r2495_1 +# 2495| r2495_3(glval) = FunctionAddress[ClassWithDestructor] : +# 2495| v2495_4(void) = Call[ClassWithDestructor] : func:r2495_3, this:r2495_1 +# 2495| m2495_5(unknown) = ^CallSideEffect : ~m2492_1 +# 2495| m2495_6(unknown) = Chi : total:m2492_1, partial:m2495_5 +# 2495| m2495_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2495_1 +# 2495| m2495_8(ClassWithDestructor) = Chi : total:m2495_2, partial:m2495_7 #-----| r0_17(glval) = VariableAddress[e] : #-----| r0_18(glval) = FunctionAddress[~ClassWithDestructor] : #-----| v0_19(void) = Call[~ClassWithDestructor] : func:r0_18, this:r0_17 -#-----| m0_20(unknown) = ^CallSideEffect : ~m2493_6 -#-----| m0_21(unknown) = Chi : total:m2493_6, partial:m0_20 -#-----| v0_22(void) = ^IndirectReadSideEffect[-1] : &:r0_17, m2493_8 +#-----| m0_20(unknown) = ^CallSideEffect : ~m2495_6 +#-----| m0_21(unknown) = Chi : total:m2495_6, partial:m0_20 +#-----| v0_22(void) = ^IndirectReadSideEffect[-1] : &:r0_17, m2495_8 #-----| m0_23(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r0_17 -#-----| m0_24(ClassWithDestructor) = Chi : total:m2493_8, partial:m0_23 +#-----| m0_24(ClassWithDestructor) = Chi : total:m2495_8, partial:m0_23 #-----| Goto -> Block 5 -# 2495| Block 5 -# 2495| m2495_1(unknown) = Phi : from 3:~m0_13, from 4:~m0_21, from 6:~m0_29 -# 2495| r2495_2(glval) = VariableAddress[b] : -# 2495| r2495_3(bool) = Load[b] : &:r2495_2, m2485_6 -# 2495| v2495_4(void) = ConditionalBranch : r2495_3 +# 2497| Block 5 +# 2497| m2497_1(unknown) = Phi : from 3:~m0_13, from 4:~m0_21, from 6:~m0_29 +# 2497| r2497_2(glval) = VariableAddress[b] : +# 2497| r2497_3(bool) = Load[b] : &:r2497_2, m2487_6 +# 2497| v2497_4(void) = ConditionalBranch : r2497_3 #-----| False -> Block 7 #-----| True -> Block 6 -# 2496| Block 6 -# 2496| r2496_1(glval) = VariableAddress[f] : -# 2496| m2496_2(ClassWithDestructor) = Uninitialized[f] : &:r2496_1 -# 2496| r2496_3(glval) = FunctionAddress[ClassWithDestructor] : -# 2496| v2496_4(void) = Call[ClassWithDestructor] : func:r2496_3, this:r2496_1 -# 2496| m2496_5(unknown) = ^CallSideEffect : ~m2495_1 -# 2496| m2496_6(unknown) = Chi : total:m2495_1, partial:m2496_5 -# 2496| m2496_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2496_1 -# 2496| m2496_8(ClassWithDestructor) = Chi : total:m2496_2, partial:m2496_7 +# 2498| Block 6 +# 2498| r2498_1(glval) = VariableAddress[f] : +# 2498| m2498_2(ClassWithDestructor) = Uninitialized[f] : &:r2498_1 +# 2498| r2498_3(glval) = FunctionAddress[ClassWithDestructor] : +# 2498| v2498_4(void) = Call[ClassWithDestructor] : func:r2498_3, this:r2498_1 +# 2498| m2498_5(unknown) = ^CallSideEffect : ~m2497_1 +# 2498| m2498_6(unknown) = Chi : total:m2497_1, partial:m2498_5 +# 2498| m2498_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2498_1 +# 2498| m2498_8(ClassWithDestructor) = Chi : total:m2498_2, partial:m2498_7 #-----| r0_25(glval) = VariableAddress[f] : #-----| r0_26(glval) = FunctionAddress[~ClassWithDestructor] : #-----| v0_27(void) = Call[~ClassWithDestructor] : func:r0_26, this:r0_25 -#-----| m0_28(unknown) = ^CallSideEffect : ~m2496_6 -#-----| m0_29(unknown) = Chi : total:m2496_6, partial:m0_28 -#-----| v0_30(void) = ^IndirectReadSideEffect[-1] : &:r0_25, m2496_8 +#-----| m0_28(unknown) = ^CallSideEffect : ~m2498_6 +#-----| m0_29(unknown) = Chi : total:m2498_6, partial:m0_28 +#-----| v0_30(void) = ^IndirectReadSideEffect[-1] : &:r0_25, m2498_8 #-----| m0_31(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r0_25 -#-----| m0_32(ClassWithDestructor) = Chi : total:m2496_8, partial:m0_31 +#-----| m0_32(ClassWithDestructor) = Chi : total:m2498_8, partial:m0_31 #-----| Goto (back edge) -> Block 5 -# 2498| Block 7 -# 2498| r2498_1(glval) = VariableAddress[i] : -# 2498| r2498_2(int) = Constant[0] : -# 2498| m2498_3(int) = Store[i] : &:r2498_1, r2498_2 +# 2500| Block 7 +# 2500| r2500_1(glval) = VariableAddress[i] : +# 2500| r2500_2(int) = Constant[0] : +# 2500| m2500_3(int) = Store[i] : &:r2500_1, r2500_2 #-----| Goto -> Block 8 -# 2498| Block 8 -# 2498| m2498_4(unknown) = Phi : from 7:~m2495_1, from 9:~m0_37 -# 2498| m2498_5(int) = Phi : from 7:m2498_3, from 9:m2498_15 -# 2498| r2498_6(glval) = VariableAddress[i] : -# 2498| r2498_7(int) = Load[i] : &:r2498_6, m2498_5 -# 2498| r2498_8(int) = Constant[42] : -# 2498| r2498_9(bool) = CompareLT : r2498_7, r2498_8 -# 2498| v2498_10(void) = ConditionalBranch : r2498_9 +# 2500| Block 8 +# 2500| m2500_4(unknown) = Phi : from 7:~m2497_1, from 9:~m0_37 +# 2500| m2500_5(int) = Phi : from 7:m2500_3, from 9:m2500_15 +# 2500| r2500_6(glval) = VariableAddress[i] : +# 2500| r2500_7(int) = Load[i] : &:r2500_6, m2500_5 +# 2500| r2500_8(int) = Constant[42] : +# 2500| r2500_9(bool) = CompareLT : r2500_7, r2500_8 +# 2500| v2500_10(void) = ConditionalBranch : r2500_9 #-----| False -> Block 10 #-----| True -> Block 9 -# 2499| Block 9 -# 2499| r2499_1(glval) = VariableAddress[g] : -# 2499| m2499_2(ClassWithDestructor) = Uninitialized[g] : &:r2499_1 -# 2499| r2499_3(glval) = FunctionAddress[ClassWithDestructor] : -# 2499| v2499_4(void) = Call[ClassWithDestructor] : func:r2499_3, this:r2499_1 -# 2499| m2499_5(unknown) = ^CallSideEffect : ~m2498_4 -# 2499| m2499_6(unknown) = Chi : total:m2498_4, partial:m2499_5 -# 2499| m2499_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2499_1 -# 2499| m2499_8(ClassWithDestructor) = Chi : total:m2499_2, partial:m2499_7 +# 2501| Block 9 +# 2501| r2501_1(glval) = VariableAddress[g] : +# 2501| m2501_2(ClassWithDestructor) = Uninitialized[g] : &:r2501_1 +# 2501| r2501_3(glval) = FunctionAddress[ClassWithDestructor] : +# 2501| v2501_4(void) = Call[ClassWithDestructor] : func:r2501_3, this:r2501_1 +# 2501| m2501_5(unknown) = ^CallSideEffect : ~m2500_4 +# 2501| m2501_6(unknown) = Chi : total:m2500_4, partial:m2501_5 +# 2501| m2501_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2501_1 +# 2501| m2501_8(ClassWithDestructor) = Chi : total:m2501_2, partial:m2501_7 #-----| r0_33(glval) = VariableAddress[g] : #-----| r0_34(glval) = FunctionAddress[~ClassWithDestructor] : #-----| v0_35(void) = Call[~ClassWithDestructor] : func:r0_34, this:r0_33 -#-----| m0_36(unknown) = ^CallSideEffect : ~m2499_6 -#-----| m0_37(unknown) = Chi : total:m2499_6, partial:m0_36 -#-----| v0_38(void) = ^IndirectReadSideEffect[-1] : &:r0_33, m2499_8 +#-----| m0_36(unknown) = ^CallSideEffect : ~m2501_6 +#-----| m0_37(unknown) = Chi : total:m2501_6, partial:m0_36 +#-----| v0_38(void) = ^IndirectReadSideEffect[-1] : &:r0_33, m2501_8 #-----| m0_39(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r0_33 -#-----| m0_40(ClassWithDestructor) = Chi : total:m2499_8, partial:m0_39 -# 2498| r2498_11(glval) = VariableAddress[i] : -# 2498| r2498_12(int) = Load[i] : &:r2498_11, m2498_5 -# 2498| r2498_13(int) = Constant[1] : -# 2498| r2498_14(int) = Add : r2498_12, r2498_13 -# 2498| m2498_15(int) = Store[i] : &:r2498_11, r2498_14 +#-----| m0_40(ClassWithDestructor) = Chi : total:m2501_8, partial:m0_39 +# 2500| r2500_11(glval) = VariableAddress[i] : +# 2500| r2500_12(int) = Load[i] : &:r2500_11, m2500_5 +# 2500| r2500_13(int) = Constant[1] : +# 2500| r2500_14(int) = Add : r2500_12, r2500_13 +# 2500| m2500_15(int) = Store[i] : &:r2500_11, r2500_14 #-----| Goto (back edge) -> Block 8 -# 2500| Block 10 -# 2500| v2500_1(void) = NoOp : -# 2485| v2485_7(void) = ReturnVoid : -# 2485| v2485_8(void) = AliasedUse : ~m2498_4 -# 2485| v2485_9(void) = ExitFunction : - -# 2502| void destruction_in_switch_1(int) -# 2502| Block 0 -# 2502| v2502_1(void) = EnterFunction : -# 2502| m2502_2(unknown) = AliasedDefinition : -# 2502| m2502_3(unknown) = InitializeNonLocal : -# 2502| m2502_4(unknown) = Chi : total:m2502_2, partial:m2502_3 -# 2502| r2502_5(glval) = VariableAddress[c] : -# 2502| m2502_6(int) = InitializeParameter[c] : &:r2502_5 -# 2503| r2503_1(glval) = VariableAddress[c] : -# 2503| r2503_2(int) = Load[c] : &:r2503_1, m2502_6 -# 2503| v2503_3(void) = Switch : r2503_2 +# 2502| Block 10 +# 2502| v2502_1(void) = NoOp : +# 2487| v2487_7(void) = ReturnVoid : +# 2487| v2487_8(void) = AliasedUse : ~m2500_4 +# 2487| v2487_9(void) = ExitFunction : + +# 2504| void destruction_in_switch_1(int) +# 2504| Block 0 +# 2504| v2504_1(void) = EnterFunction : +# 2504| m2504_2(unknown) = AliasedDefinition : +# 2504| m2504_3(unknown) = InitializeNonLocal : +# 2504| m2504_4(unknown) = Chi : total:m2504_2, partial:m2504_3 +# 2504| r2504_5(glval) = VariableAddress[c] : +# 2504| m2504_6(int) = InitializeParameter[c] : &:r2504_5 +# 2505| r2505_1(glval) = VariableAddress[c] : +# 2505| r2505_2(int) = Load[c] : &:r2505_1, m2504_6 +# 2505| v2505_3(void) = Switch : r2505_2 #-----| Case[0] -> Block 1 #-----| Default -> Block 2 -# 2504| Block 1 -# 2504| v2504_1(void) = NoOp : -# 2505| r2505_1(glval) = VariableAddress[x] : -# 2505| m2505_2(ClassWithDestructor) = Uninitialized[x] : &:r2505_1 -# 2505| r2505_3(glval) = FunctionAddress[ClassWithDestructor] : -# 2505| v2505_4(void) = Call[ClassWithDestructor] : func:r2505_3, this:r2505_1 -# 2505| m2505_5(unknown) = ^CallSideEffect : ~m2502_4 -# 2505| m2505_6(unknown) = Chi : total:m2502_4, partial:m2505_5 -# 2505| m2505_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2505_1 -# 2505| m2505_8(ClassWithDestructor) = Chi : total:m2505_2, partial:m2505_7 +# 2506| Block 1 +# 2506| v2506_1(void) = NoOp : # 2507| r2507_1(glval) = VariableAddress[x] : -# 2507| r2507_2(glval) = FunctionAddress[~ClassWithDestructor] : -# 2507| v2507_3(void) = Call[~ClassWithDestructor] : func:r2507_2, this:r2507_1 -# 2507| m2507_4(unknown) = ^CallSideEffect : ~m2505_6 -# 2507| m2507_5(unknown) = Chi : total:m2505_6, partial:m2507_4 -# 2507| v2507_6(void) = ^IndirectReadSideEffect[-1] : &:r2507_1, m2505_8 +# 2507| m2507_2(ClassWithDestructor) = Uninitialized[x] : &:r2507_1 +# 2507| r2507_3(glval) = FunctionAddress[ClassWithDestructor] : +# 2507| v2507_4(void) = Call[ClassWithDestructor] : func:r2507_3, this:r2507_1 +# 2507| m2507_5(unknown) = ^CallSideEffect : ~m2504_4 +# 2507| m2507_6(unknown) = Chi : total:m2504_4, partial:m2507_5 # 2507| m2507_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2507_1 -# 2507| m2507_8(ClassWithDestructor) = Chi : total:m2505_8, partial:m2507_7 -# 2506| v2506_1(void) = NoOp : +# 2507| m2507_8(ClassWithDestructor) = Chi : total:m2507_2, partial:m2507_7 +# 2509| r2509_1(glval) = VariableAddress[x] : +# 2509| r2509_2(glval) = FunctionAddress[~ClassWithDestructor] : +# 2509| v2509_3(void) = Call[~ClassWithDestructor] : func:r2509_2, this:r2509_1 +# 2509| m2509_4(unknown) = ^CallSideEffect : ~m2507_6 +# 2509| m2509_5(unknown) = Chi : total:m2507_6, partial:m2509_4 +# 2509| v2509_6(void) = ^IndirectReadSideEffect[-1] : &:r2509_1, m2507_8 +# 2509| m2509_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2509_1 +# 2509| m2509_8(ClassWithDestructor) = Chi : total:m2507_8, partial:m2509_7 +# 2508| v2508_1(void) = NoOp : #-----| Goto -> Block 2 -# 2508| Block 2 -# 2508| m2508_1(unknown) = Phi : from 0:~m2502_4, from 1:~m2507_5 -# 2508| v2508_2(void) = NoOp : -# 2509| v2509_1(void) = NoOp : -# 2502| v2502_7(void) = ReturnVoid : -# 2502| v2502_8(void) = AliasedUse : ~m2508_1 -# 2502| v2502_9(void) = ExitFunction : - -# 2511| void destruction_in_switch_2(int) -# 2511| Block 0 -# 2511| v2511_1(void) = EnterFunction : -# 2511| m2511_2(unknown) = AliasedDefinition : -# 2511| m2511_3(unknown) = InitializeNonLocal : -# 2511| m2511_4(unknown) = Chi : total:m2511_2, partial:m2511_3 -# 2511| r2511_5(glval) = VariableAddress[c] : -# 2511| m2511_6(int) = InitializeParameter[c] : &:r2511_5 -# 2512| r2512_1(glval) = VariableAddress[y] : -# 2512| m2512_2(ClassWithDestructor) = Uninitialized[y] : &:r2512_1 -# 2512| r2512_3(glval) = FunctionAddress[ClassWithDestructor] : -# 2512| v2512_4(void) = Call[ClassWithDestructor] : func:r2512_3, this:r2512_1 -# 2512| m2512_5(unknown) = ^CallSideEffect : ~m2511_4 -# 2512| m2512_6(unknown) = Chi : total:m2511_4, partial:m2512_5 -# 2512| m2512_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2512_1 -# 2512| m2512_8(ClassWithDestructor) = Chi : total:m2512_2, partial:m2512_7 -# 2512| r2512_9(glval) = VariableAddress[c] : -# 2512| r2512_10(int) = Load[c] : &:r2512_9, m2511_6 -# 2512| v2512_11(void) = Switch : r2512_10 +# 2510| Block 2 +# 2510| m2510_1(unknown) = Phi : from 0:~m2504_4, from 1:~m2509_5 +# 2510| v2510_2(void) = NoOp : +# 2511| v2511_1(void) = NoOp : +# 2504| v2504_7(void) = ReturnVoid : +# 2504| v2504_8(void) = AliasedUse : ~m2510_1 +# 2504| v2504_9(void) = ExitFunction : + +# 2513| void destruction_in_switch_2(int) +# 2513| Block 0 +# 2513| v2513_1(void) = EnterFunction : +# 2513| m2513_2(unknown) = AliasedDefinition : +# 2513| m2513_3(unknown) = InitializeNonLocal : +# 2513| m2513_4(unknown) = Chi : total:m2513_2, partial:m2513_3 +# 2513| r2513_5(glval) = VariableAddress[c] : +# 2513| m2513_6(int) = InitializeParameter[c] : &:r2513_5 +# 2514| r2514_1(glval) = VariableAddress[y] : +# 2514| m2514_2(ClassWithDestructor) = Uninitialized[y] : &:r2514_1 +# 2514| r2514_3(glval) = FunctionAddress[ClassWithDestructor] : +# 2514| v2514_4(void) = Call[ClassWithDestructor] : func:r2514_3, this:r2514_1 +# 2514| m2514_5(unknown) = ^CallSideEffect : ~m2513_4 +# 2514| m2514_6(unknown) = Chi : total:m2513_4, partial:m2514_5 +# 2514| m2514_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2514_1 +# 2514| m2514_8(ClassWithDestructor) = Chi : total:m2514_2, partial:m2514_7 +# 2514| r2514_9(glval) = VariableAddress[c] : +# 2514| r2514_10(int) = Load[c] : &:r2514_9, m2513_6 +# 2514| v2514_11(void) = Switch : r2514_10 #-----| Case[0] -> Block 1 #-----| Default -> Block 2 -# 2513| Block 1 -# 2513| v2513_1(void) = NoOp : -# 2519| r2519_1(glval) = VariableAddress[y] : -# 2519| r2519_2(glval) = FunctionAddress[~ClassWithDestructor] : -# 2519| v2519_3(void) = Call[~ClassWithDestructor] : func:r2519_2, this:r2519_1 -# 2519| m2519_4(unknown) = ^CallSideEffect : ~m2512_6 -# 2519| m2519_5(unknown) = Chi : total:m2512_6, partial:m2519_4 -# 2519| v2519_6(void) = ^IndirectReadSideEffect[-1] : &:r2519_1, m2512_8 -# 2519| m2519_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2519_1 -# 2519| m2519_8(ClassWithDestructor) = Chi : total:m2512_8, partial:m2519_7 -# 2514| v2514_1(void) = NoOp : +# 2515| Block 1 +# 2515| v2515_1(void) = NoOp : +# 2521| r2521_1(glval) = VariableAddress[y] : +# 2521| r2521_2(glval) = FunctionAddress[~ClassWithDestructor] : +# 2521| v2521_3(void) = Call[~ClassWithDestructor] : func:r2521_2, this:r2521_1 +# 2521| m2521_4(unknown) = ^CallSideEffect : ~m2514_6 +# 2521| m2521_5(unknown) = Chi : total:m2514_6, partial:m2521_4 +# 2521| v2521_6(void) = ^IndirectReadSideEffect[-1] : &:r2521_1, m2514_8 +# 2521| m2521_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2521_1 +# 2521| m2521_8(ClassWithDestructor) = Chi : total:m2514_8, partial:m2521_7 +# 2516| v2516_1(void) = NoOp : #-----| Goto -> Block 3 -# 2516| Block 2 -# 2516| v2516_1(void) = NoOp : -# 2519| r2519_9(glval) = VariableAddress[y] : -# 2519| r2519_10(glval) = FunctionAddress[~ClassWithDestructor] : -# 2519| v2519_11(void) = Call[~ClassWithDestructor] : func:r2519_10, this:r2519_9 -# 2519| m2519_12(unknown) = ^CallSideEffect : ~m2512_6 -# 2519| m2519_13(unknown) = Chi : total:m2512_6, partial:m2519_12 -# 2519| v2519_14(void) = ^IndirectReadSideEffect[-1] : &:r2519_9, m2512_8 -# 2519| m2519_15(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2519_9 -# 2519| m2519_16(ClassWithDestructor) = Chi : total:m2512_8, partial:m2519_15 -# 2517| v2517_1(void) = NoOp : +# 2518| Block 2 +# 2518| v2518_1(void) = NoOp : +# 2521| r2521_9(glval) = VariableAddress[y] : +# 2521| r2521_10(glval) = FunctionAddress[~ClassWithDestructor] : +# 2521| v2521_11(void) = Call[~ClassWithDestructor] : func:r2521_10, this:r2521_9 +# 2521| m2521_12(unknown) = ^CallSideEffect : ~m2514_6 +# 2521| m2521_13(unknown) = Chi : total:m2514_6, partial:m2521_12 +# 2521| v2521_14(void) = ^IndirectReadSideEffect[-1] : &:r2521_9, m2514_8 +# 2521| m2521_15(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2521_9 +# 2521| m2521_16(ClassWithDestructor) = Chi : total:m2514_8, partial:m2521_15 +# 2519| v2519_1(void) = NoOp : #-----| Goto -> Block 3 -# 2519| Block 3 -# 2519| m2519_17(unknown) = Phi : from 1:~m2519_5, from 2:~m2519_13 -# 2519| v2519_18(void) = NoOp : -# 2520| v2520_1(void) = NoOp : -# 2511| v2511_7(void) = ReturnVoid : -# 2511| v2511_8(void) = AliasedUse : ~m2519_17 -# 2511| v2511_9(void) = ExitFunction : - -# 2522| void destruction_in_switch_3(int) -# 2522| Block 0 -# 2522| v2522_1(void) = EnterFunction : -# 2522| m2522_2(unknown) = AliasedDefinition : -# 2522| m2522_3(unknown) = InitializeNonLocal : -# 2522| m2522_4(unknown) = Chi : total:m2522_2, partial:m2522_3 -# 2522| r2522_5(glval) = VariableAddress[c] : -# 2522| m2522_6(int) = InitializeParameter[c] : &:r2522_5 -# 2523| r2523_1(glval) = VariableAddress[y] : -# 2523| m2523_2(ClassWithDestructor) = Uninitialized[y] : &:r2523_1 -# 2523| r2523_3(glval) = FunctionAddress[ClassWithDestructor] : -# 2523| v2523_4(void) = Call[ClassWithDestructor] : func:r2523_3, this:r2523_1 -# 2523| m2523_5(unknown) = ^CallSideEffect : ~m2522_4 -# 2523| m2523_6(unknown) = Chi : total:m2522_4, partial:m2523_5 -# 2523| m2523_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2523_1 -# 2523| m2523_8(ClassWithDestructor) = Chi : total:m2523_2, partial:m2523_7 -# 2523| r2523_9(glval) = VariableAddress[c] : -# 2523| r2523_10(int) = Load[c] : &:r2523_9, m2522_6 -# 2523| v2523_11(void) = Switch : r2523_10 +# 2521| Block 3 +# 2521| m2521_17(unknown) = Phi : from 1:~m2521_5, from 2:~m2521_13 +# 2521| v2521_18(void) = NoOp : +# 2522| v2522_1(void) = NoOp : +# 2513| v2513_7(void) = ReturnVoid : +# 2513| v2513_8(void) = AliasedUse : ~m2521_17 +# 2513| v2513_9(void) = ExitFunction : + +# 2524| void destruction_in_switch_3(int) +# 2524| Block 0 +# 2524| v2524_1(void) = EnterFunction : +# 2524| m2524_2(unknown) = AliasedDefinition : +# 2524| m2524_3(unknown) = InitializeNonLocal : +# 2524| m2524_4(unknown) = Chi : total:m2524_2, partial:m2524_3 +# 2524| r2524_5(glval) = VariableAddress[c] : +# 2524| m2524_6(int) = InitializeParameter[c] : &:r2524_5 +# 2525| r2525_1(glval) = VariableAddress[y] : +# 2525| m2525_2(ClassWithDestructor) = Uninitialized[y] : &:r2525_1 +# 2525| r2525_3(glval) = FunctionAddress[ClassWithDestructor] : +# 2525| v2525_4(void) = Call[ClassWithDestructor] : func:r2525_3, this:r2525_1 +# 2525| m2525_5(unknown) = ^CallSideEffect : ~m2524_4 +# 2525| m2525_6(unknown) = Chi : total:m2524_4, partial:m2525_5 +# 2525| m2525_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2525_1 +# 2525| m2525_8(ClassWithDestructor) = Chi : total:m2525_2, partial:m2525_7 +# 2525| r2525_9(glval) = VariableAddress[c] : +# 2525| r2525_10(int) = Load[c] : &:r2525_9, m2524_6 +# 2525| v2525_11(void) = Switch : r2525_10 #-----| Case[0] -> Block 1 #-----| Default -> Block 2 -# 2524| Block 1 -# 2524| v2524_1(void) = NoOp : -# 2525| r2525_1(glval) = VariableAddress[x] : -# 2525| m2525_2(ClassWithDestructor) = Uninitialized[x] : &:r2525_1 -# 2525| r2525_3(glval) = FunctionAddress[ClassWithDestructor] : -# 2525| v2525_4(void) = Call[ClassWithDestructor] : func:r2525_3, this:r2525_1 -# 2525| m2525_5(unknown) = ^CallSideEffect : ~m2523_6 -# 2525| m2525_6(unknown) = Chi : total:m2523_6, partial:m2525_5 -# 2525| m2525_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2525_1 -# 2525| m2525_8(ClassWithDestructor) = Chi : total:m2525_2, partial:m2525_7 +# 2526| Block 1 +# 2526| v2526_1(void) = NoOp : # 2527| r2527_1(glval) = VariableAddress[x] : -# 2527| r2527_2(glval) = FunctionAddress[~ClassWithDestructor] : -# 2527| v2527_3(void) = Call[~ClassWithDestructor] : func:r2527_2, this:r2527_1 -# 2527| m2527_4(unknown) = ^CallSideEffect : ~m2525_6 -# 2527| m2527_5(unknown) = Chi : total:m2525_6, partial:m2527_4 -# 2527| v2527_6(void) = ^IndirectReadSideEffect[-1] : &:r2527_1, m2525_8 +# 2527| m2527_2(ClassWithDestructor) = Uninitialized[x] : &:r2527_1 +# 2527| r2527_3(glval) = FunctionAddress[ClassWithDestructor] : +# 2527| v2527_4(void) = Call[ClassWithDestructor] : func:r2527_3, this:r2527_1 +# 2527| m2527_5(unknown) = ^CallSideEffect : ~m2525_6 +# 2527| m2527_6(unknown) = Chi : total:m2525_6, partial:m2527_5 # 2527| m2527_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2527_1 -# 2527| m2527_8(ClassWithDestructor) = Chi : total:m2525_8, partial:m2527_7 -# 2531| r2531_1(glval) = VariableAddress[y] : -# 2531| r2531_2(glval) = FunctionAddress[~ClassWithDestructor] : -# 2531| v2531_3(void) = Call[~ClassWithDestructor] : func:r2531_2, this:r2531_1 -# 2531| m2531_4(unknown) = ^CallSideEffect : ~m2527_5 -# 2531| m2531_5(unknown) = Chi : total:m2527_5, partial:m2531_4 -# 2531| v2531_6(void) = ^IndirectReadSideEffect[-1] : &:r2531_1, m2523_8 -# 2531| m2531_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2531_1 -# 2531| m2531_8(ClassWithDestructor) = Chi : total:m2523_8, partial:m2531_7 -# 2526| v2526_1(void) = NoOp : +# 2527| m2527_8(ClassWithDestructor) = Chi : total:m2527_2, partial:m2527_7 +# 2529| r2529_1(glval) = VariableAddress[x] : +# 2529| r2529_2(glval) = FunctionAddress[~ClassWithDestructor] : +# 2529| v2529_3(void) = Call[~ClassWithDestructor] : func:r2529_2, this:r2529_1 +# 2529| m2529_4(unknown) = ^CallSideEffect : ~m2527_6 +# 2529| m2529_5(unknown) = Chi : total:m2527_6, partial:m2529_4 +# 2529| v2529_6(void) = ^IndirectReadSideEffect[-1] : &:r2529_1, m2527_8 +# 2529| m2529_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2529_1 +# 2529| m2529_8(ClassWithDestructor) = Chi : total:m2527_8, partial:m2529_7 +# 2533| r2533_1(glval) = VariableAddress[y] : +# 2533| r2533_2(glval) = FunctionAddress[~ClassWithDestructor] : +# 2533| v2533_3(void) = Call[~ClassWithDestructor] : func:r2533_2, this:r2533_1 +# 2533| m2533_4(unknown) = ^CallSideEffect : ~m2529_5 +# 2533| m2533_5(unknown) = Chi : total:m2529_5, partial:m2533_4 +# 2533| v2533_6(void) = ^IndirectReadSideEffect[-1] : &:r2533_1, m2525_8 +# 2533| m2533_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2533_1 +# 2533| m2533_8(ClassWithDestructor) = Chi : total:m2525_8, partial:m2533_7 +# 2528| v2528_1(void) = NoOp : #-----| Goto -> Block 3 -# 2528| Block 2 -# 2528| v2528_1(void) = NoOp : -# 2531| r2531_9(glval) = VariableAddress[y] : -# 2531| r2531_10(glval) = FunctionAddress[~ClassWithDestructor] : -# 2531| v2531_11(void) = Call[~ClassWithDestructor] : func:r2531_10, this:r2531_9 -# 2531| m2531_12(unknown) = ^CallSideEffect : ~m2523_6 -# 2531| m2531_13(unknown) = Chi : total:m2523_6, partial:m2531_12 -# 2531| v2531_14(void) = ^IndirectReadSideEffect[-1] : &:r2531_9, m2523_8 -# 2531| m2531_15(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2531_9 -# 2531| m2531_16(ClassWithDestructor) = Chi : total:m2523_8, partial:m2531_15 -# 2529| v2529_1(void) = NoOp : +# 2530| Block 2 +# 2530| v2530_1(void) = NoOp : +# 2533| r2533_9(glval) = VariableAddress[y] : +# 2533| r2533_10(glval) = FunctionAddress[~ClassWithDestructor] : +# 2533| v2533_11(void) = Call[~ClassWithDestructor] : func:r2533_10, this:r2533_9 +# 2533| m2533_12(unknown) = ^CallSideEffect : ~m2525_6 +# 2533| m2533_13(unknown) = Chi : total:m2525_6, partial:m2533_12 +# 2533| v2533_14(void) = ^IndirectReadSideEffect[-1] : &:r2533_9, m2525_8 +# 2533| m2533_15(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2533_9 +# 2533| m2533_16(ClassWithDestructor) = Chi : total:m2525_8, partial:m2533_15 +# 2531| v2531_1(void) = NoOp : #-----| Goto -> Block 3 -# 2531| Block 3 -# 2531| m2531_17(unknown) = Phi : from 1:~m2531_5, from 2:~m2531_13 -# 2531| v2531_18(void) = NoOp : -# 2532| v2532_1(void) = NoOp : -# 2522| v2522_7(void) = ReturnVoid : -# 2522| v2522_8(void) = AliasedUse : ~m2531_17 -# 2522| v2522_9(void) = ExitFunction : - -# 2534| void destructor_possibly_not_handled() -# 2534| Block 0 -# 2534| v2534_1(void) = EnterFunction : -# 2534| m2534_2(unknown) = AliasedDefinition : -# 2534| m2534_3(unknown) = InitializeNonLocal : -# 2534| m2534_4(unknown) = Chi : total:m2534_2, partial:m2534_3 -# 2535| r2535_1(glval) = VariableAddress[x] : -# 2535| m2535_2(ClassWithDestructor) = Uninitialized[x] : &:r2535_1 -# 2535| r2535_3(glval) = FunctionAddress[ClassWithDestructor] : -# 2535| v2535_4(void) = Call[ClassWithDestructor] : func:r2535_3, this:r2535_1 -# 2535| m2535_5(unknown) = ^CallSideEffect : ~m2534_4 -# 2535| m2535_6(unknown) = Chi : total:m2534_4, partial:m2535_5 -# 2535| m2535_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2535_1 -# 2535| m2535_8(ClassWithDestructor) = Chi : total:m2535_2, partial:m2535_7 -# 2537| r2537_1(glval) = VariableAddress[#throw2537:5] : -# 2537| r2537_2(int) = Constant[42] : -# 2537| m2537_3(int) = Store[#throw2537:5] : &:r2537_1, r2537_2 -# 2537| v2537_4(void) = ThrowValue : &:r2537_1, m2537_3 +# 2533| Block 3 +# 2533| m2533_17(unknown) = Phi : from 1:~m2533_5, from 2:~m2533_13 +# 2533| v2533_18(void) = NoOp : +# 2534| v2534_1(void) = NoOp : +# 2524| v2524_7(void) = ReturnVoid : +# 2524| v2524_8(void) = AliasedUse : ~m2533_17 +# 2524| v2524_9(void) = ExitFunction : + +# 2536| void destructor_possibly_not_handled() +# 2536| Block 0 +# 2536| v2536_1(void) = EnterFunction : +# 2536| m2536_2(unknown) = AliasedDefinition : +# 2536| m2536_3(unknown) = InitializeNonLocal : +# 2536| m2536_4(unknown) = Chi : total:m2536_2, partial:m2536_3 +# 2537| r2537_1(glval) = VariableAddress[x] : +# 2537| m2537_2(ClassWithDestructor) = Uninitialized[x] : &:r2537_1 +# 2537| r2537_3(glval) = FunctionAddress[ClassWithDestructor] : +# 2537| v2537_4(void) = Call[ClassWithDestructor] : func:r2537_3, this:r2537_1 +# 2537| m2537_5(unknown) = ^CallSideEffect : ~m2536_4 +# 2537| m2537_6(unknown) = Chi : total:m2536_4, partial:m2537_5 +# 2537| m2537_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2537_1 +# 2537| m2537_8(ClassWithDestructor) = Chi : total:m2537_2, partial:m2537_7 +# 2539| r2539_1(glval) = VariableAddress[#throw2539:5] : +# 2539| r2539_2(int) = Constant[42] : +# 2539| m2539_3(int) = Store[#throw2539:5] : &:r2539_1, r2539_2 +# 2539| v2539_4(void) = ThrowValue : &:r2539_1, m2539_3 #-----| C++ Exception -> Block 2 -# 2534| Block 1 -# 2534| m2534_5(unknown) = Phi : from 3:~m2541_6, from 4:~m2541_14 -# 2534| v2534_6(void) = AliasedUse : ~m2534_5 -# 2534| v2534_7(void) = ExitFunction : +# 2536| Block 1 +# 2536| m2536_5(unknown) = Phi : from 3:~m2543_6, from 4:~m2543_14 +# 2536| v2536_6(void) = AliasedUse : ~m2536_5 +# 2536| v2536_7(void) = ExitFunction : -# 2539| Block 2 -# 2539| v2539_1(void) = CatchByType[char] : +# 2541| Block 2 +# 2541| v2541_1(void) = CatchByType[char] : #-----| C++ Exception -> Block 4 #-----| Goto -> Block 3 -# 2539| Block 3 -# 2539| r2539_2(glval) = VariableAddress[(unnamed parameter 0)] : -# 2539| m2539_3(char) = InitializeParameter[(unnamed parameter 0)] : &:r2539_2 -# 2539| v2539_4(void) = NoOp : -# 2541| v2541_1(void) = NoOp : -# 2541| r2541_2(glval) = VariableAddress[x] : -# 2541| r2541_3(glval) = FunctionAddress[~ClassWithDestructor] : -# 2541| v2541_4(void) = Call[~ClassWithDestructor] : func:r2541_3, this:r2541_2 -# 2541| m2541_5(unknown) = ^CallSideEffect : ~m2535_6 -# 2541| m2541_6(unknown) = Chi : total:m2535_6, partial:m2541_5 -# 2541| v2541_7(void) = ^IndirectReadSideEffect[-1] : &:r2541_2, m2535_8 -# 2541| m2541_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2541_2 -# 2541| m2541_9(ClassWithDestructor) = Chi : total:m2535_8, partial:m2541_8 -# 2534| v2534_8(void) = ReturnVoid : +# 2541| Block 3 +# 2541| r2541_2(glval) = VariableAddress[(unnamed parameter 0)] : +# 2541| m2541_3(char) = InitializeParameter[(unnamed parameter 0)] : &:r2541_2 +# 2541| v2541_4(void) = NoOp : +# 2543| v2543_1(void) = NoOp : +# 2543| r2543_2(glval) = VariableAddress[x] : +# 2543| r2543_3(glval) = FunctionAddress[~ClassWithDestructor] : +# 2543| v2543_4(void) = Call[~ClassWithDestructor] : func:r2543_3, this:r2543_2 +# 2543| m2543_5(unknown) = ^CallSideEffect : ~m2537_6 +# 2543| m2543_6(unknown) = Chi : total:m2537_6, partial:m2543_5 +# 2543| v2543_7(void) = ^IndirectReadSideEffect[-1] : &:r2543_2, m2537_8 +# 2543| m2543_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2543_2 +# 2543| m2543_9(ClassWithDestructor) = Chi : total:m2537_8, partial:m2543_8 +# 2536| v2536_8(void) = ReturnVoid : #-----| Goto -> Block 1 -# 2541| Block 4 -# 2541| r2541_10(glval) = VariableAddress[x] : -# 2541| r2541_11(glval) = FunctionAddress[~ClassWithDestructor] : -# 2541| v2541_12(void) = Call[~ClassWithDestructor] : func:r2541_11, this:r2541_10 -# 2541| m2541_13(unknown) = ^CallSideEffect : ~m2535_6 -# 2541| m2541_14(unknown) = Chi : total:m2535_6, partial:m2541_13 -# 2541| v2541_15(void) = ^IndirectReadSideEffect[-1] : &:r2541_10, m2535_8 -# 2541| m2541_16(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2541_10 -# 2541| m2541_17(ClassWithDestructor) = Chi : total:m2535_8, partial:m2541_16 -# 2534| v2534_9(void) = Unwind : +# 2543| Block 4 +# 2543| r2543_10(glval) = VariableAddress[x] : +# 2543| r2543_11(glval) = FunctionAddress[~ClassWithDestructor] : +# 2543| v2543_12(void) = Call[~ClassWithDestructor] : func:r2543_11, this:r2543_10 +# 2543| m2543_13(unknown) = ^CallSideEffect : ~m2537_6 +# 2543| m2543_14(unknown) = Chi : total:m2537_6, partial:m2543_13 +# 2543| v2543_15(void) = ^IndirectReadSideEffect[-1] : &:r2543_10, m2537_8 +# 2543| m2543_16(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2543_10 +# 2543| m2543_17(ClassWithDestructor) = Chi : total:m2537_8, partial:m2543_16 +# 2536| v2536_9(void) = Unwind : #-----| Goto -> Block 1 -# 2545| void this_inconsistency(bool) -# 2545| Block 0 -# 2545| v2545_1(void) = EnterFunction : -# 2545| m2545_2(unknown) = AliasedDefinition : -# 2545| m2545_3(unknown) = InitializeNonLocal : -# 2545| m2545_4(unknown) = Chi : total:m2545_2, partial:m2545_3 -# 2545| r2545_5(glval) = VariableAddress[b] : -# 2545| m2545_6(bool) = InitializeParameter[b] : &:r2545_5 -# 2546| r2546_1(glval) = VariableAddress[a] : -# 2546| r2546_2(glval) = VariableAddress[#temp2546:38] : -# 2546| r2546_3(glval) = FunctionAddress[getClassWithDestructor] : -# 2546| r2546_4(ClassWithDestructor) = Call[getClassWithDestructor] : func:r2546_3 -# 2546| m2546_5(unknown) = ^CallSideEffect : ~m2545_4 -# 2546| m2546_6(unknown) = Chi : total:m2545_4, partial:m2546_5 -# 2546| m2546_7(ClassWithDestructor) = Store[#temp2546:38] : &:r2546_2, r2546_4 -# 2546| m2546_8(unknown) = Chi : total:m2546_6, partial:m2546_7 -# 2546| r2546_9(glval) = Convert : r2546_2 -# 2546| r2546_10(ClassWithDestructor &) = CopyValue : r2546_9 -# 2546| m2546_11(ClassWithDestructor &) = Store[a] : &:r2546_1, r2546_10 -# 2546| r2546_12(glval) = VariableAddress[a] : -# 2546| r2546_13(ClassWithDestructor &) = Load[a] : &:r2546_12, m2546_11 -# 2546| r2546_14(ClassWithDestructor) = CopyValue : r2546_13 -# 2546| r2546_15(glval) = FunctionAddress[operator bool] : -# 2546| r2546_16(bool) = Call[operator bool] : func:r2546_15, this:r2546_14 -# 2546| m2546_17(unknown) = ^CallSideEffect : ~m2546_8 -# 2546| m2546_18(unknown) = Chi : total:m2546_8, partial:m2546_17 -# 2546| v2546_19(void) = ^IndirectReadSideEffect[-1] : &:r2546_14, ~m2546_18 -# 2546| r2546_20(bool) = CopyValue : r2546_16 -# 2546| v2546_21(void) = ConditionalBranch : r2546_20 +# 2547| void this_inconsistency(bool) +# 2547| Block 0 +# 2547| v2547_1(void) = EnterFunction : +# 2547| m2547_2(unknown) = AliasedDefinition : +# 2547| m2547_3(unknown) = InitializeNonLocal : +# 2547| m2547_4(unknown) = Chi : total:m2547_2, partial:m2547_3 +# 2547| r2547_5(glval) = VariableAddress[b] : +# 2547| m2547_6(bool) = InitializeParameter[b] : &:r2547_5 +# 2548| r2548_1(glval) = VariableAddress[a] : +# 2548| r2548_2(glval) = VariableAddress[#temp2548:38] : +# 2548| r2548_3(glval) = FunctionAddress[getClassWithDestructor] : +# 2548| r2548_4(ClassWithDestructor) = Call[getClassWithDestructor] : func:r2548_3 +# 2548| m2548_5(unknown) = ^CallSideEffect : ~m2547_4 +# 2548| m2548_6(unknown) = Chi : total:m2547_4, partial:m2548_5 +# 2548| m2548_7(ClassWithDestructor) = Store[#temp2548:38] : &:r2548_2, r2548_4 +# 2548| m2548_8(unknown) = Chi : total:m2548_6, partial:m2548_7 +# 2548| r2548_9(glval) = Convert : r2548_2 +# 2548| r2548_10(ClassWithDestructor &) = CopyValue : r2548_9 +# 2548| m2548_11(ClassWithDestructor &) = Store[a] : &:r2548_1, r2548_10 +# 2548| r2548_12(glval) = VariableAddress[a] : +# 2548| r2548_13(ClassWithDestructor &) = Load[a] : &:r2548_12, m2548_11 +# 2548| r2548_14(ClassWithDestructor) = CopyValue : r2548_13 +# 2548| r2548_15(glval) = FunctionAddress[operator bool] : +# 2548| r2548_16(bool) = Call[operator bool] : func:r2548_15, this:r2548_14 +# 2548| m2548_17(unknown) = ^CallSideEffect : ~m2548_8 +# 2548| m2548_18(unknown) = Chi : total:m2548_8, partial:m2548_17 +# 2548| v2548_19(void) = ^IndirectReadSideEffect[-1] : &:r2548_14, ~m2548_18 +# 2548| r2548_20(bool) = CopyValue : r2548_16 +# 2548| v2548_21(void) = ConditionalBranch : r2548_20 #-----| False -> Block 2 #-----| True -> Block 1 -# 2547| Block 1 -# 2547| v2547_1(void) = NoOp : +# 2549| Block 1 +# 2549| v2549_1(void) = NoOp : #-----| Goto -> Block 2 -# 2547| Block 2 -# 2547| r2547_2(glval) = CopyValue : r2546_2 -# 2547| r2547_3(glval) = FunctionAddress[~ClassWithDestructor] : -# 2547| v2547_4(void) = Call[~ClassWithDestructor] : func:r2547_3, this:r2547_2 -# 2547| m2547_5(unknown) = ^CallSideEffect : ~m2546_18 -# 2547| m2547_6(unknown) = Chi : total:m2546_18, partial:m2547_5 -# 2547| v2547_7(void) = ^IndirectReadSideEffect[-1] : &:r2547_2, ~m2547_6 -# 2547| m2547_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2547_2 -# 2547| m2547_9(unknown) = Chi : total:m2547_6, partial:m2547_8 -# 2548| v2548_1(void) = NoOp : -# 2545| v2545_7(void) = ReturnVoid : -# 2545| v2545_8(void) = AliasedUse : ~m2547_6 -# 2545| v2545_9(void) = ExitFunction : - -# 2550| void constexpr_inconsistency(bool) -# 2550| Block 0 -# 2550| v2550_1(void) = EnterFunction : -# 2550| m2550_2(unknown) = AliasedDefinition : -# 2550| m2550_3(unknown) = InitializeNonLocal : -# 2550| m2550_4(unknown) = Chi : total:m2550_2, partial:m2550_3 -# 2550| r2550_5(glval) = VariableAddress[b] : -# 2550| m2550_6(bool) = InitializeParameter[b] : &:r2550_5 -# 2551| r2551_1(glval) = VariableAddress[a] : -# 2551| r2551_2(glval) = VariableAddress[#temp2551:48] : -# 2551| r2551_3(glval) = FunctionAddress[getClassWithDestructor] : -# 2551| r2551_4(ClassWithDestructor) = Call[getClassWithDestructor] : func:r2551_3 -# 2551| m2551_5(unknown) = ^CallSideEffect : ~m2550_4 -# 2551| m2551_6(unknown) = Chi : total:m2550_4, partial:m2551_5 -# 2551| m2551_7(ClassWithDestructor) = Store[#temp2551:48] : &:r2551_2, r2551_4 -# 2551| r2551_8(glval) = Convert : r2551_2 -# 2551| r2551_9(ClassWithDestructor &) = CopyValue : r2551_8 -# 2551| m2551_10(ClassWithDestructor &) = Store[a] : &:r2551_1, r2551_9 -# 2551| r2551_11(bool) = Constant[1] : -# 2551| v2551_12(void) = ConditionalBranch : r2551_11 +# 2549| Block 2 +# 2549| r2549_2(glval) = CopyValue : r2548_2 +# 2549| r2549_3(glval) = FunctionAddress[~ClassWithDestructor] : +# 2549| v2549_4(void) = Call[~ClassWithDestructor] : func:r2549_3, this:r2549_2 +# 2549| m2549_5(unknown) = ^CallSideEffect : ~m2548_18 +# 2549| m2549_6(unknown) = Chi : total:m2548_18, partial:m2549_5 +# 2549| v2549_7(void) = ^IndirectReadSideEffect[-1] : &:r2549_2, ~m2549_6 +# 2549| m2549_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2549_2 +# 2549| m2549_9(unknown) = Chi : total:m2549_6, partial:m2549_8 +# 2550| v2550_1(void) = NoOp : +# 2547| v2547_7(void) = ReturnVoid : +# 2547| v2547_8(void) = AliasedUse : ~m2549_6 +# 2547| v2547_9(void) = ExitFunction : + +# 2552| void constexpr_inconsistency(bool) +# 2552| Block 0 +# 2552| v2552_1(void) = EnterFunction : +# 2552| m2552_2(unknown) = AliasedDefinition : +# 2552| m2552_3(unknown) = InitializeNonLocal : +# 2552| m2552_4(unknown) = Chi : total:m2552_2, partial:m2552_3 +# 2552| r2552_5(glval) = VariableAddress[b] : +# 2552| m2552_6(bool) = InitializeParameter[b] : &:r2552_5 +# 2553| r2553_1(glval) = VariableAddress[a] : +# 2553| r2553_2(glval) = VariableAddress[#temp2553:48] : +# 2553| r2553_3(glval) = FunctionAddress[getClassWithDestructor] : +# 2553| r2553_4(ClassWithDestructor) = Call[getClassWithDestructor] : func:r2553_3 +# 2553| m2553_5(unknown) = ^CallSideEffect : ~m2552_4 +# 2553| m2553_6(unknown) = Chi : total:m2552_4, partial:m2553_5 +# 2553| m2553_7(ClassWithDestructor) = Store[#temp2553:48] : &:r2553_2, r2553_4 +# 2553| r2553_8(glval) = Convert : r2553_2 +# 2553| r2553_9(ClassWithDestructor &) = CopyValue : r2553_8 +# 2553| m2553_10(ClassWithDestructor &) = Store[a] : &:r2553_1, r2553_9 +# 2553| r2553_11(bool) = Constant[1] : +# 2553| v2553_12(void) = ConditionalBranch : r2553_11 #-----| False -> Block 2 #-----| True -> Block 1 -# 2552| Block 1 -# 2552| v2552_1(void) = NoOp : -# 2552| r2552_2(glval) = CopyValue : r2551_2 -# 2552| r2552_3(glval) = FunctionAddress[~ClassWithDestructor] : -# 2552| v2552_4(void) = Call[~ClassWithDestructor] : func:r2552_3, this:r2552_2 -# 2552| m2552_5(unknown) = ^CallSideEffect : ~m2551_6 -# 2552| m2552_6(unknown) = Chi : total:m2551_6, partial:m2552_5 -# 2552| v2552_7(void) = ^IndirectReadSideEffect[-1] : &:r2552_2, m2551_7 -# 2552| m2552_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2552_2 -# 2552| m2552_9(ClassWithDestructor) = Chi : total:m2551_7, partial:m2552_8 -# 2553| v2553_1(void) = NoOp : -# 2550| v2550_7(void) = ReturnVoid : -# 2550| v2550_8(void) = AliasedUse : ~m2552_6 -# 2550| v2550_9(void) = ExitFunction : - -# 2550| Block 2 -# 2550| v2550_10(void) = Unreached : - -# 2555| void builtin_bitcast(unsigned long) -# 2555| Block 0 -# 2555| v2555_1(void) = EnterFunction : -# 2555| m2555_2(unknown) = AliasedDefinition : -# 2555| m2555_3(unknown) = InitializeNonLocal : -# 2555| m2555_4(unknown) = Chi : total:m2555_2, partial:m2555_3 -# 2555| r2555_5(glval) = VariableAddress[ul] : -# 2555| m2555_6(unsigned long) = InitializeParameter[ul] : &:r2555_5 -# 2556| r2556_1(glval) = VariableAddress[d] : -# 2556| r2556_2(glval) = VariableAddress[ul] : -# 2556| r2556_3(unsigned long) = Load[ul] : &:r2556_2, m2555_6 -# 2556| r2556_4(double) = BuiltIn[__builtin_bit_cast] : 0:r2556_3 -# 2556| m2556_5(double) = Store[d] : &:r2556_1, r2556_4 -# 2557| v2557_1(void) = NoOp : -# 2555| v2555_7(void) = ReturnVoid : -# 2555| v2555_8(void) = AliasedUse : m2555_3 -# 2555| v2555_9(void) = ExitFunction : - -# 2559| void p_points_to_x_or_y(int, int) -# 2559| Block 0 -# 2559| v2559_1(void) = EnterFunction : -# 2559| m2559_2(unknown) = AliasedDefinition : -# 2559| m2559_3(unknown) = InitializeNonLocal : -# 2559| m2559_4(unknown) = Chi : total:m2559_2, partial:m2559_3 -# 2559| m2559_5(int) = UninitializedGroup[x,y] : -# 2559| r2559_6(glval) = VariableAddress[a] : -# 2559| m2559_7(int) = InitializeParameter[a] : &:r2559_6 -# 2559| r2559_8(glval) = VariableAddress[b] : -# 2559| m2559_9(int) = InitializeParameter[b] : &:r2559_8 -# 2560| r2560_1(glval) = VariableAddress[x] : -# 2560| m2560_2(int) = Uninitialized[x] : &:r2560_1 -# 2560| m2560_3(int) = Chi : total:m2559_5, partial:m2560_2 -# 2561| r2561_1(glval) = VariableAddress[y] : -# 2561| m2561_2(int) = Uninitialized[y] : &:r2561_1 -# 2561| m2561_3(int) = Chi : total:m2560_3, partial:m2561_2 -# 2562| r2562_1(glval) = VariableAddress[p] : -# 2562| m2562_2(int *) = Uninitialized[p] : &:r2562_1 -# 2563| r2563_1(glval) = VariableAddress[a] : -# 2563| r2563_2(int) = Load[a] : &:r2563_1, m2559_7 -# 2563| r2563_3(glval) = VariableAddress[b] : -# 2563| r2563_4(int) = Load[b] : &:r2563_3, m2559_9 -# 2563| r2563_5(bool) = CompareLT : r2563_2, r2563_4 -# 2563| v2563_6(void) = ConditionalBranch : r2563_5 +# 2554| Block 1 +# 2554| v2554_1(void) = NoOp : +# 2554| r2554_2(glval) = CopyValue : r2553_2 +# 2554| r2554_3(glval) = FunctionAddress[~ClassWithDestructor] : +# 2554| v2554_4(void) = Call[~ClassWithDestructor] : func:r2554_3, this:r2554_2 +# 2554| m2554_5(unknown) = ^CallSideEffect : ~m2553_6 +# 2554| m2554_6(unknown) = Chi : total:m2553_6, partial:m2554_5 +# 2554| v2554_7(void) = ^IndirectReadSideEffect[-1] : &:r2554_2, m2553_7 +# 2554| m2554_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2554_2 +# 2554| m2554_9(ClassWithDestructor) = Chi : total:m2553_7, partial:m2554_8 +# 2555| v2555_1(void) = NoOp : +# 2552| v2552_7(void) = ReturnVoid : +# 2552| v2552_8(void) = AliasedUse : ~m2554_6 +# 2552| v2552_9(void) = ExitFunction : + +# 2552| Block 2 +# 2552| v2552_10(void) = Unreached : + +# 2557| void builtin_bitcast(unsigned long) +# 2557| Block 0 +# 2557| v2557_1(void) = EnterFunction : +# 2557| m2557_2(unknown) = AliasedDefinition : +# 2557| m2557_3(unknown) = InitializeNonLocal : +# 2557| m2557_4(unknown) = Chi : total:m2557_2, partial:m2557_3 +# 2557| r2557_5(glval) = VariableAddress[ul] : +# 2557| m2557_6(unsigned long) = InitializeParameter[ul] : &:r2557_5 +# 2558| r2558_1(glval) = VariableAddress[d] : +# 2558| r2558_2(glval) = VariableAddress[ul] : +# 2558| r2558_3(unsigned long) = Load[ul] : &:r2558_2, m2557_6 +# 2558| r2558_4(double) = BuiltIn[__builtin_bit_cast] : 0:r2558_3 +# 2558| m2558_5(double) = Store[d] : &:r2558_1, r2558_4 +# 2559| v2559_1(void) = NoOp : +# 2557| v2557_7(void) = ReturnVoid : +# 2557| v2557_8(void) = AliasedUse : m2557_3 +# 2557| v2557_9(void) = ExitFunction : + +# 2561| void p_points_to_x_or_y(int, int) +# 2561| Block 0 +# 2561| v2561_1(void) = EnterFunction : +# 2561| m2561_2(unknown) = AliasedDefinition : +# 2561| m2561_3(unknown) = InitializeNonLocal : +# 2561| m2561_4(unknown) = Chi : total:m2561_2, partial:m2561_3 +# 2561| m2561_5(int) = UninitializedGroup[x,y] : +# 2561| r2561_6(glval) = VariableAddress[a] : +# 2561| m2561_7(int) = InitializeParameter[a] : &:r2561_6 +# 2561| r2561_8(glval) = VariableAddress[b] : +# 2561| m2561_9(int) = InitializeParameter[b] : &:r2561_8 +# 2562| r2562_1(glval) = VariableAddress[x] : +# 2562| m2562_2(int) = Uninitialized[x] : &:r2562_1 +# 2562| m2562_3(int) = Chi : total:m2561_5, partial:m2562_2 +# 2563| r2563_1(glval) = VariableAddress[y] : +# 2563| m2563_2(int) = Uninitialized[y] : &:r2563_1 +# 2563| m2563_3(int) = Chi : total:m2562_3, partial:m2563_2 +# 2564| r2564_1(glval) = VariableAddress[p] : +# 2564| m2564_2(int *) = Uninitialized[p] : &:r2564_1 +# 2565| r2565_1(glval) = VariableAddress[a] : +# 2565| r2565_2(int) = Load[a] : &:r2565_1, m2561_7 +# 2565| r2565_3(glval) = VariableAddress[b] : +# 2565| r2565_4(int) = Load[b] : &:r2565_3, m2561_9 +# 2565| r2565_5(bool) = CompareLT : r2565_2, r2565_4 +# 2565| v2565_6(void) = ConditionalBranch : r2565_5 #-----| False -> Block 2 #-----| True -> Block 1 -# 2564| Block 1 -# 2564| r2564_1(glval) = VariableAddress[x] : -# 2564| r2564_2(int *) = CopyValue : r2564_1 -# 2564| r2564_3(glval) = VariableAddress[p] : -# 2564| m2564_4(int *) = Store[p] : &:r2564_3, r2564_2 -#-----| Goto -> Block 3 - -# 2566| Block 2 -# 2566| r2566_1(glval) = VariableAddress[y] : +# 2566| Block 1 +# 2566| r2566_1(glval) = VariableAddress[x] : # 2566| r2566_2(int *) = CopyValue : r2566_1 # 2566| r2566_3(glval) = VariableAddress[p] : # 2566| m2566_4(int *) = Store[p] : &:r2566_3, r2566_2 #-----| Goto -> Block 3 -# 2568| Block 3 -# 2568| m2568_1(int *) = Phi : from 1:m2564_4, from 2:m2566_4 -# 2568| r2568_2(int) = Constant[5] : +# 2568| Block 2 +# 2568| r2568_1(glval) = VariableAddress[y] : +# 2568| r2568_2(int *) = CopyValue : r2568_1 # 2568| r2568_3(glval) = VariableAddress[p] : -# 2568| r2568_4(int *) = Load[p] : &:r2568_3, m2568_1 -# 2568| r2568_5(glval) = CopyValue : r2568_4 -# 2568| m2568_6(int) = Store[?] : &:r2568_5, r2568_2 -# 2568| m2568_7(int) = Chi : total:m2561_3, partial:m2568_6 -# 2569| r2569_1(glval) = VariableAddress[z] : -# 2569| r2569_2(glval) = VariableAddress[x] : -# 2569| r2569_3(int) = Load[x] : &:r2569_2, ~m2568_7 -# 2569| m2569_4(int) = Store[z] : &:r2569_1, r2569_3 -# 2570| r2570_1(glval) = VariableAddress[w] : -# 2570| r2570_2(glval) = VariableAddress[y] : -# 2570| r2570_3(int) = Load[y] : &:r2570_2, ~m2568_7 -# 2570| m2570_4(int) = Store[w] : &:r2570_1, r2570_3 -# 2571| v2571_1(void) = NoOp : -# 2559| v2559_10(void) = ReturnVoid : -# 2559| v2559_11(void) = AliasedUse : m2559_3 -# 2559| v2559_12(void) = ExitFunction : - -# 2573| int phi_after_while() -# 2573| Block 0 -# 2573| v2573_1(void) = EnterFunction : -# 2573| m2573_2(unknown) = AliasedDefinition : -# 2573| m2573_3(unknown) = InitializeNonLocal : -# 2573| m2573_4(unknown) = Chi : total:m2573_2, partial:m2573_3 -# 2573| m2573_5(int) = UninitializedGroup[r,s] : -# 2574| r2574_1(glval) = VariableAddress[r] : -# 2574| m2574_2(int) = Uninitialized[r] : &:r2574_1 -# 2574| m2574_3(int) = Chi : total:m2573_5, partial:m2574_2 -# 2575| r2575_1(glval) = VariableAddress[rP] : -# 2575| r2575_2(glval) = VariableAddress[r] : -# 2575| r2575_3(int *) = CopyValue : r2575_2 -# 2575| m2575_4(int *) = Store[rP] : &:r2575_1, r2575_3 +# 2568| m2568_4(int *) = Store[p] : &:r2568_3, r2568_2 +#-----| Goto -> Block 3 + +# 2570| Block 3 +# 2570| m2570_1(int *) = Phi : from 1:m2566_4, from 2:m2568_4 +# 2570| r2570_2(int) = Constant[5] : +# 2570| r2570_3(glval) = VariableAddress[p] : +# 2570| r2570_4(int *) = Load[p] : &:r2570_3, m2570_1 +# 2570| r2570_5(glval) = CopyValue : r2570_4 +# 2570| m2570_6(int) = Store[?] : &:r2570_5, r2570_2 +# 2570| m2570_7(int) = Chi : total:m2563_3, partial:m2570_6 +# 2571| r2571_1(glval) = VariableAddress[z] : +# 2571| r2571_2(glval) = VariableAddress[x] : +# 2571| r2571_3(int) = Load[x] : &:r2571_2, ~m2570_7 +# 2571| m2571_4(int) = Store[z] : &:r2571_1, r2571_3 +# 2572| r2572_1(glval) = VariableAddress[w] : +# 2572| r2572_2(glval) = VariableAddress[y] : +# 2572| r2572_3(int) = Load[y] : &:r2572_2, ~m2570_7 +# 2572| m2572_4(int) = Store[w] : &:r2572_1, r2572_3 +# 2573| v2573_1(void) = NoOp : +# 2561| v2561_10(void) = ReturnVoid : +# 2561| v2561_11(void) = AliasedUse : m2561_3 +# 2561| v2561_12(void) = ExitFunction : + +# 2575| int phi_after_while() +# 2575| Block 0 +# 2575| v2575_1(void) = EnterFunction : +# 2575| m2575_2(unknown) = AliasedDefinition : +# 2575| m2575_3(unknown) = InitializeNonLocal : +# 2575| m2575_4(unknown) = Chi : total:m2575_2, partial:m2575_3 +# 2575| m2575_5(int) = UninitializedGroup[r,s] : +# 2576| r2576_1(glval) = VariableAddress[r] : +# 2576| m2576_2(int) = Uninitialized[r] : &:r2576_1 +# 2576| m2576_3(int) = Chi : total:m2575_5, partial:m2576_2 +# 2577| r2577_1(glval) = VariableAddress[rP] : +# 2577| r2577_2(glval) = VariableAddress[r] : +# 2577| r2577_3(int *) = CopyValue : r2577_2 +# 2577| m2577_4(int *) = Store[rP] : &:r2577_1, r2577_3 #-----| Goto -> Block 1 -# 2577| Block 1 -# 2577| m2577_1(int) = Phi : from 0:m2574_3, from 2:m2579_7 -# 2577| m2577_2(unknown) = Phi : from 0:~m2573_4, from 2:~m2577_7 -# 2577| m2577_3(int *) = Phi : from 0:m2575_4, from 2:m2580_4 -# 2577| r2577_4(glval) = FunctionAddress[predicateA] : -# 2577| r2577_5(bool) = Call[predicateA] : func:r2577_4 -# 2577| m2577_6(unknown) = ^CallSideEffect : ~m2577_2 -# 2577| m2577_7(unknown) = Chi : total:m2577_2, partial:m2577_6 -# 2577| v2577_8(void) = ConditionalBranch : r2577_5 +# 2579| Block 1 +# 2579| m2579_1(int) = Phi : from 0:m2576_3, from 2:m2581_7 +# 2579| m2579_2(unknown) = Phi : from 0:~m2575_4, from 2:~m2579_7 +# 2579| m2579_3(int *) = Phi : from 0:m2577_4, from 2:m2582_4 +# 2579| r2579_4(glval) = FunctionAddress[predicateA] : +# 2579| r2579_5(bool) = Call[predicateA] : func:r2579_4 +# 2579| m2579_6(unknown) = ^CallSideEffect : ~m2579_2 +# 2579| m2579_7(unknown) = Chi : total:m2579_2, partial:m2579_6 +# 2579| v2579_8(void) = ConditionalBranch : r2579_5 #-----| False -> Block 3 #-----| True -> Block 2 -# 2578| Block 2 -# 2578| r2578_1(glval) = VariableAddress[s] : -# 2578| r2578_2(int) = Constant[0] : -# 2578| m2578_3(int) = Store[s] : &:r2578_1, r2578_2 -# 2578| m2578_4(int) = Chi : total:m2577_1, partial:m2578_3 -# 2579| r2579_1(glval) = VariableAddress[s] : -# 2579| r2579_2(int) = Load[s] : &:r2579_1, m2578_3 -# 2579| r2579_3(glval) = VariableAddress[rP] : -# 2579| r2579_4(int *) = Load[rP] : &:r2579_3, m2577_3 -# 2579| r2579_5(glval) = CopyValue : r2579_4 -# 2579| m2579_6(int) = Store[?] : &:r2579_5, r2579_2 -# 2579| m2579_7(int) = Chi : total:m2578_4, partial:m2579_6 +# 2580| Block 2 # 2580| r2580_1(glval) = VariableAddress[s] : -# 2580| r2580_2(int *) = CopyValue : r2580_1 -# 2580| r2580_3(glval) = VariableAddress[rP] : -# 2580| m2580_4(int *) = Store[rP] : &:r2580_3, r2580_2 +# 2580| r2580_2(int) = Constant[0] : +# 2580| m2580_3(int) = Store[s] : &:r2580_1, r2580_2 +# 2580| m2580_4(int) = Chi : total:m2579_1, partial:m2580_3 +# 2581| r2581_1(glval) = VariableAddress[s] : +# 2581| r2581_2(int) = Load[s] : &:r2581_1, m2580_3 +# 2581| r2581_3(glval) = VariableAddress[rP] : +# 2581| r2581_4(int *) = Load[rP] : &:r2581_3, m2579_3 +# 2581| r2581_5(glval) = CopyValue : r2581_4 +# 2581| m2581_6(int) = Store[?] : &:r2581_5, r2581_2 +# 2581| m2581_7(int) = Chi : total:m2580_4, partial:m2581_6 +# 2582| r2582_1(glval) = VariableAddress[s] : +# 2582| r2582_2(int *) = CopyValue : r2582_1 +# 2582| r2582_3(glval) = VariableAddress[rP] : +# 2582| m2582_4(int *) = Store[rP] : &:r2582_3, r2582_2 #-----| Goto (back edge) -> Block 1 -# 2583| Block 3 -# 2583| r2583_1(glval) = VariableAddress[#return] : -# 2583| r2583_2(glval) = VariableAddress[r] : -# 2583| r2583_3(int) = Load[r] : &:r2583_2, ~m2577_1 -# 2583| m2583_4(int) = Store[#return] : &:r2583_1, r2583_3 -# 2573| r2573_6(glval) = VariableAddress[#return] : -# 2573| v2573_7(void) = ReturnValue : &:r2573_6, m2583_4 -# 2573| v2573_8(void) = AliasedUse : ~m2577_7 -# 2573| v2573_9(void) = ExitFunction : - -# 2588| char* recursive_conditional_call_with_increment(char*, bool) -# 2588| Block 0 -# 2588| v2588_1(void) = EnterFunction : -# 2588| m2588_2(unknown) = AliasedDefinition : -# 2588| m2588_3(unknown) = InitializeNonLocal : -# 2588| m2588_4(unknown) = Chi : total:m2588_2, partial:m2588_3 -# 2588| r2588_5(glval) = VariableAddress[d] : -# 2588| m2588_6(char *) = InitializeParameter[d] : &:r2588_5 -# 2588| r2588_7(char *) = Load[d] : &:r2588_5, m2588_6 -# 2588| m2588_8(unknown) = InitializeIndirection[d] : &:r2588_7 -# 2588| r2588_9(glval) = VariableAddress[b] : -# 2588| m2588_10(bool) = InitializeParameter[b] : &:r2588_9 -# 2590| r2590_1(glval) = VariableAddress[b] : -# 2590| r2590_2(bool) = Load[b] : &:r2590_1, m2588_10 -# 2590| v2590_3(void) = ConditionalBranch : r2590_2 +# 2585| Block 3 +# 2585| r2585_1(glval) = VariableAddress[#return] : +# 2585| r2585_2(glval) = VariableAddress[r] : +# 2585| r2585_3(int) = Load[r] : &:r2585_2, ~m2579_1 +# 2585| m2585_4(int) = Store[#return] : &:r2585_1, r2585_3 +# 2575| r2575_6(glval) = VariableAddress[#return] : +# 2575| v2575_7(void) = ReturnValue : &:r2575_6, m2585_4 +# 2575| v2575_8(void) = AliasedUse : ~m2579_7 +# 2575| v2575_9(void) = ExitFunction : + +# 2590| char* recursive_conditional_call_with_increment(char*, bool) +# 2590| Block 0 +# 2590| v2590_1(void) = EnterFunction : +# 2590| m2590_2(unknown) = AliasedDefinition : +# 2590| m2590_3(unknown) = InitializeNonLocal : +# 2590| m2590_4(unknown) = Chi : total:m2590_2, partial:m2590_3 +# 2590| r2590_5(glval) = VariableAddress[d] : +# 2590| m2590_6(char *) = InitializeParameter[d] : &:r2590_5 +# 2590| r2590_7(char *) = Load[d] : &:r2590_5, m2590_6 +# 2590| m2590_8(unknown) = InitializeIndirection[d] : &:r2590_7 +# 2590| r2590_9(glval) = VariableAddress[b] : +# 2590| m2590_10(bool) = InitializeParameter[b] : &:r2590_9 +# 2592| r2592_1(glval) = VariableAddress[b] : +# 2592| r2592_2(bool) = Load[b] : &:r2592_1, m2590_10 +# 2592| v2592_3(void) = ConditionalBranch : r2592_2 #-----| False -> Block 2 #-----| True -> Block 1 -# 2591| Block 1 -# 2591| r2591_1(glval) = FunctionAddress[recursive_conditional_call_with_increment] : -# 2591| r2591_2(glval) = VariableAddress[d] : -# 2591| r2591_3(char *) = Load[d] : &:r2591_2, m2588_6 -# 2591| r2591_4(glval) = VariableAddress[b] : -# 2591| r2591_5(bool) = Load[b] : &:r2591_4, m2588_10 -# 2591| r2591_6(char *) = Call[recursive_conditional_call_with_increment] : func:r2591_1, 0:r2591_3, 1:r2591_5 -# 2591| m2591_7(unknown) = ^CallSideEffect : ~m2588_4 -# 2591| m2591_8(unknown) = Chi : total:m2588_4, partial:m2591_7 -# 2591| v2591_9(void) = ^BufferReadSideEffect[0] : &:r2591_3, ~m2588_8 -# 2591| m2591_10(unknown) = ^BufferMayWriteSideEffect[0] : &:r2591_3 -# 2591| m2591_11(unknown) = Chi : total:m2588_8, partial:m2591_10 -# 2591| r2591_12(glval) = VariableAddress[d] : -# 2591| m2591_13(char *) = Store[d] : &:r2591_12, r2591_6 +# 2593| Block 1 +# 2593| r2593_1(glval) = FunctionAddress[recursive_conditional_call_with_increment] : +# 2593| r2593_2(glval) = VariableAddress[d] : +# 2593| r2593_3(char *) = Load[d] : &:r2593_2, m2590_6 +# 2593| r2593_4(glval) = VariableAddress[b] : +# 2593| r2593_5(bool) = Load[b] : &:r2593_4, m2590_10 +# 2593| r2593_6(char *) = Call[recursive_conditional_call_with_increment] : func:r2593_1, 0:r2593_3, 1:r2593_5 +# 2593| m2593_7(unknown) = ^CallSideEffect : ~m2590_4 +# 2593| m2593_8(unknown) = Chi : total:m2590_4, partial:m2593_7 +# 2593| v2593_9(void) = ^BufferReadSideEffect[0] : &:r2593_3, ~m2590_8 +# 2593| m2593_10(unknown) = ^BufferMayWriteSideEffect[0] : &:r2593_3 +# 2593| m2593_11(unknown) = Chi : total:m2590_8, partial:m2593_10 +# 2593| r2593_12(glval) = VariableAddress[d] : +# 2593| m2593_13(char *) = Store[d] : &:r2593_12, r2593_6 #-----| Goto -> Block 2 -# 2593| Block 2 -# 2593| m2593_1(unknown) = Phi : from 0:m2588_8, from 1:m2591_11 -# 2593| m2593_2(unknown) = Phi : from 0:~m2588_4, from 1:~m2591_8 -# 2593| m2593_3(char *) = Phi : from 0:m2588_6, from 1:m2591_13 -# 2593| r2593_4(glval) = VariableAddress[d] : -# 2593| r2593_5(char *) = Load[d] : &:r2593_4, m2593_3 -# 2593| r2593_6(int) = Constant[1] : -# 2593| r2593_7(char *) = PointerAdd[1] : r2593_5, r2593_6 -# 2593| m2593_8(char *) = Store[d] : &:r2593_4, r2593_7 -# 2594| r2594_1(glval) = VariableAddress[#return] : -# 2594| r2594_2(glval) = VariableAddress[d] : -# 2594| r2594_3(char *) = Load[d] : &:r2594_2, m2593_8 -# 2594| m2594_4(char *) = Store[#return] : &:r2594_1, r2594_3 -# 2588| v2588_11(void) = ReturnIndirection[d] : &:r2588_7, m2593_1 -# 2588| r2588_12(glval) = VariableAddress[#return] : -# 2588| v2588_13(void) = ReturnValue : &:r2588_12, m2594_4 -# 2588| v2588_14(void) = AliasedUse : ~m2593_2 -# 2588| v2588_15(void) = ExitFunction : - -# 2602| Recursive* merge(Recursive*) -# 2602| Block 0 -# 2602| v2602_1(void) = EnterFunction : -# 2602| m2602_2(unknown) = AliasedDefinition : -# 2602| m2602_3(unknown) = InitializeNonLocal : -# 2602| m2602_4(unknown) = Chi : total:m2602_2, partial:m2602_3 -# 2602| m2602_5(Recursive *) = UninitializedGroup[a,b] : -# 2602| m2602_6(unknown) = Chi : total:m2602_4, partial:m2602_5 -# 2602| r2602_7(glval) = VariableAddress[a] : -# 2602| m2602_8(Recursive *) = InitializeParameter[a] : &:r2602_7 -# 2602| r2602_9(Recursive *) = Load[a] : &:r2602_7, m2602_8 -# 2602| m2602_10(unknown) = InitializeIndirection[a] : &:r2602_9 -# 2602| m2602_11(unknown) = Chi : total:m2602_6, partial:m2602_10 -# 2604| r2604_1(glval) = VariableAddress[b] : -# 2604| m2604_2(Recursive *) = Uninitialized[b] : &:r2604_1 -# 2604| m2604_3(unknown) = Chi : total:m2602_11, partial:m2604_2 -# 2605| r2605_1(glval) = VariableAddress[p] : -# 2605| r2605_2(glval) = VariableAddress[b] : -# 2605| r2605_3(Recursive **) = CopyValue : r2605_2 -# 2605| m2605_4(Recursive **) = Store[p] : &:r2605_1, r2605_3 +# 2595| Block 2 +# 2595| m2595_1(unknown) = Phi : from 0:m2590_8, from 1:m2593_11 +# 2595| m2595_2(unknown) = Phi : from 0:~m2590_4, from 1:~m2593_8 +# 2595| m2595_3(char *) = Phi : from 0:m2590_6, from 1:m2593_13 +# 2595| r2595_4(glval) = VariableAddress[d] : +# 2595| r2595_5(char *) = Load[d] : &:r2595_4, m2595_3 +# 2595| r2595_6(int) = Constant[1] : +# 2595| r2595_7(char *) = PointerAdd[1] : r2595_5, r2595_6 +# 2595| m2595_8(char *) = Store[d] : &:r2595_4, r2595_7 +# 2596| r2596_1(glval) = VariableAddress[#return] : +# 2596| r2596_2(glval) = VariableAddress[d] : +# 2596| r2596_3(char *) = Load[d] : &:r2596_2, m2595_8 +# 2596| m2596_4(char *) = Store[#return] : &:r2596_1, r2596_3 +# 2590| v2590_11(void) = ReturnIndirection[d] : &:r2590_7, m2595_1 +# 2590| r2590_12(glval) = VariableAddress[#return] : +# 2590| v2590_13(void) = ReturnValue : &:r2590_12, m2596_4 +# 2590| v2590_14(void) = AliasedUse : ~m2595_2 +# 2590| v2590_15(void) = ExitFunction : + +# 2604| Recursive* merge(Recursive*) +# 2604| Block 0 +# 2604| v2604_1(void) = EnterFunction : +# 2604| m2604_2(unknown) = AliasedDefinition : +# 2604| m2604_3(unknown) = InitializeNonLocal : +# 2604| m2604_4(unknown) = Chi : total:m2604_2, partial:m2604_3 +# 2604| m2604_5(Recursive *) = UninitializedGroup[a,b] : +# 2604| m2604_6(unknown) = Chi : total:m2604_4, partial:m2604_5 +# 2604| r2604_7(glval) = VariableAddress[a] : +# 2604| m2604_8(Recursive *) = InitializeParameter[a] : &:r2604_7 +# 2604| r2604_9(Recursive *) = Load[a] : &:r2604_7, m2604_8 +# 2604| m2604_10(unknown) = InitializeIndirection[a] : &:r2604_9 +# 2604| m2604_11(unknown) = Chi : total:m2604_6, partial:m2604_10 +# 2606| r2606_1(glval) = VariableAddress[b] : +# 2606| m2606_2(Recursive *) = Uninitialized[b] : &:r2606_1 +# 2606| m2606_3(unknown) = Chi : total:m2604_11, partial:m2606_2 +# 2607| r2607_1(glval) = VariableAddress[p] : +# 2607| r2607_2(glval) = VariableAddress[b] : +# 2607| r2607_3(Recursive **) = CopyValue : r2607_2 +# 2607| m2607_4(Recursive **) = Store[p] : &:r2607_1, r2607_3 #-----| Goto -> Block 1 -# 2607| Block 1 -# 2607| m2607_1(unknown) = Phi : from 0:~m2604_3, from 2:~m2609_7 -# 2607| m2607_2(Recursive **) = Phi : from 0:m2605_4, from 2:m2610_6 -# 2607| r2607_3(glval) = FunctionAddress[predicateA] : -# 2607| r2607_4(bool) = Call[predicateA] : func:r2607_3 -# 2607| m2607_5(unknown) = ^CallSideEffect : ~m2607_1 -# 2607| m2607_6(unknown) = Chi : total:m2607_1, partial:m2607_5 -# 2607| v2607_7(void) = ConditionalBranch : r2607_4 +# 2609| Block 1 +# 2609| m2609_1(unknown) = Phi : from 0:~m2606_3, from 2:~m2611_7 +# 2609| m2609_2(Recursive **) = Phi : from 0:m2607_4, from 2:m2612_6 +# 2609| r2609_3(glval) = FunctionAddress[predicateA] : +# 2609| r2609_4(bool) = Call[predicateA] : func:r2609_3 +# 2609| m2609_5(unknown) = ^CallSideEffect : ~m2609_1 +# 2609| m2609_6(unknown) = Chi : total:m2609_1, partial:m2609_5 +# 2609| v2609_7(void) = ConditionalBranch : r2609_4 #-----| False -> Block 3 #-----| True -> Block 2 -# 2609| Block 2 -# 2609| r2609_1(glval) = VariableAddress[a] : -# 2609| r2609_2(Recursive *) = Load[a] : &:r2609_1, m2602_8 -# 2609| r2609_3(glval) = VariableAddress[p] : -# 2609| r2609_4(Recursive **) = Load[p] : &:r2609_3, m2607_2 -# 2609| r2609_5(glval) = CopyValue : r2609_4 -# 2609| m2609_6(Recursive *) = Store[?] : &:r2609_5, r2609_2 -# 2609| m2609_7(unknown) = Chi : total:m2607_6, partial:m2609_6 -# 2610| r2610_1(glval) = VariableAddress[a] : -# 2610| r2610_2(Recursive *) = Load[a] : &:r2610_1, m2602_8 -# 2610| r2610_3(glval) = FieldAddress[next] : r2610_2 -# 2610| r2610_4(Recursive **) = CopyValue : r2610_3 -# 2610| r2610_5(glval) = VariableAddress[p] : -# 2610| m2610_6(Recursive **) = Store[p] : &:r2610_5, r2610_4 +# 2611| Block 2 +# 2611| r2611_1(glval) = VariableAddress[a] : +# 2611| r2611_2(Recursive *) = Load[a] : &:r2611_1, m2604_8 +# 2611| r2611_3(glval) = VariableAddress[p] : +# 2611| r2611_4(Recursive **) = Load[p] : &:r2611_3, m2609_2 +# 2611| r2611_5(glval) = CopyValue : r2611_4 +# 2611| m2611_6(Recursive *) = Store[?] : &:r2611_5, r2611_2 +# 2611| m2611_7(unknown) = Chi : total:m2609_6, partial:m2611_6 +# 2612| r2612_1(glval) = VariableAddress[a] : +# 2612| r2612_2(Recursive *) = Load[a] : &:r2612_1, m2604_8 +# 2612| r2612_3(glval) = FieldAddress[next] : r2612_2 +# 2612| r2612_4(Recursive **) = CopyValue : r2612_3 +# 2612| r2612_5(glval) = VariableAddress[p] : +# 2612| m2612_6(Recursive **) = Store[p] : &:r2612_5, r2612_4 #-----| Goto (back edge) -> Block 1 -# 2613| Block 3 -# 2613| r2613_1(glval) = VariableAddress[#return] : -# 2613| r2613_2(glval) = VariableAddress[b] : -# 2613| r2613_3(Recursive *) = Load[b] : &:r2613_2, ~m2607_6 -# 2613| m2613_4(Recursive *) = Store[#return] : &:r2613_1, r2613_3 -# 2602| v2602_12(void) = ReturnIndirection[a] : &:r2602_9, ~m2607_6 -# 2602| r2602_13(glval) = VariableAddress[#return] : -# 2602| v2602_14(void) = ReturnValue : &:r2602_13, m2613_4 -# 2602| v2602_15(void) = AliasedUse : ~m2607_6 -# 2602| v2602_16(void) = ExitFunction : - -# 2618| void escaping_pointer(bool) -# 2618| Block 0 -# 2618| v2618_1(void) = EnterFunction : -# 2618| m2618_2(unknown) = AliasedDefinition : -# 2618| m2618_3(unknown) = InitializeNonLocal : -# 2618| m2618_4(unknown) = Chi : total:m2618_2, partial:m2618_3 -# 2618| m2618_5(unknown) = UninitializedGroup[l1,l2] : -# 2618| m2618_6(unknown) = Chi : total:m2618_4, partial:m2618_5 -# 2618| r2618_7(glval) = VariableAddress[b] : -# 2618| m2618_8(bool) = InitializeParameter[b] : &:r2618_7 -# 2620| r2620_1(glval) = VariableAddress[data] : -# 2620| m2620_2(int *) = Uninitialized[data] : &:r2620_1 -# 2621| r2621_1(glval) = VariableAddress[l1] : -# 2621| m2621_2(int) = Uninitialized[l1] : &:r2621_1 -# 2621| m2621_3(unknown) = Chi : total:m2618_6, partial:m2621_2 -# 2621| r2621_4(glval) = VariableAddress[l2] : -# 2621| m2621_5(int) = Uninitialized[l2] : &:r2621_4 -# 2621| m2621_6(unknown) = Chi : total:m2621_3, partial:m2621_5 -# 2622| r2622_1(glval) = VariableAddress[b] : -# 2622| r2622_2(bool) = Load[b] : &:r2622_1, m2618_8 -# 2622| v2622_3(void) = ConditionalBranch : r2622_2 +# 2615| Block 3 +# 2615| r2615_1(glval) = VariableAddress[#return] : +# 2615| r2615_2(glval) = VariableAddress[b] : +# 2615| r2615_3(Recursive *) = Load[b] : &:r2615_2, ~m2609_6 +# 2615| m2615_4(Recursive *) = Store[#return] : &:r2615_1, r2615_3 +# 2604| v2604_12(void) = ReturnIndirection[a] : &:r2604_9, ~m2609_6 +# 2604| r2604_13(glval) = VariableAddress[#return] : +# 2604| v2604_14(void) = ReturnValue : &:r2604_13, m2615_4 +# 2604| v2604_15(void) = AliasedUse : ~m2609_6 +# 2604| v2604_16(void) = ExitFunction : + +# 2620| void escaping_pointer(bool) +# 2620| Block 0 +# 2620| v2620_1(void) = EnterFunction : +# 2620| m2620_2(unknown) = AliasedDefinition : +# 2620| m2620_3(unknown) = InitializeNonLocal : +# 2620| m2620_4(unknown) = Chi : total:m2620_2, partial:m2620_3 +# 2620| m2620_5(unknown) = UninitializedGroup[l1,l2] : +# 2620| m2620_6(unknown) = Chi : total:m2620_4, partial:m2620_5 +# 2620| r2620_7(glval) = VariableAddress[b] : +# 2620| m2620_8(bool) = InitializeParameter[b] : &:r2620_7 +# 2622| r2622_1(glval) = VariableAddress[data] : +# 2622| m2622_2(int *) = Uninitialized[data] : &:r2622_1 +# 2623| r2623_1(glval) = VariableAddress[l1] : +# 2623| m2623_2(int) = Uninitialized[l1] : &:r2623_1 +# 2623| m2623_3(unknown) = Chi : total:m2620_6, partial:m2623_2 +# 2623| r2623_4(glval) = VariableAddress[l2] : +# 2623| m2623_5(int) = Uninitialized[l2] : &:r2623_4 +# 2623| m2623_6(unknown) = Chi : total:m2623_3, partial:m2623_5 +# 2624| r2624_1(glval) = VariableAddress[b] : +# 2624| r2624_2(bool) = Load[b] : &:r2624_1, m2620_8 +# 2624| v2624_3(void) = ConditionalBranch : r2624_2 #-----| False -> Block 2 #-----| True -> Block 1 -# 2624| Block 1 -# 2624| r2624_1(glval) = VariableAddress[l1] : -# 2624| r2624_2(int *) = CopyValue : r2624_1 -# 2624| r2624_3(glval) = VariableAddress[data] : -# 2624| m2624_4(int *) = Store[data] : &:r2624_3, r2624_2 +# 2626| Block 1 +# 2626| r2626_1(glval) = VariableAddress[l1] : +# 2626| r2626_2(int *) = CopyValue : r2626_1 +# 2626| r2626_3(glval) = VariableAddress[data] : +# 2626| m2626_4(int *) = Store[data] : &:r2626_3, r2626_2 #-----| Goto -> Block 3 -# 2628| Block 2 -# 2628| r2628_1(glval) = VariableAddress[l2] : -# 2628| r2628_2(int *) = CopyValue : r2628_1 -# 2628| r2628_3(glval) = VariableAddress[data] : -# 2628| m2628_4(int *) = Store[data] : &:r2628_3, r2628_2 +# 2630| Block 2 +# 2630| r2630_1(glval) = VariableAddress[l2] : +# 2630| r2630_2(int *) = CopyValue : r2630_1 +# 2630| r2630_3(glval) = VariableAddress[data] : +# 2630| m2630_4(int *) = Store[data] : &:r2630_3, r2630_2 #-----| Goto -> Block 3 -# 2630| Block 3 -# 2630| m2630_1(int *) = Phi : from 1:m2624_4, from 2:m2628_4 -# 2630| r2630_2(glval) = FunctionAddress[use_const_int] : -# 2630| r2630_3(glval) = VariableAddress[data] : -# 2630| r2630_4(int *) = Load[data] : &:r2630_3, m2630_1 -# 2630| r2630_5(int *) = Convert : r2630_4 -# 2630| v2630_6(void) = Call[use_const_int] : func:r2630_2, 0:r2630_5 -# 2630| m2630_7(unknown) = ^CallSideEffect : ~m2621_6 -# 2630| m2630_8(unknown) = Chi : total:m2621_6, partial:m2630_7 -# 2630| v2630_9(void) = ^BufferReadSideEffect[0] : &:r2630_5, ~m2630_8 -# 2631| v2631_1(void) = NoOp : -# 2618| v2618_9(void) = ReturnVoid : -# 2618| v2618_10(void) = AliasedUse : ~m2630_8 -# 2618| v2618_11(void) = ExitFunction : - -# 2639| void needs_chi_for_initialize_groups() -# 2639| Block 0 -# 2639| v2639_1(void) = EnterFunction : -# 2639| m2639_2(unknown) = AliasedDefinition : -# 2639| m2639_3(unknown) = InitializeNonLocal : -# 2639| m2639_4(unknown) = Chi : total:m2639_2, partial:m2639_3 -# 2639| m2639_5(unknown) = UninitializedGroup : -# 2639| m2639_6(unknown) = Chi : total:m2639_4, partial:m2639_5 -# 2639| m2639_7(unknown) = UninitializedGroup : -# 2639| m2639_8(unknown) = Chi : total:m2639_6, partial:m2639_7 -# 2641| r2641_1(glval) = FunctionAddress[predicateA] : -# 2641| r2641_2(bool) = Call[predicateA] : func:r2641_1 -# 2641| m2641_3(unknown) = ^CallSideEffect : ~m2639_8 -# 2641| m2641_4(unknown) = Chi : total:m2639_8, partial:m2641_3 -# 2641| v2641_5(void) = ConditionalBranch : r2641_2 +# 2632| Block 3 +# 2632| m2632_1(int *) = Phi : from 1:m2626_4, from 2:m2630_4 +# 2632| r2632_2(glval) = FunctionAddress[use_const_int] : +# 2632| r2632_3(glval) = VariableAddress[data] : +# 2632| r2632_4(int *) = Load[data] : &:r2632_3, m2632_1 +# 2632| r2632_5(int *) = Convert : r2632_4 +# 2632| v2632_6(void) = Call[use_const_int] : func:r2632_2, 0:r2632_5 +# 2632| m2632_7(unknown) = ^CallSideEffect : ~m2623_6 +# 2632| m2632_8(unknown) = Chi : total:m2623_6, partial:m2632_7 +# 2632| v2632_9(void) = ^BufferReadSideEffect[0] : &:r2632_5, ~m2632_8 +# 2633| v2633_1(void) = NoOp : +# 2620| v2620_9(void) = ReturnVoid : +# 2620| v2620_10(void) = AliasedUse : ~m2632_8 +# 2620| v2620_11(void) = ExitFunction : + +# 2641| void needs_chi_for_initialize_groups() +# 2641| Block 0 +# 2641| v2641_1(void) = EnterFunction : +# 2641| m2641_2(unknown) = AliasedDefinition : +# 2641| m2641_3(unknown) = InitializeNonLocal : +# 2641| m2641_4(unknown) = Chi : total:m2641_2, partial:m2641_3 +# 2641| m2641_5(unknown) = UninitializedGroup : +# 2641| m2641_6(unknown) = Chi : total:m2641_4, partial:m2641_5 +# 2641| m2641_7(unknown) = UninitializedGroup : +# 2641| m2641_8(unknown) = Chi : total:m2641_6, partial:m2641_7 +# 2643| r2643_1(glval) = FunctionAddress[predicateA] : +# 2643| r2643_2(bool) = Call[predicateA] : func:r2643_1 +# 2643| m2643_3(unknown) = ^CallSideEffect : ~m2641_8 +# 2643| m2643_4(unknown) = Chi : total:m2641_8, partial:m2643_3 +# 2643| v2643_5(void) = ConditionalBranch : r2643_2 #-----| False -> Block 4 #-----| True -> Block 1 -# 2643| Block 1 -# 2643| r2643_1(glval) = VariableAddress[data] : -# 2643| r2643_2(glval) = FunctionAddress[malloc] : -# 2643| r2643_3(unsigned long) = Constant[100] : -# 2643| r2643_4(void *) = Call[malloc] : func:r2643_2, 0:r2643_3 -# 2643| m2643_5(unknown) = ^CallSideEffect : ~m2641_4 -# 2643| m2643_6(unknown) = Chi : total:m2641_4, partial:m2643_5 -# 2643| m2643_7(unknown) = ^InitializeDynamicAllocation : &:r2643_4 -# 2643| m2643_8(unknown) = Chi : total:m2643_6, partial:m2643_7 -# 2643| r2643_9(long long *) = Convert : r2643_4 -# 2643| m2643_10(long long *) = Store[data] : &:r2643_1, r2643_9 -# 2644| r2644_1(glval) = VariableAddress[data] : -# 2644| r2644_2(long long *) = Load[data] : &:r2644_1, m2643_10 -# 2644| r2644_3(void *) = Convert : r2644_2 -# 2644| r2644_4(void *) = Constant[0] : -# 2644| r2644_5(bool) = CompareNE : r2644_3, r2644_4 -# 2644| v2644_6(void) = ConditionalBranch : r2644_5 +# 2645| Block 1 +# 2645| r2645_1(glval) = VariableAddress[data] : +# 2645| r2645_2(glval) = FunctionAddress[malloc] : +# 2645| r2645_3(unsigned long) = Constant[100] : +# 2645| r2645_4(void *) = Call[malloc] : func:r2645_2, 0:r2645_3 +# 2645| m2645_5(unknown) = ^CallSideEffect : ~m2643_4 +# 2645| m2645_6(unknown) = Chi : total:m2643_4, partial:m2645_5 +# 2645| m2645_7(unknown) = ^InitializeDynamicAllocation : &:r2645_4 +# 2645| m2645_8(unknown) = Chi : total:m2645_6, partial:m2645_7 +# 2645| r2645_9(long long *) = Convert : r2645_4 +# 2645| m2645_10(long long *) = Store[data] : &:r2645_1, r2645_9 +# 2646| r2646_1(glval) = VariableAddress[data] : +# 2646| r2646_2(long long *) = Load[data] : &:r2646_1, m2645_10 +# 2646| r2646_3(void *) = Convert : r2646_2 +# 2646| r2646_4(void *) = Constant[0] : +# 2646| r2646_5(bool) = CompareNE : r2646_3, r2646_4 +# 2646| v2646_6(void) = ConditionalBranch : r2646_5 #-----| False -> Block 3 #-----| True -> Block 2 -# 2646| Block 2 -# 2646| r2646_1(glval) = FunctionAddress[malloc] : -# 2646| r2646_2(unsigned long) = Constant[100] : -# 2646| r2646_3(void *) = Call[malloc] : func:r2646_1, 0:r2646_2 -# 2646| m2646_4(unknown) = ^CallSideEffect : ~m2643_8 -# 2646| m2646_5(unknown) = Chi : total:m2643_8, partial:m2646_4 -# 2646| m2646_6(unknown) = ^InitializeDynamicAllocation : &:r2646_3 -# 2646| m2646_7(unknown) = Chi : total:m2646_5, partial:m2646_6 -# 2646| r2646_8(long long *) = Convert : r2646_3 -# 2646| r2646_9(glval) = VariableAddress[data] : -# 2646| m2646_10(long long *) = Store[data] : &:r2646_9, r2646_8 +# 2648| Block 2 +# 2648| r2648_1(glval) = FunctionAddress[malloc] : +# 2648| r2648_2(unsigned long) = Constant[100] : +# 2648| r2648_3(void *) = Call[malloc] : func:r2648_1, 0:r2648_2 +# 2648| m2648_4(unknown) = ^CallSideEffect : ~m2645_8 +# 2648| m2648_5(unknown) = Chi : total:m2645_8, partial:m2648_4 +# 2648| m2648_6(unknown) = ^InitializeDynamicAllocation : &:r2648_3 +# 2648| m2648_7(unknown) = Chi : total:m2648_5, partial:m2648_6 +# 2648| r2648_8(long long *) = Convert : r2648_3 +# 2648| r2648_9(glval) = VariableAddress[data] : +# 2648| m2648_10(long long *) = Store[data] : &:r2648_9, r2648_8 #-----| Goto -> Block 3 -# 2648| Block 3 -# 2648| m2648_1(unknown) = Phi : from 1:~m2643_8, from 2:~m2646_7 -# 2648| m2648_2(long long *) = Phi : from 1:m2643_10, from 2:m2646_10 -# 2648| r2648_3(glval) = FunctionAddress[use_const_void_pointer] : -# 2648| r2648_4(glval) = VariableAddress[data] : -# 2648| r2648_5(long long *) = Load[data] : &:r2648_4, m2648_2 -# 2648| r2648_6(void *) = Convert : r2648_5 -# 2648| v2648_7(void) = Call[use_const_void_pointer] : func:r2648_3, 0:r2648_6 -# 2648| m2648_8(unknown) = ^CallSideEffect : ~m2648_1 -# 2648| m2648_9(unknown) = Chi : total:m2648_1, partial:m2648_8 -# 2648| v2648_10(void) = ^BufferReadSideEffect[0] : &:r2648_6, ~m2648_9 +# 2650| Block 3 +# 2650| m2650_1(unknown) = Phi : from 1:~m2645_8, from 2:~m2648_7 +# 2650| m2650_2(long long *) = Phi : from 1:m2645_10, from 2:m2648_10 +# 2650| r2650_3(glval) = FunctionAddress[use_const_void_pointer] : +# 2650| r2650_4(glval) = VariableAddress[data] : +# 2650| r2650_5(long long *) = Load[data] : &:r2650_4, m2650_2 +# 2650| r2650_6(void *) = Convert : r2650_5 +# 2650| v2650_7(void) = Call[use_const_void_pointer] : func:r2650_3, 0:r2650_6 +# 2650| m2650_8(unknown) = ^CallSideEffect : ~m2650_1 +# 2650| m2650_9(unknown) = Chi : total:m2650_1, partial:m2650_8 +# 2650| v2650_10(void) = ^BufferReadSideEffect[0] : &:r2650_6, ~m2650_9 #-----| Goto -> Block 7 -# 2652| Block 4 -# 2652| r2652_1(glval) = VariableAddress[data] : -# 2652| r2652_2(glval) = FunctionAddress[malloc] : -# 2652| r2652_3(unsigned long) = Constant[100] : -# 2652| r2652_4(void *) = Call[malloc] : func:r2652_2, 0:r2652_3 -# 2652| m2652_5(unknown) = ^CallSideEffect : ~m2641_4 -# 2652| m2652_6(unknown) = Chi : total:m2641_4, partial:m2652_5 -# 2652| m2652_7(unknown) = ^InitializeDynamicAllocation : &:r2652_4 -# 2652| m2652_8(unknown) = Chi : total:m2652_6, partial:m2652_7 -# 2652| r2652_9(long long *) = Convert : r2652_4 -# 2652| m2652_10(long long *) = Store[data] : &:r2652_1, r2652_9 -# 2653| r2653_1(glval) = VariableAddress[data] : -# 2653| r2653_2(long long *) = Load[data] : &:r2653_1, m2652_10 -# 2653| r2653_3(void *) = Convert : r2653_2 -# 2653| r2653_4(void *) = Constant[0] : -# 2653| r2653_5(bool) = CompareNE : r2653_3, r2653_4 -# 2653| v2653_6(void) = ConditionalBranch : r2653_5 +# 2654| Block 4 +# 2654| r2654_1(glval) = VariableAddress[data] : +# 2654| r2654_2(glval) = FunctionAddress[malloc] : +# 2654| r2654_3(unsigned long) = Constant[100] : +# 2654| r2654_4(void *) = Call[malloc] : func:r2654_2, 0:r2654_3 +# 2654| m2654_5(unknown) = ^CallSideEffect : ~m2643_4 +# 2654| m2654_6(unknown) = Chi : total:m2643_4, partial:m2654_5 +# 2654| m2654_7(unknown) = ^InitializeDynamicAllocation : &:r2654_4 +# 2654| m2654_8(unknown) = Chi : total:m2654_6, partial:m2654_7 +# 2654| r2654_9(long long *) = Convert : r2654_4 +# 2654| m2654_10(long long *) = Store[data] : &:r2654_1, r2654_9 +# 2655| r2655_1(glval) = VariableAddress[data] : +# 2655| r2655_2(long long *) = Load[data] : &:r2655_1, m2654_10 +# 2655| r2655_3(void *) = Convert : r2655_2 +# 2655| r2655_4(void *) = Constant[0] : +# 2655| r2655_5(bool) = CompareNE : r2655_3, r2655_4 +# 2655| v2655_6(void) = ConditionalBranch : r2655_5 #-----| False -> Block 6 #-----| True -> Block 5 -# 2655| Block 5 -# 2655| r2655_1(glval) = FunctionAddress[malloc] : -# 2655| r2655_2(unsigned long) = Constant[200] : -# 2655| r2655_3(void *) = Call[malloc] : func:r2655_1, 0:r2655_2 -# 2655| m2655_4(unknown) = ^CallSideEffect : ~m2652_8 -# 2655| m2655_5(unknown) = Chi : total:m2652_8, partial:m2655_4 -# 2655| m2655_6(unknown) = ^InitializeDynamicAllocation : &:r2655_3 -# 2655| m2655_7(unknown) = Chi : total:m2655_5, partial:m2655_6 -# 2655| r2655_8(long long *) = Convert : r2655_3 -# 2655| r2655_9(glval) = VariableAddress[data] : -# 2655| m2655_10(long long *) = Store[data] : &:r2655_9, r2655_8 +# 2657| Block 5 +# 2657| r2657_1(glval) = FunctionAddress[malloc] : +# 2657| r2657_2(unsigned long) = Constant[200] : +# 2657| r2657_3(void *) = Call[malloc] : func:r2657_1, 0:r2657_2 +# 2657| m2657_4(unknown) = ^CallSideEffect : ~m2654_8 +# 2657| m2657_5(unknown) = Chi : total:m2654_8, partial:m2657_4 +# 2657| m2657_6(unknown) = ^InitializeDynamicAllocation : &:r2657_3 +# 2657| m2657_7(unknown) = Chi : total:m2657_5, partial:m2657_6 +# 2657| r2657_8(long long *) = Convert : r2657_3 +# 2657| r2657_9(glval) = VariableAddress[data] : +# 2657| m2657_10(long long *) = Store[data] : &:r2657_9, r2657_8 #-----| Goto -> Block 6 -# 2657| Block 6 -# 2657| m2657_1(unknown) = Phi : from 4:~m2652_8, from 5:~m2655_7 -# 2657| m2657_2(long long *) = Phi : from 4:m2652_10, from 5:m2655_10 -# 2657| r2657_3(glval) = FunctionAddress[use_const_void_pointer] : -# 2657| r2657_4(glval) = VariableAddress[data] : -# 2657| r2657_5(long long *) = Load[data] : &:r2657_4, m2657_2 -# 2657| r2657_6(void *) = Convert : r2657_5 -# 2657| v2657_7(void) = Call[use_const_void_pointer] : func:r2657_3, 0:r2657_6 -# 2657| m2657_8(unknown) = ^CallSideEffect : ~m2657_1 -# 2657| m2657_9(unknown) = Chi : total:m2657_1, partial:m2657_8 -# 2657| v2657_10(void) = ^BufferReadSideEffect[0] : &:r2657_6, ~m2657_9 +# 2659| Block 6 +# 2659| m2659_1(unknown) = Phi : from 4:~m2654_8, from 5:~m2657_7 +# 2659| m2659_2(long long *) = Phi : from 4:m2654_10, from 5:m2657_10 +# 2659| r2659_3(glval) = FunctionAddress[use_const_void_pointer] : +# 2659| r2659_4(glval) = VariableAddress[data] : +# 2659| r2659_5(long long *) = Load[data] : &:r2659_4, m2659_2 +# 2659| r2659_6(void *) = Convert : r2659_5 +# 2659| v2659_7(void) = Call[use_const_void_pointer] : func:r2659_3, 0:r2659_6 +# 2659| m2659_8(unknown) = ^CallSideEffect : ~m2659_1 +# 2659| m2659_9(unknown) = Chi : total:m2659_1, partial:m2659_8 +# 2659| v2659_10(void) = ^BufferReadSideEffect[0] : &:r2659_6, ~m2659_9 #-----| Goto -> Block 7 -# 2659| Block 7 -# 2659| m2659_1(unknown) = Phi : from 3:~m2648_9, from 6:~m2657_9 -# 2659| v2659_2(void) = NoOp : -# 2639| v2639_9(void) = ReturnVoid : -# 2639| v2639_10(void) = AliasedUse : ~m2659_1 -# 2639| v2639_11(void) = ExitFunction : - -# 2663| void phi_with_single_input_at_merge(bool) -# 2663| Block 0 -# 2663| v2663_1(void) = EnterFunction : -# 2663| m2663_2(unknown) = AliasedDefinition : -# 2663| m2663_3(unknown) = InitializeNonLocal : -# 2663| m2663_4(unknown) = Chi : total:m2663_2, partial:m2663_3 -# 2663| r2663_5(glval) = VariableAddress[b] : -# 2663| m2663_6(bool) = InitializeParameter[b] : &:r2663_5 -# 2665| r2665_1(glval) = VariableAddress[data] : -# 2665| r2665_2(int *) = Constant[0] : -# 2665| m2665_3(int *) = Store[data] : &:r2665_1, r2665_2 -# 2666| r2666_1(glval) = VariableAddress[b] : -# 2666| r2666_2(bool) = Load[b] : &:r2666_1, m2663_6 -# 2666| v2666_3(void) = ConditionalBranch : r2666_2 +# 2661| Block 7 +# 2661| m2661_1(unknown) = Phi : from 3:~m2650_9, from 6:~m2659_9 +# 2661| v2661_2(void) = NoOp : +# 2641| v2641_9(void) = ReturnVoid : +# 2641| v2641_10(void) = AliasedUse : ~m2661_1 +# 2641| v2641_11(void) = ExitFunction : + +# 2665| void phi_with_single_input_at_merge(bool) +# 2665| Block 0 +# 2665| v2665_1(void) = EnterFunction : +# 2665| m2665_2(unknown) = AliasedDefinition : +# 2665| m2665_3(unknown) = InitializeNonLocal : +# 2665| m2665_4(unknown) = Chi : total:m2665_2, partial:m2665_3 +# 2665| r2665_5(glval) = VariableAddress[b] : +# 2665| m2665_6(bool) = InitializeParameter[b] : &:r2665_5 +# 2667| r2667_1(glval) = VariableAddress[data] : +# 2667| r2667_2(int *) = Constant[0] : +# 2667| m2667_3(int *) = Store[data] : &:r2667_1, r2667_2 +# 2668| r2668_1(glval) = VariableAddress[b] : +# 2668| r2668_2(bool) = Load[b] : &:r2668_1, m2665_6 +# 2668| v2668_3(void) = ConditionalBranch : r2668_2 #-----| False -> Block 2 #-----| True -> Block 1 -# 2667| Block 1 -# 2667| r2667_1(glval) = VariableAddress[intBuffer] : -# 2667| r2667_2(int) = Constant[8] : -# 2667| m2667_3(int) = Store[intBuffer] : &:r2667_1, r2667_2 -# 2667| m2667_4(unknown) = Chi : total:m2663_4, partial:m2667_3 -# 2668| r2668_1(glval) = VariableAddress[intBuffer] : -# 2668| r2668_2(int *) = CopyValue : r2668_1 -# 2668| r2668_3(glval) = VariableAddress[data] : -# 2668| m2668_4(int *) = Store[data] : &:r2668_3, r2668_2 +# 2669| Block 1 +# 2669| r2669_1(glval) = VariableAddress[intBuffer] : +# 2669| r2669_2(int) = Constant[8] : +# 2669| m2669_3(int) = Store[intBuffer] : &:r2669_1, r2669_2 +# 2669| m2669_4(unknown) = Chi : total:m2665_4, partial:m2669_3 +# 2670| r2670_1(glval) = VariableAddress[intBuffer] : +# 2670| r2670_2(int *) = CopyValue : r2670_1 +# 2670| r2670_3(glval) = VariableAddress[data] : +# 2670| m2670_4(int *) = Store[data] : &:r2670_3, r2670_2 #-----| Goto -> Block 2 -# 2670| Block 2 -# 2670| m2670_1(unknown) = Phi : from 0:~m2663_4, from 1:~m2667_4 -# 2670| m2670_2(int *) = Phi : from 0:m2665_3, from 1:m2668_4 -# 2670| r2670_3(glval) = FunctionAddress[use_int] : -# 2670| r2670_4(glval) = VariableAddress[data] : -# 2670| r2670_5(int *) = Load[data] : &:r2670_4, m2670_2 -# 2670| r2670_6(int) = Load[?] : &:r2670_5, ~m2670_1 -# 2670| v2670_7(void) = Call[use_int] : func:r2670_3, 0:r2670_6 -# 2670| m2670_8(unknown) = ^CallSideEffect : ~m2670_1 -# 2670| m2670_9(unknown) = Chi : total:m2670_1, partial:m2670_8 -# 2671| v2671_1(void) = NoOp : -# 2663| v2663_7(void) = ReturnVoid : -# 2663| v2663_8(void) = AliasedUse : ~m2670_9 -# 2663| v2663_9(void) = ExitFunction : - -# 2684| void test(bool) -# 2684| Block 0 -# 2684| v2684_1(void) = EnterFunction : -# 2684| m2684_2(unknown) = AliasedDefinition : -# 2684| m2684_3(unknown) = InitializeNonLocal : -# 2684| m2684_4(unknown) = Chi : total:m2684_2, partial:m2684_3 -# 2684| m2684_5(unknown) = UninitializedGroup[#string2686:22,#string2686:27] : -# 2684| m2684_6(unknown) = Chi : total:m2684_4, partial:m2684_5 -# 2684| m2684_7(unknown) = UninitializedGroup[#string2686:22,#string2686:27] : -# 2684| m2684_8(unknown) = Chi : total:m2684_6, partial:m2684_7 -# 2684| r2684_9(glval) = VariableAddress[b] : -# 2684| m2684_10(bool) = InitializeParameter[b] : &:r2684_9 -# 2686| r2686_1(glval) = FunctionAddress[use] : -# 2686| r2686_2(glval) = VariableAddress[b] : -# 2686| r2686_3(bool) = Load[b] : &:r2686_2, m2684_10 -# 2686| v2686_4(void) = ConditionalBranch : r2686_3 +# 2672| Block 2 +# 2672| m2672_1(unknown) = Phi : from 0:~m2665_4, from 1:~m2669_4 +# 2672| m2672_2(int *) = Phi : from 0:m2667_3, from 1:m2670_4 +# 2672| r2672_3(glval) = FunctionAddress[use_int] : +# 2672| r2672_4(glval) = VariableAddress[data] : +# 2672| r2672_5(int *) = Load[data] : &:r2672_4, m2672_2 +# 2672| r2672_6(int) = Load[?] : &:r2672_5, ~m2672_1 +# 2672| v2672_7(void) = Call[use_int] : func:r2672_3, 0:r2672_6 +# 2672| m2672_8(unknown) = ^CallSideEffect : ~m2672_1 +# 2672| m2672_9(unknown) = Chi : total:m2672_1, partial:m2672_8 +# 2673| v2673_1(void) = NoOp : +# 2665| v2665_7(void) = ReturnVoid : +# 2665| v2665_8(void) = AliasedUse : ~m2672_9 +# 2665| v2665_9(void) = ExitFunction : + +# 2686| void test(bool) +# 2686| Block 0 +# 2686| v2686_1(void) = EnterFunction : +# 2686| m2686_2(unknown) = AliasedDefinition : +# 2686| m2686_3(unknown) = InitializeNonLocal : +# 2686| m2686_4(unknown) = Chi : total:m2686_2, partial:m2686_3 +# 2686| m2686_5(unknown) = UninitializedGroup[#string2688:22,#string2688:27] : +# 2686| m2686_6(unknown) = Chi : total:m2686_4, partial:m2686_5 +# 2686| m2686_7(unknown) = UninitializedGroup[#string2688:22,#string2688:27] : +# 2686| m2686_8(unknown) = Chi : total:m2686_6, partial:m2686_7 +# 2686| r2686_9(glval) = VariableAddress[b] : +# 2686| m2686_10(bool) = InitializeParameter[b] : &:r2686_9 +# 2688| r2688_1(glval) = FunctionAddress[use] : +# 2688| r2688_2(glval) = VariableAddress[b] : +# 2688| r2688_3(bool) = Load[b] : &:r2688_2, m2686_10 +# 2688| v2688_4(void) = ConditionalBranch : r2688_3 #-----| False -> Block 3 #-----| True -> Block 2 -# 2686| Block 1 -# 2686| m2686_5(char *) = Phi : from 2:m2686_19, from 3:m2686_23 -# 2686| r2686_6(glval) = VariableAddress[#temp2686:18] : -# 2686| r2686_7(char *) = Load[#temp2686:18] : &:r2686_6, m2686_5 -# 2686| v2686_8(void) = Call[use] : func:r2686_1, 0:r2686_7 -# 2686| m2686_9(unknown) = ^CallSideEffect : ~m2684_8 -# 2686| m2686_10(unknown) = Chi : total:m2684_8, partial:m2686_9 -# 2686| v2686_11(void) = ^BufferReadSideEffect[0] : &:r2686_7, ~m2686_10 -# 2686| r2686_12(glval) = FunctionAddress[use] : -# 2686| r2686_13(glval) = VariableAddress[b] : -# 2686| r2686_14(bool) = Load[b] : &:r2686_13, m2684_10 -# 2686| v2686_15(void) = ConditionalBranch : r2686_14 +# 2688| Block 1 +# 2688| m2688_5(char *) = Phi : from 2:m2688_19, from 3:m2688_23 +# 2688| r2688_6(glval) = VariableAddress[#temp2688:18] : +# 2688| r2688_7(char *) = Load[#temp2688:18] : &:r2688_6, m2688_5 +# 2688| v2688_8(void) = Call[use] : func:r2688_1, 0:r2688_7 +# 2688| m2688_9(unknown) = ^CallSideEffect : ~m2686_8 +# 2688| m2688_10(unknown) = Chi : total:m2686_8, partial:m2688_9 +# 2688| v2688_11(void) = ^BufferReadSideEffect[0] : &:r2688_7, ~m2688_10 +# 2688| r2688_12(glval) = FunctionAddress[use] : +# 2688| r2688_13(glval) = VariableAddress[b] : +# 2688| r2688_14(bool) = Load[b] : &:r2688_13, m2686_10 +# 2688| v2688_15(void) = ConditionalBranch : r2688_14 #-----| False -> Block 6 #-----| True -> Block 5 -# 2686| Block 2 -# 2686| r2686_16(glval) = StringConstant[] : -# 2686| r2686_17(char *) = Convert : r2686_16 -# 2686| r2686_18(glval) = VariableAddress[#temp2686:18] : -# 2686| m2686_19(char *) = Store[#temp2686:18] : &:r2686_18, r2686_17 +# 2688| Block 2 +# 2688| r2688_16(glval) = StringConstant[] : +# 2688| r2688_17(char *) = Convert : r2688_16 +# 2688| r2688_18(glval) = VariableAddress[#temp2688:18] : +# 2688| m2688_19(char *) = Store[#temp2688:18] : &:r2688_18, r2688_17 #-----| Goto -> Block 1 -# 2686| Block 3 -# 2686| r2686_20(glval) = StringConstant[] : -# 2686| r2686_21(char *) = Convert : r2686_20 -# 2686| r2686_22(glval) = VariableAddress[#temp2686:18] : -# 2686| m2686_23(char *) = Store[#temp2686:18] : &:r2686_22, r2686_21 +# 2688| Block 3 +# 2688| r2688_20(glval) = StringConstant[] : +# 2688| r2688_21(char *) = Convert : r2688_20 +# 2688| r2688_22(glval) = VariableAddress[#temp2688:18] : +# 2688| m2688_23(char *) = Store[#temp2688:18] : &:r2688_22, r2688_21 #-----| Goto -> Block 1 -# 2686| Block 4 -# 2686| m2686_24(char *) = Phi : from 5:m2686_36, from 6:m2686_40 -# 2686| r2686_25(glval) = VariableAddress[#temp2686:18] : -# 2686| r2686_26(char *) = Load[#temp2686:18] : &:r2686_25, m2686_24 -# 2686| v2686_27(void) = Call[use] : func:r2686_12, 0:r2686_26 -# 2686| m2686_28(unknown) = ^CallSideEffect : ~m2686_10 -# 2686| m2686_29(unknown) = Chi : total:m2686_10, partial:m2686_28 -# 2686| v2686_30(void) = ^BufferReadSideEffect[0] : &:r2686_26, ~m2686_29 -# 2686| r2686_31(bool) = Constant[0] : -# 2686| v2686_32(void) = ConditionalBranch : r2686_31 +# 2688| Block 4 +# 2688| m2688_24(char *) = Phi : from 5:m2688_36, from 6:m2688_40 +# 2688| r2688_25(glval) = VariableAddress[#temp2688:18] : +# 2688| r2688_26(char *) = Load[#temp2688:18] : &:r2688_25, m2688_24 +# 2688| v2688_27(void) = Call[use] : func:r2688_12, 0:r2688_26 +# 2688| m2688_28(unknown) = ^CallSideEffect : ~m2688_10 +# 2688| m2688_29(unknown) = Chi : total:m2688_10, partial:m2688_28 +# 2688| v2688_30(void) = ^BufferReadSideEffect[0] : &:r2688_26, ~m2688_29 +# 2688| r2688_31(bool) = Constant[0] : +# 2688| v2688_32(void) = ConditionalBranch : r2688_31 #-----| False -> Block 7 #-----| True -> Block 8 -# 2686| Block 5 -# 2686| r2686_33(glval) = StringConstant[] : -# 2686| r2686_34(char *) = Convert : r2686_33 -# 2686| r2686_35(glval) = VariableAddress[#temp2686:18] : -# 2686| m2686_36(char *) = Store[#temp2686:18] : &:r2686_35, r2686_34 +# 2688| Block 5 +# 2688| r2688_33(glval) = StringConstant[] : +# 2688| r2688_34(char *) = Convert : r2688_33 +# 2688| r2688_35(glval) = VariableAddress[#temp2688:18] : +# 2688| m2688_36(char *) = Store[#temp2688:18] : &:r2688_35, r2688_34 #-----| Goto -> Block 4 -# 2686| Block 6 -# 2686| r2686_37(glval) = StringConstant[] : -# 2686| r2686_38(char *) = Convert : r2686_37 -# 2686| r2686_39(glval) = VariableAddress[#temp2686:18] : -# 2686| m2686_40(char *) = Store[#temp2686:18] : &:r2686_39, r2686_38 +# 2688| Block 6 +# 2688| r2688_37(glval) = StringConstant[] : +# 2688| r2688_38(char *) = Convert : r2688_37 +# 2688| r2688_39(glval) = VariableAddress[#temp2688:18] : +# 2688| m2688_40(char *) = Store[#temp2688:18] : &:r2688_39, r2688_38 #-----| Goto -> Block 4 -# 2687| Block 7 -# 2687| v2687_1(void) = NoOp : -# 2684| v2684_11(void) = ReturnVoid : -# 2684| v2684_12(void) = AliasedUse : ~m2686_29 -# 2684| v2684_13(void) = ExitFunction : - -# 2684| Block 8 -# 2684| v2684_14(void) = Unreached : - -# 2691| int concepts::requires_use() -# 2691| Block 0 -# 2691| v2691_1(void) = EnterFunction : -# 2691| m2691_2(unknown) = AliasedDefinition : -# 2691| m2691_3(unknown) = InitializeNonLocal : -# 2691| m2691_4(unknown) = Chi : total:m2691_2, partial:m2691_3 -# 2692| r2692_1(glval) = VariableAddress[y] : -# 2692| r2692_2(int) = Constant[1] : -# 2692| m2692_3(int) = Store[y] : &:r2692_1, r2692_2 -# 2693| r2693_1(glval) = VariableAddress[#return] : -# 2693| r2693_2(glval) = VariableAddress[y] : -# 2693| r2693_3(int) = Load[y] : &:r2693_2, m2692_3 -# 2693| m2693_4(int) = Store[#return] : &:r2693_1, r2693_3 -# 2691| r2691_5(glval) = VariableAddress[#return] : -# 2691| v2691_6(void) = ReturnValue : &:r2691_5, m2693_4 -# 2691| v2691_7(void) = AliasedUse : m2691_3 -# 2691| v2691_8(void) = ExitFunction : - -# 2698| void branch_on_integral_in_cpp(int, int) -# 2698| Block 0 -# 2698| v2698_1(void) = EnterFunction : -# 2698| m2698_2(unknown) = AliasedDefinition : -# 2698| m2698_3(unknown) = InitializeNonLocal : -# 2698| m2698_4(unknown) = Chi : total:m2698_2, partial:m2698_3 -# 2698| r2698_5(glval) = VariableAddress[x1] : -# 2698| m2698_6(int) = InitializeParameter[x1] : &:r2698_5 -# 2698| r2698_7(glval) = VariableAddress[x2] : -# 2698| m2698_8(int) = InitializeParameter[x2] : &:r2698_7 -# 2699| r2699_1(glval) = VariableAddress[x1] : -# 2699| r2699_2(int) = Load[x1] : &:r2699_1, m2698_6 -# 2699| r2699_3(int) = Constant[0] : -# 2699| r2699_4(bool) = CompareNE : r2699_2, r2699_3 -# 2699| v2699_5(void) = ConditionalBranch : r2699_4 +# 2689| Block 7 +# 2689| v2689_1(void) = NoOp : +# 2686| v2686_11(void) = ReturnVoid : +# 2686| v2686_12(void) = AliasedUse : ~m2688_29 +# 2686| v2686_13(void) = ExitFunction : + +# 2686| Block 8 +# 2686| v2686_14(void) = Unreached : + +# 2693| int concepts::requires_use() +# 2693| Block 0 +# 2693| v2693_1(void) = EnterFunction : +# 2693| m2693_2(unknown) = AliasedDefinition : +# 2693| m2693_3(unknown) = InitializeNonLocal : +# 2693| m2693_4(unknown) = Chi : total:m2693_2, partial:m2693_3 +# 2694| r2694_1(glval) = VariableAddress[y] : +# 2694| r2694_2(int) = Constant[1] : +# 2694| m2694_3(int) = Store[y] : &:r2694_1, r2694_2 +# 2695| r2695_1(glval) = VariableAddress[#return] : +# 2695| r2695_2(glval) = VariableAddress[y] : +# 2695| r2695_3(int) = Load[y] : &:r2695_2, m2694_3 +# 2695| m2695_4(int) = Store[#return] : &:r2695_1, r2695_3 +# 2693| r2693_5(glval) = VariableAddress[#return] : +# 2693| v2693_6(void) = ReturnValue : &:r2693_5, m2695_4 +# 2693| v2693_7(void) = AliasedUse : m2693_3 +# 2693| v2693_8(void) = ExitFunction : + +# 2700| void branch_on_integral_in_cpp(int, int) +# 2700| Block 0 +# 2700| v2700_1(void) = EnterFunction : +# 2700| m2700_2(unknown) = AliasedDefinition : +# 2700| m2700_3(unknown) = InitializeNonLocal : +# 2700| m2700_4(unknown) = Chi : total:m2700_2, partial:m2700_3 +# 2700| r2700_5(glval) = VariableAddress[x1] : +# 2700| m2700_6(int) = InitializeParameter[x1] : &:r2700_5 +# 2700| r2700_7(glval) = VariableAddress[x2] : +# 2700| m2700_8(int) = InitializeParameter[x2] : &:r2700_7 +# 2701| r2701_1(glval) = VariableAddress[x1] : +# 2701| r2701_2(int) = Load[x1] : &:r2701_1, m2700_6 +# 2701| r2701_3(int) = Constant[0] : +# 2701| r2701_4(bool) = CompareNE : r2701_2, r2701_3 +# 2701| v2701_5(void) = ConditionalBranch : r2701_4 #-----| False -> Block 2 #-----| True -> Block 1 -# 2699| Block 1 -# 2699| v2699_6(void) = NoOp : +# 2701| Block 1 +# 2701| v2701_6(void) = NoOp : #-----| Goto -> Block 2 -# 2700| Block 2 -# 2700| r2700_1(glval) = VariableAddress[x1] : -# 2700| r2700_2(int) = Load[x1] : &:r2700_1, m2698_6 -# 2700| r2700_3(int) = Constant[0] : -# 2700| r2700_4(bool) = CompareNE : r2700_2, r2700_3 -# 2700| r2700_5(bool) = LogicalNot : r2700_4 -# 2700| v2700_6(void) = ConditionalBranch : r2700_5 +# 2702| Block 2 +# 2702| r2702_1(glval) = VariableAddress[x1] : +# 2702| r2702_2(int) = Load[x1] : &:r2702_1, m2700_6 +# 2702| r2702_3(int) = Constant[0] : +# 2702| r2702_4(bool) = CompareNE : r2702_2, r2702_3 +# 2702| r2702_5(bool) = LogicalNot : r2702_4 +# 2702| v2702_6(void) = ConditionalBranch : r2702_5 #-----| False -> Block 4 #-----| True -> Block 3 -# 2700| Block 3 -# 2700| v2700_7(void) = NoOp : +# 2702| Block 3 +# 2702| v2702_7(void) = NoOp : #-----| Goto -> Block 4 -# 2702| Block 4 -# 2702| r2702_1(glval) = VariableAddress[y] : -# 2702| r2702_2(glval) = VariableAddress[x1] : -# 2702| r2702_3(int) = Load[x1] : &:r2702_2, m2698_6 -# 2702| r2702_4(int) = Constant[0] : -# 2702| r2702_5(bool) = CompareNE : r2702_3, r2702_4 -# 2702| r2702_6(bool) = LogicalNot : r2702_5 -# 2702| r2702_7(int) = Convert : r2702_6 -# 2702| m2702_8(int) = Store[y] : &:r2702_1, r2702_7 -# 2703| r2703_1(glval) = VariableAddress[y] : -# 2703| r2703_2(int) = Load[y] : &:r2703_1, m2702_8 -# 2703| r2703_3(int) = Constant[0] : -# 2703| r2703_4(bool) = CompareNE : r2703_2, r2703_3 -# 2703| v2703_5(void) = ConditionalBranch : r2703_4 +# 2704| Block 4 +# 2704| r2704_1(glval) = VariableAddress[y] : +# 2704| r2704_2(glval) = VariableAddress[x1] : +# 2704| r2704_3(int) = Load[x1] : &:r2704_2, m2700_6 +# 2704| r2704_4(int) = Constant[0] : +# 2704| r2704_5(bool) = CompareNE : r2704_3, r2704_4 +# 2704| r2704_6(bool) = LogicalNot : r2704_5 +# 2704| r2704_7(int) = Convert : r2704_6 +# 2704| m2704_8(int) = Store[y] : &:r2704_1, r2704_7 +# 2705| r2705_1(glval) = VariableAddress[y] : +# 2705| r2705_2(int) = Load[y] : &:r2705_1, m2704_8 +# 2705| r2705_3(int) = Constant[0] : +# 2705| r2705_4(bool) = CompareNE : r2705_2, r2705_3 +# 2705| v2705_5(void) = ConditionalBranch : r2705_4 #-----| False -> Block 6 #-----| True -> Block 5 -# 2703| Block 5 -# 2703| v2703_6(void) = NoOp : +# 2705| Block 5 +# 2705| v2705_6(void) = NoOp : #-----| Goto -> Block 6 -# 2704| Block 6 -# 2704| r2704_1(glval) = VariableAddress[y] : -# 2704| r2704_2(int) = Load[y] : &:r2704_1, m2702_8 -# 2704| r2704_3(int) = Constant[0] : -# 2704| r2704_4(bool) = CompareNE : r2704_2, r2704_3 -# 2704| r2704_5(bool) = LogicalNot : r2704_4 -# 2704| v2704_6(void) = ConditionalBranch : r2704_5 +# 2706| Block 6 +# 2706| r2706_1(glval) = VariableAddress[y] : +# 2706| r2706_2(int) = Load[y] : &:r2706_1, m2704_8 +# 2706| r2706_3(int) = Constant[0] : +# 2706| r2706_4(bool) = CompareNE : r2706_2, r2706_3 +# 2706| r2706_5(bool) = LogicalNot : r2706_4 +# 2706| v2706_6(void) = ConditionalBranch : r2706_5 #-----| False -> Block 8 #-----| True -> Block 7 -# 2704| Block 7 -# 2704| v2704_7(void) = NoOp : +# 2706| Block 7 +# 2706| v2706_7(void) = NoOp : #-----| Goto -> Block 8 -# 2706| Block 8 -# 2706| r2706_1(glval) = VariableAddress[x1] : -# 2706| r2706_2(int) = Load[x1] : &:r2706_1, m2698_6 -# 2706| r2706_3(int) = Constant[0] : -# 2706| r2706_4(bool) = CompareNE : r2706_2, r2706_3 -# 2706| v2706_5(void) = ConditionalBranch : r2706_4 -#-----| False -> Block 11 -#-----| True -> Block 9 - -# 2706| Block 9 -# 2706| r2706_6(glval) = VariableAddress[x2] : -# 2706| r2706_7(int) = Load[x2] : &:r2706_6, m2698_8 -# 2706| r2706_8(int) = Constant[0] : -# 2706| r2706_9(bool) = CompareNE : r2706_7, r2706_8 -# 2706| v2706_10(void) = ConditionalBranch : r2706_9 -#-----| False -> Block 11 -#-----| True -> Block 10 - -# 2706| Block 10 -# 2706| v2706_11(void) = NoOp : -#-----| Goto -> Block 11 - -# 2707| Block 11 -# 2707| r2707_1(glval) = VariableAddress[x1] : -# 2707| r2707_2(int) = Load[x1] : &:r2707_1, m2698_6 -# 2707| r2707_3(int) = Constant[0] : -# 2707| r2707_4(bool) = CompareNE : r2707_2, r2707_3 -# 2707| r2707_5(bool) = LogicalNot : r2707_4 -# 2707| v2707_6(void) = ConditionalBranch : r2707_5 -#-----| False -> Block 14 -#-----| True -> Block 12 - -# 2707| Block 12 -# 2707| r2707_7(glval) = VariableAddress[x2] : -# 2707| r2707_8(int) = Load[x2] : &:r2707_7, m2698_8 -# 2707| r2707_9(int) = Constant[0] : -# 2707| r2707_10(bool) = CompareNE : r2707_8, r2707_9 -# 2707| v2707_11(void) = ConditionalBranch : r2707_10 -#-----| False -> Block 14 -#-----| True -> Block 13 - -# 2707| Block 13 -# 2707| v2707_12(void) = NoOp : -#-----| Goto -> Block 14 - -# 2708| Block 14 +# 2708| Block 8 # 2708| r2708_1(glval) = VariableAddress[x1] : -# 2708| r2708_2(int) = Load[x1] : &:r2708_1, m2698_6 +# 2708| r2708_2(int) = Load[x1] : &:r2708_1, m2700_6 # 2708| r2708_3(int) = Constant[0] : # 2708| r2708_4(bool) = CompareNE : r2708_2, r2708_3 # 2708| v2708_5(void) = ConditionalBranch : r2708_4 -#-----| False -> Block 17 -#-----| True -> Block 15 +#-----| False -> Block 11 +#-----| True -> Block 9 -# 2708| Block 15 +# 2708| Block 9 # 2708| r2708_6(glval) = VariableAddress[x2] : -# 2708| r2708_7(int) = Load[x2] : &:r2708_6, m2698_8 +# 2708| r2708_7(int) = Load[x2] : &:r2708_6, m2700_8 # 2708| r2708_8(int) = Constant[0] : # 2708| r2708_9(bool) = CompareNE : r2708_7, r2708_8 -# 2708| r2708_10(bool) = LogicalNot : r2708_9 -# 2708| v2708_11(void) = ConditionalBranch : r2708_10 -#-----| False -> Block 17 -#-----| True -> Block 16 +# 2708| v2708_10(void) = ConditionalBranch : r2708_9 +#-----| False -> Block 11 +#-----| True -> Block 10 -# 2708| Block 16 -# 2708| v2708_12(void) = NoOp : -#-----| Goto -> Block 17 +# 2708| Block 10 +# 2708| v2708_11(void) = NoOp : +#-----| Goto -> Block 11 -# 2709| Block 17 +# 2709| Block 11 # 2709| r2709_1(glval) = VariableAddress[x1] : -# 2709| r2709_2(int) = Load[x1] : &:r2709_1, m2698_6 +# 2709| r2709_2(int) = Load[x1] : &:r2709_1, m2700_6 # 2709| r2709_3(int) = Constant[0] : # 2709| r2709_4(bool) = CompareNE : r2709_2, r2709_3 # 2709| r2709_5(bool) = LogicalNot : r2709_4 # 2709| v2709_6(void) = ConditionalBranch : r2709_5 -#-----| False -> Block 20 -#-----| True -> Block 18 +#-----| False -> Block 14 +#-----| True -> Block 12 -# 2709| Block 18 +# 2709| Block 12 # 2709| r2709_7(glval) = VariableAddress[x2] : -# 2709| r2709_8(int) = Load[x2] : &:r2709_7, m2698_8 +# 2709| r2709_8(int) = Load[x2] : &:r2709_7, m2700_8 # 2709| r2709_9(int) = Constant[0] : # 2709| r2709_10(bool) = CompareNE : r2709_8, r2709_9 -# 2709| r2709_11(bool) = LogicalNot : r2709_10 -# 2709| v2709_12(void) = ConditionalBranch : r2709_11 -#-----| False -> Block 20 -#-----| True -> Block 19 +# 2709| v2709_11(void) = ConditionalBranch : r2709_10 +#-----| False -> Block 14 +#-----| True -> Block 13 -# 2709| Block 19 -# 2709| v2709_13(void) = NoOp : -#-----| Goto -> Block 20 +# 2709| Block 13 +# 2709| v2709_12(void) = NoOp : +#-----| Goto -> Block 14 -# 2710| Block 20 +# 2710| Block 14 # 2710| r2710_1(glval) = VariableAddress[x1] : -# 2710| r2710_2(int) = Load[x1] : &:r2710_1, m2698_6 +# 2710| r2710_2(int) = Load[x1] : &:r2710_1, m2700_6 # 2710| r2710_3(int) = Constant[0] : # 2710| r2710_4(bool) = CompareNE : r2710_2, r2710_3 # 2710| v2710_5(void) = ConditionalBranch : r2710_4 -#-----| False -> Block 21 -#-----| True -> Block 22 +#-----| False -> Block 17 +#-----| True -> Block 15 -# 2710| Block 21 +# 2710| Block 15 # 2710| r2710_6(glval) = VariableAddress[x2] : -# 2710| r2710_7(int) = Load[x2] : &:r2710_6, m2698_8 +# 2710| r2710_7(int) = Load[x2] : &:r2710_6, m2700_8 # 2710| r2710_8(int) = Constant[0] : # 2710| r2710_9(bool) = CompareNE : r2710_7, r2710_8 -# 2710| v2710_10(void) = ConditionalBranch : r2710_9 -#-----| False -> Block 23 -#-----| True -> Block 22 +# 2710| r2710_10(bool) = LogicalNot : r2710_9 +# 2710| v2710_11(void) = ConditionalBranch : r2710_10 +#-----| False -> Block 17 +#-----| True -> Block 16 -# 2710| Block 22 -# 2710| v2710_11(void) = NoOp : -#-----| Goto -> Block 23 +# 2710| Block 16 +# 2710| v2710_12(void) = NoOp : +#-----| Goto -> Block 17 -# 2711| Block 23 +# 2711| Block 17 # 2711| r2711_1(glval) = VariableAddress[x1] : -# 2711| r2711_2(int) = Load[x1] : &:r2711_1, m2698_6 +# 2711| r2711_2(int) = Load[x1] : &:r2711_1, m2700_6 # 2711| r2711_3(int) = Constant[0] : # 2711| r2711_4(bool) = CompareNE : r2711_2, r2711_3 # 2711| r2711_5(bool) = LogicalNot : r2711_4 # 2711| v2711_6(void) = ConditionalBranch : r2711_5 -#-----| False -> Block 24 -#-----| True -> Block 25 +#-----| False -> Block 20 +#-----| True -> Block 18 -# 2711| Block 24 +# 2711| Block 18 # 2711| r2711_7(glval) = VariableAddress[x2] : -# 2711| r2711_8(int) = Load[x2] : &:r2711_7, m2698_8 +# 2711| r2711_8(int) = Load[x2] : &:r2711_7, m2700_8 # 2711| r2711_9(int) = Constant[0] : # 2711| r2711_10(bool) = CompareNE : r2711_8, r2711_9 -# 2711| v2711_11(void) = ConditionalBranch : r2711_10 -#-----| False -> Block 26 -#-----| True -> Block 25 +# 2711| r2711_11(bool) = LogicalNot : r2711_10 +# 2711| v2711_12(void) = ConditionalBranch : r2711_11 +#-----| False -> Block 20 +#-----| True -> Block 19 -# 2711| Block 25 -# 2711| v2711_12(void) = NoOp : -#-----| Goto -> Block 26 +# 2711| Block 19 +# 2711| v2711_13(void) = NoOp : +#-----| Goto -> Block 20 -# 2712| Block 26 +# 2712| Block 20 # 2712| r2712_1(glval) = VariableAddress[x1] : -# 2712| r2712_2(int) = Load[x1] : &:r2712_1, m2698_6 +# 2712| r2712_2(int) = Load[x1] : &:r2712_1, m2700_6 # 2712| r2712_3(int) = Constant[0] : # 2712| r2712_4(bool) = CompareNE : r2712_2, r2712_3 # 2712| v2712_5(void) = ConditionalBranch : r2712_4 -#-----| False -> Block 27 -#-----| True -> Block 28 +#-----| False -> Block 21 +#-----| True -> Block 22 -# 2712| Block 27 +# 2712| Block 21 # 2712| r2712_6(glval) = VariableAddress[x2] : -# 2712| r2712_7(int) = Load[x2] : &:r2712_6, m2698_8 +# 2712| r2712_7(int) = Load[x2] : &:r2712_6, m2700_8 # 2712| r2712_8(int) = Constant[0] : # 2712| r2712_9(bool) = CompareNE : r2712_7, r2712_8 -# 2712| r2712_10(bool) = LogicalNot : r2712_9 -# 2712| v2712_11(void) = ConditionalBranch : r2712_10 -#-----| False -> Block 29 -#-----| True -> Block 28 +# 2712| v2712_10(void) = ConditionalBranch : r2712_9 +#-----| False -> Block 23 +#-----| True -> Block 22 -# 2712| Block 28 -# 2712| v2712_12(void) = NoOp : -#-----| Goto -> Block 29 +# 2712| Block 22 +# 2712| v2712_11(void) = NoOp : +#-----| Goto -> Block 23 -# 2713| Block 29 +# 2713| Block 23 # 2713| r2713_1(glval) = VariableAddress[x1] : -# 2713| r2713_2(int) = Load[x1] : &:r2713_1, m2698_6 +# 2713| r2713_2(int) = Load[x1] : &:r2713_1, m2700_6 # 2713| r2713_3(int) = Constant[0] : # 2713| r2713_4(bool) = CompareNE : r2713_2, r2713_3 # 2713| r2713_5(bool) = LogicalNot : r2713_4 # 2713| v2713_6(void) = ConditionalBranch : r2713_5 -#-----| False -> Block 30 -#-----| True -> Block 31 +#-----| False -> Block 24 +#-----| True -> Block 25 -# 2713| Block 30 +# 2713| Block 24 # 2713| r2713_7(glval) = VariableAddress[x2] : -# 2713| r2713_8(int) = Load[x2] : &:r2713_7, m2698_8 +# 2713| r2713_8(int) = Load[x2] : &:r2713_7, m2700_8 # 2713| r2713_9(int) = Constant[0] : # 2713| r2713_10(bool) = CompareNE : r2713_8, r2713_9 -# 2713| r2713_11(bool) = LogicalNot : r2713_10 -# 2713| v2713_12(void) = ConditionalBranch : r2713_11 +# 2713| v2713_11(void) = ConditionalBranch : r2713_10 +#-----| False -> Block 26 +#-----| True -> Block 25 + +# 2713| Block 25 +# 2713| v2713_12(void) = NoOp : +#-----| Goto -> Block 26 + +# 2714| Block 26 +# 2714| r2714_1(glval) = VariableAddress[x1] : +# 2714| r2714_2(int) = Load[x1] : &:r2714_1, m2700_6 +# 2714| r2714_3(int) = Constant[0] : +# 2714| r2714_4(bool) = CompareNE : r2714_2, r2714_3 +# 2714| v2714_5(void) = ConditionalBranch : r2714_4 +#-----| False -> Block 27 +#-----| True -> Block 28 + +# 2714| Block 27 +# 2714| r2714_6(glval) = VariableAddress[x2] : +# 2714| r2714_7(int) = Load[x2] : &:r2714_6, m2700_8 +# 2714| r2714_8(int) = Constant[0] : +# 2714| r2714_9(bool) = CompareNE : r2714_7, r2714_8 +# 2714| r2714_10(bool) = LogicalNot : r2714_9 +# 2714| v2714_11(void) = ConditionalBranch : r2714_10 +#-----| False -> Block 29 +#-----| True -> Block 28 + +# 2714| Block 28 +# 2714| v2714_12(void) = NoOp : +#-----| Goto -> Block 29 + +# 2715| Block 29 +# 2715| r2715_1(glval) = VariableAddress[x1] : +# 2715| r2715_2(int) = Load[x1] : &:r2715_1, m2700_6 +# 2715| r2715_3(int) = Constant[0] : +# 2715| r2715_4(bool) = CompareNE : r2715_2, r2715_3 +# 2715| r2715_5(bool) = LogicalNot : r2715_4 +# 2715| v2715_6(void) = ConditionalBranch : r2715_5 +#-----| False -> Block 30 +#-----| True -> Block 31 + +# 2715| Block 30 +# 2715| r2715_7(glval) = VariableAddress[x2] : +# 2715| r2715_8(int) = Load[x2] : &:r2715_7, m2700_8 +# 2715| r2715_9(int) = Constant[0] : +# 2715| r2715_10(bool) = CompareNE : r2715_8, r2715_9 +# 2715| r2715_11(bool) = LogicalNot : r2715_10 +# 2715| v2715_12(void) = ConditionalBranch : r2715_11 #-----| False -> Block 32 #-----| True -> Block 31 -# 2713| Block 31 -# 2713| v2713_13(void) = NoOp : +# 2715| Block 31 +# 2715| v2715_13(void) = NoOp : #-----| Goto -> Block 32 -# 2715| Block 32 -# 2715| r2715_1(glval) = VariableAddress[x_1_and_2] : -# 2715| r2715_2(glval) = VariableAddress[x1] : -# 2715| r2715_3(int) = Load[x1] : &:r2715_2, m2698_6 -# 2715| r2715_4(int) = Constant[0] : -# 2715| r2715_5(bool) = CompareNE : r2715_3, r2715_4 -# 2715| v2715_6(void) = ConditionalBranch : r2715_5 +# 2717| Block 32 +# 2717| r2717_1(glval) = VariableAddress[x_1_and_2] : +# 2717| r2717_2(glval) = VariableAddress[x1] : +# 2717| r2717_3(int) = Load[x1] : &:r2717_2, m2700_6 +# 2717| r2717_4(int) = Constant[0] : +# 2717| r2717_5(bool) = CompareNE : r2717_3, r2717_4 +# 2717| v2717_6(void) = ConditionalBranch : r2717_5 #-----| False -> Block 33 #-----| True -> Block 36 -# 2715| Block 33 -# 2715| r2715_7(glval) = VariableAddress[#temp2715:19] : -# 2715| r2715_8(bool) = Constant[0] : -# 2715| m2715_9(bool) = Store[#temp2715:19] : &:r2715_7, r2715_8 +# 2717| Block 33 +# 2717| r2717_7(glval) = VariableAddress[#temp2717:19] : +# 2717| r2717_8(bool) = Constant[0] : +# 2717| m2717_9(bool) = Store[#temp2717:19] : &:r2717_7, r2717_8 #-----| Goto -> Block 34 -# 2715| Block 34 -# 2715| m2715_10(bool) = Phi : from 33:m2715_9, from 35:m2715_17 -# 2715| r2715_11(glval) = VariableAddress[#temp2715:19] : -# 2715| r2715_12(bool) = Load[#temp2715:19] : &:r2715_11, m2715_10 -# 2715| r2715_13(int) = Convert : r2715_12 -# 2715| m2715_14(int) = Store[x_1_and_2] : &:r2715_1, r2715_13 -# 2716| r2716_1(glval) = VariableAddress[x_1_and_2] : -# 2716| r2716_2(int) = Load[x_1_and_2] : &:r2716_1, m2715_14 -# 2716| r2716_3(int) = Constant[0] : -# 2716| r2716_4(bool) = CompareNE : r2716_2, r2716_3 -# 2716| v2716_5(void) = ConditionalBranch : r2716_4 +# 2717| Block 34 +# 2717| m2717_10(bool) = Phi : from 33:m2717_9, from 35:m2717_17 +# 2717| r2717_11(glval) = VariableAddress[#temp2717:19] : +# 2717| r2717_12(bool) = Load[#temp2717:19] : &:r2717_11, m2717_10 +# 2717| r2717_13(int) = Convert : r2717_12 +# 2717| m2717_14(int) = Store[x_1_and_2] : &:r2717_1, r2717_13 +# 2718| r2718_1(glval) = VariableAddress[x_1_and_2] : +# 2718| r2718_2(int) = Load[x_1_and_2] : &:r2718_1, m2717_14 +# 2718| r2718_3(int) = Constant[0] : +# 2718| r2718_4(bool) = CompareNE : r2718_2, r2718_3 +# 2718| v2718_5(void) = ConditionalBranch : r2718_4 #-----| False -> Block 38 #-----| True -> Block 37 -# 2715| Block 35 -# 2715| r2715_15(glval) = VariableAddress[#temp2715:19] : -# 2715| r2715_16(bool) = Constant[1] : -# 2715| m2715_17(bool) = Store[#temp2715:19] : &:r2715_15, r2715_16 +# 2717| Block 35 +# 2717| r2717_15(glval) = VariableAddress[#temp2717:19] : +# 2717| r2717_16(bool) = Constant[1] : +# 2717| m2717_17(bool) = Store[#temp2717:19] : &:r2717_15, r2717_16 #-----| Goto -> Block 34 -# 2715| Block 36 -# 2715| r2715_18(glval) = VariableAddress[x2] : -# 2715| r2715_19(int) = Load[x2] : &:r2715_18, m2698_8 -# 2715| r2715_20(int) = Constant[0] : -# 2715| r2715_21(bool) = CompareNE : r2715_19, r2715_20 -# 2715| v2715_22(void) = ConditionalBranch : r2715_21 +# 2717| Block 36 +# 2717| r2717_18(glval) = VariableAddress[x2] : +# 2717| r2717_19(int) = Load[x2] : &:r2717_18, m2700_8 +# 2717| r2717_20(int) = Constant[0] : +# 2717| r2717_21(bool) = CompareNE : r2717_19, r2717_20 +# 2717| v2717_22(void) = ConditionalBranch : r2717_21 #-----| False -> Block 33 #-----| True -> Block 35 -# 2716| Block 37 -# 2716| v2716_6(void) = NoOp : +# 2718| Block 37 +# 2718| v2718_6(void) = NoOp : #-----| Goto -> Block 38 -# 2717| Block 38 -# 2717| r2717_1(glval) = VariableAddress[x_1_and_2] : -# 2717| r2717_2(int) = Load[x_1_and_2] : &:r2717_1, m2715_14 -# 2717| r2717_3(int) = Constant[0] : -# 2717| r2717_4(bool) = CompareNE : r2717_2, r2717_3 -# 2717| r2717_5(bool) = LogicalNot : r2717_4 -# 2717| v2717_6(void) = ConditionalBranch : r2717_5 +# 2719| Block 38 +# 2719| r2719_1(glval) = VariableAddress[x_1_and_2] : +# 2719| r2719_2(int) = Load[x_1_and_2] : &:r2719_1, m2717_14 +# 2719| r2719_3(int) = Constant[0] : +# 2719| r2719_4(bool) = CompareNE : r2719_2, r2719_3 +# 2719| r2719_5(bool) = LogicalNot : r2719_4 +# 2719| v2719_6(void) = ConditionalBranch : r2719_5 #-----| False -> Block 40 #-----| True -> Block 39 -# 2717| Block 39 -# 2717| v2717_7(void) = NoOp : +# 2719| Block 39 +# 2719| v2719_7(void) = NoOp : #-----| Goto -> Block 40 -# 2718| Block 40 -# 2718| v2718_1(void) = NoOp : -# 2698| v2698_9(void) = ReturnVoid : -# 2698| v2698_10(void) = AliasedUse : m2698_3 -# 2698| v2698_11(void) = ExitFunction : - -# 2724| char UseBracketOperator(WithBracketOperator const, int) -# 2724| Block 0 -# 2724| v2724_1(void) = EnterFunction : -# 2724| m2724_2(unknown) = AliasedDefinition : -# 2724| m2724_3(unknown) = InitializeNonLocal : -# 2724| m2724_4(unknown) = Chi : total:m2724_2, partial:m2724_3 -# 2724| r2724_5(glval) = VariableAddress[x] : -# 2724| m2724_6(WithBracketOperator) = InitializeParameter[x] : &:r2724_5 -# 2724| m2724_7(unknown) = Chi : total:m2724_4, partial:m2724_6 -# 2724| r2724_8(glval) = VariableAddress[i] : -# 2724| m2724_9(int) = InitializeParameter[i] : &:r2724_8 -# 2725| r2725_1(glval) = VariableAddress[#return] : -# 2725| r2725_2(glval) = VariableAddress[x] : -# 2725| r2725_3(glval) = FunctionAddress[operator[]] : -# 2725| r2725_4(glval) = VariableAddress[i] : -# 2725| r2725_5(int) = Load[i] : &:r2725_4, m2724_9 -# 2725| r2725_6(char &) = Call[operator[]] : func:r2725_3, this:r2725_2, 0:r2725_5 -# 2725| m2725_7(unknown) = ^CallSideEffect : ~m2724_7 -# 2725| m2725_8(unknown) = Chi : total:m2724_7, partial:m2725_7 -# 2725| v2725_9(void) = ^IndirectReadSideEffect[-1] : &:r2725_2, ~m2725_8 -# 2725| r2725_10(char) = Load[?] : &:r2725_6, ~m2725_8 -# 2725| m2725_11(char) = Store[#return] : &:r2725_1, r2725_10 -# 2724| r2724_10(glval) = VariableAddress[#return] : -# 2724| v2724_11(void) = ReturnValue : &:r2724_10, m2725_11 -# 2724| v2724_12(void) = AliasedUse : ~m2725_8 -# 2724| v2724_13(void) = ExitFunction : - -# 2728| void test_postfix_crement(int*, int) -# 2728| Block 0 -# 2728| v2728_1(void) = EnterFunction : -# 2728| m2728_2(unknown) = AliasedDefinition : -# 2728| m2728_3(unknown) = InitializeNonLocal : -# 2728| m2728_4(unknown) = Chi : total:m2728_2, partial:m2728_3 -# 2728| r2728_5(glval) = VariableAddress[p] : -# 2728| m2728_6(int *) = InitializeParameter[p] : &:r2728_5 -# 2728| r2728_7(int *) = Load[p] : &:r2728_5, m2728_6 -# 2728| m2728_8(unknown) = InitializeIndirection[p] : &:r2728_7 -# 2728| m2728_9(unknown) = Chi : total:m2728_4, partial:m2728_8 -# 2728| r2728_10(glval) = VariableAddress[q] : -# 2728| m2728_11(int) = InitializeParameter[q] : &:r2728_10 -# 2729| r2729_1(glval) = VariableAddress[p] : -# 2729| r2729_2(int *) = Load[p] : &:r2729_1, m2728_6 -# 2729| r2729_3(int) = Constant[1] : -# 2729| r2729_4(int *) = PointerAdd[4] : r2729_2, r2729_3 -# 2729| m2729_5(int *) = Store[p] : &:r2729_1, r2729_4 -# 2730| r2730_1(glval) = VariableAddress[q] : -# 2730| r2730_2(int) = Load[q] : &:r2730_1, m2728_11 -# 2730| r2730_3(int) = Constant[1] : -# 2730| r2730_4(int) = Add : r2730_2, r2730_3 -# 2730| m2730_5(int) = Store[q] : &:r2730_1, r2730_4 +# 2720| Block 40 +# 2720| v2720_1(void) = NoOp : +# 2700| v2700_9(void) = ReturnVoid : +# 2700| v2700_10(void) = AliasedUse : m2700_3 +# 2700| v2700_11(void) = ExitFunction : + +# 2726| char UseBracketOperator(WithBracketOperator const, int) +# 2726| Block 0 +# 2726| v2726_1(void) = EnterFunction : +# 2726| m2726_2(unknown) = AliasedDefinition : +# 2726| m2726_3(unknown) = InitializeNonLocal : +# 2726| m2726_4(unknown) = Chi : total:m2726_2, partial:m2726_3 +# 2726| r2726_5(glval) = VariableAddress[x] : +# 2726| m2726_6(WithBracketOperator) = InitializeParameter[x] : &:r2726_5 +# 2726| m2726_7(unknown) = Chi : total:m2726_4, partial:m2726_6 +# 2726| r2726_8(glval) = VariableAddress[i] : +# 2726| m2726_9(int) = InitializeParameter[i] : &:r2726_8 +# 2727| r2727_1(glval) = VariableAddress[#return] : +# 2727| r2727_2(glval) = VariableAddress[x] : +# 2727| r2727_3(glval) = FunctionAddress[operator[]] : +# 2727| r2727_4(glval) = VariableAddress[i] : +# 2727| r2727_5(int) = Load[i] : &:r2727_4, m2726_9 +# 2727| r2727_6(char &) = Call[operator[]] : func:r2727_3, this:r2727_2, 0:r2727_5 +# 2727| m2727_7(unknown) = ^CallSideEffect : ~m2726_7 +# 2727| m2727_8(unknown) = Chi : total:m2726_7, partial:m2727_7 +# 2727| v2727_9(void) = ^IndirectReadSideEffect[-1] : &:r2727_2, ~m2727_8 +# 2727| r2727_10(char) = Load[?] : &:r2727_6, ~m2727_8 +# 2727| m2727_11(char) = Store[#return] : &:r2727_1, r2727_10 +# 2726| r2726_10(glval) = VariableAddress[#return] : +# 2726| v2726_11(void) = ReturnValue : &:r2726_10, m2727_11 +# 2726| v2726_12(void) = AliasedUse : ~m2727_8 +# 2726| v2726_13(void) = ExitFunction : + +# 2730| void test_postfix_crement(int*, int) +# 2730| Block 0 +# 2730| v2730_1(void) = EnterFunction : +# 2730| m2730_2(unknown) = AliasedDefinition : +# 2730| m2730_3(unknown) = InitializeNonLocal : +# 2730| m2730_4(unknown) = Chi : total:m2730_2, partial:m2730_3 +# 2730| r2730_5(glval) = VariableAddress[p] : +# 2730| m2730_6(int *) = InitializeParameter[p] : &:r2730_5 +# 2730| r2730_7(int *) = Load[p] : &:r2730_5, m2730_6 +# 2730| m2730_8(unknown) = InitializeIndirection[p] : &:r2730_7 +# 2730| m2730_9(unknown) = Chi : total:m2730_4, partial:m2730_8 +# 2730| r2730_10(glval) = VariableAddress[q] : +# 2730| m2730_11(int) = InitializeParameter[q] : &:r2730_10 # 2731| r2731_1(glval) = VariableAddress[p] : -# 2731| r2731_2(int *) = Load[p] : &:r2731_1, m2729_5 +# 2731| r2731_2(int *) = Load[p] : &:r2731_1, m2730_6 # 2731| r2731_3(int) = Constant[1] : # 2731| r2731_4(int *) = PointerAdd[4] : r2731_2, r2731_3 # 2731| m2731_5(int *) = Store[p] : &:r2731_1, r2731_4 -# 2731| r2731_6(int *) = CopyValue : r2731_2 # 2732| r2732_1(glval) = VariableAddress[q] : -# 2732| r2732_2(int) = Load[q] : &:r2732_1, m2730_5 +# 2732| r2732_2(int) = Load[q] : &:r2732_1, m2730_11 # 2732| r2732_3(int) = Constant[1] : # 2732| r2732_4(int) = Add : r2732_2, r2732_3 # 2732| m2732_5(int) = Store[q] : &:r2732_1, r2732_4 -# 2732| r2732_6(int) = CopyValue : r2732_2 # 2733| r2733_1(glval) = VariableAddress[p] : # 2733| r2733_2(int *) = Load[p] : &:r2733_1, m2731_5 # 2733| r2733_3(int) = Constant[1] : # 2733| r2733_4(int *) = PointerAdd[4] : r2733_2, r2733_3 # 2733| m2733_5(int *) = Store[p] : &:r2733_1, r2733_4 # 2733| r2733_6(int *) = CopyValue : r2733_2 -# 2733| v2733_7(void) = Convert : r2733_6 # 2734| r2734_1(glval) = VariableAddress[q] : # 2734| r2734_2(int) = Load[q] : &:r2734_1, m2732_5 # 2734| r2734_3(int) = Constant[1] : # 2734| r2734_4(int) = Add : r2734_2, r2734_3 # 2734| m2734_5(int) = Store[q] : &:r2734_1, r2734_4 # 2734| r2734_6(int) = CopyValue : r2734_2 -# 2734| v2734_7(void) = Convert : r2734_6 # 2735| r2735_1(glval) = VariableAddress[p] : # 2735| r2735_2(int *) = Load[p] : &:r2735_1, m2733_5 # 2735| r2735_3(int) = Constant[1] : @@ -20228,448 +20284,462 @@ ir.cpp: # 2736| m2736_5(int) = Store[q] : &:r2736_1, r2736_4 # 2736| r2736_6(int) = CopyValue : r2736_2 # 2736| v2736_7(void) = Convert : r2736_6 -# 2737| r2737_1(glval) = VariableAddress[p1] : -# 2737| r2737_2(glval) = VariableAddress[p] : -# 2737| r2737_3(int *) = Load[p] : &:r2737_2, m2735_5 -# 2737| r2737_4(int) = Constant[1] : -# 2737| r2737_5(int *) = PointerAdd[4] : r2737_3, r2737_4 -# 2737| m2737_6(int *) = Store[p] : &:r2737_2, r2737_5 -# 2737| r2737_7(int *) = CopyValue : r2737_3 -# 2737| m2737_8(int *) = Store[p1] : &:r2737_1, r2737_7 -# 2738| r2738_1(glval) = VariableAddress[q1] : -# 2738| r2738_2(glval) = VariableAddress[q] : -# 2738| r2738_3(int) = Load[q] : &:r2738_2, m2736_5 -# 2738| r2738_4(int) = Constant[1] : -# 2738| r2738_5(int) = Add : r2738_3, r2738_4 -# 2738| m2738_6(int) = Store[q] : &:r2738_2, r2738_5 -# 2738| r2738_7(int) = CopyValue : r2738_3 -# 2738| m2738_8(int) = Store[q1] : &:r2738_1, r2738_7 -# 2739| r2739_1(glval) = VariableAddress[p] : -# 2739| r2739_2(int *) = Load[p] : &:r2739_1, m2737_6 -# 2739| r2739_3(int) = Constant[1] : -# 2739| r2739_4(int *) = PointerAdd[4] : r2739_2, r2739_3 -# 2739| m2739_5(int *) = Store[p] : &:r2739_1, r2739_4 -# 2739| r2739_6(int *) = CopyValue : r2739_2 -# 2739| r2739_7(int *) = Convert : r2739_6 -# 2740| r2740_1(glval) = VariableAddress[q] : -# 2740| r2740_2(int) = Load[q] : &:r2740_1, m2738_6 -# 2740| r2740_3(int) = Constant[1] : -# 2740| r2740_4(int) = Add : r2740_2, r2740_3 -# 2740| m2740_5(int) = Store[q] : &:r2740_1, r2740_4 -# 2740| r2740_6(int) = CopyValue : r2740_2 -# 2740| r2740_7(int) = Convert : r2740_6 -# 2741| r2741_1(glval) = VariableAddress[p2] : -# 2741| r2741_2(glval) = VariableAddress[p] : -# 2741| r2741_3(int *) = Load[p] : &:r2741_2, m2739_5 -# 2741| r2741_4(int) = Constant[1] : -# 2741| r2741_5(int *) = PointerAdd[4] : r2741_3, r2741_4 -# 2741| m2741_6(int *) = Store[p] : &:r2741_2, r2741_5 -# 2741| r2741_7(int *) = CopyValue : r2741_3 -# 2741| r2741_8(int *) = Convert : r2741_7 -# 2741| m2741_9(int *) = Store[p2] : &:r2741_1, r2741_8 -# 2742| r2742_1(glval) = VariableAddress[q2] : -# 2742| r2742_2(glval) = VariableAddress[q] : -# 2742| r2742_3(int) = Load[q] : &:r2742_2, m2740_5 -# 2742| r2742_4(int) = Constant[1] : -# 2742| r2742_5(int) = Add : r2742_3, r2742_4 -# 2742| m2742_6(int) = Store[q] : &:r2742_2, r2742_5 -# 2742| r2742_7(int) = CopyValue : r2742_3 -# 2742| r2742_8(int) = Convert : r2742_7 -# 2742| m2742_9(int) = Store[q2] : &:r2742_1, r2742_8 -# 2743| v2743_1(void) = NoOp : -# 2728| v2728_12(void) = ReturnIndirection[p] : &:r2728_7, m2728_8 -# 2728| v2728_13(void) = ReturnVoid : -# 2728| v2728_14(void) = AliasedUse : ~m2728_9 -# 2728| v2728_15(void) = ExitFunction : - -# 2747| void std::strong_ordering::strong_ordering(std::strong_ordering&&) -# 2747| Block 0 -# 2747| v2747_1(void) = EnterFunction : -# 2747| m2747_2(unknown) = AliasedDefinition : -# 2747| m2747_3(unknown) = InitializeNonLocal : -# 2747| m2747_4(unknown) = Chi : total:m2747_2, partial:m2747_3 -# 2747| r2747_5(glval) = VariableAddress[#this] : -# 2747| m2747_6(glval) = InitializeParameter[#this] : &:r2747_5 -# 2747| r2747_7(glval) = Load[#this] : &:r2747_5, m2747_6 -# 2747| m2747_8(strong_ordering) = InitializeIndirection[#this] : &:r2747_7 +# 2737| r2737_1(glval) = VariableAddress[p] : +# 2737| r2737_2(int *) = Load[p] : &:r2737_1, m2735_5 +# 2737| r2737_3(int) = Constant[1] : +# 2737| r2737_4(int *) = PointerAdd[4] : r2737_2, r2737_3 +# 2737| m2737_5(int *) = Store[p] : &:r2737_1, r2737_4 +# 2737| r2737_6(int *) = CopyValue : r2737_2 +# 2737| v2737_7(void) = Convert : r2737_6 +# 2738| r2738_1(glval) = VariableAddress[q] : +# 2738| r2738_2(int) = Load[q] : &:r2738_1, m2736_5 +# 2738| r2738_3(int) = Constant[1] : +# 2738| r2738_4(int) = Add : r2738_2, r2738_3 +# 2738| m2738_5(int) = Store[q] : &:r2738_1, r2738_4 +# 2738| r2738_6(int) = CopyValue : r2738_2 +# 2738| v2738_7(void) = Convert : r2738_6 +# 2739| r2739_1(glval) = VariableAddress[p1] : +# 2739| r2739_2(glval) = VariableAddress[p] : +# 2739| r2739_3(int *) = Load[p] : &:r2739_2, m2737_5 +# 2739| r2739_4(int) = Constant[1] : +# 2739| r2739_5(int *) = PointerAdd[4] : r2739_3, r2739_4 +# 2739| m2739_6(int *) = Store[p] : &:r2739_2, r2739_5 +# 2739| r2739_7(int *) = CopyValue : r2739_3 +# 2739| m2739_8(int *) = Store[p1] : &:r2739_1, r2739_7 +# 2740| r2740_1(glval) = VariableAddress[q1] : +# 2740| r2740_2(glval) = VariableAddress[q] : +# 2740| r2740_3(int) = Load[q] : &:r2740_2, m2738_5 +# 2740| r2740_4(int) = Constant[1] : +# 2740| r2740_5(int) = Add : r2740_3, r2740_4 +# 2740| m2740_6(int) = Store[q] : &:r2740_2, r2740_5 +# 2740| r2740_7(int) = CopyValue : r2740_3 +# 2740| m2740_8(int) = Store[q1] : &:r2740_1, r2740_7 +# 2741| r2741_1(glval) = VariableAddress[p] : +# 2741| r2741_2(int *) = Load[p] : &:r2741_1, m2739_6 +# 2741| r2741_3(int) = Constant[1] : +# 2741| r2741_4(int *) = PointerAdd[4] : r2741_2, r2741_3 +# 2741| m2741_5(int *) = Store[p] : &:r2741_1, r2741_4 +# 2741| r2741_6(int *) = CopyValue : r2741_2 +# 2741| r2741_7(int *) = Convert : r2741_6 +# 2742| r2742_1(glval) = VariableAddress[q] : +# 2742| r2742_2(int) = Load[q] : &:r2742_1, m2740_6 +# 2742| r2742_3(int) = Constant[1] : +# 2742| r2742_4(int) = Add : r2742_2, r2742_3 +# 2742| m2742_5(int) = Store[q] : &:r2742_1, r2742_4 +# 2742| r2742_6(int) = CopyValue : r2742_2 +# 2742| r2742_7(int) = Convert : r2742_6 +# 2743| r2743_1(glval) = VariableAddress[p2] : +# 2743| r2743_2(glval) = VariableAddress[p] : +# 2743| r2743_3(int *) = Load[p] : &:r2743_2, m2741_5 +# 2743| r2743_4(int) = Constant[1] : +# 2743| r2743_5(int *) = PointerAdd[4] : r2743_3, r2743_4 +# 2743| m2743_6(int *) = Store[p] : &:r2743_2, r2743_5 +# 2743| r2743_7(int *) = CopyValue : r2743_3 +# 2743| r2743_8(int *) = Convert : r2743_7 +# 2743| m2743_9(int *) = Store[p2] : &:r2743_1, r2743_8 +# 2744| r2744_1(glval) = VariableAddress[q2] : +# 2744| r2744_2(glval) = VariableAddress[q] : +# 2744| r2744_3(int) = Load[q] : &:r2744_2, m2742_5 +# 2744| r2744_4(int) = Constant[1] : +# 2744| r2744_5(int) = Add : r2744_3, r2744_4 +# 2744| m2744_6(int) = Store[q] : &:r2744_2, r2744_5 +# 2744| r2744_7(int) = CopyValue : r2744_3 +# 2744| r2744_8(int) = Convert : r2744_7 +# 2744| m2744_9(int) = Store[q2] : &:r2744_1, r2744_8 +# 2745| v2745_1(void) = NoOp : +# 2730| v2730_12(void) = ReturnIndirection[p] : &:r2730_7, m2730_8 +# 2730| v2730_13(void) = ReturnVoid : +# 2730| v2730_14(void) = AliasedUse : ~m2730_9 +# 2730| v2730_15(void) = ExitFunction : + +# 2749| void std::strong_ordering::strong_ordering(std::strong_ordering&&) +# 2749| Block 0 +# 2749| v2749_1(void) = EnterFunction : +# 2749| m2749_2(unknown) = AliasedDefinition : +# 2749| m2749_3(unknown) = InitializeNonLocal : +# 2749| m2749_4(unknown) = Chi : total:m2749_2, partial:m2749_3 +# 2749| r2749_5(glval) = VariableAddress[#this] : +# 2749| m2749_6(glval) = InitializeParameter[#this] : &:r2749_5 +# 2749| r2749_7(glval) = Load[#this] : &:r2749_5, m2749_6 +# 2749| m2749_8(strong_ordering) = InitializeIndirection[#this] : &:r2749_7 #-----| r0_1(glval) = VariableAddress[(unnamed parameter 0)] : #-----| m0_2(strong_ordering &&) = InitializeParameter[(unnamed parameter 0)] : &:r0_1 #-----| r0_3(strong_ordering &&) = Load[(unnamed parameter 0)] : &:r0_1, m0_2 #-----| m0_4(unknown) = InitializeIndirection[(unnamed parameter 0)] : &:r0_3 -# 2747| v2747_9(void) = NoOp : -# 2747| v2747_10(void) = ReturnIndirection[#this] : &:r2747_7, m2747_8 +# 2749| v2749_9(void) = NoOp : +# 2749| v2749_10(void) = ReturnIndirection[#this] : &:r2749_7, m2749_8 #-----| v0_5(void) = ReturnIndirection[(unnamed parameter 0)] : &:r0_3, m0_4 -# 2747| v2747_11(void) = ReturnVoid : -# 2747| v2747_12(void) = AliasedUse : m2747_3 -# 2747| v2747_13(void) = ExitFunction : - -# 2748| void std::strong_ordering::strong_ordering(std::_Order) -# 2748| Block 0 -# 2748| v2748_1(void) = EnterFunction : -# 2748| m2748_2(unknown) = AliasedDefinition : -# 2748| m2748_3(unknown) = InitializeNonLocal : -# 2748| m2748_4(unknown) = Chi : total:m2748_2, partial:m2748_3 -# 2748| r2748_5(glval) = VariableAddress[#this] : -# 2748| m2748_6(glval) = InitializeParameter[#this] : &:r2748_5 -# 2748| r2748_7(glval) = Load[#this] : &:r2748_5, m2748_6 -# 2748| m2748_8(strong_ordering) = InitializeIndirection[#this] : &:r2748_7 -# 2748| r2748_9(glval<_Order>) = VariableAddress[v] : -# 2748| m2748_10(_Order) = InitializeParameter[v] : &:r2748_9 -# 2748| v2748_11(void) = NoOp : -# 2748| v2748_12(void) = ReturnIndirection[#this] : &:r2748_7, m2748_8 -# 2748| v2748_13(void) = ReturnVoid : -# 2748| v2748_14(void) = AliasedUse : m2748_3 -# 2748| v2748_15(void) = ExitFunction : - -# 2766| std::strong_ordering ThreeWay::operator<=>(ThreeWay&) -# 2766| Block 0 -# 2766| v2766_1(void) = EnterFunction : -# 2766| m2766_2(unknown) = AliasedDefinition : -# 2766| m2766_3(unknown) = InitializeNonLocal : -# 2766| m2766_4(unknown) = Chi : total:m2766_2, partial:m2766_3 -# 2766| r2766_5(glval) = VariableAddress[#this] : -# 2766| m2766_6(glval) = InitializeParameter[#this] : &:r2766_5 -# 2766| r2766_7(glval) = Load[#this] : &:r2766_5, m2766_6 -# 2766| m2766_8(ThreeWay) = InitializeIndirection[#this] : &:r2766_7 -# 2766| r2766_9(glval) = VariableAddress[y] : -# 2766| m2766_10(ThreeWay &) = InitializeParameter[y] : &:r2766_9 -# 2766| r2766_11(ThreeWay &) = Load[y] : &:r2766_9, m2766_10 -# 2766| m2766_12(unknown) = InitializeIndirection[y] : &:r2766_11 -# 2766| r2766_13(glval) = VariableAddress[#return] : -# 2766| r2766_14(glval) = VariableAddress[#this] : -# 2766| r2766_15(ThreeWay *) = Load[#this] : &:r2766_14, m2766_6 -# 2766| r2766_16(glval) = FieldAddress[x] : r2766_15 -# 2766| r2766_17(int) = Load[?] : &:r2766_16, ~m2766_8 -# 2766| r2766_18(glval) = VariableAddress[y] : -# 2766| r2766_19(ThreeWay &) = Load[y] : &:r2766_18, m2766_10 -# 2766| r2766_20(glval) = CopyValue : r2766_19 -# 2766| r2766_21(glval) = FieldAddress[x] : r2766_20 -# 2766| r2766_22(int) = Load[?] : &:r2766_21, ~m2766_12 -# 2766| r2766_23(strong_ordering) = Spaceship : r2766_17, r2766_22 -# 2766| m2766_24(strong_ordering) = Store[#return] : &:r2766_13, r2766_23 -# 2766| v2766_25(void) = ReturnIndirection[#this] : &:r2766_7, m2766_8 -# 2766| v2766_26(void) = ReturnIndirection[y] : &:r2766_11, m2766_12 -# 2766| r2766_27(glval) = VariableAddress[#return] : -# 2766| v2766_28(void) = ReturnValue : &:r2766_27, m2766_24 -# 2766| v2766_29(void) = AliasedUse : m2766_3 -# 2766| v2766_30(void) = ExitFunction : - -# 2769| void test_three_way(int, int, ThreeWay, ThreeWay) -# 2769| Block 0 -# 2769| v2769_1(void) = EnterFunction : -# 2769| m2769_2(unknown) = AliasedDefinition : -# 2769| m2769_3(unknown) = InitializeNonLocal : -# 2769| m2769_4(unknown) = Chi : total:m2769_2, partial:m2769_3 -# 2769| r2769_5(glval) = VariableAddress[a] : -# 2769| m2769_6(int) = InitializeParameter[a] : &:r2769_5 -# 2769| r2769_7(glval) = VariableAddress[b] : -# 2769| m2769_8(int) = InitializeParameter[b] : &:r2769_7 -# 2769| r2769_9(glval) = VariableAddress[c] : -# 2769| m2769_10(ThreeWay) = InitializeParameter[c] : &:r2769_9 -# 2769| r2769_11(glval) = VariableAddress[d] : -# 2769| m2769_12(ThreeWay) = InitializeParameter[d] : &:r2769_11 -# 2770| r2770_1(glval) = VariableAddress[x] : -# 2770| r2770_2(glval) = VariableAddress[a] : -# 2770| r2770_3(int) = Load[a] : &:r2770_2, m2769_6 -# 2770| r2770_4(glval) = VariableAddress[b] : -# 2770| r2770_5(int) = Load[b] : &:r2770_4, m2769_8 -# 2770| r2770_6(strong_ordering) = Spaceship : r2770_3, r2770_5 -# 2770| m2770_7(strong_ordering) = Store[x] : &:r2770_1, r2770_6 -# 2771| r2771_1(glval) = VariableAddress[y] : -# 2771| r2771_2(glval) = VariableAddress[c] : -# 2771| r2771_3(glval) = FunctionAddress[operator<=>] : -# 2771| r2771_4(glval) = VariableAddress[d] : -# 2771| r2771_5(ThreeWay &) = CopyValue : r2771_4 -# 2771| r2771_6(strong_ordering) = Call[operator<=>] : func:r2771_3, this:r2771_2, 0:r2771_5 -# 2771| m2771_7(unknown) = ^CallSideEffect : ~m2769_4 -# 2771| m2771_8(unknown) = Chi : total:m2769_4, partial:m2771_7 -# 2771| v2771_9(void) = ^IndirectReadSideEffect[-1] : &:r2771_2, m2769_10 -# 2771| v2771_10(void) = ^BufferReadSideEffect[0] : &:r2771_5, ~m2769_12 -# 2771| m2771_11(ThreeWay) = ^IndirectMayWriteSideEffect[-1] : &:r2771_2 -# 2771| m2771_12(ThreeWay) = Chi : total:m2769_10, partial:m2771_11 -# 2771| m2771_13(unknown) = ^BufferMayWriteSideEffect[0] : &:r2771_5 -# 2771| m2771_14(ThreeWay) = Chi : total:m2769_12, partial:m2771_13 -# 2771| m2771_15(strong_ordering) = Store[y] : &:r2771_1, r2771_6 -# 2772| v2772_1(void) = NoOp : -# 2769| v2769_13(void) = ReturnVoid : -# 2769| v2769_14(void) = AliasedUse : ~m2771_8 -# 2769| v2769_15(void) = ExitFunction : - -# 2774| void test_allocation_with_initializer() -# 2774| Block 0 -# 2774| v2774_1(void) = EnterFunction : -# 2774| m2774_2(unknown) = AliasedDefinition : -# 2774| m2774_3(unknown) = InitializeNonLocal : -# 2774| m2774_4(unknown) = Chi : total:m2774_2, partial:m2774_3 -# 2775| r2775_1(glval) = VariableAddress[p1] : -# 2775| r2775_2(glval) = FunctionAddress[operator new] : -# 2775| r2775_3(unsigned long) = Constant[4] : -# 2775| r2775_4(void *) = Call[operator new] : func:r2775_2, 0:r2775_3 -# 2775| m2775_5(unknown) = ^CallSideEffect : ~m2774_4 -# 2775| m2775_6(unknown) = Chi : total:m2774_4, partial:m2775_5 -# 2775| m2775_7(unknown) = ^InitializeDynamicAllocation : &:r2775_4 -# 2775| r2775_8(int *) = Convert : r2775_4 -# 2775| r2775_9(int) = Constant[42] : -# 2775| m2775_10(int) = Store[?] : &:r2775_8, r2775_9 -# 2775| m2775_11(unknown) = Chi : total:m2775_7, partial:m2775_10 -# 2775| m2775_12(int *) = Store[p1] : &:r2775_1, r2775_8 -# 2776| r2776_1(glval) = VariableAddress[p2] : -# 2776| r2776_2(glval) = FunctionAddress[operator new] : -# 2776| r2776_3(unsigned long) = Constant[8] : -# 2776| r2776_4(void *) = Call[operator new] : func:r2776_2, 0:r2776_3 -# 2776| m2776_5(unknown) = ^CallSideEffect : ~m2775_6 -# 2776| m2776_6(unknown) = Chi : total:m2775_6, partial:m2776_5 -# 2776| m2776_7(unknown) = ^InitializeDynamicAllocation : &:r2776_4 -# 2776| r2776_8(long *) = Convert : r2776_4 -# 2776| r2776_9(long) = Constant[42] : -# 2776| m2776_10(long) = Store[?] : &:r2776_8, r2776_9 -# 2776| m2776_11(unknown) = Chi : total:m2776_7, partial:m2776_10 -# 2776| m2776_12(long *) = Store[p2] : &:r2776_1, r2776_8 -# 2777| v2777_1(void) = NoOp : -# 2774| v2774_5(void) = ReturnVoid : -# 2774| v2774_6(void) = AliasedUse : ~m2776_6 -# 2774| v2774_7(void) = ExitFunction : - -# 2779| void vla_sizeof_test(int, size_t, char) -# 2779| Block 0 -# 2779| v2779_1(void) = EnterFunction : -# 2779| m2779_2(unknown) = AliasedDefinition : -# 2779| m2779_3(unknown) = InitializeNonLocal : -# 2779| m2779_4(unknown) = Chi : total:m2779_2, partial:m2779_3 -# 2779| r2779_5(glval) = VariableAddress[len1] : -# 2779| m2779_6(int) = InitializeParameter[len1] : &:r2779_5 -# 2779| r2779_7(glval) = VariableAddress[len2] : -# 2779| m2779_8(unsigned long) = InitializeParameter[len2] : &:r2779_7 -# 2779| r2779_9(glval) = VariableAddress[len3] : -# 2779| m2779_10(char) = InitializeParameter[len3] : &:r2779_9 -# 2780| r2780_1(glval) = VariableAddress[tmp1] : -# 2780| m2780_2(char[]) = Uninitialized[tmp1] : &:r2780_1 -# 2780| r2780_3(glval) = VariableAddress[len1] : -# 2780| r2780_4(int) = Load[len1] : &:r2780_3, m2779_6 -# 2780| v2780_5(void) = NoOp : -# 2781| r2781_1(glval) = VariableAddress[x] : -# 2781| r2781_2(unsigned long) = Constant[1] : -# 2781| r2781_3(unsigned long) = Convert : r2780_4 -# 2781| r2781_4(unsigned long) = Mul : r2781_2, r2781_3 -# 2781| m2781_5(unsigned long) = Store[x] : &:r2781_1, r2781_4 -# 2782| r2782_1(glval) = VariableAddress[tmp2] : -# 2782| m2782_2(int[][]) = Uninitialized[tmp2] : &:r2782_1 +# 2749| v2749_11(void) = ReturnVoid : +# 2749| v2749_12(void) = AliasedUse : m2749_3 +# 2749| v2749_13(void) = ExitFunction : + +# 2750| void std::strong_ordering::strong_ordering(std::_Order) +# 2750| Block 0 +# 2750| v2750_1(void) = EnterFunction : +# 2750| m2750_2(unknown) = AliasedDefinition : +# 2750| m2750_3(unknown) = InitializeNonLocal : +# 2750| m2750_4(unknown) = Chi : total:m2750_2, partial:m2750_3 +# 2750| r2750_5(glval) = VariableAddress[#this] : +# 2750| m2750_6(glval) = InitializeParameter[#this] : &:r2750_5 +# 2750| r2750_7(glval) = Load[#this] : &:r2750_5, m2750_6 +# 2750| m2750_8(strong_ordering) = InitializeIndirection[#this] : &:r2750_7 +# 2750| r2750_9(glval<_Order>) = VariableAddress[v] : +# 2750| m2750_10(_Order) = InitializeParameter[v] : &:r2750_9 +# 2750| v2750_11(void) = NoOp : +# 2750| v2750_12(void) = ReturnIndirection[#this] : &:r2750_7, m2750_8 +# 2750| v2750_13(void) = ReturnVoid : +# 2750| v2750_14(void) = AliasedUse : m2750_3 +# 2750| v2750_15(void) = ExitFunction : + +# 2768| std::strong_ordering ThreeWay::operator<=>(ThreeWay&) +# 2768| Block 0 +# 2768| v2768_1(void) = EnterFunction : +# 2768| m2768_2(unknown) = AliasedDefinition : +# 2768| m2768_3(unknown) = InitializeNonLocal : +# 2768| m2768_4(unknown) = Chi : total:m2768_2, partial:m2768_3 +# 2768| r2768_5(glval) = VariableAddress[#this] : +# 2768| m2768_6(glval) = InitializeParameter[#this] : &:r2768_5 +# 2768| r2768_7(glval) = Load[#this] : &:r2768_5, m2768_6 +# 2768| m2768_8(ThreeWay) = InitializeIndirection[#this] : &:r2768_7 +# 2768| r2768_9(glval) = VariableAddress[y] : +# 2768| m2768_10(ThreeWay &) = InitializeParameter[y] : &:r2768_9 +# 2768| r2768_11(ThreeWay &) = Load[y] : &:r2768_9, m2768_10 +# 2768| m2768_12(unknown) = InitializeIndirection[y] : &:r2768_11 +# 2768| r2768_13(glval) = VariableAddress[#return] : +# 2768| r2768_14(glval) = VariableAddress[#this] : +# 2768| r2768_15(ThreeWay *) = Load[#this] : &:r2768_14, m2768_6 +# 2768| r2768_16(glval) = FieldAddress[x] : r2768_15 +# 2768| r2768_17(int) = Load[?] : &:r2768_16, ~m2768_8 +# 2768| r2768_18(glval) = VariableAddress[y] : +# 2768| r2768_19(ThreeWay &) = Load[y] : &:r2768_18, m2768_10 +# 2768| r2768_20(glval) = CopyValue : r2768_19 +# 2768| r2768_21(glval) = FieldAddress[x] : r2768_20 +# 2768| r2768_22(int) = Load[?] : &:r2768_21, ~m2768_12 +# 2768| r2768_23(strong_ordering) = Spaceship : r2768_17, r2768_22 +# 2768| m2768_24(strong_ordering) = Store[#return] : &:r2768_13, r2768_23 +# 2768| v2768_25(void) = ReturnIndirection[#this] : &:r2768_7, m2768_8 +# 2768| v2768_26(void) = ReturnIndirection[y] : &:r2768_11, m2768_12 +# 2768| r2768_27(glval) = VariableAddress[#return] : +# 2768| v2768_28(void) = ReturnValue : &:r2768_27, m2768_24 +# 2768| v2768_29(void) = AliasedUse : m2768_3 +# 2768| v2768_30(void) = ExitFunction : + +# 2771| void test_three_way(int, int, ThreeWay, ThreeWay) +# 2771| Block 0 +# 2771| v2771_1(void) = EnterFunction : +# 2771| m2771_2(unknown) = AliasedDefinition : +# 2771| m2771_3(unknown) = InitializeNonLocal : +# 2771| m2771_4(unknown) = Chi : total:m2771_2, partial:m2771_3 +# 2771| r2771_5(glval) = VariableAddress[a] : +# 2771| m2771_6(int) = InitializeParameter[a] : &:r2771_5 +# 2771| r2771_7(glval) = VariableAddress[b] : +# 2771| m2771_8(int) = InitializeParameter[b] : &:r2771_7 +# 2771| r2771_9(glval) = VariableAddress[c] : +# 2771| m2771_10(ThreeWay) = InitializeParameter[c] : &:r2771_9 +# 2771| r2771_11(glval) = VariableAddress[d] : +# 2771| m2771_12(ThreeWay) = InitializeParameter[d] : &:r2771_11 +# 2772| r2772_1(glval) = VariableAddress[x] : +# 2772| r2772_2(glval) = VariableAddress[a] : +# 2772| r2772_3(int) = Load[a] : &:r2772_2, m2771_6 +# 2772| r2772_4(glval) = VariableAddress[b] : +# 2772| r2772_5(int) = Load[b] : &:r2772_4, m2771_8 +# 2772| r2772_6(strong_ordering) = Spaceship : r2772_3, r2772_5 +# 2772| m2772_7(strong_ordering) = Store[x] : &:r2772_1, r2772_6 +# 2773| r2773_1(glval) = VariableAddress[y] : +# 2773| r2773_2(glval) = VariableAddress[c] : +# 2773| r2773_3(glval) = FunctionAddress[operator<=>] : +# 2773| r2773_4(glval) = VariableAddress[d] : +# 2773| r2773_5(ThreeWay &) = CopyValue : r2773_4 +# 2773| r2773_6(strong_ordering) = Call[operator<=>] : func:r2773_3, this:r2773_2, 0:r2773_5 +# 2773| m2773_7(unknown) = ^CallSideEffect : ~m2771_4 +# 2773| m2773_8(unknown) = Chi : total:m2771_4, partial:m2773_7 +# 2773| v2773_9(void) = ^IndirectReadSideEffect[-1] : &:r2773_2, m2771_10 +# 2773| v2773_10(void) = ^BufferReadSideEffect[0] : &:r2773_5, ~m2771_12 +# 2773| m2773_11(ThreeWay) = ^IndirectMayWriteSideEffect[-1] : &:r2773_2 +# 2773| m2773_12(ThreeWay) = Chi : total:m2771_10, partial:m2773_11 +# 2773| m2773_13(unknown) = ^BufferMayWriteSideEffect[0] : &:r2773_5 +# 2773| m2773_14(ThreeWay) = Chi : total:m2771_12, partial:m2773_13 +# 2773| m2773_15(strong_ordering) = Store[y] : &:r2773_1, r2773_6 +# 2774| v2774_1(void) = NoOp : +# 2771| v2771_13(void) = ReturnVoid : +# 2771| v2771_14(void) = AliasedUse : ~m2773_8 +# 2771| v2771_15(void) = ExitFunction : + +# 2776| void test_allocation_with_initializer() +# 2776| Block 0 +# 2776| v2776_1(void) = EnterFunction : +# 2776| m2776_2(unknown) = AliasedDefinition : +# 2776| m2776_3(unknown) = InitializeNonLocal : +# 2776| m2776_4(unknown) = Chi : total:m2776_2, partial:m2776_3 +# 2777| r2777_1(glval) = VariableAddress[p1] : +# 2777| r2777_2(glval) = FunctionAddress[operator new] : +# 2777| r2777_3(unsigned long) = Constant[4] : +# 2777| r2777_4(void *) = Call[operator new] : func:r2777_2, 0:r2777_3 +# 2777| m2777_5(unknown) = ^CallSideEffect : ~m2776_4 +# 2777| m2777_6(unknown) = Chi : total:m2776_4, partial:m2777_5 +# 2777| m2777_7(unknown) = ^InitializeDynamicAllocation : &:r2777_4 +# 2777| r2777_8(int *) = Convert : r2777_4 +# 2777| r2777_9(int) = Constant[42] : +# 2777| m2777_10(int) = Store[?] : &:r2777_8, r2777_9 +# 2777| m2777_11(unknown) = Chi : total:m2777_7, partial:m2777_10 +# 2777| m2777_12(int *) = Store[p1] : &:r2777_1, r2777_8 +# 2778| r2778_1(glval) = VariableAddress[p2] : +# 2778| r2778_2(glval) = FunctionAddress[operator new] : +# 2778| r2778_3(unsigned long) = Constant[8] : +# 2778| r2778_4(void *) = Call[operator new] : func:r2778_2, 0:r2778_3 +# 2778| m2778_5(unknown) = ^CallSideEffect : ~m2777_6 +# 2778| m2778_6(unknown) = Chi : total:m2777_6, partial:m2778_5 +# 2778| m2778_7(unknown) = ^InitializeDynamicAllocation : &:r2778_4 +# 2778| r2778_8(long *) = Convert : r2778_4 +# 2778| r2778_9(long) = Constant[42] : +# 2778| m2778_10(long) = Store[?] : &:r2778_8, r2778_9 +# 2778| m2778_11(unknown) = Chi : total:m2778_7, partial:m2778_10 +# 2778| m2778_12(long *) = Store[p2] : &:r2778_1, r2778_8 +# 2779| v2779_1(void) = NoOp : +# 2776| v2776_5(void) = ReturnVoid : +# 2776| v2776_6(void) = AliasedUse : ~m2778_6 +# 2776| v2776_7(void) = ExitFunction : + +# 2781| void vla_sizeof_test(int, size_t, char) +# 2781| Block 0 +# 2781| v2781_1(void) = EnterFunction : +# 2781| m2781_2(unknown) = AliasedDefinition : +# 2781| m2781_3(unknown) = InitializeNonLocal : +# 2781| m2781_4(unknown) = Chi : total:m2781_2, partial:m2781_3 +# 2781| r2781_5(glval) = VariableAddress[len1] : +# 2781| m2781_6(int) = InitializeParameter[len1] : &:r2781_5 +# 2781| r2781_7(glval) = VariableAddress[len2] : +# 2781| m2781_8(unsigned long) = InitializeParameter[len2] : &:r2781_7 +# 2781| r2781_9(glval) = VariableAddress[len3] : +# 2781| m2781_10(char) = InitializeParameter[len3] : &:r2781_9 +# 2782| r2782_1(glval) = VariableAddress[tmp1] : +# 2782| m2782_2(char[]) = Uninitialized[tmp1] : &:r2782_1 # 2782| r2782_3(glval) = VariableAddress[len1] : -# 2782| r2782_4(int) = Load[len1] : &:r2782_3, m2779_6 -# 2782| r2782_5(glval) = VariableAddress[len2] : -# 2782| r2782_6(unsigned long) = Load[len2] : &:r2782_5, m2779_8 -# 2782| v2782_7(void) = NoOp : -# 2783| r2783_1(glval) = VariableAddress[y] : -# 2783| r2783_2(unsigned long) = Constant[4] : +# 2782| r2782_4(int) = Load[len1] : &:r2782_3, m2781_6 +# 2782| v2782_5(void) = NoOp : +# 2783| r2783_1(glval) = VariableAddress[x] : +# 2783| r2783_2(unsigned long) = Constant[1] : # 2783| r2783_3(unsigned long) = Convert : r2782_4 # 2783| r2783_4(unsigned long) = Mul : r2783_2, r2783_3 -# 2783| r2783_5(unsigned long) = CopyValue : r2782_6 -# 2783| r2783_6(unsigned long) = Mul : r2783_4, r2783_5 -# 2783| m2783_7(unsigned long) = Store[y] : &:r2783_1, r2783_6 -# 2784| r2784_1(glval) = VariableAddress[z] : -# 2784| r2784_2(unsigned long) = Constant[4] : -# 2784| r2784_3(unsigned long) = CopyValue : r2782_6 -# 2784| r2784_4(unsigned long) = Mul : r2784_2, r2784_3 -# 2784| m2784_5(unsigned long) = Store[z] : &:r2784_1, r2784_4 -# 2785| r2785_1(glval) = VariableAddress[tmp3] : -# 2785| m2785_2(int[][][]) = Uninitialized[tmp3] : &:r2785_1 -# 2785| r2785_3(glval) = VariableAddress[len1] : -# 2785| r2785_4(int) = Load[len1] : &:r2785_3, m2779_6 -# 2785| r2785_5(glval) = VariableAddress[len2] : -# 2785| r2785_6(unsigned long) = Load[len2] : &:r2785_5, m2779_8 -# 2785| r2785_7(glval) = VariableAddress[len3] : -# 2785| r2785_8(char) = Load[len3] : &:r2785_7, m2779_10 -# 2785| v2785_9(void) = NoOp : -# 2786| r2786_1(glval) = VariableAddress[w] : +# 2783| m2783_5(unsigned long) = Store[x] : &:r2783_1, r2783_4 +# 2784| r2784_1(glval) = VariableAddress[tmp2] : +# 2784| m2784_2(int[][]) = Uninitialized[tmp2] : &:r2784_1 +# 2784| r2784_3(glval) = VariableAddress[len1] : +# 2784| r2784_4(int) = Load[len1] : &:r2784_3, m2781_6 +# 2784| r2784_5(glval) = VariableAddress[len2] : +# 2784| r2784_6(unsigned long) = Load[len2] : &:r2784_5, m2781_8 +# 2784| v2784_7(void) = NoOp : +# 2785| r2785_1(glval) = VariableAddress[y] : +# 2785| r2785_2(unsigned long) = Constant[4] : +# 2785| r2785_3(unsigned long) = Convert : r2784_4 +# 2785| r2785_4(unsigned long) = Mul : r2785_2, r2785_3 +# 2785| r2785_5(unsigned long) = CopyValue : r2784_6 +# 2785| r2785_6(unsigned long) = Mul : r2785_4, r2785_5 +# 2785| m2785_7(unsigned long) = Store[y] : &:r2785_1, r2785_6 +# 2786| r2786_1(glval) = VariableAddress[z] : # 2786| r2786_2(unsigned long) = Constant[4] : -# 2786| r2786_3(unsigned long) = Convert : r2785_4 +# 2786| r2786_3(unsigned long) = CopyValue : r2784_6 # 2786| r2786_4(unsigned long) = Mul : r2786_2, r2786_3 -# 2786| r2786_5(unsigned long) = CopyValue : r2785_6 -# 2786| r2786_6(unsigned long) = Mul : r2786_4, r2786_5 -# 2786| r2786_7(unsigned long) = Convert : r2785_8 -# 2786| r2786_8(unsigned long) = Mul : r2786_6, r2786_7 -# 2786| m2786_9(unsigned long) = Store[w] : &:r2786_1, r2786_8 -# 2787| r2787_1(glval) = VariableAddress[v] : -# 2787| r2787_2(unsigned long) = Constant[4] : -# 2787| r2787_3(unsigned long) = CopyValue : r2785_6 -# 2787| r2787_4(unsigned long) = Mul : r2787_2, r2787_3 -# 2787| r2787_5(unsigned long) = Convert : r2785_8 -# 2787| r2787_6(unsigned long) = Mul : r2787_4, r2787_5 -# 2787| m2787_7(unsigned long) = Store[v] : &:r2787_1, r2787_6 -# 2788| r2788_1(glval) = VariableAddress[u] : +# 2786| m2786_5(unsigned long) = Store[z] : &:r2786_1, r2786_4 +# 2787| r2787_1(glval) = VariableAddress[tmp3] : +# 2787| m2787_2(int[][][]) = Uninitialized[tmp3] : &:r2787_1 +# 2787| r2787_3(glval) = VariableAddress[len1] : +# 2787| r2787_4(int) = Load[len1] : &:r2787_3, m2781_6 +# 2787| r2787_5(glval) = VariableAddress[len2] : +# 2787| r2787_6(unsigned long) = Load[len2] : &:r2787_5, m2781_8 +# 2787| r2787_7(glval) = VariableAddress[len3] : +# 2787| r2787_8(char) = Load[len3] : &:r2787_7, m2781_10 +# 2787| v2787_9(void) = NoOp : +# 2788| r2788_1(glval) = VariableAddress[w] : # 2788| r2788_2(unsigned long) = Constant[4] : -# 2788| r2788_3(unsigned long) = Convert : r2785_8 +# 2788| r2788_3(unsigned long) = Convert : r2787_4 # 2788| r2788_4(unsigned long) = Mul : r2788_2, r2788_3 -# 2788| m2788_5(unsigned long) = Store[u] : &:r2788_1, r2788_4 -# 2789| r2789_1(glval) = VariableAddress[t] : +# 2788| r2788_5(unsigned long) = CopyValue : r2787_6 +# 2788| r2788_6(unsigned long) = Mul : r2788_4, r2788_5 +# 2788| r2788_7(unsigned long) = Convert : r2787_8 +# 2788| r2788_8(unsigned long) = Mul : r2788_6, r2788_7 +# 2788| m2788_9(unsigned long) = Store[w] : &:r2788_1, r2788_8 +# 2789| r2789_1(glval) = VariableAddress[v] : # 2789| r2789_2(unsigned long) = Constant[4] : -# 2789| m2789_3(unsigned long) = Store[t] : &:r2789_1, r2789_2 -# 2790| v2790_1(void) = NoOp : -# 2779| v2779_11(void) = ReturnVoid : -# 2779| v2779_12(void) = AliasedUse : m2779_3 -# 2779| v2779_13(void) = ExitFunction : - -# 2792| void vla_sizeof_test2(int, size_t, char) -# 2792| Block 0 -# 2792| v2792_1(void) = EnterFunction : -# 2792| m2792_2(unknown) = AliasedDefinition : -# 2792| m2792_3(unknown) = InitializeNonLocal : -# 2792| m2792_4(unknown) = Chi : total:m2792_2, partial:m2792_3 -# 2792| r2792_5(glval) = VariableAddress[len1] : -# 2792| m2792_6(int) = InitializeParameter[len1] : &:r2792_5 -# 2792| r2792_7(glval) = VariableAddress[len2] : -# 2792| m2792_8(unsigned long) = InitializeParameter[len2] : &:r2792_7 -# 2792| r2792_9(glval) = VariableAddress[len3] : -# 2792| m2792_10(char) = InitializeParameter[len3] : &:r2792_9 -# 2793| r2793_1(glval) = VariableAddress[tmp1] : -# 2793| m2793_2(int[][]) = Uninitialized[tmp1] : &:r2793_1 -# 2793| r2793_3(glval) = VariableAddress[len1] : -# 2793| r2793_4(int) = Load[len1] : &:r2793_3, m2792_6 -# 2793| r2793_5(glval) = VariableAddress[len2] : -# 2793| r2793_6(unsigned long) = Load[len2] : &:r2793_5, m2792_8 -# 2793| v2793_7(void) = NoOp : -# 2794| r2794_1(glval) = VariableAddress[z] : -# 2794| r2794_2(unsigned long) = Constant[4] : -# 2794| r2794_3(unsigned long) = CopyValue : r2793_6 -# 2794| r2794_4(unsigned long) = Mul : r2794_2, r2794_3 -# 2794| m2794_5(unsigned long) = Store[z] : &:r2794_1, r2794_4 -# 2795| r2795_1(glval) = VariableAddress[tmp2] : -# 2795| m2795_2(int[][][]) = Uninitialized[tmp2] : &:r2795_1 +# 2789| r2789_3(unsigned long) = CopyValue : r2787_6 +# 2789| r2789_4(unsigned long) = Mul : r2789_2, r2789_3 +# 2789| r2789_5(unsigned long) = Convert : r2787_8 +# 2789| r2789_6(unsigned long) = Mul : r2789_4, r2789_5 +# 2789| m2789_7(unsigned long) = Store[v] : &:r2789_1, r2789_6 +# 2790| r2790_1(glval) = VariableAddress[u] : +# 2790| r2790_2(unsigned long) = Constant[4] : +# 2790| r2790_3(unsigned long) = Convert : r2787_8 +# 2790| r2790_4(unsigned long) = Mul : r2790_2, r2790_3 +# 2790| m2790_5(unsigned long) = Store[u] : &:r2790_1, r2790_4 +# 2791| r2791_1(glval) = VariableAddress[t] : +# 2791| r2791_2(unsigned long) = Constant[4] : +# 2791| m2791_3(unsigned long) = Store[t] : &:r2791_1, r2791_2 +# 2792| v2792_1(void) = NoOp : +# 2781| v2781_11(void) = ReturnVoid : +# 2781| v2781_12(void) = AliasedUse : m2781_3 +# 2781| v2781_13(void) = ExitFunction : + +# 2794| void vla_sizeof_test2(int, size_t, char) +# 2794| Block 0 +# 2794| v2794_1(void) = EnterFunction : +# 2794| m2794_2(unknown) = AliasedDefinition : +# 2794| m2794_3(unknown) = InitializeNonLocal : +# 2794| m2794_4(unknown) = Chi : total:m2794_2, partial:m2794_3 +# 2794| r2794_5(glval) = VariableAddress[len1] : +# 2794| m2794_6(int) = InitializeParameter[len1] : &:r2794_5 +# 2794| r2794_7(glval) = VariableAddress[len2] : +# 2794| m2794_8(unsigned long) = InitializeParameter[len2] : &:r2794_7 +# 2794| r2794_9(glval) = VariableAddress[len3] : +# 2794| m2794_10(char) = InitializeParameter[len3] : &:r2794_9 +# 2795| r2795_1(glval) = VariableAddress[tmp1] : +# 2795| m2795_2(int[][]) = Uninitialized[tmp1] : &:r2795_1 # 2795| r2795_3(glval) = VariableAddress[len1] : -# 2795| r2795_4(int) = Load[len1] : &:r2795_3, m2792_6 +# 2795| r2795_4(int) = Load[len1] : &:r2795_3, m2794_6 # 2795| r2795_5(glval) = VariableAddress[len2] : -# 2795| r2795_6(unsigned long) = Load[len2] : &:r2795_5, m2792_8 -# 2795| r2795_7(glval) = VariableAddress[len3] : -# 2795| r2795_8(char) = Load[len3] : &:r2795_7, m2792_10 -# 2795| v2795_9(void) = NoOp : -# 2796| r2796_1(glval) = VariableAddress[v] : +# 2795| r2795_6(unsigned long) = Load[len2] : &:r2795_5, m2794_8 +# 2795| v2795_7(void) = NoOp : +# 2796| r2796_1(glval) = VariableAddress[z] : # 2796| r2796_2(unsigned long) = Constant[4] : # 2796| r2796_3(unsigned long) = CopyValue : r2795_6 # 2796| r2796_4(unsigned long) = Mul : r2796_2, r2796_3 -# 2796| r2796_5(unsigned long) = Convert : r2795_8 -# 2796| r2796_6(unsigned long) = Mul : r2796_4, r2796_5 -# 2796| m2796_7(unsigned long) = Store[v] : &:r2796_1, r2796_6 -# 2797| r2797_1(glval) = VariableAddress[u] : -# 2797| r2797_2(unsigned long) = Constant[4] : -# 2797| r2797_3(unsigned long) = Convert : r2795_8 -# 2797| r2797_4(unsigned long) = Mul : r2797_2, r2797_3 -# 2797| m2797_5(unsigned long) = Store[u] : &:r2797_1, r2797_4 -# 2798| r2798_1(glval) = VariableAddress[t] : +# 2796| m2796_5(unsigned long) = Store[z] : &:r2796_1, r2796_4 +# 2797| r2797_1(glval) = VariableAddress[tmp2] : +# 2797| m2797_2(int[][][]) = Uninitialized[tmp2] : &:r2797_1 +# 2797| r2797_3(glval) = VariableAddress[len1] : +# 2797| r2797_4(int) = Load[len1] : &:r2797_3, m2794_6 +# 2797| r2797_5(glval) = VariableAddress[len2] : +# 2797| r2797_6(unsigned long) = Load[len2] : &:r2797_5, m2794_8 +# 2797| r2797_7(glval) = VariableAddress[len3] : +# 2797| r2797_8(char) = Load[len3] : &:r2797_7, m2794_10 +# 2797| v2797_9(void) = NoOp : +# 2798| r2798_1(glval) = VariableAddress[v] : # 2798| r2798_2(unsigned long) = Constant[4] : -# 2798| m2798_3(unsigned long) = Store[t] : &:r2798_1, r2798_2 -# 2799| v2799_1(void) = NoOp : -# 2792| v2792_11(void) = ReturnVoid : -# 2792| v2792_12(void) = AliasedUse : m2792_3 -# 2792| v2792_13(void) = ExitFunction : - -# 2801| size_t vla_sizeof_test3(int, size_t, char, bool) -# 2801| Block 0 -# 2801| v2801_1(void) = EnterFunction : -# 2801| m2801_2(unknown) = AliasedDefinition : -# 2801| m2801_3(unknown) = InitializeNonLocal : -# 2801| m2801_4(unknown) = Chi : total:m2801_2, partial:m2801_3 -# 2801| r2801_5(glval) = VariableAddress[len1] : -# 2801| m2801_6(int) = InitializeParameter[len1] : &:r2801_5 -# 2801| r2801_7(glval) = VariableAddress[len2] : -# 2801| m2801_8(unsigned long) = InitializeParameter[len2] : &:r2801_7 -# 2801| r2801_9(glval) = VariableAddress[len3] : -# 2801| m2801_10(char) = InitializeParameter[len3] : &:r2801_9 -# 2801| r2801_11(glval) = VariableAddress[b] : -# 2801| m2801_12(bool) = InitializeParameter[b] : &:r2801_11 -# 2802| r2802_1(glval) = VariableAddress[len1] : -# 2802| r2802_2(int) = Load[len1] : &:r2802_1, m2801_6 -# 2802| r2802_3(glval) = VariableAddress[len2] : -# 2802| r2802_4(unsigned long) = Load[len2] : &:r2802_3, m2801_8 -# 2802| v2802_5(void) = NoOp : -# 2803| v2803_1(void) = NoOp : -# 2804| r2804_1(glval) = VariableAddress[len3] : -# 2804| r2804_2(char) = Load[len3] : &:r2804_1, m2801_10 -# 2804| v2804_3(void) = NoOp : -# 2806| r2806_1(glval) = VariableAddress[b] : -# 2806| r2806_2(bool) = Load[b] : &:r2806_1, m2801_12 -# 2806| v2806_3(void) = ConditionalBranch : r2806_2 +# 2798| r2798_3(unsigned long) = CopyValue : r2797_6 +# 2798| r2798_4(unsigned long) = Mul : r2798_2, r2798_3 +# 2798| r2798_5(unsigned long) = Convert : r2797_8 +# 2798| r2798_6(unsigned long) = Mul : r2798_4, r2798_5 +# 2798| m2798_7(unsigned long) = Store[v] : &:r2798_1, r2798_6 +# 2799| r2799_1(glval) = VariableAddress[u] : +# 2799| r2799_2(unsigned long) = Constant[4] : +# 2799| r2799_3(unsigned long) = Convert : r2797_8 +# 2799| r2799_4(unsigned long) = Mul : r2799_2, r2799_3 +# 2799| m2799_5(unsigned long) = Store[u] : &:r2799_1, r2799_4 +# 2800| r2800_1(glval) = VariableAddress[t] : +# 2800| r2800_2(unsigned long) = Constant[4] : +# 2800| m2800_3(unsigned long) = Store[t] : &:r2800_1, r2800_2 +# 2801| v2801_1(void) = NoOp : +# 2794| v2794_11(void) = ReturnVoid : +# 2794| v2794_12(void) = AliasedUse : m2794_3 +# 2794| v2794_13(void) = ExitFunction : + +# 2803| size_t vla_sizeof_test3(int, size_t, char, bool) +# 2803| Block 0 +# 2803| v2803_1(void) = EnterFunction : +# 2803| m2803_2(unknown) = AliasedDefinition : +# 2803| m2803_3(unknown) = InitializeNonLocal : +# 2803| m2803_4(unknown) = Chi : total:m2803_2, partial:m2803_3 +# 2803| r2803_5(glval) = VariableAddress[len1] : +# 2803| m2803_6(int) = InitializeParameter[len1] : &:r2803_5 +# 2803| r2803_7(glval) = VariableAddress[len2] : +# 2803| m2803_8(unsigned long) = InitializeParameter[len2] : &:r2803_7 +# 2803| r2803_9(glval) = VariableAddress[len3] : +# 2803| m2803_10(char) = InitializeParameter[len3] : &:r2803_9 +# 2803| r2803_11(glval) = VariableAddress[b] : +# 2803| m2803_12(bool) = InitializeParameter[b] : &:r2803_11 +# 2804| r2804_1(glval) = VariableAddress[len1] : +# 2804| r2804_2(int) = Load[len1] : &:r2804_1, m2803_6 +# 2804| r2804_3(glval) = VariableAddress[len2] : +# 2804| r2804_4(unsigned long) = Load[len2] : &:r2804_3, m2803_8 +# 2804| v2804_5(void) = NoOp : +# 2805| v2805_1(void) = NoOp : +# 2806| r2806_1(glval) = VariableAddress[len3] : +# 2806| r2806_2(char) = Load[len3] : &:r2806_1, m2803_10 +# 2806| v2806_3(void) = NoOp : +# 2808| r2808_1(glval) = VariableAddress[b] : +# 2808| r2808_2(bool) = Load[b] : &:r2808_1, m2803_12 +# 2808| v2808_3(void) = ConditionalBranch : r2808_2 #-----| False -> Block 3 #-----| True -> Block 2 -# 2801| Block 1 -# 2801| m2801_13(unsigned long) = Phi : from 2:m2808_7, from 3:m2811_3 -# 2801| r2801_14(glval) = VariableAddress[#return] : -# 2801| v2801_15(void) = ReturnValue : &:r2801_14, m2801_13 -# 2801| v2801_16(void) = AliasedUse : m2801_3 -# 2801| v2801_17(void) = ExitFunction : - -# 2807| Block 2 -# 2807| r2807_1(glval) = VariableAddress[tmp] : -# 2807| m2807_2(long[][][]) = Uninitialized[tmp] : &:r2807_1 -# 2807| v2807_3(void) = NoOp : -# 2808| r2808_1(glval) = VariableAddress[#return] : -# 2808| r2808_2(unsigned long) = Constant[8] : -# 2808| r2808_3(unsigned long) = Convert : r2802_2 -# 2808| r2808_4(unsigned long) = Mul : r2808_2, r2808_3 -# 2808| r2808_5(unsigned long) = CopyValue : r2802_4 -# 2808| r2808_6(unsigned long) = Mul : r2808_4, r2808_5 -# 2808| m2808_7(unsigned long) = Store[#return] : &:r2808_1, r2808_6 +# 2803| Block 1 +# 2803| m2803_13(unsigned long) = Phi : from 2:m2810_7, from 3:m2813_3 +# 2803| r2803_14(glval) = VariableAddress[#return] : +# 2803| v2803_15(void) = ReturnValue : &:r2803_14, m2803_13 +# 2803| v2803_16(void) = AliasedUse : m2803_3 +# 2803| v2803_17(void) = ExitFunction : + +# 2809| Block 2 +# 2809| r2809_1(glval) = VariableAddress[tmp] : +# 2809| m2809_2(long[][][]) = Uninitialized[tmp] : &:r2809_1 +# 2809| v2809_3(void) = NoOp : +# 2810| r2810_1(glval) = VariableAddress[#return] : +# 2810| r2810_2(unsigned long) = Constant[8] : +# 2810| r2810_3(unsigned long) = Convert : r2804_2 +# 2810| r2810_4(unsigned long) = Mul : r2810_2, r2810_3 +# 2810| r2810_5(unsigned long) = CopyValue : r2804_4 +# 2810| r2810_6(unsigned long) = Mul : r2810_4, r2810_5 +# 2810| m2810_7(unsigned long) = Store[#return] : &:r2810_1, r2810_6 #-----| Goto -> Block 1 -# 2811| Block 3 -# 2811| r2811_1(glval) = VariableAddress[#return] : -# 2811| r2811_2(unsigned long) = Constant[0] : -# 2811| m2811_3(unsigned long) = Store[#return] : &:r2811_1, r2811_2 +# 2813| Block 3 +# 2813| r2813_1(glval) = VariableAddress[#return] : +# 2813| r2813_2(unsigned long) = Constant[0] : +# 2813| m2813_3(unsigned long) = Store[#return] : &:r2813_1, r2813_2 #-----| Goto -> Block 1 -# 2814| void vla_sizeof_test4(int, size_t) -# 2814| Block 0 -# 2814| v2814_1(void) = EnterFunction : -# 2814| m2814_2(unknown) = AliasedDefinition : -# 2814| m2814_3(unknown) = InitializeNonLocal : -# 2814| m2814_4(unknown) = Chi : total:m2814_2, partial:m2814_3 -# 2814| r2814_5(glval) = VariableAddress[len1] : -# 2814| m2814_6(int) = InitializeParameter[len1] : &:r2814_5 -# 2814| r2814_7(glval) = VariableAddress[len2] : -# 2814| m2814_8(unsigned long) = InitializeParameter[len2] : &:r2814_7 -# 2815| r2815_1(glval) = VariableAddress[tmp1] : -# 2815| m2815_2(int[][]) = Uninitialized[tmp1] : &:r2815_1 -# 2815| r2815_3(glval) = VariableAddress[len1] : -# 2815| r2815_4(int) = Load[len1] : &:r2815_3, m2814_6 -# 2815| r2815_5(glval) = VariableAddress[len2] : -# 2815| r2815_6(unsigned long) = Load[len2] : &:r2815_5, m2814_8 -# 2815| v2815_7(void) = NoOp : -# 2816| r2816_1(glval) = VariableAddress[z] : -# 2816| r2816_2(unsigned long) = Constant[4] : -# 2816| r2816_3(unsigned long) = CopyValue : r2815_6 -# 2816| r2816_4(unsigned long) = Mul : r2816_2, r2816_3 -# 2816| m2816_5(unsigned long) = Store[z] : &:r2816_1, r2816_4 -# 2817| v2817_1(void) = NoOp : -# 2814| v2814_9(void) = ReturnVoid : -# 2814| v2814_10(void) = AliasedUse : m2814_3 -# 2814| v2814_11(void) = ExitFunction : - -# 2819| void vla_sizeof_test5(int, size_t) -# 2819| Block 0 -# 2819| v2819_1(void) = EnterFunction : -# 2819| m2819_2(unknown) = AliasedDefinition : -# 2819| m2819_3(unknown) = InitializeNonLocal : -# 2819| m2819_4(unknown) = Chi : total:m2819_2, partial:m2819_3 -# 2819| r2819_5(glval) = VariableAddress[len1] : -# 2819| m2819_6(int) = InitializeParameter[len1] : &:r2819_5 -# 2819| r2819_7(glval) = VariableAddress[len2] : -# 2819| m2819_8(unsigned long) = InitializeParameter[len2] : &:r2819_7 -# 2820| r2820_1(glval) = VariableAddress[tmp1] : -# 2820| m2820_2(int[][]) = Uninitialized[tmp1] : &:r2820_1 -# 2820| r2820_3(glval) = VariableAddress[len1] : -# 2820| r2820_4(int) = Load[len1] : &:r2820_3, m2819_6 -# 2820| r2820_5(glval) = VariableAddress[len2] : -# 2820| r2820_6(unsigned long) = Load[len2] : &:r2820_5, m2819_8 -# 2820| v2820_7(void) = NoOp : -# 2821| r2821_1(glval) = VariableAddress[z] : -# 2821| r2821_2(unsigned long) = Constant[4] : -# 2821| r2821_3(unsigned long) = CopyValue : r2820_6 -# 2821| r2821_4(unsigned long) = Mul : r2821_2, r2821_3 -# 2821| m2821_5(unsigned long) = Store[z] : &:r2821_1, r2821_4 -# 2822| v2822_1(void) = NoOp : -# 2819| v2819_9(void) = ReturnVoid : -# 2819| v2819_10(void) = AliasedUse : m2819_3 -# 2819| v2819_11(void) = ExitFunction : +# 2816| void vla_sizeof_test4(int, size_t) +# 2816| Block 0 +# 2816| v2816_1(void) = EnterFunction : +# 2816| m2816_2(unknown) = AliasedDefinition : +# 2816| m2816_3(unknown) = InitializeNonLocal : +# 2816| m2816_4(unknown) = Chi : total:m2816_2, partial:m2816_3 +# 2816| r2816_5(glval) = VariableAddress[len1] : +# 2816| m2816_6(int) = InitializeParameter[len1] : &:r2816_5 +# 2816| r2816_7(glval) = VariableAddress[len2] : +# 2816| m2816_8(unsigned long) = InitializeParameter[len2] : &:r2816_7 +# 2817| r2817_1(glval) = VariableAddress[tmp1] : +# 2817| m2817_2(int[][]) = Uninitialized[tmp1] : &:r2817_1 +# 2817| r2817_3(glval) = VariableAddress[len1] : +# 2817| r2817_4(int) = Load[len1] : &:r2817_3, m2816_6 +# 2817| r2817_5(glval) = VariableAddress[len2] : +# 2817| r2817_6(unsigned long) = Load[len2] : &:r2817_5, m2816_8 +# 2817| v2817_7(void) = NoOp : +# 2818| r2818_1(glval) = VariableAddress[z] : +# 2818| r2818_2(unsigned long) = Constant[4] : +# 2818| r2818_3(unsigned long) = CopyValue : r2817_6 +# 2818| r2818_4(unsigned long) = Mul : r2818_2, r2818_3 +# 2818| m2818_5(unsigned long) = Store[z] : &:r2818_1, r2818_4 +# 2819| v2819_1(void) = NoOp : +# 2816| v2816_9(void) = ReturnVoid : +# 2816| v2816_10(void) = AliasedUse : m2816_3 +# 2816| v2816_11(void) = ExitFunction : + +# 2821| void vla_sizeof_test5(int, size_t) +# 2821| Block 0 +# 2821| v2821_1(void) = EnterFunction : +# 2821| m2821_2(unknown) = AliasedDefinition : +# 2821| m2821_3(unknown) = InitializeNonLocal : +# 2821| m2821_4(unknown) = Chi : total:m2821_2, partial:m2821_3 +# 2821| r2821_5(glval) = VariableAddress[len1] : +# 2821| m2821_6(int) = InitializeParameter[len1] : &:r2821_5 +# 2821| r2821_7(glval) = VariableAddress[len2] : +# 2821| m2821_8(unsigned long) = InitializeParameter[len2] : &:r2821_7 +# 2822| r2822_1(glval) = VariableAddress[tmp1] : +# 2822| m2822_2(int[][]) = Uninitialized[tmp1] : &:r2822_1 +# 2822| r2822_3(glval) = VariableAddress[len1] : +# 2822| r2822_4(int) = Load[len1] : &:r2822_3, m2821_6 +# 2822| r2822_5(glval) = VariableAddress[len2] : +# 2822| r2822_6(unsigned long) = Load[len2] : &:r2822_5, m2821_8 +# 2822| v2822_7(void) = NoOp : +# 2823| r2823_1(glval) = VariableAddress[z] : +# 2823| r2823_2(unsigned long) = Constant[4] : +# 2823| r2823_3(unsigned long) = CopyValue : r2822_6 +# 2823| r2823_4(unsigned long) = Mul : r2823_2, r2823_3 +# 2823| m2823_5(unsigned long) = Store[z] : &:r2823_1, r2823_4 +# 2824| v2824_1(void) = NoOp : +# 2821| v2821_9(void) = ReturnVoid : +# 2821| v2821_10(void) = AliasedUse : m2821_3 +# 2821| v2821_11(void) = ExitFunction : ir23.cpp: # 1| bool consteval_1() diff --git a/cpp/ql/test/library-tests/ir/ir/aliased_ssa_consistency.expected b/cpp/ql/test/library-tests/ir/ir/aliased_ssa_consistency.expected index b83d9ea47e38..f1b75895c3e7 100644 --- a/cpp/ql/test/library-tests/ir/ir/aliased_ssa_consistency.expected +++ b/cpp/ql/test/library-tests/ir/ir/aliased_ssa_consistency.expected @@ -27,7 +27,7 @@ invalidOverlap nonUniqueEnclosingIRFunction fieldAddressOnNonPointer thisArgumentIsNonPointer -| ir.cpp:2546:34:2546:34 | Call: call to operator bool | Call instruction 'Call: call to operator bool' has a `this` argument operand that is not an address, in function '$@'. | ir.cpp:2545:6:2545:23 | void this_inconsistency(bool) | void this_inconsistency(bool) | +| ir.cpp:2548:34:2548:34 | Call: call to operator bool | Call instruction 'Call: call to operator bool' has a `this` argument operand that is not an address, in function '$@'. | ir.cpp:2547:6:2547:23 | void this_inconsistency(bool) | void this_inconsistency(bool) | nonUniqueIRVariable nonBooleanOperand missingCppType diff --git a/cpp/ql/test/library-tests/ir/ir/aliased_ssa_consistency_unsound.expected b/cpp/ql/test/library-tests/ir/ir/aliased_ssa_consistency_unsound.expected index b83d9ea47e38..f1b75895c3e7 100644 --- a/cpp/ql/test/library-tests/ir/ir/aliased_ssa_consistency_unsound.expected +++ b/cpp/ql/test/library-tests/ir/ir/aliased_ssa_consistency_unsound.expected @@ -27,7 +27,7 @@ invalidOverlap nonUniqueEnclosingIRFunction fieldAddressOnNonPointer thisArgumentIsNonPointer -| ir.cpp:2546:34:2546:34 | Call: call to operator bool | Call instruction 'Call: call to operator bool' has a `this` argument operand that is not an address, in function '$@'. | ir.cpp:2545:6:2545:23 | void this_inconsistency(bool) | void this_inconsistency(bool) | +| ir.cpp:2548:34:2548:34 | Call: call to operator bool | Call instruction 'Call: call to operator bool' has a `this` argument operand that is not an address, in function '$@'. | ir.cpp:2547:6:2547:23 | void this_inconsistency(bool) | void this_inconsistency(bool) | nonUniqueIRVariable nonBooleanOperand missingCppType diff --git a/cpp/ql/test/library-tests/ir/ir/ir.cpp b/cpp/ql/test/library-tests/ir/ir/ir.cpp index 3dce0a0e1ea9..99876f7e9a47 100644 --- a/cpp/ql/test/library-tests/ir/ir/ir.cpp +++ b/cpp/ql/test/library-tests/ir/ir/ir.cpp @@ -1214,6 +1214,8 @@ void VectorTypes(int i) { vi4[i] = x; vector(4, int) vi4_shuffle = __builtin_shufflevector(vi4, vi4, 3+0, 2, 1, 0); vi4 = vi4 + vi4_shuffle; + vi4 = vi4 && vi4_shuffle; + vi4 = vi4 || vi4_shuffle; } void *memcpy(void *dst, void *src, int size); diff --git a/cpp/ql/test/library-tests/ir/ir/raw_consistency.expected b/cpp/ql/test/library-tests/ir/ir/raw_consistency.expected index e30106d35204..de43ad9631aa 100644 --- a/cpp/ql/test/library-tests/ir/ir/raw_consistency.expected +++ b/cpp/ql/test/library-tests/ir/ir/raw_consistency.expected @@ -20,7 +20,7 @@ multipleIRTypes lostReachability backEdgeCountMismatch useNotDominatedByDefinition -| ir.cpp:1535:8:1535:8 | Unary | Operand 'Unary' is not dominated by its definition in function '$@'. | ir.cpp:1535:8:1535:8 | void StructuredBindingDataMemberStruct::StructuredBindingDataMemberStruct() | void StructuredBindingDataMemberStruct::StructuredBindingDataMemberStruct() | +| ir.cpp:1537:8:1537:8 | Unary | Operand 'Unary' is not dominated by its definition in function '$@'. | ir.cpp:1537:8:1537:8 | void StructuredBindingDataMemberStruct::StructuredBindingDataMemberStruct() | void StructuredBindingDataMemberStruct::StructuredBindingDataMemberStruct() | switchInstructionWithoutDefaultEdge notMarkedAsConflated wronglyMarkedAsConflated @@ -28,7 +28,7 @@ invalidOverlap nonUniqueEnclosingIRFunction fieldAddressOnNonPointer thisArgumentIsNonPointer -| ir.cpp:2546:34:2546:34 | Call: call to operator bool | Call instruction 'Call: call to operator bool' has a `this` argument operand that is not an address, in function '$@'. | ir.cpp:2545:6:2545:23 | void this_inconsistency(bool) | void this_inconsistency(bool) | +| ir.cpp:2548:34:2548:34 | Call: call to operator bool | Call instruction 'Call: call to operator bool' has a `this` argument operand that is not an address, in function '$@'. | ir.cpp:2547:6:2547:23 | void this_inconsistency(bool) | void this_inconsistency(bool) | nonUniqueIRVariable nonBooleanOperand missingCppType diff --git a/cpp/ql/test/library-tests/ir/ir/raw_ir.expected b/cpp/ql/test/library-tests/ir/ir/raw_ir.expected index e0e921537807..94e18abb9dfa 100644 --- a/cpp/ql/test/library-tests/ir/ir/raw_ir.expected +++ b/cpp/ql/test/library-tests/ir/ir/raw_ir.expected @@ -9692,1024 +9692,1052 @@ ir.cpp: # 1216| r1216_5(__attribute((vector_size(16UL))) int) = Add : r1216_2, r1216_4 # 1216| r1216_6(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4] : # 1216| mu1216_7(__attribute((vector_size(16UL))) int) = Store[vi4] : &:r1216_6, r1216_5 -# 1217| v1217_1(void) = NoOp : -# 1211| v1211_6(void) = ReturnVoid : -# 1211| v1211_7(void) = AliasedUse : ~m? -# 1211| v1211_8(void) = ExitFunction : - -# 1221| int ModeledCallTarget(int) -# 1221| Block 0 -# 1221| v1221_1(void) = EnterFunction : -# 1221| mu1221_2(unknown) = AliasedDefinition : -# 1221| mu1221_3(unknown) = InitializeNonLocal : -# 1221| r1221_4(glval) = VariableAddress[x] : -# 1221| mu1221_5(int) = InitializeParameter[x] : &:r1221_4 -# 1222| r1222_1(glval) = VariableAddress[y] : -# 1222| mu1222_2(int) = Uninitialized[y] : &:r1222_1 -# 1223| r1223_1(glval) = FunctionAddress[memcpy] : -# 1223| r1223_2(glval) = VariableAddress[y] : -# 1223| r1223_3(int *) = CopyValue : r1223_2 -# 1223| r1223_4(void *) = Convert : r1223_3 -# 1223| r1223_5(glval) = VariableAddress[x] : -# 1223| r1223_6(int *) = CopyValue : r1223_5 -# 1223| r1223_7(void *) = Convert : r1223_6 -# 1223| r1223_8(int) = Constant[4] : -# 1223| r1223_9(void *) = Call[memcpy] : func:r1223_1, 0:r1223_4, 1:r1223_7, 2:r1223_8 -# 1223| v1223_10(void) = ^SizedBufferReadSideEffect[1] : &:r1223_7, r1223_8, ~m? -# 1223| mu1223_11(unknown) = ^SizedBufferMustWriteSideEffect[0] : &:r1223_4, r1223_8 -# 1224| r1224_1(glval) = VariableAddress[#return] : -# 1224| r1224_2(glval) = VariableAddress[y] : -# 1224| r1224_3(int) = Load[y] : &:r1224_2, ~m? -# 1224| mu1224_4(int) = Store[#return] : &:r1224_1, r1224_3 -# 1221| r1221_6(glval) = VariableAddress[#return] : -# 1221| v1221_7(void) = ReturnValue : &:r1221_6, ~m? -# 1221| v1221_8(void) = AliasedUse : ~m? -# 1221| v1221_9(void) = ExitFunction : - -# 1227| String ReturnObjectImpl() -# 1227| Block 0 -# 1227| v1227_1(void) = EnterFunction : -# 1227| mu1227_2(unknown) = AliasedDefinition : -# 1227| mu1227_3(unknown) = InitializeNonLocal : -# 1228| r1228_1(glval) = VariableAddress[#return] : -# 1228| mu1228_2(String) = Uninitialized[#return] : &:r1228_1 -# 1228| r1228_3(glval) = FunctionAddress[String] : -# 1228| r1228_4(glval) = StringConstant["foo"] : -# 1228| r1228_5(char *) = Convert : r1228_4 -# 1228| v1228_6(void) = Call[String] : func:r1228_3, this:r1228_1, 0:r1228_5 -# 1228| mu1228_7(unknown) = ^CallSideEffect : ~m? -# 1228| v1228_8(void) = ^BufferReadSideEffect[0] : &:r1228_5, ~m? -# 1228| mu1228_9(String) = ^IndirectMayWriteSideEffect[-1] : &:r1228_1 -# 1227| r1227_4(glval) = VariableAddress[#return] : -# 1227| v1227_5(void) = ReturnValue : &:r1227_4, ~m? -# 1227| v1227_6(void) = AliasedUse : ~m? -# 1227| v1227_7(void) = ExitFunction : - -# 1231| void switch1Case(int) -# 1231| Block 0 -# 1231| v1231_1(void) = EnterFunction : -# 1231| mu1231_2(unknown) = AliasedDefinition : -# 1231| mu1231_3(unknown) = InitializeNonLocal : -# 1231| r1231_4(glval) = VariableAddress[x] : -# 1231| mu1231_5(int) = InitializeParameter[x] : &:r1231_4 -# 1232| r1232_1(glval) = VariableAddress[y] : -# 1232| r1232_2(int) = Constant[0] : -# 1232| mu1232_3(int) = Store[y] : &:r1232_1, r1232_2 -# 1233| r1233_1(glval) = VariableAddress[x] : -# 1233| r1233_2(int) = Load[x] : &:r1233_1, ~m? -# 1233| v1233_3(void) = Switch : r1233_2 +# 1217| r1217_1(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4] : +# 1217| r1217_2(__attribute((vector_size(16UL))) int) = Load[vi4] : &:r1217_1, ~m? +# 1217| r1217_3(__attribute((vector_size(16UL))) int) = Constant[0] : +# 1217| r1217_4(bool) = CompareNE : r1217_2, r1217_3 +# 1217| v1217_5(void) = ConditionalBranch : r1217_4 +#-----| False -> Block 1 +#-----| True -> Block 4 + +# 1217| Block 1 +# 1217| r1217_6(glval<__attribute((vector_size(16))) int>) = VariableAddress[#temp1217:9] : +# 1217| r1217_7(__attribute((vector_size(16))) int) = Constant[0] : +# 1217| mu1217_8(__attribute((vector_size(16))) int) = Store[#temp1217:9] : &:r1217_6, r1217_7 +#-----| Goto -> Block 2 + +# 1217| Block 2 +# 1217| r1217_9(glval<__attribute((vector_size(16))) int>) = VariableAddress[#temp1217:9] : +# 1217| r1217_10(__attribute((vector_size(16))) int) = Load[#temp1217:9] : &:r1217_9, ~m? +# 1217| r1217_11(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4] : +# 1217| mu1217_12(__attribute((vector_size(16UL))) int) = Store[vi4] : &:r1217_11, r1217_10 +# 1218| r1218_1(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4] : +# 1218| r1218_2(__attribute((vector_size(16UL))) int) = Load[vi4] : &:r1218_1, ~m? +# 1218| r1218_3(__attribute((vector_size(16UL))) int) = Constant[0] : +# 1218| r1218_4(bool) = CompareNE : r1218_2, r1218_3 +# 1218| v1218_5(void) = ConditionalBranch : r1218_4 +#-----| False -> Block 8 +#-----| True -> Block 7 + +# 1217| Block 3 +# 1217| r1217_13(glval<__attribute((vector_size(16))) int>) = VariableAddress[#temp1217:9] : +# 1217| r1217_14(__attribute((vector_size(16))) int) = Constant[1] : +# 1217| mu1217_15(__attribute((vector_size(16))) int) = Store[#temp1217:9] : &:r1217_13, r1217_14 +#-----| Goto -> Block 2 + +# 1217| Block 4 +# 1217| r1217_16(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4_shuffle] : +# 1217| r1217_17(__attribute((vector_size(16UL))) int) = Load[vi4_shuffle] : &:r1217_16, ~m? +# 1217| r1217_18(__attribute((vector_size(16UL))) int) = Constant[0] : +# 1217| r1217_19(bool) = CompareNE : r1217_17, r1217_18 +# 1217| v1217_20(void) = ConditionalBranch : r1217_19 +#-----| False -> Block 1 +#-----| True -> Block 3 + +# 1218| Block 5 +# 1218| r1218_6(glval<__attribute((vector_size(16))) int>) = VariableAddress[#temp1218:9] : +# 1218| r1218_7(__attribute((vector_size(16))) int) = Constant[0] : +# 1218| mu1218_8(__attribute((vector_size(16))) int) = Store[#temp1218:9] : &:r1218_6, r1218_7 +#-----| Goto -> Block 6 + +# 1218| Block 6 +# 1218| r1218_9(glval<__attribute((vector_size(16))) int>) = VariableAddress[#temp1218:9] : +# 1218| r1218_10(__attribute((vector_size(16))) int) = Load[#temp1218:9] : &:r1218_9, ~m? +# 1218| r1218_11(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4] : +# 1218| mu1218_12(__attribute((vector_size(16UL))) int) = Store[vi4] : &:r1218_11, r1218_10 +# 1219| v1219_1(void) = NoOp : +# 1211| v1211_6(void) = ReturnVoid : +# 1211| v1211_7(void) = AliasedUse : ~m? +# 1211| v1211_8(void) = ExitFunction : + +# 1218| Block 7 +# 1218| r1218_13(glval<__attribute((vector_size(16))) int>) = VariableAddress[#temp1218:9] : +# 1218| r1218_14(__attribute((vector_size(16))) int) = Constant[1] : +# 1218| mu1218_15(__attribute((vector_size(16))) int) = Store[#temp1218:9] : &:r1218_13, r1218_14 +#-----| Goto -> Block 6 + +# 1218| Block 8 +# 1218| r1218_16(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4_shuffle] : +# 1218| r1218_17(__attribute((vector_size(16UL))) int) = Load[vi4_shuffle] : &:r1218_16, ~m? +# 1218| r1218_18(__attribute((vector_size(16UL))) int) = Constant[0] : +# 1218| r1218_19(bool) = CompareNE : r1218_17, r1218_18 +# 1218| v1218_20(void) = ConditionalBranch : r1218_19 +#-----| False -> Block 5 +#-----| True -> Block 7 + +# 1223| int ModeledCallTarget(int) +# 1223| Block 0 +# 1223| v1223_1(void) = EnterFunction : +# 1223| mu1223_2(unknown) = AliasedDefinition : +# 1223| mu1223_3(unknown) = InitializeNonLocal : +# 1223| r1223_4(glval) = VariableAddress[x] : +# 1223| mu1223_5(int) = InitializeParameter[x] : &:r1223_4 +# 1224| r1224_1(glval) = VariableAddress[y] : +# 1224| mu1224_2(int) = Uninitialized[y] : &:r1224_1 +# 1225| r1225_1(glval) = FunctionAddress[memcpy] : +# 1225| r1225_2(glval) = VariableAddress[y] : +# 1225| r1225_3(int *) = CopyValue : r1225_2 +# 1225| r1225_4(void *) = Convert : r1225_3 +# 1225| r1225_5(glval) = VariableAddress[x] : +# 1225| r1225_6(int *) = CopyValue : r1225_5 +# 1225| r1225_7(void *) = Convert : r1225_6 +# 1225| r1225_8(int) = Constant[4] : +# 1225| r1225_9(void *) = Call[memcpy] : func:r1225_1, 0:r1225_4, 1:r1225_7, 2:r1225_8 +# 1225| v1225_10(void) = ^SizedBufferReadSideEffect[1] : &:r1225_7, r1225_8, ~m? +# 1225| mu1225_11(unknown) = ^SizedBufferMustWriteSideEffect[0] : &:r1225_4, r1225_8 +# 1226| r1226_1(glval) = VariableAddress[#return] : +# 1226| r1226_2(glval) = VariableAddress[y] : +# 1226| r1226_3(int) = Load[y] : &:r1226_2, ~m? +# 1226| mu1226_4(int) = Store[#return] : &:r1226_1, r1226_3 +# 1223| r1223_6(glval) = VariableAddress[#return] : +# 1223| v1223_7(void) = ReturnValue : &:r1223_6, ~m? +# 1223| v1223_8(void) = AliasedUse : ~m? +# 1223| v1223_9(void) = ExitFunction : + +# 1229| String ReturnObjectImpl() +# 1229| Block 0 +# 1229| v1229_1(void) = EnterFunction : +# 1229| mu1229_2(unknown) = AliasedDefinition : +# 1229| mu1229_3(unknown) = InitializeNonLocal : +# 1230| r1230_1(glval) = VariableAddress[#return] : +# 1230| mu1230_2(String) = Uninitialized[#return] : &:r1230_1 +# 1230| r1230_3(glval) = FunctionAddress[String] : +# 1230| r1230_4(glval) = StringConstant["foo"] : +# 1230| r1230_5(char *) = Convert : r1230_4 +# 1230| v1230_6(void) = Call[String] : func:r1230_3, this:r1230_1, 0:r1230_5 +# 1230| mu1230_7(unknown) = ^CallSideEffect : ~m? +# 1230| v1230_8(void) = ^BufferReadSideEffect[0] : &:r1230_5, ~m? +# 1230| mu1230_9(String) = ^IndirectMayWriteSideEffect[-1] : &:r1230_1 +# 1229| r1229_4(glval) = VariableAddress[#return] : +# 1229| v1229_5(void) = ReturnValue : &:r1229_4, ~m? +# 1229| v1229_6(void) = AliasedUse : ~m? +# 1229| v1229_7(void) = ExitFunction : + +# 1233| void switch1Case(int) +# 1233| Block 0 +# 1233| v1233_1(void) = EnterFunction : +# 1233| mu1233_2(unknown) = AliasedDefinition : +# 1233| mu1233_3(unknown) = InitializeNonLocal : +# 1233| r1233_4(glval) = VariableAddress[x] : +# 1233| mu1233_5(int) = InitializeParameter[x] : &:r1233_4 +# 1234| r1234_1(glval) = VariableAddress[y] : +# 1234| r1234_2(int) = Constant[0] : +# 1234| mu1234_3(int) = Store[y] : &:r1234_1, r1234_2 +# 1235| r1235_1(glval) = VariableAddress[x] : +# 1235| r1235_2(int) = Load[x] : &:r1235_1, ~m? +# 1235| v1235_3(void) = Switch : r1235_2 #-----| Case[1] -> Block 1 #-----| Default -> Block 2 -# 1234| Block 1 -# 1234| v1234_1(void) = NoOp : -# 1235| r1235_1(int) = Constant[2] : -# 1235| r1235_2(glval) = VariableAddress[y] : -# 1235| mu1235_3(int) = Store[y] : &:r1235_2, r1235_1 +# 1236| Block 1 +# 1236| v1236_1(void) = NoOp : +# 1237| r1237_1(int) = Constant[2] : +# 1237| r1237_2(glval) = VariableAddress[y] : +# 1237| mu1237_3(int) = Store[y] : &:r1237_2, r1237_1 #-----| Goto -> Block 2 -# 1237| Block 2 -# 1237| r1237_1(glval) = VariableAddress[z] : -# 1237| r1237_2(glval) = VariableAddress[y] : -# 1237| r1237_3(int) = Load[y] : &:r1237_2, ~m? -# 1237| mu1237_4(int) = Store[z] : &:r1237_1, r1237_3 -# 1238| v1238_1(void) = NoOp : -# 1231| v1231_6(void) = ReturnVoid : -# 1231| v1231_7(void) = AliasedUse : ~m? -# 1231| v1231_8(void) = ExitFunction : - -# 1240| void switch2Case_fallthrough(int) -# 1240| Block 0 -# 1240| v1240_1(void) = EnterFunction : -# 1240| mu1240_2(unknown) = AliasedDefinition : -# 1240| mu1240_3(unknown) = InitializeNonLocal : -# 1240| r1240_4(glval) = VariableAddress[x] : -# 1240| mu1240_5(int) = InitializeParameter[x] : &:r1240_4 -# 1241| r1241_1(glval) = VariableAddress[y] : -# 1241| r1241_2(int) = Constant[0] : -# 1241| mu1241_3(int) = Store[y] : &:r1241_1, r1241_2 -# 1242| r1242_1(glval) = VariableAddress[x] : -# 1242| r1242_2(int) = Load[x] : &:r1242_1, ~m? -# 1242| v1242_3(void) = Switch : r1242_2 +# 1239| Block 2 +# 1239| r1239_1(glval) = VariableAddress[z] : +# 1239| r1239_2(glval) = VariableAddress[y] : +# 1239| r1239_3(int) = Load[y] : &:r1239_2, ~m? +# 1239| mu1239_4(int) = Store[z] : &:r1239_1, r1239_3 +# 1240| v1240_1(void) = NoOp : +# 1233| v1233_6(void) = ReturnVoid : +# 1233| v1233_7(void) = AliasedUse : ~m? +# 1233| v1233_8(void) = ExitFunction : + +# 1242| void switch2Case_fallthrough(int) +# 1242| Block 0 +# 1242| v1242_1(void) = EnterFunction : +# 1242| mu1242_2(unknown) = AliasedDefinition : +# 1242| mu1242_3(unknown) = InitializeNonLocal : +# 1242| r1242_4(glval) = VariableAddress[x] : +# 1242| mu1242_5(int) = InitializeParameter[x] : &:r1242_4 +# 1243| r1243_1(glval) = VariableAddress[y] : +# 1243| r1243_2(int) = Constant[0] : +# 1243| mu1243_3(int) = Store[y] : &:r1243_1, r1243_2 +# 1244| r1244_1(glval) = VariableAddress[x] : +# 1244| r1244_2(int) = Load[x] : &:r1244_1, ~m? +# 1244| v1244_3(void) = Switch : r1244_2 #-----| Case[1] -> Block 1 #-----| Case[2] -> Block 2 #-----| Default -> Block 3 -# 1243| Block 1 -# 1243| v1243_1(void) = NoOp : -# 1244| r1244_1(int) = Constant[2] : -# 1244| r1244_2(glval) = VariableAddress[y] : -# 1244| mu1244_3(int) = Store[y] : &:r1244_2, r1244_1 -#-----| Goto -> Block 2 - -# 1245| Block 2 +# 1245| Block 1 # 1245| v1245_1(void) = NoOp : -# 1246| r1246_1(int) = Constant[3] : +# 1246| r1246_1(int) = Constant[2] : # 1246| r1246_2(glval) = VariableAddress[y] : # 1246| mu1246_3(int) = Store[y] : &:r1246_2, r1246_1 -#-----| Goto -> Block 3 +#-----| Goto -> Block 2 -# 1248| Block 3 -# 1248| r1248_1(glval) = VariableAddress[z] : +# 1247| Block 2 +# 1247| v1247_1(void) = NoOp : +# 1248| r1248_1(int) = Constant[3] : # 1248| r1248_2(glval) = VariableAddress[y] : -# 1248| r1248_3(int) = Load[y] : &:r1248_2, ~m? -# 1248| mu1248_4(int) = Store[z] : &:r1248_1, r1248_3 -# 1249| v1249_1(void) = NoOp : -# 1240| v1240_6(void) = ReturnVoid : -# 1240| v1240_7(void) = AliasedUse : ~m? -# 1240| v1240_8(void) = ExitFunction : - -# 1251| void switch2Case(int) -# 1251| Block 0 -# 1251| v1251_1(void) = EnterFunction : -# 1251| mu1251_2(unknown) = AliasedDefinition : -# 1251| mu1251_3(unknown) = InitializeNonLocal : -# 1251| r1251_4(glval) = VariableAddress[x] : -# 1251| mu1251_5(int) = InitializeParameter[x] : &:r1251_4 -# 1252| r1252_1(glval) = VariableAddress[y] : -# 1252| r1252_2(int) = Constant[0] : -# 1252| mu1252_3(int) = Store[y] : &:r1252_1, r1252_2 -# 1253| r1253_1(glval) = VariableAddress[x] : -# 1253| r1253_2(int) = Load[x] : &:r1253_1, ~m? -# 1253| v1253_3(void) = Switch : r1253_2 +# 1248| mu1248_3(int) = Store[y] : &:r1248_2, r1248_1 +#-----| Goto -> Block 3 + +# 1250| Block 3 +# 1250| r1250_1(glval) = VariableAddress[z] : +# 1250| r1250_2(glval) = VariableAddress[y] : +# 1250| r1250_3(int) = Load[y] : &:r1250_2, ~m? +# 1250| mu1250_4(int) = Store[z] : &:r1250_1, r1250_3 +# 1251| v1251_1(void) = NoOp : +# 1242| v1242_6(void) = ReturnVoid : +# 1242| v1242_7(void) = AliasedUse : ~m? +# 1242| v1242_8(void) = ExitFunction : + +# 1253| void switch2Case(int) +# 1253| Block 0 +# 1253| v1253_1(void) = EnterFunction : +# 1253| mu1253_2(unknown) = AliasedDefinition : +# 1253| mu1253_3(unknown) = InitializeNonLocal : +# 1253| r1253_4(glval) = VariableAddress[x] : +# 1253| mu1253_5(int) = InitializeParameter[x] : &:r1253_4 +# 1254| r1254_1(glval) = VariableAddress[y] : +# 1254| r1254_2(int) = Constant[0] : +# 1254| mu1254_3(int) = Store[y] : &:r1254_1, r1254_2 +# 1255| r1255_1(glval) = VariableAddress[x] : +# 1255| r1255_2(int) = Load[x] : &:r1255_1, ~m? +# 1255| v1255_3(void) = Switch : r1255_2 #-----| Case[1] -> Block 1 #-----| Case[2] -> Block 2 #-----| Default -> Block 3 -# 1254| Block 1 -# 1254| v1254_1(void) = NoOp : -# 1255| r1255_1(int) = Constant[2] : -# 1255| r1255_2(glval) = VariableAddress[y] : -# 1255| mu1255_3(int) = Store[y] : &:r1255_2, r1255_1 +# 1256| Block 1 # 1256| v1256_1(void) = NoOp : +# 1257| r1257_1(int) = Constant[2] : +# 1257| r1257_2(glval) = VariableAddress[y] : +# 1257| mu1257_3(int) = Store[y] : &:r1257_2, r1257_1 +# 1258| v1258_1(void) = NoOp : #-----| Goto -> Block 3 -# 1257| Block 2 -# 1257| v1257_1(void) = NoOp : -# 1258| r1258_1(int) = Constant[3] : -# 1258| r1258_2(glval) = VariableAddress[y] : -# 1258| mu1258_3(int) = Store[y] : &:r1258_2, r1258_1 -#-----| Goto -> Block 3 - -# 1259| Block 3 +# 1259| Block 2 # 1259| v1259_1(void) = NoOp : -# 1260| r1260_1(glval) = VariableAddress[z] : +# 1260| r1260_1(int) = Constant[3] : # 1260| r1260_2(glval) = VariableAddress[y] : -# 1260| r1260_3(int) = Load[y] : &:r1260_2, ~m? -# 1260| mu1260_4(int) = Store[z] : &:r1260_1, r1260_3 +# 1260| mu1260_3(int) = Store[y] : &:r1260_2, r1260_1 +#-----| Goto -> Block 3 + +# 1261| Block 3 # 1261| v1261_1(void) = NoOp : -# 1251| v1251_6(void) = ReturnVoid : -# 1251| v1251_7(void) = AliasedUse : ~m? -# 1251| v1251_8(void) = ExitFunction : - -# 1263| void switch2Case_default(int) -# 1263| Block 0 -# 1263| v1263_1(void) = EnterFunction : -# 1263| mu1263_2(unknown) = AliasedDefinition : -# 1263| mu1263_3(unknown) = InitializeNonLocal : -# 1263| r1263_4(glval) = VariableAddress[x] : -# 1263| mu1263_5(int) = InitializeParameter[x] : &:r1263_4 -# 1264| r1264_1(glval) = VariableAddress[y] : -# 1264| r1264_2(int) = Constant[0] : -# 1264| mu1264_3(int) = Store[y] : &:r1264_1, r1264_2 -# 1265| r1265_1(glval) = VariableAddress[x] : -# 1265| r1265_2(int) = Load[x] : &:r1265_1, ~m? -# 1265| v1265_3(void) = Switch : r1265_2 +# 1262| r1262_1(glval) = VariableAddress[z] : +# 1262| r1262_2(glval) = VariableAddress[y] : +# 1262| r1262_3(int) = Load[y] : &:r1262_2, ~m? +# 1262| mu1262_4(int) = Store[z] : &:r1262_1, r1262_3 +# 1263| v1263_1(void) = NoOp : +# 1253| v1253_6(void) = ReturnVoid : +# 1253| v1253_7(void) = AliasedUse : ~m? +# 1253| v1253_8(void) = ExitFunction : + +# 1265| void switch2Case_default(int) +# 1265| Block 0 +# 1265| v1265_1(void) = EnterFunction : +# 1265| mu1265_2(unknown) = AliasedDefinition : +# 1265| mu1265_3(unknown) = InitializeNonLocal : +# 1265| r1265_4(glval) = VariableAddress[x] : +# 1265| mu1265_5(int) = InitializeParameter[x] : &:r1265_4 +# 1266| r1266_1(glval) = VariableAddress[y] : +# 1266| r1266_2(int) = Constant[0] : +# 1266| mu1266_3(int) = Store[y] : &:r1266_1, r1266_2 +# 1267| r1267_1(glval) = VariableAddress[x] : +# 1267| r1267_2(int) = Load[x] : &:r1267_1, ~m? +# 1267| v1267_3(void) = Switch : r1267_2 #-----| Case[1] -> Block 1 #-----| Case[2] -> Block 2 #-----| Default -> Block 3 -# 1266| Block 1 -# 1266| v1266_1(void) = NoOp : -# 1267| r1267_1(int) = Constant[2] : -# 1267| r1267_2(glval) = VariableAddress[y] : -# 1267| mu1267_3(int) = Store[y] : &:r1267_2, r1267_1 +# 1268| Block 1 # 1268| v1268_1(void) = NoOp : -#-----| Goto -> Block 4 - -# 1270| Block 2 +# 1269| r1269_1(int) = Constant[2] : +# 1269| r1269_2(glval) = VariableAddress[y] : +# 1269| mu1269_3(int) = Store[y] : &:r1269_2, r1269_1 # 1270| v1270_1(void) = NoOp : -# 1271| r1271_1(int) = Constant[3] : -# 1271| r1271_2(glval) = VariableAddress[y] : -# 1271| mu1271_3(int) = Store[y] : &:r1271_2, r1271_1 -# 1272| v1272_1(void) = NoOp : #-----| Goto -> Block 4 -# 1274| Block 3 +# 1272| Block 2 +# 1272| v1272_1(void) = NoOp : +# 1273| r1273_1(int) = Constant[3] : +# 1273| r1273_2(glval) = VariableAddress[y] : +# 1273| mu1273_3(int) = Store[y] : &:r1273_2, r1273_1 # 1274| v1274_1(void) = NoOp : -# 1275| r1275_1(int) = Constant[4] : -# 1275| r1275_2(glval) = VariableAddress[y] : -# 1275| mu1275_3(int) = Store[y] : &:r1275_2, r1275_1 #-----| Goto -> Block 4 -# 1276| Block 4 +# 1276| Block 3 # 1276| v1276_1(void) = NoOp : -# 1277| r1277_1(glval) = VariableAddress[z] : +# 1277| r1277_1(int) = Constant[4] : # 1277| r1277_2(glval) = VariableAddress[y] : -# 1277| r1277_3(int) = Load[y] : &:r1277_2, ~m? -# 1277| mu1277_4(int) = Store[z] : &:r1277_1, r1277_3 +# 1277| mu1277_3(int) = Store[y] : &:r1277_2, r1277_1 +#-----| Goto -> Block 4 + +# 1278| Block 4 # 1278| v1278_1(void) = NoOp : -# 1263| v1263_6(void) = ReturnVoid : -# 1263| v1263_7(void) = AliasedUse : ~m? -# 1263| v1263_8(void) = ExitFunction : - -# 1280| int staticLocalInit(int) -# 1280| Block 0 -# 1280| v1280_1(void) = EnterFunction : -# 1280| mu1280_2(unknown) = AliasedDefinition : -# 1280| mu1280_3(unknown) = InitializeNonLocal : -# 1280| r1280_4(glval) = VariableAddress[x] : -# 1280| mu1280_5(int) = InitializeParameter[x] : &:r1280_4 -# 1283| r1283_1(glval) = VariableAddress[c#init] : -# 1283| r1283_2(bool) = Load[c#init] : &:r1283_1, ~m? -# 1283| v1283_3(void) = ConditionalBranch : r1283_2 +# 1279| r1279_1(glval) = VariableAddress[z] : +# 1279| r1279_2(glval) = VariableAddress[y] : +# 1279| r1279_3(int) = Load[y] : &:r1279_2, ~m? +# 1279| mu1279_4(int) = Store[z] : &:r1279_1, r1279_3 +# 1280| v1280_1(void) = NoOp : +# 1265| v1265_6(void) = ReturnVoid : +# 1265| v1265_7(void) = AliasedUse : ~m? +# 1265| v1265_8(void) = ExitFunction : + +# 1282| int staticLocalInit(int) +# 1282| Block 0 +# 1282| v1282_1(void) = EnterFunction : +# 1282| mu1282_2(unknown) = AliasedDefinition : +# 1282| mu1282_3(unknown) = InitializeNonLocal : +# 1282| r1282_4(glval) = VariableAddress[x] : +# 1282| mu1282_5(int) = InitializeParameter[x] : &:r1282_4 +# 1285| r1285_1(glval) = VariableAddress[c#init] : +# 1285| r1285_2(bool) = Load[c#init] : &:r1285_1, ~m? +# 1285| v1285_3(void) = ConditionalBranch : r1285_2 #-----| False -> Block 1 #-----| True -> Block 2 -# 1283| Block 1 -# 1283| r1283_4(glval) = VariableAddress[c] : -# 1283| r1283_5(glval) = VariableAddress[x] : -# 1283| r1283_6(int) = Load[x] : &:r1283_5, ~m? -# 1283| mu1283_7(int) = Store[c] : &:r1283_4, r1283_6 -# 1283| r1283_8(bool) = Constant[1] : -# 1283| mu1283_9(bool) = Store[c#init] : &:r1283_1, r1283_8 +# 1285| Block 1 +# 1285| r1285_4(glval) = VariableAddress[c] : +# 1285| r1285_5(glval) = VariableAddress[x] : +# 1285| r1285_6(int) = Load[x] : &:r1285_5, ~m? +# 1285| mu1285_7(int) = Store[c] : &:r1285_4, r1285_6 +# 1285| r1285_8(bool) = Constant[1] : +# 1285| mu1285_9(bool) = Store[c#init] : &:r1285_1, r1285_8 #-----| Goto -> Block 2 -# 1286| Block 2 -# 1286| r1286_1(glval) = VariableAddress[#return] : -# 1286| r1286_2(glval) = VariableAddress[a] : -# 1286| r1286_3(int) = Load[a] : &:r1286_2, ~m? -# 1286| r1286_4(glval) = VariableAddress[b] : -# 1286| r1286_5(int) = Load[b] : &:r1286_4, ~m? -# 1286| r1286_6(int) = Add : r1286_3, r1286_5 -# 1286| r1286_7(glval) = VariableAddress[c] : -# 1286| r1286_8(int) = Load[c] : &:r1286_7, ~m? -# 1286| r1286_9(int) = Add : r1286_6, r1286_8 -# 1286| r1286_10(glval) = VariableAddress[d] : -# 1286| r1286_11(int) = Load[d] : &:r1286_10, ~m? -# 1286| r1286_12(int) = Add : r1286_9, r1286_11 -# 1286| mu1286_13(int) = Store[#return] : &:r1286_1, r1286_12 -# 1280| r1280_6(glval) = VariableAddress[#return] : -# 1280| v1280_7(void) = ReturnValue : &:r1280_6, ~m? -# 1280| v1280_8(void) = AliasedUse : ~m? -# 1280| v1280_9(void) = ExitFunction : - -# 1281| int a -# 1281| Block 0 -# 1281| v1281_1(void) = EnterFunction : -# 1281| mu1281_2(unknown) = AliasedDefinition : -# 1281| r1281_3(glval) = VariableAddress[a] : -# 1281| r1281_4(int) = Constant[0] : -# 1281| mu1281_5(int) = Store[a] : &:r1281_3, r1281_4 -# 1281| v1281_6(void) = ReturnVoid : -# 1281| v1281_7(void) = AliasedUse : ~m? -# 1281| v1281_8(void) = ExitFunction : - -# 1282| int b -# 1282| Block 0 -# 1282| v1282_1(void) = EnterFunction : -# 1282| mu1282_2(unknown) = AliasedDefinition : -# 1282| r1282_3(glval) = VariableAddress[b] : -# 1282| r1282_4(int) = Constant[4] : -# 1282| mu1282_5(int) = Store[b] : &:r1282_3, r1282_4 -# 1282| v1282_6(void) = ReturnVoid : -# 1282| v1282_7(void) = AliasedUse : ~m? -# 1282| v1282_8(void) = ExitFunction : - -# 1289| void staticLocalWithConstructor(char const*) -# 1289| Block 0 -# 1289| v1289_1(void) = EnterFunction : -# 1289| mu1289_2(unknown) = AliasedDefinition : -# 1289| mu1289_3(unknown) = InitializeNonLocal : -# 1289| r1289_4(glval) = VariableAddress[dynamic] : -# 1289| mu1289_5(char *) = InitializeParameter[dynamic] : &:r1289_4 -# 1289| r1289_6(char *) = Load[dynamic] : &:r1289_4, ~m? -# 1289| mu1289_7(unknown) = InitializeIndirection[dynamic] : &:r1289_6 -# 1290| r1290_1(glval) = VariableAddress[a#init] : -# 1290| r1290_2(bool) = Load[a#init] : &:r1290_1, ~m? -# 1290| v1290_3(void) = ConditionalBranch : r1290_2 +# 1288| Block 2 +# 1288| r1288_1(glval) = VariableAddress[#return] : +# 1288| r1288_2(glval) = VariableAddress[a] : +# 1288| r1288_3(int) = Load[a] : &:r1288_2, ~m? +# 1288| r1288_4(glval) = VariableAddress[b] : +# 1288| r1288_5(int) = Load[b] : &:r1288_4, ~m? +# 1288| r1288_6(int) = Add : r1288_3, r1288_5 +# 1288| r1288_7(glval) = VariableAddress[c] : +# 1288| r1288_8(int) = Load[c] : &:r1288_7, ~m? +# 1288| r1288_9(int) = Add : r1288_6, r1288_8 +# 1288| r1288_10(glval) = VariableAddress[d] : +# 1288| r1288_11(int) = Load[d] : &:r1288_10, ~m? +# 1288| r1288_12(int) = Add : r1288_9, r1288_11 +# 1288| mu1288_13(int) = Store[#return] : &:r1288_1, r1288_12 +# 1282| r1282_6(glval) = VariableAddress[#return] : +# 1282| v1282_7(void) = ReturnValue : &:r1282_6, ~m? +# 1282| v1282_8(void) = AliasedUse : ~m? +# 1282| v1282_9(void) = ExitFunction : + +# 1283| int a +# 1283| Block 0 +# 1283| v1283_1(void) = EnterFunction : +# 1283| mu1283_2(unknown) = AliasedDefinition : +# 1283| r1283_3(glval) = VariableAddress[a] : +# 1283| r1283_4(int) = Constant[0] : +# 1283| mu1283_5(int) = Store[a] : &:r1283_3, r1283_4 +# 1283| v1283_6(void) = ReturnVoid : +# 1283| v1283_7(void) = AliasedUse : ~m? +# 1283| v1283_8(void) = ExitFunction : + +# 1284| int b +# 1284| Block 0 +# 1284| v1284_1(void) = EnterFunction : +# 1284| mu1284_2(unknown) = AliasedDefinition : +# 1284| r1284_3(glval) = VariableAddress[b] : +# 1284| r1284_4(int) = Constant[4] : +# 1284| mu1284_5(int) = Store[b] : &:r1284_3, r1284_4 +# 1284| v1284_6(void) = ReturnVoid : +# 1284| v1284_7(void) = AliasedUse : ~m? +# 1284| v1284_8(void) = ExitFunction : + +# 1291| void staticLocalWithConstructor(char const*) +# 1291| Block 0 +# 1291| v1291_1(void) = EnterFunction : +# 1291| mu1291_2(unknown) = AliasedDefinition : +# 1291| mu1291_3(unknown) = InitializeNonLocal : +# 1291| r1291_4(glval) = VariableAddress[dynamic] : +# 1291| mu1291_5(char *) = InitializeParameter[dynamic] : &:r1291_4 +# 1291| r1291_6(char *) = Load[dynamic] : &:r1291_4, ~m? +# 1291| mu1291_7(unknown) = InitializeIndirection[dynamic] : &:r1291_6 +# 1292| r1292_1(glval) = VariableAddress[a#init] : +# 1292| r1292_2(bool) = Load[a#init] : &:r1292_1, ~m? +# 1292| v1292_3(void) = ConditionalBranch : r1292_2 #-----| False -> Block 1 #-----| True -> Block 2 -# 1290| Block 1 -# 1290| r1290_4(glval) = VariableAddress[a] : +# 1292| Block 1 +# 1292| r1292_4(glval) = VariableAddress[a] : #-----| r0_1(glval) = FunctionAddress[String] : -#-----| v0_2(void) = Call[String] : func:r0_1, this:r1290_4 +#-----| v0_2(void) = Call[String] : func:r0_1, this:r1292_4 #-----| mu0_3(unknown) = ^CallSideEffect : ~m? -#-----| mu0_4(String) = ^IndirectMayWriteSideEffect[-1] : &:r1290_4 -# 1290| r1290_5(bool) = Constant[1] : -# 1290| mu1290_6(bool) = Store[a#init] : &:r1290_1, r1290_5 +#-----| mu0_4(String) = ^IndirectMayWriteSideEffect[-1] : &:r1292_4 +# 1292| r1292_5(bool) = Constant[1] : +# 1292| mu1292_6(bool) = Store[a#init] : &:r1292_1, r1292_5 #-----| Goto -> Block 2 -# 1291| Block 2 -# 1291| r1291_1(glval) = VariableAddress[b#init] : -# 1291| r1291_2(bool) = Load[b#init] : &:r1291_1, ~m? -# 1291| v1291_3(void) = ConditionalBranch : r1291_2 +# 1293| Block 2 +# 1293| r1293_1(glval) = VariableAddress[b#init] : +# 1293| r1293_2(bool) = Load[b#init] : &:r1293_1, ~m? +# 1293| v1293_3(void) = ConditionalBranch : r1293_2 #-----| False -> Block 3 #-----| True -> Block 4 -# 1291| Block 3 -# 1291| r1291_4(glval) = VariableAddress[b] : -# 1291| r1291_5(glval) = FunctionAddress[String] : -# 1291| r1291_6(glval) = StringConstant["static"] : -# 1291| r1291_7(char *) = Convert : r1291_6 -# 1291| v1291_8(void) = Call[String] : func:r1291_5, this:r1291_4, 0:r1291_7 -# 1291| mu1291_9(unknown) = ^CallSideEffect : ~m? -# 1291| v1291_10(void) = ^BufferReadSideEffect[0] : &:r1291_7, ~m? -# 1291| mu1291_11(String) = ^IndirectMayWriteSideEffect[-1] : &:r1291_4 -# 1291| r1291_12(bool) = Constant[1] : -# 1291| mu1291_13(bool) = Store[b#init] : &:r1291_1, r1291_12 +# 1293| Block 3 +# 1293| r1293_4(glval) = VariableAddress[b] : +# 1293| r1293_5(glval) = FunctionAddress[String] : +# 1293| r1293_6(glval) = StringConstant["static"] : +# 1293| r1293_7(char *) = Convert : r1293_6 +# 1293| v1293_8(void) = Call[String] : func:r1293_5, this:r1293_4, 0:r1293_7 +# 1293| mu1293_9(unknown) = ^CallSideEffect : ~m? +# 1293| v1293_10(void) = ^BufferReadSideEffect[0] : &:r1293_7, ~m? +# 1293| mu1293_11(String) = ^IndirectMayWriteSideEffect[-1] : &:r1293_4 +# 1293| r1293_12(bool) = Constant[1] : +# 1293| mu1293_13(bool) = Store[b#init] : &:r1293_1, r1293_12 #-----| Goto -> Block 4 -# 1292| Block 4 -# 1292| r1292_1(glval) = VariableAddress[c#init] : -# 1292| r1292_2(bool) = Load[c#init] : &:r1292_1, ~m? -# 1292| v1292_3(void) = ConditionalBranch : r1292_2 +# 1294| Block 4 +# 1294| r1294_1(glval) = VariableAddress[c#init] : +# 1294| r1294_2(bool) = Load[c#init] : &:r1294_1, ~m? +# 1294| v1294_3(void) = ConditionalBranch : r1294_2 #-----| False -> Block 5 #-----| True -> Block 6 -# 1292| Block 5 -# 1292| r1292_4(glval) = VariableAddress[c] : -# 1292| r1292_5(glval) = FunctionAddress[String] : -# 1292| r1292_6(glval) = VariableAddress[dynamic] : -# 1292| r1292_7(char *) = Load[dynamic] : &:r1292_6, ~m? -# 1292| v1292_8(void) = Call[String] : func:r1292_5, this:r1292_4, 0:r1292_7 -# 1292| mu1292_9(unknown) = ^CallSideEffect : ~m? -# 1292| v1292_10(void) = ^BufferReadSideEffect[0] : &:r1292_7, ~m? -# 1292| mu1292_11(String) = ^IndirectMayWriteSideEffect[-1] : &:r1292_4 -# 1292| r1292_12(bool) = Constant[1] : -# 1292| mu1292_13(bool) = Store[c#init] : &:r1292_1, r1292_12 +# 1294| Block 5 +# 1294| r1294_4(glval) = VariableAddress[c] : +# 1294| r1294_5(glval) = FunctionAddress[String] : +# 1294| r1294_6(glval) = VariableAddress[dynamic] : +# 1294| r1294_7(char *) = Load[dynamic] : &:r1294_6, ~m? +# 1294| v1294_8(void) = Call[String] : func:r1294_5, this:r1294_4, 0:r1294_7 +# 1294| mu1294_9(unknown) = ^CallSideEffect : ~m? +# 1294| v1294_10(void) = ^BufferReadSideEffect[0] : &:r1294_7, ~m? +# 1294| mu1294_11(String) = ^IndirectMayWriteSideEffect[-1] : &:r1294_4 +# 1294| r1294_12(bool) = Constant[1] : +# 1294| mu1294_13(bool) = Store[c#init] : &:r1294_1, r1294_12 #-----| Goto -> Block 6 -# 1293| Block 6 -# 1293| v1293_1(void) = NoOp : -# 1289| v1289_8(void) = ReturnIndirection[dynamic] : &:r1289_6, ~m? -# 1289| v1289_9(void) = ReturnVoid : -# 1289| v1289_10(void) = AliasedUse : ~m? -# 1289| v1289_11(void) = ExitFunction : - -# 1300| void test_strings(char*, char*) -# 1300| Block 0 -# 1300| v1300_1(void) = EnterFunction : -# 1300| mu1300_2(unknown) = AliasedDefinition : -# 1300| mu1300_3(unknown) = InitializeNonLocal : -# 1300| r1300_4(glval) = VariableAddress[s1] : -# 1300| mu1300_5(char *) = InitializeParameter[s1] : &:r1300_4 -# 1300| r1300_6(char *) = Load[s1] : &:r1300_4, ~m? -# 1300| mu1300_7(unknown) = InitializeIndirection[s1] : &:r1300_6 -# 1300| r1300_8(glval) = VariableAddress[s2] : -# 1300| mu1300_9(char *) = InitializeParameter[s2] : &:r1300_8 -# 1300| r1300_10(char *) = Load[s2] : &:r1300_8, ~m? -# 1300| mu1300_11(unknown) = InitializeIndirection[s2] : &:r1300_10 -# 1301| r1301_1(glval) = VariableAddress[buffer] : -# 1301| mu1301_2(char[1024]) = Uninitialized[buffer] : &:r1301_1 -# 1301| r1301_3(int) = Constant[0] : -# 1301| r1301_4(glval) = PointerAdd[1] : r1301_1, r1301_3 -# 1301| r1301_5(char) = Constant[0] : -# 1301| mu1301_6(char) = Store[?] : &:r1301_4, r1301_5 -# 1301| r1301_7(int) = Constant[1] : -# 1301| r1301_8(glval) = PointerAdd[1] : r1301_1, r1301_7 -# 1301| r1301_9(unknown[1023]) = Constant[0] : -# 1301| mu1301_10(unknown[1023]) = Store[?] : &:r1301_8, r1301_9 -# 1303| r1303_1(glval) = FunctionAddress[strcpy] : -# 1303| r1303_2(glval) = VariableAddress[buffer] : -# 1303| r1303_3(char *) = Convert : r1303_2 -# 1303| r1303_4(glval) = VariableAddress[s1] : -# 1303| r1303_5(char *) = Load[s1] : &:r1303_4, ~m? -# 1303| r1303_6(char *) = Convert : r1303_5 -# 1303| r1303_7(char *) = Call[strcpy] : func:r1303_1, 0:r1303_3, 1:r1303_6 -# 1303| v1303_8(void) = ^BufferReadSideEffect[1] : &:r1303_6, ~m? -# 1303| mu1303_9(unknown) = ^BufferMayWriteSideEffect[0] : &:r1303_3 -# 1304| r1304_1(glval) = FunctionAddress[strcat] : -# 1304| r1304_2(glval) = VariableAddress[buffer] : -# 1304| r1304_3(char *) = Convert : r1304_2 -# 1304| r1304_4(glval) = VariableAddress[s2] : -# 1304| r1304_5(char *) = Load[s2] : &:r1304_4, ~m? -# 1304| r1304_6(char *) = Convert : r1304_5 -# 1304| r1304_7(char *) = Call[strcat] : func:r1304_1, 0:r1304_3, 1:r1304_6 -# 1304| v1304_8(void) = ^BufferReadSideEffect[0] : &:r1304_3, ~m? -# 1304| v1304_9(void) = ^BufferReadSideEffect[1] : &:r1304_6, ~m? -# 1304| mu1304_10(unknown) = ^BufferMayWriteSideEffect[0] : &:r1304_3 -# 1305| v1305_1(void) = NoOp : -# 1300| v1300_12(void) = ReturnIndirection[s1] : &:r1300_6, ~m? -# 1300| v1300_13(void) = ReturnIndirection[s2] : &:r1300_10, ~m? -# 1300| v1300_14(void) = ReturnVoid : -# 1300| v1300_15(void) = AliasedUse : ~m? -# 1300| v1300_16(void) = ExitFunction : - -# 1310| void A::static_member(A*, int) -# 1310| Block 0 -# 1310| v1310_1(void) = EnterFunction : -# 1310| mu1310_2(unknown) = AliasedDefinition : -# 1310| mu1310_3(unknown) = InitializeNonLocal : -# 1310| r1310_4(glval) = VariableAddress[a] : -# 1310| mu1310_5(A *) = InitializeParameter[a] : &:r1310_4 -# 1310| r1310_6(A *) = Load[a] : &:r1310_4, ~m? -# 1310| mu1310_7(unknown) = InitializeIndirection[a] : &:r1310_6 -# 1310| r1310_8(glval) = VariableAddress[x] : -# 1310| mu1310_9(int) = InitializeParameter[x] : &:r1310_8 -# 1311| r1311_1(glval) = VariableAddress[x] : -# 1311| r1311_2(int) = Load[x] : &:r1311_1, ~m? -# 1311| r1311_3(glval) = VariableAddress[a] : -# 1311| r1311_4(A *) = Load[a] : &:r1311_3, ~m? -# 1311| r1311_5(glval) = FieldAddress[member] : r1311_4 -# 1311| mu1311_6(int) = Store[?] : &:r1311_5, r1311_2 -# 1312| v1312_1(void) = NoOp : -# 1310| v1310_10(void) = ReturnIndirection[a] : &:r1310_6, ~m? -# 1310| v1310_11(void) = ReturnVoid : -# 1310| v1310_12(void) = AliasedUse : ~m? -# 1310| v1310_13(void) = ExitFunction : - -# 1319| void test_static_member_functions(int, A*) -# 1319| Block 0 -# 1319| v1319_1(void) = EnterFunction : -# 1319| mu1319_2(unknown) = AliasedDefinition : -# 1319| mu1319_3(unknown) = InitializeNonLocal : -# 1319| r1319_4(glval) = VariableAddress[int_arg] : -# 1319| mu1319_5(int) = InitializeParameter[int_arg] : &:r1319_4 -# 1319| r1319_6(glval) = VariableAddress[a_arg] : -# 1319| mu1319_7(A *) = InitializeParameter[a_arg] : &:r1319_6 -# 1319| r1319_8(A *) = Load[a_arg] : &:r1319_6, ~m? -# 1319| mu1319_9(unknown) = InitializeIndirection[a_arg] : &:r1319_8 -# 1320| r1320_1(glval) = VariableAddress[c] : -# 1320| mu1320_2(C) = Uninitialized[c] : &:r1320_1 -# 1320| r1320_3(glval) = FunctionAddress[C] : -# 1320| v1320_4(void) = Call[C] : func:r1320_3, this:r1320_1 -# 1320| mu1320_5(unknown) = ^CallSideEffect : ~m? -# 1320| mu1320_6(C) = ^IndirectMayWriteSideEffect[-1] : &:r1320_1 -# 1321| r1321_1(glval) = VariableAddress[c] : -# 1321| r1321_2(glval) = FunctionAddress[StaticMemberFunction] : -# 1321| r1321_3(int) = Constant[10] : -# 1321| r1321_4(int) = Call[StaticMemberFunction] : func:r1321_2, 0:r1321_3 -# 1321| mu1321_5(unknown) = ^CallSideEffect : ~m? -# 1322| r1322_1(glval) = FunctionAddress[StaticMemberFunction] : -# 1322| r1322_2(int) = Constant[10] : -# 1322| r1322_3(int) = Call[StaticMemberFunction] : func:r1322_1, 0:r1322_2 -# 1322| mu1322_4(unknown) = ^CallSideEffect : ~m? -# 1324| r1324_1(glval) = VariableAddress[a] : -# 1324| mu1324_2(A) = Uninitialized[a] : &:r1324_1 -# 1325| r1325_1(glval) = VariableAddress[a] : -# 1325| r1325_2(glval) = FunctionAddress[static_member] : -# 1325| r1325_3(glval) = VariableAddress[a] : -# 1325| r1325_4(A *) = CopyValue : r1325_3 -# 1325| r1325_5(glval) = VariableAddress[int_arg] : -# 1325| r1325_6(int) = Load[int_arg] : &:r1325_5, ~m? -# 1325| v1325_7(void) = Call[static_member] : func:r1325_2, 0:r1325_4, 1:r1325_6 -# 1325| mu1325_8(unknown) = ^CallSideEffect : ~m? -# 1325| v1325_9(void) = ^BufferReadSideEffect[0] : &:r1325_4, ~m? -# 1325| mu1325_10(unknown) = ^BufferMayWriteSideEffect[0] : &:r1325_4 -# 1326| r1326_1(glval) = FunctionAddress[static_member] : -# 1326| r1326_2(glval) = VariableAddress[a] : -# 1326| r1326_3(A *) = CopyValue : r1326_2 -# 1326| r1326_4(glval) = VariableAddress[int_arg] : -# 1326| r1326_5(int) = Load[int_arg] : &:r1326_4, ~m? -# 1326| v1326_6(void) = Call[static_member] : func:r1326_1, 0:r1326_3, 1:r1326_5 -# 1326| mu1326_7(unknown) = ^CallSideEffect : ~m? -# 1326| v1326_8(void) = ^BufferReadSideEffect[0] : &:r1326_3, ~m? -# 1326| mu1326_9(unknown) = ^BufferMayWriteSideEffect[0] : &:r1326_3 -# 1328| r1328_1(glval) = VariableAddress[a] : -# 1328| r1328_2(A *) = CopyValue : r1328_1 -# 1328| r1328_3(glval) = FunctionAddress[static_member] : -# 1328| r1328_4(glval) = VariableAddress[a_arg] : -# 1328| r1328_5(A *) = Load[a_arg] : &:r1328_4, ~m? -# 1328| r1328_6(glval) = VariableAddress[int_arg] : -# 1328| r1328_7(int) = Load[int_arg] : &:r1328_6, ~m? -# 1328| r1328_8(int) = Constant[2] : -# 1328| r1328_9(int) = Add : r1328_7, r1328_8 -# 1328| v1328_10(void) = Call[static_member] : func:r1328_3, 0:r1328_5, 1:r1328_9 -# 1328| mu1328_11(unknown) = ^CallSideEffect : ~m? -# 1328| v1328_12(void) = ^BufferReadSideEffect[0] : &:r1328_5, ~m? -# 1328| mu1328_13(unknown) = ^BufferMayWriteSideEffect[0] : &:r1328_5 -# 1329| r1329_1(glval) = VariableAddress[a_arg] : -# 1329| r1329_2(A *) = Load[a_arg] : &:r1329_1, ~m? -# 1329| r1329_3(glval) = CopyValue : r1329_2 -# 1329| r1329_4(glval) = FunctionAddress[static_member] : -# 1329| r1329_5(glval) = VariableAddress[a] : -# 1329| r1329_6(A *) = CopyValue : r1329_5 -# 1329| r1329_7(int) = Constant[99] : -# 1329| v1329_8(void) = Call[static_member] : func:r1329_4, 0:r1329_6, 1:r1329_7 -# 1329| mu1329_9(unknown) = ^CallSideEffect : ~m? -# 1329| v1329_10(void) = ^BufferReadSideEffect[0] : &:r1329_6, ~m? -# 1329| mu1329_11(unknown) = ^BufferMayWriteSideEffect[0] : &:r1329_6 -# 1330| r1330_1(glval) = VariableAddress[a_arg] : -# 1330| r1330_2(A *) = Load[a_arg] : &:r1330_1, ~m? +# 1295| Block 6 +# 1295| v1295_1(void) = NoOp : +# 1291| v1291_8(void) = ReturnIndirection[dynamic] : &:r1291_6, ~m? +# 1291| v1291_9(void) = ReturnVoid : +# 1291| v1291_10(void) = AliasedUse : ~m? +# 1291| v1291_11(void) = ExitFunction : + +# 1302| void test_strings(char*, char*) +# 1302| Block 0 +# 1302| v1302_1(void) = EnterFunction : +# 1302| mu1302_2(unknown) = AliasedDefinition : +# 1302| mu1302_3(unknown) = InitializeNonLocal : +# 1302| r1302_4(glval) = VariableAddress[s1] : +# 1302| mu1302_5(char *) = InitializeParameter[s1] : &:r1302_4 +# 1302| r1302_6(char *) = Load[s1] : &:r1302_4, ~m? +# 1302| mu1302_7(unknown) = InitializeIndirection[s1] : &:r1302_6 +# 1302| r1302_8(glval) = VariableAddress[s2] : +# 1302| mu1302_9(char *) = InitializeParameter[s2] : &:r1302_8 +# 1302| r1302_10(char *) = Load[s2] : &:r1302_8, ~m? +# 1302| mu1302_11(unknown) = InitializeIndirection[s2] : &:r1302_10 +# 1303| r1303_1(glval) = VariableAddress[buffer] : +# 1303| mu1303_2(char[1024]) = Uninitialized[buffer] : &:r1303_1 +# 1303| r1303_3(int) = Constant[0] : +# 1303| r1303_4(glval) = PointerAdd[1] : r1303_1, r1303_3 +# 1303| r1303_5(char) = Constant[0] : +# 1303| mu1303_6(char) = Store[?] : &:r1303_4, r1303_5 +# 1303| r1303_7(int) = Constant[1] : +# 1303| r1303_8(glval) = PointerAdd[1] : r1303_1, r1303_7 +# 1303| r1303_9(unknown[1023]) = Constant[0] : +# 1303| mu1303_10(unknown[1023]) = Store[?] : &:r1303_8, r1303_9 +# 1305| r1305_1(glval) = FunctionAddress[strcpy] : +# 1305| r1305_2(glval) = VariableAddress[buffer] : +# 1305| r1305_3(char *) = Convert : r1305_2 +# 1305| r1305_4(glval) = VariableAddress[s1] : +# 1305| r1305_5(char *) = Load[s1] : &:r1305_4, ~m? +# 1305| r1305_6(char *) = Convert : r1305_5 +# 1305| r1305_7(char *) = Call[strcpy] : func:r1305_1, 0:r1305_3, 1:r1305_6 +# 1305| v1305_8(void) = ^BufferReadSideEffect[1] : &:r1305_6, ~m? +# 1305| mu1305_9(unknown) = ^BufferMayWriteSideEffect[0] : &:r1305_3 +# 1306| r1306_1(glval) = FunctionAddress[strcat] : +# 1306| r1306_2(glval) = VariableAddress[buffer] : +# 1306| r1306_3(char *) = Convert : r1306_2 +# 1306| r1306_4(glval) = VariableAddress[s2] : +# 1306| r1306_5(char *) = Load[s2] : &:r1306_4, ~m? +# 1306| r1306_6(char *) = Convert : r1306_5 +# 1306| r1306_7(char *) = Call[strcat] : func:r1306_1, 0:r1306_3, 1:r1306_6 +# 1306| v1306_8(void) = ^BufferReadSideEffect[0] : &:r1306_3, ~m? +# 1306| v1306_9(void) = ^BufferReadSideEffect[1] : &:r1306_6, ~m? +# 1306| mu1306_10(unknown) = ^BufferMayWriteSideEffect[0] : &:r1306_3 +# 1307| v1307_1(void) = NoOp : +# 1302| v1302_12(void) = ReturnIndirection[s1] : &:r1302_6, ~m? +# 1302| v1302_13(void) = ReturnIndirection[s2] : &:r1302_10, ~m? +# 1302| v1302_14(void) = ReturnVoid : +# 1302| v1302_15(void) = AliasedUse : ~m? +# 1302| v1302_16(void) = ExitFunction : + +# 1312| void A::static_member(A*, int) +# 1312| Block 0 +# 1312| v1312_1(void) = EnterFunction : +# 1312| mu1312_2(unknown) = AliasedDefinition : +# 1312| mu1312_3(unknown) = InitializeNonLocal : +# 1312| r1312_4(glval) = VariableAddress[a] : +# 1312| mu1312_5(A *) = InitializeParameter[a] : &:r1312_4 +# 1312| r1312_6(A *) = Load[a] : &:r1312_4, ~m? +# 1312| mu1312_7(unknown) = InitializeIndirection[a] : &:r1312_6 +# 1312| r1312_8(glval) = VariableAddress[x] : +# 1312| mu1312_9(int) = InitializeParameter[x] : &:r1312_8 +# 1313| r1313_1(glval) = VariableAddress[x] : +# 1313| r1313_2(int) = Load[x] : &:r1313_1, ~m? +# 1313| r1313_3(glval) = VariableAddress[a] : +# 1313| r1313_4(A *) = Load[a] : &:r1313_3, ~m? +# 1313| r1313_5(glval) = FieldAddress[member] : r1313_4 +# 1313| mu1313_6(int) = Store[?] : &:r1313_5, r1313_2 +# 1314| v1314_1(void) = NoOp : +# 1312| v1312_10(void) = ReturnIndirection[a] : &:r1312_6, ~m? +# 1312| v1312_11(void) = ReturnVoid : +# 1312| v1312_12(void) = AliasedUse : ~m? +# 1312| v1312_13(void) = ExitFunction : + +# 1321| void test_static_member_functions(int, A*) +# 1321| Block 0 +# 1321| v1321_1(void) = EnterFunction : +# 1321| mu1321_2(unknown) = AliasedDefinition : +# 1321| mu1321_3(unknown) = InitializeNonLocal : +# 1321| r1321_4(glval) = VariableAddress[int_arg] : +# 1321| mu1321_5(int) = InitializeParameter[int_arg] : &:r1321_4 +# 1321| r1321_6(glval) = VariableAddress[a_arg] : +# 1321| mu1321_7(A *) = InitializeParameter[a_arg] : &:r1321_6 +# 1321| r1321_8(A *) = Load[a_arg] : &:r1321_6, ~m? +# 1321| mu1321_9(unknown) = InitializeIndirection[a_arg] : &:r1321_8 +# 1322| r1322_1(glval) = VariableAddress[c] : +# 1322| mu1322_2(C) = Uninitialized[c] : &:r1322_1 +# 1322| r1322_3(glval) = FunctionAddress[C] : +# 1322| v1322_4(void) = Call[C] : func:r1322_3, this:r1322_1 +# 1322| mu1322_5(unknown) = ^CallSideEffect : ~m? +# 1322| mu1322_6(C) = ^IndirectMayWriteSideEffect[-1] : &:r1322_1 +# 1323| r1323_1(glval) = VariableAddress[c] : +# 1323| r1323_2(glval) = FunctionAddress[StaticMemberFunction] : +# 1323| r1323_3(int) = Constant[10] : +# 1323| r1323_4(int) = Call[StaticMemberFunction] : func:r1323_2, 0:r1323_3 +# 1323| mu1323_5(unknown) = ^CallSideEffect : ~m? +# 1324| r1324_1(glval) = FunctionAddress[StaticMemberFunction] : +# 1324| r1324_2(int) = Constant[10] : +# 1324| r1324_3(int) = Call[StaticMemberFunction] : func:r1324_1, 0:r1324_2 +# 1324| mu1324_4(unknown) = ^CallSideEffect : ~m? +# 1326| r1326_1(glval) = VariableAddress[a] : +# 1326| mu1326_2(A) = Uninitialized[a] : &:r1326_1 +# 1327| r1327_1(glval) = VariableAddress[a] : +# 1327| r1327_2(glval) = FunctionAddress[static_member] : +# 1327| r1327_3(glval) = VariableAddress[a] : +# 1327| r1327_4(A *) = CopyValue : r1327_3 +# 1327| r1327_5(glval) = VariableAddress[int_arg] : +# 1327| r1327_6(int) = Load[int_arg] : &:r1327_5, ~m? +# 1327| v1327_7(void) = Call[static_member] : func:r1327_2, 0:r1327_4, 1:r1327_6 +# 1327| mu1327_8(unknown) = ^CallSideEffect : ~m? +# 1327| v1327_9(void) = ^BufferReadSideEffect[0] : &:r1327_4, ~m? +# 1327| mu1327_10(unknown) = ^BufferMayWriteSideEffect[0] : &:r1327_4 +# 1328| r1328_1(glval) = FunctionAddress[static_member] : +# 1328| r1328_2(glval) = VariableAddress[a] : +# 1328| r1328_3(A *) = CopyValue : r1328_2 +# 1328| r1328_4(glval) = VariableAddress[int_arg] : +# 1328| r1328_5(int) = Load[int_arg] : &:r1328_4, ~m? +# 1328| v1328_6(void) = Call[static_member] : func:r1328_1, 0:r1328_3, 1:r1328_5 +# 1328| mu1328_7(unknown) = ^CallSideEffect : ~m? +# 1328| v1328_8(void) = ^BufferReadSideEffect[0] : &:r1328_3, ~m? +# 1328| mu1328_9(unknown) = ^BufferMayWriteSideEffect[0] : &:r1328_3 +# 1330| r1330_1(glval) = VariableAddress[a] : +# 1330| r1330_2(A *) = CopyValue : r1330_1 # 1330| r1330_3(glval) = FunctionAddress[static_member] : # 1330| r1330_4(glval) = VariableAddress[a_arg] : # 1330| r1330_5(A *) = Load[a_arg] : &:r1330_4, ~m? -# 1330| r1330_6(int) = Constant[-1] : -# 1330| v1330_7(void) = Call[static_member] : func:r1330_3, 0:r1330_5, 1:r1330_6 -# 1330| mu1330_8(unknown) = ^CallSideEffect : ~m? -# 1330| v1330_9(void) = ^BufferReadSideEffect[0] : &:r1330_5, ~m? -# 1330| mu1330_10(unknown) = ^BufferMayWriteSideEffect[0] : &:r1330_5 -# 1332| r1332_1(glval) = VariableAddress[a] : -# 1332| r1332_2(glval) = FunctionAddress[static_member_without_def] : -# 1332| v1332_3(void) = Call[static_member_without_def] : func:r1332_2 -# 1332| mu1332_4(unknown) = ^CallSideEffect : ~m? -# 1333| r1333_1(glval) = FunctionAddress[static_member_without_def] : -# 1333| v1333_2(void) = Call[static_member_without_def] : func:r1333_1 -# 1333| mu1333_3(unknown) = ^CallSideEffect : ~m? -# 1335| r1335_1(glval) = FunctionAddress[getAnInstanceOfA] : -# 1335| r1335_2(A *) = Call[getAnInstanceOfA] : func:r1335_1 +# 1330| r1330_6(glval) = VariableAddress[int_arg] : +# 1330| r1330_7(int) = Load[int_arg] : &:r1330_6, ~m? +# 1330| r1330_8(int) = Constant[2] : +# 1330| r1330_9(int) = Add : r1330_7, r1330_8 +# 1330| v1330_10(void) = Call[static_member] : func:r1330_3, 0:r1330_5, 1:r1330_9 +# 1330| mu1330_11(unknown) = ^CallSideEffect : ~m? +# 1330| v1330_12(void) = ^BufferReadSideEffect[0] : &:r1330_5, ~m? +# 1330| mu1330_13(unknown) = ^BufferMayWriteSideEffect[0] : &:r1330_5 +# 1331| r1331_1(glval) = VariableAddress[a_arg] : +# 1331| r1331_2(A *) = Load[a_arg] : &:r1331_1, ~m? +# 1331| r1331_3(glval) = CopyValue : r1331_2 +# 1331| r1331_4(glval) = FunctionAddress[static_member] : +# 1331| r1331_5(glval) = VariableAddress[a] : +# 1331| r1331_6(A *) = CopyValue : r1331_5 +# 1331| r1331_7(int) = Constant[99] : +# 1331| v1331_8(void) = Call[static_member] : func:r1331_4, 0:r1331_6, 1:r1331_7 +# 1331| mu1331_9(unknown) = ^CallSideEffect : ~m? +# 1331| v1331_10(void) = ^BufferReadSideEffect[0] : &:r1331_6, ~m? +# 1331| mu1331_11(unknown) = ^BufferMayWriteSideEffect[0] : &:r1331_6 +# 1332| r1332_1(glval) = VariableAddress[a_arg] : +# 1332| r1332_2(A *) = Load[a_arg] : &:r1332_1, ~m? +# 1332| r1332_3(glval) = FunctionAddress[static_member] : +# 1332| r1332_4(glval) = VariableAddress[a_arg] : +# 1332| r1332_5(A *) = Load[a_arg] : &:r1332_4, ~m? +# 1332| r1332_6(int) = Constant[-1] : +# 1332| v1332_7(void) = Call[static_member] : func:r1332_3, 0:r1332_5, 1:r1332_6 +# 1332| mu1332_8(unknown) = ^CallSideEffect : ~m? +# 1332| v1332_9(void) = ^BufferReadSideEffect[0] : &:r1332_5, ~m? +# 1332| mu1332_10(unknown) = ^BufferMayWriteSideEffect[0] : &:r1332_5 +# 1334| r1334_1(glval) = VariableAddress[a] : +# 1334| r1334_2(glval) = FunctionAddress[static_member_without_def] : +# 1334| v1334_3(void) = Call[static_member_without_def] : func:r1334_2 +# 1334| mu1334_4(unknown) = ^CallSideEffect : ~m? +# 1335| r1335_1(glval) = FunctionAddress[static_member_without_def] : +# 1335| v1335_2(void) = Call[static_member_without_def] : func:r1335_1 # 1335| mu1335_3(unknown) = ^CallSideEffect : ~m? -# 1335| r1335_4(glval) = FunctionAddress[static_member_without_def] : -# 1335| v1335_5(void) = Call[static_member_without_def] : func:r1335_4 -# 1335| mu1335_6(unknown) = ^CallSideEffect : ~m? -# 1336| v1336_1(void) = NoOp : -# 1336| r1336_2(glval) = VariableAddress[c] : -# 1336| r1336_3(glval) = FunctionAddress[~C] : -# 1336| v1336_4(void) = Call[~C] : func:r1336_3, this:r1336_2 -# 1336| mu1336_5(unknown) = ^CallSideEffect : ~m? -# 1336| v1336_6(void) = ^IndirectReadSideEffect[-1] : &:r1336_2, ~m? -# 1336| mu1336_7(C) = ^IndirectMayWriteSideEffect[-1] : &:r1336_2 -# 1319| v1319_10(void) = ReturnIndirection[a_arg] : &:r1319_8, ~m? -# 1319| v1319_11(void) = ReturnVoid : -# 1319| v1319_12(void) = AliasedUse : ~m? -# 1319| v1319_13(void) = ExitFunction : - -# 1338| int missingReturnValue(bool, int) -# 1338| Block 0 -# 1338| v1338_1(void) = EnterFunction : -# 1338| mu1338_2(unknown) = AliasedDefinition : -# 1338| mu1338_3(unknown) = InitializeNonLocal : -# 1338| r1338_4(glval) = VariableAddress[b] : -# 1338| mu1338_5(bool) = InitializeParameter[b] : &:r1338_4 -# 1338| r1338_6(glval) = VariableAddress[x] : -# 1338| mu1338_7(int) = InitializeParameter[x] : &:r1338_6 -# 1339| r1339_1(glval) = VariableAddress[b] : -# 1339| r1339_2(bool) = Load[b] : &:r1339_1, ~m? -# 1339| v1339_3(void) = ConditionalBranch : r1339_2 +# 1337| r1337_1(glval) = FunctionAddress[getAnInstanceOfA] : +# 1337| r1337_2(A *) = Call[getAnInstanceOfA] : func:r1337_1 +# 1337| mu1337_3(unknown) = ^CallSideEffect : ~m? +# 1337| r1337_4(glval) = FunctionAddress[static_member_without_def] : +# 1337| v1337_5(void) = Call[static_member_without_def] : func:r1337_4 +# 1337| mu1337_6(unknown) = ^CallSideEffect : ~m? +# 1338| v1338_1(void) = NoOp : +# 1338| r1338_2(glval) = VariableAddress[c] : +# 1338| r1338_3(glval) = FunctionAddress[~C] : +# 1338| v1338_4(void) = Call[~C] : func:r1338_3, this:r1338_2 +# 1338| mu1338_5(unknown) = ^CallSideEffect : ~m? +# 1338| v1338_6(void) = ^IndirectReadSideEffect[-1] : &:r1338_2, ~m? +# 1338| mu1338_7(C) = ^IndirectMayWriteSideEffect[-1] : &:r1338_2 +# 1321| v1321_10(void) = ReturnIndirection[a_arg] : &:r1321_8, ~m? +# 1321| v1321_11(void) = ReturnVoid : +# 1321| v1321_12(void) = AliasedUse : ~m? +# 1321| v1321_13(void) = ExitFunction : + +# 1340| int missingReturnValue(bool, int) +# 1340| Block 0 +# 1340| v1340_1(void) = EnterFunction : +# 1340| mu1340_2(unknown) = AliasedDefinition : +# 1340| mu1340_3(unknown) = InitializeNonLocal : +# 1340| r1340_4(glval) = VariableAddress[b] : +# 1340| mu1340_5(bool) = InitializeParameter[b] : &:r1340_4 +# 1340| r1340_6(glval) = VariableAddress[x] : +# 1340| mu1340_7(int) = InitializeParameter[x] : &:r1340_6 +# 1341| r1341_1(glval) = VariableAddress[b] : +# 1341| r1341_2(bool) = Load[b] : &:r1341_1, ~m? +# 1341| v1341_3(void) = ConditionalBranch : r1341_2 #-----| False -> Block 3 #-----| True -> Block 2 -# 1338| Block 1 -# 1338| r1338_8(glval) = VariableAddress[#return] : -# 1338| v1338_9(void) = ReturnValue : &:r1338_8, ~m? -# 1338| v1338_10(void) = AliasedUse : ~m? -# 1338| v1338_11(void) = ExitFunction : - -# 1340| Block 2 -# 1340| r1340_1(glval) = VariableAddress[#return] : -# 1340| r1340_2(glval) = VariableAddress[x] : -# 1340| r1340_3(int) = Load[x] : &:r1340_2, ~m? -# 1340| mu1340_4(int) = Store[#return] : &:r1340_1, r1340_3 -#-----| Goto -> Block 1 +# 1340| Block 1 +# 1340| r1340_8(glval) = VariableAddress[#return] : +# 1340| v1340_9(void) = ReturnValue : &:r1340_8, ~m? +# 1340| v1340_10(void) = AliasedUse : ~m? +# 1340| v1340_11(void) = ExitFunction : -# 1342| Block 3 +# 1342| Block 2 # 1342| r1342_1(glval) = VariableAddress[#return] : -# 1342| mu1342_2(int) = Uninitialized[#return] : &:r1342_1 +# 1342| r1342_2(glval) = VariableAddress[x] : +# 1342| r1342_3(int) = Load[x] : &:r1342_2, ~m? +# 1342| mu1342_4(int) = Store[#return] : &:r1342_1, r1342_3 #-----| Goto -> Block 1 -# 1344| void returnVoid(int, int) -# 1344| Block 0 -# 1344| v1344_1(void) = EnterFunction : -# 1344| mu1344_2(unknown) = AliasedDefinition : -# 1344| mu1344_3(unknown) = InitializeNonLocal : -# 1344| r1344_4(glval) = VariableAddress[x] : -# 1344| mu1344_5(int) = InitializeParameter[x] : &:r1344_4 -# 1344| r1344_6(glval) = VariableAddress[y] : -# 1344| mu1344_7(int) = InitializeParameter[y] : &:r1344_6 -# 1345| r1345_1(glval) = FunctionAddress[IntegerOps] : -# 1345| r1345_2(glval) = VariableAddress[x] : -# 1345| r1345_3(int) = Load[x] : &:r1345_2, ~m? -# 1345| r1345_4(glval) = VariableAddress[y] : -# 1345| r1345_5(int) = Load[y] : &:r1345_4, ~m? -# 1345| v1345_6(void) = Call[IntegerOps] : func:r1345_1, 0:r1345_3, 1:r1345_5 -# 1345| mu1345_7(unknown) = ^CallSideEffect : ~m? -# 1345| v1345_8(void) = NoOp : -# 1344| v1344_8(void) = ReturnVoid : -# 1344| v1344_9(void) = AliasedUse : ~m? -# 1344| v1344_10(void) = ExitFunction : - -# 1348| void gccBinaryConditional(bool, int, long) -# 1348| Block 0 -# 1348| v1348_1(void) = EnterFunction : -# 1348| mu1348_2(unknown) = AliasedDefinition : -# 1348| mu1348_3(unknown) = InitializeNonLocal : -# 1348| r1348_4(glval) = VariableAddress[b] : -# 1348| mu1348_5(bool) = InitializeParameter[b] : &:r1348_4 -# 1348| r1348_6(glval) = VariableAddress[x] : -# 1348| mu1348_7(int) = InitializeParameter[x] : &:r1348_6 -# 1348| r1348_8(glval) = VariableAddress[y] : -# 1348| mu1348_9(long) = InitializeParameter[y] : &:r1348_8 -# 1349| r1349_1(glval) = VariableAddress[z] : -# 1349| r1349_2(glval) = VariableAddress[x] : -# 1349| r1349_3(int) = Load[x] : &:r1349_2, ~m? -# 1349| mu1349_4(int) = Store[z] : &:r1349_1, r1349_3 -# 1350| r1350_1(glval) = VariableAddress[b] : -# 1350| r1350_2(bool) = Load[b] : &:r1350_1, ~m? -# 1350| v1350_3(void) = ConditionalBranch : r1350_2 +# 1344| Block 3 +# 1344| r1344_1(glval) = VariableAddress[#return] : +# 1344| mu1344_2(int) = Uninitialized[#return] : &:r1344_1 +#-----| Goto -> Block 1 + +# 1346| void returnVoid(int, int) +# 1346| Block 0 +# 1346| v1346_1(void) = EnterFunction : +# 1346| mu1346_2(unknown) = AliasedDefinition : +# 1346| mu1346_3(unknown) = InitializeNonLocal : +# 1346| r1346_4(glval) = VariableAddress[x] : +# 1346| mu1346_5(int) = InitializeParameter[x] : &:r1346_4 +# 1346| r1346_6(glval) = VariableAddress[y] : +# 1346| mu1346_7(int) = InitializeParameter[y] : &:r1346_6 +# 1347| r1347_1(glval) = FunctionAddress[IntegerOps] : +# 1347| r1347_2(glval) = VariableAddress[x] : +# 1347| r1347_3(int) = Load[x] : &:r1347_2, ~m? +# 1347| r1347_4(glval) = VariableAddress[y] : +# 1347| r1347_5(int) = Load[y] : &:r1347_4, ~m? +# 1347| v1347_6(void) = Call[IntegerOps] : func:r1347_1, 0:r1347_3, 1:r1347_5 +# 1347| mu1347_7(unknown) = ^CallSideEffect : ~m? +# 1347| v1347_8(void) = NoOp : +# 1346| v1346_8(void) = ReturnVoid : +# 1346| v1346_9(void) = AliasedUse : ~m? +# 1346| v1346_10(void) = ExitFunction : + +# 1350| void gccBinaryConditional(bool, int, long) +# 1350| Block 0 +# 1350| v1350_1(void) = EnterFunction : +# 1350| mu1350_2(unknown) = AliasedDefinition : +# 1350| mu1350_3(unknown) = InitializeNonLocal : +# 1350| r1350_4(glval) = VariableAddress[b] : +# 1350| mu1350_5(bool) = InitializeParameter[b] : &:r1350_4 +# 1350| r1350_6(glval) = VariableAddress[x] : +# 1350| mu1350_7(int) = InitializeParameter[x] : &:r1350_6 +# 1350| r1350_8(glval) = VariableAddress[y] : +# 1350| mu1350_9(long) = InitializeParameter[y] : &:r1350_8 +# 1351| r1351_1(glval) = VariableAddress[z] : +# 1351| r1351_2(glval) = VariableAddress[x] : +# 1351| r1351_3(int) = Load[x] : &:r1351_2, ~m? +# 1351| mu1351_4(int) = Store[z] : &:r1351_1, r1351_3 +# 1352| r1352_1(glval) = VariableAddress[b] : +# 1352| r1352_2(bool) = Load[b] : &:r1352_1, ~m? +# 1352| v1352_3(void) = ConditionalBranch : r1352_2 #-----| False -> Block 3 #-----| True -> Block 2 -# 1350| Block 1 -# 1350| r1350_4(glval) = VariableAddress[#temp1350:9] : -# 1350| r1350_5(int) = Load[#temp1350:9] : &:r1350_4, ~m? -# 1350| r1350_6(glval) = VariableAddress[z] : -# 1350| mu1350_7(int) = Store[z] : &:r1350_6, r1350_5 -# 1351| r1351_1(glval) = VariableAddress[b] : -# 1351| r1351_2(bool) = Load[b] : &:r1351_1, ~m? -# 1351| v1351_3(void) = ConditionalBranch : r1351_2 +# 1352| Block 1 +# 1352| r1352_4(glval) = VariableAddress[#temp1352:9] : +# 1352| r1352_5(int) = Load[#temp1352:9] : &:r1352_4, ~m? +# 1352| r1352_6(glval) = VariableAddress[z] : +# 1352| mu1352_7(int) = Store[z] : &:r1352_6, r1352_5 +# 1353| r1353_1(glval) = VariableAddress[b] : +# 1353| r1353_2(bool) = Load[b] : &:r1353_1, ~m? +# 1353| v1353_3(void) = ConditionalBranch : r1353_2 #-----| False -> Block 6 #-----| True -> Block 5 -# 1350| Block 2 -# 1350| r1350_8(glval) = VariableAddress[#temp1350:9] : -# 1350| mu1350_9(int) = Store[#temp1350:9] : &:r1350_8, r1350_2 +# 1352| Block 2 +# 1352| r1352_8(glval) = VariableAddress[#temp1352:9] : +# 1352| mu1352_9(int) = Store[#temp1352:9] : &:r1352_8, r1352_2 #-----| Goto -> Block 1 -# 1350| Block 3 -# 1350| r1350_10(glval) = VariableAddress[x] : -# 1350| r1350_11(int) = Load[x] : &:r1350_10, ~m? -# 1350| r1350_12(glval) = VariableAddress[#temp1350:9] : -# 1350| mu1350_13(int) = Store[#temp1350:9] : &:r1350_12, r1350_11 +# 1352| Block 3 +# 1352| r1352_10(glval) = VariableAddress[x] : +# 1352| r1352_11(int) = Load[x] : &:r1352_10, ~m? +# 1352| r1352_12(glval) = VariableAddress[#temp1352:9] : +# 1352| mu1352_13(int) = Store[#temp1352:9] : &:r1352_12, r1352_11 #-----| Goto -> Block 1 -# 1351| Block 4 -# 1351| r1351_4(glval) = VariableAddress[#temp1351:9] : -# 1351| r1351_5(long) = Load[#temp1351:9] : &:r1351_4, ~m? -# 1351| r1351_6(int) = Convert : r1351_5 -# 1351| r1351_7(glval) = VariableAddress[z] : -# 1351| mu1351_8(int) = Store[z] : &:r1351_7, r1351_6 -# 1352| r1352_1(glval) = VariableAddress[x] : -# 1352| r1352_2(int) = Load[x] : &:r1352_1, ~m? -# 1352| r1352_3(int) = Constant[0] : -# 1352| r1352_4(bool) = CompareNE : r1352_2, r1352_3 -# 1352| v1352_5(void) = ConditionalBranch : r1352_4 +# 1353| Block 4 +# 1353| r1353_4(glval) = VariableAddress[#temp1353:9] : +# 1353| r1353_5(long) = Load[#temp1353:9] : &:r1353_4, ~m? +# 1353| r1353_6(int) = Convert : r1353_5 +# 1353| r1353_7(glval) = VariableAddress[z] : +# 1353| mu1353_8(int) = Store[z] : &:r1353_7, r1353_6 +# 1354| r1354_1(glval) = VariableAddress[x] : +# 1354| r1354_2(int) = Load[x] : &:r1354_1, ~m? +# 1354| r1354_3(int) = Constant[0] : +# 1354| r1354_4(bool) = CompareNE : r1354_2, r1354_3 +# 1354| v1354_5(void) = ConditionalBranch : r1354_4 #-----| False -> Block 9 #-----| True -> Block 8 -# 1351| Block 5 -# 1351| r1351_9(glval) = VariableAddress[#temp1351:9] : -# 1351| mu1351_10(long) = Store[#temp1351:9] : &:r1351_9, r1351_2 +# 1353| Block 5 +# 1353| r1353_9(glval) = VariableAddress[#temp1353:9] : +# 1353| mu1353_10(long) = Store[#temp1353:9] : &:r1353_9, r1353_2 #-----| Goto -> Block 4 -# 1351| Block 6 -# 1351| r1351_11(glval) = VariableAddress[y] : -# 1351| r1351_12(long) = Load[y] : &:r1351_11, ~m? -# 1351| r1351_13(glval) = VariableAddress[#temp1351:9] : -# 1351| mu1351_14(long) = Store[#temp1351:9] : &:r1351_13, r1351_12 +# 1353| Block 6 +# 1353| r1353_11(glval) = VariableAddress[y] : +# 1353| r1353_12(long) = Load[y] : &:r1353_11, ~m? +# 1353| r1353_13(glval) = VariableAddress[#temp1353:9] : +# 1353| mu1353_14(long) = Store[#temp1353:9] : &:r1353_13, r1353_12 #-----| Goto -> Block 4 -# 1352| Block 7 -# 1352| r1352_6(glval) = VariableAddress[#temp1352:9] : -# 1352| r1352_7(int) = Load[#temp1352:9] : &:r1352_6, ~m? -# 1352| r1352_8(glval) = VariableAddress[z] : -# 1352| mu1352_9(int) = Store[z] : &:r1352_8, r1352_7 -# 1353| r1353_1(glval) = VariableAddress[x] : -# 1353| r1353_2(int) = Load[x] : &:r1353_1, ~m? -# 1353| r1353_3(int) = Constant[0] : -# 1353| r1353_4(bool) = CompareNE : r1353_2, r1353_3 -# 1353| v1353_5(void) = ConditionalBranch : r1353_4 +# 1354| Block 7 +# 1354| r1354_6(glval) = VariableAddress[#temp1354:9] : +# 1354| r1354_7(int) = Load[#temp1354:9] : &:r1354_6, ~m? +# 1354| r1354_8(glval) = VariableAddress[z] : +# 1354| mu1354_9(int) = Store[z] : &:r1354_8, r1354_7 +# 1355| r1355_1(glval) = VariableAddress[x] : +# 1355| r1355_2(int) = Load[x] : &:r1355_1, ~m? +# 1355| r1355_3(int) = Constant[0] : +# 1355| r1355_4(bool) = CompareNE : r1355_2, r1355_3 +# 1355| v1355_5(void) = ConditionalBranch : r1355_4 #-----| False -> Block 12 #-----| True -> Block 11 -# 1352| Block 8 -# 1352| r1352_10(glval) = VariableAddress[#temp1352:9] : -# 1352| mu1352_11(int) = Store[#temp1352:9] : &:r1352_10, r1352_2 +# 1354| Block 8 +# 1354| r1354_10(glval) = VariableAddress[#temp1354:9] : +# 1354| mu1354_11(int) = Store[#temp1354:9] : &:r1354_10, r1354_2 #-----| Goto -> Block 7 -# 1352| Block 9 -# 1352| r1352_12(glval) = VariableAddress[x] : -# 1352| r1352_13(int) = Load[x] : &:r1352_12, ~m? -# 1352| r1352_14(glval) = VariableAddress[#temp1352:9] : -# 1352| mu1352_15(int) = Store[#temp1352:9] : &:r1352_14, r1352_13 +# 1354| Block 9 +# 1354| r1354_12(glval) = VariableAddress[x] : +# 1354| r1354_13(int) = Load[x] : &:r1354_12, ~m? +# 1354| r1354_14(glval) = VariableAddress[#temp1354:9] : +# 1354| mu1354_15(int) = Store[#temp1354:9] : &:r1354_14, r1354_13 #-----| Goto -> Block 7 -# 1353| Block 10 -# 1353| r1353_6(glval) = VariableAddress[#temp1353:9] : -# 1353| r1353_7(long) = Load[#temp1353:9] : &:r1353_6, ~m? -# 1353| r1353_8(int) = Convert : r1353_7 -# 1353| r1353_9(glval) = VariableAddress[z] : -# 1353| mu1353_10(int) = Store[z] : &:r1353_9, r1353_8 -# 1354| r1354_1(glval) = VariableAddress[y] : -# 1354| r1354_2(long) = Load[y] : &:r1354_1, ~m? -# 1354| r1354_3(long) = Constant[0] : -# 1354| r1354_4(bool) = CompareNE : r1354_2, r1354_3 -# 1354| v1354_5(void) = ConditionalBranch : r1354_4 +# 1355| Block 10 +# 1355| r1355_6(glval) = VariableAddress[#temp1355:9] : +# 1355| r1355_7(long) = Load[#temp1355:9] : &:r1355_6, ~m? +# 1355| r1355_8(int) = Convert : r1355_7 +# 1355| r1355_9(glval) = VariableAddress[z] : +# 1355| mu1355_10(int) = Store[z] : &:r1355_9, r1355_8 +# 1356| r1356_1(glval) = VariableAddress[y] : +# 1356| r1356_2(long) = Load[y] : &:r1356_1, ~m? +# 1356| r1356_3(long) = Constant[0] : +# 1356| r1356_4(bool) = CompareNE : r1356_2, r1356_3 +# 1356| v1356_5(void) = ConditionalBranch : r1356_4 #-----| False -> Block 15 #-----| True -> Block 14 -# 1353| Block 11 -# 1353| r1353_11(glval) = VariableAddress[#temp1353:9] : -# 1353| mu1353_12(long) = Store[#temp1353:9] : &:r1353_11, r1353_2 +# 1355| Block 11 +# 1355| r1355_11(glval) = VariableAddress[#temp1355:9] : +# 1355| mu1355_12(long) = Store[#temp1355:9] : &:r1355_11, r1355_2 #-----| Goto -> Block 10 -# 1353| Block 12 -# 1353| r1353_13(glval) = VariableAddress[y] : -# 1353| r1353_14(long) = Load[y] : &:r1353_13, ~m? -# 1353| r1353_15(glval) = VariableAddress[#temp1353:9] : -# 1353| mu1353_16(long) = Store[#temp1353:9] : &:r1353_15, r1353_14 +# 1355| Block 12 +# 1355| r1355_13(glval) = VariableAddress[y] : +# 1355| r1355_14(long) = Load[y] : &:r1355_13, ~m? +# 1355| r1355_15(glval) = VariableAddress[#temp1355:9] : +# 1355| mu1355_16(long) = Store[#temp1355:9] : &:r1355_15, r1355_14 #-----| Goto -> Block 10 -# 1354| Block 13 -# 1354| r1354_6(glval) = VariableAddress[#temp1354:9] : -# 1354| r1354_7(long) = Load[#temp1354:9] : &:r1354_6, ~m? -# 1354| r1354_8(int) = Convert : r1354_7 -# 1354| r1354_9(glval) = VariableAddress[z] : -# 1354| mu1354_10(int) = Store[z] : &:r1354_9, r1354_8 -# 1355| r1355_1(glval) = VariableAddress[y] : -# 1355| r1355_2(long) = Load[y] : &:r1355_1, ~m? -# 1355| r1355_3(long) = Constant[0] : -# 1355| r1355_4(bool) = CompareNE : r1355_2, r1355_3 -# 1355| v1355_5(void) = ConditionalBranch : r1355_4 +# 1356| Block 13 +# 1356| r1356_6(glval) = VariableAddress[#temp1356:9] : +# 1356| r1356_7(long) = Load[#temp1356:9] : &:r1356_6, ~m? +# 1356| r1356_8(int) = Convert : r1356_7 +# 1356| r1356_9(glval) = VariableAddress[z] : +# 1356| mu1356_10(int) = Store[z] : &:r1356_9, r1356_8 +# 1357| r1357_1(glval) = VariableAddress[y] : +# 1357| r1357_2(long) = Load[y] : &:r1357_1, ~m? +# 1357| r1357_3(long) = Constant[0] : +# 1357| r1357_4(bool) = CompareNE : r1357_2, r1357_3 +# 1357| v1357_5(void) = ConditionalBranch : r1357_4 #-----| False -> Block 18 #-----| True -> Block 17 -# 1354| Block 14 -# 1354| r1354_11(glval) = VariableAddress[#temp1354:9] : -# 1354| mu1354_12(long) = Store[#temp1354:9] : &:r1354_11, r1354_2 +# 1356| Block 14 +# 1356| r1356_11(glval) = VariableAddress[#temp1356:9] : +# 1356| mu1356_12(long) = Store[#temp1356:9] : &:r1356_11, r1356_2 #-----| Goto -> Block 13 -# 1354| Block 15 -# 1354| r1354_13(glval) = VariableAddress[x] : -# 1354| r1354_14(int) = Load[x] : &:r1354_13, ~m? -# 1354| r1354_15(long) = Convert : r1354_14 -# 1354| r1354_16(glval) = VariableAddress[#temp1354:9] : -# 1354| mu1354_17(long) = Store[#temp1354:9] : &:r1354_16, r1354_15 +# 1356| Block 15 +# 1356| r1356_13(glval) = VariableAddress[x] : +# 1356| r1356_14(int) = Load[x] : &:r1356_13, ~m? +# 1356| r1356_15(long) = Convert : r1356_14 +# 1356| r1356_16(glval) = VariableAddress[#temp1356:9] : +# 1356| mu1356_17(long) = Store[#temp1356:9] : &:r1356_16, r1356_15 #-----| Goto -> Block 13 -# 1355| Block 16 -# 1355| r1355_6(glval) = VariableAddress[#temp1355:9] : -# 1355| r1355_7(long) = Load[#temp1355:9] : &:r1355_6, ~m? -# 1355| r1355_8(int) = Convert : r1355_7 -# 1355| r1355_9(glval) = VariableAddress[z] : -# 1355| mu1355_10(int) = Store[z] : &:r1355_9, r1355_8 -# 1357| r1357_1(glval) = VariableAddress[x] : -# 1357| r1357_2(int) = Load[x] : &:r1357_1, ~m? -# 1357| r1357_3(int) = Constant[0] : -# 1357| r1357_4(bool) = CompareNE : r1357_2, r1357_3 -# 1357| v1357_5(void) = ConditionalBranch : r1357_4 +# 1357| Block 16 +# 1357| r1357_6(glval) = VariableAddress[#temp1357:9] : +# 1357| r1357_7(long) = Load[#temp1357:9] : &:r1357_6, ~m? +# 1357| r1357_8(int) = Convert : r1357_7 +# 1357| r1357_9(glval) = VariableAddress[z] : +# 1357| mu1357_10(int) = Store[z] : &:r1357_9, r1357_8 +# 1359| r1359_1(glval) = VariableAddress[x] : +# 1359| r1359_2(int) = Load[x] : &:r1359_1, ~m? +# 1359| r1359_3(int) = Constant[0] : +# 1359| r1359_4(bool) = CompareNE : r1359_2, r1359_3 +# 1359| v1359_5(void) = ConditionalBranch : r1359_4 #-----| False -> Block 25 #-----| True -> Block 24 -# 1355| Block 17 -# 1355| r1355_11(glval) = VariableAddress[#temp1355:9] : -# 1355| mu1355_12(long) = Store[#temp1355:9] : &:r1355_11, r1355_2 +# 1357| Block 17 +# 1357| r1357_11(glval) = VariableAddress[#temp1357:9] : +# 1357| mu1357_12(long) = Store[#temp1357:9] : &:r1357_11, r1357_2 #-----| Goto -> Block 16 -# 1355| Block 18 -# 1355| r1355_13(glval) = VariableAddress[y] : -# 1355| r1355_14(long) = Load[y] : &:r1355_13, ~m? -# 1355| r1355_15(glval) = VariableAddress[#temp1355:9] : -# 1355| mu1355_16(long) = Store[#temp1355:9] : &:r1355_15, r1355_14 +# 1357| Block 18 +# 1357| r1357_13(glval) = VariableAddress[y] : +# 1357| r1357_14(long) = Load[y] : &:r1357_13, ~m? +# 1357| r1357_15(glval) = VariableAddress[#temp1357:9] : +# 1357| mu1357_16(long) = Store[#temp1357:9] : &:r1357_15, r1357_14 #-----| Goto -> Block 16 -# 1357| Block 19 -# 1357| r1357_6(glval) = VariableAddress[#temp1357:9] : -# 1357| r1357_7(int) = Load[#temp1357:9] : &:r1357_6, ~m? -# 1357| r1357_8(glval) = VariableAddress[z] : -# 1357| mu1357_9(int) = Store[z] : &:r1357_8, r1357_7 -# 1358| v1358_1(void) = NoOp : -# 1348| v1348_10(void) = ReturnVoid : -# 1348| v1348_11(void) = AliasedUse : ~m? -# 1348| v1348_12(void) = ExitFunction : - -# 1357| Block 20 -# 1357| r1357_10(glval) = VariableAddress[#temp1357:9] : -# 1357| mu1357_11(int) = Store[#temp1357:9] : &:r1357_10, r1357_16 +# 1359| Block 19 +# 1359| r1359_6(glval) = VariableAddress[#temp1359:9] : +# 1359| r1359_7(int) = Load[#temp1359:9] : &:r1359_6, ~m? +# 1359| r1359_8(glval) = VariableAddress[z] : +# 1359| mu1359_9(int) = Store[z] : &:r1359_8, r1359_7 +# 1360| v1360_1(void) = NoOp : +# 1350| v1350_10(void) = ReturnVoid : +# 1350| v1350_11(void) = AliasedUse : ~m? +# 1350| v1350_12(void) = ExitFunction : + +# 1359| Block 20 +# 1359| r1359_10(glval) = VariableAddress[#temp1359:9] : +# 1359| mu1359_11(int) = Store[#temp1359:9] : &:r1359_10, r1359_16 #-----| Goto -> Block 19 -# 1357| Block 21 -# 1357| r1357_12(glval) = VariableAddress[#temp1357:10] : -# 1357| r1357_13(bool) = Constant[0] : -# 1357| mu1357_14(bool) = Store[#temp1357:10] : &:r1357_12, r1357_13 +# 1359| Block 21 +# 1359| r1359_12(glval) = VariableAddress[#temp1359:10] : +# 1359| r1359_13(bool) = Constant[0] : +# 1359| mu1359_14(bool) = Store[#temp1359:10] : &:r1359_12, r1359_13 #-----| Goto -> Block 22 -# 1357| Block 22 -# 1357| r1357_15(glval) = VariableAddress[#temp1357:10] : -# 1357| r1357_16(bool) = Load[#temp1357:10] : &:r1357_15, ~m? -# 1357| v1357_17(void) = ConditionalBranch : r1357_16 +# 1359| Block 22 +# 1359| r1359_15(glval) = VariableAddress[#temp1359:10] : +# 1359| r1359_16(bool) = Load[#temp1359:10] : &:r1359_15, ~m? +# 1359| v1359_17(void) = ConditionalBranch : r1359_16 #-----| False -> Block 26 #-----| True -> Block 20 -# 1357| Block 23 -# 1357| r1357_18(glval) = VariableAddress[#temp1357:10] : -# 1357| r1357_19(bool) = Constant[1] : -# 1357| mu1357_20(bool) = Store[#temp1357:10] : &:r1357_18, r1357_19 +# 1359| Block 23 +# 1359| r1359_18(glval) = VariableAddress[#temp1359:10] : +# 1359| r1359_19(bool) = Constant[1] : +# 1359| mu1359_20(bool) = Store[#temp1359:10] : &:r1359_18, r1359_19 #-----| Goto -> Block 22 -# 1357| Block 24 -# 1357| r1357_21(glval) = VariableAddress[b] : -# 1357| r1357_22(bool) = Load[b] : &:r1357_21, ~m? -# 1357| v1357_23(void) = ConditionalBranch : r1357_22 +# 1359| Block 24 +# 1359| r1359_21(glval) = VariableAddress[b] : +# 1359| r1359_22(bool) = Load[b] : &:r1359_21, ~m? +# 1359| v1359_23(void) = ConditionalBranch : r1359_22 #-----| False -> Block 25 #-----| True -> Block 23 -# 1357| Block 25 -# 1357| r1357_24(glval) = VariableAddress[y] : -# 1357| r1357_25(long) = Load[y] : &:r1357_24, ~m? -# 1357| r1357_26(long) = Constant[0] : -# 1357| r1357_27(bool) = CompareNE : r1357_25, r1357_26 -# 1357| v1357_28(void) = ConditionalBranch : r1357_27 +# 1359| Block 25 +# 1359| r1359_24(glval) = VariableAddress[y] : +# 1359| r1359_25(long) = Load[y] : &:r1359_24, ~m? +# 1359| r1359_26(long) = Constant[0] : +# 1359| r1359_27(bool) = CompareNE : r1359_25, r1359_26 +# 1359| v1359_28(void) = ConditionalBranch : r1359_27 #-----| False -> Block 21 #-----| True -> Block 23 -# 1357| Block 26 -# 1357| r1357_29(glval) = VariableAddress[x] : -# 1357| r1357_30(int) = Load[x] : &:r1357_29, ~m? -# 1357| r1357_31(glval) = VariableAddress[#temp1357:9] : -# 1357| mu1357_32(int) = Store[#temp1357:9] : &:r1357_31, r1357_30 +# 1359| Block 26 +# 1359| r1359_29(glval) = VariableAddress[x] : +# 1359| r1359_30(int) = Load[x] : &:r1359_29, ~m? +# 1359| r1359_31(glval) = VariableAddress[#temp1359:9] : +# 1359| mu1359_32(int) = Store[#temp1359:9] : &:r1359_31, r1359_30 #-----| Goto -> Block 19 -# 1363| int shortCircuitConditional(int, int) -# 1363| Block 0 -# 1363| v1363_1(void) = EnterFunction : -# 1363| mu1363_2(unknown) = AliasedDefinition : -# 1363| mu1363_3(unknown) = InitializeNonLocal : -# 1363| r1363_4(glval) = VariableAddress[x] : -# 1363| mu1363_5(int) = InitializeParameter[x] : &:r1363_4 -# 1363| r1363_6(glval) = VariableAddress[y] : -# 1363| mu1363_7(int) = InitializeParameter[y] : &:r1363_6 -# 1364| r1364_1(glval) = VariableAddress[#return] : -# 1364| r1364_2(glval) = FunctionAddress[predicateA] : -# 1364| r1364_3(bool) = Call[predicateA] : func:r1364_2 -# 1364| mu1364_4(unknown) = ^CallSideEffect : ~m? -# 1364| v1364_5(void) = ConditionalBranch : r1364_3 +# 1365| int shortCircuitConditional(int, int) +# 1365| Block 0 +# 1365| v1365_1(void) = EnterFunction : +# 1365| mu1365_2(unknown) = AliasedDefinition : +# 1365| mu1365_3(unknown) = InitializeNonLocal : +# 1365| r1365_4(glval) = VariableAddress[x] : +# 1365| mu1365_5(int) = InitializeParameter[x] : &:r1365_4 +# 1365| r1365_6(glval) = VariableAddress[y] : +# 1365| mu1365_7(int) = InitializeParameter[y] : &:r1365_6 +# 1366| r1366_1(glval) = VariableAddress[#return] : +# 1366| r1366_2(glval) = FunctionAddress[predicateA] : +# 1366| r1366_3(bool) = Call[predicateA] : func:r1366_2 +# 1366| mu1366_4(unknown) = ^CallSideEffect : ~m? +# 1366| v1366_5(void) = ConditionalBranch : r1366_3 #-----| False -> Block 4 #-----| True -> Block 2 -# 1364| Block 1 -# 1364| r1364_6(glval) = VariableAddress[#temp1364:12] : -# 1364| r1364_7(int) = Load[#temp1364:12] : &:r1364_6, ~m? -# 1364| mu1364_8(int) = Store[#return] : &:r1364_1, r1364_7 -# 1363| r1363_8(glval) = VariableAddress[#return] : -# 1363| v1363_9(void) = ReturnValue : &:r1363_8, ~m? -# 1363| v1363_10(void) = AliasedUse : ~m? -# 1363| v1363_11(void) = ExitFunction : - -# 1364| Block 2 -# 1364| r1364_9(glval) = FunctionAddress[predicateB] : -# 1364| r1364_10(bool) = Call[predicateB] : func:r1364_9 -# 1364| mu1364_11(unknown) = ^CallSideEffect : ~m? -# 1364| v1364_12(void) = ConditionalBranch : r1364_10 +# 1366| Block 1 +# 1366| r1366_6(glval) = VariableAddress[#temp1366:12] : +# 1366| r1366_7(int) = Load[#temp1366:12] : &:r1366_6, ~m? +# 1366| mu1366_8(int) = Store[#return] : &:r1366_1, r1366_7 +# 1365| r1365_8(glval) = VariableAddress[#return] : +# 1365| v1365_9(void) = ReturnValue : &:r1365_8, ~m? +# 1365| v1365_10(void) = AliasedUse : ~m? +# 1365| v1365_11(void) = ExitFunction : + +# 1366| Block 2 +# 1366| r1366_9(glval) = FunctionAddress[predicateB] : +# 1366| r1366_10(bool) = Call[predicateB] : func:r1366_9 +# 1366| mu1366_11(unknown) = ^CallSideEffect : ~m? +# 1366| v1366_12(void) = ConditionalBranch : r1366_10 #-----| False -> Block 4 #-----| True -> Block 3 -# 1364| Block 3 -# 1364| r1364_13(glval) = VariableAddress[x] : -# 1364| r1364_14(int) = Load[x] : &:r1364_13, ~m? -# 1364| r1364_15(glval) = VariableAddress[#temp1364:12] : -# 1364| mu1364_16(int) = Store[#temp1364:12] : &:r1364_15, r1364_14 +# 1366| Block 3 +# 1366| r1366_13(glval) = VariableAddress[x] : +# 1366| r1366_14(int) = Load[x] : &:r1366_13, ~m? +# 1366| r1366_15(glval) = VariableAddress[#temp1366:12] : +# 1366| mu1366_16(int) = Store[#temp1366:12] : &:r1366_15, r1366_14 #-----| Goto -> Block 1 -# 1364| Block 4 -# 1364| r1364_17(glval) = VariableAddress[y] : -# 1364| r1364_18(int) = Load[y] : &:r1364_17, ~m? -# 1364| r1364_19(glval) = VariableAddress[#temp1364:12] : -# 1364| mu1364_20(int) = Store[#temp1364:12] : &:r1364_19, r1364_18 +# 1366| Block 4 +# 1366| r1366_17(glval) = VariableAddress[y] : +# 1366| r1366_18(int) = Load[y] : &:r1366_17, ~m? +# 1366| r1366_19(glval) = VariableAddress[#temp1366:12] : +# 1366| mu1366_20(int) = Store[#temp1366:12] : &:r1366_19, r1366_18 #-----| Goto -> Block 1 -# 1369| void f(int*) -# 1369| Block 0 -# 1369| v1369_1(void) = EnterFunction : -# 1369| mu1369_2(unknown) = AliasedDefinition : -# 1369| mu1369_3(unknown) = InitializeNonLocal : -# 1369| r1369_4(glval) = VariableAddress[p] : -# 1369| mu1369_5(int *) = InitializeParameter[p] : &:r1369_4 -# 1369| r1369_6(int *) = Load[p] : &:r1369_4, ~m? -# 1369| mu1369_7(unknown) = InitializeIndirection[p] : &:r1369_6 -# 1371| r1371_1(glval) = FunctionAddress[operator new] : -# 1371| r1371_2(unsigned long) = Constant[4] : -# 1371| r1371_3(glval) = VariableAddress[p] : -# 1371| r1371_4(int *) = Load[p] : &:r1371_3, ~m? -# 1371| r1371_5(void *) = Convert : r1371_4 -# 1371| r1371_6(void *) = Call[operator new] : func:r1371_1, 0:r1371_2, 1:r1371_5 -# 1371| mu1371_7(unknown) = ^CallSideEffect : ~m? -# 1371| mu1371_8(unknown) = ^InitializeDynamicAllocation : &:r1371_6 -# 1371| r1371_9(int *) = Convert : r1371_6 -# 1372| v1372_1(void) = NoOp : -# 1369| v1369_8(void) = ReturnIndirection[p] : &:r1369_6, ~m? -# 1369| v1369_9(void) = ReturnVoid : -# 1369| v1369_10(void) = AliasedUse : ~m? -# 1369| v1369_11(void) = ExitFunction : - -# 1375| Point defaultConstruct() -# 1375| Block 0 -# 1375| v1375_1(void) = EnterFunction : -# 1375| mu1375_2(unknown) = AliasedDefinition : -# 1375| mu1375_3(unknown) = InitializeNonLocal : -# 1376| r1376_1(glval) = VariableAddress[#return] : -# 1376| r1376_2(Point) = Constant[0] : -# 1376| mu1376_3(Point) = Store[#return] : &:r1376_1, r1376_2 -# 1375| r1375_4(glval) = VariableAddress[#return] : -# 1375| v1375_5(void) = ReturnValue : &:r1375_4, ~m? -# 1375| v1375_6(void) = AliasedUse : ~m? -# 1375| v1375_7(void) = ExitFunction : - -# 1375| String defaultConstruct() -# 1375| Block 0 -# 1375| v1375_1(void) = EnterFunction : -# 1375| mu1375_2(unknown) = AliasedDefinition : -# 1375| mu1375_3(unknown) = InitializeNonLocal : -# 1376| r1376_1(glval) = VariableAddress[#return] : -# 1376| mu1376_2(String) = Uninitialized[#return] : &:r1376_1 -# 1376| r1376_3(glval) = FunctionAddress[String] : -# 1376| v1376_4(void) = Call[String] : func:r1376_3, this:r1376_1 -# 1376| mu1376_5(unknown) = ^CallSideEffect : ~m? -# 1376| mu1376_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1376_1 -# 1375| r1375_4(glval) = VariableAddress[#return] : -# 1375| v1375_5(void) = ReturnValue : &:r1375_4, ~m? -# 1375| v1375_6(void) = AliasedUse : ~m? -# 1375| v1375_7(void) = ExitFunction : - -# 1375| copy_constructor defaultConstruct() -# 1375| Block 0 -# 1375| v1375_1(void) = EnterFunction : -# 1375| mu1375_2(unknown) = AliasedDefinition : -# 1375| mu1375_3(unknown) = InitializeNonLocal : -# 1376| r1376_1(glval) = VariableAddress[#return] : -# 1376| mu1376_2(copy_constructor) = Uninitialized[#return] : &:r1376_1 -# 1376| r1376_3(glval) = FunctionAddress[copy_constructor] : -# 1376| v1376_4(void) = Call[copy_constructor] : func:r1376_3, this:r1376_1 -# 1376| mu1376_5(unknown) = ^CallSideEffect : ~m? -# 1376| mu1376_6(copy_constructor) = ^IndirectMayWriteSideEffect[-1] : &:r1376_1 -# 1375| r1375_4(glval) = VariableAddress[#return] : -# 1375| v1375_5(void) = ReturnValue : &:r1375_4, ~m? -# 1375| v1375_6(void) = AliasedUse : ~m? -# 1375| v1375_7(void) = ExitFunction : - -# 1375| destructor_only defaultConstruct() -# 1375| Block 0 -# 1375| v1375_1(void) = EnterFunction : -# 1375| mu1375_2(unknown) = AliasedDefinition : -# 1375| mu1375_3(unknown) = InitializeNonLocal : -# 1376| r1376_1(glval) = VariableAddress[#return] : -# 1376| r1376_2(destructor_only) = Constant[0] : -# 1376| mu1376_3(destructor_only) = Store[#return] : &:r1376_1, r1376_2 -# 1375| r1375_4(glval) = VariableAddress[#return] : -# 1375| v1375_5(void) = ReturnValue : &:r1375_4, ~m? -# 1375| v1375_6(void) = AliasedUse : ~m? -# 1375| v1375_7(void) = ExitFunction : - -# 1414| void temporary_string() -# 1414| Block 0 -# 1414| v1414_1(void) = EnterFunction : -# 1414| mu1414_2(unknown) = AliasedDefinition : -# 1414| mu1414_3(unknown) = InitializeNonLocal : -# 1415| r1415_1(glval) = VariableAddress[s] : -# 1415| r1415_2(glval) = FunctionAddress[returnValue] : -# 1415| r1415_3(String) = Call[returnValue] : func:r1415_2 -# 1415| mu1415_4(unknown) = ^CallSideEffect : ~m? -# 1415| mu1415_5(String) = Store[s] : &:r1415_1, r1415_3 -# 1416| r1416_1(glval) = VariableAddress[rs] : -# 1416| r1416_2(glval) = VariableAddress[#temp1416:24] : -# 1416| r1416_3(glval) = FunctionAddress[returnValue] : -# 1416| r1416_4(String) = Call[returnValue] : func:r1416_3 -# 1416| mu1416_5(unknown) = ^CallSideEffect : ~m? -# 1416| mu1416_6(String) = Store[#temp1416:24] : &:r1416_2, r1416_4 -# 1416| r1416_7(glval) = Convert : r1416_2 -# 1416| r1416_8(String &) = CopyValue : r1416_7 -# 1416| mu1416_9(String &) = Store[rs] : &:r1416_1, r1416_8 -# 1418| r1418_1(glval) = FunctionAddress[acceptRef] : -# 1418| r1418_2(glval) = VariableAddress[s] : -# 1418| r1418_3(glval) = Convert : r1418_2 -# 1418| r1418_4(String &) = CopyValue : r1418_3 -# 1418| v1418_5(void) = Call[acceptRef] : func:r1418_1, 0:r1418_4 -# 1418| mu1418_6(unknown) = ^CallSideEffect : ~m? -# 1418| v1418_7(void) = ^BufferReadSideEffect[0] : &:r1418_4, ~m? -# 1419| r1419_1(glval) = FunctionAddress[acceptRef] : -# 1419| r1419_2(glval) = VariableAddress[#temp1419:23] : -# 1419| mu1419_3(String) = Uninitialized[#temp1419:23] : &:r1419_2 -# 1419| r1419_4(glval) = FunctionAddress[String] : -# 1419| r1419_5(glval) = StringConstant["foo"] : -# 1419| r1419_6(char *) = Convert : r1419_5 -# 1419| v1419_7(void) = Call[String] : func:r1419_4, this:r1419_2, 0:r1419_6 -# 1419| mu1419_8(unknown) = ^CallSideEffect : ~m? -# 1419| v1419_9(void) = ^BufferReadSideEffect[0] : &:r1419_6, ~m? -# 1419| mu1419_10(String) = ^IndirectMayWriteSideEffect[-1] : &:r1419_2 -# 1419| r1419_11(String &) = CopyValue : r1419_2 -# 1419| v1419_12(void) = Call[acceptRef] : func:r1419_1, 0:r1419_11 -# 1419| mu1419_13(unknown) = ^CallSideEffect : ~m? -# 1419| v1419_14(void) = ^BufferReadSideEffect[0] : &:r1419_11, ~m? -# 1419| r1419_15(glval) = CopyValue : r1419_2 -# 1419| r1419_16(glval) = FunctionAddress[~String] : -# 1419| v1419_17(void) = Call[~String] : func:r1419_16, this:r1419_15 -# 1419| mu1419_18(unknown) = ^CallSideEffect : ~m? -# 1419| v1419_19(void) = ^IndirectReadSideEffect[-1] : &:r1419_15, ~m? -# 1419| mu1419_20(String) = ^IndirectMayWriteSideEffect[-1] : &:r1419_15 -# 1420| r1420_1(glval) = FunctionAddress[acceptValue] : -# 1420| r1420_2(glval) = VariableAddress[#temp1420:17] : -# 1420| mu1420_3(String) = Uninitialized[#temp1420:17] : &:r1420_2 -# 1420| r1420_4(glval) = FunctionAddress[String] : -# 1420| r1420_5(glval) = VariableAddress[s] : -# 1420| r1420_6(glval) = Convert : r1420_5 -# 1420| r1420_7(String &) = CopyValue : r1420_6 -# 1420| v1420_8(void) = Call[String] : func:r1420_4, this:r1420_2, 0:r1420_7 -# 1420| mu1420_9(unknown) = ^CallSideEffect : ~m? -# 1420| v1420_10(void) = ^BufferReadSideEffect[0] : &:r1420_7, ~m? -# 1420| mu1420_11(String) = ^IndirectMayWriteSideEffect[-1] : &:r1420_2 -# 1420| r1420_12(String) = Load[#temp1420:17] : &:r1420_2, ~m? -# 1420| v1420_13(void) = Call[acceptValue] : func:r1420_1, 0:r1420_12 -# 1420| mu1420_14(unknown) = ^CallSideEffect : ~m? -# 1420| r1420_15(glval) = CopyValue : r1420_2 -# 1420| r1420_16(glval) = FunctionAddress[~String] : -# 1420| v1420_17(void) = Call[~String] : func:r1420_16, this:r1420_15 -# 1420| mu1420_18(unknown) = ^CallSideEffect : ~m? -# 1420| v1420_19(void) = ^IndirectReadSideEffect[-1] : &:r1420_15, ~m? -# 1420| mu1420_20(String) = ^IndirectMayWriteSideEffect[-1] : &:r1420_15 -# 1421| r1421_1(glval) = FunctionAddress[acceptValue] : -# 1421| r1421_2(glval) = VariableAddress[#temp1421:25] : -# 1421| mu1421_3(String) = Uninitialized[#temp1421:25] : &:r1421_2 +# 1371| void f(int*) +# 1371| Block 0 +# 1371| v1371_1(void) = EnterFunction : +# 1371| mu1371_2(unknown) = AliasedDefinition : +# 1371| mu1371_3(unknown) = InitializeNonLocal : +# 1371| r1371_4(glval) = VariableAddress[p] : +# 1371| mu1371_5(int *) = InitializeParameter[p] : &:r1371_4 +# 1371| r1371_6(int *) = Load[p] : &:r1371_4, ~m? +# 1371| mu1371_7(unknown) = InitializeIndirection[p] : &:r1371_6 +# 1373| r1373_1(glval) = FunctionAddress[operator new] : +# 1373| r1373_2(unsigned long) = Constant[4] : +# 1373| r1373_3(glval) = VariableAddress[p] : +# 1373| r1373_4(int *) = Load[p] : &:r1373_3, ~m? +# 1373| r1373_5(void *) = Convert : r1373_4 +# 1373| r1373_6(void *) = Call[operator new] : func:r1373_1, 0:r1373_2, 1:r1373_5 +# 1373| mu1373_7(unknown) = ^CallSideEffect : ~m? +# 1373| mu1373_8(unknown) = ^InitializeDynamicAllocation : &:r1373_6 +# 1373| r1373_9(int *) = Convert : r1373_6 +# 1374| v1374_1(void) = NoOp : +# 1371| v1371_8(void) = ReturnIndirection[p] : &:r1371_6, ~m? +# 1371| v1371_9(void) = ReturnVoid : +# 1371| v1371_10(void) = AliasedUse : ~m? +# 1371| v1371_11(void) = ExitFunction : + +# 1377| Point defaultConstruct() +# 1377| Block 0 +# 1377| v1377_1(void) = EnterFunction : +# 1377| mu1377_2(unknown) = AliasedDefinition : +# 1377| mu1377_3(unknown) = InitializeNonLocal : +# 1378| r1378_1(glval) = VariableAddress[#return] : +# 1378| r1378_2(Point) = Constant[0] : +# 1378| mu1378_3(Point) = Store[#return] : &:r1378_1, r1378_2 +# 1377| r1377_4(glval) = VariableAddress[#return] : +# 1377| v1377_5(void) = ReturnValue : &:r1377_4, ~m? +# 1377| v1377_6(void) = AliasedUse : ~m? +# 1377| v1377_7(void) = ExitFunction : + +# 1377| String defaultConstruct() +# 1377| Block 0 +# 1377| v1377_1(void) = EnterFunction : +# 1377| mu1377_2(unknown) = AliasedDefinition : +# 1377| mu1377_3(unknown) = InitializeNonLocal : +# 1378| r1378_1(glval) = VariableAddress[#return] : +# 1378| mu1378_2(String) = Uninitialized[#return] : &:r1378_1 +# 1378| r1378_3(glval) = FunctionAddress[String] : +# 1378| v1378_4(void) = Call[String] : func:r1378_3, this:r1378_1 +# 1378| mu1378_5(unknown) = ^CallSideEffect : ~m? +# 1378| mu1378_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1378_1 +# 1377| r1377_4(glval) = VariableAddress[#return] : +# 1377| v1377_5(void) = ReturnValue : &:r1377_4, ~m? +# 1377| v1377_6(void) = AliasedUse : ~m? +# 1377| v1377_7(void) = ExitFunction : + +# 1377| copy_constructor defaultConstruct() +# 1377| Block 0 +# 1377| v1377_1(void) = EnterFunction : +# 1377| mu1377_2(unknown) = AliasedDefinition : +# 1377| mu1377_3(unknown) = InitializeNonLocal : +# 1378| r1378_1(glval) = VariableAddress[#return] : +# 1378| mu1378_2(copy_constructor) = Uninitialized[#return] : &:r1378_1 +# 1378| r1378_3(glval) = FunctionAddress[copy_constructor] : +# 1378| v1378_4(void) = Call[copy_constructor] : func:r1378_3, this:r1378_1 +# 1378| mu1378_5(unknown) = ^CallSideEffect : ~m? +# 1378| mu1378_6(copy_constructor) = ^IndirectMayWriteSideEffect[-1] : &:r1378_1 +# 1377| r1377_4(glval) = VariableAddress[#return] : +# 1377| v1377_5(void) = ReturnValue : &:r1377_4, ~m? +# 1377| v1377_6(void) = AliasedUse : ~m? +# 1377| v1377_7(void) = ExitFunction : + +# 1377| destructor_only defaultConstruct() +# 1377| Block 0 +# 1377| v1377_1(void) = EnterFunction : +# 1377| mu1377_2(unknown) = AliasedDefinition : +# 1377| mu1377_3(unknown) = InitializeNonLocal : +# 1378| r1378_1(glval) = VariableAddress[#return] : +# 1378| r1378_2(destructor_only) = Constant[0] : +# 1378| mu1378_3(destructor_only) = Store[#return] : &:r1378_1, r1378_2 +# 1377| r1377_4(glval) = VariableAddress[#return] : +# 1377| v1377_5(void) = ReturnValue : &:r1377_4, ~m? +# 1377| v1377_6(void) = AliasedUse : ~m? +# 1377| v1377_7(void) = ExitFunction : + +# 1416| void temporary_string() +# 1416| Block 0 +# 1416| v1416_1(void) = EnterFunction : +# 1416| mu1416_2(unknown) = AliasedDefinition : +# 1416| mu1416_3(unknown) = InitializeNonLocal : +# 1417| r1417_1(glval) = VariableAddress[s] : +# 1417| r1417_2(glval) = FunctionAddress[returnValue] : +# 1417| r1417_3(String) = Call[returnValue] : func:r1417_2 +# 1417| mu1417_4(unknown) = ^CallSideEffect : ~m? +# 1417| mu1417_5(String) = Store[s] : &:r1417_1, r1417_3 +# 1418| r1418_1(glval) = VariableAddress[rs] : +# 1418| r1418_2(glval) = VariableAddress[#temp1418:24] : +# 1418| r1418_3(glval) = FunctionAddress[returnValue] : +# 1418| r1418_4(String) = Call[returnValue] : func:r1418_3 +# 1418| mu1418_5(unknown) = ^CallSideEffect : ~m? +# 1418| mu1418_6(String) = Store[#temp1418:24] : &:r1418_2, r1418_4 +# 1418| r1418_7(glval) = Convert : r1418_2 +# 1418| r1418_8(String &) = CopyValue : r1418_7 +# 1418| mu1418_9(String &) = Store[rs] : &:r1418_1, r1418_8 +# 1420| r1420_1(glval) = FunctionAddress[acceptRef] : +# 1420| r1420_2(glval) = VariableAddress[s] : +# 1420| r1420_3(glval) = Convert : r1420_2 +# 1420| r1420_4(String &) = CopyValue : r1420_3 +# 1420| v1420_5(void) = Call[acceptRef] : func:r1420_1, 0:r1420_4 +# 1420| mu1420_6(unknown) = ^CallSideEffect : ~m? +# 1420| v1420_7(void) = ^BufferReadSideEffect[0] : &:r1420_4, ~m? +# 1421| r1421_1(glval) = FunctionAddress[acceptRef] : +# 1421| r1421_2(glval) = VariableAddress[#temp1421:23] : +# 1421| mu1421_3(String) = Uninitialized[#temp1421:23] : &:r1421_2 # 1421| r1421_4(glval) = FunctionAddress[String] : # 1421| r1421_5(glval) = StringConstant["foo"] : # 1421| r1421_6(char *) = Convert : r1421_5 @@ -10717,1063 +10745,1083 @@ ir.cpp: # 1421| mu1421_8(unknown) = ^CallSideEffect : ~m? # 1421| v1421_9(void) = ^BufferReadSideEffect[0] : &:r1421_6, ~m? # 1421| mu1421_10(String) = ^IndirectMayWriteSideEffect[-1] : &:r1421_2 -# 1421| r1421_11(String) = Load[#temp1421:25] : &:r1421_2, ~m? -# 1421| v1421_12(void) = Call[acceptValue] : func:r1421_1, 0:r1421_11 +# 1421| r1421_11(String &) = CopyValue : r1421_2 +# 1421| v1421_12(void) = Call[acceptRef] : func:r1421_1, 0:r1421_11 # 1421| mu1421_13(unknown) = ^CallSideEffect : ~m? -# 1421| r1421_14(glval) = CopyValue : r1421_2 -# 1421| r1421_15(glval) = FunctionAddress[~String] : -# 1421| v1421_16(void) = Call[~String] : func:r1421_15, this:r1421_14 -# 1421| mu1421_17(unknown) = ^CallSideEffect : ~m? -# 1421| v1421_18(void) = ^IndirectReadSideEffect[-1] : &:r1421_14, ~m? -# 1421| mu1421_19(String) = ^IndirectMayWriteSideEffect[-1] : &:r1421_14 -# 1422| r1422_1(glval) = VariableAddress[#temp1422:5] : -# 1422| mu1422_2(String) = Uninitialized[#temp1422:5] : &:r1422_1 -# 1422| r1422_3(glval) = FunctionAddress[String] : -# 1422| v1422_4(void) = Call[String] : func:r1422_3, this:r1422_1 -# 1422| mu1422_5(unknown) = ^CallSideEffect : ~m? -# 1422| mu1422_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1422_1 -# 1422| r1422_7(glval) = Convert : r1422_1 -# 1422| r1422_8(glval) = FunctionAddress[c_str] : -# 1422| r1422_9(char *) = Call[c_str] : func:r1422_8, this:r1422_7 -# 1422| mu1422_10(unknown) = ^CallSideEffect : ~m? -# 1422| v1422_11(void) = ^IndirectReadSideEffect[-1] : &:r1422_7, ~m? -# 1422| r1422_12(glval) = CopyValue : r1422_1 -# 1422| r1422_13(glval) = FunctionAddress[~String] : -# 1422| v1422_14(void) = Call[~String] : func:r1422_13, this:r1422_12 -# 1422| mu1422_15(unknown) = ^CallSideEffect : ~m? -# 1422| v1422_16(void) = ^IndirectReadSideEffect[-1] : &:r1422_12, ~m? -# 1422| mu1422_17(String) = ^IndirectMayWriteSideEffect[-1] : &:r1422_12 -# 1423| r1423_1(glval) = VariableAddress[#temp1423:5] : -# 1423| r1423_2(glval) = FunctionAddress[returnValue] : -# 1423| r1423_3(String) = Call[returnValue] : func:r1423_2 -# 1423| mu1423_4(unknown) = ^CallSideEffect : ~m? -# 1423| mu1423_5(String) = Store[#temp1423:5] : &:r1423_1, r1423_3 -# 1423| r1423_6(glval) = Convert : r1423_1 -# 1423| r1423_7(glval) = FunctionAddress[c_str] : -# 1423| r1423_8(char *) = Call[c_str] : func:r1423_7, this:r1423_6 -# 1423| mu1423_9(unknown) = ^CallSideEffect : ~m? -# 1423| v1423_10(void) = ^IndirectReadSideEffect[-1] : &:r1423_6, ~m? -# 1423| r1423_11(glval) = CopyValue : r1423_1 -# 1423| r1423_12(glval) = FunctionAddress[~String] : -# 1423| v1423_13(void) = Call[~String] : func:r1423_12, this:r1423_11 -# 1423| mu1423_14(unknown) = ^CallSideEffect : ~m? -# 1423| v1423_15(void) = ^IndirectReadSideEffect[-1] : &:r1423_11, ~m? -# 1423| mu1423_16(String) = ^IndirectMayWriteSideEffect[-1] : &:r1423_11 +# 1421| v1421_14(void) = ^BufferReadSideEffect[0] : &:r1421_11, ~m? +# 1421| r1421_15(glval) = CopyValue : r1421_2 +# 1421| r1421_16(glval) = FunctionAddress[~String] : +# 1421| v1421_17(void) = Call[~String] : func:r1421_16, this:r1421_15 +# 1421| mu1421_18(unknown) = ^CallSideEffect : ~m? +# 1421| v1421_19(void) = ^IndirectReadSideEffect[-1] : &:r1421_15, ~m? +# 1421| mu1421_20(String) = ^IndirectMayWriteSideEffect[-1] : &:r1421_15 +# 1422| r1422_1(glval) = FunctionAddress[acceptValue] : +# 1422| r1422_2(glval) = VariableAddress[#temp1422:17] : +# 1422| mu1422_3(String) = Uninitialized[#temp1422:17] : &:r1422_2 +# 1422| r1422_4(glval) = FunctionAddress[String] : +# 1422| r1422_5(glval) = VariableAddress[s] : +# 1422| r1422_6(glval) = Convert : r1422_5 +# 1422| r1422_7(String &) = CopyValue : r1422_6 +# 1422| v1422_8(void) = Call[String] : func:r1422_4, this:r1422_2, 0:r1422_7 +# 1422| mu1422_9(unknown) = ^CallSideEffect : ~m? +# 1422| v1422_10(void) = ^BufferReadSideEffect[0] : &:r1422_7, ~m? +# 1422| mu1422_11(String) = ^IndirectMayWriteSideEffect[-1] : &:r1422_2 +# 1422| r1422_12(String) = Load[#temp1422:17] : &:r1422_2, ~m? +# 1422| v1422_13(void) = Call[acceptValue] : func:r1422_1, 0:r1422_12 +# 1422| mu1422_14(unknown) = ^CallSideEffect : ~m? +# 1422| r1422_15(glval) = CopyValue : r1422_2 +# 1422| r1422_16(glval) = FunctionAddress[~String] : +# 1422| v1422_17(void) = Call[~String] : func:r1422_16, this:r1422_15 +# 1422| mu1422_18(unknown) = ^CallSideEffect : ~m? +# 1422| v1422_19(void) = ^IndirectReadSideEffect[-1] : &:r1422_15, ~m? +# 1422| mu1422_20(String) = ^IndirectMayWriteSideEffect[-1] : &:r1422_15 +# 1423| r1423_1(glval) = FunctionAddress[acceptValue] : +# 1423| r1423_2(glval) = VariableAddress[#temp1423:25] : +# 1423| mu1423_3(String) = Uninitialized[#temp1423:25] : &:r1423_2 +# 1423| r1423_4(glval) = FunctionAddress[String] : +# 1423| r1423_5(glval) = StringConstant["foo"] : +# 1423| r1423_6(char *) = Convert : r1423_5 +# 1423| v1423_7(void) = Call[String] : func:r1423_4, this:r1423_2, 0:r1423_6 +# 1423| mu1423_8(unknown) = ^CallSideEffect : ~m? +# 1423| v1423_9(void) = ^BufferReadSideEffect[0] : &:r1423_6, ~m? +# 1423| mu1423_10(String) = ^IndirectMayWriteSideEffect[-1] : &:r1423_2 +# 1423| r1423_11(String) = Load[#temp1423:25] : &:r1423_2, ~m? +# 1423| v1423_12(void) = Call[acceptValue] : func:r1423_1, 0:r1423_11 +# 1423| mu1423_13(unknown) = ^CallSideEffect : ~m? +# 1423| r1423_14(glval) = CopyValue : r1423_2 +# 1423| r1423_15(glval) = FunctionAddress[~String] : +# 1423| v1423_16(void) = Call[~String] : func:r1423_15, this:r1423_14 +# 1423| mu1423_17(unknown) = ^CallSideEffect : ~m? +# 1423| v1423_18(void) = ^IndirectReadSideEffect[-1] : &:r1423_14, ~m? +# 1423| mu1423_19(String) = ^IndirectMayWriteSideEffect[-1] : &:r1423_14 +# 1424| r1424_1(glval) = VariableAddress[#temp1424:5] : +# 1424| mu1424_2(String) = Uninitialized[#temp1424:5] : &:r1424_1 +# 1424| r1424_3(glval) = FunctionAddress[String] : +# 1424| v1424_4(void) = Call[String] : func:r1424_3, this:r1424_1 +# 1424| mu1424_5(unknown) = ^CallSideEffect : ~m? +# 1424| mu1424_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1424_1 +# 1424| r1424_7(glval) = Convert : r1424_1 +# 1424| r1424_8(glval) = FunctionAddress[c_str] : +# 1424| r1424_9(char *) = Call[c_str] : func:r1424_8, this:r1424_7 +# 1424| mu1424_10(unknown) = ^CallSideEffect : ~m? +# 1424| v1424_11(void) = ^IndirectReadSideEffect[-1] : &:r1424_7, ~m? +# 1424| r1424_12(glval) = CopyValue : r1424_1 +# 1424| r1424_13(glval) = FunctionAddress[~String] : +# 1424| v1424_14(void) = Call[~String] : func:r1424_13, this:r1424_12 +# 1424| mu1424_15(unknown) = ^CallSideEffect : ~m? +# 1424| v1424_16(void) = ^IndirectReadSideEffect[-1] : &:r1424_12, ~m? +# 1424| mu1424_17(String) = ^IndirectMayWriteSideEffect[-1] : &:r1424_12 # 1425| r1425_1(glval) = VariableAddress[#temp1425:5] : -# 1425| r1425_2(glval) = FunctionAddress[defaultConstruct] : -# 1425| r1425_3(String) = Call[defaultConstruct] : func:r1425_2 +# 1425| r1425_2(glval) = FunctionAddress[returnValue] : +# 1425| r1425_3(String) = Call[returnValue] : func:r1425_2 # 1425| mu1425_4(unknown) = ^CallSideEffect : ~m? # 1425| mu1425_5(String) = Store[#temp1425:5] : &:r1425_1, r1425_3 -# 1425| r1425_6(glval) = CopyValue : r1425_1 -# 1425| r1425_7(glval) = FunctionAddress[~String] : -# 1425| v1425_8(void) = Call[~String] : func:r1425_7, this:r1425_6 +# 1425| r1425_6(glval) = Convert : r1425_1 +# 1425| r1425_7(glval) = FunctionAddress[c_str] : +# 1425| r1425_8(char *) = Call[c_str] : func:r1425_7, this:r1425_6 # 1425| mu1425_9(unknown) = ^CallSideEffect : ~m? # 1425| v1425_10(void) = ^IndirectReadSideEffect[-1] : &:r1425_6, ~m? -# 1425| mu1425_11(String) = ^IndirectMayWriteSideEffect[-1] : &:r1425_6 -# 1426| v1426_1(void) = NoOp : -# 1426| r1426_2(glval) = CopyValue : r1416_2 -# 1426| r1426_3(glval) = FunctionAddress[~String] : -# 1426| v1426_4(void) = Call[~String] : func:r1426_3, this:r1426_2 -# 1426| mu1426_5(unknown) = ^CallSideEffect : ~m? -# 1426| v1426_6(void) = ^IndirectReadSideEffect[-1] : &:r1426_2, ~m? -# 1426| mu1426_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r1426_2 -# 1426| r1426_8(glval) = VariableAddress[s] : -# 1426| r1426_9(glval) = FunctionAddress[~String] : -# 1426| v1426_10(void) = Call[~String] : func:r1426_9, this:r1426_8 -# 1426| mu1426_11(unknown) = ^CallSideEffect : ~m? -# 1426| v1426_12(void) = ^IndirectReadSideEffect[-1] : &:r1426_8, ~m? -# 1426| mu1426_13(String) = ^IndirectMayWriteSideEffect[-1] : &:r1426_8 -# 1414| v1414_4(void) = ReturnVoid : -# 1414| v1414_5(void) = AliasedUse : ~m? -# 1414| v1414_6(void) = ExitFunction : - -# 1428| void temporary_destructor_only() -# 1428| Block 0 -# 1428| v1428_1(void) = EnterFunction : -# 1428| mu1428_2(unknown) = AliasedDefinition : -# 1428| mu1428_3(unknown) = InitializeNonLocal : -# 1429| r1429_1(glval) = VariableAddress[d] : -# 1429| r1429_2(glval) = FunctionAddress[returnValue] : -# 1429| r1429_3(destructor_only) = Call[returnValue] : func:r1429_2 -# 1429| mu1429_4(unknown) = ^CallSideEffect : ~m? -# 1429| mu1429_5(destructor_only) = Store[d] : &:r1429_1, r1429_3 -# 1430| r1430_1(glval) = VariableAddress[rd] : -# 1430| r1430_2(glval) = VariableAddress[#temp1430:33] : -# 1430| r1430_3(glval) = FunctionAddress[returnValue] : -# 1430| r1430_4(destructor_only) = Call[returnValue] : func:r1430_3 -# 1430| mu1430_5(unknown) = ^CallSideEffect : ~m? -# 1430| mu1430_6(destructor_only) = Store[#temp1430:33] : &:r1430_2, r1430_4 -# 1430| r1430_7(glval) = Convert : r1430_2 -# 1430| r1430_8(destructor_only &) = CopyValue : r1430_7 -# 1430| mu1430_9(destructor_only &) = Store[rd] : &:r1430_1, r1430_8 -# 1431| r1431_1(glval) = VariableAddress[d2] : -# 1431| mu1431_2(destructor_only) = Uninitialized[d2] : &:r1431_1 -# 1432| r1432_1(glval) = FunctionAddress[acceptRef] : -# 1432| r1432_2(glval) = VariableAddress[d] : -# 1432| r1432_3(glval) = Convert : r1432_2 -# 1432| r1432_4(destructor_only &) = CopyValue : r1432_3 -# 1432| v1432_5(void) = Call[acceptRef] : func:r1432_1, 0:r1432_4 -# 1432| mu1432_6(unknown) = ^CallSideEffect : ~m? -# 1432| v1432_7(void) = ^BufferReadSideEffect[0] : &:r1432_4, ~m? -# 1433| r1433_1(glval) = FunctionAddress[acceptValue] : -# 1433| r1433_2(glval) = VariableAddress[#temp1433:17] : -# 1433| r1433_3(glval) = VariableAddress[d] : -# 1433| r1433_4(destructor_only) = Load[d] : &:r1433_3, ~m? -# 1433| mu1433_5(destructor_only) = Store[#temp1433:17] : &:r1433_2, r1433_4 -# 1433| r1433_6(destructor_only) = Load[#temp1433:17] : &:r1433_2, ~m? -# 1433| v1433_7(void) = Call[acceptValue] : func:r1433_1, 0:r1433_6 -# 1433| mu1433_8(unknown) = ^CallSideEffect : ~m? -# 1433| r1433_9(glval) = CopyValue : r1433_2 -# 1433| r1433_10(glval) = FunctionAddress[~destructor_only] : -# 1433| v1433_11(void) = Call[~destructor_only] : func:r1433_10, this:r1433_9 -# 1433| mu1433_12(unknown) = ^CallSideEffect : ~m? -# 1433| v1433_13(void) = ^IndirectReadSideEffect[-1] : &:r1433_9, ~m? -# 1433| mu1433_14(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1433_9 -# 1434| r1434_1(glval) = VariableAddress[#temp1434:5] : -# 1434| r1434_2(destructor_only) = Constant[0] : -# 1434| mu1434_3(destructor_only) = Store[#temp1434:5] : &:r1434_1, r1434_2 -# 1434| r1434_4(glval) = FunctionAddress[method] : -# 1434| v1434_5(void) = Call[method] : func:r1434_4, this:r1434_1 +# 1425| r1425_11(glval) = CopyValue : r1425_1 +# 1425| r1425_12(glval) = FunctionAddress[~String] : +# 1425| v1425_13(void) = Call[~String] : func:r1425_12, this:r1425_11 +# 1425| mu1425_14(unknown) = ^CallSideEffect : ~m? +# 1425| v1425_15(void) = ^IndirectReadSideEffect[-1] : &:r1425_11, ~m? +# 1425| mu1425_16(String) = ^IndirectMayWriteSideEffect[-1] : &:r1425_11 +# 1427| r1427_1(glval) = VariableAddress[#temp1427:5] : +# 1427| r1427_2(glval) = FunctionAddress[defaultConstruct] : +# 1427| r1427_3(String) = Call[defaultConstruct] : func:r1427_2 +# 1427| mu1427_4(unknown) = ^CallSideEffect : ~m? +# 1427| mu1427_5(String) = Store[#temp1427:5] : &:r1427_1, r1427_3 +# 1427| r1427_6(glval) = CopyValue : r1427_1 +# 1427| r1427_7(glval) = FunctionAddress[~String] : +# 1427| v1427_8(void) = Call[~String] : func:r1427_7, this:r1427_6 +# 1427| mu1427_9(unknown) = ^CallSideEffect : ~m? +# 1427| v1427_10(void) = ^IndirectReadSideEffect[-1] : &:r1427_6, ~m? +# 1427| mu1427_11(String) = ^IndirectMayWriteSideEffect[-1] : &:r1427_6 +# 1428| v1428_1(void) = NoOp : +# 1428| r1428_2(glval) = CopyValue : r1418_2 +# 1428| r1428_3(glval) = FunctionAddress[~String] : +# 1428| v1428_4(void) = Call[~String] : func:r1428_3, this:r1428_2 +# 1428| mu1428_5(unknown) = ^CallSideEffect : ~m? +# 1428| v1428_6(void) = ^IndirectReadSideEffect[-1] : &:r1428_2, ~m? +# 1428| mu1428_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r1428_2 +# 1428| r1428_8(glval) = VariableAddress[s] : +# 1428| r1428_9(glval) = FunctionAddress[~String] : +# 1428| v1428_10(void) = Call[~String] : func:r1428_9, this:r1428_8 +# 1428| mu1428_11(unknown) = ^CallSideEffect : ~m? +# 1428| v1428_12(void) = ^IndirectReadSideEffect[-1] : &:r1428_8, ~m? +# 1428| mu1428_13(String) = ^IndirectMayWriteSideEffect[-1] : &:r1428_8 +# 1416| v1416_4(void) = ReturnVoid : +# 1416| v1416_5(void) = AliasedUse : ~m? +# 1416| v1416_6(void) = ExitFunction : + +# 1430| void temporary_destructor_only() +# 1430| Block 0 +# 1430| v1430_1(void) = EnterFunction : +# 1430| mu1430_2(unknown) = AliasedDefinition : +# 1430| mu1430_3(unknown) = InitializeNonLocal : +# 1431| r1431_1(glval) = VariableAddress[d] : +# 1431| r1431_2(glval) = FunctionAddress[returnValue] : +# 1431| r1431_3(destructor_only) = Call[returnValue] : func:r1431_2 +# 1431| mu1431_4(unknown) = ^CallSideEffect : ~m? +# 1431| mu1431_5(destructor_only) = Store[d] : &:r1431_1, r1431_3 +# 1432| r1432_1(glval) = VariableAddress[rd] : +# 1432| r1432_2(glval) = VariableAddress[#temp1432:33] : +# 1432| r1432_3(glval) = FunctionAddress[returnValue] : +# 1432| r1432_4(destructor_only) = Call[returnValue] : func:r1432_3 +# 1432| mu1432_5(unknown) = ^CallSideEffect : ~m? +# 1432| mu1432_6(destructor_only) = Store[#temp1432:33] : &:r1432_2, r1432_4 +# 1432| r1432_7(glval) = Convert : r1432_2 +# 1432| r1432_8(destructor_only &) = CopyValue : r1432_7 +# 1432| mu1432_9(destructor_only &) = Store[rd] : &:r1432_1, r1432_8 +# 1433| r1433_1(glval) = VariableAddress[d2] : +# 1433| mu1433_2(destructor_only) = Uninitialized[d2] : &:r1433_1 +# 1434| r1434_1(glval) = FunctionAddress[acceptRef] : +# 1434| r1434_2(glval) = VariableAddress[d] : +# 1434| r1434_3(glval) = Convert : r1434_2 +# 1434| r1434_4(destructor_only &) = CopyValue : r1434_3 +# 1434| v1434_5(void) = Call[acceptRef] : func:r1434_1, 0:r1434_4 # 1434| mu1434_6(unknown) = ^CallSideEffect : ~m? -# 1434| v1434_7(void) = ^IndirectReadSideEffect[-1] : &:r1434_1, ~m? -# 1434| mu1434_8(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1434_1 -# 1434| r1434_9(glval) = CopyValue : r1434_1 -# 1434| r1434_10(glval) = FunctionAddress[~destructor_only] : -# 1434| v1434_11(void) = Call[~destructor_only] : func:r1434_10, this:r1434_9 -# 1434| mu1434_12(unknown) = ^CallSideEffect : ~m? -# 1434| v1434_13(void) = ^IndirectReadSideEffect[-1] : &:r1434_9, ~m? -# 1434| mu1434_14(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1434_9 -# 1435| r1435_1(glval) = VariableAddress[#temp1435:5] : -# 1435| r1435_2(glval) = FunctionAddress[returnValue] : -# 1435| r1435_3(destructor_only) = Call[returnValue] : func:r1435_2 -# 1435| mu1435_4(unknown) = ^CallSideEffect : ~m? -# 1435| mu1435_5(destructor_only) = Store[#temp1435:5] : &:r1435_1, r1435_3 -# 1435| r1435_6(glval) = FunctionAddress[method] : -# 1435| v1435_7(void) = Call[method] : func:r1435_6, this:r1435_1 +# 1434| v1434_7(void) = ^BufferReadSideEffect[0] : &:r1434_4, ~m? +# 1435| r1435_1(glval) = FunctionAddress[acceptValue] : +# 1435| r1435_2(glval) = VariableAddress[#temp1435:17] : +# 1435| r1435_3(glval) = VariableAddress[d] : +# 1435| r1435_4(destructor_only) = Load[d] : &:r1435_3, ~m? +# 1435| mu1435_5(destructor_only) = Store[#temp1435:17] : &:r1435_2, r1435_4 +# 1435| r1435_6(destructor_only) = Load[#temp1435:17] : &:r1435_2, ~m? +# 1435| v1435_7(void) = Call[acceptValue] : func:r1435_1, 0:r1435_6 # 1435| mu1435_8(unknown) = ^CallSideEffect : ~m? -# 1435| v1435_9(void) = ^IndirectReadSideEffect[-1] : &:r1435_1, ~m? -# 1435| mu1435_10(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1435_1 -# 1435| r1435_11(glval) = CopyValue : r1435_1 -# 1435| r1435_12(glval) = FunctionAddress[~destructor_only] : -# 1435| v1435_13(void) = Call[~destructor_only] : func:r1435_12, this:r1435_11 -# 1435| mu1435_14(unknown) = ^CallSideEffect : ~m? -# 1435| v1435_15(void) = ^IndirectReadSideEffect[-1] : &:r1435_11, ~m? -# 1435| mu1435_16(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1435_11 +# 1435| r1435_9(glval) = CopyValue : r1435_2 +# 1435| r1435_10(glval) = FunctionAddress[~destructor_only] : +# 1435| v1435_11(void) = Call[~destructor_only] : func:r1435_10, this:r1435_9 +# 1435| mu1435_12(unknown) = ^CallSideEffect : ~m? +# 1435| v1435_13(void) = ^IndirectReadSideEffect[-1] : &:r1435_9, ~m? +# 1435| mu1435_14(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1435_9 +# 1436| r1436_1(glval) = VariableAddress[#temp1436:5] : +# 1436| r1436_2(destructor_only) = Constant[0] : +# 1436| mu1436_3(destructor_only) = Store[#temp1436:5] : &:r1436_1, r1436_2 +# 1436| r1436_4(glval) = FunctionAddress[method] : +# 1436| v1436_5(void) = Call[method] : func:r1436_4, this:r1436_1 +# 1436| mu1436_6(unknown) = ^CallSideEffect : ~m? +# 1436| v1436_7(void) = ^IndirectReadSideEffect[-1] : &:r1436_1, ~m? +# 1436| mu1436_8(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1436_1 +# 1436| r1436_9(glval) = CopyValue : r1436_1 +# 1436| r1436_10(glval) = FunctionAddress[~destructor_only] : +# 1436| v1436_11(void) = Call[~destructor_only] : func:r1436_10, this:r1436_9 +# 1436| mu1436_12(unknown) = ^CallSideEffect : ~m? +# 1436| v1436_13(void) = ^IndirectReadSideEffect[-1] : &:r1436_9, ~m? +# 1436| mu1436_14(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1436_9 # 1437| r1437_1(glval) = VariableAddress[#temp1437:5] : -# 1437| r1437_2(glval) = FunctionAddress[defaultConstruct] : -# 1437| r1437_3(destructor_only) = Call[defaultConstruct] : func:r1437_2 +# 1437| r1437_2(glval) = FunctionAddress[returnValue] : +# 1437| r1437_3(destructor_only) = Call[returnValue] : func:r1437_2 # 1437| mu1437_4(unknown) = ^CallSideEffect : ~m? # 1437| mu1437_5(destructor_only) = Store[#temp1437:5] : &:r1437_1, r1437_3 -# 1437| r1437_6(glval) = CopyValue : r1437_1 -# 1437| r1437_7(glval) = FunctionAddress[~destructor_only] : -# 1437| v1437_8(void) = Call[~destructor_only] : func:r1437_7, this:r1437_6 -# 1437| mu1437_9(unknown) = ^CallSideEffect : ~m? -# 1437| v1437_10(void) = ^IndirectReadSideEffect[-1] : &:r1437_6, ~m? -# 1437| mu1437_11(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1437_6 -# 1438| v1438_1(void) = NoOp : -# 1438| r1438_2(glval) = VariableAddress[d2] : -# 1438| r1438_3(glval) = FunctionAddress[~destructor_only] : -# 1438| v1438_4(void) = Call[~destructor_only] : func:r1438_3, this:r1438_2 -# 1438| mu1438_5(unknown) = ^CallSideEffect : ~m? -# 1438| v1438_6(void) = ^IndirectReadSideEffect[-1] : &:r1438_2, ~m? -# 1438| mu1438_7(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1438_2 -# 1438| r1438_8(glval) = CopyValue : r1430_2 -# 1438| r1438_9(glval) = FunctionAddress[~destructor_only] : -# 1438| v1438_10(void) = Call[~destructor_only] : func:r1438_9, this:r1438_8 -# 1438| mu1438_11(unknown) = ^CallSideEffect : ~m? -# 1438| v1438_12(void) = ^IndirectReadSideEffect[-1] : &:r1438_8, ~m? -# 1438| mu1438_13(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1438_8 -# 1438| r1438_14(glval) = VariableAddress[d] : -# 1438| r1438_15(glval) = FunctionAddress[~destructor_only] : -# 1438| v1438_16(void) = Call[~destructor_only] : func:r1438_15, this:r1438_14 -# 1438| mu1438_17(unknown) = ^CallSideEffect : ~m? -# 1438| v1438_18(void) = ^IndirectReadSideEffect[-1] : &:r1438_14, ~m? -# 1438| mu1438_19(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1438_14 -# 1428| v1428_4(void) = ReturnVoid : -# 1428| v1428_5(void) = AliasedUse : ~m? -# 1428| v1428_6(void) = ExitFunction : - -# 1440| void temporary_copy_constructor() -# 1440| Block 0 -# 1440| v1440_1(void) = EnterFunction : -# 1440| mu1440_2(unknown) = AliasedDefinition : -# 1440| mu1440_3(unknown) = InitializeNonLocal : -# 1441| r1441_1(glval) = VariableAddress[d] : -# 1441| r1441_2(glval) = FunctionAddress[returnValue] : -# 1441| r1441_3(copy_constructor) = Call[returnValue] : func:r1441_2 -# 1441| mu1441_4(unknown) = ^CallSideEffect : ~m? -# 1441| mu1441_5(copy_constructor) = Store[d] : &:r1441_1, r1441_3 -# 1442| r1442_1(glval) = VariableAddress[rd] : -# 1442| r1442_2(glval) = VariableAddress[#temp1442:34] : -# 1442| r1442_3(glval) = FunctionAddress[returnValue] : -# 1442| r1442_4(copy_constructor) = Call[returnValue] : func:r1442_3 -# 1442| mu1442_5(unknown) = ^CallSideEffect : ~m? -# 1442| mu1442_6(copy_constructor) = Store[#temp1442:34] : &:r1442_2, r1442_4 -# 1442| r1442_7(glval) = Convert : r1442_2 -# 1442| r1442_8(copy_constructor &) = CopyValue : r1442_7 -# 1442| mu1442_9(copy_constructor &) = Store[rd] : &:r1442_1, r1442_8 -# 1443| r1443_1(glval) = VariableAddress[d2] : -# 1443| mu1443_2(copy_constructor) = Uninitialized[d2] : &:r1443_1 -# 1443| r1443_3(glval) = FunctionAddress[copy_constructor] : -# 1443| v1443_4(void) = Call[copy_constructor] : func:r1443_3, this:r1443_1 -# 1443| mu1443_5(unknown) = ^CallSideEffect : ~m? -# 1443| mu1443_6(copy_constructor) = ^IndirectMayWriteSideEffect[-1] : &:r1443_1 -# 1444| r1444_1(glval) = FunctionAddress[acceptRef] : -# 1444| r1444_2(glval) = VariableAddress[d] : -# 1444| r1444_3(glval) = Convert : r1444_2 -# 1444| r1444_4(copy_constructor &) = CopyValue : r1444_3 -# 1444| v1444_5(void) = Call[acceptRef] : func:r1444_1, 0:r1444_4 -# 1444| mu1444_6(unknown) = ^CallSideEffect : ~m? -# 1444| v1444_7(void) = ^BufferReadSideEffect[0] : &:r1444_4, ~m? -# 1445| r1445_1(glval) = FunctionAddress[acceptValue] : -# 1445| r1445_2(glval) = VariableAddress[#temp1445:17] : -# 1445| mu1445_3(copy_constructor) = Uninitialized[#temp1445:17] : &:r1445_2 -# 1445| r1445_4(glval) = FunctionAddress[copy_constructor] : -# 1445| r1445_5(glval) = VariableAddress[d] : -# 1445| r1445_6(glval) = Convert : r1445_5 -# 1445| r1445_7(copy_constructor &) = CopyValue : r1445_6 -# 1445| v1445_8(void) = Call[copy_constructor] : func:r1445_4, this:r1445_2, 0:r1445_7 -# 1445| mu1445_9(unknown) = ^CallSideEffect : ~m? -# 1445| v1445_10(void) = ^BufferReadSideEffect[0] : &:r1445_7, ~m? -# 1445| mu1445_11(copy_constructor) = ^IndirectMayWriteSideEffect[-1] : &:r1445_2 -# 1445| r1445_12(copy_constructor) = Load[#temp1445:17] : &:r1445_2, ~m? -# 1445| v1445_13(void) = Call[acceptValue] : func:r1445_1, 0:r1445_12 -# 1445| mu1445_14(unknown) = ^CallSideEffect : ~m? -# 1446| r1446_1(glval) = VariableAddress[#temp1446:5] : -# 1446| mu1446_2(copy_constructor) = Uninitialized[#temp1446:5] : &:r1446_1 -# 1446| r1446_3(glval) = FunctionAddress[copy_constructor] : -# 1446| v1446_4(void) = Call[copy_constructor] : func:r1446_3, this:r1446_1 -# 1446| mu1446_5(unknown) = ^CallSideEffect : ~m? -# 1446| mu1446_6(copy_constructor) = ^IndirectMayWriteSideEffect[-1] : &:r1446_1 -# 1446| r1446_7(glval) = FunctionAddress[method] : -# 1446| v1446_8(void) = Call[method] : func:r1446_7, this:r1446_1 -# 1446| mu1446_9(unknown) = ^CallSideEffect : ~m? -# 1446| v1446_10(void) = ^IndirectReadSideEffect[-1] : &:r1446_1, ~m? -# 1446| mu1446_11(copy_constructor) = ^IndirectMayWriteSideEffect[-1] : &:r1446_1 -# 1447| r1447_1(glval) = VariableAddress[#temp1447:5] : -# 1447| r1447_2(glval) = FunctionAddress[returnValue] : -# 1447| r1447_3(copy_constructor) = Call[returnValue] : func:r1447_2 -# 1447| mu1447_4(unknown) = ^CallSideEffect : ~m? -# 1447| mu1447_5(copy_constructor) = Store[#temp1447:5] : &:r1447_1, r1447_3 -# 1447| r1447_6(glval) = FunctionAddress[method] : -# 1447| v1447_7(void) = Call[method] : func:r1447_6, this:r1447_1 -# 1447| mu1447_8(unknown) = ^CallSideEffect : ~m? -# 1447| v1447_9(void) = ^IndirectReadSideEffect[-1] : &:r1447_1, ~m? -# 1447| mu1447_10(copy_constructor) = ^IndirectMayWriteSideEffect[-1] : &:r1447_1 +# 1437| r1437_6(glval) = FunctionAddress[method] : +# 1437| v1437_7(void) = Call[method] : func:r1437_6, this:r1437_1 +# 1437| mu1437_8(unknown) = ^CallSideEffect : ~m? +# 1437| v1437_9(void) = ^IndirectReadSideEffect[-1] : &:r1437_1, ~m? +# 1437| mu1437_10(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1437_1 +# 1437| r1437_11(glval) = CopyValue : r1437_1 +# 1437| r1437_12(glval) = FunctionAddress[~destructor_only] : +# 1437| v1437_13(void) = Call[~destructor_only] : func:r1437_12, this:r1437_11 +# 1437| mu1437_14(unknown) = ^CallSideEffect : ~m? +# 1437| v1437_15(void) = ^IndirectReadSideEffect[-1] : &:r1437_11, ~m? +# 1437| mu1437_16(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1437_11 +# 1439| r1439_1(glval) = VariableAddress[#temp1439:5] : +# 1439| r1439_2(glval) = FunctionAddress[defaultConstruct] : +# 1439| r1439_3(destructor_only) = Call[defaultConstruct] : func:r1439_2 +# 1439| mu1439_4(unknown) = ^CallSideEffect : ~m? +# 1439| mu1439_5(destructor_only) = Store[#temp1439:5] : &:r1439_1, r1439_3 +# 1439| r1439_6(glval) = CopyValue : r1439_1 +# 1439| r1439_7(glval) = FunctionAddress[~destructor_only] : +# 1439| v1439_8(void) = Call[~destructor_only] : func:r1439_7, this:r1439_6 +# 1439| mu1439_9(unknown) = ^CallSideEffect : ~m? +# 1439| v1439_10(void) = ^IndirectReadSideEffect[-1] : &:r1439_6, ~m? +# 1439| mu1439_11(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1439_6 +# 1440| v1440_1(void) = NoOp : +# 1440| r1440_2(glval) = VariableAddress[d2] : +# 1440| r1440_3(glval) = FunctionAddress[~destructor_only] : +# 1440| v1440_4(void) = Call[~destructor_only] : func:r1440_3, this:r1440_2 +# 1440| mu1440_5(unknown) = ^CallSideEffect : ~m? +# 1440| v1440_6(void) = ^IndirectReadSideEffect[-1] : &:r1440_2, ~m? +# 1440| mu1440_7(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1440_2 +# 1440| r1440_8(glval) = CopyValue : r1432_2 +# 1440| r1440_9(glval) = FunctionAddress[~destructor_only] : +# 1440| v1440_10(void) = Call[~destructor_only] : func:r1440_9, this:r1440_8 +# 1440| mu1440_11(unknown) = ^CallSideEffect : ~m? +# 1440| v1440_12(void) = ^IndirectReadSideEffect[-1] : &:r1440_8, ~m? +# 1440| mu1440_13(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1440_8 +# 1440| r1440_14(glval) = VariableAddress[d] : +# 1440| r1440_15(glval) = FunctionAddress[~destructor_only] : +# 1440| v1440_16(void) = Call[~destructor_only] : func:r1440_15, this:r1440_14 +# 1440| mu1440_17(unknown) = ^CallSideEffect : ~m? +# 1440| v1440_18(void) = ^IndirectReadSideEffect[-1] : &:r1440_14, ~m? +# 1440| mu1440_19(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1440_14 +# 1430| v1430_4(void) = ReturnVoid : +# 1430| v1430_5(void) = AliasedUse : ~m? +# 1430| v1430_6(void) = ExitFunction : + +# 1442| void temporary_copy_constructor() +# 1442| Block 0 +# 1442| v1442_1(void) = EnterFunction : +# 1442| mu1442_2(unknown) = AliasedDefinition : +# 1442| mu1442_3(unknown) = InitializeNonLocal : +# 1443| r1443_1(glval) = VariableAddress[d] : +# 1443| r1443_2(glval) = FunctionAddress[returnValue] : +# 1443| r1443_3(copy_constructor) = Call[returnValue] : func:r1443_2 +# 1443| mu1443_4(unknown) = ^CallSideEffect : ~m? +# 1443| mu1443_5(copy_constructor) = Store[d] : &:r1443_1, r1443_3 +# 1444| r1444_1(glval) = VariableAddress[rd] : +# 1444| r1444_2(glval) = VariableAddress[#temp1444:34] : +# 1444| r1444_3(glval) = FunctionAddress[returnValue] : +# 1444| r1444_4(copy_constructor) = Call[returnValue] : func:r1444_3 +# 1444| mu1444_5(unknown) = ^CallSideEffect : ~m? +# 1444| mu1444_6(copy_constructor) = Store[#temp1444:34] : &:r1444_2, r1444_4 +# 1444| r1444_7(glval) = Convert : r1444_2 +# 1444| r1444_8(copy_constructor &) = CopyValue : r1444_7 +# 1444| mu1444_9(copy_constructor &) = Store[rd] : &:r1444_1, r1444_8 +# 1445| r1445_1(glval) = VariableAddress[d2] : +# 1445| mu1445_2(copy_constructor) = Uninitialized[d2] : &:r1445_1 +# 1445| r1445_3(glval) = FunctionAddress[copy_constructor] : +# 1445| v1445_4(void) = Call[copy_constructor] : func:r1445_3, this:r1445_1 +# 1445| mu1445_5(unknown) = ^CallSideEffect : ~m? +# 1445| mu1445_6(copy_constructor) = ^IndirectMayWriteSideEffect[-1] : &:r1445_1 +# 1446| r1446_1(glval) = FunctionAddress[acceptRef] : +# 1446| r1446_2(glval) = VariableAddress[d] : +# 1446| r1446_3(glval) = Convert : r1446_2 +# 1446| r1446_4(copy_constructor &) = CopyValue : r1446_3 +# 1446| v1446_5(void) = Call[acceptRef] : func:r1446_1, 0:r1446_4 +# 1446| mu1446_6(unknown) = ^CallSideEffect : ~m? +# 1446| v1446_7(void) = ^BufferReadSideEffect[0] : &:r1446_4, ~m? +# 1447| r1447_1(glval) = FunctionAddress[acceptValue] : +# 1447| r1447_2(glval) = VariableAddress[#temp1447:17] : +# 1447| mu1447_3(copy_constructor) = Uninitialized[#temp1447:17] : &:r1447_2 +# 1447| r1447_4(glval) = FunctionAddress[copy_constructor] : +# 1447| r1447_5(glval) = VariableAddress[d] : +# 1447| r1447_6(glval) = Convert : r1447_5 +# 1447| r1447_7(copy_constructor &) = CopyValue : r1447_6 +# 1447| v1447_8(void) = Call[copy_constructor] : func:r1447_4, this:r1447_2, 0:r1447_7 +# 1447| mu1447_9(unknown) = ^CallSideEffect : ~m? +# 1447| v1447_10(void) = ^BufferReadSideEffect[0] : &:r1447_7, ~m? +# 1447| mu1447_11(copy_constructor) = ^IndirectMayWriteSideEffect[-1] : &:r1447_2 +# 1447| r1447_12(copy_constructor) = Load[#temp1447:17] : &:r1447_2, ~m? +# 1447| v1447_13(void) = Call[acceptValue] : func:r1447_1, 0:r1447_12 +# 1447| mu1447_14(unknown) = ^CallSideEffect : ~m? # 1448| r1448_1(glval) = VariableAddress[#temp1448:5] : -# 1448| r1448_2(glval) = FunctionAddress[defaultConstruct] : -# 1448| r1448_3(copy_constructor) = Call[defaultConstruct] : func:r1448_2 -# 1448| mu1448_4(unknown) = ^CallSideEffect : ~m? -# 1448| mu1448_5(copy_constructor) = Store[#temp1448:5] : &:r1448_1, r1448_3 -# 1450| r1450_1(glval) = VariableAddress[y] : -# 1450| r1450_2(glval) = VariableAddress[#temp1450:13] : -# 1450| r1450_3(glval) = FunctionAddress[returnValue] : -# 1450| r1450_4(copy_constructor) = Call[returnValue] : func:r1450_3 -# 1450| mu1450_5(unknown) = ^CallSideEffect : ~m? -# 1450| mu1450_6(copy_constructor) = Store[#temp1450:13] : &:r1450_2, r1450_4 -# 1450| r1450_7(glval) = FieldAddress[y] : r1450_2 -# 1450| r1450_8(int) = Load[?] : &:r1450_7, ~m? -# 1450| mu1450_9(int) = Store[y] : &:r1450_1, r1450_8 -# 1451| v1451_1(void) = NoOp : -# 1440| v1440_4(void) = ReturnVoid : -# 1440| v1440_5(void) = AliasedUse : ~m? -# 1440| v1440_6(void) = ExitFunction : - -# 1453| void temporary_point() -# 1453| Block 0 -# 1453| v1453_1(void) = EnterFunction : -# 1453| mu1453_2(unknown) = AliasedDefinition : -# 1453| mu1453_3(unknown) = InitializeNonLocal : -# 1454| r1454_1(glval) = VariableAddress[p] : -# 1454| r1454_2(glval) = FunctionAddress[returnValue] : -# 1454| r1454_3(Point) = Call[returnValue] : func:r1454_2 -# 1454| mu1454_4(unknown) = ^CallSideEffect : ~m? -# 1454| mu1454_5(Point) = Store[p] : &:r1454_1, r1454_3 -# 1455| r1455_1(glval) = VariableAddress[rp] : -# 1455| r1455_2(glval) = VariableAddress[#temp1455:23] : -# 1455| r1455_3(glval) = FunctionAddress[returnValue] : -# 1455| r1455_4(Point) = Call[returnValue] : func:r1455_3 -# 1455| mu1455_5(unknown) = ^CallSideEffect : ~m? -# 1455| mu1455_6(Point) = Store[#temp1455:23] : &:r1455_2, r1455_4 -# 1455| r1455_7(glval) = Convert : r1455_2 -# 1455| r1455_8(Point &) = CopyValue : r1455_7 -# 1455| mu1455_9(Point &) = Store[rp] : &:r1455_1, r1455_8 -# 1457| r1457_1(glval) = FunctionAddress[acceptRef] : -# 1457| r1457_2(glval) = VariableAddress[p] : -# 1457| r1457_3(glval) = Convert : r1457_2 -# 1457| r1457_4(Point &) = CopyValue : r1457_3 -# 1457| v1457_5(void) = Call[acceptRef] : func:r1457_1, 0:r1457_4 -# 1457| mu1457_6(unknown) = ^CallSideEffect : ~m? -# 1457| v1457_7(void) = ^BufferReadSideEffect[0] : &:r1457_4, ~m? -# 1458| r1458_1(glval) = FunctionAddress[acceptValue] : -# 1458| r1458_2(glval) = VariableAddress[p] : -# 1458| r1458_3(Point) = Load[p] : &:r1458_2, ~m? -# 1458| v1458_4(void) = Call[acceptValue] : func:r1458_1, 0:r1458_3 -# 1458| mu1458_5(unknown) = ^CallSideEffect : ~m? -# 1459| r1459_1(int) = Constant[0] : -# 1460| r1460_1(glval) = VariableAddress[y] : -# 1460| r1460_2(glval) = FunctionAddress[returnValue] : -# 1460| r1460_3(Point) = Call[returnValue] : func:r1460_2 -# 1460| mu1460_4(unknown) = ^CallSideEffect : ~m? -# 1460| r1460_5(glval) = VariableAddress[#temp1460:13] : -# 1460| mu1460_6(Point) = Store[#temp1460:13] : &:r1460_5, r1460_3 -# 1460| r1460_7(glval) = FieldAddress[y] : r1460_5 -# 1460| r1460_8(int) = Load[?] : &:r1460_7, ~m? -# 1460| mu1460_9(int) = Store[y] : &:r1460_1, r1460_8 -# 1462| r1462_1(glval) = FunctionAddress[defaultConstruct] : -# 1462| r1462_2(Point) = Call[defaultConstruct] : func:r1462_1 -# 1462| mu1462_3(unknown) = ^CallSideEffect : ~m? -# 1463| v1463_1(void) = NoOp : -# 1453| v1453_4(void) = ReturnVoid : -# 1453| v1453_5(void) = AliasedUse : ~m? -# 1453| v1453_6(void) = ExitFunction : - -# 1470| void temporary_unusual_fields() -# 1470| Block 0 -# 1470| v1470_1(void) = EnterFunction : -# 1470| mu1470_2(unknown) = AliasedDefinition : -# 1470| mu1470_3(unknown) = InitializeNonLocal : -# 1471| r1471_1(glval) = VariableAddress[rx] : -# 1471| r1471_2(glval) = FunctionAddress[returnValue] : -# 1471| r1471_3(UnusualFields) = Call[returnValue] : func:r1471_2 -# 1471| mu1471_4(unknown) = ^CallSideEffect : ~m? -# 1471| r1471_5(glval) = VariableAddress[#temp1471:21] : -# 1471| mu1471_6(UnusualFields) = Store[#temp1471:21] : &:r1471_5, r1471_3 -# 1471| r1471_7(glval) = FieldAddress[r] : r1471_5 -# 1471| r1471_8(int &) = Load[?] : &:r1471_7, ~m? -# 1471| r1471_9(glval) = CopyValue : r1471_8 -# 1471| r1471_10(glval) = Convert : r1471_9 -# 1471| r1471_11(int &) = CopyValue : r1471_10 -# 1471| mu1471_12(int &) = Store[rx] : &:r1471_1, r1471_11 -# 1472| r1472_1(glval) = VariableAddress[x] : -# 1472| r1472_2(glval) = FunctionAddress[returnValue] : -# 1472| r1472_3(UnusualFields) = Call[returnValue] : func:r1472_2 -# 1472| mu1472_4(unknown) = ^CallSideEffect : ~m? -# 1472| r1472_5(glval) = VariableAddress[#temp1472:13] : -# 1472| mu1472_6(UnusualFields) = Store[#temp1472:13] : &:r1472_5, r1472_3 -# 1472| r1472_7(glval) = FieldAddress[r] : r1472_5 -# 1472| r1472_8(int &) = Load[?] : &:r1472_7, ~m? -# 1472| r1472_9(int) = Load[?] : &:r1472_8, ~m? -# 1472| mu1472_10(int) = Store[x] : &:r1472_1, r1472_9 -# 1474| r1474_1(glval) = VariableAddress[rf] : +# 1448| mu1448_2(copy_constructor) = Uninitialized[#temp1448:5] : &:r1448_1 +# 1448| r1448_3(glval) = FunctionAddress[copy_constructor] : +# 1448| v1448_4(void) = Call[copy_constructor] : func:r1448_3, this:r1448_1 +# 1448| mu1448_5(unknown) = ^CallSideEffect : ~m? +# 1448| mu1448_6(copy_constructor) = ^IndirectMayWriteSideEffect[-1] : &:r1448_1 +# 1448| r1448_7(glval) = FunctionAddress[method] : +# 1448| v1448_8(void) = Call[method] : func:r1448_7, this:r1448_1 +# 1448| mu1448_9(unknown) = ^CallSideEffect : ~m? +# 1448| v1448_10(void) = ^IndirectReadSideEffect[-1] : &:r1448_1, ~m? +# 1448| mu1448_11(copy_constructor) = ^IndirectMayWriteSideEffect[-1] : &:r1448_1 +# 1449| r1449_1(glval) = VariableAddress[#temp1449:5] : +# 1449| r1449_2(glval) = FunctionAddress[returnValue] : +# 1449| r1449_3(copy_constructor) = Call[returnValue] : func:r1449_2 +# 1449| mu1449_4(unknown) = ^CallSideEffect : ~m? +# 1449| mu1449_5(copy_constructor) = Store[#temp1449:5] : &:r1449_1, r1449_3 +# 1449| r1449_6(glval) = FunctionAddress[method] : +# 1449| v1449_7(void) = Call[method] : func:r1449_6, this:r1449_1 +# 1449| mu1449_8(unknown) = ^CallSideEffect : ~m? +# 1449| v1449_9(void) = ^IndirectReadSideEffect[-1] : &:r1449_1, ~m? +# 1449| mu1449_10(copy_constructor) = ^IndirectMayWriteSideEffect[-1] : &:r1449_1 +# 1450| r1450_1(glval) = VariableAddress[#temp1450:5] : +# 1450| r1450_2(glval) = FunctionAddress[defaultConstruct] : +# 1450| r1450_3(copy_constructor) = Call[defaultConstruct] : func:r1450_2 +# 1450| mu1450_4(unknown) = ^CallSideEffect : ~m? +# 1450| mu1450_5(copy_constructor) = Store[#temp1450:5] : &:r1450_1, r1450_3 +# 1452| r1452_1(glval) = VariableAddress[y] : +# 1452| r1452_2(glval) = VariableAddress[#temp1452:13] : +# 1452| r1452_3(glval) = FunctionAddress[returnValue] : +# 1452| r1452_4(copy_constructor) = Call[returnValue] : func:r1452_3 +# 1452| mu1452_5(unknown) = ^CallSideEffect : ~m? +# 1452| mu1452_6(copy_constructor) = Store[#temp1452:13] : &:r1452_2, r1452_4 +# 1452| r1452_7(glval) = FieldAddress[y] : r1452_2 +# 1452| r1452_8(int) = Load[?] : &:r1452_7, ~m? +# 1452| mu1452_9(int) = Store[y] : &:r1452_1, r1452_8 +# 1453| v1453_1(void) = NoOp : +# 1442| v1442_4(void) = ReturnVoid : +# 1442| v1442_5(void) = AliasedUse : ~m? +# 1442| v1442_6(void) = ExitFunction : + +# 1455| void temporary_point() +# 1455| Block 0 +# 1455| v1455_1(void) = EnterFunction : +# 1455| mu1455_2(unknown) = AliasedDefinition : +# 1455| mu1455_3(unknown) = InitializeNonLocal : +# 1456| r1456_1(glval) = VariableAddress[p] : +# 1456| r1456_2(glval) = FunctionAddress[returnValue] : +# 1456| r1456_3(Point) = Call[returnValue] : func:r1456_2 +# 1456| mu1456_4(unknown) = ^CallSideEffect : ~m? +# 1456| mu1456_5(Point) = Store[p] : &:r1456_1, r1456_3 +# 1457| r1457_1(glval) = VariableAddress[rp] : +# 1457| r1457_2(glval) = VariableAddress[#temp1457:23] : +# 1457| r1457_3(glval) = FunctionAddress[returnValue] : +# 1457| r1457_4(Point) = Call[returnValue] : func:r1457_3 +# 1457| mu1457_5(unknown) = ^CallSideEffect : ~m? +# 1457| mu1457_6(Point) = Store[#temp1457:23] : &:r1457_2, r1457_4 +# 1457| r1457_7(glval) = Convert : r1457_2 +# 1457| r1457_8(Point &) = CopyValue : r1457_7 +# 1457| mu1457_9(Point &) = Store[rp] : &:r1457_1, r1457_8 +# 1459| r1459_1(glval) = FunctionAddress[acceptRef] : +# 1459| r1459_2(glval) = VariableAddress[p] : +# 1459| r1459_3(glval) = Convert : r1459_2 +# 1459| r1459_4(Point &) = CopyValue : r1459_3 +# 1459| v1459_5(void) = Call[acceptRef] : func:r1459_1, 0:r1459_4 +# 1459| mu1459_6(unknown) = ^CallSideEffect : ~m? +# 1459| v1459_7(void) = ^BufferReadSideEffect[0] : &:r1459_4, ~m? +# 1460| r1460_1(glval) = FunctionAddress[acceptValue] : +# 1460| r1460_2(glval) = VariableAddress[p] : +# 1460| r1460_3(Point) = Load[p] : &:r1460_2, ~m? +# 1460| v1460_4(void) = Call[acceptValue] : func:r1460_1, 0:r1460_3 +# 1460| mu1460_5(unknown) = ^CallSideEffect : ~m? +# 1461| r1461_1(int) = Constant[0] : +# 1462| r1462_1(glval) = VariableAddress[y] : +# 1462| r1462_2(glval) = FunctionAddress[returnValue] : +# 1462| r1462_3(Point) = Call[returnValue] : func:r1462_2 +# 1462| mu1462_4(unknown) = ^CallSideEffect : ~m? +# 1462| r1462_5(glval) = VariableAddress[#temp1462:13] : +# 1462| mu1462_6(Point) = Store[#temp1462:13] : &:r1462_5, r1462_3 +# 1462| r1462_7(glval) = FieldAddress[y] : r1462_5 +# 1462| r1462_8(int) = Load[?] : &:r1462_7, ~m? +# 1462| mu1462_9(int) = Store[y] : &:r1462_1, r1462_8 +# 1464| r1464_1(glval) = FunctionAddress[defaultConstruct] : +# 1464| r1464_2(Point) = Call[defaultConstruct] : func:r1464_1 +# 1464| mu1464_3(unknown) = ^CallSideEffect : ~m? +# 1465| v1465_1(void) = NoOp : +# 1455| v1455_4(void) = ReturnVoid : +# 1455| v1455_5(void) = AliasedUse : ~m? +# 1455| v1455_6(void) = ExitFunction : + +# 1472| void temporary_unusual_fields() +# 1472| Block 0 +# 1472| v1472_1(void) = EnterFunction : +# 1472| mu1472_2(unknown) = AliasedDefinition : +# 1472| mu1472_3(unknown) = InitializeNonLocal : +# 1473| r1473_1(glval) = VariableAddress[rx] : +# 1473| r1473_2(glval) = FunctionAddress[returnValue] : +# 1473| r1473_3(UnusualFields) = Call[returnValue] : func:r1473_2 +# 1473| mu1473_4(unknown) = ^CallSideEffect : ~m? +# 1473| r1473_5(glval) = VariableAddress[#temp1473:21] : +# 1473| mu1473_6(UnusualFields) = Store[#temp1473:21] : &:r1473_5, r1473_3 +# 1473| r1473_7(glval) = FieldAddress[r] : r1473_5 +# 1473| r1473_8(int &) = Load[?] : &:r1473_7, ~m? +# 1473| r1473_9(glval) = CopyValue : r1473_8 +# 1473| r1473_10(glval) = Convert : r1473_9 +# 1473| r1473_11(int &) = CopyValue : r1473_10 +# 1473| mu1473_12(int &) = Store[rx] : &:r1473_1, r1473_11 +# 1474| r1474_1(glval) = VariableAddress[x] : # 1474| r1474_2(glval) = FunctionAddress[returnValue] : # 1474| r1474_3(UnusualFields) = Call[returnValue] : func:r1474_2 # 1474| mu1474_4(unknown) = ^CallSideEffect : ~m? -# 1474| r1474_5(glval) = VariableAddress[#temp1474:23] : -# 1474| mu1474_6(UnusualFields) = Store[#temp1474:23] : &:r1474_5, r1474_3 -# 1474| r1474_7(glval) = FieldAddress[a] : r1474_5 -# 1474| r1474_8(float *) = Convert : r1474_7 -# 1474| r1474_9(int) = Constant[3] : -# 1474| r1474_10(glval) = PointerAdd[4] : r1474_8, r1474_9 -# 1474| r1474_11(glval) = Convert : r1474_10 -# 1474| r1474_12(float &) = CopyValue : r1474_11 -# 1474| mu1474_13(float &) = Store[rf] : &:r1474_1, r1474_12 -# 1475| r1475_1(glval) = VariableAddress[f] : -# 1475| r1475_2(glval) = FunctionAddress[returnValue] : -# 1475| r1475_3(UnusualFields) = Call[returnValue] : func:r1475_2 -# 1475| mu1475_4(unknown) = ^CallSideEffect : ~m? -# 1475| r1475_5(glval) = VariableAddress[#temp1475:15] : -# 1475| mu1475_6(UnusualFields) = Store[#temp1475:15] : &:r1475_5, r1475_3 -# 1475| r1475_7(glval) = FieldAddress[a] : r1475_5 -# 1475| r1475_8(float *) = Convert : r1475_7 -# 1475| r1475_9(int) = Constant[5] : -# 1475| r1475_10(glval) = PointerAdd[4] : r1475_8, r1475_9 -# 1475| r1475_11(float) = Load[?] : &:r1475_10, ~m? -# 1475| mu1475_12(float) = Store[f] : &:r1475_1, r1475_11 -# 1476| v1476_1(void) = NoOp : -# 1470| v1470_4(void) = ReturnVoid : -# 1470| v1470_5(void) = AliasedUse : ~m? -# 1470| v1470_6(void) = ExitFunction : - -# 1492| void temporary_hierarchy() -# 1492| Block 0 -# 1492| v1492_1(void) = EnterFunction : -# 1492| mu1492_2(unknown) = AliasedDefinition : -# 1492| mu1492_3(unknown) = InitializeNonLocal : -# 1493| r1493_1(glval) = VariableAddress[b] : +# 1474| r1474_5(glval) = VariableAddress[#temp1474:13] : +# 1474| mu1474_6(UnusualFields) = Store[#temp1474:13] : &:r1474_5, r1474_3 +# 1474| r1474_7(glval) = FieldAddress[r] : r1474_5 +# 1474| r1474_8(int &) = Load[?] : &:r1474_7, ~m? +# 1474| r1474_9(int) = Load[?] : &:r1474_8, ~m? +# 1474| mu1474_10(int) = Store[x] : &:r1474_1, r1474_9 +# 1476| r1476_1(glval) = VariableAddress[rf] : +# 1476| r1476_2(glval) = FunctionAddress[returnValue] : +# 1476| r1476_3(UnusualFields) = Call[returnValue] : func:r1476_2 +# 1476| mu1476_4(unknown) = ^CallSideEffect : ~m? +# 1476| r1476_5(glval) = VariableAddress[#temp1476:23] : +# 1476| mu1476_6(UnusualFields) = Store[#temp1476:23] : &:r1476_5, r1476_3 +# 1476| r1476_7(glval) = FieldAddress[a] : r1476_5 +# 1476| r1476_8(float *) = Convert : r1476_7 +# 1476| r1476_9(int) = Constant[3] : +# 1476| r1476_10(glval) = PointerAdd[4] : r1476_8, r1476_9 +# 1476| r1476_11(glval) = Convert : r1476_10 +# 1476| r1476_12(float &) = CopyValue : r1476_11 +# 1476| mu1476_13(float &) = Store[rf] : &:r1476_1, r1476_12 +# 1477| r1477_1(glval) = VariableAddress[f] : +# 1477| r1477_2(glval) = FunctionAddress[returnValue] : +# 1477| r1477_3(UnusualFields) = Call[returnValue] : func:r1477_2 +# 1477| mu1477_4(unknown) = ^CallSideEffect : ~m? +# 1477| r1477_5(glval) = VariableAddress[#temp1477:15] : +# 1477| mu1477_6(UnusualFields) = Store[#temp1477:15] : &:r1477_5, r1477_3 +# 1477| r1477_7(glval) = FieldAddress[a] : r1477_5 +# 1477| r1477_8(float *) = Convert : r1477_7 +# 1477| r1477_9(int) = Constant[5] : +# 1477| r1477_10(glval) = PointerAdd[4] : r1477_8, r1477_9 +# 1477| r1477_11(float) = Load[?] : &:r1477_10, ~m? +# 1477| mu1477_12(float) = Store[f] : &:r1477_1, r1477_11 +# 1478| v1478_1(void) = NoOp : +# 1472| v1472_4(void) = ReturnVoid : +# 1472| v1472_5(void) = AliasedUse : ~m? +# 1472| v1472_6(void) = ExitFunction : + +# 1494| void temporary_hierarchy() +# 1494| Block 0 +# 1494| v1494_1(void) = EnterFunction : +# 1494| mu1494_2(unknown) = AliasedDefinition : +# 1494| mu1494_3(unknown) = InitializeNonLocal : +# 1495| r1495_1(glval) = VariableAddress[b] : #-----| r0_1(glval) = VariableAddress[#temp0:0] : -# 1493| r1493_2(glval) = FunctionAddress[returnValue] : -# 1493| r1493_3(POD_Middle) = Call[returnValue] : func:r1493_2 -# 1493| mu1493_4(unknown) = ^CallSideEffect : ~m? -# 1493| mu1493_5(POD_Middle) = Store[#temp0:0] : &:r0_1, r1493_3 +# 1495| r1495_2(glval) = FunctionAddress[returnValue] : +# 1495| r1495_3(POD_Middle) = Call[returnValue] : func:r1495_2 +# 1495| mu1495_4(unknown) = ^CallSideEffect : ~m? +# 1495| mu1495_5(POD_Middle) = Store[#temp0:0] : &:r0_1, r1495_3 #-----| r0_2(glval) = ConvertToNonVirtualBase[POD_Middle : POD_Base] : r0_1 #-----| r0_3(POD_Base) = Load[?] : &:r0_2, ~m? -#-----| mu0_4(POD_Base) = Store[b] : &:r1493_1, r0_3 -# 1494| r1494_1(glval) = VariableAddress[#temp1494:9] : -# 1494| r1494_2(glval) = FunctionAddress[returnValue] : -# 1494| r1494_3(POD_Derived) = Call[returnValue] : func:r1494_2 -# 1494| mu1494_4(unknown) = ^CallSideEffect : ~m? -# 1494| mu1494_5(POD_Derived) = Store[#temp1494:9] : &:r1494_1, r1494_3 -# 1494| r1494_6(glval) = ConvertToNonVirtualBase[POD_Derived : POD_Middle] : r1494_1 -# 1494| r1494_7(glval) = ConvertToNonVirtualBase[POD_Middle : POD_Base] : r1494_6 -# 1494| r1494_8(POD_Base) = Load[?] : &:r1494_7, ~m? -# 1494| r1494_9(glval) = VariableAddress[b] : -# 1494| mu1494_10(POD_Base) = Store[b] : &:r1494_9, r1494_8 -# 1495| r1495_1(glval) = VariableAddress[x] : +#-----| mu0_4(POD_Base) = Store[b] : &:r1495_1, r0_3 +# 1496| r1496_1(glval) = VariableAddress[#temp1496:9] : +# 1496| r1496_2(glval) = FunctionAddress[returnValue] : +# 1496| r1496_3(POD_Derived) = Call[returnValue] : func:r1496_2 +# 1496| mu1496_4(unknown) = ^CallSideEffect : ~m? +# 1496| mu1496_5(POD_Derived) = Store[#temp1496:9] : &:r1496_1, r1496_3 +# 1496| r1496_6(glval) = ConvertToNonVirtualBase[POD_Derived : POD_Middle] : r1496_1 +# 1496| r1496_7(glval) = ConvertToNonVirtualBase[POD_Middle : POD_Base] : r1496_6 +# 1496| r1496_8(POD_Base) = Load[?] : &:r1496_7, ~m? +# 1496| r1496_9(glval) = VariableAddress[b] : +# 1496| mu1496_10(POD_Base) = Store[b] : &:r1496_9, r1496_8 +# 1497| r1497_1(glval) = VariableAddress[x] : #-----| r0_5(glval) = VariableAddress[#temp0:0] : -# 1495| r1495_2(glval) = FunctionAddress[returnValue] : -# 1495| r1495_3(POD_Derived) = Call[returnValue] : func:r1495_2 -# 1495| mu1495_4(unknown) = ^CallSideEffect : ~m? -# 1495| mu1495_5(POD_Derived) = Store[#temp0:0] : &:r0_5, r1495_3 +# 1497| r1497_2(glval) = FunctionAddress[returnValue] : +# 1497| r1497_3(POD_Derived) = Call[returnValue] : func:r1497_2 +# 1497| mu1497_4(unknown) = ^CallSideEffect : ~m? +# 1497| mu1497_5(POD_Derived) = Store[#temp0:0] : &:r0_5, r1497_3 #-----| r0_6(glval) = ConvertToNonVirtualBase[POD_Derived : POD_Middle] : r0_5 #-----| r0_7(glval) = ConvertToNonVirtualBase[POD_Middle : POD_Base] : r0_6 -# 1495| r1495_6(glval) = FieldAddress[x] : r0_7 -# 1495| r1495_7(int) = Load[?] : &:r1495_6, ~m? -# 1495| mu1495_8(int) = Store[x] : &:r1495_1, r1495_7 -# 1496| r1496_1(glval) = VariableAddress[f] : +# 1497| r1497_6(glval) = FieldAddress[x] : r0_7 +# 1497| r1497_7(int) = Load[?] : &:r1497_6, ~m? +# 1497| mu1497_8(int) = Store[x] : &:r1497_1, r1497_7 +# 1498| r1498_1(glval) = VariableAddress[f] : #-----| r0_8(glval) = VariableAddress[#temp0:0] : -# 1496| r1496_2(glval) = FunctionAddress[returnValue] : -# 1496| r1496_3(POD_Derived) = Call[returnValue] : func:r1496_2 -# 1496| mu1496_4(unknown) = ^CallSideEffect : ~m? -# 1496| mu1496_5(POD_Derived) = Store[#temp0:0] : &:r0_8, r1496_3 +# 1498| r1498_2(glval) = FunctionAddress[returnValue] : +# 1498| r1498_3(POD_Derived) = Call[returnValue] : func:r1498_2 +# 1498| mu1498_4(unknown) = ^CallSideEffect : ~m? +# 1498| mu1498_5(POD_Derived) = Store[#temp0:0] : &:r0_8, r1498_3 #-----| r0_9(glval) = ConvertToNonVirtualBase[POD_Derived : POD_Middle] : r0_8 #-----| r0_10(glval) = ConvertToNonVirtualBase[POD_Middle : POD_Base] : r0_9 #-----| r0_11(glval) = Convert : r0_10 -# 1496| r1496_6(glval) = FunctionAddress[f] : -# 1496| r1496_7(float) = Call[f] : func:r1496_6, this:r0_11 -# 1496| mu1496_8(unknown) = ^CallSideEffect : ~m? +# 1498| r1498_6(glval) = FunctionAddress[f] : +# 1498| r1498_7(float) = Call[f] : func:r1498_6, this:r0_11 +# 1498| mu1498_8(unknown) = ^CallSideEffect : ~m? #-----| v0_12(void) = ^IndirectReadSideEffect[-1] : &:r0_11, ~m? -# 1496| mu1496_9(float) = Store[f] : &:r1496_1, r1496_7 -# 1497| v1497_1(void) = NoOp : -# 1492| v1492_4(void) = ReturnVoid : -# 1492| v1492_5(void) = AliasedUse : ~m? -# 1492| v1492_6(void) = ExitFunction : - -# 1500| void Inheritance_Test_B::~Inheritance_Test_B() -# 1500| Block 0 -# 1500| v1500_1(void) = EnterFunction : -# 1500| mu1500_2(unknown) = AliasedDefinition : -# 1500| mu1500_3(unknown) = InitializeNonLocal : -# 1500| r1500_4(glval) = VariableAddress[#this] : -# 1500| mu1500_5(glval) = InitializeParameter[#this] : &:r1500_4 -# 1500| r1500_6(glval) = Load[#this] : &:r1500_4, ~m? -# 1500| mu1500_7(Inheritance_Test_B) = InitializeIndirection[#this] : &:r1500_6 -# 1500| v1500_8(void) = NoOp : -# 1500| v1500_9(void) = ReturnIndirection[#this] : &:r1500_6, ~m? -# 1500| v1500_10(void) = ReturnVoid : -# 1500| v1500_11(void) = AliasedUse : ~m? -# 1500| v1500_12(void) = ExitFunction : - -# 1506| void Inheritance_Test_A::Inheritance_Test_A() -# 1506| Block 0 -# 1506| v1506_1(void) = EnterFunction : -# 1506| mu1506_2(unknown) = AliasedDefinition : -# 1506| mu1506_3(unknown) = InitializeNonLocal : -# 1506| r1506_4(glval) = VariableAddress[#this] : -# 1506| mu1506_5(glval) = InitializeParameter[#this] : &:r1506_4 -# 1506| r1506_6(glval) = Load[#this] : &:r1506_4, ~m? -# 1506| mu1506_7(Inheritance_Test_A) = InitializeIndirection[#this] : &:r1506_6 -# 1506| r1506_8(glval) = FieldAddress[x] : r1506_6 -# 1506| r1506_9(int) = Constant[42] : -# 1506| mu1506_10(int) = Store[?] : &:r1506_8, r1506_9 -# 1507| r1507_1(int) = Constant[3] : -# 1507| r1507_2(glval) = VariableAddress[#this] : -# 1507| r1507_3(Inheritance_Test_A *) = Load[#this] : &:r1507_2, ~m? -# 1507| r1507_4(glval) = FieldAddress[y] : r1507_3 -# 1507| mu1507_5(int) = Store[?] : &:r1507_4, r1507_1 -# 1508| v1508_1(void) = NoOp : -# 1506| v1506_11(void) = ReturnIndirection[#this] : &:r1506_6, ~m? -# 1506| v1506_12(void) = ReturnVoid : -# 1506| v1506_13(void) = AliasedUse : ~m? -# 1506| v1506_14(void) = ExitFunction : - -# 1511| void array_structured_binding() -# 1511| Block 0 -# 1511| v1511_1(void) = EnterFunction : -# 1511| mu1511_2(unknown) = AliasedDefinition : -# 1511| mu1511_3(unknown) = InitializeNonLocal : -# 1512| r1512_1(glval) = VariableAddress[xs] : -# 1512| mu1512_2(int[2]) = Uninitialized[xs] : &:r1512_1 -# 1512| r1512_3(int) = Constant[0] : -# 1512| r1512_4(glval) = PointerAdd[4] : r1512_1, r1512_3 -# 1512| r1512_5(int) = Constant[1] : -# 1512| mu1512_6(int) = Store[?] : &:r1512_4, r1512_5 -# 1512| r1512_7(int) = Constant[1] : -# 1512| r1512_8(glval) = PointerAdd[4] : r1512_1, r1512_7 -# 1512| r1512_9(int) = Constant[2] : -# 1512| mu1512_10(int) = Store[?] : &:r1512_8, r1512_9 -# 1515| r1515_1(glval) = VariableAddress[(unnamed local variable)] : -# 1515| r1515_2(glval) = VariableAddress[xs] : -# 1515| r1515_3(int(&)[2]) = CopyValue : r1515_2 -# 1515| mu1515_4(int(&)[2]) = Store[(unnamed local variable)] : &:r1515_1, r1515_3 -# 1515| r1515_5(glval) = VariableAddress[x0] : +# 1498| mu1498_9(float) = Store[f] : &:r1498_1, r1498_7 +# 1499| v1499_1(void) = NoOp : +# 1494| v1494_4(void) = ReturnVoid : +# 1494| v1494_5(void) = AliasedUse : ~m? +# 1494| v1494_6(void) = ExitFunction : + +# 1502| void Inheritance_Test_B::~Inheritance_Test_B() +# 1502| Block 0 +# 1502| v1502_1(void) = EnterFunction : +# 1502| mu1502_2(unknown) = AliasedDefinition : +# 1502| mu1502_3(unknown) = InitializeNonLocal : +# 1502| r1502_4(glval) = VariableAddress[#this] : +# 1502| mu1502_5(glval) = InitializeParameter[#this] : &:r1502_4 +# 1502| r1502_6(glval) = Load[#this] : &:r1502_4, ~m? +# 1502| mu1502_7(Inheritance_Test_B) = InitializeIndirection[#this] : &:r1502_6 +# 1502| v1502_8(void) = NoOp : +# 1502| v1502_9(void) = ReturnIndirection[#this] : &:r1502_6, ~m? +# 1502| v1502_10(void) = ReturnVoid : +# 1502| v1502_11(void) = AliasedUse : ~m? +# 1502| v1502_12(void) = ExitFunction : + +# 1508| void Inheritance_Test_A::Inheritance_Test_A() +# 1508| Block 0 +# 1508| v1508_1(void) = EnterFunction : +# 1508| mu1508_2(unknown) = AliasedDefinition : +# 1508| mu1508_3(unknown) = InitializeNonLocal : +# 1508| r1508_4(glval) = VariableAddress[#this] : +# 1508| mu1508_5(glval) = InitializeParameter[#this] : &:r1508_4 +# 1508| r1508_6(glval) = Load[#this] : &:r1508_4, ~m? +# 1508| mu1508_7(Inheritance_Test_A) = InitializeIndirection[#this] : &:r1508_6 +# 1508| r1508_8(glval) = FieldAddress[x] : r1508_6 +# 1508| r1508_9(int) = Constant[42] : +# 1508| mu1508_10(int) = Store[?] : &:r1508_8, r1508_9 +# 1509| r1509_1(int) = Constant[3] : +# 1509| r1509_2(glval) = VariableAddress[#this] : +# 1509| r1509_3(Inheritance_Test_A *) = Load[#this] : &:r1509_2, ~m? +# 1509| r1509_4(glval) = FieldAddress[y] : r1509_3 +# 1509| mu1509_5(int) = Store[?] : &:r1509_4, r1509_1 +# 1510| v1510_1(void) = NoOp : +# 1508| v1508_11(void) = ReturnIndirection[#this] : &:r1508_6, ~m? +# 1508| v1508_12(void) = ReturnVoid : +# 1508| v1508_13(void) = AliasedUse : ~m? +# 1508| v1508_14(void) = ExitFunction : + +# 1513| void array_structured_binding() +# 1513| Block 0 +# 1513| v1513_1(void) = EnterFunction : +# 1513| mu1513_2(unknown) = AliasedDefinition : +# 1513| mu1513_3(unknown) = InitializeNonLocal : +# 1514| r1514_1(glval) = VariableAddress[xs] : +# 1514| mu1514_2(int[2]) = Uninitialized[xs] : &:r1514_1 +# 1514| r1514_3(int) = Constant[0] : +# 1514| r1514_4(glval) = PointerAdd[4] : r1514_1, r1514_3 +# 1514| r1514_5(int) = Constant[1] : +# 1514| mu1514_6(int) = Store[?] : &:r1514_4, r1514_5 +# 1514| r1514_7(int) = Constant[1] : +# 1514| r1514_8(glval) = PointerAdd[4] : r1514_1, r1514_7 +# 1514| r1514_9(int) = Constant[2] : +# 1514| mu1514_10(int) = Store[?] : &:r1514_8, r1514_9 +# 1517| r1517_1(glval) = VariableAddress[(unnamed local variable)] : +# 1517| r1517_2(glval) = VariableAddress[xs] : +# 1517| r1517_3(int(&)[2]) = CopyValue : r1517_2 +# 1517| mu1517_4(int(&)[2]) = Store[(unnamed local variable)] : &:r1517_1, r1517_3 +# 1517| r1517_5(glval) = VariableAddress[x0] : #-----| r0_1(glval) = VariableAddress[(unnamed local variable)] : #-----| r0_2(int(&)[2]) = Load[(unnamed local variable)] : &:r0_1, ~m? #-----| r0_3(glval) = CopyValue : r0_2 #-----| r0_4(int *) = Convert : r0_3 #-----| r0_5(unsigned long) = Constant[0] : #-----| r0_6(glval) = PointerAdd[4] : r0_4, r0_5 -#-----| mu0_7(int &) = Store[x0] : &:r1515_5, r0_6 -# 1515| r1515_6(glval) = VariableAddress[x1] : +#-----| mu0_7(int &) = Store[x0] : &:r1517_5, r0_6 +# 1517| r1517_6(glval) = VariableAddress[x1] : #-----| r0_8(glval) = VariableAddress[(unnamed local variable)] : #-----| r0_9(int(&)[2]) = Load[(unnamed local variable)] : &:r0_8, ~m? #-----| r0_10(glval) = CopyValue : r0_9 #-----| r0_11(int *) = Convert : r0_10 #-----| r0_12(unsigned long) = Constant[1] : #-----| r0_13(glval) = PointerAdd[4] : r0_11, r0_12 -#-----| mu0_14(int &) = Store[x1] : &:r1515_6, r0_13 -# 1516| r1516_1(int) = Constant[3] : -# 1516| r1516_2(glval) = VariableAddress[x1] : -# 1516| r1516_3(int &) = Load[x1] : &:r1516_2, ~m? -# 1516| mu1516_4(int) = Store[?] : &:r1516_3, r1516_1 -# 1517| r1517_1(glval) = VariableAddress[rx1] : -# 1517| r1517_2(glval) = VariableAddress[x1] : -# 1517| r1517_3(int &) = Load[x1] : &:r1517_2, ~m? -# 1517| r1517_4(int &) = CopyValue : r1517_3 -# 1517| mu1517_5(int &) = Store[rx1] : &:r1517_1, r1517_4 -# 1518| r1518_1(glval) = VariableAddress[x] : +#-----| mu0_14(int &) = Store[x1] : &:r1517_6, r0_13 +# 1518| r1518_1(int) = Constant[3] : # 1518| r1518_2(glval) = VariableAddress[x1] : # 1518| r1518_3(int &) = Load[x1] : &:r1518_2, ~m? -# 1518| r1518_4(int) = Load[?] : &:r1518_3, ~m? -# 1518| mu1518_5(int) = Store[x] : &:r1518_1, r1518_4 -# 1522| r1522_1(glval) = VariableAddress[unnamed_local_variable] : -# 1522| r1522_2(glval) = VariableAddress[xs] : -# 1522| r1522_3(int(&)[2]) = CopyValue : r1522_2 -# 1522| mu1522_4(int(&)[2]) = Store[unnamed_local_variable] : &:r1522_1, r1522_3 -# 1523| r1523_1(glval) = VariableAddress[x0] : -# 1523| r1523_2(glval) = VariableAddress[unnamed_local_variable] : -# 1523| r1523_3(int(&)[2]) = Load[unnamed_local_variable] : &:r1523_2, ~m? -# 1523| r1523_4(glval) = CopyValue : r1523_3 -# 1523| r1523_5(int *) = Convert : r1523_4 -# 1523| r1523_6(int) = Constant[0] : -# 1523| r1523_7(glval) = PointerAdd[4] : r1523_5, r1523_6 -# 1523| r1523_8(int &) = CopyValue : r1523_7 -# 1523| mu1523_9(int &) = Store[x0] : &:r1523_1, r1523_8 -# 1524| r1524_1(glval) = VariableAddress[x1] : -# 1524| r1524_2(glval) = VariableAddress[unnamed_local_variable] : -# 1524| r1524_3(int(&)[2]) = Load[unnamed_local_variable] : &:r1524_2, ~m? -# 1524| r1524_4(glval) = CopyValue : r1524_3 -# 1524| r1524_5(int *) = Convert : r1524_4 -# 1524| r1524_6(int) = Constant[1] : -# 1524| r1524_7(glval) = PointerAdd[4] : r1524_5, r1524_6 -# 1524| r1524_8(int &) = CopyValue : r1524_7 -# 1524| mu1524_9(int &) = Store[x1] : &:r1524_1, r1524_8 -# 1525| r1525_1(int) = Constant[3] : -# 1525| r1525_2(glval) = VariableAddress[x1] : -# 1525| r1525_3(int &) = Load[x1] : &:r1525_2, ~m? -# 1525| r1525_4(glval) = CopyValue : r1525_3 -# 1525| mu1525_5(int) = Store[?] : &:r1525_4, r1525_1 -# 1526| r1526_1(glval) = VariableAddress[rx1] : -# 1526| r1526_2(glval) = VariableAddress[x1] : -# 1526| r1526_3(int &) = Load[x1] : &:r1526_2, ~m? -# 1526| r1526_4(glval) = CopyValue : r1526_3 -# 1526| r1526_5(int &) = CopyValue : r1526_4 -# 1526| mu1526_6(int &) = Store[rx1] : &:r1526_1, r1526_5 -# 1527| r1527_1(glval) = VariableAddress[x] : +# 1518| mu1518_4(int) = Store[?] : &:r1518_3, r1518_1 +# 1519| r1519_1(glval) = VariableAddress[rx1] : +# 1519| r1519_2(glval) = VariableAddress[x1] : +# 1519| r1519_3(int &) = Load[x1] : &:r1519_2, ~m? +# 1519| r1519_4(int &) = CopyValue : r1519_3 +# 1519| mu1519_5(int &) = Store[rx1] : &:r1519_1, r1519_4 +# 1520| r1520_1(glval) = VariableAddress[x] : +# 1520| r1520_2(glval) = VariableAddress[x1] : +# 1520| r1520_3(int &) = Load[x1] : &:r1520_2, ~m? +# 1520| r1520_4(int) = Load[?] : &:r1520_3, ~m? +# 1520| mu1520_5(int) = Store[x] : &:r1520_1, r1520_4 +# 1524| r1524_1(glval) = VariableAddress[unnamed_local_variable] : +# 1524| r1524_2(glval) = VariableAddress[xs] : +# 1524| r1524_3(int(&)[2]) = CopyValue : r1524_2 +# 1524| mu1524_4(int(&)[2]) = Store[unnamed_local_variable] : &:r1524_1, r1524_3 +# 1525| r1525_1(glval) = VariableAddress[x0] : +# 1525| r1525_2(glval) = VariableAddress[unnamed_local_variable] : +# 1525| r1525_3(int(&)[2]) = Load[unnamed_local_variable] : &:r1525_2, ~m? +# 1525| r1525_4(glval) = CopyValue : r1525_3 +# 1525| r1525_5(int *) = Convert : r1525_4 +# 1525| r1525_6(int) = Constant[0] : +# 1525| r1525_7(glval) = PointerAdd[4] : r1525_5, r1525_6 +# 1525| r1525_8(int &) = CopyValue : r1525_7 +# 1525| mu1525_9(int &) = Store[x0] : &:r1525_1, r1525_8 +# 1526| r1526_1(glval) = VariableAddress[x1] : +# 1526| r1526_2(glval) = VariableAddress[unnamed_local_variable] : +# 1526| r1526_3(int(&)[2]) = Load[unnamed_local_variable] : &:r1526_2, ~m? +# 1526| r1526_4(glval) = CopyValue : r1526_3 +# 1526| r1526_5(int *) = Convert : r1526_4 +# 1526| r1526_6(int) = Constant[1] : +# 1526| r1526_7(glval) = PointerAdd[4] : r1526_5, r1526_6 +# 1526| r1526_8(int &) = CopyValue : r1526_7 +# 1526| mu1526_9(int &) = Store[x1] : &:r1526_1, r1526_8 +# 1527| r1527_1(int) = Constant[3] : # 1527| r1527_2(glval) = VariableAddress[x1] : # 1527| r1527_3(int &) = Load[x1] : &:r1527_2, ~m? -# 1527| r1527_4(int) = Load[?] : &:r1527_3, ~m? -# 1527| mu1527_5(int) = Store[x] : &:r1527_1, r1527_4 -# 1529| v1529_1(void) = NoOp : -# 1511| v1511_4(void) = ReturnVoid : -# 1511| v1511_5(void) = AliasedUse : ~m? -# 1511| v1511_6(void) = ExitFunction : - -# 1531| void StructuredBindingDataMemberMemberStruct::StructuredBindingDataMemberMemberStruct() -# 1531| Block 0 -# 1531| v1531_1(void) = EnterFunction : -# 1531| mu1531_2(unknown) = AliasedDefinition : -# 1531| mu1531_3(unknown) = InitializeNonLocal : -# 1531| r1531_4(glval) = VariableAddress[#this] : -# 1531| mu1531_5(glval) = InitializeParameter[#this] : &:r1531_4 -# 1531| r1531_6(glval) = Load[#this] : &:r1531_4, ~m? -# 1531| mu1531_7(StructuredBindingDataMemberMemberStruct) = InitializeIndirection[#this] : &:r1531_6 -# 1531| v1531_8(void) = NoOp : -# 1531| v1531_9(void) = ReturnIndirection[#this] : &:r1531_6, ~m? -# 1531| v1531_10(void) = ReturnVoid : -# 1531| v1531_11(void) = AliasedUse : ~m? -# 1531| v1531_12(void) = ExitFunction : - -# 1535| void StructuredBindingDataMemberStruct::StructuredBindingDataMemberStruct() -# 1535| Block 0 -# 1535| v1535_1(void) = EnterFunction : -# 1535| mu1535_2(unknown) = AliasedDefinition : -# 1535| mu1535_3(unknown) = InitializeNonLocal : -# 1535| r1535_4(glval) = VariableAddress[#this] : -# 1535| mu1535_5(glval) = InitializeParameter[#this] : &:r1535_4 -# 1535| r1535_6(glval) = Load[#this] : &:r1535_4, ~m? -# 1535| mu1535_7(StructuredBindingDataMemberStruct) = InitializeIndirection[#this] : &:r1535_6 +# 1527| r1527_4(glval) = CopyValue : r1527_3 +# 1527| mu1527_5(int) = Store[?] : &:r1527_4, r1527_1 +# 1528| r1528_1(glval) = VariableAddress[rx1] : +# 1528| r1528_2(glval) = VariableAddress[x1] : +# 1528| r1528_3(int &) = Load[x1] : &:r1528_2, ~m? +# 1528| r1528_4(glval) = CopyValue : r1528_3 +# 1528| r1528_5(int &) = CopyValue : r1528_4 +# 1528| mu1528_6(int &) = Store[rx1] : &:r1528_1, r1528_5 +# 1529| r1529_1(glval) = VariableAddress[x] : +# 1529| r1529_2(glval) = VariableAddress[x1] : +# 1529| r1529_3(int &) = Load[x1] : &:r1529_2, ~m? +# 1529| r1529_4(int) = Load[?] : &:r1529_3, ~m? +# 1529| mu1529_5(int) = Store[x] : &:r1529_1, r1529_4 +# 1531| v1531_1(void) = NoOp : +# 1513| v1513_4(void) = ReturnVoid : +# 1513| v1513_5(void) = AliasedUse : ~m? +# 1513| v1513_6(void) = ExitFunction : + +# 1533| void StructuredBindingDataMemberMemberStruct::StructuredBindingDataMemberMemberStruct() +# 1533| Block 0 +# 1533| v1533_1(void) = EnterFunction : +# 1533| mu1533_2(unknown) = AliasedDefinition : +# 1533| mu1533_3(unknown) = InitializeNonLocal : +# 1533| r1533_4(glval) = VariableAddress[#this] : +# 1533| mu1533_5(glval) = InitializeParameter[#this] : &:r1533_4 +# 1533| r1533_6(glval) = Load[#this] : &:r1533_4, ~m? +# 1533| mu1533_7(StructuredBindingDataMemberMemberStruct) = InitializeIndirection[#this] : &:r1533_6 +# 1533| v1533_8(void) = NoOp : +# 1533| v1533_9(void) = ReturnIndirection[#this] : &:r1533_6, ~m? +# 1533| v1533_10(void) = ReturnVoid : +# 1533| v1533_11(void) = AliasedUse : ~m? +# 1533| v1533_12(void) = ExitFunction : + +# 1537| void StructuredBindingDataMemberStruct::StructuredBindingDataMemberStruct() +# 1537| Block 0 +# 1537| v1537_1(void) = EnterFunction : +# 1537| mu1537_2(unknown) = AliasedDefinition : +# 1537| mu1537_3(unknown) = InitializeNonLocal : +# 1537| r1537_4(glval) = VariableAddress[#this] : +# 1537| mu1537_5(glval) = InitializeParameter[#this] : &:r1537_4 +# 1537| r1537_6(glval) = Load[#this] : &:r1537_4, ~m? +# 1537| mu1537_7(StructuredBindingDataMemberStruct) = InitializeIndirection[#this] : &:r1537_6 #-----| Goto -> Block 2 -# 1535| Block 1 -# 1535| r1535_8(glval) = FieldAddress[m] : r1535_6 -# 1535| r1535_9(glval) = FunctionAddress[StructuredBindingDataMemberMemberStruct] : -# 1535| v1535_10(void) = Call[StructuredBindingDataMemberMemberStruct] : func:r1535_9, this:r1535_8 -# 1535| mu1535_11(unknown) = ^CallSideEffect : ~m? -# 1535| mu1535_12(StructuredBindingDataMemberMemberStruct) = ^IndirectMayWriteSideEffect[-1] : &:r1535_8 +# 1537| Block 1 +# 1537| r1537_8(glval) = FieldAddress[m] : r1537_6 +# 1537| r1537_9(glval) = FunctionAddress[StructuredBindingDataMemberMemberStruct] : +# 1537| v1537_10(void) = Call[StructuredBindingDataMemberMemberStruct] : func:r1537_9, this:r1537_8 +# 1537| mu1537_11(unknown) = ^CallSideEffect : ~m? +# 1537| mu1537_12(StructuredBindingDataMemberMemberStruct) = ^IndirectMayWriteSideEffect[-1] : &:r1537_8 #-----| Goto -> Block 2 -# 1535| Block 2 -# 1535| v1535_13(void) = NoOp : -# 1535| v1535_14(void) = ReturnIndirection[#this] : &:r1535_6, ~m? -# 1535| v1535_15(void) = ReturnVoid : -# 1535| v1535_16(void) = AliasedUse : ~m? -# 1535| v1535_17(void) = ExitFunction : - -# 1535| void StructuredBindingDataMemberStruct::StructuredBindingDataMemberStruct(StructuredBindingDataMemberStruct const&) -# 1535| Block 0 -# 1535| v1535_1(void) = EnterFunction : -# 1535| mu1535_2(unknown) = AliasedDefinition : -# 1535| mu1535_3(unknown) = InitializeNonLocal : -# 1535| r1535_4(glval) = VariableAddress[#this] : -# 1535| mu1535_5(glval) = InitializeParameter[#this] : &:r1535_4 -# 1535| r1535_6(glval) = Load[#this] : &:r1535_4, ~m? -# 1535| mu1535_7(StructuredBindingDataMemberStruct) = InitializeIndirection[#this] : &:r1535_6 +# 1537| Block 2 +# 1537| v1537_13(void) = NoOp : +# 1537| v1537_14(void) = ReturnIndirection[#this] : &:r1537_6, ~m? +# 1537| v1537_15(void) = ReturnVoid : +# 1537| v1537_16(void) = AliasedUse : ~m? +# 1537| v1537_17(void) = ExitFunction : + +# 1537| void StructuredBindingDataMemberStruct::StructuredBindingDataMemberStruct(StructuredBindingDataMemberStruct const&) +# 1537| Block 0 +# 1537| v1537_1(void) = EnterFunction : +# 1537| mu1537_2(unknown) = AliasedDefinition : +# 1537| mu1537_3(unknown) = InitializeNonLocal : +# 1537| r1537_4(glval) = VariableAddress[#this] : +# 1537| mu1537_5(glval) = InitializeParameter[#this] : &:r1537_4 +# 1537| r1537_6(glval) = Load[#this] : &:r1537_4, ~m? +# 1537| mu1537_7(StructuredBindingDataMemberStruct) = InitializeIndirection[#this] : &:r1537_6 #-----| r0_1(glval) = VariableAddress[(unnamed parameter 0)] : #-----| mu0_2(StructuredBindingDataMemberStruct &) = InitializeParameter[(unnamed parameter 0)] : &:r0_1 #-----| r0_3(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r0_1, ~m? #-----| mu0_4(unknown) = InitializeIndirection[(unnamed parameter 0)] : &:r0_3 -# 1535| r1535_8(glval) = FieldAddress[i] : r1535_6 -# 1535| r1535_9(glval) = VariableAddress[(unnamed parameter 0)] : -# 1535| r1535_10(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1535_9, ~m? -# 1535| r1535_11(glval) = CopyValue : r1535_10 -# 1535| r1535_12(glval) = FieldAddress[i] : r1535_11 -# 1535| r1535_13(int) = Load[?] : &:r1535_12, ~m? -# 1535| mu1535_14(int) = Store[?] : &:r1535_8, r1535_13 -# 1535| r1535_15(glval) = FieldAddress[d] : r1535_6 -# 1535| r1535_16(glval) = VariableAddress[(unnamed parameter 0)] : -# 1535| r1535_17(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1535_16, ~m? -# 1535| r1535_18(glval) = CopyValue : r1535_17 -# 1535| r1535_19(glval) = FieldAddress[d] : r1535_18 -# 1535| r1535_20(double) = Load[?] : &:r1535_19, ~m? -# 1535| mu1535_21(double) = Store[?] : &:r1535_15, r1535_20 -# 1535| r1535_22(glval) = FieldAddress[b] : r1535_6 -# 1535| r1535_23(glval) = VariableAddress[(unnamed parameter 0)] : -# 1535| r1535_24(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1535_23, ~m? -# 1535| r1535_25(glval) = CopyValue : r1535_24 -# 1535| r1535_26(glval) = FieldAddress[b] : r1535_25 -# 1535| r1535_27(unsigned int) = Load[?] : &:r1535_26, ~m? -# 1535| mu1535_28(unsigned int) = Store[?] : &:r1535_22, r1535_27 -# 1535| r1535_29(glval) = FieldAddress[r] : r1535_6 -# 1535| r1535_30(glval) = VariableAddress[(unnamed parameter 0)] : -# 1535| r1535_31(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1535_30, ~m? -# 1535| r1535_32(glval) = CopyValue : r1535_31 -# 1535| r1535_33(glval) = FieldAddress[r] : r1535_32 -# 1535| r1535_34(int &) = Load[?] : &:r1535_33, ~m? -# 1535| mu1535_35(int &) = Store[?] : &:r1535_29, r1535_34 -# 1535| r1535_36(glval) = FieldAddress[p] : r1535_6 -# 1535| r1535_37(glval) = VariableAddress[(unnamed parameter 0)] : -# 1535| r1535_38(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1535_37, ~m? -# 1535| r1535_39(glval) = CopyValue : r1535_38 -# 1535| r1535_40(glval) = FieldAddress[p] : r1535_39 -# 1535| r1535_41(int *) = Load[?] : &:r1535_40, ~m? -# 1535| mu1535_42(int *) = Store[?] : &:r1535_36, r1535_41 -# 1535| r1535_43(glval) = FieldAddress[xs] : r1535_6 -# 1535| r1535_44(glval) = VariableAddress[(unnamed parameter 0)] : -# 1535| r1535_45(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1535_44, ~m? -# 1535| r1535_46(glval) = CopyValue : r1535_45 -# 1535| r1535_47(glval) = FieldAddress[xs] : r1535_46 -# 1535| r1535_48(int[2]) = Load[?] : &:r1535_47, ~m? -# 1535| mu1535_49(int[2]) = Store[?] : &:r1535_43, r1535_48 -# 1535| r1535_50(glval) = FieldAddress[r_alt] : r1535_6 -# 1535| r1535_51(glval) = VariableAddress[(unnamed parameter 0)] : -# 1535| r1535_52(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1535_51, ~m? -# 1535| r1535_53(glval) = CopyValue : r1535_52 -# 1535| r1535_54(glval) = FieldAddress[r_alt] : r1535_53 -# 1535| r1535_55(int &) = Load[?] : &:r1535_54, ~m? -# 1535| mu1535_56(int &) = Store[?] : &:r1535_50, r1535_55 -# 1535| r1535_57(glval) = FieldAddress[m] : r1535_6 -# 1535| r1535_58(glval) = VariableAddress[(unnamed parameter 0)] : -# 1535| r1535_59(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1535_58, ~m? -# 1535| r1535_60(glval) = CopyValue : r1535_59 -# 1535| r1535_61(glval) = FieldAddress[m] : r1535_60 -# 1535| r1535_62(StructuredBindingDataMemberMemberStruct) = Load[?] : &:r1535_61, ~m? -# 1535| mu1535_63(StructuredBindingDataMemberMemberStruct) = Store[?] : &:r1535_57, r1535_62 -# 1535| v1535_64(void) = NoOp : -# 1535| v1535_65(void) = ReturnIndirection[#this] : &:r1535_6, ~m? +# 1537| r1537_8(glval) = FieldAddress[i] : r1537_6 +# 1537| r1537_9(glval) = VariableAddress[(unnamed parameter 0)] : +# 1537| r1537_10(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1537_9, ~m? +# 1537| r1537_11(glval) = CopyValue : r1537_10 +# 1537| r1537_12(glval) = FieldAddress[i] : r1537_11 +# 1537| r1537_13(int) = Load[?] : &:r1537_12, ~m? +# 1537| mu1537_14(int) = Store[?] : &:r1537_8, r1537_13 +# 1537| r1537_15(glval) = FieldAddress[d] : r1537_6 +# 1537| r1537_16(glval) = VariableAddress[(unnamed parameter 0)] : +# 1537| r1537_17(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1537_16, ~m? +# 1537| r1537_18(glval) = CopyValue : r1537_17 +# 1537| r1537_19(glval) = FieldAddress[d] : r1537_18 +# 1537| r1537_20(double) = Load[?] : &:r1537_19, ~m? +# 1537| mu1537_21(double) = Store[?] : &:r1537_15, r1537_20 +# 1537| r1537_22(glval) = FieldAddress[b] : r1537_6 +# 1537| r1537_23(glval) = VariableAddress[(unnamed parameter 0)] : +# 1537| r1537_24(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1537_23, ~m? +# 1537| r1537_25(glval) = CopyValue : r1537_24 +# 1537| r1537_26(glval) = FieldAddress[b] : r1537_25 +# 1537| r1537_27(unsigned int) = Load[?] : &:r1537_26, ~m? +# 1537| mu1537_28(unsigned int) = Store[?] : &:r1537_22, r1537_27 +# 1537| r1537_29(glval) = FieldAddress[r] : r1537_6 +# 1537| r1537_30(glval) = VariableAddress[(unnamed parameter 0)] : +# 1537| r1537_31(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1537_30, ~m? +# 1537| r1537_32(glval) = CopyValue : r1537_31 +# 1537| r1537_33(glval) = FieldAddress[r] : r1537_32 +# 1537| r1537_34(int &) = Load[?] : &:r1537_33, ~m? +# 1537| mu1537_35(int &) = Store[?] : &:r1537_29, r1537_34 +# 1537| r1537_36(glval) = FieldAddress[p] : r1537_6 +# 1537| r1537_37(glval) = VariableAddress[(unnamed parameter 0)] : +# 1537| r1537_38(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1537_37, ~m? +# 1537| r1537_39(glval) = CopyValue : r1537_38 +# 1537| r1537_40(glval) = FieldAddress[p] : r1537_39 +# 1537| r1537_41(int *) = Load[?] : &:r1537_40, ~m? +# 1537| mu1537_42(int *) = Store[?] : &:r1537_36, r1537_41 +# 1537| r1537_43(glval) = FieldAddress[xs] : r1537_6 +# 1537| r1537_44(glval) = VariableAddress[(unnamed parameter 0)] : +# 1537| r1537_45(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1537_44, ~m? +# 1537| r1537_46(glval) = CopyValue : r1537_45 +# 1537| r1537_47(glval) = FieldAddress[xs] : r1537_46 +# 1537| r1537_48(int[2]) = Load[?] : &:r1537_47, ~m? +# 1537| mu1537_49(int[2]) = Store[?] : &:r1537_43, r1537_48 +# 1537| r1537_50(glval) = FieldAddress[r_alt] : r1537_6 +# 1537| r1537_51(glval) = VariableAddress[(unnamed parameter 0)] : +# 1537| r1537_52(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1537_51, ~m? +# 1537| r1537_53(glval) = CopyValue : r1537_52 +# 1537| r1537_54(glval) = FieldAddress[r_alt] : r1537_53 +# 1537| r1537_55(int &) = Load[?] : &:r1537_54, ~m? +# 1537| mu1537_56(int &) = Store[?] : &:r1537_50, r1537_55 +# 1537| r1537_57(glval) = FieldAddress[m] : r1537_6 +# 1537| r1537_58(glval) = VariableAddress[(unnamed parameter 0)] : +# 1537| r1537_59(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1537_58, ~m? +# 1537| r1537_60(glval) = CopyValue : r1537_59 +# 1537| r1537_61(glval) = FieldAddress[m] : r1537_60 +# 1537| r1537_62(StructuredBindingDataMemberMemberStruct) = Load[?] : &:r1537_61, ~m? +# 1537| mu1537_63(StructuredBindingDataMemberMemberStruct) = Store[?] : &:r1537_57, r1537_62 +# 1537| v1537_64(void) = NoOp : +# 1537| v1537_65(void) = ReturnIndirection[#this] : &:r1537_6, ~m? #-----| v0_5(void) = ReturnIndirection[(unnamed parameter 0)] : &:r0_3, ~m? -# 1535| v1535_66(void) = ReturnVoid : -# 1535| v1535_67(void) = AliasedUse : ~m? -# 1535| v1535_68(void) = ExitFunction : - -# 1548| void data_member_structured_binding() -# 1548| Block 0 -# 1548| v1548_1(void) = EnterFunction : -# 1548| mu1548_2(unknown) = AliasedDefinition : -# 1548| mu1548_3(unknown) = InitializeNonLocal : -# 1549| r1549_1(glval) = VariableAddress[s] : -# 1549| mu1549_2(StructuredBindingDataMemberStruct) = Uninitialized[s] : &:r1549_1 -# 1549| r1549_3(glval) = FunctionAddress[StructuredBindingDataMemberStruct] : -# 1549| v1549_4(void) = Call[StructuredBindingDataMemberStruct] : func:r1549_3, this:r1549_1 -# 1549| mu1549_5(unknown) = ^CallSideEffect : ~m? -# 1549| mu1549_6(StructuredBindingDataMemberStruct) = ^IndirectMayWriteSideEffect[-1] : &:r1549_1 -# 1552| r1552_1(glval) = VariableAddress[(unnamed local variable)] : -# 1552| r1552_2(glval) = VariableAddress[s] : -# 1552| r1552_3(StructuredBindingDataMemberStruct) = Load[s] : &:r1552_2, ~m? -# 1552| mu1552_4(StructuredBindingDataMemberStruct) = Store[(unnamed local variable)] : &:r1552_1, r1552_3 -# 1552| r1552_5(glval) = VariableAddress[i] : -# 1552| r1552_6(glval) = VariableAddress[(unnamed local variable)] : -# 1552| r1552_7(glval) = FieldAddress[i] : r1552_6 -# 1552| mu1552_8(int &) = Store[i] : &:r1552_5, r1552_7 -# 1552| r1552_9(glval) = VariableAddress[d] : -# 1552| r1552_10(glval) = VariableAddress[(unnamed local variable)] : -# 1552| r1552_11(glval) = FieldAddress[d] : r1552_10 -# 1552| mu1552_12(double &) = Store[d] : &:r1552_9, r1552_11 -# 1552| r1552_13(glval) = VariableAddress[b] : -# 1552| r1552_14(glval) = VariableAddress[(unnamed local variable)] : -# 1552| r1552_15(glval) = FieldAddress[b] : r1552_14 -# 1552| mu1552_16(unsigned int &) = Store[b] : &:r1552_13, r1552_15 -# 1552| r1552_17(glval) = VariableAddress[r] : -# 1552| r1552_18(glval) = VariableAddress[(unnamed local variable)] : -# 1552| r1552_19(glval) = FieldAddress[r] : r1552_18 -# 1552| r1552_20(int &) = Load[?] : &:r1552_19, ~m? -# 1552| r1552_21(glval) = CopyValue : r1552_20 -# 1552| mu1552_22(int &) = Store[r] : &:r1552_17, r1552_21 -# 1552| r1552_23(glval) = VariableAddress[p] : -# 1552| r1552_24(glval) = VariableAddress[(unnamed local variable)] : -# 1552| r1552_25(glval) = FieldAddress[p] : r1552_24 -# 1552| mu1552_26(int *&) = Store[p] : &:r1552_23, r1552_25 -# 1552| r1552_27(glval) = VariableAddress[xs] : -# 1552| r1552_28(glval) = VariableAddress[(unnamed local variable)] : -# 1552| r1552_29(glval) = FieldAddress[xs] : r1552_28 -# 1552| mu1552_30(int(&)[2]) = Store[xs] : &:r1552_27, r1552_29 -# 1552| r1552_31(glval) = VariableAddress[r_alt] : -# 1552| r1552_32(glval) = VariableAddress[(unnamed local variable)] : -# 1552| r1552_33(glval) = FieldAddress[r_alt] : r1552_32 -# 1552| r1552_34(int &) = Load[?] : &:r1552_33, ~m? -# 1552| r1552_35(glval) = CopyValue : r1552_34 -# 1552| mu1552_36(int &) = Store[r_alt] : &:r1552_31, r1552_35 -# 1552| r1552_37(glval) = VariableAddress[m] : -# 1552| r1552_38(glval) = VariableAddress[(unnamed local variable)] : -# 1552| r1552_39(glval) = FieldAddress[m] : r1552_38 -# 1552| mu1552_40(StructuredBindingDataMemberMemberStruct &) = Store[m] : &:r1552_37, r1552_39 -# 1553| r1553_1(double) = Constant[4.0] : -# 1553| r1553_2(glval) = VariableAddress[d] : -# 1553| r1553_3(double &) = Load[d] : &:r1553_2, ~m? -# 1553| mu1553_4(double) = Store[?] : &:r1553_3, r1553_1 -# 1554| r1554_1(glval) = VariableAddress[rd] : -# 1554| r1554_2(glval) = VariableAddress[d] : -# 1554| r1554_3(double &) = Load[d] : &:r1554_2, ~m? -# 1554| r1554_4(double &) = CopyValue : r1554_3 -# 1554| mu1554_5(double &) = Store[rd] : &:r1554_1, r1554_4 -# 1555| r1555_1(glval) = VariableAddress[v] : -# 1555| r1555_2(glval) = VariableAddress[i] : -# 1555| r1555_3(int &) = Load[i] : &:r1555_2, ~m? -# 1555| r1555_4(int) = Load[?] : &:r1555_3, ~m? -# 1555| mu1555_5(int) = Store[v] : &:r1555_1, r1555_4 -# 1556| r1556_1(int) = Constant[5] : -# 1556| r1556_2(glval) = VariableAddress[r] : -# 1556| r1556_3(int &) = Load[r] : &:r1556_2, ~m? -# 1556| mu1556_4(int) = Store[?] : &:r1556_3, r1556_1 -# 1557| r1557_1(int) = Constant[6] : -# 1557| r1557_2(glval) = VariableAddress[p] : -# 1557| r1557_3(int *&) = Load[p] : &:r1557_2, ~m? -# 1557| r1557_4(int *) = Load[?] : &:r1557_3, ~m? -# 1557| r1557_5(glval) = CopyValue : r1557_4 -# 1557| mu1557_6(int) = Store[?] : &:r1557_5, r1557_1 -# 1558| r1558_1(glval) = VariableAddress[rr] : +# 1537| v1537_66(void) = ReturnVoid : +# 1537| v1537_67(void) = AliasedUse : ~m? +# 1537| v1537_68(void) = ExitFunction : + +# 1550| void data_member_structured_binding() +# 1550| Block 0 +# 1550| v1550_1(void) = EnterFunction : +# 1550| mu1550_2(unknown) = AliasedDefinition : +# 1550| mu1550_3(unknown) = InitializeNonLocal : +# 1551| r1551_1(glval) = VariableAddress[s] : +# 1551| mu1551_2(StructuredBindingDataMemberStruct) = Uninitialized[s] : &:r1551_1 +# 1551| r1551_3(glval) = FunctionAddress[StructuredBindingDataMemberStruct] : +# 1551| v1551_4(void) = Call[StructuredBindingDataMemberStruct] : func:r1551_3, this:r1551_1 +# 1551| mu1551_5(unknown) = ^CallSideEffect : ~m? +# 1551| mu1551_6(StructuredBindingDataMemberStruct) = ^IndirectMayWriteSideEffect[-1] : &:r1551_1 +# 1554| r1554_1(glval) = VariableAddress[(unnamed local variable)] : +# 1554| r1554_2(glval) = VariableAddress[s] : +# 1554| r1554_3(StructuredBindingDataMemberStruct) = Load[s] : &:r1554_2, ~m? +# 1554| mu1554_4(StructuredBindingDataMemberStruct) = Store[(unnamed local variable)] : &:r1554_1, r1554_3 +# 1554| r1554_5(glval) = VariableAddress[i] : +# 1554| r1554_6(glval) = VariableAddress[(unnamed local variable)] : +# 1554| r1554_7(glval) = FieldAddress[i] : r1554_6 +# 1554| mu1554_8(int &) = Store[i] : &:r1554_5, r1554_7 +# 1554| r1554_9(glval) = VariableAddress[d] : +# 1554| r1554_10(glval) = VariableAddress[(unnamed local variable)] : +# 1554| r1554_11(glval) = FieldAddress[d] : r1554_10 +# 1554| mu1554_12(double &) = Store[d] : &:r1554_9, r1554_11 +# 1554| r1554_13(glval) = VariableAddress[b] : +# 1554| r1554_14(glval) = VariableAddress[(unnamed local variable)] : +# 1554| r1554_15(glval) = FieldAddress[b] : r1554_14 +# 1554| mu1554_16(unsigned int &) = Store[b] : &:r1554_13, r1554_15 +# 1554| r1554_17(glval) = VariableAddress[r] : +# 1554| r1554_18(glval) = VariableAddress[(unnamed local variable)] : +# 1554| r1554_19(glval) = FieldAddress[r] : r1554_18 +# 1554| r1554_20(int &) = Load[?] : &:r1554_19, ~m? +# 1554| r1554_21(glval) = CopyValue : r1554_20 +# 1554| mu1554_22(int &) = Store[r] : &:r1554_17, r1554_21 +# 1554| r1554_23(glval) = VariableAddress[p] : +# 1554| r1554_24(glval) = VariableAddress[(unnamed local variable)] : +# 1554| r1554_25(glval) = FieldAddress[p] : r1554_24 +# 1554| mu1554_26(int *&) = Store[p] : &:r1554_23, r1554_25 +# 1554| r1554_27(glval) = VariableAddress[xs] : +# 1554| r1554_28(glval) = VariableAddress[(unnamed local variable)] : +# 1554| r1554_29(glval) = FieldAddress[xs] : r1554_28 +# 1554| mu1554_30(int(&)[2]) = Store[xs] : &:r1554_27, r1554_29 +# 1554| r1554_31(glval) = VariableAddress[r_alt] : +# 1554| r1554_32(glval) = VariableAddress[(unnamed local variable)] : +# 1554| r1554_33(glval) = FieldAddress[r_alt] : r1554_32 +# 1554| r1554_34(int &) = Load[?] : &:r1554_33, ~m? +# 1554| r1554_35(glval) = CopyValue : r1554_34 +# 1554| mu1554_36(int &) = Store[r_alt] : &:r1554_31, r1554_35 +# 1554| r1554_37(glval) = VariableAddress[m] : +# 1554| r1554_38(glval) = VariableAddress[(unnamed local variable)] : +# 1554| r1554_39(glval) = FieldAddress[m] : r1554_38 +# 1554| mu1554_40(StructuredBindingDataMemberMemberStruct &) = Store[m] : &:r1554_37, r1554_39 +# 1555| r1555_1(double) = Constant[4.0] : +# 1555| r1555_2(glval) = VariableAddress[d] : +# 1555| r1555_3(double &) = Load[d] : &:r1555_2, ~m? +# 1555| mu1555_4(double) = Store[?] : &:r1555_3, r1555_1 +# 1556| r1556_1(glval) = VariableAddress[rd] : +# 1556| r1556_2(glval) = VariableAddress[d] : +# 1556| r1556_3(double &) = Load[d] : &:r1556_2, ~m? +# 1556| r1556_4(double &) = CopyValue : r1556_3 +# 1556| mu1556_5(double &) = Store[rd] : &:r1556_1, r1556_4 +# 1557| r1557_1(glval) = VariableAddress[v] : +# 1557| r1557_2(glval) = VariableAddress[i] : +# 1557| r1557_3(int &) = Load[i] : &:r1557_2, ~m? +# 1557| r1557_4(int) = Load[?] : &:r1557_3, ~m? +# 1557| mu1557_5(int) = Store[v] : &:r1557_1, r1557_4 +# 1558| r1558_1(int) = Constant[5] : # 1558| r1558_2(glval) = VariableAddress[r] : # 1558| r1558_3(int &) = Load[r] : &:r1558_2, ~m? -# 1558| r1558_4(int &) = CopyValue : r1558_3 -# 1558| mu1558_5(int &) = Store[rr] : &:r1558_1, r1558_4 -# 1559| r1559_1(glval) = VariableAddress[pr] : -# 1559| r1559_2(glval) = VariableAddress[r] : -# 1559| r1559_3(int &) = Load[r] : &:r1559_2, ~m? -# 1559| r1559_4(int *) = CopyValue : r1559_3 -# 1559| mu1559_5(int *) = Store[pr] : &:r1559_1, r1559_4 -# 1560| r1560_1(glval) = VariableAddress[w] : +# 1558| mu1558_4(int) = Store[?] : &:r1558_3, r1558_1 +# 1559| r1559_1(int) = Constant[6] : +# 1559| r1559_2(glval) = VariableAddress[p] : +# 1559| r1559_3(int *&) = Load[p] : &:r1559_2, ~m? +# 1559| r1559_4(int *) = Load[?] : &:r1559_3, ~m? +# 1559| r1559_5(glval) = CopyValue : r1559_4 +# 1559| mu1559_6(int) = Store[?] : &:r1559_5, r1559_1 +# 1560| r1560_1(glval) = VariableAddress[rr] : # 1560| r1560_2(glval) = VariableAddress[r] : # 1560| r1560_3(int &) = Load[r] : &:r1560_2, ~m? -# 1560| r1560_4(int) = Load[?] : &:r1560_3, ~m? -# 1560| mu1560_5(int) = Store[w] : &:r1560_1, r1560_4 -# 1564| r1564_1(glval) = VariableAddress[unnamed_local_variable] : -# 1564| r1564_2(glval) = VariableAddress[s] : -# 1564| r1564_3(StructuredBindingDataMemberStruct) = Load[s] : &:r1564_2, ~m? -# 1564| mu1564_4(StructuredBindingDataMemberStruct) = Store[unnamed_local_variable] : &:r1564_1, r1564_3 -# 1565| r1565_1(glval) = VariableAddress[i] : -# 1565| r1565_2(glval) = VariableAddress[unnamed_local_variable] : -# 1565| r1565_3(glval) = FieldAddress[i] : r1565_2 -# 1565| r1565_4(int &) = CopyValue : r1565_3 -# 1565| mu1565_5(int &) = Store[i] : &:r1565_1, r1565_4 -# 1566| r1566_1(glval) = VariableAddress[d] : -# 1566| r1566_2(glval) = VariableAddress[unnamed_local_variable] : -# 1566| r1566_3(glval) = FieldAddress[d] : r1566_2 -# 1566| r1566_4(double &) = CopyValue : r1566_3 -# 1566| mu1566_5(double &) = Store[d] : &:r1566_1, r1566_4 -# 1568| r1568_1(glval) = VariableAddress[r] : +# 1560| r1560_4(int &) = CopyValue : r1560_3 +# 1560| mu1560_5(int &) = Store[rr] : &:r1560_1, r1560_4 +# 1561| r1561_1(glval) = VariableAddress[pr] : +# 1561| r1561_2(glval) = VariableAddress[r] : +# 1561| r1561_3(int &) = Load[r] : &:r1561_2, ~m? +# 1561| r1561_4(int *) = CopyValue : r1561_3 +# 1561| mu1561_5(int *) = Store[pr] : &:r1561_1, r1561_4 +# 1562| r1562_1(glval) = VariableAddress[w] : +# 1562| r1562_2(glval) = VariableAddress[r] : +# 1562| r1562_3(int &) = Load[r] : &:r1562_2, ~m? +# 1562| r1562_4(int) = Load[?] : &:r1562_3, ~m? +# 1562| mu1562_5(int) = Store[w] : &:r1562_1, r1562_4 +# 1566| r1566_1(glval) = VariableAddress[unnamed_local_variable] : +# 1566| r1566_2(glval) = VariableAddress[s] : +# 1566| r1566_3(StructuredBindingDataMemberStruct) = Load[s] : &:r1566_2, ~m? +# 1566| mu1566_4(StructuredBindingDataMemberStruct) = Store[unnamed_local_variable] : &:r1566_1, r1566_3 +# 1567| r1567_1(glval) = VariableAddress[i] : +# 1567| r1567_2(glval) = VariableAddress[unnamed_local_variable] : +# 1567| r1567_3(glval) = FieldAddress[i] : r1567_2 +# 1567| r1567_4(int &) = CopyValue : r1567_3 +# 1567| mu1567_5(int &) = Store[i] : &:r1567_1, r1567_4 +# 1568| r1568_1(glval) = VariableAddress[d] : # 1568| r1568_2(glval) = VariableAddress[unnamed_local_variable] : -# 1568| r1568_3(glval) = FieldAddress[r] : r1568_2 -# 1568| r1568_4(int &) = Load[?] : &:r1568_3, ~m? -# 1568| r1568_5(glval) = CopyValue : r1568_4 -# 1568| r1568_6(int &) = CopyValue : r1568_5 -# 1568| mu1568_7(int &) = Store[r] : &:r1568_1, r1568_6 -# 1569| r1569_1(glval) = VariableAddress[p] : -# 1569| r1569_2(glval) = VariableAddress[unnamed_local_variable] : -# 1569| r1569_3(glval) = FieldAddress[p] : r1569_2 -# 1569| r1569_4(int *&) = CopyValue : r1569_3 -# 1569| mu1569_5(int *&) = Store[p] : &:r1569_1, r1569_4 -# 1570| r1570_1(double) = Constant[4.0] : -# 1570| r1570_2(glval) = VariableAddress[d] : -# 1570| r1570_3(double &) = Load[d] : &:r1570_2, ~m? -# 1570| r1570_4(glval) = CopyValue : r1570_3 -# 1570| mu1570_5(double) = Store[?] : &:r1570_4, r1570_1 -# 1571| r1571_1(glval) = VariableAddress[rd] : -# 1571| r1571_2(glval) = VariableAddress[d] : -# 1571| r1571_3(double &) = Load[d] : &:r1571_2, ~m? -# 1571| r1571_4(glval) = CopyValue : r1571_3 -# 1571| r1571_5(double &) = CopyValue : r1571_4 -# 1571| mu1571_6(double &) = Store[rd] : &:r1571_1, r1571_5 -# 1572| r1572_1(glval) = VariableAddress[v] : -# 1572| r1572_2(glval) = VariableAddress[i] : -# 1572| r1572_3(int &) = Load[i] : &:r1572_2, ~m? -# 1572| r1572_4(int) = Load[?] : &:r1572_3, ~m? -# 1572| mu1572_5(int) = Store[v] : &:r1572_1, r1572_4 -# 1573| r1573_1(int) = Constant[5] : -# 1573| r1573_2(glval) = VariableAddress[r] : -# 1573| r1573_3(int &) = Load[r] : &:r1573_2, ~m? -# 1573| r1573_4(glval) = CopyValue : r1573_3 -# 1573| mu1573_5(int) = Store[?] : &:r1573_4, r1573_1 -# 1574| r1574_1(int) = Constant[6] : -# 1574| r1574_2(glval) = VariableAddress[p] : -# 1574| r1574_3(int *&) = Load[p] : &:r1574_2, ~m? -# 1574| r1574_4(int *) = Load[?] : &:r1574_3, ~m? -# 1574| r1574_5(glval) = CopyValue : r1574_4 -# 1574| mu1574_6(int) = Store[?] : &:r1574_5, r1574_1 -# 1575| r1575_1(glval) = VariableAddress[rr] : +# 1568| r1568_3(glval) = FieldAddress[d] : r1568_2 +# 1568| r1568_4(double &) = CopyValue : r1568_3 +# 1568| mu1568_5(double &) = Store[d] : &:r1568_1, r1568_4 +# 1570| r1570_1(glval) = VariableAddress[r] : +# 1570| r1570_2(glval) = VariableAddress[unnamed_local_variable] : +# 1570| r1570_3(glval) = FieldAddress[r] : r1570_2 +# 1570| r1570_4(int &) = Load[?] : &:r1570_3, ~m? +# 1570| r1570_5(glval) = CopyValue : r1570_4 +# 1570| r1570_6(int &) = CopyValue : r1570_5 +# 1570| mu1570_7(int &) = Store[r] : &:r1570_1, r1570_6 +# 1571| r1571_1(glval) = VariableAddress[p] : +# 1571| r1571_2(glval) = VariableAddress[unnamed_local_variable] : +# 1571| r1571_3(glval) = FieldAddress[p] : r1571_2 +# 1571| r1571_4(int *&) = CopyValue : r1571_3 +# 1571| mu1571_5(int *&) = Store[p] : &:r1571_1, r1571_4 +# 1572| r1572_1(double) = Constant[4.0] : +# 1572| r1572_2(glval) = VariableAddress[d] : +# 1572| r1572_3(double &) = Load[d] : &:r1572_2, ~m? +# 1572| r1572_4(glval) = CopyValue : r1572_3 +# 1572| mu1572_5(double) = Store[?] : &:r1572_4, r1572_1 +# 1573| r1573_1(glval) = VariableAddress[rd] : +# 1573| r1573_2(glval) = VariableAddress[d] : +# 1573| r1573_3(double &) = Load[d] : &:r1573_2, ~m? +# 1573| r1573_4(glval) = CopyValue : r1573_3 +# 1573| r1573_5(double &) = CopyValue : r1573_4 +# 1573| mu1573_6(double &) = Store[rd] : &:r1573_1, r1573_5 +# 1574| r1574_1(glval) = VariableAddress[v] : +# 1574| r1574_2(glval) = VariableAddress[i] : +# 1574| r1574_3(int &) = Load[i] : &:r1574_2, ~m? +# 1574| r1574_4(int) = Load[?] : &:r1574_3, ~m? +# 1574| mu1574_5(int) = Store[v] : &:r1574_1, r1574_4 +# 1575| r1575_1(int) = Constant[5] : # 1575| r1575_2(glval) = VariableAddress[r] : # 1575| r1575_3(int &) = Load[r] : &:r1575_2, ~m? # 1575| r1575_4(glval) = CopyValue : r1575_3 -# 1575| r1575_5(int &) = CopyValue : r1575_4 -# 1575| mu1575_6(int &) = Store[rr] : &:r1575_1, r1575_5 -# 1576| r1576_1(glval) = VariableAddress[pr] : -# 1576| r1576_2(glval) = VariableAddress[r] : -# 1576| r1576_3(int &) = Load[r] : &:r1576_2, ~m? -# 1576| r1576_4(glval) = CopyValue : r1576_3 -# 1576| r1576_5(int *) = CopyValue : r1576_4 -# 1576| mu1576_6(int *) = Store[pr] : &:r1576_1, r1576_5 -# 1577| r1577_1(glval) = VariableAddress[w] : +# 1575| mu1575_5(int) = Store[?] : &:r1575_4, r1575_1 +# 1576| r1576_1(int) = Constant[6] : +# 1576| r1576_2(glval) = VariableAddress[p] : +# 1576| r1576_3(int *&) = Load[p] : &:r1576_2, ~m? +# 1576| r1576_4(int *) = Load[?] : &:r1576_3, ~m? +# 1576| r1576_5(glval) = CopyValue : r1576_4 +# 1576| mu1576_6(int) = Store[?] : &:r1576_5, r1576_1 +# 1577| r1577_1(glval) = VariableAddress[rr] : # 1577| r1577_2(glval) = VariableAddress[r] : # 1577| r1577_3(int &) = Load[r] : &:r1577_2, ~m? -# 1577| r1577_4(int) = Load[?] : &:r1577_3, ~m? -# 1577| mu1577_5(int) = Store[w] : &:r1577_1, r1577_4 -# 1579| v1579_1(void) = NoOp : -# 1548| v1548_4(void) = ReturnVoid : -# 1548| v1548_5(void) = AliasedUse : ~m? -# 1548| v1548_6(void) = ExitFunction : - -# 1588| void StructuredBindingTupleRefGet::StructuredBindingTupleRefGet() -# 1588| Block 0 -# 1588| v1588_1(void) = EnterFunction : -# 1588| mu1588_2(unknown) = AliasedDefinition : -# 1588| mu1588_3(unknown) = InitializeNonLocal : -# 1588| r1588_4(glval) = VariableAddress[#this] : -# 1588| mu1588_5(glval) = InitializeParameter[#this] : &:r1588_4 -# 1588| r1588_6(glval) = Load[#this] : &:r1588_4, ~m? -# 1588| mu1588_7(StructuredBindingTupleRefGet) = InitializeIndirection[#this] : &:r1588_6 -# 1588| v1588_8(void) = NoOp : -# 1588| v1588_9(void) = ReturnIndirection[#this] : &:r1588_6, ~m? -# 1588| v1588_10(void) = ReturnVoid : -# 1588| v1588_11(void) = AliasedUse : ~m? -# 1588| v1588_12(void) = ExitFunction : - -# 1588| void StructuredBindingTupleRefGet::StructuredBindingTupleRefGet(StructuredBindingTupleRefGet const&) -# 1588| Block 0 -# 1588| v1588_1(void) = EnterFunction : -# 1588| mu1588_2(unknown) = AliasedDefinition : -# 1588| mu1588_3(unknown) = InitializeNonLocal : -# 1588| r1588_4(glval) = VariableAddress[#this] : -# 1588| mu1588_5(glval) = InitializeParameter[#this] : &:r1588_4 -# 1588| r1588_6(glval) = Load[#this] : &:r1588_4, ~m? -# 1588| mu1588_7(StructuredBindingTupleRefGet) = InitializeIndirection[#this] : &:r1588_6 +# 1577| r1577_4(glval) = CopyValue : r1577_3 +# 1577| r1577_5(int &) = CopyValue : r1577_4 +# 1577| mu1577_6(int &) = Store[rr] : &:r1577_1, r1577_5 +# 1578| r1578_1(glval) = VariableAddress[pr] : +# 1578| r1578_2(glval) = VariableAddress[r] : +# 1578| r1578_3(int &) = Load[r] : &:r1578_2, ~m? +# 1578| r1578_4(glval) = CopyValue : r1578_3 +# 1578| r1578_5(int *) = CopyValue : r1578_4 +# 1578| mu1578_6(int *) = Store[pr] : &:r1578_1, r1578_5 +# 1579| r1579_1(glval) = VariableAddress[w] : +# 1579| r1579_2(glval) = VariableAddress[r] : +# 1579| r1579_3(int &) = Load[r] : &:r1579_2, ~m? +# 1579| r1579_4(int) = Load[?] : &:r1579_3, ~m? +# 1579| mu1579_5(int) = Store[w] : &:r1579_1, r1579_4 +# 1581| v1581_1(void) = NoOp : +# 1550| v1550_4(void) = ReturnVoid : +# 1550| v1550_5(void) = AliasedUse : ~m? +# 1550| v1550_6(void) = ExitFunction : + +# 1590| void StructuredBindingTupleRefGet::StructuredBindingTupleRefGet() +# 1590| Block 0 +# 1590| v1590_1(void) = EnterFunction : +# 1590| mu1590_2(unknown) = AliasedDefinition : +# 1590| mu1590_3(unknown) = InitializeNonLocal : +# 1590| r1590_4(glval) = VariableAddress[#this] : +# 1590| mu1590_5(glval) = InitializeParameter[#this] : &:r1590_4 +# 1590| r1590_6(glval) = Load[#this] : &:r1590_4, ~m? +# 1590| mu1590_7(StructuredBindingTupleRefGet) = InitializeIndirection[#this] : &:r1590_6 +# 1590| v1590_8(void) = NoOp : +# 1590| v1590_9(void) = ReturnIndirection[#this] : &:r1590_6, ~m? +# 1590| v1590_10(void) = ReturnVoid : +# 1590| v1590_11(void) = AliasedUse : ~m? +# 1590| v1590_12(void) = ExitFunction : + +# 1590| void StructuredBindingTupleRefGet::StructuredBindingTupleRefGet(StructuredBindingTupleRefGet const&) +# 1590| Block 0 +# 1590| v1590_1(void) = EnterFunction : +# 1590| mu1590_2(unknown) = AliasedDefinition : +# 1590| mu1590_3(unknown) = InitializeNonLocal : +# 1590| r1590_4(glval) = VariableAddress[#this] : +# 1590| mu1590_5(glval) = InitializeParameter[#this] : &:r1590_4 +# 1590| r1590_6(glval) = Load[#this] : &:r1590_4, ~m? +# 1590| mu1590_7(StructuredBindingTupleRefGet) = InitializeIndirection[#this] : &:r1590_6 #-----| r0_1(glval) = VariableAddress[(unnamed parameter 0)] : #-----| mu0_2(StructuredBindingTupleRefGet &) = InitializeParameter[(unnamed parameter 0)] : &:r0_1 #-----| r0_3(StructuredBindingTupleRefGet &) = Load[(unnamed parameter 0)] : &:r0_1, ~m? #-----| mu0_4(unknown) = InitializeIndirection[(unnamed parameter 0)] : &:r0_3 -# 1588| r1588_8(glval) = FieldAddress[i] : r1588_6 -# 1588| r1588_9(glval) = VariableAddress[(unnamed parameter 0)] : -# 1588| r1588_10(StructuredBindingTupleRefGet &) = Load[(unnamed parameter 0)] : &:r1588_9, ~m? -# 1588| r1588_11(glval) = CopyValue : r1588_10 -# 1588| r1588_12(glval) = FieldAddress[i] : r1588_11 -# 1588| r1588_13(int) = Load[?] : &:r1588_12, ~m? -# 1588| mu1588_14(int) = Store[?] : &:r1588_8, r1588_13 -# 1588| r1588_15(glval) = FieldAddress[d] : r1588_6 -# 1588| r1588_16(glval) = VariableAddress[(unnamed parameter 0)] : -# 1588| r1588_17(StructuredBindingTupleRefGet &) = Load[(unnamed parameter 0)] : &:r1588_16, ~m? -# 1588| r1588_18(glval) = CopyValue : r1588_17 -# 1588| r1588_19(glval) = FieldAddress[d] : r1588_18 -# 1588| r1588_20(double) = Load[?] : &:r1588_19, ~m? -# 1588| mu1588_21(double) = Store[?] : &:r1588_15, r1588_20 -# 1588| r1588_22(glval) = FieldAddress[r] : r1588_6 -# 1588| r1588_23(glval) = VariableAddress[(unnamed parameter 0)] : -# 1588| r1588_24(StructuredBindingTupleRefGet &) = Load[(unnamed parameter 0)] : &:r1588_23, ~m? -# 1588| r1588_25(glval) = CopyValue : r1588_24 -# 1588| r1588_26(glval) = FieldAddress[r] : r1588_25 -# 1588| r1588_27(int &) = Load[?] : &:r1588_26, ~m? -# 1588| mu1588_28(int &) = Store[?] : &:r1588_22, r1588_27 -# 1588| v1588_29(void) = NoOp : -# 1588| v1588_30(void) = ReturnIndirection[#this] : &:r1588_6, ~m? +# 1590| r1590_8(glval) = FieldAddress[i] : r1590_6 +# 1590| r1590_9(glval) = VariableAddress[(unnamed parameter 0)] : +# 1590| r1590_10(StructuredBindingTupleRefGet &) = Load[(unnamed parameter 0)] : &:r1590_9, ~m? +# 1590| r1590_11(glval) = CopyValue : r1590_10 +# 1590| r1590_12(glval) = FieldAddress[i] : r1590_11 +# 1590| r1590_13(int) = Load[?] : &:r1590_12, ~m? +# 1590| mu1590_14(int) = Store[?] : &:r1590_8, r1590_13 +# 1590| r1590_15(glval) = FieldAddress[d] : r1590_6 +# 1590| r1590_16(glval) = VariableAddress[(unnamed parameter 0)] : +# 1590| r1590_17(StructuredBindingTupleRefGet &) = Load[(unnamed parameter 0)] : &:r1590_16, ~m? +# 1590| r1590_18(glval) = CopyValue : r1590_17 +# 1590| r1590_19(glval) = FieldAddress[d] : r1590_18 +# 1590| r1590_20(double) = Load[?] : &:r1590_19, ~m? +# 1590| mu1590_21(double) = Store[?] : &:r1590_15, r1590_20 +# 1590| r1590_22(glval) = FieldAddress[r] : r1590_6 +# 1590| r1590_23(glval) = VariableAddress[(unnamed parameter 0)] : +# 1590| r1590_24(StructuredBindingTupleRefGet &) = Load[(unnamed parameter 0)] : &:r1590_23, ~m? +# 1590| r1590_25(glval) = CopyValue : r1590_24 +# 1590| r1590_26(glval) = FieldAddress[r] : r1590_25 +# 1590| r1590_27(int &) = Load[?] : &:r1590_26, ~m? +# 1590| mu1590_28(int &) = Store[?] : &:r1590_22, r1590_27 +# 1590| v1590_29(void) = NoOp : +# 1590| v1590_30(void) = ReturnIndirection[#this] : &:r1590_6, ~m? #-----| v0_5(void) = ReturnIndirection[(unnamed parameter 0)] : &:r0_3, ~m? -# 1588| v1588_31(void) = ReturnVoid : -# 1588| v1588_32(void) = AliasedUse : ~m? -# 1588| v1588_33(void) = ExitFunction : - -# 1616| std::tuple_element::type& StructuredBindingTupleRefGet::get() -# 1616| Block 0 -# 1616| v1616_1(void) = EnterFunction : -# 1616| mu1616_2(unknown) = AliasedDefinition : -# 1616| mu1616_3(unknown) = InitializeNonLocal : -# 1616| r1616_4(glval) = VariableAddress[#this] : -# 1616| mu1616_5(glval) = InitializeParameter[#this] : &:r1616_4 -# 1616| r1616_6(glval) = Load[#this] : &:r1616_4, ~m? -# 1616| mu1616_7(StructuredBindingTupleRefGet) = InitializeIndirection[#this] : &:r1616_6 -# 1617| r1617_1(glval) = VariableAddress[#return] : -# 1617| r1617_2(glval) = VariableAddress[#this] : -# 1617| r1617_3(StructuredBindingTupleRefGet *) = Load[#this] : &:r1617_2, ~m? -# 1617| r1617_4(glval) = FieldAddress[i] : r1617_3 -#-----| r0_1(int &) = CopyValue : r1617_4 -#-----| mu0_2(int &) = Store[#return] : &:r1617_1, r0_1 -# 1616| v1616_8(void) = ReturnIndirection[#this] : &:r1616_6, ~m? -# 1616| r1616_9(glval) = VariableAddress[#return] : -# 1616| v1616_10(void) = ReturnValue : &:r1616_9, ~m? -# 1616| v1616_11(void) = AliasedUse : ~m? -# 1616| v1616_12(void) = ExitFunction : - -# 1620| std::tuple_element::type& StructuredBindingTupleRefGet::get() -# 1620| Block 0 -# 1620| v1620_1(void) = EnterFunction : -# 1620| mu1620_2(unknown) = AliasedDefinition : -# 1620| mu1620_3(unknown) = InitializeNonLocal : -# 1620| r1620_4(glval) = VariableAddress[#this] : -# 1620| mu1620_5(glval) = InitializeParameter[#this] : &:r1620_4 -# 1620| r1620_6(glval) = Load[#this] : &:r1620_4, ~m? -# 1620| mu1620_7(StructuredBindingTupleRefGet) = InitializeIndirection[#this] : &:r1620_6 -# 1621| r1621_1(glval) = VariableAddress[#return] : -# 1621| r1621_2(glval) = VariableAddress[#this] : -# 1621| r1621_3(StructuredBindingTupleRefGet *) = Load[#this] : &:r1621_2, ~m? -# 1621| r1621_4(glval) = FieldAddress[d] : r1621_3 -#-----| r0_1(double &) = CopyValue : r1621_4 -#-----| mu0_2(double &) = Store[#return] : &:r1621_1, r0_1 -# 1620| v1620_8(void) = ReturnIndirection[#this] : &:r1620_6, ~m? -# 1620| r1620_9(glval) = VariableAddress[#return] : -# 1620| v1620_10(void) = ReturnValue : &:r1620_9, ~m? -# 1620| v1620_11(void) = AliasedUse : ~m? -# 1620| v1620_12(void) = ExitFunction : - -# 1624| std::tuple_element::type StructuredBindingTupleRefGet::get() -# 1624| Block 0 -# 1624| v1624_1(void) = EnterFunction : -# 1624| mu1624_2(unknown) = AliasedDefinition : -# 1624| mu1624_3(unknown) = InitializeNonLocal : -# 1624| r1624_4(glval) = VariableAddress[#this] : -# 1624| mu1624_5(glval) = InitializeParameter[#this] : &:r1624_4 -# 1624| r1624_6(glval) = Load[#this] : &:r1624_4, ~m? -# 1624| mu1624_7(StructuredBindingTupleRefGet) = InitializeIndirection[#this] : &:r1624_6 -# 1625| r1625_1(glval) = VariableAddress[#return] : -# 1625| r1625_2(glval) = VariableAddress[#this] : -# 1625| r1625_3(StructuredBindingTupleRefGet *) = Load[#this] : &:r1625_2, ~m? -# 1625| r1625_4(glval) = FieldAddress[r] : r1625_3 -# 1625| r1625_5(int &) = Load[?] : &:r1625_4, ~m? -# 1625| r1625_6(glval) = CopyValue : r1625_5 -# 1625| r1625_7(int &) = CopyValue : r1625_6 -# 1625| mu1625_8(int &) = Store[#return] : &:r1625_1, r1625_7 -# 1624| v1624_8(void) = ReturnIndirection[#this] : &:r1624_6, ~m? -# 1624| r1624_9(glval) = VariableAddress[#return] : -# 1624| v1624_10(void) = ReturnValue : &:r1624_9, ~m? -# 1624| v1624_11(void) = AliasedUse : ~m? -# 1624| v1624_12(void) = ExitFunction : - -# 1628| void tuple_structured_binding_ref_get() -# 1628| Block 0 -# 1628| v1628_1(void) = EnterFunction : -# 1628| mu1628_2(unknown) = AliasedDefinition : -# 1628| mu1628_3(unknown) = InitializeNonLocal : -# 1629| r1629_1(glval) = VariableAddress[t] : -# 1629| mu1629_2(StructuredBindingTupleRefGet) = Uninitialized[t] : &:r1629_1 -# 1629| r1629_3(glval) = FunctionAddress[StructuredBindingTupleRefGet] : -# 1629| v1629_4(void) = Call[StructuredBindingTupleRefGet] : func:r1629_3, this:r1629_1 -# 1629| mu1629_5(unknown) = ^CallSideEffect : ~m? -# 1629| mu1629_6(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1629_1 -# 1632| r1632_1(glval) = VariableAddress[(unnamed local variable)] : -# 1632| r1632_2(glval) = VariableAddress[t] : -# 1632| r1632_3(StructuredBindingTupleRefGet) = Load[t] : &:r1632_2, ~m? -# 1632| mu1632_4(StructuredBindingTupleRefGet) = Store[(unnamed local variable)] : &:r1632_1, r1632_3 -# 1632| r1632_5(glval) = VariableAddress[i] : -# 1632| r1632_6(glval) = VariableAddress[(unnamed local variable)] : -# 1632| r1632_7(glval) = FunctionAddress[get] : -# 1632| r1632_8(int &) = Call[get] : func:r1632_7, this:r1632_6 -# 1632| mu1632_9(unknown) = ^CallSideEffect : ~m? -# 1632| v1632_10(void) = ^IndirectReadSideEffect[-1] : &:r1632_6, ~m? -# 1632| mu1632_11(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1632_6 -# 1632| r1632_12(glval) = CopyValue : r1632_8 -# 1632| r1632_13(int &) = CopyValue : r1632_12 -# 1632| mu1632_14(int &) = Store[i] : &:r1632_5, r1632_13 -# 1632| r1632_15(glval) = VariableAddress[d] : -# 1632| r1632_16(glval) = VariableAddress[(unnamed local variable)] : -# 1632| r1632_17(glval) = FunctionAddress[get] : -# 1632| r1632_18(double &) = Call[get] : func:r1632_17, this:r1632_16 -# 1632| mu1632_19(unknown) = ^CallSideEffect : ~m? -# 1632| v1632_20(void) = ^IndirectReadSideEffect[-1] : &:r1632_16, ~m? -# 1632| mu1632_21(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1632_16 -# 1632| r1632_22(glval) = CopyValue : r1632_18 -# 1632| r1632_23(double &) = CopyValue : r1632_22 -# 1632| mu1632_24(double &) = Store[d] : &:r1632_15, r1632_23 -# 1632| r1632_25(glval) = VariableAddress[r] : -# 1632| r1632_26(glval) = VariableAddress[(unnamed local variable)] : -# 1632| r1632_27(glval) = FunctionAddress[get] : -# 1632| r1632_28(int &) = Call[get] : func:r1632_27, this:r1632_26 -# 1632| mu1632_29(unknown) = ^CallSideEffect : ~m? -# 1632| v1632_30(void) = ^IndirectReadSideEffect[-1] : &:r1632_26, ~m? -# 1632| mu1632_31(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1632_26 -# 1632| r1632_32(glval) = CopyValue : r1632_28 -# 1632| r1632_33(int &) = CopyValue : r1632_32 -# 1632| mu1632_34(int &) = Store[r] : &:r1632_25, r1632_33 -# 1633| r1633_1(double) = Constant[4.0] : -# 1633| r1633_2(glval) = VariableAddress[d] : -# 1633| r1633_3(double &) = Load[d] : &:r1633_2, ~m? -# 1633| r1633_4(glval) = CopyValue : r1633_3 -# 1633| mu1633_5(double) = Store[?] : &:r1633_4, r1633_1 -# 1634| r1634_1(glval) = VariableAddress[rd] : -# 1634| r1634_2(glval) = VariableAddress[d] : -# 1634| r1634_3(double &) = Load[d] : &:r1634_2, ~m? -# 1634| r1634_4(glval) = CopyValue : r1634_3 -# 1634| r1634_5(double &) = CopyValue : r1634_4 -# 1634| mu1634_6(double &) = Store[rd] : &:r1634_1, r1634_5 -# 1635| r1635_1(glval) = VariableAddress[v] : -# 1635| r1635_2(glval) = VariableAddress[i] : -# 1635| r1635_3(int &) = Load[i] : &:r1635_2, ~m? -# 1635| r1635_4(int) = Load[?] : &:r1635_3, ~m? -# 1635| mu1635_5(int) = Store[v] : &:r1635_1, r1635_4 -# 1636| r1636_1(int) = Constant[5] : -# 1636| r1636_2(glval) = VariableAddress[r] : -# 1636| r1636_3(int &) = Load[r] : &:r1636_2, ~m? -# 1636| r1636_4(glval) = CopyValue : r1636_3 -# 1636| mu1636_5(int) = Store[?] : &:r1636_4, r1636_1 -# 1637| r1637_1(glval) = VariableAddress[rr] : -# 1637| r1637_2(glval) = VariableAddress[r] : -# 1637| r1637_3(int &) = Load[r] : &:r1637_2, ~m? -# 1637| r1637_4(glval) = CopyValue : r1637_3 -# 1637| r1637_5(int &) = CopyValue : r1637_4 -# 1637| mu1637_6(int &) = Store[rr] : &:r1637_1, r1637_5 -# 1638| r1638_1(glval) = VariableAddress[w] : +# 1590| v1590_31(void) = ReturnVoid : +# 1590| v1590_32(void) = AliasedUse : ~m? +# 1590| v1590_33(void) = ExitFunction : + +# 1618| std::tuple_element::type& StructuredBindingTupleRefGet::get() +# 1618| Block 0 +# 1618| v1618_1(void) = EnterFunction : +# 1618| mu1618_2(unknown) = AliasedDefinition : +# 1618| mu1618_3(unknown) = InitializeNonLocal : +# 1618| r1618_4(glval) = VariableAddress[#this] : +# 1618| mu1618_5(glval) = InitializeParameter[#this] : &:r1618_4 +# 1618| r1618_6(glval) = Load[#this] : &:r1618_4, ~m? +# 1618| mu1618_7(StructuredBindingTupleRefGet) = InitializeIndirection[#this] : &:r1618_6 +# 1619| r1619_1(glval) = VariableAddress[#return] : +# 1619| r1619_2(glval) = VariableAddress[#this] : +# 1619| r1619_3(StructuredBindingTupleRefGet *) = Load[#this] : &:r1619_2, ~m? +# 1619| r1619_4(glval) = FieldAddress[i] : r1619_3 +#-----| r0_1(int &) = CopyValue : r1619_4 +#-----| mu0_2(int &) = Store[#return] : &:r1619_1, r0_1 +# 1618| v1618_8(void) = ReturnIndirection[#this] : &:r1618_6, ~m? +# 1618| r1618_9(glval) = VariableAddress[#return] : +# 1618| v1618_10(void) = ReturnValue : &:r1618_9, ~m? +# 1618| v1618_11(void) = AliasedUse : ~m? +# 1618| v1618_12(void) = ExitFunction : + +# 1622| std::tuple_element::type& StructuredBindingTupleRefGet::get() +# 1622| Block 0 +# 1622| v1622_1(void) = EnterFunction : +# 1622| mu1622_2(unknown) = AliasedDefinition : +# 1622| mu1622_3(unknown) = InitializeNonLocal : +# 1622| r1622_4(glval) = VariableAddress[#this] : +# 1622| mu1622_5(glval) = InitializeParameter[#this] : &:r1622_4 +# 1622| r1622_6(glval) = Load[#this] : &:r1622_4, ~m? +# 1622| mu1622_7(StructuredBindingTupleRefGet) = InitializeIndirection[#this] : &:r1622_6 +# 1623| r1623_1(glval) = VariableAddress[#return] : +# 1623| r1623_2(glval) = VariableAddress[#this] : +# 1623| r1623_3(StructuredBindingTupleRefGet *) = Load[#this] : &:r1623_2, ~m? +# 1623| r1623_4(glval) = FieldAddress[d] : r1623_3 +#-----| r0_1(double &) = CopyValue : r1623_4 +#-----| mu0_2(double &) = Store[#return] : &:r1623_1, r0_1 +# 1622| v1622_8(void) = ReturnIndirection[#this] : &:r1622_6, ~m? +# 1622| r1622_9(glval) = VariableAddress[#return] : +# 1622| v1622_10(void) = ReturnValue : &:r1622_9, ~m? +# 1622| v1622_11(void) = AliasedUse : ~m? +# 1622| v1622_12(void) = ExitFunction : + +# 1626| std::tuple_element::type StructuredBindingTupleRefGet::get() +# 1626| Block 0 +# 1626| v1626_1(void) = EnterFunction : +# 1626| mu1626_2(unknown) = AliasedDefinition : +# 1626| mu1626_3(unknown) = InitializeNonLocal : +# 1626| r1626_4(glval) = VariableAddress[#this] : +# 1626| mu1626_5(glval) = InitializeParameter[#this] : &:r1626_4 +# 1626| r1626_6(glval) = Load[#this] : &:r1626_4, ~m? +# 1626| mu1626_7(StructuredBindingTupleRefGet) = InitializeIndirection[#this] : &:r1626_6 +# 1627| r1627_1(glval) = VariableAddress[#return] : +# 1627| r1627_2(glval) = VariableAddress[#this] : +# 1627| r1627_3(StructuredBindingTupleRefGet *) = Load[#this] : &:r1627_2, ~m? +# 1627| r1627_4(glval) = FieldAddress[r] : r1627_3 +# 1627| r1627_5(int &) = Load[?] : &:r1627_4, ~m? +# 1627| r1627_6(glval) = CopyValue : r1627_5 +# 1627| r1627_7(int &) = CopyValue : r1627_6 +# 1627| mu1627_8(int &) = Store[#return] : &:r1627_1, r1627_7 +# 1626| v1626_8(void) = ReturnIndirection[#this] : &:r1626_6, ~m? +# 1626| r1626_9(glval) = VariableAddress[#return] : +# 1626| v1626_10(void) = ReturnValue : &:r1626_9, ~m? +# 1626| v1626_11(void) = AliasedUse : ~m? +# 1626| v1626_12(void) = ExitFunction : + +# 1630| void tuple_structured_binding_ref_get() +# 1630| Block 0 +# 1630| v1630_1(void) = EnterFunction : +# 1630| mu1630_2(unknown) = AliasedDefinition : +# 1630| mu1630_3(unknown) = InitializeNonLocal : +# 1631| r1631_1(glval) = VariableAddress[t] : +# 1631| mu1631_2(StructuredBindingTupleRefGet) = Uninitialized[t] : &:r1631_1 +# 1631| r1631_3(glval) = FunctionAddress[StructuredBindingTupleRefGet] : +# 1631| v1631_4(void) = Call[StructuredBindingTupleRefGet] : func:r1631_3, this:r1631_1 +# 1631| mu1631_5(unknown) = ^CallSideEffect : ~m? +# 1631| mu1631_6(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1631_1 +# 1634| r1634_1(glval) = VariableAddress[(unnamed local variable)] : +# 1634| r1634_2(glval) = VariableAddress[t] : +# 1634| r1634_3(StructuredBindingTupleRefGet) = Load[t] : &:r1634_2, ~m? +# 1634| mu1634_4(StructuredBindingTupleRefGet) = Store[(unnamed local variable)] : &:r1634_1, r1634_3 +# 1634| r1634_5(glval) = VariableAddress[i] : +# 1634| r1634_6(glval) = VariableAddress[(unnamed local variable)] : +# 1634| r1634_7(glval) = FunctionAddress[get] : +# 1634| r1634_8(int &) = Call[get] : func:r1634_7, this:r1634_6 +# 1634| mu1634_9(unknown) = ^CallSideEffect : ~m? +# 1634| v1634_10(void) = ^IndirectReadSideEffect[-1] : &:r1634_6, ~m? +# 1634| mu1634_11(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1634_6 +# 1634| r1634_12(glval) = CopyValue : r1634_8 +# 1634| r1634_13(int &) = CopyValue : r1634_12 +# 1634| mu1634_14(int &) = Store[i] : &:r1634_5, r1634_13 +# 1634| r1634_15(glval) = VariableAddress[d] : +# 1634| r1634_16(glval) = VariableAddress[(unnamed local variable)] : +# 1634| r1634_17(glval) = FunctionAddress[get] : +# 1634| r1634_18(double &) = Call[get] : func:r1634_17, this:r1634_16 +# 1634| mu1634_19(unknown) = ^CallSideEffect : ~m? +# 1634| v1634_20(void) = ^IndirectReadSideEffect[-1] : &:r1634_16, ~m? +# 1634| mu1634_21(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1634_16 +# 1634| r1634_22(glval) = CopyValue : r1634_18 +# 1634| r1634_23(double &) = CopyValue : r1634_22 +# 1634| mu1634_24(double &) = Store[d] : &:r1634_15, r1634_23 +# 1634| r1634_25(glval) = VariableAddress[r] : +# 1634| r1634_26(glval) = VariableAddress[(unnamed local variable)] : +# 1634| r1634_27(glval) = FunctionAddress[get] : +# 1634| r1634_28(int &) = Call[get] : func:r1634_27, this:r1634_26 +# 1634| mu1634_29(unknown) = ^CallSideEffect : ~m? +# 1634| v1634_30(void) = ^IndirectReadSideEffect[-1] : &:r1634_26, ~m? +# 1634| mu1634_31(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1634_26 +# 1634| r1634_32(glval) = CopyValue : r1634_28 +# 1634| r1634_33(int &) = CopyValue : r1634_32 +# 1634| mu1634_34(int &) = Store[r] : &:r1634_25, r1634_33 +# 1635| r1635_1(double) = Constant[4.0] : +# 1635| r1635_2(glval) = VariableAddress[d] : +# 1635| r1635_3(double &) = Load[d] : &:r1635_2, ~m? +# 1635| r1635_4(glval) = CopyValue : r1635_3 +# 1635| mu1635_5(double) = Store[?] : &:r1635_4, r1635_1 +# 1636| r1636_1(glval) = VariableAddress[rd] : +# 1636| r1636_2(glval) = VariableAddress[d] : +# 1636| r1636_3(double &) = Load[d] : &:r1636_2, ~m? +# 1636| r1636_4(glval) = CopyValue : r1636_3 +# 1636| r1636_5(double &) = CopyValue : r1636_4 +# 1636| mu1636_6(double &) = Store[rd] : &:r1636_1, r1636_5 +# 1637| r1637_1(glval) = VariableAddress[v] : +# 1637| r1637_2(glval) = VariableAddress[i] : +# 1637| r1637_3(int &) = Load[i] : &:r1637_2, ~m? +# 1637| r1637_4(int) = Load[?] : &:r1637_3, ~m? +# 1637| mu1637_5(int) = Store[v] : &:r1637_1, r1637_4 +# 1638| r1638_1(int) = Constant[5] : # 1638| r1638_2(glval) = VariableAddress[r] : # 1638| r1638_3(int &) = Load[r] : &:r1638_2, ~m? -# 1638| r1638_4(int) = Load[?] : &:r1638_3, ~m? -# 1638| mu1638_5(int) = Store[w] : &:r1638_1, r1638_4 -# 1642| r1642_1(glval) = VariableAddress[unnamed_local_variable] : -# 1642| r1642_2(glval) = VariableAddress[t] : -# 1642| r1642_3(StructuredBindingTupleRefGet) = Load[t] : &:r1642_2, ~m? -# 1642| mu1642_4(StructuredBindingTupleRefGet) = Store[unnamed_local_variable] : &:r1642_1, r1642_3 -# 1643| r1643_1(glval) = VariableAddress[i] : -# 1643| r1643_2(glval) = VariableAddress[unnamed_local_variable] : -# 1643| r1643_3(glval) = FunctionAddress[get] : -# 1643| r1643_4(int &) = Call[get] : func:r1643_3, this:r1643_2 -# 1643| mu1643_5(unknown) = ^CallSideEffect : ~m? -# 1643| v1643_6(void) = ^IndirectReadSideEffect[-1] : &:r1643_2, ~m? -# 1643| mu1643_7(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1643_2 -# 1643| r1643_8(glval) = CopyValue : r1643_4 -# 1643| r1643_9(int &) = CopyValue : r1643_8 -# 1643| mu1643_10(int &) = Store[i] : &:r1643_1, r1643_9 -# 1644| r1644_1(glval) = VariableAddress[d] : -# 1644| r1644_2(glval) = VariableAddress[unnamed_local_variable] : -# 1644| r1644_3(glval) = FunctionAddress[get] : -# 1644| r1644_4(double &) = Call[get] : func:r1644_3, this:r1644_2 -# 1644| mu1644_5(unknown) = ^CallSideEffect : ~m? -# 1644| v1644_6(void) = ^IndirectReadSideEffect[-1] : &:r1644_2, ~m? -# 1644| mu1644_7(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1644_2 -# 1644| r1644_8(glval) = CopyValue : r1644_4 -# 1644| r1644_9(double &) = CopyValue : r1644_8 -# 1644| mu1644_10(double &) = Store[d] : &:r1644_1, r1644_9 -# 1645| r1645_1(glval) = VariableAddress[r] : +# 1638| r1638_4(glval) = CopyValue : r1638_3 +# 1638| mu1638_5(int) = Store[?] : &:r1638_4, r1638_1 +# 1639| r1639_1(glval) = VariableAddress[rr] : +# 1639| r1639_2(glval) = VariableAddress[r] : +# 1639| r1639_3(int &) = Load[r] : &:r1639_2, ~m? +# 1639| r1639_4(glval) = CopyValue : r1639_3 +# 1639| r1639_5(int &) = CopyValue : r1639_4 +# 1639| mu1639_6(int &) = Store[rr] : &:r1639_1, r1639_5 +# 1640| r1640_1(glval) = VariableAddress[w] : +# 1640| r1640_2(glval) = VariableAddress[r] : +# 1640| r1640_3(int &) = Load[r] : &:r1640_2, ~m? +# 1640| r1640_4(int) = Load[?] : &:r1640_3, ~m? +# 1640| mu1640_5(int) = Store[w] : &:r1640_1, r1640_4 +# 1644| r1644_1(glval) = VariableAddress[unnamed_local_variable] : +# 1644| r1644_2(glval) = VariableAddress[t] : +# 1644| r1644_3(StructuredBindingTupleRefGet) = Load[t] : &:r1644_2, ~m? +# 1644| mu1644_4(StructuredBindingTupleRefGet) = Store[unnamed_local_variable] : &:r1644_1, r1644_3 +# 1645| r1645_1(glval) = VariableAddress[i] : # 1645| r1645_2(glval) = VariableAddress[unnamed_local_variable] : # 1645| r1645_3(glval) = FunctionAddress[get] : # 1645| r1645_4(int &) = Call[get] : func:r1645_3, this:r1645_2 @@ -11782,1219 +11830,1225 @@ ir.cpp: # 1645| mu1645_7(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1645_2 # 1645| r1645_8(glval) = CopyValue : r1645_4 # 1645| r1645_9(int &) = CopyValue : r1645_8 -# 1645| mu1645_10(int &) = Store[r] : &:r1645_1, r1645_9 -# 1646| r1646_1(double) = Constant[4.0] : -# 1646| r1646_2(glval) = VariableAddress[d] : -# 1646| r1646_3(double &) = Load[d] : &:r1646_2, ~m? -# 1646| r1646_4(glval) = CopyValue : r1646_3 -# 1646| mu1646_5(double) = Store[?] : &:r1646_4, r1646_1 -# 1647| r1647_1(glval) = VariableAddress[rd] : -# 1647| r1647_2(glval) = VariableAddress[d] : -# 1647| r1647_3(double &) = Load[d] : &:r1647_2, ~m? -# 1647| r1647_4(glval) = CopyValue : r1647_3 -# 1647| r1647_5(double &) = CopyValue : r1647_4 -# 1647| mu1647_6(double &) = Store[rd] : &:r1647_1, r1647_5 -# 1648| r1648_1(glval) = VariableAddress[v] : -# 1648| r1648_2(glval) = VariableAddress[i] : -# 1648| r1648_3(int &) = Load[i] : &:r1648_2, ~m? -# 1648| r1648_4(int) = Load[?] : &:r1648_3, ~m? -# 1648| mu1648_5(int) = Store[v] : &:r1648_1, r1648_4 -# 1649| r1649_1(int) = Constant[5] : -# 1649| r1649_2(glval) = VariableAddress[r] : -# 1649| r1649_3(int &) = Load[r] : &:r1649_2, ~m? -# 1649| r1649_4(glval) = CopyValue : r1649_3 -# 1649| mu1649_5(int) = Store[?] : &:r1649_4, r1649_1 -# 1650| r1650_1(glval) = VariableAddress[rr] : -# 1650| r1650_2(glval) = VariableAddress[r] : -# 1650| r1650_3(int &) = Load[r] : &:r1650_2, ~m? -# 1650| r1650_4(glval) = CopyValue : r1650_3 -# 1650| r1650_5(int &) = CopyValue : r1650_4 -# 1650| mu1650_6(int &) = Store[rr] : &:r1650_1, r1650_5 -# 1651| r1651_1(glval) = VariableAddress[w] : +# 1645| mu1645_10(int &) = Store[i] : &:r1645_1, r1645_9 +# 1646| r1646_1(glval) = VariableAddress[d] : +# 1646| r1646_2(glval) = VariableAddress[unnamed_local_variable] : +# 1646| r1646_3(glval) = FunctionAddress[get] : +# 1646| r1646_4(double &) = Call[get] : func:r1646_3, this:r1646_2 +# 1646| mu1646_5(unknown) = ^CallSideEffect : ~m? +# 1646| v1646_6(void) = ^IndirectReadSideEffect[-1] : &:r1646_2, ~m? +# 1646| mu1646_7(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1646_2 +# 1646| r1646_8(glval) = CopyValue : r1646_4 +# 1646| r1646_9(double &) = CopyValue : r1646_8 +# 1646| mu1646_10(double &) = Store[d] : &:r1646_1, r1646_9 +# 1647| r1647_1(glval) = VariableAddress[r] : +# 1647| r1647_2(glval) = VariableAddress[unnamed_local_variable] : +# 1647| r1647_3(glval) = FunctionAddress[get] : +# 1647| r1647_4(int &) = Call[get] : func:r1647_3, this:r1647_2 +# 1647| mu1647_5(unknown) = ^CallSideEffect : ~m? +# 1647| v1647_6(void) = ^IndirectReadSideEffect[-1] : &:r1647_2, ~m? +# 1647| mu1647_7(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1647_2 +# 1647| r1647_8(glval) = CopyValue : r1647_4 +# 1647| r1647_9(int &) = CopyValue : r1647_8 +# 1647| mu1647_10(int &) = Store[r] : &:r1647_1, r1647_9 +# 1648| r1648_1(double) = Constant[4.0] : +# 1648| r1648_2(glval) = VariableAddress[d] : +# 1648| r1648_3(double &) = Load[d] : &:r1648_2, ~m? +# 1648| r1648_4(glval) = CopyValue : r1648_3 +# 1648| mu1648_5(double) = Store[?] : &:r1648_4, r1648_1 +# 1649| r1649_1(glval) = VariableAddress[rd] : +# 1649| r1649_2(glval) = VariableAddress[d] : +# 1649| r1649_3(double &) = Load[d] : &:r1649_2, ~m? +# 1649| r1649_4(glval) = CopyValue : r1649_3 +# 1649| r1649_5(double &) = CopyValue : r1649_4 +# 1649| mu1649_6(double &) = Store[rd] : &:r1649_1, r1649_5 +# 1650| r1650_1(glval) = VariableAddress[v] : +# 1650| r1650_2(glval) = VariableAddress[i] : +# 1650| r1650_3(int &) = Load[i] : &:r1650_2, ~m? +# 1650| r1650_4(int) = Load[?] : &:r1650_3, ~m? +# 1650| mu1650_5(int) = Store[v] : &:r1650_1, r1650_4 +# 1651| r1651_1(int) = Constant[5] : # 1651| r1651_2(glval) = VariableAddress[r] : # 1651| r1651_3(int &) = Load[r] : &:r1651_2, ~m? -# 1651| r1651_4(int) = Load[?] : &:r1651_3, ~m? -# 1651| mu1651_5(int) = Store[w] : &:r1651_1, r1651_4 -# 1653| v1653_1(void) = NoOp : -# 1628| v1628_4(void) = ReturnVoid : -# 1628| v1628_5(void) = AliasedUse : ~m? -# 1628| v1628_6(void) = ExitFunction : - -# 1655| void StructuredBindingTupleNoRefGet::StructuredBindingTupleNoRefGet() -# 1655| Block 0 -# 1655| v1655_1(void) = EnterFunction : -# 1655| mu1655_2(unknown) = AliasedDefinition : -# 1655| mu1655_3(unknown) = InitializeNonLocal : -# 1655| r1655_4(glval) = VariableAddress[#this] : -# 1655| mu1655_5(glval) = InitializeParameter[#this] : &:r1655_4 -# 1655| r1655_6(glval) = Load[#this] : &:r1655_4, ~m? -# 1655| mu1655_7(StructuredBindingTupleNoRefGet) = InitializeIndirection[#this] : &:r1655_6 -# 1655| v1655_8(void) = NoOp : -# 1655| v1655_9(void) = ReturnIndirection[#this] : &:r1655_6, ~m? -# 1655| v1655_10(void) = ReturnVoid : -# 1655| v1655_11(void) = AliasedUse : ~m? -# 1655| v1655_12(void) = ExitFunction : - -# 1682| std::tuple_element::type StructuredBindingTupleNoRefGet::get() -# 1682| Block 0 -# 1682| v1682_1(void) = EnterFunction : -# 1682| mu1682_2(unknown) = AliasedDefinition : -# 1682| mu1682_3(unknown) = InitializeNonLocal : -# 1682| r1682_4(glval) = VariableAddress[#this] : -# 1682| mu1682_5(glval) = InitializeParameter[#this] : &:r1682_4 -# 1682| r1682_6(glval) = Load[#this] : &:r1682_4, ~m? -# 1682| mu1682_7(StructuredBindingTupleNoRefGet) = InitializeIndirection[#this] : &:r1682_6 -# 1683| r1683_1(glval) = VariableAddress[#return] : -# 1683| r1683_2(glval) = VariableAddress[#this] : -# 1683| r1683_3(StructuredBindingTupleNoRefGet *) = Load[#this] : &:r1683_2, ~m? -# 1683| r1683_4(glval) = FieldAddress[i] : r1683_3 -# 1683| r1683_5(int) = Load[?] : &:r1683_4, ~m? -# 1683| mu1683_6(int) = Store[#return] : &:r1683_1, r1683_5 -# 1682| v1682_8(void) = ReturnIndirection[#this] : &:r1682_6, ~m? -# 1682| r1682_9(glval) = VariableAddress[#return] : -# 1682| v1682_10(void) = ReturnValue : &:r1682_9, ~m? -# 1682| v1682_11(void) = AliasedUse : ~m? -# 1682| v1682_12(void) = ExitFunction : - -# 1686| std::tuple_element::type StructuredBindingTupleNoRefGet::get() -# 1686| Block 0 -# 1686| v1686_1(void) = EnterFunction : -# 1686| mu1686_2(unknown) = AliasedDefinition : -# 1686| mu1686_3(unknown) = InitializeNonLocal : -# 1686| r1686_4(glval) = VariableAddress[#this] : -# 1686| mu1686_5(glval) = InitializeParameter[#this] : &:r1686_4 -# 1686| r1686_6(glval) = Load[#this] : &:r1686_4, ~m? -# 1686| mu1686_7(StructuredBindingTupleNoRefGet) = InitializeIndirection[#this] : &:r1686_6 -# 1687| r1687_1(glval) = VariableAddress[#return] : -# 1687| r1687_2(glval) = VariableAddress[#this] : -# 1687| r1687_3(StructuredBindingTupleNoRefGet *) = Load[#this] : &:r1687_2, ~m? -# 1687| r1687_4(glval) = FieldAddress[r] : r1687_3 -# 1687| r1687_5(int &) = Load[?] : &:r1687_4, ~m? -# 1687| r1687_6(glval) = CopyValue : r1687_5 -# 1687| r1687_7(int &) = CopyValue : r1687_6 -# 1687| mu1687_8(int &) = Store[#return] : &:r1687_1, r1687_7 -# 1686| v1686_8(void) = ReturnIndirection[#this] : &:r1686_6, ~m? -# 1686| r1686_9(glval) = VariableAddress[#return] : -# 1686| v1686_10(void) = ReturnValue : &:r1686_9, ~m? -# 1686| v1686_11(void) = AliasedUse : ~m? -# 1686| v1686_12(void) = ExitFunction : - -# 1690| std::tuple_element::type StructuredBindingTupleNoRefGet::get() -# 1690| Block 0 -# 1690| v1690_1(void) = EnterFunction : -# 1690| mu1690_2(unknown) = AliasedDefinition : -# 1690| mu1690_3(unknown) = InitializeNonLocal : -# 1690| r1690_4(glval) = VariableAddress[#this] : -# 1690| mu1690_5(glval) = InitializeParameter[#this] : &:r1690_4 -# 1690| r1690_6(glval) = Load[#this] : &:r1690_4, ~m? -# 1690| mu1690_7(StructuredBindingTupleNoRefGet) = InitializeIndirection[#this] : &:r1690_6 -# 1691| r1691_1(glval) = VariableAddress[#return] : -# 1691| r1691_2(glval) = VariableAddress[#temp1691:12] : -# 1691| r1691_3(int) = Constant[5] : -# 1691| mu1691_4(int) = Store[#temp1691:12] : &:r1691_2, r1691_3 -# 1691| r1691_5(int &) = CopyValue : r1691_2 -# 1691| mu1691_6(int &&) = Store[#return] : &:r1691_1, r1691_5 -# 1690| v1690_8(void) = ReturnIndirection[#this] : &:r1690_6, ~m? -# 1690| r1690_9(glval) = VariableAddress[#return] : -# 1690| v1690_10(void) = ReturnValue : &:r1690_9, ~m? -# 1690| v1690_11(void) = AliasedUse : ~m? -# 1690| v1690_12(void) = ExitFunction : - -# 1694| void tuple_structured_binding_no_ref_get() -# 1694| Block 0 -# 1694| v1694_1(void) = EnterFunction : -# 1694| mu1694_2(unknown) = AliasedDefinition : -# 1694| mu1694_3(unknown) = InitializeNonLocal : -# 1695| r1695_1(glval) = VariableAddress[t] : -# 1695| mu1695_2(StructuredBindingTupleNoRefGet) = Uninitialized[t] : &:r1695_1 -# 1695| r1695_3(glval) = FunctionAddress[StructuredBindingTupleNoRefGet] : -# 1695| v1695_4(void) = Call[StructuredBindingTupleNoRefGet] : func:r1695_3, this:r1695_1 -# 1695| mu1695_5(unknown) = ^CallSideEffect : ~m? -# 1695| mu1695_6(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1695_1 -# 1698| r1698_1(glval) = VariableAddress[(unnamed local variable)] : -# 1698| r1698_2(glval) = VariableAddress[t] : -# 1698| r1698_3(StructuredBindingTupleNoRefGet &) = CopyValue : r1698_2 -# 1698| mu1698_4(StructuredBindingTupleNoRefGet &) = Store[(unnamed local variable)] : &:r1698_1, r1698_3 -# 1698| r1698_5(glval) = VariableAddress[i] : -# 1698| r1698_6(glval) = VariableAddress[#temp1698:16] : -# 1698| r1698_7(glval) = VariableAddress[(unnamed local variable)] : -# 1698| r1698_8(StructuredBindingTupleNoRefGet &) = Load[(unnamed local variable)] : &:r1698_7, ~m? -# 1698| r1698_9(glval) = CopyValue : r1698_8 -# 1698| r1698_10(glval) = FunctionAddress[get] : -# 1698| r1698_11(int) = Call[get] : func:r1698_10, this:r1698_9 -# 1698| mu1698_12(unknown) = ^CallSideEffect : ~m? -# 1698| v1698_13(void) = ^IndirectReadSideEffect[-1] : &:r1698_9, ~m? -# 1698| mu1698_14(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1698_9 -# 1698| mu1698_15(int) = Store[#temp1698:16] : &:r1698_6, r1698_11 -# 1698| r1698_16(int &) = CopyValue : r1698_6 -# 1698| mu1698_17(int &&) = Store[i] : &:r1698_5, r1698_16 -# 1698| r1698_18(glval) = VariableAddress[r] : -# 1698| r1698_19(glval) = VariableAddress[(unnamed local variable)] : -# 1698| r1698_20(StructuredBindingTupleNoRefGet &) = Load[(unnamed local variable)] : &:r1698_19, ~m? -# 1698| r1698_21(glval) = CopyValue : r1698_20 -# 1698| r1698_22(glval) = FunctionAddress[get] : -# 1698| r1698_23(int &) = Call[get] : func:r1698_22, this:r1698_21 -# 1698| mu1698_24(unknown) = ^CallSideEffect : ~m? -# 1698| v1698_25(void) = ^IndirectReadSideEffect[-1] : &:r1698_21, ~m? -# 1698| mu1698_26(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1698_21 -# 1698| r1698_27(glval) = CopyValue : r1698_23 -# 1698| r1698_28(int &) = CopyValue : r1698_27 -# 1698| mu1698_29(int &) = Store[r] : &:r1698_18, r1698_28 -# 1698| r1698_30(glval) = VariableAddress[rv] : -# 1698| r1698_31(glval) = VariableAddress[(unnamed local variable)] : -# 1698| r1698_32(StructuredBindingTupleNoRefGet &) = Load[(unnamed local variable)] : &:r1698_31, ~m? -# 1698| r1698_33(glval) = CopyValue : r1698_32 -# 1698| r1698_34(glval) = FunctionAddress[get] : -# 1698| r1698_35(int &&) = Call[get] : func:r1698_34, this:r1698_33 -# 1698| mu1698_36(unknown) = ^CallSideEffect : ~m? -# 1698| v1698_37(void) = ^IndirectReadSideEffect[-1] : &:r1698_33, ~m? -# 1698| mu1698_38(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1698_33 -# 1698| r1698_39(glval) = CopyValue : r1698_35 -# 1698| r1698_40(int &) = CopyValue : r1698_39 -# 1698| mu1698_41(int &&) = Store[rv] : &:r1698_30, r1698_40 -# 1699| r1699_1(int) = Constant[4] : -# 1699| r1699_2(glval) = VariableAddress[i] : -# 1699| r1699_3(int &&) = Load[i] : &:r1699_2, ~m? -# 1699| r1699_4(glval) = CopyValue : r1699_3 -# 1699| mu1699_5(int) = Store[?] : &:r1699_4, r1699_1 -# 1700| r1700_1(glval) = VariableAddress[ri] : -# 1700| r1700_2(glval) = VariableAddress[i] : -# 1700| r1700_3(int &&) = Load[i] : &:r1700_2, ~m? -# 1700| r1700_4(glval) = CopyValue : r1700_3 -# 1700| r1700_5(int &) = CopyValue : r1700_4 -# 1700| mu1700_6(int &) = Store[ri] : &:r1700_1, r1700_5 -# 1701| r1701_1(glval) = VariableAddress[v] : +# 1651| r1651_4(glval) = CopyValue : r1651_3 +# 1651| mu1651_5(int) = Store[?] : &:r1651_4, r1651_1 +# 1652| r1652_1(glval) = VariableAddress[rr] : +# 1652| r1652_2(glval) = VariableAddress[r] : +# 1652| r1652_3(int &) = Load[r] : &:r1652_2, ~m? +# 1652| r1652_4(glval) = CopyValue : r1652_3 +# 1652| r1652_5(int &) = CopyValue : r1652_4 +# 1652| mu1652_6(int &) = Store[rr] : &:r1652_1, r1652_5 +# 1653| r1653_1(glval) = VariableAddress[w] : +# 1653| r1653_2(glval) = VariableAddress[r] : +# 1653| r1653_3(int &) = Load[r] : &:r1653_2, ~m? +# 1653| r1653_4(int) = Load[?] : &:r1653_3, ~m? +# 1653| mu1653_5(int) = Store[w] : &:r1653_1, r1653_4 +# 1655| v1655_1(void) = NoOp : +# 1630| v1630_4(void) = ReturnVoid : +# 1630| v1630_5(void) = AliasedUse : ~m? +# 1630| v1630_6(void) = ExitFunction : + +# 1657| void StructuredBindingTupleNoRefGet::StructuredBindingTupleNoRefGet() +# 1657| Block 0 +# 1657| v1657_1(void) = EnterFunction : +# 1657| mu1657_2(unknown) = AliasedDefinition : +# 1657| mu1657_3(unknown) = InitializeNonLocal : +# 1657| r1657_4(glval) = VariableAddress[#this] : +# 1657| mu1657_5(glval) = InitializeParameter[#this] : &:r1657_4 +# 1657| r1657_6(glval) = Load[#this] : &:r1657_4, ~m? +# 1657| mu1657_7(StructuredBindingTupleNoRefGet) = InitializeIndirection[#this] : &:r1657_6 +# 1657| v1657_8(void) = NoOp : +# 1657| v1657_9(void) = ReturnIndirection[#this] : &:r1657_6, ~m? +# 1657| v1657_10(void) = ReturnVoid : +# 1657| v1657_11(void) = AliasedUse : ~m? +# 1657| v1657_12(void) = ExitFunction : + +# 1684| std::tuple_element::type StructuredBindingTupleNoRefGet::get() +# 1684| Block 0 +# 1684| v1684_1(void) = EnterFunction : +# 1684| mu1684_2(unknown) = AliasedDefinition : +# 1684| mu1684_3(unknown) = InitializeNonLocal : +# 1684| r1684_4(glval) = VariableAddress[#this] : +# 1684| mu1684_5(glval) = InitializeParameter[#this] : &:r1684_4 +# 1684| r1684_6(glval) = Load[#this] : &:r1684_4, ~m? +# 1684| mu1684_7(StructuredBindingTupleNoRefGet) = InitializeIndirection[#this] : &:r1684_6 +# 1685| r1685_1(glval) = VariableAddress[#return] : +# 1685| r1685_2(glval) = VariableAddress[#this] : +# 1685| r1685_3(StructuredBindingTupleNoRefGet *) = Load[#this] : &:r1685_2, ~m? +# 1685| r1685_4(glval) = FieldAddress[i] : r1685_3 +# 1685| r1685_5(int) = Load[?] : &:r1685_4, ~m? +# 1685| mu1685_6(int) = Store[#return] : &:r1685_1, r1685_5 +# 1684| v1684_8(void) = ReturnIndirection[#this] : &:r1684_6, ~m? +# 1684| r1684_9(glval) = VariableAddress[#return] : +# 1684| v1684_10(void) = ReturnValue : &:r1684_9, ~m? +# 1684| v1684_11(void) = AliasedUse : ~m? +# 1684| v1684_12(void) = ExitFunction : + +# 1688| std::tuple_element::type StructuredBindingTupleNoRefGet::get() +# 1688| Block 0 +# 1688| v1688_1(void) = EnterFunction : +# 1688| mu1688_2(unknown) = AliasedDefinition : +# 1688| mu1688_3(unknown) = InitializeNonLocal : +# 1688| r1688_4(glval) = VariableAddress[#this] : +# 1688| mu1688_5(glval) = InitializeParameter[#this] : &:r1688_4 +# 1688| r1688_6(glval) = Load[#this] : &:r1688_4, ~m? +# 1688| mu1688_7(StructuredBindingTupleNoRefGet) = InitializeIndirection[#this] : &:r1688_6 +# 1689| r1689_1(glval) = VariableAddress[#return] : +# 1689| r1689_2(glval) = VariableAddress[#this] : +# 1689| r1689_3(StructuredBindingTupleNoRefGet *) = Load[#this] : &:r1689_2, ~m? +# 1689| r1689_4(glval) = FieldAddress[r] : r1689_3 +# 1689| r1689_5(int &) = Load[?] : &:r1689_4, ~m? +# 1689| r1689_6(glval) = CopyValue : r1689_5 +# 1689| r1689_7(int &) = CopyValue : r1689_6 +# 1689| mu1689_8(int &) = Store[#return] : &:r1689_1, r1689_7 +# 1688| v1688_8(void) = ReturnIndirection[#this] : &:r1688_6, ~m? +# 1688| r1688_9(glval) = VariableAddress[#return] : +# 1688| v1688_10(void) = ReturnValue : &:r1688_9, ~m? +# 1688| v1688_11(void) = AliasedUse : ~m? +# 1688| v1688_12(void) = ExitFunction : + +# 1692| std::tuple_element::type StructuredBindingTupleNoRefGet::get() +# 1692| Block 0 +# 1692| v1692_1(void) = EnterFunction : +# 1692| mu1692_2(unknown) = AliasedDefinition : +# 1692| mu1692_3(unknown) = InitializeNonLocal : +# 1692| r1692_4(glval) = VariableAddress[#this] : +# 1692| mu1692_5(glval) = InitializeParameter[#this] : &:r1692_4 +# 1692| r1692_6(glval) = Load[#this] : &:r1692_4, ~m? +# 1692| mu1692_7(StructuredBindingTupleNoRefGet) = InitializeIndirection[#this] : &:r1692_6 +# 1693| r1693_1(glval) = VariableAddress[#return] : +# 1693| r1693_2(glval) = VariableAddress[#temp1693:12] : +# 1693| r1693_3(int) = Constant[5] : +# 1693| mu1693_4(int) = Store[#temp1693:12] : &:r1693_2, r1693_3 +# 1693| r1693_5(int &) = CopyValue : r1693_2 +# 1693| mu1693_6(int &&) = Store[#return] : &:r1693_1, r1693_5 +# 1692| v1692_8(void) = ReturnIndirection[#this] : &:r1692_6, ~m? +# 1692| r1692_9(glval) = VariableAddress[#return] : +# 1692| v1692_10(void) = ReturnValue : &:r1692_9, ~m? +# 1692| v1692_11(void) = AliasedUse : ~m? +# 1692| v1692_12(void) = ExitFunction : + +# 1696| void tuple_structured_binding_no_ref_get() +# 1696| Block 0 +# 1696| v1696_1(void) = EnterFunction : +# 1696| mu1696_2(unknown) = AliasedDefinition : +# 1696| mu1696_3(unknown) = InitializeNonLocal : +# 1697| r1697_1(glval) = VariableAddress[t] : +# 1697| mu1697_2(StructuredBindingTupleNoRefGet) = Uninitialized[t] : &:r1697_1 +# 1697| r1697_3(glval) = FunctionAddress[StructuredBindingTupleNoRefGet] : +# 1697| v1697_4(void) = Call[StructuredBindingTupleNoRefGet] : func:r1697_3, this:r1697_1 +# 1697| mu1697_5(unknown) = ^CallSideEffect : ~m? +# 1697| mu1697_6(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1697_1 +# 1700| r1700_1(glval) = VariableAddress[(unnamed local variable)] : +# 1700| r1700_2(glval) = VariableAddress[t] : +# 1700| r1700_3(StructuredBindingTupleNoRefGet &) = CopyValue : r1700_2 +# 1700| mu1700_4(StructuredBindingTupleNoRefGet &) = Store[(unnamed local variable)] : &:r1700_1, r1700_3 +# 1700| r1700_5(glval) = VariableAddress[i] : +# 1700| r1700_6(glval) = VariableAddress[#temp1700:16] : +# 1700| r1700_7(glval) = VariableAddress[(unnamed local variable)] : +# 1700| r1700_8(StructuredBindingTupleNoRefGet &) = Load[(unnamed local variable)] : &:r1700_7, ~m? +# 1700| r1700_9(glval) = CopyValue : r1700_8 +# 1700| r1700_10(glval) = FunctionAddress[get] : +# 1700| r1700_11(int) = Call[get] : func:r1700_10, this:r1700_9 +# 1700| mu1700_12(unknown) = ^CallSideEffect : ~m? +# 1700| v1700_13(void) = ^IndirectReadSideEffect[-1] : &:r1700_9, ~m? +# 1700| mu1700_14(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1700_9 +# 1700| mu1700_15(int) = Store[#temp1700:16] : &:r1700_6, r1700_11 +# 1700| r1700_16(int &) = CopyValue : r1700_6 +# 1700| mu1700_17(int &&) = Store[i] : &:r1700_5, r1700_16 +# 1700| r1700_18(glval) = VariableAddress[r] : +# 1700| r1700_19(glval) = VariableAddress[(unnamed local variable)] : +# 1700| r1700_20(StructuredBindingTupleNoRefGet &) = Load[(unnamed local variable)] : &:r1700_19, ~m? +# 1700| r1700_21(glval) = CopyValue : r1700_20 +# 1700| r1700_22(glval) = FunctionAddress[get] : +# 1700| r1700_23(int &) = Call[get] : func:r1700_22, this:r1700_21 +# 1700| mu1700_24(unknown) = ^CallSideEffect : ~m? +# 1700| v1700_25(void) = ^IndirectReadSideEffect[-1] : &:r1700_21, ~m? +# 1700| mu1700_26(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1700_21 +# 1700| r1700_27(glval) = CopyValue : r1700_23 +# 1700| r1700_28(int &) = CopyValue : r1700_27 +# 1700| mu1700_29(int &) = Store[r] : &:r1700_18, r1700_28 +# 1700| r1700_30(glval) = VariableAddress[rv] : +# 1700| r1700_31(glval) = VariableAddress[(unnamed local variable)] : +# 1700| r1700_32(StructuredBindingTupleNoRefGet &) = Load[(unnamed local variable)] : &:r1700_31, ~m? +# 1700| r1700_33(glval) = CopyValue : r1700_32 +# 1700| r1700_34(glval) = FunctionAddress[get] : +# 1700| r1700_35(int &&) = Call[get] : func:r1700_34, this:r1700_33 +# 1700| mu1700_36(unknown) = ^CallSideEffect : ~m? +# 1700| v1700_37(void) = ^IndirectReadSideEffect[-1] : &:r1700_33, ~m? +# 1700| mu1700_38(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1700_33 +# 1700| r1700_39(glval) = CopyValue : r1700_35 +# 1700| r1700_40(int &) = CopyValue : r1700_39 +# 1700| mu1700_41(int &&) = Store[rv] : &:r1700_30, r1700_40 +# 1701| r1701_1(int) = Constant[4] : # 1701| r1701_2(glval) = VariableAddress[i] : # 1701| r1701_3(int &&) = Load[i] : &:r1701_2, ~m? -# 1701| r1701_4(int) = Load[?] : &:r1701_3, ~m? -# 1701| mu1701_5(int) = Store[v] : &:r1701_1, r1701_4 -# 1702| r1702_1(int) = Constant[5] : -# 1702| r1702_2(glval) = VariableAddress[r] : -# 1702| r1702_3(int &) = Load[r] : &:r1702_2, ~m? +# 1701| r1701_4(glval) = CopyValue : r1701_3 +# 1701| mu1701_5(int) = Store[?] : &:r1701_4, r1701_1 +# 1702| r1702_1(glval) = VariableAddress[ri] : +# 1702| r1702_2(glval) = VariableAddress[i] : +# 1702| r1702_3(int &&) = Load[i] : &:r1702_2, ~m? # 1702| r1702_4(glval) = CopyValue : r1702_3 -# 1702| mu1702_5(int) = Store[?] : &:r1702_4, r1702_1 -# 1703| r1703_1(glval) = VariableAddress[rr] : -# 1703| r1703_2(glval) = VariableAddress[r] : -# 1703| r1703_3(int &) = Load[r] : &:r1703_2, ~m? -# 1703| r1703_4(glval) = CopyValue : r1703_3 -# 1703| r1703_5(int &) = CopyValue : r1703_4 -# 1703| mu1703_6(int &) = Store[rr] : &:r1703_1, r1703_5 -# 1704| r1704_1(glval) = VariableAddress[w] : +# 1702| r1702_5(int &) = CopyValue : r1702_4 +# 1702| mu1702_6(int &) = Store[ri] : &:r1702_1, r1702_5 +# 1703| r1703_1(glval) = VariableAddress[v] : +# 1703| r1703_2(glval) = VariableAddress[i] : +# 1703| r1703_3(int &&) = Load[i] : &:r1703_2, ~m? +# 1703| r1703_4(int) = Load[?] : &:r1703_3, ~m? +# 1703| mu1703_5(int) = Store[v] : &:r1703_1, r1703_4 +# 1704| r1704_1(int) = Constant[5] : # 1704| r1704_2(glval) = VariableAddress[r] : # 1704| r1704_3(int &) = Load[r] : &:r1704_2, ~m? -# 1704| r1704_4(int) = Load[?] : &:r1704_3, ~m? -# 1704| mu1704_5(int) = Store[w] : &:r1704_1, r1704_4 -# 1708| r1708_1(glval) = VariableAddress[unnamed_local_variable] : -# 1708| r1708_2(glval) = VariableAddress[t] : -# 1708| r1708_3(StructuredBindingTupleNoRefGet &) = CopyValue : r1708_2 -# 1708| mu1708_4(StructuredBindingTupleNoRefGet &) = Store[unnamed_local_variable] : &:r1708_1, r1708_3 -# 1709| r1709_1(glval) = VariableAddress[i] : -# 1709| r1709_2(glval) = VariableAddress[#temp1709:20] : -# 1709| r1709_3(glval) = VariableAddress[unnamed_local_variable] : -# 1709| r1709_4(StructuredBindingTupleNoRefGet &) = Load[unnamed_local_variable] : &:r1709_3, ~m? -# 1709| r1709_5(glval) = CopyValue : r1709_4 -# 1709| r1709_6(glval) = FunctionAddress[get] : -# 1709| r1709_7(int) = Call[get] : func:r1709_6, this:r1709_5 -# 1709| mu1709_8(unknown) = ^CallSideEffect : ~m? -# 1709| v1709_9(void) = ^IndirectReadSideEffect[-1] : &:r1709_5, ~m? -# 1709| mu1709_10(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1709_5 -# 1709| mu1709_11(int) = Store[#temp1709:20] : &:r1709_2, r1709_7 -# 1709| r1709_12(int &) = CopyValue : r1709_2 -# 1709| mu1709_13(int &&) = Store[i] : &:r1709_1, r1709_12 -# 1710| r1710_1(glval) = VariableAddress[r] : -# 1710| r1710_2(glval) = VariableAddress[unnamed_local_variable] : -# 1710| r1710_3(StructuredBindingTupleNoRefGet &) = Load[unnamed_local_variable] : &:r1710_2, ~m? -# 1710| r1710_4(glval) = CopyValue : r1710_3 -# 1710| r1710_5(glval) = FunctionAddress[get] : -# 1710| r1710_6(int &) = Call[get] : func:r1710_5, this:r1710_4 -# 1710| mu1710_7(unknown) = ^CallSideEffect : ~m? -# 1710| v1710_8(void) = ^IndirectReadSideEffect[-1] : &:r1710_4, ~m? -# 1710| mu1710_9(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1710_4 -# 1710| r1710_10(glval) = CopyValue : r1710_6 -# 1710| r1710_11(int &) = CopyValue : r1710_10 -# 1710| mu1710_12(int &) = Store[r] : &:r1710_1, r1710_11 -# 1711| r1711_1(glval) = VariableAddress[rv] : -# 1711| r1711_2(glval) = VariableAddress[unnamed_local_variable] : -# 1711| r1711_3(StructuredBindingTupleNoRefGet &) = Load[unnamed_local_variable] : &:r1711_2, ~m? -# 1711| r1711_4(glval) = CopyValue : r1711_3 -# 1711| r1711_5(glval) = FunctionAddress[get] : -# 1711| r1711_6(int &&) = Call[get] : func:r1711_5, this:r1711_4 -# 1711| mu1711_7(unknown) = ^CallSideEffect : ~m? -# 1711| v1711_8(void) = ^IndirectReadSideEffect[-1] : &:r1711_4, ~m? -# 1711| mu1711_9(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1711_4 -# 1711| r1711_10(glval) = CopyValue : r1711_6 -# 1711| r1711_11(int &) = CopyValue : r1711_10 -# 1711| mu1711_12(int &&) = Store[rv] : &:r1711_1, r1711_11 -# 1712| r1712_1(int) = Constant[4] : -# 1712| r1712_2(glval) = VariableAddress[i] : -# 1712| r1712_3(int &&) = Load[i] : &:r1712_2, ~m? -# 1712| r1712_4(glval) = CopyValue : r1712_3 -# 1712| mu1712_5(int) = Store[?] : &:r1712_4, r1712_1 -# 1713| r1713_1(glval) = VariableAddress[ri] : -# 1713| r1713_2(glval) = VariableAddress[i] : -# 1713| r1713_3(int &&) = Load[i] : &:r1713_2, ~m? -# 1713| r1713_4(glval) = CopyValue : r1713_3 -# 1713| r1713_5(int &) = CopyValue : r1713_4 -# 1713| mu1713_6(int &) = Store[ri] : &:r1713_1, r1713_5 -# 1714| r1714_1(glval) = VariableAddress[v] : +# 1704| r1704_4(glval) = CopyValue : r1704_3 +# 1704| mu1704_5(int) = Store[?] : &:r1704_4, r1704_1 +# 1705| r1705_1(glval) = VariableAddress[rr] : +# 1705| r1705_2(glval) = VariableAddress[r] : +# 1705| r1705_3(int &) = Load[r] : &:r1705_2, ~m? +# 1705| r1705_4(glval) = CopyValue : r1705_3 +# 1705| r1705_5(int &) = CopyValue : r1705_4 +# 1705| mu1705_6(int &) = Store[rr] : &:r1705_1, r1705_5 +# 1706| r1706_1(glval) = VariableAddress[w] : +# 1706| r1706_2(glval) = VariableAddress[r] : +# 1706| r1706_3(int &) = Load[r] : &:r1706_2, ~m? +# 1706| r1706_4(int) = Load[?] : &:r1706_3, ~m? +# 1706| mu1706_5(int) = Store[w] : &:r1706_1, r1706_4 +# 1710| r1710_1(glval) = VariableAddress[unnamed_local_variable] : +# 1710| r1710_2(glval) = VariableAddress[t] : +# 1710| r1710_3(StructuredBindingTupleNoRefGet &) = CopyValue : r1710_2 +# 1710| mu1710_4(StructuredBindingTupleNoRefGet &) = Store[unnamed_local_variable] : &:r1710_1, r1710_3 +# 1711| r1711_1(glval) = VariableAddress[i] : +# 1711| r1711_2(glval) = VariableAddress[#temp1711:20] : +# 1711| r1711_3(glval) = VariableAddress[unnamed_local_variable] : +# 1711| r1711_4(StructuredBindingTupleNoRefGet &) = Load[unnamed_local_variable] : &:r1711_3, ~m? +# 1711| r1711_5(glval) = CopyValue : r1711_4 +# 1711| r1711_6(glval) = FunctionAddress[get] : +# 1711| r1711_7(int) = Call[get] : func:r1711_6, this:r1711_5 +# 1711| mu1711_8(unknown) = ^CallSideEffect : ~m? +# 1711| v1711_9(void) = ^IndirectReadSideEffect[-1] : &:r1711_5, ~m? +# 1711| mu1711_10(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1711_5 +# 1711| mu1711_11(int) = Store[#temp1711:20] : &:r1711_2, r1711_7 +# 1711| r1711_12(int &) = CopyValue : r1711_2 +# 1711| mu1711_13(int &&) = Store[i] : &:r1711_1, r1711_12 +# 1712| r1712_1(glval) = VariableAddress[r] : +# 1712| r1712_2(glval) = VariableAddress[unnamed_local_variable] : +# 1712| r1712_3(StructuredBindingTupleNoRefGet &) = Load[unnamed_local_variable] : &:r1712_2, ~m? +# 1712| r1712_4(glval) = CopyValue : r1712_3 +# 1712| r1712_5(glval) = FunctionAddress[get] : +# 1712| r1712_6(int &) = Call[get] : func:r1712_5, this:r1712_4 +# 1712| mu1712_7(unknown) = ^CallSideEffect : ~m? +# 1712| v1712_8(void) = ^IndirectReadSideEffect[-1] : &:r1712_4, ~m? +# 1712| mu1712_9(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1712_4 +# 1712| r1712_10(glval) = CopyValue : r1712_6 +# 1712| r1712_11(int &) = CopyValue : r1712_10 +# 1712| mu1712_12(int &) = Store[r] : &:r1712_1, r1712_11 +# 1713| r1713_1(glval) = VariableAddress[rv] : +# 1713| r1713_2(glval) = VariableAddress[unnamed_local_variable] : +# 1713| r1713_3(StructuredBindingTupleNoRefGet &) = Load[unnamed_local_variable] : &:r1713_2, ~m? +# 1713| r1713_4(glval) = CopyValue : r1713_3 +# 1713| r1713_5(glval) = FunctionAddress[get] : +# 1713| r1713_6(int &&) = Call[get] : func:r1713_5, this:r1713_4 +# 1713| mu1713_7(unknown) = ^CallSideEffect : ~m? +# 1713| v1713_8(void) = ^IndirectReadSideEffect[-1] : &:r1713_4, ~m? +# 1713| mu1713_9(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1713_4 +# 1713| r1713_10(glval) = CopyValue : r1713_6 +# 1713| r1713_11(int &) = CopyValue : r1713_10 +# 1713| mu1713_12(int &&) = Store[rv] : &:r1713_1, r1713_11 +# 1714| r1714_1(int) = Constant[4] : # 1714| r1714_2(glval) = VariableAddress[i] : # 1714| r1714_3(int &&) = Load[i] : &:r1714_2, ~m? -# 1714| r1714_4(int) = Load[?] : &:r1714_3, ~m? -# 1714| mu1714_5(int) = Store[v] : &:r1714_1, r1714_4 -# 1715| r1715_1(int) = Constant[5] : -# 1715| r1715_2(glval) = VariableAddress[r] : -# 1715| r1715_3(int &) = Load[r] : &:r1715_2, ~m? +# 1714| r1714_4(glval) = CopyValue : r1714_3 +# 1714| mu1714_5(int) = Store[?] : &:r1714_4, r1714_1 +# 1715| r1715_1(glval) = VariableAddress[ri] : +# 1715| r1715_2(glval) = VariableAddress[i] : +# 1715| r1715_3(int &&) = Load[i] : &:r1715_2, ~m? # 1715| r1715_4(glval) = CopyValue : r1715_3 -# 1715| mu1715_5(int) = Store[?] : &:r1715_4, r1715_1 -# 1716| r1716_1(glval) = VariableAddress[rr] : -# 1716| r1716_2(glval) = VariableAddress[r] : -# 1716| r1716_3(int &) = Load[r] : &:r1716_2, ~m? -# 1716| r1716_4(glval) = CopyValue : r1716_3 -# 1716| r1716_5(int &) = CopyValue : r1716_4 -# 1716| mu1716_6(int &) = Store[rr] : &:r1716_1, r1716_5 -# 1717| r1717_1(glval) = VariableAddress[w] : +# 1715| r1715_5(int &) = CopyValue : r1715_4 +# 1715| mu1715_6(int &) = Store[ri] : &:r1715_1, r1715_5 +# 1716| r1716_1(glval) = VariableAddress[v] : +# 1716| r1716_2(glval) = VariableAddress[i] : +# 1716| r1716_3(int &&) = Load[i] : &:r1716_2, ~m? +# 1716| r1716_4(int) = Load[?] : &:r1716_3, ~m? +# 1716| mu1716_5(int) = Store[v] : &:r1716_1, r1716_4 +# 1717| r1717_1(int) = Constant[5] : # 1717| r1717_2(glval) = VariableAddress[r] : # 1717| r1717_3(int &) = Load[r] : &:r1717_2, ~m? -# 1717| r1717_4(int) = Load[?] : &:r1717_3, ~m? -# 1717| mu1717_5(int) = Store[w] : &:r1717_1, r1717_4 -# 1719| v1719_1(void) = NoOp : -# 1694| v1694_4(void) = ReturnVoid : -# 1694| v1694_5(void) = AliasedUse : ~m? -# 1694| v1694_6(void) = ExitFunction : - -# 1721| void array_structured_binding_non_ref_init() -# 1721| Block 0 -# 1721| v1721_1(void) = EnterFunction : -# 1721| mu1721_2(unknown) = AliasedDefinition : -# 1721| mu1721_3(unknown) = InitializeNonLocal : -# 1722| r1722_1(glval) = VariableAddress[xs] : -# 1722| mu1722_2(int[2]) = Uninitialized[xs] : &:r1722_1 -# 1722| r1722_3(int) = Constant[0] : -# 1722| r1722_4(glval) = PointerAdd[4] : r1722_1, r1722_3 -# 1722| r1722_5(int) = Constant[1] : -# 1722| mu1722_6(int) = Store[?] : &:r1722_4, r1722_5 -# 1722| r1722_7(int) = Constant[1] : -# 1722| r1722_8(glval) = PointerAdd[4] : r1722_1, r1722_7 -# 1722| r1722_9(int) = Constant[2] : -# 1722| mu1722_10(int) = Store[?] : &:r1722_8, r1722_9 -# 1723| r1723_1(glval) = VariableAddress[(unnamed local variable)] : -# 1723| r1723_2(glval) = VariableAddress[xs] : -# 1723| r1723_3(int[2]) = Load[xs] : &:r1723_2, ~m? -# 1723| mu1723_4(int[2]) = Store[(unnamed local variable)] : &:r1723_1, r1723_3 -# 1723| r1723_5(glval) = VariableAddress[x0] : +# 1717| r1717_4(glval) = CopyValue : r1717_3 +# 1717| mu1717_5(int) = Store[?] : &:r1717_4, r1717_1 +# 1718| r1718_1(glval) = VariableAddress[rr] : +# 1718| r1718_2(glval) = VariableAddress[r] : +# 1718| r1718_3(int &) = Load[r] : &:r1718_2, ~m? +# 1718| r1718_4(glval) = CopyValue : r1718_3 +# 1718| r1718_5(int &) = CopyValue : r1718_4 +# 1718| mu1718_6(int &) = Store[rr] : &:r1718_1, r1718_5 +# 1719| r1719_1(glval) = VariableAddress[w] : +# 1719| r1719_2(glval) = VariableAddress[r] : +# 1719| r1719_3(int &) = Load[r] : &:r1719_2, ~m? +# 1719| r1719_4(int) = Load[?] : &:r1719_3, ~m? +# 1719| mu1719_5(int) = Store[w] : &:r1719_1, r1719_4 +# 1721| v1721_1(void) = NoOp : +# 1696| v1696_4(void) = ReturnVoid : +# 1696| v1696_5(void) = AliasedUse : ~m? +# 1696| v1696_6(void) = ExitFunction : + +# 1723| void array_structured_binding_non_ref_init() +# 1723| Block 0 +# 1723| v1723_1(void) = EnterFunction : +# 1723| mu1723_2(unknown) = AliasedDefinition : +# 1723| mu1723_3(unknown) = InitializeNonLocal : +# 1724| r1724_1(glval) = VariableAddress[xs] : +# 1724| mu1724_2(int[2]) = Uninitialized[xs] : &:r1724_1 +# 1724| r1724_3(int) = Constant[0] : +# 1724| r1724_4(glval) = PointerAdd[4] : r1724_1, r1724_3 +# 1724| r1724_5(int) = Constant[1] : +# 1724| mu1724_6(int) = Store[?] : &:r1724_4, r1724_5 +# 1724| r1724_7(int) = Constant[1] : +# 1724| r1724_8(glval) = PointerAdd[4] : r1724_1, r1724_7 +# 1724| r1724_9(int) = Constant[2] : +# 1724| mu1724_10(int) = Store[?] : &:r1724_8, r1724_9 +# 1725| r1725_1(glval) = VariableAddress[(unnamed local variable)] : +# 1725| r1725_2(glval) = VariableAddress[xs] : +# 1725| r1725_3(int[2]) = Load[xs] : &:r1725_2, ~m? +# 1725| mu1725_4(int[2]) = Store[(unnamed local variable)] : &:r1725_1, r1725_3 +# 1725| r1725_5(glval) = VariableAddress[x0] : #-----| r0_1(glval) = VariableAddress[(unnamed local variable)] : #-----| r0_2(int *) = Convert : r0_1 #-----| r0_3(unsigned long) = Constant[0] : #-----| r0_4(glval) = PointerAdd[4] : r0_2, r0_3 -#-----| mu0_5(int &) = Store[x0] : &:r1723_5, r0_4 -# 1723| r1723_6(glval) = VariableAddress[x1] : +#-----| mu0_5(int &) = Store[x0] : &:r1725_5, r0_4 +# 1725| r1725_6(glval) = VariableAddress[x1] : #-----| r0_6(glval) = VariableAddress[(unnamed local variable)] : #-----| r0_7(int *) = Convert : r0_6 #-----| r0_8(unsigned long) = Constant[1] : #-----| r0_9(glval) = PointerAdd[4] : r0_7, r0_8 -#-----| mu0_10(int &) = Store[x1] : &:r1723_6, r0_9 -# 1724| v1724_1(void) = NoOp : -# 1721| v1721_4(void) = ReturnVoid : -# 1721| v1721_5(void) = AliasedUse : ~m? -# 1721| v1721_6(void) = ExitFunction : - -# 1729| void CapturedLambdaMyObj::CapturedLambdaMyObj() -# 1729| Block 0 -# 1729| v1729_1(void) = EnterFunction : -# 1729| mu1729_2(unknown) = AliasedDefinition : -# 1729| mu1729_3(unknown) = InitializeNonLocal : -# 1729| r1729_4(glval) = VariableAddress[#this] : -# 1729| mu1729_5(glval) = InitializeParameter[#this] : &:r1729_4 -# 1729| r1729_6(glval) = Load[#this] : &:r1729_4, ~m? -# 1729| mu1729_7(CapturedLambdaMyObj) = InitializeIndirection[#this] : &:r1729_6 -# 1729| v1729_8(void) = NoOp : -# 1729| v1729_9(void) = ReturnIndirection[#this] : &:r1729_6, ~m? -# 1729| v1729_10(void) = ReturnVoid : -# 1729| v1729_11(void) = AliasedUse : ~m? -# 1729| v1729_12(void) = ExitFunction : - -# 1732| void captured_lambda(int, int&, int&&) -# 1732| Block 0 -# 1732| v1732_1(void) = EnterFunction : -# 1732| mu1732_2(unknown) = AliasedDefinition : -# 1732| mu1732_3(unknown) = InitializeNonLocal : -# 1732| r1732_4(glval) = VariableAddress[x] : -# 1732| mu1732_5(int) = InitializeParameter[x] : &:r1732_4 -# 1732| r1732_6(glval) = VariableAddress[y] : -# 1732| mu1732_7(int &) = InitializeParameter[y] : &:r1732_6 -# 1732| r1732_8(int &) = Load[y] : &:r1732_6, ~m? -# 1732| mu1732_9(unknown) = InitializeIndirection[y] : &:r1732_8 -# 1732| r1732_10(glval) = VariableAddress[z] : -# 1732| mu1732_11(int &&) = InitializeParameter[z] : &:r1732_10 -# 1732| r1732_12(int &&) = Load[z] : &:r1732_10, ~m? -# 1732| mu1732_13(unknown) = InitializeIndirection[z] : &:r1732_12 -# 1734| r1734_1(glval) = VariableAddress[obj1] : -# 1734| r1734_2(glval) = VariableAddress[#temp1734:24] : -# 1734| mu1734_3(CapturedLambdaMyObj) = Uninitialized[#temp1734:24] : &:r1734_2 -# 1734| r1734_4(glval) = FunctionAddress[CapturedLambdaMyObj] : -# 1734| v1734_5(void) = Call[CapturedLambdaMyObj] : func:r1734_4, this:r1734_2 -# 1734| mu1734_6(unknown) = ^CallSideEffect : ~m? -# 1734| mu1734_7(CapturedLambdaMyObj) = ^IndirectMayWriteSideEffect[-1] : &:r1734_2 -# 1734| r1734_8(glval) = Convert : r1734_2 -# 1734| r1734_9(CapturedLambdaMyObj &) = CopyValue : r1734_8 -# 1734| mu1734_10(CapturedLambdaMyObj &) = Store[obj1] : &:r1734_1, r1734_9 -# 1735| r1735_1(glval) = VariableAddress[obj2] : -# 1735| mu1735_2(CapturedLambdaMyObj) = Uninitialized[obj2] : &:r1735_1 -# 1735| r1735_3(glval) = FunctionAddress[CapturedLambdaMyObj] : -# 1735| v1735_4(void) = Call[CapturedLambdaMyObj] : func:r1735_3, this:r1735_1 -# 1735| mu1735_5(unknown) = ^CallSideEffect : ~m? -# 1735| mu1735_6(CapturedLambdaMyObj) = ^IndirectMayWriteSideEffect[-1] : &:r1735_1 -# 1737| r1737_1(glval) = VariableAddress[lambda_outer] : -# 1737| r1737_2(glval) = VariableAddress[#temp1737:24] : -# 1737| mu1737_3(decltype([...](...){...})) = Uninitialized[#temp1737:24] : &:r1737_2 -# 1737| r1737_4(glval) = FieldAddress[obj1] : r1737_2 -# 1737| r1737_5(glval) = VariableAddress[obj1] : -# 1737| r1737_6(CapturedLambdaMyObj &) = Load[obj1] : &:r1737_5, ~m? -#-----| r0_1(CapturedLambdaMyObj) = Load[?] : &:r1737_6, ~m? -#-----| mu0_2(CapturedLambdaMyObj) = Store[?] : &:r1737_4, r0_1 -# 1737| r1737_7(glval) = FieldAddress[obj2] : r1737_2 -# 1737| r1737_8(glval) = VariableAddress[obj2] : -# 1737| r1737_9(CapturedLambdaMyObj) = Load[obj2] : &:r1737_8, ~m? -# 1737| mu1737_10(CapturedLambdaMyObj) = Store[?] : &:r1737_7, r1737_9 -# 1737| r1737_11(glval) = FieldAddress[x] : r1737_2 -# 1737| r1737_12(glval) = VariableAddress[x] : -# 1737| r1737_13(int) = Load[x] : &:r1737_12, ~m? -# 1737| mu1737_14(int) = Store[?] : &:r1737_11, r1737_13 -# 1737| r1737_15(glval) = FieldAddress[y] : r1737_2 -# 1737| r1737_16(glval) = VariableAddress[y] : -# 1737| r1737_17(int &) = Load[y] : &:r1737_16, ~m? -# 1739| r1739_1(int) = Load[?] : &:r1737_17, ~m? -# 1739| mu1739_2(int) = Store[?] : &:r1737_15, r1739_1 -# 1737| r1737_18(glval) = FieldAddress[z] : r1737_2 -# 1737| r1737_19(glval) = VariableAddress[z] : -# 1737| r1737_20(int &&) = Load[z] : &:r1737_19, ~m? -# 1739| r1739_3(int) = Load[?] : &:r1737_20, ~m? -# 1739| mu1739_4(int) = Store[?] : &:r1737_18, r1739_3 -# 1737| r1737_21(decltype([...](...){...})) = Load[#temp1737:24] : &:r1737_2, ~m? -# 1737| mu1737_22(decltype([...](...){...})) = Store[lambda_outer] : &:r1737_1, r1737_21 -# 1740| v1740_1(void) = NoOp : -# 1732| v1732_14(void) = ReturnIndirection[y] : &:r1732_8, ~m? -# 1732| v1732_15(void) = ReturnIndirection[z] : &:r1732_12, ~m? -# 1732| v1732_16(void) = ReturnVoid : -# 1732| v1732_17(void) = AliasedUse : ~m? -# 1732| v1732_18(void) = ExitFunction : - -# 1737| void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1737, col. 25)::operator()() const -# 1737| Block 0 -# 1737| v1737_1(void) = EnterFunction : -# 1737| mu1737_2(unknown) = AliasedDefinition : -# 1737| mu1737_3(unknown) = InitializeNonLocal : -# 1737| r1737_4(glval) = VariableAddress[#this] : -# 1737| mu1737_5(glval) = InitializeParameter[#this] : &:r1737_4 -# 1737| r1737_6(glval) = Load[#this] : &:r1737_4, ~m? -# 1737| mu1737_7(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1737_6 -# 1738| r1738_1(glval) = VariableAddress[lambda_inner] : -# 1738| r1738_2(glval) = VariableAddress[#temp1738:28] : -# 1738| mu1738_3(decltype([...](...){...})) = Uninitialized[#temp1738:28] : &:r1738_2 -# 1738| r1738_4(glval) = FieldAddress[obj1] : r1738_2 -# 1738| r1738_5(glval) = VariableAddress[#this] : -# 1738| r1738_6(lambda [] type at line 1738, col. 29 *) = Load[#this] : &:r1738_5, ~m? -# 1738| r1738_7(glval) = FieldAddress[obj1] : r1738_6 -# 1738| r1738_8(CapturedLambdaMyObj) = Load[?] : &:r1738_7, ~m? -# 1738| mu1738_9(CapturedLambdaMyObj) = Store[?] : &:r1738_4, r1738_8 -# 1738| r1738_10(glval) = FieldAddress[obj2] : r1738_2 -# 1738| r1738_11(glval) = VariableAddress[#this] : -# 1738| r1738_12(lambda [] type at line 1738, col. 29 *) = Load[#this] : &:r1738_11, ~m? -# 1738| r1738_13(glval) = FieldAddress[obj2] : r1738_12 -# 1738| r1738_14(CapturedLambdaMyObj) = Load[?] : &:r1738_13, ~m? -# 1738| mu1738_15(CapturedLambdaMyObj) = Store[?] : &:r1738_10, r1738_14 -# 1738| r1738_16(glval) = FieldAddress[x] : r1738_2 -# 1738| r1738_17(glval) = VariableAddress[#this] : -# 1738| r1738_18(lambda [] type at line 1737, col. 25 *) = Load[#this] : &:r1738_17, ~m? -# 1738| r1738_19(glval) = FieldAddress[x] : r1738_18 -# 1738| r1738_20(int) = Load[?] : &:r1738_19, ~m? -# 1738| mu1738_21(int) = Store[?] : &:r1738_16, r1738_20 -# 1738| r1738_22(glval) = FieldAddress[y] : r1738_2 -# 1738| r1738_23(glval) = VariableAddress[#this] : -# 1738| r1738_24(lambda [] type at line 1737, col. 25 *) = Load[#this] : &:r1738_23, ~m? -# 1738| r1738_25(glval) = FieldAddress[y] : r1738_24 -# 1738| r1738_26(int) = Load[?] : &:r1738_25, ~m? -# 1738| mu1738_27(int) = Store[?] : &:r1738_22, r1738_26 -# 1738| r1738_28(glval) = FieldAddress[z] : r1738_2 -# 1738| r1738_29(glval) = VariableAddress[#this] : -# 1738| r1738_30(lambda [] type at line 1737, col. 25 *) = Load[#this] : &:r1738_29, ~m? -# 1738| r1738_31(glval) = FieldAddress[z] : r1738_30 -# 1738| r1738_32(int) = Load[?] : &:r1738_31, ~m? -# 1738| mu1738_33(int) = Store[?] : &:r1738_28, r1738_32 -# 1738| r1738_34(decltype([...](...){...})) = Load[#temp1738:28] : &:r1738_2, ~m? -# 1738| mu1738_35(decltype([...](...){...})) = Store[lambda_inner] : &:r1738_1, r1738_34 -# 1739| v1739_1(void) = NoOp : -# 1737| v1737_8(void) = ReturnIndirection[#this] : &:r1737_6, ~m? -# 1737| v1737_9(void) = ReturnVoid : -# 1737| v1737_10(void) = AliasedUse : ~m? -# 1737| v1737_11(void) = ExitFunction : - -# 1738| void (void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1737, col. 25)::operator()() const)::(lambda [] type at line 1738, col. 29)::operator()() const -# 1738| Block 0 -# 1738| v1738_1(void) = EnterFunction : -# 1738| mu1738_2(unknown) = AliasedDefinition : -# 1738| mu1738_3(unknown) = InitializeNonLocal : -# 1738| r1738_4(glval) = VariableAddress[#this] : -# 1738| mu1738_5(glval) = InitializeParameter[#this] : &:r1738_4 -# 1738| r1738_6(glval) = Load[#this] : &:r1738_4, ~m? -# 1738| mu1738_7(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1738_6 -# 1738| v1738_8(void) = NoOp : -# 1738| v1738_9(void) = NoOp : -# 1738| v1738_10(void) = ReturnIndirection[#this] : &:r1738_6, ~m? -# 1738| v1738_11(void) = ReturnVoid : -# 1738| v1738_12(void) = AliasedUse : ~m? -# 1738| v1738_13(void) = ExitFunction : - -# 1742| int goto_on_same_line() -# 1742| Block 0 -# 1742| v1742_1(void) = EnterFunction : -# 1742| mu1742_2(unknown) = AliasedDefinition : -# 1742| mu1742_3(unknown) = InitializeNonLocal : -# 1743| r1743_1(glval) = VariableAddress[x] : -# 1743| r1743_2(int) = Constant[42] : -# 1743| mu1743_3(int) = Store[x] : &:r1743_1, r1743_2 -# 1744| v1744_1(void) = NoOp : -# 1744| v1744_2(void) = NoOp : -# 1745| r1745_1(glval) = VariableAddress[#return] : -# 1745| r1745_2(glval) = VariableAddress[x] : -# 1745| r1745_3(int) = Load[x] : &:r1745_2, ~m? -# 1745| mu1745_4(int) = Store[#return] : &:r1745_1, r1745_3 -# 1742| r1742_4(glval) = VariableAddress[#return] : -# 1742| v1742_5(void) = ReturnValue : &:r1742_4, ~m? -# 1742| v1742_6(void) = AliasedUse : ~m? -# 1742| v1742_7(void) = ExitFunction : - -# 1750| void TrivialLambdaClass::m() const -# 1750| Block 0 -# 1750| v1750_1(void) = EnterFunction : -# 1750| mu1750_2(unknown) = AliasedDefinition : -# 1750| mu1750_3(unknown) = InitializeNonLocal : -# 1750| r1750_4(glval) = VariableAddress[#this] : -# 1750| mu1750_5(glval) = InitializeParameter[#this] : &:r1750_4 -# 1750| r1750_6(glval) = Load[#this] : &:r1750_4, ~m? -# 1750| mu1750_7(TrivialLambdaClass) = InitializeIndirection[#this] : &:r1750_6 -# 1751| r1751_1(glval) = VariableAddress[l_m_outer] : -# 1751| r1751_2(glval) = VariableAddress[#temp1751:25] : -# 1751| mu1751_3(decltype([...](...){...})) = Uninitialized[#temp1751:25] : &:r1751_2 -# 1751| r1751_4(glval) = FieldAddress[(captured this)] : r1751_2 -# 1751| r1751_5(glval) = VariableAddress[#this] : -# 1751| r1751_6(TrivialLambdaClass *) = Load[#this] : &:r1751_5, ~m? -# 1751| r1751_7(TrivialLambdaClass) = Load[?] : &:r1751_6, ~m? -# 1751| mu1751_8(TrivialLambdaClass) = Store[?] : &:r1751_4, r1751_7 -# 1751| r1751_9(decltype([...](...){...})) = Load[#temp1751:25] : &:r1751_2, ~m? -# 1751| mu1751_10(decltype([...](...){...})) = Store[l_m_outer] : &:r1751_1, r1751_9 -# 1758| v1758_1(void) = NoOp : -# 1750| v1750_8(void) = ReturnIndirection[#this] : &:r1750_6, ~m? -# 1750| v1750_9(void) = ReturnVoid : -# 1750| v1750_10(void) = AliasedUse : ~m? -# 1750| v1750_11(void) = ExitFunction : - -# 1751| void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1751, col. 26)::operator()() const -# 1751| Block 0 -# 1751| v1751_1(void) = EnterFunction : -# 1751| mu1751_2(unknown) = AliasedDefinition : -# 1751| mu1751_3(unknown) = InitializeNonLocal : -# 1751| r1751_4(glval) = VariableAddress[#this] : -# 1751| mu1751_5(glval) = InitializeParameter[#this] : &:r1751_4 -# 1751| r1751_6(glval) = Load[#this] : &:r1751_4, ~m? -# 1751| mu1751_7(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1751_6 -# 1752| r1752_1(glval) = VariableAddress[#this] : -# 1752| r1752_2(lambda [] type at line 1751, col. 26 *) = Load[#this] : &:r1752_1, ~m? -# 1752| r1752_3(glval) = FieldAddress[(captured this)] : r1752_2 -# 1752| r1752_4(TrivialLambdaClass *) = CopyValue : r1752_3 -# 1752| r1752_5(glval) = FunctionAddress[m] : -# 1752| v1752_6(void) = Call[m] : func:r1752_5, this:r1752_4 -# 1752| mu1752_7(unknown) = ^CallSideEffect : ~m? -# 1752| v1752_8(void) = ^IndirectReadSideEffect[-1] : &:r1752_4, ~m? -# 1754| r1754_1(glval) = VariableAddress[l_m_inner] : -# 1754| r1754_2(glval) = VariableAddress[#temp1754:29] : -# 1754| mu1754_3(decltype([...](...){...})) = Uninitialized[#temp1754:29] : &:r1754_2 -# 1754| r1754_4(glval) = FieldAddress[(captured this)] : r1754_2 -# 1754| r1754_5(glval) = VariableAddress[#this] : -# 1754| r1754_6(lambda [] type at line 1754, col. 30 *) = Load[#this] : &:r1754_5, ~m? -# 1754| r1754_7(glval) = FieldAddress[(captured this)] : r1754_6 -# 1754| r1754_8(TrivialLambdaClass) = Load[?] : &:r1754_7, ~m? -# 1754| mu1754_9(TrivialLambdaClass) = Store[?] : &:r1754_4, r1754_8 -# 1754| r1754_10(decltype([...](...){...})) = Load[#temp1754:29] : &:r1754_2, ~m? -# 1754| mu1754_11(decltype([...](...){...})) = Store[l_m_inner] : &:r1754_1, r1754_10 -# 1757| v1757_1(void) = NoOp : -# 1751| v1751_8(void) = ReturnIndirection[#this] : &:r1751_6, ~m? -# 1751| v1751_9(void) = ReturnVoid : -# 1751| v1751_10(void) = AliasedUse : ~m? -# 1751| v1751_11(void) = ExitFunction : - -# 1754| void (void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1751, col. 26)::operator()() const)::(lambda [] type at line 1754, col. 30)::operator()() const -# 1754| Block 0 -# 1754| v1754_1(void) = EnterFunction : -# 1754| mu1754_2(unknown) = AliasedDefinition : -# 1754| mu1754_3(unknown) = InitializeNonLocal : -# 1754| r1754_4(glval) = VariableAddress[#this] : -# 1754| mu1754_5(glval) = InitializeParameter[#this] : &:r1754_4 -# 1754| r1754_6(glval) = Load[#this] : &:r1754_4, ~m? -# 1754| mu1754_7(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1754_6 -# 1755| r1755_1(glval) = VariableAddress[#this] : -# 1755| r1755_2(lambda [] type at line 1754, col. 30 *) = Load[#this] : &:r1755_1, ~m? -# 1755| r1755_3(glval) = FieldAddress[(captured this)] : r1755_2 -# 1755| r1755_4(TrivialLambdaClass *) = CopyValue : r1755_3 -# 1755| r1755_5(glval) = FunctionAddress[m] : -# 1755| v1755_6(void) = Call[m] : func:r1755_5, this:r1755_4 -# 1755| mu1755_7(unknown) = ^CallSideEffect : ~m? -# 1755| v1755_8(void) = ^IndirectReadSideEffect[-1] : &:r1755_4, ~m? -# 1756| v1756_1(void) = NoOp : -# 1754| v1754_8(void) = ReturnIndirection[#this] : &:r1754_6, ~m? -# 1754| v1754_9(void) = ReturnVoid : -# 1754| v1754_10(void) = AliasedUse : ~m? -# 1754| v1754_11(void) = ExitFunction : - -# 1761| void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) -# 1761| Block 0 -# 1761| v1761_1(void) = EnterFunction : -# 1761| mu1761_2(unknown) = AliasedDefinition : -# 1761| mu1761_3(unknown) = InitializeNonLocal : -# 1761| r1761_4(glval) = VariableAddress[p1] : -# 1761| mu1761_5(TrivialLambdaClass) = InitializeParameter[p1] : &:r1761_4 -# 1761| r1761_6(glval) = VariableAddress[p2] : -# 1761| mu1761_7(TrivialLambdaClass &) = InitializeParameter[p2] : &:r1761_6 -# 1761| r1761_8(TrivialLambdaClass &) = Load[p2] : &:r1761_6, ~m? -# 1761| mu1761_9(unknown) = InitializeIndirection[p2] : &:r1761_8 -# 1761| r1761_10(glval) = VariableAddress[p3] : -# 1761| mu1761_11(TrivialLambdaClass &&) = InitializeParameter[p3] : &:r1761_10 -# 1761| r1761_12(TrivialLambdaClass &&) = Load[p3] : &:r1761_10, ~m? -# 1761| mu1761_13(unknown) = InitializeIndirection[p3] : &:r1761_12 -# 1762| r1762_1(glval) = VariableAddress[l1] : -# 1762| mu1762_2(TrivialLambdaClass) = Uninitialized[l1] : &:r1762_1 -# 1763| r1763_1(glval) = VariableAddress[l2] : -# 1763| r1763_2(glval) = VariableAddress[#temp1763:36] : -# 1763| r1763_3(TrivialLambdaClass) = Constant[0] : -# 1763| mu1763_4(TrivialLambdaClass) = Store[#temp1763:36] : &:r1763_2, r1763_3 -# 1763| r1763_5(glval) = Convert : r1763_2 -# 1763| r1763_6(TrivialLambdaClass &) = CopyValue : r1763_5 -# 1763| mu1763_7(TrivialLambdaClass &) = Store[l2] : &:r1763_1, r1763_6 -# 1765| r1765_1(glval) = VariableAddress[l_outer1] : -# 1765| r1765_2(glval) = VariableAddress[#temp1765:20] : -# 1765| mu1765_3(decltype([...](...){...})) = Uninitialized[#temp1765:20] : &:r1765_2 -# 1765| r1765_4(glval) = FieldAddress[p1] : r1765_2 -# 1765| r1765_5(glval) = VariableAddress[p1] : -# 1765| r1765_6(TrivialLambdaClass) = Load[p1] : &:r1765_5, ~m? -# 1765| mu1765_7(TrivialLambdaClass) = Store[?] : &:r1765_4, r1765_6 -# 1765| r1765_8(glval) = FieldAddress[p2] : r1765_2 -# 1765| r1765_9(glval) = VariableAddress[p2] : -# 1765| r1765_10(TrivialLambdaClass &) = Load[p2] : &:r1765_9, ~m? -#-----| r0_1(TrivialLambdaClass) = Load[?] : &:r1765_10, ~m? -#-----| mu0_2(TrivialLambdaClass) = Store[?] : &:r1765_8, r0_1 -# 1765| r1765_11(glval) = FieldAddress[p3] : r1765_2 -# 1765| r1765_12(glval) = VariableAddress[p3] : -# 1765| r1765_13(TrivialLambdaClass &&) = Load[p3] : &:r1765_12, ~m? -#-----| r0_3(TrivialLambdaClass) = Load[?] : &:r1765_13, ~m? -#-----| mu0_4(TrivialLambdaClass) = Store[?] : &:r1765_11, r0_3 -# 1765| r1765_14(glval) = FieldAddress[l1] : r1765_2 -# 1765| r1765_15(glval) = VariableAddress[l1] : -# 1765| r1765_16(TrivialLambdaClass) = Load[l1] : &:r1765_15, ~m? -# 1765| mu1765_17(TrivialLambdaClass) = Store[?] : &:r1765_14, r1765_16 -# 1765| r1765_18(glval) = FieldAddress[l2] : r1765_2 -# 1765| r1765_19(glval) = VariableAddress[l2] : -# 1765| r1765_20(TrivialLambdaClass &) = Load[l2] : &:r1765_19, ~m? -#-----| r0_5(TrivialLambdaClass) = Load[?] : &:r1765_20, ~m? -#-----| mu0_6(TrivialLambdaClass) = Store[?] : &:r1765_18, r0_5 -# 1765| r1765_21(decltype([...](...){...})) = Load[#temp1765:20] : &:r1765_2, ~m? -# 1765| mu1765_22(decltype([...](...){...})) = Store[l_outer1] : &:r1765_1, r1765_21 -# 1768| v1768_1(void) = NoOp : -# 1761| v1761_14(void) = ReturnIndirection[p2] : &:r1761_8, ~m? -# 1761| v1761_15(void) = ReturnIndirection[p3] : &:r1761_12, ~m? -# 1761| v1761_16(void) = ReturnVoid : -# 1761| v1761_17(void) = AliasedUse : ~m? -# 1761| v1761_18(void) = ExitFunction : - -# 1765| void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1765, col. 21)::operator()() const -# 1765| Block 0 -# 1765| v1765_1(void) = EnterFunction : -# 1765| mu1765_2(unknown) = AliasedDefinition : -# 1765| mu1765_3(unknown) = InitializeNonLocal : -# 1765| r1765_4(glval) = VariableAddress[#this] : -# 1765| mu1765_5(glval) = InitializeParameter[#this] : &:r1765_4 -# 1765| r1765_6(glval) = Load[#this] : &:r1765_4, ~m? -# 1765| mu1765_7(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1765_6 -# 1766| r1766_1(glval) = VariableAddress[l_inner1] : -# 1766| r1766_2(glval) = VariableAddress[#temp1766:24] : -# 1766| mu1766_3(decltype([...](...){...})) = Uninitialized[#temp1766:24] : &:r1766_2 -# 1766| r1766_4(glval) = FieldAddress[p1] : r1766_2 -# 1766| r1766_5(glval) = VariableAddress[#this] : -# 1766| r1766_6(lambda [] type at line 1766, col. 25 *) = Load[#this] : &:r1766_5, ~m? -# 1766| r1766_7(glval) = FieldAddress[p1] : r1766_6 -# 1766| r1766_8(TrivialLambdaClass) = Load[?] : &:r1766_7, ~m? -# 1766| mu1766_9(TrivialLambdaClass) = Store[?] : &:r1766_4, r1766_8 -# 1766| r1766_10(decltype([...](...){...})) = Load[#temp1766:24] : &:r1766_2, ~m? -# 1766| mu1766_11(decltype([...](...){...})) = Store[l_inner1] : &:r1766_1, r1766_10 -# 1767| v1767_1(void) = NoOp : -# 1765| v1765_8(void) = ReturnIndirection[#this] : &:r1765_6, ~m? -# 1765| v1765_9(void) = ReturnVoid : -# 1765| v1765_10(void) = AliasedUse : ~m? -# 1765| v1765_11(void) = ExitFunction : - -# 1766| void (void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1765, col. 21)::operator()() const)::(lambda [] type at line 1766, col. 25)::operator()() const -# 1766| Block 0 -# 1766| v1766_1(void) = EnterFunction : -# 1766| mu1766_2(unknown) = AliasedDefinition : -# 1766| mu1766_3(unknown) = InitializeNonLocal : -# 1766| r1766_4(glval) = VariableAddress[#this] : -# 1766| mu1766_5(glval) = InitializeParameter[#this] : &:r1766_4 -# 1766| r1766_6(glval) = Load[#this] : &:r1766_4, ~m? -# 1766| mu1766_7(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1766_6 -# 1766| v1766_8(void) = NoOp : -# 1766| v1766_9(void) = ReturnIndirection[#this] : &:r1766_6, ~m? -# 1766| v1766_10(void) = ReturnVoid : -# 1766| v1766_11(void) = AliasedUse : ~m? -# 1766| v1766_12(void) = ExitFunction : - -# 1773| void CopyConstructorWithImplicitArgumentClass::CopyConstructorWithImplicitArgumentClass() -# 1773| Block 0 -# 1773| v1773_1(void) = EnterFunction : -# 1773| mu1773_2(unknown) = AliasedDefinition : -# 1773| mu1773_3(unknown) = InitializeNonLocal : -# 1773| r1773_4(glval) = VariableAddress[#this] : -# 1773| mu1773_5(glval) = InitializeParameter[#this] : &:r1773_4 -# 1773| r1773_6(glval) = Load[#this] : &:r1773_4, ~m? -# 1773| mu1773_7(CopyConstructorWithImplicitArgumentClass) = InitializeIndirection[#this] : &:r1773_6 -# 1773| v1773_8(void) = NoOp : -# 1773| v1773_9(void) = ReturnIndirection[#this] : &:r1773_6, ~m? -# 1773| v1773_10(void) = ReturnVoid : -# 1773| v1773_11(void) = AliasedUse : ~m? -# 1773| v1773_12(void) = ExitFunction : - -# 1774| void CopyConstructorWithImplicitArgumentClass::CopyConstructorWithImplicitArgumentClass(CopyConstructorWithImplicitArgumentClass const&) -# 1774| Block 0 -# 1774| v1774_1(void) = EnterFunction : -# 1774| mu1774_2(unknown) = AliasedDefinition : -# 1774| mu1774_3(unknown) = InitializeNonLocal : -# 1774| r1774_4(glval) = VariableAddress[#this] : -# 1774| mu1774_5(glval) = InitializeParameter[#this] : &:r1774_4 -# 1774| r1774_6(glval) = Load[#this] : &:r1774_4, ~m? -# 1774| mu1774_7(CopyConstructorWithImplicitArgumentClass) = InitializeIndirection[#this] : &:r1774_6 -# 1774| r1774_8(glval) = VariableAddress[c] : -# 1774| mu1774_9(CopyConstructorWithImplicitArgumentClass &) = InitializeParameter[c] : &:r1774_8 -# 1774| r1774_10(CopyConstructorWithImplicitArgumentClass &) = Load[c] : &:r1774_8, ~m? -# 1774| mu1774_11(unknown) = InitializeIndirection[c] : &:r1774_10 -# 1775| r1775_1(glval) = VariableAddress[c] : -# 1775| r1775_2(CopyConstructorWithImplicitArgumentClass &) = Load[c] : &:r1775_1, ~m? -# 1775| r1775_3(glval) = CopyValue : r1775_2 -# 1775| r1775_4(glval) = FieldAddress[x] : r1775_3 -# 1775| r1775_5(int) = Load[?] : &:r1775_4, ~m? -# 1775| r1775_6(glval) = VariableAddress[#this] : -# 1775| r1775_7(CopyConstructorWithImplicitArgumentClass *) = Load[#this] : &:r1775_6, ~m? -# 1775| r1775_8(glval) = FieldAddress[x] : r1775_7 -# 1775| mu1775_9(int) = Store[?] : &:r1775_8, r1775_5 -# 1776| v1776_1(void) = NoOp : -# 1774| v1774_12(void) = ReturnIndirection[#this] : &:r1774_6, ~m? -# 1774| v1774_13(void) = ReturnIndirection[c] : &:r1774_10, ~m? -# 1774| v1774_14(void) = ReturnVoid : -# 1774| v1774_15(void) = AliasedUse : ~m? -# 1774| v1774_16(void) = ExitFunction : - -# 1782| void CopyConstructorWithBitwiseCopyClass::CopyConstructorWithBitwiseCopyClass() -# 1782| Block 0 -# 1782| v1782_1(void) = EnterFunction : -# 1782| mu1782_2(unknown) = AliasedDefinition : -# 1782| mu1782_3(unknown) = InitializeNonLocal : -# 1782| r1782_4(glval) = VariableAddress[#this] : -# 1782| mu1782_5(glval) = InitializeParameter[#this] : &:r1782_4 -# 1782| r1782_6(glval) = Load[#this] : &:r1782_4, ~m? -# 1782| mu1782_7(CopyConstructorWithBitwiseCopyClass) = InitializeIndirection[#this] : &:r1782_6 -# 1782| v1782_8(void) = NoOp : -# 1782| v1782_9(void) = ReturnIndirection[#this] : &:r1782_6, ~m? -# 1782| v1782_10(void) = ReturnVoid : -# 1782| v1782_11(void) = AliasedUse : ~m? -# 1782| v1782_12(void) = ExitFunction : - -# 1785| void CopyConstructorTestNonVirtualClass::CopyConstructorTestNonVirtualClass(CopyConstructorTestNonVirtualClass const&) -# 1785| Block 0 -# 1785| v1785_1(void) = EnterFunction : -# 1785| mu1785_2(unknown) = AliasedDefinition : -# 1785| mu1785_3(unknown) = InitializeNonLocal : -# 1785| r1785_4(glval) = VariableAddress[#this] : -# 1785| mu1785_5(glval) = InitializeParameter[#this] : &:r1785_4 -# 1785| r1785_6(glval) = Load[#this] : &:r1785_4, ~m? -# 1785| mu1785_7(CopyConstructorTestNonVirtualClass) = InitializeIndirection[#this] : &:r1785_6 +#-----| mu0_10(int &) = Store[x1] : &:r1725_6, r0_9 +# 1726| v1726_1(void) = NoOp : +# 1723| v1723_4(void) = ReturnVoid : +# 1723| v1723_5(void) = AliasedUse : ~m? +# 1723| v1723_6(void) = ExitFunction : + +# 1731| void CapturedLambdaMyObj::CapturedLambdaMyObj() +# 1731| Block 0 +# 1731| v1731_1(void) = EnterFunction : +# 1731| mu1731_2(unknown) = AliasedDefinition : +# 1731| mu1731_3(unknown) = InitializeNonLocal : +# 1731| r1731_4(glval) = VariableAddress[#this] : +# 1731| mu1731_5(glval) = InitializeParameter[#this] : &:r1731_4 +# 1731| r1731_6(glval) = Load[#this] : &:r1731_4, ~m? +# 1731| mu1731_7(CapturedLambdaMyObj) = InitializeIndirection[#this] : &:r1731_6 +# 1731| v1731_8(void) = NoOp : +# 1731| v1731_9(void) = ReturnIndirection[#this] : &:r1731_6, ~m? +# 1731| v1731_10(void) = ReturnVoid : +# 1731| v1731_11(void) = AliasedUse : ~m? +# 1731| v1731_12(void) = ExitFunction : + +# 1734| void captured_lambda(int, int&, int&&) +# 1734| Block 0 +# 1734| v1734_1(void) = EnterFunction : +# 1734| mu1734_2(unknown) = AliasedDefinition : +# 1734| mu1734_3(unknown) = InitializeNonLocal : +# 1734| r1734_4(glval) = VariableAddress[x] : +# 1734| mu1734_5(int) = InitializeParameter[x] : &:r1734_4 +# 1734| r1734_6(glval) = VariableAddress[y] : +# 1734| mu1734_7(int &) = InitializeParameter[y] : &:r1734_6 +# 1734| r1734_8(int &) = Load[y] : &:r1734_6, ~m? +# 1734| mu1734_9(unknown) = InitializeIndirection[y] : &:r1734_8 +# 1734| r1734_10(glval) = VariableAddress[z] : +# 1734| mu1734_11(int &&) = InitializeParameter[z] : &:r1734_10 +# 1734| r1734_12(int &&) = Load[z] : &:r1734_10, ~m? +# 1734| mu1734_13(unknown) = InitializeIndirection[z] : &:r1734_12 +# 1736| r1736_1(glval) = VariableAddress[obj1] : +# 1736| r1736_2(glval) = VariableAddress[#temp1736:24] : +# 1736| mu1736_3(CapturedLambdaMyObj) = Uninitialized[#temp1736:24] : &:r1736_2 +# 1736| r1736_4(glval) = FunctionAddress[CapturedLambdaMyObj] : +# 1736| v1736_5(void) = Call[CapturedLambdaMyObj] : func:r1736_4, this:r1736_2 +# 1736| mu1736_6(unknown) = ^CallSideEffect : ~m? +# 1736| mu1736_7(CapturedLambdaMyObj) = ^IndirectMayWriteSideEffect[-1] : &:r1736_2 +# 1736| r1736_8(glval) = Convert : r1736_2 +# 1736| r1736_9(CapturedLambdaMyObj &) = CopyValue : r1736_8 +# 1736| mu1736_10(CapturedLambdaMyObj &) = Store[obj1] : &:r1736_1, r1736_9 +# 1737| r1737_1(glval) = VariableAddress[obj2] : +# 1737| mu1737_2(CapturedLambdaMyObj) = Uninitialized[obj2] : &:r1737_1 +# 1737| r1737_3(glval) = FunctionAddress[CapturedLambdaMyObj] : +# 1737| v1737_4(void) = Call[CapturedLambdaMyObj] : func:r1737_3, this:r1737_1 +# 1737| mu1737_5(unknown) = ^CallSideEffect : ~m? +# 1737| mu1737_6(CapturedLambdaMyObj) = ^IndirectMayWriteSideEffect[-1] : &:r1737_1 +# 1739| r1739_1(glval) = VariableAddress[lambda_outer] : +# 1739| r1739_2(glval) = VariableAddress[#temp1739:24] : +# 1739| mu1739_3(decltype([...](...){...})) = Uninitialized[#temp1739:24] : &:r1739_2 +# 1739| r1739_4(glval) = FieldAddress[obj1] : r1739_2 +# 1739| r1739_5(glval) = VariableAddress[obj1] : +# 1739| r1739_6(CapturedLambdaMyObj &) = Load[obj1] : &:r1739_5, ~m? +#-----| r0_1(CapturedLambdaMyObj) = Load[?] : &:r1739_6, ~m? +#-----| mu0_2(CapturedLambdaMyObj) = Store[?] : &:r1739_4, r0_1 +# 1739| r1739_7(glval) = FieldAddress[obj2] : r1739_2 +# 1739| r1739_8(glval) = VariableAddress[obj2] : +# 1739| r1739_9(CapturedLambdaMyObj) = Load[obj2] : &:r1739_8, ~m? +# 1739| mu1739_10(CapturedLambdaMyObj) = Store[?] : &:r1739_7, r1739_9 +# 1739| r1739_11(glval) = FieldAddress[x] : r1739_2 +# 1739| r1739_12(glval) = VariableAddress[x] : +# 1739| r1739_13(int) = Load[x] : &:r1739_12, ~m? +# 1739| mu1739_14(int) = Store[?] : &:r1739_11, r1739_13 +# 1739| r1739_15(glval) = FieldAddress[y] : r1739_2 +# 1739| r1739_16(glval) = VariableAddress[y] : +# 1739| r1739_17(int &) = Load[y] : &:r1739_16, ~m? +# 1741| r1741_1(int) = Load[?] : &:r1739_17, ~m? +# 1741| mu1741_2(int) = Store[?] : &:r1739_15, r1741_1 +# 1739| r1739_18(glval) = FieldAddress[z] : r1739_2 +# 1739| r1739_19(glval) = VariableAddress[z] : +# 1739| r1739_20(int &&) = Load[z] : &:r1739_19, ~m? +# 1741| r1741_3(int) = Load[?] : &:r1739_20, ~m? +# 1741| mu1741_4(int) = Store[?] : &:r1739_18, r1741_3 +# 1739| r1739_21(decltype([...](...){...})) = Load[#temp1739:24] : &:r1739_2, ~m? +# 1739| mu1739_22(decltype([...](...){...})) = Store[lambda_outer] : &:r1739_1, r1739_21 +# 1742| v1742_1(void) = NoOp : +# 1734| v1734_14(void) = ReturnIndirection[y] : &:r1734_8, ~m? +# 1734| v1734_15(void) = ReturnIndirection[z] : &:r1734_12, ~m? +# 1734| v1734_16(void) = ReturnVoid : +# 1734| v1734_17(void) = AliasedUse : ~m? +# 1734| v1734_18(void) = ExitFunction : + +# 1739| void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1739, col. 25)::operator()() const +# 1739| Block 0 +# 1739| v1739_1(void) = EnterFunction : +# 1739| mu1739_2(unknown) = AliasedDefinition : +# 1739| mu1739_3(unknown) = InitializeNonLocal : +# 1739| r1739_4(glval) = VariableAddress[#this] : +# 1739| mu1739_5(glval) = InitializeParameter[#this] : &:r1739_4 +# 1739| r1739_6(glval) = Load[#this] : &:r1739_4, ~m? +# 1739| mu1739_7(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1739_6 +# 1740| r1740_1(glval) = VariableAddress[lambda_inner] : +# 1740| r1740_2(glval) = VariableAddress[#temp1740:28] : +# 1740| mu1740_3(decltype([...](...){...})) = Uninitialized[#temp1740:28] : &:r1740_2 +# 1740| r1740_4(glval) = FieldAddress[obj1] : r1740_2 +# 1740| r1740_5(glval) = VariableAddress[#this] : +# 1740| r1740_6(lambda [] type at line 1740, col. 29 *) = Load[#this] : &:r1740_5, ~m? +# 1740| r1740_7(glval) = FieldAddress[obj1] : r1740_6 +# 1740| r1740_8(CapturedLambdaMyObj) = Load[?] : &:r1740_7, ~m? +# 1740| mu1740_9(CapturedLambdaMyObj) = Store[?] : &:r1740_4, r1740_8 +# 1740| r1740_10(glval) = FieldAddress[obj2] : r1740_2 +# 1740| r1740_11(glval) = VariableAddress[#this] : +# 1740| r1740_12(lambda [] type at line 1740, col. 29 *) = Load[#this] : &:r1740_11, ~m? +# 1740| r1740_13(glval) = FieldAddress[obj2] : r1740_12 +# 1740| r1740_14(CapturedLambdaMyObj) = Load[?] : &:r1740_13, ~m? +# 1740| mu1740_15(CapturedLambdaMyObj) = Store[?] : &:r1740_10, r1740_14 +# 1740| r1740_16(glval) = FieldAddress[x] : r1740_2 +# 1740| r1740_17(glval) = VariableAddress[#this] : +# 1740| r1740_18(lambda [] type at line 1739, col. 25 *) = Load[#this] : &:r1740_17, ~m? +# 1740| r1740_19(glval) = FieldAddress[x] : r1740_18 +# 1740| r1740_20(int) = Load[?] : &:r1740_19, ~m? +# 1740| mu1740_21(int) = Store[?] : &:r1740_16, r1740_20 +# 1740| r1740_22(glval) = FieldAddress[y] : r1740_2 +# 1740| r1740_23(glval) = VariableAddress[#this] : +# 1740| r1740_24(lambda [] type at line 1739, col. 25 *) = Load[#this] : &:r1740_23, ~m? +# 1740| r1740_25(glval) = FieldAddress[y] : r1740_24 +# 1740| r1740_26(int) = Load[?] : &:r1740_25, ~m? +# 1740| mu1740_27(int) = Store[?] : &:r1740_22, r1740_26 +# 1740| r1740_28(glval) = FieldAddress[z] : r1740_2 +# 1740| r1740_29(glval) = VariableAddress[#this] : +# 1740| r1740_30(lambda [] type at line 1739, col. 25 *) = Load[#this] : &:r1740_29, ~m? +# 1740| r1740_31(glval) = FieldAddress[z] : r1740_30 +# 1740| r1740_32(int) = Load[?] : &:r1740_31, ~m? +# 1740| mu1740_33(int) = Store[?] : &:r1740_28, r1740_32 +# 1740| r1740_34(decltype([...](...){...})) = Load[#temp1740:28] : &:r1740_2, ~m? +# 1740| mu1740_35(decltype([...](...){...})) = Store[lambda_inner] : &:r1740_1, r1740_34 +# 1741| v1741_1(void) = NoOp : +# 1739| v1739_8(void) = ReturnIndirection[#this] : &:r1739_6, ~m? +# 1739| v1739_9(void) = ReturnVoid : +# 1739| v1739_10(void) = AliasedUse : ~m? +# 1739| v1739_11(void) = ExitFunction : + +# 1740| void (void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1739, col. 25)::operator()() const)::(lambda [] type at line 1740, col. 29)::operator()() const +# 1740| Block 0 +# 1740| v1740_1(void) = EnterFunction : +# 1740| mu1740_2(unknown) = AliasedDefinition : +# 1740| mu1740_3(unknown) = InitializeNonLocal : +# 1740| r1740_4(glval) = VariableAddress[#this] : +# 1740| mu1740_5(glval) = InitializeParameter[#this] : &:r1740_4 +# 1740| r1740_6(glval) = Load[#this] : &:r1740_4, ~m? +# 1740| mu1740_7(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1740_6 +# 1740| v1740_8(void) = NoOp : +# 1740| v1740_9(void) = NoOp : +# 1740| v1740_10(void) = ReturnIndirection[#this] : &:r1740_6, ~m? +# 1740| v1740_11(void) = ReturnVoid : +# 1740| v1740_12(void) = AliasedUse : ~m? +# 1740| v1740_13(void) = ExitFunction : + +# 1744| int goto_on_same_line() +# 1744| Block 0 +# 1744| v1744_1(void) = EnterFunction : +# 1744| mu1744_2(unknown) = AliasedDefinition : +# 1744| mu1744_3(unknown) = InitializeNonLocal : +# 1745| r1745_1(glval) = VariableAddress[x] : +# 1745| r1745_2(int) = Constant[42] : +# 1745| mu1745_3(int) = Store[x] : &:r1745_1, r1745_2 +# 1746| v1746_1(void) = NoOp : +# 1746| v1746_2(void) = NoOp : +# 1747| r1747_1(glval) = VariableAddress[#return] : +# 1747| r1747_2(glval) = VariableAddress[x] : +# 1747| r1747_3(int) = Load[x] : &:r1747_2, ~m? +# 1747| mu1747_4(int) = Store[#return] : &:r1747_1, r1747_3 +# 1744| r1744_4(glval) = VariableAddress[#return] : +# 1744| v1744_5(void) = ReturnValue : &:r1744_4, ~m? +# 1744| v1744_6(void) = AliasedUse : ~m? +# 1744| v1744_7(void) = ExitFunction : + +# 1752| void TrivialLambdaClass::m() const +# 1752| Block 0 +# 1752| v1752_1(void) = EnterFunction : +# 1752| mu1752_2(unknown) = AliasedDefinition : +# 1752| mu1752_3(unknown) = InitializeNonLocal : +# 1752| r1752_4(glval) = VariableAddress[#this] : +# 1752| mu1752_5(glval) = InitializeParameter[#this] : &:r1752_4 +# 1752| r1752_6(glval) = Load[#this] : &:r1752_4, ~m? +# 1752| mu1752_7(TrivialLambdaClass) = InitializeIndirection[#this] : &:r1752_6 +# 1753| r1753_1(glval) = VariableAddress[l_m_outer] : +# 1753| r1753_2(glval) = VariableAddress[#temp1753:25] : +# 1753| mu1753_3(decltype([...](...){...})) = Uninitialized[#temp1753:25] : &:r1753_2 +# 1753| r1753_4(glval) = FieldAddress[(captured this)] : r1753_2 +# 1753| r1753_5(glval) = VariableAddress[#this] : +# 1753| r1753_6(TrivialLambdaClass *) = Load[#this] : &:r1753_5, ~m? +# 1753| r1753_7(TrivialLambdaClass) = Load[?] : &:r1753_6, ~m? +# 1753| mu1753_8(TrivialLambdaClass) = Store[?] : &:r1753_4, r1753_7 +# 1753| r1753_9(decltype([...](...){...})) = Load[#temp1753:25] : &:r1753_2, ~m? +# 1753| mu1753_10(decltype([...](...){...})) = Store[l_m_outer] : &:r1753_1, r1753_9 +# 1760| v1760_1(void) = NoOp : +# 1752| v1752_8(void) = ReturnIndirection[#this] : &:r1752_6, ~m? +# 1752| v1752_9(void) = ReturnVoid : +# 1752| v1752_10(void) = AliasedUse : ~m? +# 1752| v1752_11(void) = ExitFunction : + +# 1753| void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1753, col. 26)::operator()() const +# 1753| Block 0 +# 1753| v1753_1(void) = EnterFunction : +# 1753| mu1753_2(unknown) = AliasedDefinition : +# 1753| mu1753_3(unknown) = InitializeNonLocal : +# 1753| r1753_4(glval) = VariableAddress[#this] : +# 1753| mu1753_5(glval) = InitializeParameter[#this] : &:r1753_4 +# 1753| r1753_6(glval) = Load[#this] : &:r1753_4, ~m? +# 1753| mu1753_7(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1753_6 +# 1754| r1754_1(glval) = VariableAddress[#this] : +# 1754| r1754_2(lambda [] type at line 1753, col. 26 *) = Load[#this] : &:r1754_1, ~m? +# 1754| r1754_3(glval) = FieldAddress[(captured this)] : r1754_2 +# 1754| r1754_4(TrivialLambdaClass *) = CopyValue : r1754_3 +# 1754| r1754_5(glval) = FunctionAddress[m] : +# 1754| v1754_6(void) = Call[m] : func:r1754_5, this:r1754_4 +# 1754| mu1754_7(unknown) = ^CallSideEffect : ~m? +# 1754| v1754_8(void) = ^IndirectReadSideEffect[-1] : &:r1754_4, ~m? +# 1756| r1756_1(glval) = VariableAddress[l_m_inner] : +# 1756| r1756_2(glval) = VariableAddress[#temp1756:29] : +# 1756| mu1756_3(decltype([...](...){...})) = Uninitialized[#temp1756:29] : &:r1756_2 +# 1756| r1756_4(glval) = FieldAddress[(captured this)] : r1756_2 +# 1756| r1756_5(glval) = VariableAddress[#this] : +# 1756| r1756_6(lambda [] type at line 1756, col. 30 *) = Load[#this] : &:r1756_5, ~m? +# 1756| r1756_7(glval) = FieldAddress[(captured this)] : r1756_6 +# 1756| r1756_8(TrivialLambdaClass) = Load[?] : &:r1756_7, ~m? +# 1756| mu1756_9(TrivialLambdaClass) = Store[?] : &:r1756_4, r1756_8 +# 1756| r1756_10(decltype([...](...){...})) = Load[#temp1756:29] : &:r1756_2, ~m? +# 1756| mu1756_11(decltype([...](...){...})) = Store[l_m_inner] : &:r1756_1, r1756_10 +# 1759| v1759_1(void) = NoOp : +# 1753| v1753_8(void) = ReturnIndirection[#this] : &:r1753_6, ~m? +# 1753| v1753_9(void) = ReturnVoid : +# 1753| v1753_10(void) = AliasedUse : ~m? +# 1753| v1753_11(void) = ExitFunction : + +# 1756| void (void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1753, col. 26)::operator()() const)::(lambda [] type at line 1756, col. 30)::operator()() const +# 1756| Block 0 +# 1756| v1756_1(void) = EnterFunction : +# 1756| mu1756_2(unknown) = AliasedDefinition : +# 1756| mu1756_3(unknown) = InitializeNonLocal : +# 1756| r1756_4(glval) = VariableAddress[#this] : +# 1756| mu1756_5(glval) = InitializeParameter[#this] : &:r1756_4 +# 1756| r1756_6(glval) = Load[#this] : &:r1756_4, ~m? +# 1756| mu1756_7(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1756_6 +# 1757| r1757_1(glval) = VariableAddress[#this] : +# 1757| r1757_2(lambda [] type at line 1756, col. 30 *) = Load[#this] : &:r1757_1, ~m? +# 1757| r1757_3(glval) = FieldAddress[(captured this)] : r1757_2 +# 1757| r1757_4(TrivialLambdaClass *) = CopyValue : r1757_3 +# 1757| r1757_5(glval) = FunctionAddress[m] : +# 1757| v1757_6(void) = Call[m] : func:r1757_5, this:r1757_4 +# 1757| mu1757_7(unknown) = ^CallSideEffect : ~m? +# 1757| v1757_8(void) = ^IndirectReadSideEffect[-1] : &:r1757_4, ~m? +# 1758| v1758_1(void) = NoOp : +# 1756| v1756_8(void) = ReturnIndirection[#this] : &:r1756_6, ~m? +# 1756| v1756_9(void) = ReturnVoid : +# 1756| v1756_10(void) = AliasedUse : ~m? +# 1756| v1756_11(void) = ExitFunction : + +# 1763| void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) +# 1763| Block 0 +# 1763| v1763_1(void) = EnterFunction : +# 1763| mu1763_2(unknown) = AliasedDefinition : +# 1763| mu1763_3(unknown) = InitializeNonLocal : +# 1763| r1763_4(glval) = VariableAddress[p1] : +# 1763| mu1763_5(TrivialLambdaClass) = InitializeParameter[p1] : &:r1763_4 +# 1763| r1763_6(glval) = VariableAddress[p2] : +# 1763| mu1763_7(TrivialLambdaClass &) = InitializeParameter[p2] : &:r1763_6 +# 1763| r1763_8(TrivialLambdaClass &) = Load[p2] : &:r1763_6, ~m? +# 1763| mu1763_9(unknown) = InitializeIndirection[p2] : &:r1763_8 +# 1763| r1763_10(glval) = VariableAddress[p3] : +# 1763| mu1763_11(TrivialLambdaClass &&) = InitializeParameter[p3] : &:r1763_10 +# 1763| r1763_12(TrivialLambdaClass &&) = Load[p3] : &:r1763_10, ~m? +# 1763| mu1763_13(unknown) = InitializeIndirection[p3] : &:r1763_12 +# 1764| r1764_1(glval) = VariableAddress[l1] : +# 1764| mu1764_2(TrivialLambdaClass) = Uninitialized[l1] : &:r1764_1 +# 1765| r1765_1(glval) = VariableAddress[l2] : +# 1765| r1765_2(glval) = VariableAddress[#temp1765:36] : +# 1765| r1765_3(TrivialLambdaClass) = Constant[0] : +# 1765| mu1765_4(TrivialLambdaClass) = Store[#temp1765:36] : &:r1765_2, r1765_3 +# 1765| r1765_5(glval) = Convert : r1765_2 +# 1765| r1765_6(TrivialLambdaClass &) = CopyValue : r1765_5 +# 1765| mu1765_7(TrivialLambdaClass &) = Store[l2] : &:r1765_1, r1765_6 +# 1767| r1767_1(glval) = VariableAddress[l_outer1] : +# 1767| r1767_2(glval) = VariableAddress[#temp1767:20] : +# 1767| mu1767_3(decltype([...](...){...})) = Uninitialized[#temp1767:20] : &:r1767_2 +# 1767| r1767_4(glval) = FieldAddress[p1] : r1767_2 +# 1767| r1767_5(glval) = VariableAddress[p1] : +# 1767| r1767_6(TrivialLambdaClass) = Load[p1] : &:r1767_5, ~m? +# 1767| mu1767_7(TrivialLambdaClass) = Store[?] : &:r1767_4, r1767_6 +# 1767| r1767_8(glval) = FieldAddress[p2] : r1767_2 +# 1767| r1767_9(glval) = VariableAddress[p2] : +# 1767| r1767_10(TrivialLambdaClass &) = Load[p2] : &:r1767_9, ~m? +#-----| r0_1(TrivialLambdaClass) = Load[?] : &:r1767_10, ~m? +#-----| mu0_2(TrivialLambdaClass) = Store[?] : &:r1767_8, r0_1 +# 1767| r1767_11(glval) = FieldAddress[p3] : r1767_2 +# 1767| r1767_12(glval) = VariableAddress[p3] : +# 1767| r1767_13(TrivialLambdaClass &&) = Load[p3] : &:r1767_12, ~m? +#-----| r0_3(TrivialLambdaClass) = Load[?] : &:r1767_13, ~m? +#-----| mu0_4(TrivialLambdaClass) = Store[?] : &:r1767_11, r0_3 +# 1767| r1767_14(glval) = FieldAddress[l1] : r1767_2 +# 1767| r1767_15(glval) = VariableAddress[l1] : +# 1767| r1767_16(TrivialLambdaClass) = Load[l1] : &:r1767_15, ~m? +# 1767| mu1767_17(TrivialLambdaClass) = Store[?] : &:r1767_14, r1767_16 +# 1767| r1767_18(glval) = FieldAddress[l2] : r1767_2 +# 1767| r1767_19(glval) = VariableAddress[l2] : +# 1767| r1767_20(TrivialLambdaClass &) = Load[l2] : &:r1767_19, ~m? +#-----| r0_5(TrivialLambdaClass) = Load[?] : &:r1767_20, ~m? +#-----| mu0_6(TrivialLambdaClass) = Store[?] : &:r1767_18, r0_5 +# 1767| r1767_21(decltype([...](...){...})) = Load[#temp1767:20] : &:r1767_2, ~m? +# 1767| mu1767_22(decltype([...](...){...})) = Store[l_outer1] : &:r1767_1, r1767_21 +# 1770| v1770_1(void) = NoOp : +# 1763| v1763_14(void) = ReturnIndirection[p2] : &:r1763_8, ~m? +# 1763| v1763_15(void) = ReturnIndirection[p3] : &:r1763_12, ~m? +# 1763| v1763_16(void) = ReturnVoid : +# 1763| v1763_17(void) = AliasedUse : ~m? +# 1763| v1763_18(void) = ExitFunction : + +# 1767| void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1767, col. 21)::operator()() const +# 1767| Block 0 +# 1767| v1767_1(void) = EnterFunction : +# 1767| mu1767_2(unknown) = AliasedDefinition : +# 1767| mu1767_3(unknown) = InitializeNonLocal : +# 1767| r1767_4(glval) = VariableAddress[#this] : +# 1767| mu1767_5(glval) = InitializeParameter[#this] : &:r1767_4 +# 1767| r1767_6(glval) = Load[#this] : &:r1767_4, ~m? +# 1767| mu1767_7(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1767_6 +# 1768| r1768_1(glval) = VariableAddress[l_inner1] : +# 1768| r1768_2(glval) = VariableAddress[#temp1768:24] : +# 1768| mu1768_3(decltype([...](...){...})) = Uninitialized[#temp1768:24] : &:r1768_2 +# 1768| r1768_4(glval) = FieldAddress[p1] : r1768_2 +# 1768| r1768_5(glval) = VariableAddress[#this] : +# 1768| r1768_6(lambda [] type at line 1768, col. 25 *) = Load[#this] : &:r1768_5, ~m? +# 1768| r1768_7(glval) = FieldAddress[p1] : r1768_6 +# 1768| r1768_8(TrivialLambdaClass) = Load[?] : &:r1768_7, ~m? +# 1768| mu1768_9(TrivialLambdaClass) = Store[?] : &:r1768_4, r1768_8 +# 1768| r1768_10(decltype([...](...){...})) = Load[#temp1768:24] : &:r1768_2, ~m? +# 1768| mu1768_11(decltype([...](...){...})) = Store[l_inner1] : &:r1768_1, r1768_10 +# 1769| v1769_1(void) = NoOp : +# 1767| v1767_8(void) = ReturnIndirection[#this] : &:r1767_6, ~m? +# 1767| v1767_9(void) = ReturnVoid : +# 1767| v1767_10(void) = AliasedUse : ~m? +# 1767| v1767_11(void) = ExitFunction : + +# 1768| void (void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1767, col. 21)::operator()() const)::(lambda [] type at line 1768, col. 25)::operator()() const +# 1768| Block 0 +# 1768| v1768_1(void) = EnterFunction : +# 1768| mu1768_2(unknown) = AliasedDefinition : +# 1768| mu1768_3(unknown) = InitializeNonLocal : +# 1768| r1768_4(glval) = VariableAddress[#this] : +# 1768| mu1768_5(glval) = InitializeParameter[#this] : &:r1768_4 +# 1768| r1768_6(glval) = Load[#this] : &:r1768_4, ~m? +# 1768| mu1768_7(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1768_6 +# 1768| v1768_8(void) = NoOp : +# 1768| v1768_9(void) = ReturnIndirection[#this] : &:r1768_6, ~m? +# 1768| v1768_10(void) = ReturnVoid : +# 1768| v1768_11(void) = AliasedUse : ~m? +# 1768| v1768_12(void) = ExitFunction : + +# 1775| void CopyConstructorWithImplicitArgumentClass::CopyConstructorWithImplicitArgumentClass() +# 1775| Block 0 +# 1775| v1775_1(void) = EnterFunction : +# 1775| mu1775_2(unknown) = AliasedDefinition : +# 1775| mu1775_3(unknown) = InitializeNonLocal : +# 1775| r1775_4(glval) = VariableAddress[#this] : +# 1775| mu1775_5(glval) = InitializeParameter[#this] : &:r1775_4 +# 1775| r1775_6(glval) = Load[#this] : &:r1775_4, ~m? +# 1775| mu1775_7(CopyConstructorWithImplicitArgumentClass) = InitializeIndirection[#this] : &:r1775_6 +# 1775| v1775_8(void) = NoOp : +# 1775| v1775_9(void) = ReturnIndirection[#this] : &:r1775_6, ~m? +# 1775| v1775_10(void) = ReturnVoid : +# 1775| v1775_11(void) = AliasedUse : ~m? +# 1775| v1775_12(void) = ExitFunction : + +# 1776| void CopyConstructorWithImplicitArgumentClass::CopyConstructorWithImplicitArgumentClass(CopyConstructorWithImplicitArgumentClass const&) +# 1776| Block 0 +# 1776| v1776_1(void) = EnterFunction : +# 1776| mu1776_2(unknown) = AliasedDefinition : +# 1776| mu1776_3(unknown) = InitializeNonLocal : +# 1776| r1776_4(glval) = VariableAddress[#this] : +# 1776| mu1776_5(glval) = InitializeParameter[#this] : &:r1776_4 +# 1776| r1776_6(glval) = Load[#this] : &:r1776_4, ~m? +# 1776| mu1776_7(CopyConstructorWithImplicitArgumentClass) = InitializeIndirection[#this] : &:r1776_6 +# 1776| r1776_8(glval) = VariableAddress[c] : +# 1776| mu1776_9(CopyConstructorWithImplicitArgumentClass &) = InitializeParameter[c] : &:r1776_8 +# 1776| r1776_10(CopyConstructorWithImplicitArgumentClass &) = Load[c] : &:r1776_8, ~m? +# 1776| mu1776_11(unknown) = InitializeIndirection[c] : &:r1776_10 +# 1777| r1777_1(glval) = VariableAddress[c] : +# 1777| r1777_2(CopyConstructorWithImplicitArgumentClass &) = Load[c] : &:r1777_1, ~m? +# 1777| r1777_3(glval) = CopyValue : r1777_2 +# 1777| r1777_4(glval) = FieldAddress[x] : r1777_3 +# 1777| r1777_5(int) = Load[?] : &:r1777_4, ~m? +# 1777| r1777_6(glval) = VariableAddress[#this] : +# 1777| r1777_7(CopyConstructorWithImplicitArgumentClass *) = Load[#this] : &:r1777_6, ~m? +# 1777| r1777_8(glval) = FieldAddress[x] : r1777_7 +# 1777| mu1777_9(int) = Store[?] : &:r1777_8, r1777_5 +# 1778| v1778_1(void) = NoOp : +# 1776| v1776_12(void) = ReturnIndirection[#this] : &:r1776_6, ~m? +# 1776| v1776_13(void) = ReturnIndirection[c] : &:r1776_10, ~m? +# 1776| v1776_14(void) = ReturnVoid : +# 1776| v1776_15(void) = AliasedUse : ~m? +# 1776| v1776_16(void) = ExitFunction : + +# 1784| void CopyConstructorWithBitwiseCopyClass::CopyConstructorWithBitwiseCopyClass() +# 1784| Block 0 +# 1784| v1784_1(void) = EnterFunction : +# 1784| mu1784_2(unknown) = AliasedDefinition : +# 1784| mu1784_3(unknown) = InitializeNonLocal : +# 1784| r1784_4(glval) = VariableAddress[#this] : +# 1784| mu1784_5(glval) = InitializeParameter[#this] : &:r1784_4 +# 1784| r1784_6(glval) = Load[#this] : &:r1784_4, ~m? +# 1784| mu1784_7(CopyConstructorWithBitwiseCopyClass) = InitializeIndirection[#this] : &:r1784_6 +# 1784| v1784_8(void) = NoOp : +# 1784| v1784_9(void) = ReturnIndirection[#this] : &:r1784_6, ~m? +# 1784| v1784_10(void) = ReturnVoid : +# 1784| v1784_11(void) = AliasedUse : ~m? +# 1784| v1784_12(void) = ExitFunction : + +# 1787| void CopyConstructorTestNonVirtualClass::CopyConstructorTestNonVirtualClass(CopyConstructorTestNonVirtualClass const&) +# 1787| Block 0 +# 1787| v1787_1(void) = EnterFunction : +# 1787| mu1787_2(unknown) = AliasedDefinition : +# 1787| mu1787_3(unknown) = InitializeNonLocal : +# 1787| r1787_4(glval) = VariableAddress[#this] : +# 1787| mu1787_5(glval) = InitializeParameter[#this] : &:r1787_4 +# 1787| r1787_6(glval) = Load[#this] : &:r1787_4, ~m? +# 1787| mu1787_7(CopyConstructorTestNonVirtualClass) = InitializeIndirection[#this] : &:r1787_6 #-----| r0_1(glval) = VariableAddress[(unnamed parameter 0)] : #-----| mu0_2(CopyConstructorTestNonVirtualClass &) = InitializeParameter[(unnamed parameter 0)] : &:r0_1 #-----| r0_3(CopyConstructorTestNonVirtualClass &) = Load[(unnamed parameter 0)] : &:r0_1, ~m? #-----| mu0_4(unknown) = InitializeIndirection[(unnamed parameter 0)] : &:r0_3 -# 1785| r1785_8(glval) = ConvertToNonVirtualBase[CopyConstructorTestNonVirtualClass : CopyConstructorWithImplicitArgumentClass] : r1785_6 -# 1785| r1785_9(glval) = FunctionAddress[CopyConstructorWithImplicitArgumentClass] : -# 1785| r1785_10(glval) = VariableAddress[(unnamed parameter 0)] : -# 1785| r1785_11(CopyConstructorTestNonVirtualClass &) = Load[(unnamed parameter 0)] : &:r1785_10, ~m? -# 1785| r1785_12(glval) = CopyValue : r1785_11 -# 1785| r1785_13(glval) = ConvertToNonVirtualBase[CopyConstructorTestNonVirtualClass : CopyConstructorWithImplicitArgumentClass] : r1785_12 -# 1785| r1785_14(CopyConstructorWithImplicitArgumentClass &) = CopyValue : r1785_13 -# 1785| v1785_15(void) = Call[CopyConstructorWithImplicitArgumentClass] : func:r1785_9, this:r1785_8, 0:r1785_14 -# 1785| mu1785_16(unknown) = ^CallSideEffect : ~m? -# 1785| v1785_17(void) = ^BufferReadSideEffect[0] : &:r1785_14, ~m? -# 1785| mu1785_18(CopyConstructorWithImplicitArgumentClass) = ^IndirectMayWriteSideEffect[-1] : &:r1785_8 -# 1785| v1785_19(void) = NoOp : -# 1785| v1785_20(void) = ReturnIndirection[#this] : &:r1785_6, ~m? +# 1787| r1787_8(glval) = ConvertToNonVirtualBase[CopyConstructorTestNonVirtualClass : CopyConstructorWithImplicitArgumentClass] : r1787_6 +# 1787| r1787_9(glval) = FunctionAddress[CopyConstructorWithImplicitArgumentClass] : +# 1787| r1787_10(glval) = VariableAddress[(unnamed parameter 0)] : +# 1787| r1787_11(CopyConstructorTestNonVirtualClass &) = Load[(unnamed parameter 0)] : &:r1787_10, ~m? +# 1787| r1787_12(glval) = CopyValue : r1787_11 +# 1787| r1787_13(glval) = ConvertToNonVirtualBase[CopyConstructorTestNonVirtualClass : CopyConstructorWithImplicitArgumentClass] : r1787_12 +# 1787| r1787_14(CopyConstructorWithImplicitArgumentClass &) = CopyValue : r1787_13 +# 1787| v1787_15(void) = Call[CopyConstructorWithImplicitArgumentClass] : func:r1787_9, this:r1787_8, 0:r1787_14 +# 1787| mu1787_16(unknown) = ^CallSideEffect : ~m? +# 1787| v1787_17(void) = ^BufferReadSideEffect[0] : &:r1787_14, ~m? +# 1787| mu1787_18(CopyConstructorWithImplicitArgumentClass) = ^IndirectMayWriteSideEffect[-1] : &:r1787_8 +# 1787| v1787_19(void) = NoOp : +# 1787| v1787_20(void) = ReturnIndirection[#this] : &:r1787_6, ~m? #-----| v0_5(void) = ReturnIndirection[(unnamed parameter 0)] : &:r0_3, ~m? -# 1785| v1785_21(void) = ReturnVoid : -# 1785| v1785_22(void) = AliasedUse : ~m? -# 1785| v1785_23(void) = ExitFunction : - -# 1789| void CopyConstructorTestNonVirtualClass::CopyConstructorTestNonVirtualClass() -# 1789| Block 0 -# 1789| v1789_1(void) = EnterFunction : -# 1789| mu1789_2(unknown) = AliasedDefinition : -# 1789| mu1789_3(unknown) = InitializeNonLocal : -# 1789| r1789_4(glval) = VariableAddress[#this] : -# 1789| mu1789_5(glval) = InitializeParameter[#this] : &:r1789_4 -# 1789| r1789_6(glval) = Load[#this] : &:r1789_4, ~m? -# 1789| mu1789_7(CopyConstructorTestNonVirtualClass) = InitializeIndirection[#this] : &:r1789_6 -# 1789| r1789_8(glval) = ConvertToNonVirtualBase[CopyConstructorTestNonVirtualClass : CopyConstructorWithImplicitArgumentClass] : r1789_6 -# 1789| r1789_9(glval) = FunctionAddress[CopyConstructorWithImplicitArgumentClass] : -# 1789| v1789_10(void) = Call[CopyConstructorWithImplicitArgumentClass] : func:r1789_9, this:r1789_8 -# 1789| mu1789_11(unknown) = ^CallSideEffect : ~m? -# 1789| mu1789_12(CopyConstructorWithImplicitArgumentClass) = ^IndirectMayWriteSideEffect[-1] : &:r1789_8 -# 1789| r1789_13(glval) = ConvertToNonVirtualBase[CopyConstructorTestNonVirtualClass : CopyConstructorWithBitwiseCopyClass] : r1789_6 -# 1789| r1789_14(glval) = FunctionAddress[CopyConstructorWithBitwiseCopyClass] : -# 1789| v1789_15(void) = Call[CopyConstructorWithBitwiseCopyClass] : func:r1789_14, this:r1789_13 -# 1789| mu1789_16(unknown) = ^CallSideEffect : ~m? -# 1789| mu1789_17(CopyConstructorWithBitwiseCopyClass) = ^IndirectMayWriteSideEffect[-1] : &:r1789_13 -# 1789| v1789_18(void) = NoOp : -# 1789| v1789_19(void) = ReturnIndirection[#this] : &:r1789_6, ~m? -# 1789| v1789_20(void) = ReturnVoid : -# 1789| v1789_21(void) = AliasedUse : ~m? -# 1789| v1789_22(void) = ExitFunction : - -# 1792| void CopyConstructorTestVirtualClass::CopyConstructorTestVirtualClass(CopyConstructorTestVirtualClass const&) -# 1792| Block 0 -# 1792| v1792_1(void) = EnterFunction : -# 1792| mu1792_2(unknown) = AliasedDefinition : -# 1792| mu1792_3(unknown) = InitializeNonLocal : -# 1792| r1792_4(glval) = VariableAddress[#this] : -# 1792| mu1792_5(glval) = InitializeParameter[#this] : &:r1792_4 -# 1792| r1792_6(glval) = Load[#this] : &:r1792_4, ~m? -# 1792| mu1792_7(CopyConstructorTestVirtualClass) = InitializeIndirection[#this] : &:r1792_6 +# 1787| v1787_21(void) = ReturnVoid : +# 1787| v1787_22(void) = AliasedUse : ~m? +# 1787| v1787_23(void) = ExitFunction : + +# 1791| void CopyConstructorTestNonVirtualClass::CopyConstructorTestNonVirtualClass() +# 1791| Block 0 +# 1791| v1791_1(void) = EnterFunction : +# 1791| mu1791_2(unknown) = AliasedDefinition : +# 1791| mu1791_3(unknown) = InitializeNonLocal : +# 1791| r1791_4(glval) = VariableAddress[#this] : +# 1791| mu1791_5(glval) = InitializeParameter[#this] : &:r1791_4 +# 1791| r1791_6(glval) = Load[#this] : &:r1791_4, ~m? +# 1791| mu1791_7(CopyConstructorTestNonVirtualClass) = InitializeIndirection[#this] : &:r1791_6 +# 1791| r1791_8(glval) = ConvertToNonVirtualBase[CopyConstructorTestNonVirtualClass : CopyConstructorWithImplicitArgumentClass] : r1791_6 +# 1791| r1791_9(glval) = FunctionAddress[CopyConstructorWithImplicitArgumentClass] : +# 1791| v1791_10(void) = Call[CopyConstructorWithImplicitArgumentClass] : func:r1791_9, this:r1791_8 +# 1791| mu1791_11(unknown) = ^CallSideEffect : ~m? +# 1791| mu1791_12(CopyConstructorWithImplicitArgumentClass) = ^IndirectMayWriteSideEffect[-1] : &:r1791_8 +# 1791| r1791_13(glval) = ConvertToNonVirtualBase[CopyConstructorTestNonVirtualClass : CopyConstructorWithBitwiseCopyClass] : r1791_6 +# 1791| r1791_14(glval) = FunctionAddress[CopyConstructorWithBitwiseCopyClass] : +# 1791| v1791_15(void) = Call[CopyConstructorWithBitwiseCopyClass] : func:r1791_14, this:r1791_13 +# 1791| mu1791_16(unknown) = ^CallSideEffect : ~m? +# 1791| mu1791_17(CopyConstructorWithBitwiseCopyClass) = ^IndirectMayWriteSideEffect[-1] : &:r1791_13 +# 1791| v1791_18(void) = NoOp : +# 1791| v1791_19(void) = ReturnIndirection[#this] : &:r1791_6, ~m? +# 1791| v1791_20(void) = ReturnVoid : +# 1791| v1791_21(void) = AliasedUse : ~m? +# 1791| v1791_22(void) = ExitFunction : + +# 1794| void CopyConstructorTestVirtualClass::CopyConstructorTestVirtualClass(CopyConstructorTestVirtualClass const&) +# 1794| Block 0 +# 1794| v1794_1(void) = EnterFunction : +# 1794| mu1794_2(unknown) = AliasedDefinition : +# 1794| mu1794_3(unknown) = InitializeNonLocal : +# 1794| r1794_4(glval) = VariableAddress[#this] : +# 1794| mu1794_5(glval) = InitializeParameter[#this] : &:r1794_4 +# 1794| r1794_6(glval) = Load[#this] : &:r1794_4, ~m? +# 1794| mu1794_7(CopyConstructorTestVirtualClass) = InitializeIndirection[#this] : &:r1794_6 #-----| r0_1(glval) = VariableAddress[(unnamed parameter 0)] : #-----| mu0_2(CopyConstructorTestVirtualClass &) = InitializeParameter[(unnamed parameter 0)] : &:r0_1 #-----| r0_3(CopyConstructorTestVirtualClass &) = Load[(unnamed parameter 0)] : &:r0_1, ~m? #-----| mu0_4(unknown) = InitializeIndirection[(unnamed parameter 0)] : &:r0_3 -# 1792| r1792_8(glval) = ConvertToNonVirtualBase[CopyConstructorTestVirtualClass : CopyConstructorWithImplicitArgumentClass] : r1792_6 -# 1792| r1792_9(glval) = FunctionAddress[CopyConstructorWithImplicitArgumentClass] : -# 1792| r1792_10(glval) = VariableAddress[(unnamed parameter 0)] : -# 1792| r1792_11(CopyConstructorTestVirtualClass &) = Load[(unnamed parameter 0)] : &:r1792_10, ~m? -# 1792| r1792_12(glval) = CopyValue : r1792_11 -# 1792| r1792_13(glval) = ConvertToVirtualBase[CopyConstructorTestVirtualClass : CopyConstructorWithImplicitArgumentClass] : r1792_12 -# 1792| r1792_14(CopyConstructorWithImplicitArgumentClass &) = CopyValue : r1792_13 -# 1792| v1792_15(void) = Call[CopyConstructorWithImplicitArgumentClass] : func:r1792_9, this:r1792_8, 0:r1792_14 -# 1792| mu1792_16(unknown) = ^CallSideEffect : ~m? -# 1792| v1792_17(void) = ^BufferReadSideEffect[0] : &:r1792_14, ~m? -# 1792| mu1792_18(CopyConstructorWithImplicitArgumentClass) = ^IndirectMayWriteSideEffect[-1] : &:r1792_8 -# 1792| v1792_19(void) = NoOp : -# 1792| v1792_20(void) = ReturnIndirection[#this] : &:r1792_6, ~m? +# 1794| r1794_8(glval) = ConvertToNonVirtualBase[CopyConstructorTestVirtualClass : CopyConstructorWithImplicitArgumentClass] : r1794_6 +# 1794| r1794_9(glval) = FunctionAddress[CopyConstructorWithImplicitArgumentClass] : +# 1794| r1794_10(glval) = VariableAddress[(unnamed parameter 0)] : +# 1794| r1794_11(CopyConstructorTestVirtualClass &) = Load[(unnamed parameter 0)] : &:r1794_10, ~m? +# 1794| r1794_12(glval) = CopyValue : r1794_11 +# 1794| r1794_13(glval) = ConvertToVirtualBase[CopyConstructorTestVirtualClass : CopyConstructorWithImplicitArgumentClass] : r1794_12 +# 1794| r1794_14(CopyConstructorWithImplicitArgumentClass &) = CopyValue : r1794_13 +# 1794| v1794_15(void) = Call[CopyConstructorWithImplicitArgumentClass] : func:r1794_9, this:r1794_8, 0:r1794_14 +# 1794| mu1794_16(unknown) = ^CallSideEffect : ~m? +# 1794| v1794_17(void) = ^BufferReadSideEffect[0] : &:r1794_14, ~m? +# 1794| mu1794_18(CopyConstructorWithImplicitArgumentClass) = ^IndirectMayWriteSideEffect[-1] : &:r1794_8 +# 1794| v1794_19(void) = NoOp : +# 1794| v1794_20(void) = ReturnIndirection[#this] : &:r1794_6, ~m? #-----| v0_5(void) = ReturnIndirection[(unnamed parameter 0)] : &:r0_3, ~m? -# 1792| v1792_21(void) = ReturnVoid : -# 1792| v1792_22(void) = AliasedUse : ~m? -# 1792| v1792_23(void) = ExitFunction : - -# 1796| void CopyConstructorTestVirtualClass::CopyConstructorTestVirtualClass() -# 1796| Block 0 -# 1796| v1796_1(void) = EnterFunction : -# 1796| mu1796_2(unknown) = AliasedDefinition : -# 1796| mu1796_3(unknown) = InitializeNonLocal : -# 1796| r1796_4(glval) = VariableAddress[#this] : -# 1796| mu1796_5(glval) = InitializeParameter[#this] : &:r1796_4 -# 1796| r1796_6(glval) = Load[#this] : &:r1796_4, ~m? -# 1796| mu1796_7(CopyConstructorTestVirtualClass) = InitializeIndirection[#this] : &:r1796_6 -# 1796| r1796_8(glval) = ConvertToNonVirtualBase[CopyConstructorTestVirtualClass : CopyConstructorWithImplicitArgumentClass] : r1796_6 -# 1796| r1796_9(glval) = FunctionAddress[CopyConstructorWithImplicitArgumentClass] : -# 1796| v1796_10(void) = Call[CopyConstructorWithImplicitArgumentClass] : func:r1796_9, this:r1796_8 -# 1796| mu1796_11(unknown) = ^CallSideEffect : ~m? -# 1796| mu1796_12(CopyConstructorWithImplicitArgumentClass) = ^IndirectMayWriteSideEffect[-1] : &:r1796_8 -# 1796| r1796_13(glval) = ConvertToNonVirtualBase[CopyConstructorTestVirtualClass : CopyConstructorWithBitwiseCopyClass] : r1796_6 -# 1796| r1796_14(glval) = FunctionAddress[CopyConstructorWithBitwiseCopyClass] : -# 1796| v1796_15(void) = Call[CopyConstructorWithBitwiseCopyClass] : func:r1796_14, this:r1796_13 -# 1796| mu1796_16(unknown) = ^CallSideEffect : ~m? -# 1796| mu1796_17(CopyConstructorWithBitwiseCopyClass) = ^IndirectMayWriteSideEffect[-1] : &:r1796_13 -# 1796| v1796_18(void) = NoOp : -# 1796| v1796_19(void) = ReturnIndirection[#this] : &:r1796_6, ~m? -# 1796| v1796_20(void) = ReturnVoid : -# 1796| v1796_21(void) = AliasedUse : ~m? -# 1796| v1796_22(void) = ExitFunction : - -# 1799| int implicit_copy_constructor_test(CopyConstructorTestNonVirtualClass const&, CopyConstructorTestVirtualClass const&) -# 1799| Block 0 -# 1799| v1799_1(void) = EnterFunction : -# 1799| mu1799_2(unknown) = AliasedDefinition : -# 1799| mu1799_3(unknown) = InitializeNonLocal : -# 1800| r1800_1(glval) = VariableAddress[x] : -# 1800| mu1800_2(CopyConstructorTestNonVirtualClass &) = InitializeParameter[x] : &:r1800_1 -# 1800| r1800_3(CopyConstructorTestNonVirtualClass &) = Load[x] : &:r1800_1, ~m? -# 1800| mu1800_4(unknown) = InitializeIndirection[x] : &:r1800_3 -# 1801| r1801_1(glval) = VariableAddress[y] : -# 1801| mu1801_2(CopyConstructorTestVirtualClass &) = InitializeParameter[y] : &:r1801_1 -# 1801| r1801_3(CopyConstructorTestVirtualClass &) = Load[y] : &:r1801_1, ~m? -# 1801| mu1801_4(unknown) = InitializeIndirection[y] : &:r1801_3 -# 1802| r1802_1(glval) = VariableAddress[cx] : -# 1802| mu1802_2(CopyConstructorTestNonVirtualClass) = Uninitialized[cx] : &:r1802_1 -# 1802| r1802_3(glval) = FunctionAddress[CopyConstructorTestNonVirtualClass] : -# 1802| r1802_4(glval) = VariableAddress[x] : -# 1802| r1802_5(CopyConstructorTestNonVirtualClass &) = Load[x] : &:r1802_4, ~m? -# 1802| r1802_6(glval) = CopyValue : r1802_5 -# 1802| r1802_7(CopyConstructorTestNonVirtualClass &) = CopyValue : r1802_6 -# 1802| v1802_8(void) = Call[CopyConstructorTestNonVirtualClass] : func:r1802_3, this:r1802_1, 0:r1802_7 -# 1802| mu1802_9(unknown) = ^CallSideEffect : ~m? -# 1802| v1802_10(void) = ^BufferReadSideEffect[0] : &:r1802_7, ~m? -# 1802| mu1802_11(CopyConstructorTestNonVirtualClass) = ^IndirectMayWriteSideEffect[-1] : &:r1802_1 -# 1803| r1803_1(glval) = VariableAddress[cy] : -# 1803| mu1803_2(CopyConstructorTestVirtualClass) = Uninitialized[cy] : &:r1803_1 -# 1803| r1803_3(glval) = FunctionAddress[CopyConstructorTestVirtualClass] : -# 1803| r1803_4(glval) = VariableAddress[y] : -# 1803| r1803_5(CopyConstructorTestVirtualClass &) = Load[y] : &:r1803_4, ~m? -# 1803| r1803_6(glval) = CopyValue : r1803_5 -# 1803| r1803_7(CopyConstructorTestVirtualClass &) = CopyValue : r1803_6 -# 1803| v1803_8(void) = Call[CopyConstructorTestVirtualClass] : func:r1803_3, this:r1803_1, 0:r1803_7 -# 1803| mu1803_9(unknown) = ^CallSideEffect : ~m? -# 1803| v1803_10(void) = ^BufferReadSideEffect[0] : &:r1803_7, ~m? -# 1803| mu1803_11(CopyConstructorTestVirtualClass) = ^IndirectMayWriteSideEffect[-1] : &:r1803_1 -# 1804| r1804_1(glval) = VariableAddress[#return] : -# 1804| mu1804_2(int) = Uninitialized[#return] : &:r1804_1 -# 1800| v1800_5(void) = ReturnIndirection[x] : &:r1800_3, ~m? -# 1801| v1801_5(void) = ReturnIndirection[y] : &:r1801_3, ~m? -# 1799| r1799_4(glval) = VariableAddress[#return] : -# 1799| v1799_5(void) = ReturnValue : &:r1799_4, ~m? -# 1799| v1799_6(void) = AliasedUse : ~m? -# 1799| v1799_7(void) = ExitFunction : - -# 1806| void if_initialization(int) -# 1806| Block 0 -# 1806| v1806_1(void) = EnterFunction : -# 1806| mu1806_2(unknown) = AliasedDefinition : -# 1806| mu1806_3(unknown) = InitializeNonLocal : -# 1806| r1806_4(glval) = VariableAddress[x] : -# 1806| mu1806_5(int) = InitializeParameter[x] : &:r1806_4 -# 1807| r1807_1(glval) = VariableAddress[y] : -# 1807| r1807_2(glval) = VariableAddress[x] : -# 1807| r1807_3(int) = Load[x] : &:r1807_2, ~m? -# 1807| mu1807_4(int) = Store[y] : &:r1807_1, r1807_3 -# 1807| r1807_5(glval) = VariableAddress[x] : -# 1807| r1807_6(int) = Load[x] : &:r1807_5, ~m? -# 1807| r1807_7(int) = Constant[1] : -# 1807| r1807_8(int) = Add : r1807_6, r1807_7 -# 1807| r1807_9(int) = Constant[0] : -# 1807| r1807_10(bool) = CompareNE : r1807_8, r1807_9 -# 1807| v1807_11(void) = ConditionalBranch : r1807_10 +# 1794| v1794_21(void) = ReturnVoid : +# 1794| v1794_22(void) = AliasedUse : ~m? +# 1794| v1794_23(void) = ExitFunction : + +# 1798| void CopyConstructorTestVirtualClass::CopyConstructorTestVirtualClass() +# 1798| Block 0 +# 1798| v1798_1(void) = EnterFunction : +# 1798| mu1798_2(unknown) = AliasedDefinition : +# 1798| mu1798_3(unknown) = InitializeNonLocal : +# 1798| r1798_4(glval) = VariableAddress[#this] : +# 1798| mu1798_5(glval) = InitializeParameter[#this] : &:r1798_4 +# 1798| r1798_6(glval) = Load[#this] : &:r1798_4, ~m? +# 1798| mu1798_7(CopyConstructorTestVirtualClass) = InitializeIndirection[#this] : &:r1798_6 +# 1798| r1798_8(glval) = ConvertToNonVirtualBase[CopyConstructorTestVirtualClass : CopyConstructorWithImplicitArgumentClass] : r1798_6 +# 1798| r1798_9(glval) = FunctionAddress[CopyConstructorWithImplicitArgumentClass] : +# 1798| v1798_10(void) = Call[CopyConstructorWithImplicitArgumentClass] : func:r1798_9, this:r1798_8 +# 1798| mu1798_11(unknown) = ^CallSideEffect : ~m? +# 1798| mu1798_12(CopyConstructorWithImplicitArgumentClass) = ^IndirectMayWriteSideEffect[-1] : &:r1798_8 +# 1798| r1798_13(glval) = ConvertToNonVirtualBase[CopyConstructorTestVirtualClass : CopyConstructorWithBitwiseCopyClass] : r1798_6 +# 1798| r1798_14(glval) = FunctionAddress[CopyConstructorWithBitwiseCopyClass] : +# 1798| v1798_15(void) = Call[CopyConstructorWithBitwiseCopyClass] : func:r1798_14, this:r1798_13 +# 1798| mu1798_16(unknown) = ^CallSideEffect : ~m? +# 1798| mu1798_17(CopyConstructorWithBitwiseCopyClass) = ^IndirectMayWriteSideEffect[-1] : &:r1798_13 +# 1798| v1798_18(void) = NoOp : +# 1798| v1798_19(void) = ReturnIndirection[#this] : &:r1798_6, ~m? +# 1798| v1798_20(void) = ReturnVoid : +# 1798| v1798_21(void) = AliasedUse : ~m? +# 1798| v1798_22(void) = ExitFunction : + +# 1801| int implicit_copy_constructor_test(CopyConstructorTestNonVirtualClass const&, CopyConstructorTestVirtualClass const&) +# 1801| Block 0 +# 1801| v1801_1(void) = EnterFunction : +# 1801| mu1801_2(unknown) = AliasedDefinition : +# 1801| mu1801_3(unknown) = InitializeNonLocal : +# 1802| r1802_1(glval) = VariableAddress[x] : +# 1802| mu1802_2(CopyConstructorTestNonVirtualClass &) = InitializeParameter[x] : &:r1802_1 +# 1802| r1802_3(CopyConstructorTestNonVirtualClass &) = Load[x] : &:r1802_1, ~m? +# 1802| mu1802_4(unknown) = InitializeIndirection[x] : &:r1802_3 +# 1803| r1803_1(glval) = VariableAddress[y] : +# 1803| mu1803_2(CopyConstructorTestVirtualClass &) = InitializeParameter[y] : &:r1803_1 +# 1803| r1803_3(CopyConstructorTestVirtualClass &) = Load[y] : &:r1803_1, ~m? +# 1803| mu1803_4(unknown) = InitializeIndirection[y] : &:r1803_3 +# 1804| r1804_1(glval) = VariableAddress[cx] : +# 1804| mu1804_2(CopyConstructorTestNonVirtualClass) = Uninitialized[cx] : &:r1804_1 +# 1804| r1804_3(glval) = FunctionAddress[CopyConstructorTestNonVirtualClass] : +# 1804| r1804_4(glval) = VariableAddress[x] : +# 1804| r1804_5(CopyConstructorTestNonVirtualClass &) = Load[x] : &:r1804_4, ~m? +# 1804| r1804_6(glval) = CopyValue : r1804_5 +# 1804| r1804_7(CopyConstructorTestNonVirtualClass &) = CopyValue : r1804_6 +# 1804| v1804_8(void) = Call[CopyConstructorTestNonVirtualClass] : func:r1804_3, this:r1804_1, 0:r1804_7 +# 1804| mu1804_9(unknown) = ^CallSideEffect : ~m? +# 1804| v1804_10(void) = ^BufferReadSideEffect[0] : &:r1804_7, ~m? +# 1804| mu1804_11(CopyConstructorTestNonVirtualClass) = ^IndirectMayWriteSideEffect[-1] : &:r1804_1 +# 1805| r1805_1(glval) = VariableAddress[cy] : +# 1805| mu1805_2(CopyConstructorTestVirtualClass) = Uninitialized[cy] : &:r1805_1 +# 1805| r1805_3(glval) = FunctionAddress[CopyConstructorTestVirtualClass] : +# 1805| r1805_4(glval) = VariableAddress[y] : +# 1805| r1805_5(CopyConstructorTestVirtualClass &) = Load[y] : &:r1805_4, ~m? +# 1805| r1805_6(glval) = CopyValue : r1805_5 +# 1805| r1805_7(CopyConstructorTestVirtualClass &) = CopyValue : r1805_6 +# 1805| v1805_8(void) = Call[CopyConstructorTestVirtualClass] : func:r1805_3, this:r1805_1, 0:r1805_7 +# 1805| mu1805_9(unknown) = ^CallSideEffect : ~m? +# 1805| v1805_10(void) = ^BufferReadSideEffect[0] : &:r1805_7, ~m? +# 1805| mu1805_11(CopyConstructorTestVirtualClass) = ^IndirectMayWriteSideEffect[-1] : &:r1805_1 +# 1806| r1806_1(glval) = VariableAddress[#return] : +# 1806| mu1806_2(int) = Uninitialized[#return] : &:r1806_1 +# 1802| v1802_5(void) = ReturnIndirection[x] : &:r1802_3, ~m? +# 1803| v1803_5(void) = ReturnIndirection[y] : &:r1803_3, ~m? +# 1801| r1801_4(glval) = VariableAddress[#return] : +# 1801| v1801_5(void) = ReturnValue : &:r1801_4, ~m? +# 1801| v1801_6(void) = AliasedUse : ~m? +# 1801| v1801_7(void) = ExitFunction : + +# 1808| void if_initialization(int) +# 1808| Block 0 +# 1808| v1808_1(void) = EnterFunction : +# 1808| mu1808_2(unknown) = AliasedDefinition : +# 1808| mu1808_3(unknown) = InitializeNonLocal : +# 1808| r1808_4(glval) = VariableAddress[x] : +# 1808| mu1808_5(int) = InitializeParameter[x] : &:r1808_4 +# 1809| r1809_1(glval) = VariableAddress[y] : +# 1809| r1809_2(glval) = VariableAddress[x] : +# 1809| r1809_3(int) = Load[x] : &:r1809_2, ~m? +# 1809| mu1809_4(int) = Store[y] : &:r1809_1, r1809_3 +# 1809| r1809_5(glval) = VariableAddress[x] : +# 1809| r1809_6(int) = Load[x] : &:r1809_5, ~m? +# 1809| r1809_7(int) = Constant[1] : +# 1809| r1809_8(int) = Add : r1809_6, r1809_7 +# 1809| r1809_9(int) = Constant[0] : +# 1809| r1809_10(bool) = CompareNE : r1809_8, r1809_9 +# 1809| v1809_11(void) = ConditionalBranch : r1809_10 #-----| False -> Block 2 #-----| True -> Block 1 -# 1808| Block 1 -# 1808| r1808_1(glval) = VariableAddress[x] : -# 1808| r1808_2(int) = Load[x] : &:r1808_1, ~m? -# 1808| r1808_3(glval) = VariableAddress[y] : -# 1808| r1808_4(int) = Load[y] : &:r1808_3, ~m? -# 1808| r1808_5(int) = Add : r1808_2, r1808_4 -# 1808| r1808_6(glval) = VariableAddress[x] : -# 1808| mu1808_7(int) = Store[x] : &:r1808_6, r1808_5 +# 1810| Block 1 +# 1810| r1810_1(glval) = VariableAddress[x] : +# 1810| r1810_2(int) = Load[x] : &:r1810_1, ~m? +# 1810| r1810_3(glval) = VariableAddress[y] : +# 1810| r1810_4(int) = Load[y] : &:r1810_3, ~m? +# 1810| r1810_5(int) = Add : r1810_2, r1810_4 +# 1810| r1810_6(glval) = VariableAddress[x] : +# 1810| mu1810_7(int) = Store[x] : &:r1810_6, r1810_5 #-----| Goto -> Block 2 -# 1811| Block 2 -# 1811| r1811_1(glval) = VariableAddress[w] : -# 1811| mu1811_2(int) = Uninitialized[w] : &:r1811_1 -# 1812| r1812_1(glval) = VariableAddress[x] : -# 1812| r1812_2(int) = Load[x] : &:r1812_1, ~m? -# 1812| r1812_3(glval) = VariableAddress[w] : -# 1812| mu1812_4(int) = Store[w] : &:r1812_3, r1812_2 -# 1812| r1812_5(glval) = VariableAddress[x] : -# 1812| r1812_6(int) = Load[x] : &:r1812_5, ~m? -# 1812| r1812_7(int) = Constant[1] : -# 1812| r1812_8(int) = Add : r1812_6, r1812_7 -# 1812| r1812_9(int) = Constant[0] : -# 1812| r1812_10(bool) = CompareNE : r1812_8, r1812_9 -# 1812| v1812_11(void) = ConditionalBranch : r1812_10 +# 1813| Block 2 +# 1813| r1813_1(glval) = VariableAddress[w] : +# 1813| mu1813_2(int) = Uninitialized[w] : &:r1813_1 +# 1814| r1814_1(glval) = VariableAddress[x] : +# 1814| r1814_2(int) = Load[x] : &:r1814_1, ~m? +# 1814| r1814_3(glval) = VariableAddress[w] : +# 1814| mu1814_4(int) = Store[w] : &:r1814_3, r1814_2 +# 1814| r1814_5(glval) = VariableAddress[x] : +# 1814| r1814_6(int) = Load[x] : &:r1814_5, ~m? +# 1814| r1814_7(int) = Constant[1] : +# 1814| r1814_8(int) = Add : r1814_6, r1814_7 +# 1814| r1814_9(int) = Constant[0] : +# 1814| r1814_10(bool) = CompareNE : r1814_8, r1814_9 +# 1814| v1814_11(void) = ConditionalBranch : r1814_10 #-----| False -> Block 4 #-----| True -> Block 3 -# 1813| Block 3 -# 1813| r1813_1(glval) = VariableAddress[x] : -# 1813| r1813_2(int) = Load[x] : &:r1813_1, ~m? -# 1813| r1813_3(glval) = VariableAddress[w] : -# 1813| r1813_4(int) = Load[w] : &:r1813_3, ~m? -# 1813| r1813_5(int) = Add : r1813_2, r1813_4 -# 1813| r1813_6(glval) = VariableAddress[x] : -# 1813| mu1813_7(int) = Store[x] : &:r1813_6, r1813_5 +# 1815| Block 3 +# 1815| r1815_1(glval) = VariableAddress[x] : +# 1815| r1815_2(int) = Load[x] : &:r1815_1, ~m? +# 1815| r1815_3(glval) = VariableAddress[w] : +# 1815| r1815_4(int) = Load[w] : &:r1815_3, ~m? +# 1815| r1815_5(int) = Add : r1815_2, r1815_4 +# 1815| r1815_6(glval) = VariableAddress[x] : +# 1815| mu1815_7(int) = Store[x] : &:r1815_6, r1815_5 #-----| Goto -> Block 4 -# 1816| Block 4 -# 1816| r1816_1(glval) = VariableAddress[x] : -# 1816| r1816_2(int) = Load[x] : &:r1816_1, ~m? -# 1816| r1816_3(glval) = VariableAddress[w] : -# 1816| mu1816_4(int) = Store[w] : &:r1816_3, r1816_2 -# 1816| r1816_5(glval) = VariableAddress[w2] : -# 1816| r1816_6(glval) = VariableAddress[w] : -# 1816| r1816_7(int) = Load[w] : &:r1816_6, ~m? -# 1816| mu1816_8(int) = Store[w2] : &:r1816_5, r1816_7 -# 1816| r1816_9(glval) = VariableAddress[w2] : -# 1816| r1816_10(int) = Load[w2] : &:r1816_9, ~m? -# 1816| r1816_11(int) = Constant[0] : -# 1816| r1816_12(bool) = CompareNE : r1816_10, r1816_11 -# 1816| r1816_13(bool) = CopyValue : r1816_12 -# 1816| v1816_14(void) = ConditionalBranch : r1816_13 +# 1818| Block 4 +# 1818| r1818_1(glval) = VariableAddress[x] : +# 1818| r1818_2(int) = Load[x] : &:r1818_1, ~m? +# 1818| r1818_3(glval) = VariableAddress[w] : +# 1818| mu1818_4(int) = Store[w] : &:r1818_3, r1818_2 +# 1818| r1818_5(glval) = VariableAddress[w2] : +# 1818| r1818_6(glval) = VariableAddress[w] : +# 1818| r1818_7(int) = Load[w] : &:r1818_6, ~m? +# 1818| mu1818_8(int) = Store[w2] : &:r1818_5, r1818_7 +# 1818| r1818_9(glval) = VariableAddress[w2] : +# 1818| r1818_10(int) = Load[w2] : &:r1818_9, ~m? +# 1818| r1818_11(int) = Constant[0] : +# 1818| r1818_12(bool) = CompareNE : r1818_10, r1818_11 +# 1818| r1818_13(bool) = CopyValue : r1818_12 +# 1818| v1818_14(void) = ConditionalBranch : r1818_13 #-----| False -> Block 6 #-----| True -> Block 5 -# 1817| Block 5 -# 1817| r1817_1(glval) = VariableAddress[x] : -# 1817| r1817_2(int) = Load[x] : &:r1817_1, ~m? -# 1817| r1817_3(glval) = VariableAddress[w] : -# 1817| r1817_4(int) = Load[w] : &:r1817_3, ~m? -# 1817| r1817_5(int) = Add : r1817_2, r1817_4 -# 1817| r1817_6(glval) = VariableAddress[x] : -# 1817| mu1817_7(int) = Store[x] : &:r1817_6, r1817_5 +# 1819| Block 5 +# 1819| r1819_1(glval) = VariableAddress[x] : +# 1819| r1819_2(int) = Load[x] : &:r1819_1, ~m? +# 1819| r1819_3(glval) = VariableAddress[w] : +# 1819| r1819_4(int) = Load[w] : &:r1819_3, ~m? +# 1819| r1819_5(int) = Add : r1819_2, r1819_4 +# 1819| r1819_6(glval) = VariableAddress[x] : +# 1819| mu1819_7(int) = Store[x] : &:r1819_6, r1819_5 #-----| Goto -> Block 6 -# 1820| Block 6 -# 1820| r1820_1(glval) = VariableAddress[v] : -# 1820| r1820_2(glval) = VariableAddress[x] : -# 1820| r1820_3(int) = Load[x] : &:r1820_2, ~m? -# 1820| mu1820_4(int) = Store[v] : &:r1820_1, r1820_3 -# 1820| r1820_5(glval) = VariableAddress[v2] : -# 1820| r1820_6(glval) = VariableAddress[v] : -# 1820| r1820_7(int) = Load[v] : &:r1820_6, ~m? -# 1820| mu1820_8(int) = Store[v2] : &:r1820_5, r1820_7 -# 1820| r1820_9(glval) = VariableAddress[v2] : -# 1820| r1820_10(int) = Load[v2] : &:r1820_9, ~m? -# 1820| r1820_11(int) = Constant[0] : -# 1820| r1820_12(bool) = CompareNE : r1820_10, r1820_11 -# 1820| r1820_13(bool) = CopyValue : r1820_12 -# 1820| v1820_14(void) = ConditionalBranch : r1820_13 +# 1822| Block 6 +# 1822| r1822_1(glval) = VariableAddress[v] : +# 1822| r1822_2(glval) = VariableAddress[x] : +# 1822| r1822_3(int) = Load[x] : &:r1822_2, ~m? +# 1822| mu1822_4(int) = Store[v] : &:r1822_1, r1822_3 +# 1822| r1822_5(glval) = VariableAddress[v2] : +# 1822| r1822_6(glval) = VariableAddress[v] : +# 1822| r1822_7(int) = Load[v] : &:r1822_6, ~m? +# 1822| mu1822_8(int) = Store[v2] : &:r1822_5, r1822_7 +# 1822| r1822_9(glval) = VariableAddress[v2] : +# 1822| r1822_10(int) = Load[v2] : &:r1822_9, ~m? +# 1822| r1822_11(int) = Constant[0] : +# 1822| r1822_12(bool) = CompareNE : r1822_10, r1822_11 +# 1822| r1822_13(bool) = CopyValue : r1822_12 +# 1822| v1822_14(void) = ConditionalBranch : r1822_13 #-----| False -> Block 8 #-----| True -> Block 7 -# 1821| Block 7 -# 1821| r1821_1(glval) = VariableAddress[x] : -# 1821| r1821_2(int) = Load[x] : &:r1821_1, ~m? -# 1821| r1821_3(glval) = VariableAddress[v] : -# 1821| r1821_4(int) = Load[v] : &:r1821_3, ~m? -# 1821| r1821_5(int) = Add : r1821_2, r1821_4 -# 1821| r1821_6(glval) = VariableAddress[x] : -# 1821| mu1821_7(int) = Store[x] : &:r1821_6, r1821_5 +# 1823| Block 7 +# 1823| r1823_1(glval) = VariableAddress[x] : +# 1823| r1823_2(int) = Load[x] : &:r1823_1, ~m? +# 1823| r1823_3(glval) = VariableAddress[v] : +# 1823| r1823_4(int) = Load[v] : &:r1823_3, ~m? +# 1823| r1823_5(int) = Add : r1823_2, r1823_4 +# 1823| r1823_6(glval) = VariableAddress[x] : +# 1823| mu1823_7(int) = Store[x] : &:r1823_6, r1823_5 #-----| Goto -> Block 8 -# 1824| Block 8 -# 1824| r1824_1(glval) = VariableAddress[z] : -# 1824| r1824_2(glval) = VariableAddress[x] : -# 1824| r1824_3(int) = Load[x] : &:r1824_2, ~m? -# 1824| mu1824_4(int) = Store[z] : &:r1824_1, r1824_3 -# 1825| r1825_1(glval) = VariableAddress[z] : -# 1825| r1825_2(int) = Load[z] : &:r1825_1, ~m? -# 1825| r1825_3(int) = Constant[0] : -# 1825| r1825_4(bool) = CompareNE : r1825_2, r1825_3 -# 1825| v1825_5(void) = ConditionalBranch : r1825_4 +# 1826| Block 8 +# 1826| r1826_1(glval) = VariableAddress[z] : +# 1826| r1826_2(glval) = VariableAddress[x] : +# 1826| r1826_3(int) = Load[x] : &:r1826_2, ~m? +# 1826| mu1826_4(int) = Store[z] : &:r1826_1, r1826_3 +# 1827| r1827_1(glval) = VariableAddress[z] : +# 1827| r1827_2(int) = Load[z] : &:r1827_1, ~m? +# 1827| r1827_3(int) = Constant[0] : +# 1827| r1827_4(bool) = CompareNE : r1827_2, r1827_3 +# 1827| v1827_5(void) = ConditionalBranch : r1827_4 #-----| False -> Block 10 #-----| True -> Block 9 -# 1826| Block 9 -# 1826| r1826_1(glval) = VariableAddress[x] : -# 1826| r1826_2(int) = Load[x] : &:r1826_1, ~m? -# 1826| r1826_3(glval) = VariableAddress[z] : -# 1826| r1826_4(int) = Load[z] : &:r1826_3, ~m? -# 1826| r1826_5(int) = Add : r1826_2, r1826_4 -# 1826| r1826_6(glval) = VariableAddress[x] : -# 1826| mu1826_7(int) = Store[x] : &:r1826_6, r1826_5 +# 1828| Block 9 +# 1828| r1828_1(glval) = VariableAddress[x] : +# 1828| r1828_2(int) = Load[x] : &:r1828_1, ~m? +# 1828| r1828_3(glval) = VariableAddress[z] : +# 1828| r1828_4(int) = Load[z] : &:r1828_3, ~m? +# 1828| r1828_5(int) = Add : r1828_2, r1828_4 +# 1828| r1828_6(glval) = VariableAddress[x] : +# 1828| mu1828_7(int) = Store[x] : &:r1828_6, r1828_5 #-----| Goto -> Block 10 -# 1829| Block 10 -# 1829| r1829_1(glval) = VariableAddress[z2] : -# 1829| r1829_2(glval) = VariableAddress[z] : -# 1829| r1829_3(int) = Load[z] : &:r1829_2, ~m? -# 1829| mu1829_4(int) = Store[z2] : &:r1829_1, r1829_3 -# 1829| r1829_5(glval) = VariableAddress[z2] : -# 1829| r1829_6(int) = Load[z2] : &:r1829_5, ~m? -# 1829| r1829_7(int) = Constant[0] : -# 1829| r1829_8(bool) = CompareNE : r1829_6, r1829_7 -# 1829| r1829_9(bool) = CopyValue : r1829_8 -# 1829| v1829_10(void) = ConditionalBranch : r1829_9 +# 1831| Block 10 +# 1831| r1831_1(glval) = VariableAddress[z2] : +# 1831| r1831_2(glval) = VariableAddress[z] : +# 1831| r1831_3(int) = Load[z] : &:r1831_2, ~m? +# 1831| mu1831_4(int) = Store[z2] : &:r1831_1, r1831_3 +# 1831| r1831_5(glval) = VariableAddress[z2] : +# 1831| r1831_6(int) = Load[z2] : &:r1831_5, ~m? +# 1831| r1831_7(int) = Constant[0] : +# 1831| r1831_8(bool) = CompareNE : r1831_6, r1831_7 +# 1831| r1831_9(bool) = CopyValue : r1831_8 +# 1831| v1831_10(void) = ConditionalBranch : r1831_9 #-----| False -> Block 12 #-----| True -> Block 11 -# 1830| Block 11 -# 1830| r1830_1(glval) = VariableAddress[z2] : -# 1830| r1830_2(int) = Load[z2] : &:r1830_1, ~m? -# 1830| r1830_3(glval) = VariableAddress[x] : -# 1830| r1830_4(int) = Load[x] : &:r1830_3, ~m? -# 1830| r1830_5(int) = Add : r1830_4, r1830_2 -# 1830| mu1830_6(int) = Store[x] : &:r1830_3, r1830_5 +# 1832| Block 11 +# 1832| r1832_1(glval) = VariableAddress[z2] : +# 1832| r1832_2(int) = Load[z2] : &:r1832_1, ~m? +# 1832| r1832_3(glval) = VariableAddress[x] : +# 1832| r1832_4(int) = Load[x] : &:r1832_3, ~m? +# 1832| r1832_5(int) = Add : r1832_4, r1832_2 +# 1832| mu1832_6(int) = Store[x] : &:r1832_3, r1832_5 #-----| Goto -> Block 12 -# 1832| Block 12 -# 1832| v1832_1(void) = NoOp : -# 1806| v1806_6(void) = ReturnVoid : -# 1806| v1806_7(void) = AliasedUse : ~m? -# 1806| v1806_8(void) = ExitFunction : - -# 1834| void switch_initialization(int) -# 1834| Block 0 -# 1834| v1834_1(void) = EnterFunction : -# 1834| mu1834_2(unknown) = AliasedDefinition : -# 1834| mu1834_3(unknown) = InitializeNonLocal : -# 1834| r1834_4(glval) = VariableAddress[x] : -# 1834| mu1834_5(int) = InitializeParameter[x] : &:r1834_4 -# 1835| r1835_1(glval) = VariableAddress[y] : -# 1835| r1835_2(glval) = VariableAddress[x] : -# 1835| r1835_3(int) = Load[x] : &:r1835_2, ~m? -# 1835| mu1835_4(int) = Store[y] : &:r1835_1, r1835_3 -# 1835| r1835_5(glval) = VariableAddress[x] : -# 1835| r1835_6(int) = Load[x] : &:r1835_5, ~m? -# 1835| r1835_7(int) = Constant[1] : -# 1835| r1835_8(int) = Add : r1835_6, r1835_7 -# 1835| v1835_9(void) = Switch : r1835_8 +# 1834| Block 12 +# 1834| v1834_1(void) = NoOp : +# 1808| v1808_6(void) = ReturnVoid : +# 1808| v1808_7(void) = AliasedUse : ~m? +# 1808| v1808_8(void) = ExitFunction : + +# 1836| void switch_initialization(int) +# 1836| Block 0 +# 1836| v1836_1(void) = EnterFunction : +# 1836| mu1836_2(unknown) = AliasedDefinition : +# 1836| mu1836_3(unknown) = InitializeNonLocal : +# 1836| r1836_4(glval) = VariableAddress[x] : +# 1836| mu1836_5(int) = InitializeParameter[x] : &:r1836_4 +# 1837| r1837_1(glval) = VariableAddress[y] : +# 1837| r1837_2(glval) = VariableAddress[x] : +# 1837| r1837_3(int) = Load[x] : &:r1837_2, ~m? +# 1837| mu1837_4(int) = Store[y] : &:r1837_1, r1837_3 +# 1837| r1837_5(glval) = VariableAddress[x] : +# 1837| r1837_6(int) = Load[x] : &:r1837_5, ~m? +# 1837| r1837_7(int) = Constant[1] : +# 1837| r1837_8(int) = Add : r1837_6, r1837_7 +# 1837| v1837_9(void) = Switch : r1837_8 #-----| Default -> Block 1 -# 1836| Block 1 -# 1836| v1836_1(void) = NoOp : -# 1837| r1837_1(glval) = VariableAddress[x] : -# 1837| r1837_2(int) = Load[x] : &:r1837_1, ~m? -# 1837| r1837_3(glval) = VariableAddress[y] : -# 1837| r1837_4(int) = Load[y] : &:r1837_3, ~m? -# 1837| r1837_5(int) = Add : r1837_2, r1837_4 -# 1837| r1837_6(glval) = VariableAddress[x] : -# 1837| mu1837_7(int) = Store[x] : &:r1837_6, r1837_5 -# 1840| r1840_1(glval) = VariableAddress[w] : -# 1840| mu1840_2(int) = Uninitialized[w] : &:r1840_1 -# 1841| r1841_1(glval) = VariableAddress[x] : -# 1841| r1841_2(int) = Load[x] : &:r1841_1, ~m? -# 1841| r1841_3(glval) = VariableAddress[w] : -# 1841| mu1841_4(int) = Store[w] : &:r1841_3, r1841_2 -# 1841| r1841_5(glval) = VariableAddress[x] : -# 1841| r1841_6(int) = Load[x] : &:r1841_5, ~m? -# 1841| r1841_7(int) = Constant[1] : -# 1841| r1841_8(int) = Add : r1841_6, r1841_7 -# 1841| v1841_9(void) = Switch : r1841_8 +# 1838| Block 1 +# 1838| v1838_1(void) = NoOp : +# 1839| r1839_1(glval) = VariableAddress[x] : +# 1839| r1839_2(int) = Load[x] : &:r1839_1, ~m? +# 1839| r1839_3(glval) = VariableAddress[y] : +# 1839| r1839_4(int) = Load[y] : &:r1839_3, ~m? +# 1839| r1839_5(int) = Add : r1839_2, r1839_4 +# 1839| r1839_6(glval) = VariableAddress[x] : +# 1839| mu1839_7(int) = Store[x] : &:r1839_6, r1839_5 +# 1842| r1842_1(glval) = VariableAddress[w] : +# 1842| mu1842_2(int) = Uninitialized[w] : &:r1842_1 +# 1843| r1843_1(glval) = VariableAddress[x] : +# 1843| r1843_2(int) = Load[x] : &:r1843_1, ~m? +# 1843| r1843_3(glval) = VariableAddress[w] : +# 1843| mu1843_4(int) = Store[w] : &:r1843_3, r1843_2 +# 1843| r1843_5(glval) = VariableAddress[x] : +# 1843| r1843_6(int) = Load[x] : &:r1843_5, ~m? +# 1843| r1843_7(int) = Constant[1] : +# 1843| r1843_8(int) = Add : r1843_6, r1843_7 +# 1843| v1843_9(void) = Switch : r1843_8 #-----| Default -> Block 2 -# 1842| Block 2 -# 1842| v1842_1(void) = NoOp : -# 1843| r1843_1(glval) = VariableAddress[x] : -# 1843| r1843_2(int) = Load[x] : &:r1843_1, ~m? -# 1843| r1843_3(glval) = VariableAddress[w] : -# 1843| r1843_4(int) = Load[w] : &:r1843_3, ~m? -# 1843| r1843_5(int) = Add : r1843_2, r1843_4 -# 1843| r1843_6(glval) = VariableAddress[x] : -# 1843| mu1843_7(int) = Store[x] : &:r1843_6, r1843_5 -# 1846| r1846_1(glval) = VariableAddress[x] : -# 1846| r1846_2(int) = Load[x] : &:r1846_1, ~m? -# 1846| r1846_3(glval) = VariableAddress[w] : -# 1846| mu1846_4(int) = Store[w] : &:r1846_3, r1846_2 -# 1846| r1846_5(glval) = VariableAddress[w2] : -# 1846| r1846_6(glval) = VariableAddress[w] : -# 1846| r1846_7(int) = Load[w] : &:r1846_6, ~m? -# 1846| mu1846_8(int) = Store[w2] : &:r1846_5, r1846_7 -# 1846| r1846_9(glval) = VariableAddress[w2] : -# 1846| r1846_10(int) = Load[w2] : &:r1846_9, ~m? -# 1846| r1846_11(int) = CopyValue : r1846_10 -# 1846| v1846_12(void) = Switch : r1846_11 -#-----| Default -> Block 3 - -# 1847| Block 3 -# 1847| v1847_1(void) = NoOp : +# 1844| Block 2 +# 1844| v1844_1(void) = NoOp : +# 1845| r1845_1(glval) = VariableAddress[x] : +# 1845| r1845_2(int) = Load[x] : &:r1845_1, ~m? +# 1845| r1845_3(glval) = VariableAddress[w] : +# 1845| r1845_4(int) = Load[w] : &:r1845_3, ~m? +# 1845| r1845_5(int) = Add : r1845_2, r1845_4 +# 1845| r1845_6(glval) = VariableAddress[x] : +# 1845| mu1845_7(int) = Store[x] : &:r1845_6, r1845_5 # 1848| r1848_1(glval) = VariableAddress[x] : # 1848| r1848_2(int) = Load[x] : &:r1848_1, ~m? # 1848| r1848_3(glval) = VariableAddress[w] : -# 1848| r1848_4(int) = Load[w] : &:r1848_3, ~m? -# 1848| r1848_5(int) = Add : r1848_2, r1848_4 -# 1848| r1848_6(glval) = VariableAddress[x] : -# 1848| mu1848_7(int) = Store[x] : &:r1848_6, r1848_5 -# 1851| r1851_1(glval) = VariableAddress[v] : -# 1851| r1851_2(glval) = VariableAddress[x] : -# 1851| r1851_3(int) = Load[x] : &:r1851_2, ~m? -# 1851| mu1851_4(int) = Store[v] : &:r1851_1, r1851_3 -# 1851| r1851_5(glval) = VariableAddress[v2] : -# 1851| r1851_6(glval) = VariableAddress[v] : -# 1851| r1851_7(int) = Load[v] : &:r1851_6, ~m? -# 1851| mu1851_8(int) = Store[v2] : &:r1851_5, r1851_7 -# 1851| r1851_9(glval) = VariableAddress[v2] : -# 1851| r1851_10(int) = Load[v2] : &:r1851_9, ~m? -# 1851| r1851_11(int) = CopyValue : r1851_10 -# 1851| v1851_12(void) = Switch : r1851_11 +# 1848| mu1848_4(int) = Store[w] : &:r1848_3, r1848_2 +# 1848| r1848_5(glval) = VariableAddress[w2] : +# 1848| r1848_6(glval) = VariableAddress[w] : +# 1848| r1848_7(int) = Load[w] : &:r1848_6, ~m? +# 1848| mu1848_8(int) = Store[w2] : &:r1848_5, r1848_7 +# 1848| r1848_9(glval) = VariableAddress[w2] : +# 1848| r1848_10(int) = Load[w2] : &:r1848_9, ~m? +# 1848| r1848_11(int) = CopyValue : r1848_10 +# 1848| v1848_12(void) = Switch : r1848_11 +#-----| Default -> Block 3 + +# 1849| Block 3 +# 1849| v1849_1(void) = NoOp : +# 1850| r1850_1(glval) = VariableAddress[x] : +# 1850| r1850_2(int) = Load[x] : &:r1850_1, ~m? +# 1850| r1850_3(glval) = VariableAddress[w] : +# 1850| r1850_4(int) = Load[w] : &:r1850_3, ~m? +# 1850| r1850_5(int) = Add : r1850_2, r1850_4 +# 1850| r1850_6(glval) = VariableAddress[x] : +# 1850| mu1850_7(int) = Store[x] : &:r1850_6, r1850_5 +# 1853| r1853_1(glval) = VariableAddress[v] : +# 1853| r1853_2(glval) = VariableAddress[x] : +# 1853| r1853_3(int) = Load[x] : &:r1853_2, ~m? +# 1853| mu1853_4(int) = Store[v] : &:r1853_1, r1853_3 +# 1853| r1853_5(glval) = VariableAddress[v2] : +# 1853| r1853_6(glval) = VariableAddress[v] : +# 1853| r1853_7(int) = Load[v] : &:r1853_6, ~m? +# 1853| mu1853_8(int) = Store[v2] : &:r1853_5, r1853_7 +# 1853| r1853_9(glval) = VariableAddress[v2] : +# 1853| r1853_10(int) = Load[v2] : &:r1853_9, ~m? +# 1853| r1853_11(int) = CopyValue : r1853_10 +# 1853| v1853_12(void) = Switch : r1853_11 #-----| Default -> Block 4 -# 1852| Block 4 -# 1852| v1852_1(void) = NoOp : -# 1853| r1853_1(glval) = VariableAddress[x] : -# 1853| r1853_2(int) = Load[x] : &:r1853_1, ~m? -# 1853| r1853_3(glval) = VariableAddress[v] : -# 1853| r1853_4(int) = Load[v] : &:r1853_3, ~m? -# 1853| r1853_5(int) = Add : r1853_2, r1853_4 -# 1853| r1853_6(glval) = VariableAddress[x] : -# 1853| mu1853_7(int) = Store[x] : &:r1853_6, r1853_5 -# 1856| r1856_1(glval) = VariableAddress[z] : -# 1856| r1856_2(glval) = VariableAddress[x] : -# 1856| r1856_3(int) = Load[x] : &:r1856_2, ~m? -# 1856| mu1856_4(int) = Store[z] : &:r1856_1, r1856_3 -# 1857| r1857_1(glval) = VariableAddress[z] : -# 1857| r1857_2(int) = Load[z] : &:r1857_1, ~m? -# 1857| v1857_3(void) = Switch : r1857_2 +# 1854| Block 4 +# 1854| v1854_1(void) = NoOp : +# 1855| r1855_1(glval) = VariableAddress[x] : +# 1855| r1855_2(int) = Load[x] : &:r1855_1, ~m? +# 1855| r1855_3(glval) = VariableAddress[v] : +# 1855| r1855_4(int) = Load[v] : &:r1855_3, ~m? +# 1855| r1855_5(int) = Add : r1855_2, r1855_4 +# 1855| r1855_6(glval) = VariableAddress[x] : +# 1855| mu1855_7(int) = Store[x] : &:r1855_6, r1855_5 +# 1858| r1858_1(glval) = VariableAddress[z] : +# 1858| r1858_2(glval) = VariableAddress[x] : +# 1858| r1858_3(int) = Load[x] : &:r1858_2, ~m? +# 1858| mu1858_4(int) = Store[z] : &:r1858_1, r1858_3 +# 1859| r1859_1(glval) = VariableAddress[z] : +# 1859| r1859_2(int) = Load[z] : &:r1859_1, ~m? +# 1859| v1859_3(void) = Switch : r1859_2 #-----| Default -> Block 5 -# 1858| Block 5 -# 1858| v1858_1(void) = NoOp : -# 1859| r1859_1(glval) = VariableAddress[x] : -# 1859| r1859_2(int) = Load[x] : &:r1859_1, ~m? -# 1859| r1859_3(glval) = VariableAddress[z] : -# 1859| r1859_4(int) = Load[z] : &:r1859_3, ~m? -# 1859| r1859_5(int) = Add : r1859_2, r1859_4 -# 1859| r1859_6(glval) = VariableAddress[x] : -# 1859| mu1859_7(int) = Store[x] : &:r1859_6, r1859_5 -# 1862| r1862_1(glval) = VariableAddress[z2] : -# 1862| r1862_2(glval) = VariableAddress[z] : -# 1862| r1862_3(int) = Load[z] : &:r1862_2, ~m? -# 1862| mu1862_4(int) = Store[z2] : &:r1862_1, r1862_3 -# 1862| r1862_5(glval) = VariableAddress[z2] : -# 1862| r1862_6(int) = Load[z2] : &:r1862_5, ~m? -# 1862| r1862_7(int) = CopyValue : r1862_6 -# 1862| v1862_8(void) = Switch : r1862_7 +# 1860| Block 5 +# 1860| v1860_1(void) = NoOp : +# 1861| r1861_1(glval) = VariableAddress[x] : +# 1861| r1861_2(int) = Load[x] : &:r1861_1, ~m? +# 1861| r1861_3(glval) = VariableAddress[z] : +# 1861| r1861_4(int) = Load[z] : &:r1861_3, ~m? +# 1861| r1861_5(int) = Add : r1861_2, r1861_4 +# 1861| r1861_6(glval) = VariableAddress[x] : +# 1861| mu1861_7(int) = Store[x] : &:r1861_6, r1861_5 +# 1864| r1864_1(glval) = VariableAddress[z2] : +# 1864| r1864_2(glval) = VariableAddress[z] : +# 1864| r1864_3(int) = Load[z] : &:r1864_2, ~m? +# 1864| mu1864_4(int) = Store[z2] : &:r1864_1, r1864_3 +# 1864| r1864_5(glval) = VariableAddress[z2] : +# 1864| r1864_6(int) = Load[z2] : &:r1864_5, ~m? +# 1864| r1864_7(int) = CopyValue : r1864_6 +# 1864| v1864_8(void) = Switch : r1864_7 #-----| Default -> Block 6 -# 1863| Block 6 -# 1863| v1863_1(void) = NoOp : -# 1864| r1864_1(glval) = VariableAddress[z2] : -# 1864| r1864_2(int) = Load[z2] : &:r1864_1, ~m? -# 1864| r1864_3(glval) = VariableAddress[x] : -# 1864| r1864_4(int) = Load[x] : &:r1864_3, ~m? -# 1864| r1864_5(int) = Add : r1864_4, r1864_2 -# 1864| mu1864_6(int) = Store[x] : &:r1864_3, r1864_5 -# 1866| v1866_1(void) = NoOp : -# 1834| v1834_6(void) = ReturnVoid : -# 1834| v1834_7(void) = AliasedUse : ~m? -# 1834| v1834_8(void) = ExitFunction : - -# 1870| int global_2 -# 1870| Block 0 -# 1870| v1870_1(void) = EnterFunction : -# 1870| mu1870_2(unknown) = AliasedDefinition : -# 1870| r1870_3(glval) = VariableAddress[global_2] : -# 1870| r1870_4(int) = Constant[1] : -# 1870| mu1870_5(int) = Store[global_2] : &:r1870_3, r1870_4 -# 1870| v1870_6(void) = ReturnVoid : -# 1870| v1870_7(void) = AliasedUse : ~m? -# 1870| v1870_8(void) = ExitFunction : - -# 1874| constructor_only global_4 -# 1874| Block 0 -# 1874| v1874_1(void) = EnterFunction : -# 1874| mu1874_2(unknown) = AliasedDefinition : -# 1874| r1874_3(glval) = VariableAddress[global_4] : -# 1874| r1874_4(glval) = FunctionAddress[constructor_only] : -# 1874| r1874_5(int) = Constant[1] : -# 1874| v1874_6(void) = Call[constructor_only] : func:r1874_4, this:r1874_3, 0:r1874_5 -# 1874| mu1874_7(unknown) = ^CallSideEffect : ~m? -# 1874| mu1874_8(constructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1874_3 -# 1874| v1874_9(void) = ReturnVoid : -# 1874| v1874_10(void) = AliasedUse : ~m? -# 1874| v1874_11(void) = ExitFunction : - -# 1876| constructor_only global_5 +# 1865| Block 6 +# 1865| v1865_1(void) = NoOp : +# 1866| r1866_1(glval) = VariableAddress[z2] : +# 1866| r1866_2(int) = Load[z2] : &:r1866_1, ~m? +# 1866| r1866_3(glval) = VariableAddress[x] : +# 1866| r1866_4(int) = Load[x] : &:r1866_3, ~m? +# 1866| r1866_5(int) = Add : r1866_4, r1866_2 +# 1866| mu1866_6(int) = Store[x] : &:r1866_3, r1866_5 +# 1868| v1868_1(void) = NoOp : +# 1836| v1836_6(void) = ReturnVoid : +# 1836| v1836_7(void) = AliasedUse : ~m? +# 1836| v1836_8(void) = ExitFunction : + +# 1872| int global_2 +# 1872| Block 0 +# 1872| v1872_1(void) = EnterFunction : +# 1872| mu1872_2(unknown) = AliasedDefinition : +# 1872| r1872_3(glval) = VariableAddress[global_2] : +# 1872| r1872_4(int) = Constant[1] : +# 1872| mu1872_5(int) = Store[global_2] : &:r1872_3, r1872_4 +# 1872| v1872_6(void) = ReturnVoid : +# 1872| v1872_7(void) = AliasedUse : ~m? +# 1872| v1872_8(void) = ExitFunction : + +# 1876| constructor_only global_4 # 1876| Block 0 # 1876| v1876_1(void) = EnterFunction : # 1876| mu1876_2(unknown) = AliasedDefinition : -# 1876| r1876_3(glval) = VariableAddress[global_5] : +# 1876| r1876_3(glval) = VariableAddress[global_4] : # 1876| r1876_4(glval) = FunctionAddress[constructor_only] : -# 1876| r1876_5(int) = Constant[2] : +# 1876| r1876_5(int) = Constant[1] : # 1876| v1876_6(void) = Call[constructor_only] : func:r1876_4, this:r1876_3, 0:r1876_5 # 1876| mu1876_7(unknown) = ^CallSideEffect : ~m? # 1876| mu1876_8(constructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1876_3 @@ -13002,40 +13056,54 @@ ir.cpp: # 1876| v1876_10(void) = AliasedUse : ~m? # 1876| v1876_11(void) = ExitFunction : -# 1878| char* global_string +# 1878| constructor_only global_5 # 1878| Block 0 -# 1878| v1878_1(void) = EnterFunction : -# 1878| mu1878_2(unknown) = AliasedDefinition : -# 1878| r1878_3(glval) = VariableAddress[global_string] : -# 1878| r1878_4(glval) = StringConstant["global string"] : -# 1878| r1878_5(char *) = Convert : r1878_4 -# 1878| r1878_6(char *) = Convert : r1878_5 -# 1878| mu1878_7(char *) = Store[global_string] : &:r1878_3, r1878_6 -# 1878| v1878_8(void) = ReturnVoid : -# 1878| v1878_9(void) = AliasedUse : ~m? -# 1878| v1878_10(void) = ExitFunction : - -# 1880| int global_6 +# 1878| v1878_1(void) = EnterFunction : +# 1878| mu1878_2(unknown) = AliasedDefinition : +# 1878| r1878_3(glval) = VariableAddress[global_5] : +# 1878| r1878_4(glval) = FunctionAddress[constructor_only] : +# 1878| r1878_5(int) = Constant[2] : +# 1878| v1878_6(void) = Call[constructor_only] : func:r1878_4, this:r1878_3, 0:r1878_5 +# 1878| mu1878_7(unknown) = ^CallSideEffect : ~m? +# 1878| mu1878_8(constructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1878_3 +# 1878| v1878_9(void) = ReturnVoid : +# 1878| v1878_10(void) = AliasedUse : ~m? +# 1878| v1878_11(void) = ExitFunction : + +# 1880| char* global_string # 1880| Block 0 -# 1880| v1880_1(void) = EnterFunction : -# 1880| mu1880_2(unknown) = AliasedDefinition : -# 1880| r1880_3(glval) = VariableAddress[global_6] : -# 1880| r1880_4(glval) = VariableAddress[global_2] : -# 1880| r1880_5(int) = Load[global_2] : &:r1880_4, ~m? -# 1880| mu1880_6(int) = Store[global_6] : &:r1880_3, r1880_5 -# 1880| v1880_7(void) = ReturnVoid : -# 1880| v1880_8(void) = AliasedUse : ~m? -# 1880| v1880_9(void) = ExitFunction : - -# 1883| block_assignment::A& block_assignment::A::operator=(block_assignment::A&&) -# 1883| Block 0 -# 1883| v1883_1(void) = EnterFunction : -# 1883| mu1883_2(unknown) = AliasedDefinition : -# 1883| mu1883_3(unknown) = InitializeNonLocal : -# 1883| r1883_4(glval) = VariableAddress[#this] : -# 1883| mu1883_5(glval) = InitializeParameter[#this] : &:r1883_4 -# 1883| r1883_6(glval) = Load[#this] : &:r1883_4, ~m? -# 1883| mu1883_7(A) = InitializeIndirection[#this] : &:r1883_6 +# 1880| v1880_1(void) = EnterFunction : +# 1880| mu1880_2(unknown) = AliasedDefinition : +# 1880| r1880_3(glval) = VariableAddress[global_string] : +# 1880| r1880_4(glval) = StringConstant["global string"] : +# 1880| r1880_5(char *) = Convert : r1880_4 +# 1880| r1880_6(char *) = Convert : r1880_5 +# 1880| mu1880_7(char *) = Store[global_string] : &:r1880_3, r1880_6 +# 1880| v1880_8(void) = ReturnVoid : +# 1880| v1880_9(void) = AliasedUse : ~m? +# 1880| v1880_10(void) = ExitFunction : + +# 1882| int global_6 +# 1882| Block 0 +# 1882| v1882_1(void) = EnterFunction : +# 1882| mu1882_2(unknown) = AliasedDefinition : +# 1882| r1882_3(glval) = VariableAddress[global_6] : +# 1882| r1882_4(glval) = VariableAddress[global_2] : +# 1882| r1882_5(int) = Load[global_2] : &:r1882_4, ~m? +# 1882| mu1882_6(int) = Store[global_6] : &:r1882_3, r1882_5 +# 1882| v1882_7(void) = ReturnVoid : +# 1882| v1882_8(void) = AliasedUse : ~m? +# 1882| v1882_9(void) = ExitFunction : + +# 1885| block_assignment::A& block_assignment::A::operator=(block_assignment::A&&) +# 1885| Block 0 +# 1885| v1885_1(void) = EnterFunction : +# 1885| mu1885_2(unknown) = AliasedDefinition : +# 1885| mu1885_3(unknown) = InitializeNonLocal : +# 1885| r1885_4(glval) = VariableAddress[#this] : +# 1885| mu1885_5(glval) = InitializeParameter[#this] : &:r1885_4 +# 1885| r1885_6(glval) = Load[#this] : &:r1885_4, ~m? +# 1885| mu1885_7(A) = InitializeIndirection[#this] : &:r1885_6 #-----| r0_1(glval) = VariableAddress[(unnamed parameter 0)] : #-----| mu0_2(A &&) = InitializeParameter[(unnamed parameter 0)] : &:r0_1 #-----| r0_3(A &&) = Load[(unnamed parameter 0)] : &:r0_1, ~m? @@ -13055,957 +13123,957 @@ ir.cpp: #-----| r0_17(glval) = CopyValue : r0_16 #-----| r0_18(A &) = CopyValue : r0_17 #-----| mu0_19(A &) = Store[#return] : &:r0_14, r0_18 -# 1883| v1883_8(void) = ReturnIndirection[#this] : &:r1883_6, ~m? +# 1885| v1885_8(void) = ReturnIndirection[#this] : &:r1885_6, ~m? #-----| v0_20(void) = ReturnIndirection[(unnamed parameter 0)] : &:r0_3, ~m? -# 1883| r1883_9(glval) = VariableAddress[#return] : -# 1883| v1883_10(void) = ReturnValue : &:r1883_9, ~m? -# 1883| v1883_11(void) = AliasedUse : ~m? -# 1883| v1883_12(void) = ExitFunction : - -# 1888| block_assignment::B& block_assignment::B::operator=(block_assignment::B&&) -# 1888| Block 0 -# 1888| v1888_1(void) = EnterFunction : -# 1888| mu1888_2(unknown) = AliasedDefinition : -# 1888| mu1888_3(unknown) = InitializeNonLocal : -# 1888| r1888_4(glval) = VariableAddress[#this] : -# 1888| mu1888_5(glval) = InitializeParameter[#this] : &:r1888_4 -# 1888| r1888_6(glval) = Load[#this] : &:r1888_4, ~m? -# 1888| mu1888_7(B) = InitializeIndirection[#this] : &:r1888_6 +# 1885| r1885_9(glval) = VariableAddress[#return] : +# 1885| v1885_10(void) = ReturnValue : &:r1885_9, ~m? +# 1885| v1885_11(void) = AliasedUse : ~m? +# 1885| v1885_12(void) = ExitFunction : + +# 1890| block_assignment::B& block_assignment::B::operator=(block_assignment::B&&) +# 1890| Block 0 +# 1890| v1890_1(void) = EnterFunction : +# 1890| mu1890_2(unknown) = AliasedDefinition : +# 1890| mu1890_3(unknown) = InitializeNonLocal : +# 1890| r1890_4(glval) = VariableAddress[#this] : +# 1890| mu1890_5(glval) = InitializeParameter[#this] : &:r1890_4 +# 1890| r1890_6(glval) = Load[#this] : &:r1890_4, ~m? +# 1890| mu1890_7(B) = InitializeIndirection[#this] : &:r1890_6 #-----| r0_1(glval) = VariableAddress[(unnamed parameter 0)] : #-----| mu0_2(B &&) = InitializeParameter[(unnamed parameter 0)] : &:r0_1 #-----| r0_3(B &&) = Load[(unnamed parameter 0)] : &:r0_1, ~m? #-----| mu0_4(unknown) = InitializeIndirection[(unnamed parameter 0)] : &:r0_3 -# 1888| r1888_8(glval) = VariableAddress[#this] : -# 1888| r1888_9(B *) = Load[#this] : &:r1888_8, ~m? -#-----| r0_5(A *) = ConvertToNonVirtualBase[B : A] : r1888_9 -# 1888| r1888_10(glval) = FunctionAddress[operator=] : -# 1888| r1888_11(glval) = VariableAddress[(unnamed parameter 0)] : -# 1888| r1888_12(B &&) = Load[(unnamed parameter 0)] : &:r1888_11, ~m? -#-----| r0_6(glval) = CopyValue : r1888_12 -# 1888| r1888_13(B *) = CopyValue : r0_6 -#-----| r0_7(A *) = ConvertToNonVirtualBase[B : A] : r1888_13 -# 1888| r1888_14(glval) = CopyValue : r0_7 -#-----| r0_8(A &) = CopyValue : r1888_14 -# 1888| r1888_15(A &) = Call[operator=] : func:r1888_10, this:r0_5, 0:r0_8 -# 1888| mu1888_16(unknown) = ^CallSideEffect : ~m? +# 1890| r1890_8(glval) = VariableAddress[#this] : +# 1890| r1890_9(B *) = Load[#this] : &:r1890_8, ~m? +#-----| r0_5(A *) = ConvertToNonVirtualBase[B : A] : r1890_9 +# 1890| r1890_10(glval) = FunctionAddress[operator=] : +# 1890| r1890_11(glval) = VariableAddress[(unnamed parameter 0)] : +# 1890| r1890_12(B &&) = Load[(unnamed parameter 0)] : &:r1890_11, ~m? +#-----| r0_6(glval) = CopyValue : r1890_12 +# 1890| r1890_13(B *) = CopyValue : r0_6 +#-----| r0_7(A *) = ConvertToNonVirtualBase[B : A] : r1890_13 +# 1890| r1890_14(glval) = CopyValue : r0_7 +#-----| r0_8(A &) = CopyValue : r1890_14 +# 1890| r1890_15(A &) = Call[operator=] : func:r1890_10, this:r0_5, 0:r0_8 +# 1890| mu1890_16(unknown) = ^CallSideEffect : ~m? #-----| v0_9(void) = ^IndirectReadSideEffect[-1] : &:r0_5, ~m? #-----| v0_10(void) = ^BufferReadSideEffect[0] : &:r0_8, ~m? #-----| mu0_11(A) = ^IndirectMayWriteSideEffect[-1] : &:r0_5 #-----| mu0_12(unknown) = ^BufferMayWriteSideEffect[0] : &:r0_8 -#-----| r0_13(glval) = CopyValue : r1888_15 +#-----| r0_13(glval) = CopyValue : r1890_15 #-----| r0_14(glval) = VariableAddress[#return] : #-----| r0_15(glval) = VariableAddress[#this] : #-----| r0_16(B *) = Load[#this] : &:r0_15, ~m? #-----| r0_17(glval) = CopyValue : r0_16 #-----| r0_18(B &) = CopyValue : r0_17 #-----| mu0_19(B &) = Store[#return] : &:r0_14, r0_18 -# 1888| v1888_17(void) = ReturnIndirection[#this] : &:r1888_6, ~m? +# 1890| v1890_17(void) = ReturnIndirection[#this] : &:r1890_6, ~m? #-----| v0_20(void) = ReturnIndirection[(unnamed parameter 0)] : &:r0_3, ~m? -# 1888| r1888_18(glval) = VariableAddress[#return] : -# 1888| v1888_19(void) = ReturnValue : &:r1888_18, ~m? -# 1888| v1888_20(void) = AliasedUse : ~m? -# 1888| v1888_21(void) = ExitFunction : - -# 1892| void block_assignment::foo() -# 1892| Block 0 -# 1892| v1892_1(void) = EnterFunction : -# 1892| mu1892_2(unknown) = AliasedDefinition : -# 1892| mu1892_3(unknown) = InitializeNonLocal : -# 1893| r1893_1(glval) = VariableAddress[v] : -# 1893| mu1893_2(B) = Uninitialized[v] : &:r1893_1 -# 1893| r1893_3(glval) = FunctionAddress[B] : -# 1893| r1893_4(A *) = Constant[0] : -# 1893| v1893_5(void) = Call[B] : func:r1893_3, this:r1893_1, 0:r1893_4 -# 1893| mu1893_6(unknown) = ^CallSideEffect : ~m? -# 1893| v1893_7(void) = ^BufferReadSideEffect[0] : &:r1893_4, ~m? -# 1893| mu1893_8(B) = ^IndirectMayWriteSideEffect[-1] : &:r1893_1 -# 1893| mu1893_9(unknown) = ^BufferMayWriteSideEffect[0] : &:r1893_4 -# 1894| r1894_1(glval) = VariableAddress[v] : -# 1894| r1894_2(glval) = FunctionAddress[operator=] : -# 1894| r1894_3(glval) = VariableAddress[#temp1894:13] : -# 1894| mu1894_4(B) = Uninitialized[#temp1894:13] : &:r1894_3 -# 1894| r1894_5(glval) = FunctionAddress[B] : -# 1894| r1894_6(A *) = Constant[0] : -# 1894| v1894_7(void) = Call[B] : func:r1894_5, this:r1894_3, 0:r1894_6 -# 1894| mu1894_8(unknown) = ^CallSideEffect : ~m? -# 1894| v1894_9(void) = ^BufferReadSideEffect[0] : &:r1894_6, ~m? -# 1894| mu1894_10(B) = ^IndirectMayWriteSideEffect[-1] : &:r1894_3 -# 1894| mu1894_11(unknown) = ^BufferMayWriteSideEffect[0] : &:r1894_6 -# 1894| r1894_12(B &) = CopyValue : r1894_3 -# 1894| r1894_13(B &) = Call[operator=] : func:r1894_2, this:r1894_1, 0:r1894_12 -# 1894| mu1894_14(unknown) = ^CallSideEffect : ~m? -# 1894| v1894_15(void) = ^IndirectReadSideEffect[-1] : &:r1894_1, ~m? -# 1894| v1894_16(void) = ^BufferReadSideEffect[0] : &:r1894_12, ~m? -# 1894| mu1894_17(B) = ^IndirectMayWriteSideEffect[-1] : &:r1894_1 -# 1894| mu1894_18(unknown) = ^BufferMayWriteSideEffect[0] : &:r1894_12 -# 1894| r1894_19(glval) = CopyValue : r1894_13 -# 1895| v1895_1(void) = NoOp : -# 1892| v1892_4(void) = ReturnVoid : -# 1892| v1892_5(void) = AliasedUse : ~m? -# 1892| v1892_6(void) = ExitFunction : - -# 1898| void magicvars() -# 1898| Block 0 -# 1898| v1898_1(void) = EnterFunction : -# 1898| mu1898_2(unknown) = AliasedDefinition : -# 1898| mu1898_3(unknown) = InitializeNonLocal : -# 1899| r1899_1(glval) = VariableAddress[pf] : -# 1899| r1899_2(glval) = VariableAddress[__PRETTY_FUNCTION__] : -# 1899| r1899_3(char *) = Convert : r1899_2 -# 1899| mu1899_4(char *) = Store[pf] : &:r1899_1, r1899_3 -# 1900| r1900_1(glval) = VariableAddress[strfunc] : -# 1900| r1900_2(glval) = VariableAddress[__func__] : -# 1900| r1900_3(char *) = Convert : r1900_2 -# 1900| mu1900_4(char *) = Store[strfunc] : &:r1900_1, r1900_3 -# 1901| v1901_1(void) = NoOp : -# 1898| v1898_4(void) = ReturnVoid : -# 1898| v1898_5(void) = AliasedUse : ~m? -# 1898| v1898_6(void) = ExitFunction : - -# 1899| const char[17] __PRETTY_FUNCTION__ -# 1899| Block 0 -# 1899| v1899_1(void) = EnterFunction : -# 1899| mu1899_2(unknown) = AliasedDefinition : -# 1899| r1899_3(glval) = VariableAddress[__PRETTY_FUNCTION__] : -# 1899| r1899_4(glval) = StringConstant[__PRETTY_FUNCTION__] : -# 1899| r1899_5(char[17]) = Load[?] : &:r1899_4, ~m? -# 1899| mu1899_6(char[17]) = Store[__PRETTY_FUNCTION__] : &:r1899_3, r1899_5 -# 1899| v1899_7(void) = ReturnVoid : -# 1899| v1899_8(void) = AliasedUse : ~m? -# 1899| v1899_9(void) = ExitFunction : - -# 1900| const char[10] __func__ +# 1890| r1890_18(glval) = VariableAddress[#return] : +# 1890| v1890_19(void) = ReturnValue : &:r1890_18, ~m? +# 1890| v1890_20(void) = AliasedUse : ~m? +# 1890| v1890_21(void) = ExitFunction : + +# 1894| void block_assignment::foo() +# 1894| Block 0 +# 1894| v1894_1(void) = EnterFunction : +# 1894| mu1894_2(unknown) = AliasedDefinition : +# 1894| mu1894_3(unknown) = InitializeNonLocal : +# 1895| r1895_1(glval) = VariableAddress[v] : +# 1895| mu1895_2(B) = Uninitialized[v] : &:r1895_1 +# 1895| r1895_3(glval) = FunctionAddress[B] : +# 1895| r1895_4(A *) = Constant[0] : +# 1895| v1895_5(void) = Call[B] : func:r1895_3, this:r1895_1, 0:r1895_4 +# 1895| mu1895_6(unknown) = ^CallSideEffect : ~m? +# 1895| v1895_7(void) = ^BufferReadSideEffect[0] : &:r1895_4, ~m? +# 1895| mu1895_8(B) = ^IndirectMayWriteSideEffect[-1] : &:r1895_1 +# 1895| mu1895_9(unknown) = ^BufferMayWriteSideEffect[0] : &:r1895_4 +# 1896| r1896_1(glval) = VariableAddress[v] : +# 1896| r1896_2(glval) = FunctionAddress[operator=] : +# 1896| r1896_3(glval) = VariableAddress[#temp1896:13] : +# 1896| mu1896_4(B) = Uninitialized[#temp1896:13] : &:r1896_3 +# 1896| r1896_5(glval) = FunctionAddress[B] : +# 1896| r1896_6(A *) = Constant[0] : +# 1896| v1896_7(void) = Call[B] : func:r1896_5, this:r1896_3, 0:r1896_6 +# 1896| mu1896_8(unknown) = ^CallSideEffect : ~m? +# 1896| v1896_9(void) = ^BufferReadSideEffect[0] : &:r1896_6, ~m? +# 1896| mu1896_10(B) = ^IndirectMayWriteSideEffect[-1] : &:r1896_3 +# 1896| mu1896_11(unknown) = ^BufferMayWriteSideEffect[0] : &:r1896_6 +# 1896| r1896_12(B &) = CopyValue : r1896_3 +# 1896| r1896_13(B &) = Call[operator=] : func:r1896_2, this:r1896_1, 0:r1896_12 +# 1896| mu1896_14(unknown) = ^CallSideEffect : ~m? +# 1896| v1896_15(void) = ^IndirectReadSideEffect[-1] : &:r1896_1, ~m? +# 1896| v1896_16(void) = ^BufferReadSideEffect[0] : &:r1896_12, ~m? +# 1896| mu1896_17(B) = ^IndirectMayWriteSideEffect[-1] : &:r1896_1 +# 1896| mu1896_18(unknown) = ^BufferMayWriteSideEffect[0] : &:r1896_12 +# 1896| r1896_19(glval) = CopyValue : r1896_13 +# 1897| v1897_1(void) = NoOp : +# 1894| v1894_4(void) = ReturnVoid : +# 1894| v1894_5(void) = AliasedUse : ~m? +# 1894| v1894_6(void) = ExitFunction : + +# 1900| void magicvars() # 1900| Block 0 -# 1900| v1900_1(void) = EnterFunction : -# 1900| mu1900_2(unknown) = AliasedDefinition : -# 1900| r1900_3(glval) = VariableAddress[__func__] : -# 1900| r1900_4(glval) = StringConstant[__func__] : -# 1900| r1900_5(char[10]) = Load[?] : &:r1900_4, ~m? -# 1900| mu1900_6(char[10]) = Store[__func__] : &:r1900_3, r1900_5 -# 1900| v1900_7(void) = ReturnVoid : -# 1900| v1900_8(void) = AliasedUse : ~m? -# 1900| v1900_9(void) = ExitFunction : - -# 1911| void* missing_declaration_entries::Bar1::missing_type_decl_entry(missing_declaration_entries::Bar1::pointer) -# 1911| Block 0 -# 1911| v1911_1(void) = EnterFunction : -# 1911| mu1911_2(unknown) = AliasedDefinition : -# 1911| mu1911_3(unknown) = InitializeNonLocal : -# 1911| r1911_4(glval) = VariableAddress[#this] : -# 1911| mu1911_5(glval>) = InitializeParameter[#this] : &:r1911_4 -# 1911| r1911_6(glval>) = Load[#this] : &:r1911_4, ~m? -# 1911| mu1911_7(Bar1) = InitializeIndirection[#this] : &:r1911_6 -# 1911| r1911_8(glval) = VariableAddress[p] : -# 1911| mu1911_9(S *) = InitializeParameter[p] : &:r1911_8 -# 1911| r1911_10(S *) = Load[p] : &:r1911_8, ~m? -# 1911| mu1911_11(unknown) = InitializeIndirection[p] : &:r1911_10 -# 1913| r1913_1(glval) = VariableAddress[#return] : -# 1913| r1913_2(glval) = VariableAddress[p] : -# 1913| r1913_3(S *) = Load[p] : &:r1913_2, ~m? -# 1913| r1913_4(void *) = Convert : r1913_3 -# 1913| mu1913_5(void *) = Store[#return] : &:r1913_1, r1913_4 -# 1911| v1911_12(void) = ReturnIndirection[#this] : &:r1911_6, ~m? -# 1911| v1911_13(void) = ReturnIndirection[p] : &:r1911_10, ~m? -# 1911| r1911_14(glval) = VariableAddress[#return] : -# 1911| v1911_15(void) = ReturnValue : &:r1911_14, ~m? -# 1911| v1911_16(void) = AliasedUse : ~m? -# 1911| v1911_17(void) = ExitFunction : - -# 1917| void missing_declaration_entries::test1() -# 1917| Block 0 -# 1917| v1917_1(void) = EnterFunction : -# 1917| mu1917_2(unknown) = AliasedDefinition : -# 1917| mu1917_3(unknown) = InitializeNonLocal : -# 1918| r1918_1(glval>) = VariableAddress[b] : -# 1918| mu1918_2(Bar1) = Uninitialized[b] : &:r1918_1 -# 1919| r1919_1(glval>) = VariableAddress[b] : -# 1919| r1919_2(glval) = FunctionAddress[missing_type_decl_entry] : -# 1919| r1919_3(S *) = Constant[0] : -# 1919| r1919_4(void *) = Call[missing_type_decl_entry] : func:r1919_2, this:r1919_1, 0:r1919_3 -# 1919| mu1919_5(unknown) = ^CallSideEffect : ~m? -# 1919| v1919_6(void) = ^IndirectReadSideEffect[-1] : &:r1919_1, ~m? -# 1919| v1919_7(void) = ^BufferReadSideEffect[0] : &:r1919_3, ~m? -# 1919| mu1919_8(Bar1) = ^IndirectMayWriteSideEffect[-1] : &:r1919_1 -# 1919| mu1919_9(unknown) = ^BufferMayWriteSideEffect[0] : &:r1919_3 -# 1920| v1920_1(void) = NoOp : -# 1917| v1917_4(void) = ReturnVoid : -# 1917| v1917_5(void) = AliasedUse : ~m? -# 1917| v1917_6(void) = ExitFunction : - -# 1924| int missing_declaration_entries::Bar2::two_missing_variable_declaration_entries() -# 1924| Block 0 -# 1924| v1924_1(void) = EnterFunction : -# 1924| mu1924_2(unknown) = AliasedDefinition : -# 1924| mu1924_3(unknown) = InitializeNonLocal : -# 1924| r1924_4(glval) = VariableAddress[#this] : -# 1924| mu1924_5(glval>) = InitializeParameter[#this] : &:r1924_4 -# 1924| r1924_6(glval>) = Load[#this] : &:r1924_4, ~m? -# 1924| mu1924_7(Bar2) = InitializeIndirection[#this] : &:r1924_6 -# 1925| r1925_1(glval) = VariableAddress[x] : -# 1925| mu1925_2(int[10]) = Uninitialized[x] : &:r1925_1 -# 1925| r1925_3(glval) = VariableAddress[y] : -# 1925| mu1925_4(int[10]) = Uninitialized[y] : &:r1925_3 -# 1926| r1926_1(int) = Constant[10] : -# 1926| r1926_2(glval) = VariableAddress[x] : -# 1926| r1926_3(int *) = Convert : r1926_2 -# 1926| r1926_4(glval) = CopyValue : r1926_3 -# 1926| mu1926_5(int) = Store[?] : &:r1926_4, r1926_1 -# 1927| r1927_1(int) = Constant[10] : -# 1927| r1927_2(glval) = VariableAddress[y] : -# 1927| r1927_3(int *) = Convert : r1927_2 -# 1927| r1927_4(glval) = CopyValue : r1927_3 -# 1927| mu1927_5(int) = Store[?] : &:r1927_4, r1927_1 -# 1928| r1928_1(glval) = VariableAddress[#return] : +# 1900| v1900_1(void) = EnterFunction : +# 1900| mu1900_2(unknown) = AliasedDefinition : +# 1900| mu1900_3(unknown) = InitializeNonLocal : +# 1901| r1901_1(glval) = VariableAddress[pf] : +# 1901| r1901_2(glval) = VariableAddress[__PRETTY_FUNCTION__] : +# 1901| r1901_3(char *) = Convert : r1901_2 +# 1901| mu1901_4(char *) = Store[pf] : &:r1901_1, r1901_3 +# 1902| r1902_1(glval) = VariableAddress[strfunc] : +# 1902| r1902_2(glval) = VariableAddress[__func__] : +# 1902| r1902_3(char *) = Convert : r1902_2 +# 1902| mu1902_4(char *) = Store[strfunc] : &:r1902_1, r1902_3 +# 1903| v1903_1(void) = NoOp : +# 1900| v1900_4(void) = ReturnVoid : +# 1900| v1900_5(void) = AliasedUse : ~m? +# 1900| v1900_6(void) = ExitFunction : + +# 1901| const char[17] __PRETTY_FUNCTION__ +# 1901| Block 0 +# 1901| v1901_1(void) = EnterFunction : +# 1901| mu1901_2(unknown) = AliasedDefinition : +# 1901| r1901_3(glval) = VariableAddress[__PRETTY_FUNCTION__] : +# 1901| r1901_4(glval) = StringConstant[__PRETTY_FUNCTION__] : +# 1901| r1901_5(char[17]) = Load[?] : &:r1901_4, ~m? +# 1901| mu1901_6(char[17]) = Store[__PRETTY_FUNCTION__] : &:r1901_3, r1901_5 +# 1901| v1901_7(void) = ReturnVoid : +# 1901| v1901_8(void) = AliasedUse : ~m? +# 1901| v1901_9(void) = ExitFunction : + +# 1902| const char[10] __func__ +# 1902| Block 0 +# 1902| v1902_1(void) = EnterFunction : +# 1902| mu1902_2(unknown) = AliasedDefinition : +# 1902| r1902_3(glval) = VariableAddress[__func__] : +# 1902| r1902_4(glval) = StringConstant[__func__] : +# 1902| r1902_5(char[10]) = Load[?] : &:r1902_4, ~m? +# 1902| mu1902_6(char[10]) = Store[__func__] : &:r1902_3, r1902_5 +# 1902| v1902_7(void) = ReturnVoid : +# 1902| v1902_8(void) = AliasedUse : ~m? +# 1902| v1902_9(void) = ExitFunction : + +# 1913| void* missing_declaration_entries::Bar1::missing_type_decl_entry(missing_declaration_entries::Bar1::pointer) +# 1913| Block 0 +# 1913| v1913_1(void) = EnterFunction : +# 1913| mu1913_2(unknown) = AliasedDefinition : +# 1913| mu1913_3(unknown) = InitializeNonLocal : +# 1913| r1913_4(glval) = VariableAddress[#this] : +# 1913| mu1913_5(glval>) = InitializeParameter[#this] : &:r1913_4 +# 1913| r1913_6(glval>) = Load[#this] : &:r1913_4, ~m? +# 1913| mu1913_7(Bar1) = InitializeIndirection[#this] : &:r1913_6 +# 1913| r1913_8(glval) = VariableAddress[p] : +# 1913| mu1913_9(S *) = InitializeParameter[p] : &:r1913_8 +# 1913| r1913_10(S *) = Load[p] : &:r1913_8, ~m? +# 1913| mu1913_11(unknown) = InitializeIndirection[p] : &:r1913_10 +# 1915| r1915_1(glval) = VariableAddress[#return] : +# 1915| r1915_2(glval) = VariableAddress[p] : +# 1915| r1915_3(S *) = Load[p] : &:r1915_2, ~m? +# 1915| r1915_4(void *) = Convert : r1915_3 +# 1915| mu1915_5(void *) = Store[#return] : &:r1915_1, r1915_4 +# 1913| v1913_12(void) = ReturnIndirection[#this] : &:r1913_6, ~m? +# 1913| v1913_13(void) = ReturnIndirection[p] : &:r1913_10, ~m? +# 1913| r1913_14(glval) = VariableAddress[#return] : +# 1913| v1913_15(void) = ReturnValue : &:r1913_14, ~m? +# 1913| v1913_16(void) = AliasedUse : ~m? +# 1913| v1913_17(void) = ExitFunction : + +# 1919| void missing_declaration_entries::test1() +# 1919| Block 0 +# 1919| v1919_1(void) = EnterFunction : +# 1919| mu1919_2(unknown) = AliasedDefinition : +# 1919| mu1919_3(unknown) = InitializeNonLocal : +# 1920| r1920_1(glval>) = VariableAddress[b] : +# 1920| mu1920_2(Bar1) = Uninitialized[b] : &:r1920_1 +# 1921| r1921_1(glval>) = VariableAddress[b] : +# 1921| r1921_2(glval) = FunctionAddress[missing_type_decl_entry] : +# 1921| r1921_3(S *) = Constant[0] : +# 1921| r1921_4(void *) = Call[missing_type_decl_entry] : func:r1921_2, this:r1921_1, 0:r1921_3 +# 1921| mu1921_5(unknown) = ^CallSideEffect : ~m? +# 1921| v1921_6(void) = ^IndirectReadSideEffect[-1] : &:r1921_1, ~m? +# 1921| v1921_7(void) = ^BufferReadSideEffect[0] : &:r1921_3, ~m? +# 1921| mu1921_8(Bar1) = ^IndirectMayWriteSideEffect[-1] : &:r1921_1 +# 1921| mu1921_9(unknown) = ^BufferMayWriteSideEffect[0] : &:r1921_3 +# 1922| v1922_1(void) = NoOp : +# 1919| v1919_4(void) = ReturnVoid : +# 1919| v1919_5(void) = AliasedUse : ~m? +# 1919| v1919_6(void) = ExitFunction : + +# 1926| int missing_declaration_entries::Bar2::two_missing_variable_declaration_entries() +# 1926| Block 0 +# 1926| v1926_1(void) = EnterFunction : +# 1926| mu1926_2(unknown) = AliasedDefinition : +# 1926| mu1926_3(unknown) = InitializeNonLocal : +# 1926| r1926_4(glval) = VariableAddress[#this] : +# 1926| mu1926_5(glval>) = InitializeParameter[#this] : &:r1926_4 +# 1926| r1926_6(glval>) = Load[#this] : &:r1926_4, ~m? +# 1926| mu1926_7(Bar2) = InitializeIndirection[#this] : &:r1926_6 +# 1927| r1927_1(glval) = VariableAddress[x] : +# 1927| mu1927_2(int[10]) = Uninitialized[x] : &:r1927_1 +# 1927| r1927_3(glval) = VariableAddress[y] : +# 1927| mu1927_4(int[10]) = Uninitialized[y] : &:r1927_3 +# 1928| r1928_1(int) = Constant[10] : # 1928| r1928_2(glval) = VariableAddress[x] : # 1928| r1928_3(int *) = Convert : r1928_2 -# 1928| r1928_4(int) = Load[?] : &:r1928_3, ~m? -# 1928| r1928_5(glval) = VariableAddress[y] : -# 1928| r1928_6(int *) = Convert : r1928_5 -# 1928| r1928_7(int) = Load[?] : &:r1928_6, ~m? -# 1928| r1928_8(int) = Add : r1928_4, r1928_7 -# 1928| mu1928_9(int) = Store[#return] : &:r1928_1, r1928_8 -# 1924| v1924_8(void) = ReturnIndirection[#this] : &:r1924_6, ~m? -# 1924| r1924_9(glval) = VariableAddress[#return] : -# 1924| v1924_10(void) = ReturnValue : &:r1924_9, ~m? -# 1924| v1924_11(void) = AliasedUse : ~m? -# 1924| v1924_12(void) = ExitFunction : - -# 1932| void missing_declaration_entries::test2() -# 1932| Block 0 -# 1932| v1932_1(void) = EnterFunction : -# 1932| mu1932_2(unknown) = AliasedDefinition : -# 1932| mu1932_3(unknown) = InitializeNonLocal : -# 1933| r1933_1(glval>) = VariableAddress[b] : -# 1933| mu1933_2(Bar2) = Uninitialized[b] : &:r1933_1 -# 1934| r1934_1(glval>) = VariableAddress[b] : -# 1934| r1934_2(glval) = FunctionAddress[two_missing_variable_declaration_entries] : -# 1934| r1934_3(int) = Call[two_missing_variable_declaration_entries] : func:r1934_2, this:r1934_1 -# 1934| mu1934_4(unknown) = ^CallSideEffect : ~m? -# 1934| v1934_5(void) = ^IndirectReadSideEffect[-1] : &:r1934_1, ~m? -# 1934| mu1934_6(Bar2) = ^IndirectMayWriteSideEffect[-1] : &:r1934_1 -# 1935| v1935_1(void) = NoOp : -# 1932| v1932_4(void) = ReturnVoid : -# 1932| v1932_5(void) = AliasedUse : ~m? -# 1932| v1932_6(void) = ExitFunction : - -# 1939| int missing_declaration_entries::Bar3::two_more_missing_variable_declaration_entries() -# 1939| Block 0 -# 1939| v1939_1(void) = EnterFunction : -# 1939| mu1939_2(unknown) = AliasedDefinition : -# 1939| mu1939_3(unknown) = InitializeNonLocal : -# 1939| r1939_4(glval) = VariableAddress[#this] : -# 1939| mu1939_5(glval>) = InitializeParameter[#this] : &:r1939_4 -# 1939| r1939_6(glval>) = Load[#this] : &:r1939_4, ~m? -# 1939| mu1939_7(Bar3) = InitializeIndirection[#this] : &:r1939_6 -# 1942| r1942_1(glval) = VariableAddress[#return] : -# 1942| r1942_2(glval) = VariableAddress[g] : -# 1942| r1942_3(int) = Load[g] : &:r1942_2, ~m? -# 1942| mu1942_4(int) = Store[#return] : &:r1942_1, r1942_3 -# 1939| v1939_8(void) = ReturnIndirection[#this] : &:r1939_6, ~m? -# 1939| r1939_9(glval) = VariableAddress[#return] : -# 1939| v1939_10(void) = ReturnValue : &:r1939_9, ~m? -# 1939| v1939_11(void) = AliasedUse : ~m? -# 1939| v1939_12(void) = ExitFunction : - -# 1946| void missing_declaration_entries::test3() -# 1946| Block 0 -# 1946| v1946_1(void) = EnterFunction : -# 1946| mu1946_2(unknown) = AliasedDefinition : -# 1946| mu1946_3(unknown) = InitializeNonLocal : -# 1947| r1947_1(glval>) = VariableAddress[b] : -# 1947| mu1947_2(Bar3) = Uninitialized[b] : &:r1947_1 -# 1948| r1948_1(glval>) = VariableAddress[b] : -# 1948| r1948_2(glval) = FunctionAddress[two_more_missing_variable_declaration_entries] : -# 1948| r1948_3(int) = Call[two_more_missing_variable_declaration_entries] : func:r1948_2, this:r1948_1 -# 1948| mu1948_4(unknown) = ^CallSideEffect : ~m? -# 1948| v1948_5(void) = ^IndirectReadSideEffect[-1] : &:r1948_1, ~m? -# 1948| mu1948_6(Bar3) = ^IndirectMayWriteSideEffect[-1] : &:r1948_1 -# 1949| v1949_1(void) = NoOp : -# 1946| v1946_4(void) = ReturnVoid : -# 1946| v1946_5(void) = AliasedUse : ~m? -# 1946| v1946_6(void) = ExitFunction : - -# 1952| char global_template -# 1952| Block 0 -# 1952| v1952_1(void) = EnterFunction : -# 1952| mu1952_2(unknown) = AliasedDefinition : -# 1952| r1952_3(glval) = VariableAddress[global_template] : -# 1952| r1952_4(char) = Constant[42] : -# 1952| mu1952_5(char) = Store[global_template] : &:r1952_3, r1952_4 -# 1952| v1952_6(void) = ReturnVoid : -# 1952| v1952_7(void) = AliasedUse : ~m? -# 1952| v1952_8(void) = ExitFunction : - -# 1952| int global_template -# 1952| Block 0 -# 1952| v1952_1(void) = EnterFunction : -# 1952| mu1952_2(unknown) = AliasedDefinition : -# 1952| r1952_3(glval) = VariableAddress[global_template] : -# 1952| r1952_4(int) = Constant[42] : -# 1952| mu1952_5(int) = Store[global_template] : &:r1952_3, r1952_4 -# 1952| v1952_6(void) = ReturnVoid : -# 1952| v1952_7(void) = AliasedUse : ~m? -# 1952| v1952_8(void) = ExitFunction : - -# 1954| int test_global_template_int() +# 1928| r1928_4(glval) = CopyValue : r1928_3 +# 1928| mu1928_5(int) = Store[?] : &:r1928_4, r1928_1 +# 1929| r1929_1(int) = Constant[10] : +# 1929| r1929_2(glval) = VariableAddress[y] : +# 1929| r1929_3(int *) = Convert : r1929_2 +# 1929| r1929_4(glval) = CopyValue : r1929_3 +# 1929| mu1929_5(int) = Store[?] : &:r1929_4, r1929_1 +# 1930| r1930_1(glval) = VariableAddress[#return] : +# 1930| r1930_2(glval) = VariableAddress[x] : +# 1930| r1930_3(int *) = Convert : r1930_2 +# 1930| r1930_4(int) = Load[?] : &:r1930_3, ~m? +# 1930| r1930_5(glval) = VariableAddress[y] : +# 1930| r1930_6(int *) = Convert : r1930_5 +# 1930| r1930_7(int) = Load[?] : &:r1930_6, ~m? +# 1930| r1930_8(int) = Add : r1930_4, r1930_7 +# 1930| mu1930_9(int) = Store[#return] : &:r1930_1, r1930_8 +# 1926| v1926_8(void) = ReturnIndirection[#this] : &:r1926_6, ~m? +# 1926| r1926_9(glval) = VariableAddress[#return] : +# 1926| v1926_10(void) = ReturnValue : &:r1926_9, ~m? +# 1926| v1926_11(void) = AliasedUse : ~m? +# 1926| v1926_12(void) = ExitFunction : + +# 1934| void missing_declaration_entries::test2() +# 1934| Block 0 +# 1934| v1934_1(void) = EnterFunction : +# 1934| mu1934_2(unknown) = AliasedDefinition : +# 1934| mu1934_3(unknown) = InitializeNonLocal : +# 1935| r1935_1(glval>) = VariableAddress[b] : +# 1935| mu1935_2(Bar2) = Uninitialized[b] : &:r1935_1 +# 1936| r1936_1(glval>) = VariableAddress[b] : +# 1936| r1936_2(glval) = FunctionAddress[two_missing_variable_declaration_entries] : +# 1936| r1936_3(int) = Call[two_missing_variable_declaration_entries] : func:r1936_2, this:r1936_1 +# 1936| mu1936_4(unknown) = ^CallSideEffect : ~m? +# 1936| v1936_5(void) = ^IndirectReadSideEffect[-1] : &:r1936_1, ~m? +# 1936| mu1936_6(Bar2) = ^IndirectMayWriteSideEffect[-1] : &:r1936_1 +# 1937| v1937_1(void) = NoOp : +# 1934| v1934_4(void) = ReturnVoid : +# 1934| v1934_5(void) = AliasedUse : ~m? +# 1934| v1934_6(void) = ExitFunction : + +# 1941| int missing_declaration_entries::Bar3::two_more_missing_variable_declaration_entries() +# 1941| Block 0 +# 1941| v1941_1(void) = EnterFunction : +# 1941| mu1941_2(unknown) = AliasedDefinition : +# 1941| mu1941_3(unknown) = InitializeNonLocal : +# 1941| r1941_4(glval) = VariableAddress[#this] : +# 1941| mu1941_5(glval>) = InitializeParameter[#this] : &:r1941_4 +# 1941| r1941_6(glval>) = Load[#this] : &:r1941_4, ~m? +# 1941| mu1941_7(Bar3) = InitializeIndirection[#this] : &:r1941_6 +# 1944| r1944_1(glval) = VariableAddress[#return] : +# 1944| r1944_2(glval) = VariableAddress[g] : +# 1944| r1944_3(int) = Load[g] : &:r1944_2, ~m? +# 1944| mu1944_4(int) = Store[#return] : &:r1944_1, r1944_3 +# 1941| v1941_8(void) = ReturnIndirection[#this] : &:r1941_6, ~m? +# 1941| r1941_9(glval) = VariableAddress[#return] : +# 1941| v1941_10(void) = ReturnValue : &:r1941_9, ~m? +# 1941| v1941_11(void) = AliasedUse : ~m? +# 1941| v1941_12(void) = ExitFunction : + +# 1948| void missing_declaration_entries::test3() +# 1948| Block 0 +# 1948| v1948_1(void) = EnterFunction : +# 1948| mu1948_2(unknown) = AliasedDefinition : +# 1948| mu1948_3(unknown) = InitializeNonLocal : +# 1949| r1949_1(glval>) = VariableAddress[b] : +# 1949| mu1949_2(Bar3) = Uninitialized[b] : &:r1949_1 +# 1950| r1950_1(glval>) = VariableAddress[b] : +# 1950| r1950_2(glval) = FunctionAddress[two_more_missing_variable_declaration_entries] : +# 1950| r1950_3(int) = Call[two_more_missing_variable_declaration_entries] : func:r1950_2, this:r1950_1 +# 1950| mu1950_4(unknown) = ^CallSideEffect : ~m? +# 1950| v1950_5(void) = ^IndirectReadSideEffect[-1] : &:r1950_1, ~m? +# 1950| mu1950_6(Bar3) = ^IndirectMayWriteSideEffect[-1] : &:r1950_1 +# 1951| v1951_1(void) = NoOp : +# 1948| v1948_4(void) = ReturnVoid : +# 1948| v1948_5(void) = AliasedUse : ~m? +# 1948| v1948_6(void) = ExitFunction : + +# 1954| char global_template # 1954| Block 0 # 1954| v1954_1(void) = EnterFunction : # 1954| mu1954_2(unknown) = AliasedDefinition : -# 1954| mu1954_3(unknown) = InitializeNonLocal : -# 1955| r1955_1(glval) = VariableAddress[local_int] : -# 1955| r1955_2(glval) = VariableAddress[global_template] : -# 1955| r1955_3(int) = Load[global_template] : &:r1955_2, ~m? -# 1955| mu1955_4(int) = Store[local_int] : &:r1955_1, r1955_3 -# 1956| r1956_1(glval) = VariableAddress[local_char] : -# 1956| r1956_2(glval) = VariableAddress[global_template] : -# 1956| r1956_3(char) = Load[global_template] : &:r1956_2, ~m? -# 1956| mu1956_4(char) = Store[local_char] : &:r1956_1, r1956_3 -# 1957| r1957_1(glval) = VariableAddress[#return] : -# 1957| r1957_2(glval) = VariableAddress[local_int] : -# 1957| r1957_3(int) = Load[local_int] : &:r1957_2, ~m? -# 1957| r1957_4(glval) = VariableAddress[local_char] : -# 1957| r1957_5(char) = Load[local_char] : &:r1957_4, ~m? -# 1957| r1957_6(int) = Convert : r1957_5 -# 1957| r1957_7(int) = Add : r1957_3, r1957_6 -# 1957| mu1957_8(int) = Store[#return] : &:r1957_1, r1957_7 -# 1954| r1954_4(glval) = VariableAddress[#return] : -# 1954| v1954_5(void) = ReturnValue : &:r1954_4, ~m? -# 1954| v1954_6(void) = AliasedUse : ~m? -# 1954| v1954_7(void) = ExitFunction : - -# 1962| int noreturnTest(int) -# 1962| Block 0 -# 1962| v1962_1(void) = EnterFunction : -# 1962| mu1962_2(unknown) = AliasedDefinition : -# 1962| mu1962_3(unknown) = InitializeNonLocal : -# 1962| r1962_4(glval) = VariableAddress[x] : -# 1962| mu1962_5(int) = InitializeParameter[x] : &:r1962_4 -# 1963| r1963_1(glval) = VariableAddress[x] : -# 1963| r1963_2(int) = Load[x] : &:r1963_1, ~m? -# 1963| r1963_3(int) = Constant[10] : -# 1963| r1963_4(bool) = CompareLT : r1963_2, r1963_3 -# 1963| v1963_5(void) = ConditionalBranch : r1963_4 +# 1954| r1954_3(glval) = VariableAddress[global_template] : +# 1954| r1954_4(char) = Constant[42] : +# 1954| mu1954_5(char) = Store[global_template] : &:r1954_3, r1954_4 +# 1954| v1954_6(void) = ReturnVoid : +# 1954| v1954_7(void) = AliasedUse : ~m? +# 1954| v1954_8(void) = ExitFunction : + +# 1954| int global_template +# 1954| Block 0 +# 1954| v1954_1(void) = EnterFunction : +# 1954| mu1954_2(unknown) = AliasedDefinition : +# 1954| r1954_3(glval) = VariableAddress[global_template] : +# 1954| r1954_4(int) = Constant[42] : +# 1954| mu1954_5(int) = Store[global_template] : &:r1954_3, r1954_4 +# 1954| v1954_6(void) = ReturnVoid : +# 1954| v1954_7(void) = AliasedUse : ~m? +# 1954| v1954_8(void) = ExitFunction : + +# 1956| int test_global_template_int() +# 1956| Block 0 +# 1956| v1956_1(void) = EnterFunction : +# 1956| mu1956_2(unknown) = AliasedDefinition : +# 1956| mu1956_3(unknown) = InitializeNonLocal : +# 1957| r1957_1(glval) = VariableAddress[local_int] : +# 1957| r1957_2(glval) = VariableAddress[global_template] : +# 1957| r1957_3(int) = Load[global_template] : &:r1957_2, ~m? +# 1957| mu1957_4(int) = Store[local_int] : &:r1957_1, r1957_3 +# 1958| r1958_1(glval) = VariableAddress[local_char] : +# 1958| r1958_2(glval) = VariableAddress[global_template] : +# 1958| r1958_3(char) = Load[global_template] : &:r1958_2, ~m? +# 1958| mu1958_4(char) = Store[local_char] : &:r1958_1, r1958_3 +# 1959| r1959_1(glval) = VariableAddress[#return] : +# 1959| r1959_2(glval) = VariableAddress[local_int] : +# 1959| r1959_3(int) = Load[local_int] : &:r1959_2, ~m? +# 1959| r1959_4(glval) = VariableAddress[local_char] : +# 1959| r1959_5(char) = Load[local_char] : &:r1959_4, ~m? +# 1959| r1959_6(int) = Convert : r1959_5 +# 1959| r1959_7(int) = Add : r1959_3, r1959_6 +# 1959| mu1959_8(int) = Store[#return] : &:r1959_1, r1959_7 +# 1956| r1956_4(glval) = VariableAddress[#return] : +# 1956| v1956_5(void) = ReturnValue : &:r1956_4, ~m? +# 1956| v1956_6(void) = AliasedUse : ~m? +# 1956| v1956_7(void) = ExitFunction : + +# 1964| int noreturnTest(int) +# 1964| Block 0 +# 1964| v1964_1(void) = EnterFunction : +# 1964| mu1964_2(unknown) = AliasedDefinition : +# 1964| mu1964_3(unknown) = InitializeNonLocal : +# 1964| r1964_4(glval) = VariableAddress[x] : +# 1964| mu1964_5(int) = InitializeParameter[x] : &:r1964_4 +# 1965| r1965_1(glval) = VariableAddress[x] : +# 1965| r1965_2(int) = Load[x] : &:r1965_1, ~m? +# 1965| r1965_3(int) = Constant[10] : +# 1965| r1965_4(bool) = CompareLT : r1965_2, r1965_3 +# 1965| v1965_5(void) = ConditionalBranch : r1965_4 #-----| False -> Block 3 #-----| True -> Block 2 -# 1962| Block 1 -# 1962| r1962_6(glval) = VariableAddress[#return] : -# 1962| v1962_7(void) = ReturnValue : &:r1962_6, ~m? -# 1962| v1962_8(void) = AliasedUse : ~m? -# 1962| v1962_9(void) = ExitFunction : - -# 1964| Block 2 -# 1964| r1964_1(glval) = VariableAddress[#return] : -# 1964| r1964_2(glval) = VariableAddress[x] : -# 1964| r1964_3(int) = Load[x] : &:r1964_2, ~m? -# 1964| mu1964_4(int) = Store[#return] : &:r1964_1, r1964_3 +# 1964| Block 1 +# 1964| r1964_6(glval) = VariableAddress[#return] : +# 1964| v1964_7(void) = ReturnValue : &:r1964_6, ~m? +# 1964| v1964_8(void) = AliasedUse : ~m? +# 1964| v1964_9(void) = ExitFunction : + +# 1966| Block 2 +# 1966| r1966_1(glval) = VariableAddress[#return] : +# 1966| r1966_2(glval) = VariableAddress[x] : +# 1966| r1966_3(int) = Load[x] : &:r1966_2, ~m? +# 1966| mu1966_4(int) = Store[#return] : &:r1966_1, r1966_3 #-----| Goto -> Block 1 -# 1966| Block 3 -# 1966| r1966_1(glval) = FunctionAddress[noreturnFunc] : -# 1966| v1966_2(void) = Call[noreturnFunc] : func:r1966_1 -# 1966| mu1966_3(unknown) = ^CallSideEffect : ~m? -# 1962| v1962_10(void) = Unreached : +# 1968| Block 3 +# 1968| r1968_1(glval) = FunctionAddress[noreturnFunc] : +# 1968| v1968_2(void) = Call[noreturnFunc] : func:r1968_1 +# 1968| mu1968_3(unknown) = ^CallSideEffect : ~m? +# 1964| v1964_10(void) = Unreached : -# 1968| Block 4 -# 1968| r1968_1(glval) = VariableAddress[#return] : -# 1968| mu1968_2(int) = Uninitialized[#return] : &:r1968_1 +# 1970| Block 4 +# 1970| r1970_1(glval) = VariableAddress[#return] : +# 1970| mu1970_2(int) = Uninitialized[#return] : &:r1970_1 #-----| Goto -> Block 1 -# 1970| int noreturnTest2(int) -# 1970| Block 0 -# 1970| v1970_1(void) = EnterFunction : -# 1970| mu1970_2(unknown) = AliasedDefinition : -# 1970| mu1970_3(unknown) = InitializeNonLocal : -# 1970| r1970_4(glval) = VariableAddress[x] : -# 1970| mu1970_5(int) = InitializeParameter[x] : &:r1970_4 -# 1971| r1971_1(glval) = VariableAddress[x] : -# 1971| r1971_2(int) = Load[x] : &:r1971_1, ~m? -# 1971| r1971_3(int) = Constant[10] : -# 1971| r1971_4(bool) = CompareLT : r1971_2, r1971_3 -# 1971| v1971_5(void) = ConditionalBranch : r1971_4 +# 1972| int noreturnTest2(int) +# 1972| Block 0 +# 1972| v1972_1(void) = EnterFunction : +# 1972| mu1972_2(unknown) = AliasedDefinition : +# 1972| mu1972_3(unknown) = InitializeNonLocal : +# 1972| r1972_4(glval) = VariableAddress[x] : +# 1972| mu1972_5(int) = InitializeParameter[x] : &:r1972_4 +# 1973| r1973_1(glval) = VariableAddress[x] : +# 1973| r1973_2(int) = Load[x] : &:r1973_1, ~m? +# 1973| r1973_3(int) = Constant[10] : +# 1973| r1973_4(bool) = CompareLT : r1973_2, r1973_3 +# 1973| v1973_5(void) = ConditionalBranch : r1973_4 #-----| False -> Block 2 #-----| True -> Block 1 -# 1972| Block 1 -# 1972| r1972_1(glval) = FunctionAddress[noreturnFunc] : -# 1972| v1972_2(void) = Call[noreturnFunc] : func:r1972_1 -# 1972| mu1972_3(unknown) = ^CallSideEffect : ~m? -# 1970| v1970_6(void) = Unreached : - -# 1974| Block 2 -# 1974| r1974_1(glval) = VariableAddress[#return] : -# 1974| r1974_2(glval) = VariableAddress[x] : -# 1974| r1974_3(int) = Load[x] : &:r1974_2, ~m? -# 1974| mu1974_4(int) = Store[#return] : &:r1974_1, r1974_3 -# 1970| r1970_7(glval) = VariableAddress[#return] : -# 1970| v1970_8(void) = ReturnValue : &:r1970_7, ~m? -# 1970| v1970_9(void) = AliasedUse : ~m? -# 1970| v1970_10(void) = ExitFunction : - -# 1977| int static_function(int) -# 1977| Block 0 -# 1977| v1977_1(void) = EnterFunction : -# 1977| mu1977_2(unknown) = AliasedDefinition : -# 1977| mu1977_3(unknown) = InitializeNonLocal : -# 1977| r1977_4(glval) = VariableAddress[x] : -# 1977| mu1977_5(int) = InitializeParameter[x] : &:r1977_4 -# 1978| r1978_1(glval) = VariableAddress[#return] : -# 1978| r1978_2(glval) = VariableAddress[x] : -# 1978| r1978_3(int) = Load[x] : &:r1978_2, ~m? -# 1978| mu1978_4(int) = Store[#return] : &:r1978_1, r1978_3 -# 1977| r1977_6(glval) = VariableAddress[#return] : -# 1977| v1977_7(void) = ReturnValue : &:r1977_6, ~m? -# 1977| v1977_8(void) = AliasedUse : ~m? -# 1977| v1977_9(void) = ExitFunction : - -# 1981| void test_static_functions_with_assignments() -# 1981| Block 0 -# 1981| v1981_1(void) = EnterFunction : -# 1981| mu1981_2(unknown) = AliasedDefinition : -# 1981| mu1981_3(unknown) = InitializeNonLocal : -# 1982| r1982_1(glval) = VariableAddress[c] : -# 1982| mu1982_2(C) = Uninitialized[c] : &:r1982_1 -# 1982| r1982_3(glval) = FunctionAddress[C] : -# 1982| v1982_4(void) = Call[C] : func:r1982_3, this:r1982_1 -# 1982| mu1982_5(unknown) = ^CallSideEffect : ~m? -# 1982| mu1982_6(C) = ^IndirectMayWriteSideEffect[-1] : &:r1982_1 -# 1983| r1983_1(glval) = VariableAddress[x] : -# 1983| mu1983_2(int) = Uninitialized[x] : &:r1983_1 +# 1974| Block 1 +# 1974| r1974_1(glval) = FunctionAddress[noreturnFunc] : +# 1974| v1974_2(void) = Call[noreturnFunc] : func:r1974_1 +# 1974| mu1974_3(unknown) = ^CallSideEffect : ~m? +# 1972| v1972_6(void) = Unreached : + +# 1976| Block 2 +# 1976| r1976_1(glval) = VariableAddress[#return] : +# 1976| r1976_2(glval) = VariableAddress[x] : +# 1976| r1976_3(int) = Load[x] : &:r1976_2, ~m? +# 1976| mu1976_4(int) = Store[#return] : &:r1976_1, r1976_3 +# 1972| r1972_7(glval) = VariableAddress[#return] : +# 1972| v1972_8(void) = ReturnValue : &:r1972_7, ~m? +# 1972| v1972_9(void) = AliasedUse : ~m? +# 1972| v1972_10(void) = ExitFunction : + +# 1979| int static_function(int) +# 1979| Block 0 +# 1979| v1979_1(void) = EnterFunction : +# 1979| mu1979_2(unknown) = AliasedDefinition : +# 1979| mu1979_3(unknown) = InitializeNonLocal : +# 1979| r1979_4(glval) = VariableAddress[x] : +# 1979| mu1979_5(int) = InitializeParameter[x] : &:r1979_4 +# 1980| r1980_1(glval) = VariableAddress[#return] : +# 1980| r1980_2(glval) = VariableAddress[x] : +# 1980| r1980_3(int) = Load[x] : &:r1980_2, ~m? +# 1980| mu1980_4(int) = Store[#return] : &:r1980_1, r1980_3 +# 1979| r1979_6(glval) = VariableAddress[#return] : +# 1979| v1979_7(void) = ReturnValue : &:r1979_6, ~m? +# 1979| v1979_8(void) = AliasedUse : ~m? +# 1979| v1979_9(void) = ExitFunction : + +# 1983| void test_static_functions_with_assignments() +# 1983| Block 0 +# 1983| v1983_1(void) = EnterFunction : +# 1983| mu1983_2(unknown) = AliasedDefinition : +# 1983| mu1983_3(unknown) = InitializeNonLocal : # 1984| r1984_1(glval) = VariableAddress[c] : -# 1984| r1984_2(glval) = FunctionAddress[StaticMemberFunction] : -# 1984| r1984_3(int) = Constant[10] : -# 1984| r1984_4(int) = Call[StaticMemberFunction] : func:r1984_2, 0:r1984_3 +# 1984| mu1984_2(C) = Uninitialized[c] : &:r1984_1 +# 1984| r1984_3(glval) = FunctionAddress[C] : +# 1984| v1984_4(void) = Call[C] : func:r1984_3, this:r1984_1 # 1984| mu1984_5(unknown) = ^CallSideEffect : ~m? -# 1984| r1984_6(glval) = VariableAddress[x] : -# 1984| mu1984_7(int) = Store[x] : &:r1984_6, r1984_4 -# 1985| r1985_1(glval) = VariableAddress[y] : -# 1985| mu1985_2(int) = Uninitialized[y] : &:r1985_1 -# 1986| r1986_1(glval) = FunctionAddress[StaticMemberFunction] : -# 1986| r1986_2(int) = Constant[10] : -# 1986| r1986_3(int) = Call[StaticMemberFunction] : func:r1986_1, 0:r1986_2 -# 1986| mu1986_4(unknown) = ^CallSideEffect : ~m? -# 1986| r1986_5(glval) = VariableAddress[y] : -# 1986| mu1986_6(int) = Store[y] : &:r1986_5, r1986_3 -# 1987| r1987_1(glval) = VariableAddress[z] : -# 1987| mu1987_2(int) = Uninitialized[z] : &:r1987_1 -# 1988| r1988_1(glval) = FunctionAddress[static_function] : +# 1984| mu1984_6(C) = ^IndirectMayWriteSideEffect[-1] : &:r1984_1 +# 1985| r1985_1(glval) = VariableAddress[x] : +# 1985| mu1985_2(int) = Uninitialized[x] : &:r1985_1 +# 1986| r1986_1(glval) = VariableAddress[c] : +# 1986| r1986_2(glval) = FunctionAddress[StaticMemberFunction] : +# 1986| r1986_3(int) = Constant[10] : +# 1986| r1986_4(int) = Call[StaticMemberFunction] : func:r1986_2, 0:r1986_3 +# 1986| mu1986_5(unknown) = ^CallSideEffect : ~m? +# 1986| r1986_6(glval) = VariableAddress[x] : +# 1986| mu1986_7(int) = Store[x] : &:r1986_6, r1986_4 +# 1987| r1987_1(glval) = VariableAddress[y] : +# 1987| mu1987_2(int) = Uninitialized[y] : &:r1987_1 +# 1988| r1988_1(glval) = FunctionAddress[StaticMemberFunction] : # 1988| r1988_2(int) = Constant[10] : -# 1988| r1988_3(int) = Call[static_function] : func:r1988_1, 0:r1988_2 +# 1988| r1988_3(int) = Call[StaticMemberFunction] : func:r1988_1, 0:r1988_2 # 1988| mu1988_4(unknown) = ^CallSideEffect : ~m? -# 1988| r1988_5(glval) = VariableAddress[z] : -# 1988| mu1988_6(int) = Store[z] : &:r1988_5, r1988_3 -# 1989| v1989_1(void) = NoOp : -# 1989| r1989_2(glval) = VariableAddress[c] : -# 1989| r1989_3(glval) = FunctionAddress[~C] : -# 1989| v1989_4(void) = Call[~C] : func:r1989_3, this:r1989_2 -# 1989| mu1989_5(unknown) = ^CallSideEffect : ~m? -# 1989| v1989_6(void) = ^IndirectReadSideEffect[-1] : &:r1989_2, ~m? -# 1989| mu1989_7(C) = ^IndirectMayWriteSideEffect[-1] : &:r1989_2 -# 1981| v1981_4(void) = ReturnVoid : -# 1981| v1981_5(void) = AliasedUse : ~m? -# 1981| v1981_6(void) = ExitFunction : - -# 1991| void test_double_assign() -# 1991| Block 0 -# 1991| v1991_1(void) = EnterFunction : -# 1991| mu1991_2(unknown) = AliasedDefinition : -# 1991| mu1991_3(unknown) = InitializeNonLocal : -# 1992| r1992_1(glval) = VariableAddress[i] : -# 1992| mu1992_2(int) = Uninitialized[i] : &:r1992_1 -# 1992| r1992_3(glval) = VariableAddress[j] : -# 1992| mu1992_4(int) = Uninitialized[j] : &:r1992_3 -# 1993| r1993_1(int) = Constant[40] : -# 1993| r1993_2(glval) = VariableAddress[j] : -# 1993| mu1993_3(int) = Store[j] : &:r1993_2, r1993_1 -# 1993| r1993_4(int) = Load[j] : &:r1993_2, ~m? -# 1993| r1993_5(glval) = VariableAddress[i] : -# 1993| mu1993_6(int) = Store[i] : &:r1993_5, r1993_4 -# 1994| v1994_1(void) = NoOp : -# 1991| v1991_4(void) = ReturnVoid : -# 1991| v1991_5(void) = AliasedUse : ~m? -# 1991| v1991_6(void) = ExitFunction : - -# 1996| void test_assign_with_assign_operation() -# 1996| Block 0 -# 1996| v1996_1(void) = EnterFunction : -# 1996| mu1996_2(unknown) = AliasedDefinition : -# 1996| mu1996_3(unknown) = InitializeNonLocal : -# 1997| r1997_1(glval) = VariableAddress[i] : -# 1997| mu1997_2(int) = Uninitialized[i] : &:r1997_1 -# 1997| r1997_3(glval) = VariableAddress[j] : -# 1997| r1997_4(int) = Constant[0] : -# 1997| mu1997_5(int) = Store[j] : &:r1997_3, r1997_4 -# 1998| r1998_1(int) = Constant[40] : -# 1998| r1998_2(glval) = VariableAddress[j] : -# 1998| r1998_3(int) = Load[j] : &:r1998_2, ~m? -# 1998| r1998_4(int) = Add : r1998_3, r1998_1 -# 1998| mu1998_5(int) = Store[j] : &:r1998_2, r1998_4 -# 1998| r1998_6(int) = Load[j] : &:r1998_2, ~m? -# 1998| r1998_7(glval) = VariableAddress[i] : -# 1998| mu1998_8(int) = Store[i] : &:r1998_7, r1998_6 -# 1999| v1999_1(void) = NoOp : -# 1996| v1996_4(void) = ReturnVoid : -# 1996| v1996_5(void) = AliasedUse : ~m? -# 1996| v1996_6(void) = ExitFunction : - -# 2005| D& D::ReferenceStaticMemberFunction() -# 2005| Block 0 -# 2005| v2005_1(void) = EnterFunction : -# 2005| mu2005_2(unknown) = AliasedDefinition : -# 2005| mu2005_3(unknown) = InitializeNonLocal : -# 2006| r2006_1(glval) = VariableAddress[#return] : -# 2006| r2006_2(glval) = VariableAddress[x] : -# 2006| r2006_3(D &) = CopyValue : r2006_2 -# 2006| mu2006_4(D &) = Store[#return] : &:r2006_1, r2006_3 -# 2005| r2005_4(glval) = VariableAddress[#return] : -# 2005| v2005_5(void) = ReturnValue : &:r2005_4, ~m? -# 2005| v2005_6(void) = AliasedUse : ~m? -# 2005| v2005_7(void) = ExitFunction : - -# 2008| D D::ObjectStaticMemberFunction() -# 2008| Block 0 -# 2008| v2008_1(void) = EnterFunction : -# 2008| mu2008_2(unknown) = AliasedDefinition : -# 2008| mu2008_3(unknown) = InitializeNonLocal : -# 2009| r2009_1(glval) = VariableAddress[#return] : -# 2009| r2009_2(glval) = VariableAddress[x] : -# 2009| r2009_3(D) = Load[x] : &:r2009_2, ~m? -# 2009| mu2009_4(D) = Store[#return] : &:r2009_1, r2009_3 -# 2008| r2008_4(glval) = VariableAddress[#return] : -# 2008| v2008_5(void) = ReturnValue : &:r2008_4, ~m? -# 2008| v2008_6(void) = AliasedUse : ~m? -# 2008| v2008_7(void) = ExitFunction : - -# 2013| void test_static_member_functions_with_reference_return() -# 2013| Block 0 -# 2013| v2013_1(void) = EnterFunction : -# 2013| mu2013_2(unknown) = AliasedDefinition : -# 2013| mu2013_3(unknown) = InitializeNonLocal : -# 2014| r2014_1(glval) = VariableAddress[d] : -# 2014| mu2014_2(D) = Uninitialized[d] : &:r2014_1 +# 1988| r1988_5(glval) = VariableAddress[y] : +# 1988| mu1988_6(int) = Store[y] : &:r1988_5, r1988_3 +# 1989| r1989_1(glval) = VariableAddress[z] : +# 1989| mu1989_2(int) = Uninitialized[z] : &:r1989_1 +# 1990| r1990_1(glval) = FunctionAddress[static_function] : +# 1990| r1990_2(int) = Constant[10] : +# 1990| r1990_3(int) = Call[static_function] : func:r1990_1, 0:r1990_2 +# 1990| mu1990_4(unknown) = ^CallSideEffect : ~m? +# 1990| r1990_5(glval) = VariableAddress[z] : +# 1990| mu1990_6(int) = Store[z] : &:r1990_5, r1990_3 +# 1991| v1991_1(void) = NoOp : +# 1991| r1991_2(glval) = VariableAddress[c] : +# 1991| r1991_3(glval) = FunctionAddress[~C] : +# 1991| v1991_4(void) = Call[~C] : func:r1991_3, this:r1991_2 +# 1991| mu1991_5(unknown) = ^CallSideEffect : ~m? +# 1991| v1991_6(void) = ^IndirectReadSideEffect[-1] : &:r1991_2, ~m? +# 1991| mu1991_7(C) = ^IndirectMayWriteSideEffect[-1] : &:r1991_2 +# 1983| v1983_4(void) = ReturnVoid : +# 1983| v1983_5(void) = AliasedUse : ~m? +# 1983| v1983_6(void) = ExitFunction : + +# 1993| void test_double_assign() +# 1993| Block 0 +# 1993| v1993_1(void) = EnterFunction : +# 1993| mu1993_2(unknown) = AliasedDefinition : +# 1993| mu1993_3(unknown) = InitializeNonLocal : +# 1994| r1994_1(glval) = VariableAddress[i] : +# 1994| mu1994_2(int) = Uninitialized[i] : &:r1994_1 +# 1994| r1994_3(glval) = VariableAddress[j] : +# 1994| mu1994_4(int) = Uninitialized[j] : &:r1994_3 +# 1995| r1995_1(int) = Constant[40] : +# 1995| r1995_2(glval) = VariableAddress[j] : +# 1995| mu1995_3(int) = Store[j] : &:r1995_2, r1995_1 +# 1995| r1995_4(int) = Load[j] : &:r1995_2, ~m? +# 1995| r1995_5(glval) = VariableAddress[i] : +# 1995| mu1995_6(int) = Store[i] : &:r1995_5, r1995_4 +# 1996| v1996_1(void) = NoOp : +# 1993| v1993_4(void) = ReturnVoid : +# 1993| v1993_5(void) = AliasedUse : ~m? +# 1993| v1993_6(void) = ExitFunction : + +# 1998| void test_assign_with_assign_operation() +# 1998| Block 0 +# 1998| v1998_1(void) = EnterFunction : +# 1998| mu1998_2(unknown) = AliasedDefinition : +# 1998| mu1998_3(unknown) = InitializeNonLocal : +# 1999| r1999_1(glval) = VariableAddress[i] : +# 1999| mu1999_2(int) = Uninitialized[i] : &:r1999_1 +# 1999| r1999_3(glval) = VariableAddress[j] : +# 1999| r1999_4(int) = Constant[0] : +# 1999| mu1999_5(int) = Store[j] : &:r1999_3, r1999_4 +# 2000| r2000_1(int) = Constant[40] : +# 2000| r2000_2(glval) = VariableAddress[j] : +# 2000| r2000_3(int) = Load[j] : &:r2000_2, ~m? +# 2000| r2000_4(int) = Add : r2000_3, r2000_1 +# 2000| mu2000_5(int) = Store[j] : &:r2000_2, r2000_4 +# 2000| r2000_6(int) = Load[j] : &:r2000_2, ~m? +# 2000| r2000_7(glval) = VariableAddress[i] : +# 2000| mu2000_8(int) = Store[i] : &:r2000_7, r2000_6 +# 2001| v2001_1(void) = NoOp : +# 1998| v1998_4(void) = ReturnVoid : +# 1998| v1998_5(void) = AliasedUse : ~m? +# 1998| v1998_6(void) = ExitFunction : + +# 2007| D& D::ReferenceStaticMemberFunction() +# 2007| Block 0 +# 2007| v2007_1(void) = EnterFunction : +# 2007| mu2007_2(unknown) = AliasedDefinition : +# 2007| mu2007_3(unknown) = InitializeNonLocal : +# 2008| r2008_1(glval) = VariableAddress[#return] : +# 2008| r2008_2(glval) = VariableAddress[x] : +# 2008| r2008_3(D &) = CopyValue : r2008_2 +# 2008| mu2008_4(D &) = Store[#return] : &:r2008_1, r2008_3 +# 2007| r2007_4(glval) = VariableAddress[#return] : +# 2007| v2007_5(void) = ReturnValue : &:r2007_4, ~m? +# 2007| v2007_6(void) = AliasedUse : ~m? +# 2007| v2007_7(void) = ExitFunction : + +# 2010| D D::ObjectStaticMemberFunction() +# 2010| Block 0 +# 2010| v2010_1(void) = EnterFunction : +# 2010| mu2010_2(unknown) = AliasedDefinition : +# 2010| mu2010_3(unknown) = InitializeNonLocal : +# 2011| r2011_1(glval) = VariableAddress[#return] : +# 2011| r2011_2(glval) = VariableAddress[x] : +# 2011| r2011_3(D) = Load[x] : &:r2011_2, ~m? +# 2011| mu2011_4(D) = Store[#return] : &:r2011_1, r2011_3 +# 2010| r2010_4(glval) = VariableAddress[#return] : +# 2010| v2010_5(void) = ReturnValue : &:r2010_4, ~m? +# 2010| v2010_6(void) = AliasedUse : ~m? +# 2010| v2010_7(void) = ExitFunction : + +# 2015| void test_static_member_functions_with_reference_return() +# 2015| Block 0 +# 2015| v2015_1(void) = EnterFunction : +# 2015| mu2015_2(unknown) = AliasedDefinition : +# 2015| mu2015_3(unknown) = InitializeNonLocal : # 2016| r2016_1(glval) = VariableAddress[d] : -# 2016| r2016_2(glval) = FunctionAddress[ReferenceStaticMemberFunction] : -# 2016| r2016_3(D &) = Call[ReferenceStaticMemberFunction] : func:r2016_2 -# 2016| mu2016_4(unknown) = ^CallSideEffect : ~m? -# 2016| r2016_5(glval) = CopyValue : r2016_3 -# 2017| r2017_1(glval) = FunctionAddress[ReferenceStaticMemberFunction] : -# 2017| r2017_2(D &) = Call[ReferenceStaticMemberFunction] : func:r2017_1 -# 2017| mu2017_3(unknown) = ^CallSideEffect : ~m? -# 2017| r2017_4(glval) = CopyValue : r2017_2 +# 2016| mu2016_2(D) = Uninitialized[d] : &:r2016_1 # 2018| r2018_1(glval) = VariableAddress[d] : -# 2018| r2018_2(glval) = FunctionAddress[ObjectStaticMemberFunction] : -# 2018| r2018_3(D) = Call[ObjectStaticMemberFunction] : func:r2018_2 +# 2018| r2018_2(glval) = FunctionAddress[ReferenceStaticMemberFunction] : +# 2018| r2018_3(D &) = Call[ReferenceStaticMemberFunction] : func:r2018_2 # 2018| mu2018_4(unknown) = ^CallSideEffect : ~m? -# 2019| r2019_1(glval) = FunctionAddress[ObjectStaticMemberFunction] : -# 2019| r2019_2(D) = Call[ObjectStaticMemberFunction] : func:r2019_1 +# 2018| r2018_5(glval) = CopyValue : r2018_3 +# 2019| r2019_1(glval) = FunctionAddress[ReferenceStaticMemberFunction] : +# 2019| r2019_2(D &) = Call[ReferenceStaticMemberFunction] : func:r2019_1 # 2019| mu2019_3(unknown) = ^CallSideEffect : ~m? -# 2021| r2021_1(glval) = VariableAddress[x] : -# 2021| mu2021_2(D) = Uninitialized[x] : &:r2021_1 -# 2022| r2022_1(glval) = VariableAddress[d] : -# 2022| r2022_2(glval) = FunctionAddress[ReferenceStaticMemberFunction] : -# 2022| r2022_3(D &) = Call[ReferenceStaticMemberFunction] : func:r2022_2 -# 2022| mu2022_4(unknown) = ^CallSideEffect : ~m? -# 2022| r2022_5(D) = Load[?] : &:r2022_3, ~m? -# 2022| r2022_6(glval) = VariableAddress[x] : -# 2022| mu2022_7(D) = Store[x] : &:r2022_6, r2022_5 -# 2023| r2023_1(glval) = VariableAddress[y] : -# 2023| mu2023_2(D) = Uninitialized[y] : &:r2023_1 -# 2024| r2024_1(glval) = FunctionAddress[ReferenceStaticMemberFunction] : -# 2024| r2024_2(D &) = Call[ReferenceStaticMemberFunction] : func:r2024_1 -# 2024| mu2024_3(unknown) = ^CallSideEffect : ~m? -# 2024| r2024_4(D) = Load[?] : &:r2024_2, ~m? -# 2024| r2024_5(glval) = VariableAddress[y] : -# 2024| mu2024_6(D) = Store[y] : &:r2024_5, r2024_4 -# 2025| r2025_1(glval) = VariableAddress[j] : -# 2025| mu2025_2(D) = Uninitialized[j] : &:r2025_1 -# 2026| r2026_1(glval) = VariableAddress[d] : -# 2026| r2026_2(glval) = FunctionAddress[ObjectStaticMemberFunction] : -# 2026| r2026_3(D) = Call[ObjectStaticMemberFunction] : func:r2026_2 -# 2026| mu2026_4(unknown) = ^CallSideEffect : ~m? -# 2026| r2026_5(glval) = VariableAddress[j] : -# 2026| mu2026_6(D) = Store[j] : &:r2026_5, r2026_3 -# 2027| r2027_1(glval) = VariableAddress[k] : -# 2027| mu2027_2(D) = Uninitialized[k] : &:r2027_1 -# 2028| r2028_1(glval) = FunctionAddress[ObjectStaticMemberFunction] : -# 2028| r2028_2(D) = Call[ObjectStaticMemberFunction] : func:r2028_1 -# 2028| mu2028_3(unknown) = ^CallSideEffect : ~m? -# 2028| r2028_4(glval) = VariableAddress[k] : -# 2028| mu2028_5(D) = Store[k] : &:r2028_4, r2028_2 -# 2029| v2029_1(void) = NoOp : -# 2013| v2013_4(void) = ReturnVoid : -# 2013| v2013_5(void) = AliasedUse : ~m? -# 2013| v2013_6(void) = ExitFunction : - -# 2031| void test_volatile() -# 2031| Block 0 -# 2031| v2031_1(void) = EnterFunction : -# 2031| mu2031_2(unknown) = AliasedDefinition : -# 2031| mu2031_3(unknown) = InitializeNonLocal : -# 2032| r2032_1(glval) = VariableAddress[x] : -# 2032| mu2032_2(int) = Uninitialized[x] : &:r2032_1 -# 2033| r2033_1(glval) = VariableAddress[x] : -# 2033| r2033_2(int) = Load[x] : &:r2033_1, ~m? -# 2034| v2034_1(void) = NoOp : -# 2031| v2031_4(void) = ReturnVoid : -# 2031| v2031_5(void) = AliasedUse : ~m? -# 2031| v2031_6(void) = ExitFunction : - -# 2042| void value_category_test() -# 2042| Block 0 -# 2042| v2042_1(void) = EnterFunction : -# 2042| mu2042_2(unknown) = AliasedDefinition : -# 2042| mu2042_3(unknown) = InitializeNonLocal : -# 2043| r2043_1(glval) = VariableAddress[c] : -# 2043| mu2043_2(ValCat) = Uninitialized[c] : &:r2043_1 +# 2019| r2019_4(glval) = CopyValue : r2019_2 +# 2020| r2020_1(glval) = VariableAddress[d] : +# 2020| r2020_2(glval) = FunctionAddress[ObjectStaticMemberFunction] : +# 2020| r2020_3(D) = Call[ObjectStaticMemberFunction] : func:r2020_2 +# 2020| mu2020_4(unknown) = ^CallSideEffect : ~m? +# 2021| r2021_1(glval) = FunctionAddress[ObjectStaticMemberFunction] : +# 2021| r2021_2(D) = Call[ObjectStaticMemberFunction] : func:r2021_1 +# 2021| mu2021_3(unknown) = ^CallSideEffect : ~m? +# 2023| r2023_1(glval) = VariableAddress[x] : +# 2023| mu2023_2(D) = Uninitialized[x] : &:r2023_1 +# 2024| r2024_1(glval) = VariableAddress[d] : +# 2024| r2024_2(glval) = FunctionAddress[ReferenceStaticMemberFunction] : +# 2024| r2024_3(D &) = Call[ReferenceStaticMemberFunction] : func:r2024_2 +# 2024| mu2024_4(unknown) = ^CallSideEffect : ~m? +# 2024| r2024_5(D) = Load[?] : &:r2024_3, ~m? +# 2024| r2024_6(glval) = VariableAddress[x] : +# 2024| mu2024_7(D) = Store[x] : &:r2024_6, r2024_5 +# 2025| r2025_1(glval) = VariableAddress[y] : +# 2025| mu2025_2(D) = Uninitialized[y] : &:r2025_1 +# 2026| r2026_1(glval) = FunctionAddress[ReferenceStaticMemberFunction] : +# 2026| r2026_2(D &) = Call[ReferenceStaticMemberFunction] : func:r2026_1 +# 2026| mu2026_3(unknown) = ^CallSideEffect : ~m? +# 2026| r2026_4(D) = Load[?] : &:r2026_2, ~m? +# 2026| r2026_5(glval) = VariableAddress[y] : +# 2026| mu2026_6(D) = Store[y] : &:r2026_5, r2026_4 +# 2027| r2027_1(glval) = VariableAddress[j] : +# 2027| mu2027_2(D) = Uninitialized[j] : &:r2027_1 +# 2028| r2028_1(glval) = VariableAddress[d] : +# 2028| r2028_2(glval) = FunctionAddress[ObjectStaticMemberFunction] : +# 2028| r2028_3(D) = Call[ObjectStaticMemberFunction] : func:r2028_2 +# 2028| mu2028_4(unknown) = ^CallSideEffect : ~m? +# 2028| r2028_5(glval) = VariableAddress[j] : +# 2028| mu2028_6(D) = Store[j] : &:r2028_5, r2028_3 +# 2029| r2029_1(glval) = VariableAddress[k] : +# 2029| mu2029_2(D) = Uninitialized[k] : &:r2029_1 +# 2030| r2030_1(glval) = FunctionAddress[ObjectStaticMemberFunction] : +# 2030| r2030_2(D) = Call[ObjectStaticMemberFunction] : func:r2030_1 +# 2030| mu2030_3(unknown) = ^CallSideEffect : ~m? +# 2030| r2030_4(glval) = VariableAddress[k] : +# 2030| mu2030_5(D) = Store[k] : &:r2030_4, r2030_2 +# 2031| v2031_1(void) = NoOp : +# 2015| v2015_4(void) = ReturnVoid : +# 2015| v2015_5(void) = AliasedUse : ~m? +# 2015| v2015_6(void) = ExitFunction : + +# 2033| void test_volatile() +# 2033| Block 0 +# 2033| v2033_1(void) = EnterFunction : +# 2033| mu2033_2(unknown) = AliasedDefinition : +# 2033| mu2033_3(unknown) = InitializeNonLocal : +# 2034| r2034_1(glval) = VariableAddress[x] : +# 2034| mu2034_2(int) = Uninitialized[x] : &:r2034_1 +# 2035| r2035_1(glval) = VariableAddress[x] : +# 2035| r2035_2(int) = Load[x] : &:r2035_1, ~m? +# 2036| v2036_1(void) = NoOp : +# 2033| v2033_4(void) = ReturnVoid : +# 2033| v2033_5(void) = AliasedUse : ~m? +# 2033| v2033_6(void) = ExitFunction : + +# 2044| void value_category_test() +# 2044| Block 0 +# 2044| v2044_1(void) = EnterFunction : +# 2044| mu2044_2(unknown) = AliasedDefinition : +# 2044| mu2044_3(unknown) = InitializeNonLocal : +# 2045| r2045_1(glval) = VariableAddress[c] : +# 2045| mu2045_2(ValCat) = Uninitialized[c] : &:r2045_1 #-----| r0_1(glval) = VariableAddress[#temp0:0] : #-----| mu0_2(ValCat) = Uninitialized[#temp0:0] : &:r0_1 #-----| r0_3(ValCat) = Load[#temp0:0] : &:r0_1, ~m? -# 2045| r2045_1(glval) = VariableAddress[c] : -# 2045| r2045_2(glval) = FunctionAddress[lvalue] : -# 2045| r2045_3(ValCat &) = Call[lvalue] : func:r2045_2 -# 2045| mu2045_4(unknown) = ^CallSideEffect : ~m? -# 2045| r2045_5(glval) = CopyValue : r2045_3 -# 2045| mu2045_6(ValCat) = Store[?] : &:r2045_5, r0_3 +# 2047| r2047_1(glval) = VariableAddress[c] : +# 2047| r2047_2(glval) = FunctionAddress[lvalue] : +# 2047| r2047_3(ValCat &) = Call[lvalue] : func:r2047_2 +# 2047| mu2047_4(unknown) = ^CallSideEffect : ~m? +# 2047| r2047_5(glval) = CopyValue : r2047_3 +# 2047| mu2047_6(ValCat) = Store[?] : &:r2047_5, r0_3 #-----| r0_4(glval) = VariableAddress[#temp0:0] : #-----| mu0_5(ValCat) = Uninitialized[#temp0:0] : &:r0_4 #-----| r0_6(ValCat) = Load[#temp0:0] : &:r0_4, ~m? -# 2046| r2046_1(glval) = VariableAddress[c] : -# 2046| r2046_2(glval) = FunctionAddress[xvalue] : -# 2046| r2046_3(ValCat &&) = Call[xvalue] : func:r2046_2 -# 2046| mu2046_4(unknown) = ^CallSideEffect : ~m? -# 2046| r2046_5(glval) = CopyValue : r2046_3 -# 2046| mu2046_6(ValCat) = Store[?] : &:r2046_5, r0_6 +# 2048| r2048_1(glval) = VariableAddress[c] : +# 2048| r2048_2(glval) = FunctionAddress[xvalue] : +# 2048| r2048_3(ValCat &&) = Call[xvalue] : func:r2048_2 +# 2048| mu2048_4(unknown) = ^CallSideEffect : ~m? +# 2048| r2048_5(glval) = CopyValue : r2048_3 +# 2048| mu2048_6(ValCat) = Store[?] : &:r2048_5, r0_6 #-----| r0_7(glval) = VariableAddress[#temp0:0] : #-----| mu0_8(ValCat) = Uninitialized[#temp0:0] : &:r0_7 #-----| r0_9(ValCat) = Load[#temp0:0] : &:r0_7, ~m? -# 2047| r2047_1(glval) = VariableAddress[#temp2047:5] : -# 2047| r2047_2(glval) = VariableAddress[c] : -# 2047| r2047_3(glval) = FunctionAddress[prvalue] : -# 2047| r2047_4(ValCat) = Call[prvalue] : func:r2047_3 -# 2047| mu2047_5(unknown) = ^CallSideEffect : ~m? -# 2047| mu2047_6(ValCat) = Store[#temp2047:5] : &:r2047_1, r2047_4 -# 2047| mu2047_7(ValCat) = Store[#temp2047:5] : &:r2047_1, r0_9 +# 2049| r2049_1(glval) = VariableAddress[#temp2049:5] : +# 2049| r2049_2(glval) = VariableAddress[c] : +# 2049| r2049_3(glval) = FunctionAddress[prvalue] : +# 2049| r2049_4(ValCat) = Call[prvalue] : func:r2049_3 +# 2049| mu2049_5(unknown) = ^CallSideEffect : ~m? +# 2049| mu2049_6(ValCat) = Store[#temp2049:5] : &:r2049_1, r2049_4 +# 2049| mu2049_7(ValCat) = Store[#temp2049:5] : &:r2049_1, r0_9 #-----| r0_10(glval) = VariableAddress[#temp0:0] : #-----| mu0_11(ValCat) = Uninitialized[#temp0:0] : &:r0_10 #-----| r0_12(ValCat) = Load[#temp0:0] : &:r0_10, ~m? -# 2048| r2048_1(glval) = FunctionAddress[lvalue] : -# 2048| r2048_2(ValCat &) = Call[lvalue] : func:r2048_1 -# 2048| mu2048_3(unknown) = ^CallSideEffect : ~m? -# 2048| r2048_4(glval) = CopyValue : r2048_2 -# 2048| mu2048_5(ValCat) = Store[?] : &:r2048_4, r0_12 +# 2050| r2050_1(glval) = FunctionAddress[lvalue] : +# 2050| r2050_2(ValCat &) = Call[lvalue] : func:r2050_1 +# 2050| mu2050_3(unknown) = ^CallSideEffect : ~m? +# 2050| r2050_4(glval) = CopyValue : r2050_2 +# 2050| mu2050_5(ValCat) = Store[?] : &:r2050_4, r0_12 #-----| r0_13(glval) = VariableAddress[#temp0:0] : #-----| mu0_14(ValCat) = Uninitialized[#temp0:0] : &:r0_13 #-----| r0_15(ValCat) = Load[#temp0:0] : &:r0_13, ~m? -# 2049| r2049_1(glval) = FunctionAddress[xvalue] : -# 2049| r2049_2(ValCat &&) = Call[xvalue] : func:r2049_1 -# 2049| mu2049_3(unknown) = ^CallSideEffect : ~m? -# 2049| r2049_4(glval) = CopyValue : r2049_2 -# 2049| mu2049_5(ValCat) = Store[?] : &:r2049_4, r0_15 +# 2051| r2051_1(glval) = FunctionAddress[xvalue] : +# 2051| r2051_2(ValCat &&) = Call[xvalue] : func:r2051_1 +# 2051| mu2051_3(unknown) = ^CallSideEffect : ~m? +# 2051| r2051_4(glval) = CopyValue : r2051_2 +# 2051| mu2051_5(ValCat) = Store[?] : &:r2051_4, r0_15 #-----| r0_16(glval) = VariableAddress[#temp0:0] : #-----| mu0_17(ValCat) = Uninitialized[#temp0:0] : &:r0_16 #-----| r0_18(ValCat) = Load[#temp0:0] : &:r0_16, ~m? -# 2050| r2050_1(glval) = VariableAddress[#temp2050:5] : -# 2050| r2050_2(glval) = FunctionAddress[prvalue] : -# 2050| r2050_3(ValCat) = Call[prvalue] : func:r2050_2 -# 2050| mu2050_4(unknown) = ^CallSideEffect : ~m? -# 2050| mu2050_5(ValCat) = Store[#temp2050:5] : &:r2050_1, r2050_3 -# 2050| mu2050_6(ValCat) = Store[#temp2050:5] : &:r2050_1, r0_18 -# 2051| v2051_1(void) = NoOp : -# 2042| v2042_4(void) = ReturnVoid : -# 2042| v2042_5(void) = AliasedUse : ~m? -# 2042| v2042_6(void) = ExitFunction : - -# 2053| void SetStaticFuncPtr() -# 2053| Block 0 -# 2053| v2053_1(void) = EnterFunction : -# 2053| mu2053_2(unknown) = AliasedDefinition : -# 2053| mu2053_3(unknown) = InitializeNonLocal : -# 2054| r2054_1(glval) = VariableAddress[c] : -# 2054| mu2054_2(C) = Uninitialized[c] : &:r2054_1 -# 2054| r2054_3(glval) = FunctionAddress[C] : -# 2054| v2054_4(void) = Call[C] : func:r2054_3, this:r2054_1 -# 2054| mu2054_5(unknown) = ^CallSideEffect : ~m? -# 2054| mu2054_6(C) = ^IndirectMayWriteSideEffect[-1] : &:r2054_1 -# 2055| r2055_1(glval<..(*)(..)>) = VariableAddress[pfn] : -# 2055| r2055_2(..(*)(..)) = FunctionAddress[StaticMemberFunction] : -# 2055| mu2055_3(..(*)(..)) = Store[pfn] : &:r2055_1, r2055_2 +# 2052| r2052_1(glval) = VariableAddress[#temp2052:5] : +# 2052| r2052_2(glval) = FunctionAddress[prvalue] : +# 2052| r2052_3(ValCat) = Call[prvalue] : func:r2052_2 +# 2052| mu2052_4(unknown) = ^CallSideEffect : ~m? +# 2052| mu2052_5(ValCat) = Store[#temp2052:5] : &:r2052_1, r2052_3 +# 2052| mu2052_6(ValCat) = Store[#temp2052:5] : &:r2052_1, r0_18 +# 2053| v2053_1(void) = NoOp : +# 2044| v2044_4(void) = ReturnVoid : +# 2044| v2044_5(void) = AliasedUse : ~m? +# 2044| v2044_6(void) = ExitFunction : + +# 2055| void SetStaticFuncPtr() +# 2055| Block 0 +# 2055| v2055_1(void) = EnterFunction : +# 2055| mu2055_2(unknown) = AliasedDefinition : +# 2055| mu2055_3(unknown) = InitializeNonLocal : # 2056| r2056_1(glval) = VariableAddress[c] : -# 2056| r2056_2(..(*)(..)) = FunctionAddress[StaticMemberFunction] : -# 2056| r2056_3(glval<..(*)(..)>) = VariableAddress[pfn] : -# 2056| mu2056_4(..(*)(..)) = Store[pfn] : &:r2056_3, r2056_2 -# 2057| v2057_1(void) = NoOp : -# 2057| r2057_2(glval) = VariableAddress[c] : -# 2057| r2057_3(glval) = FunctionAddress[~C] : -# 2057| v2057_4(void) = Call[~C] : func:r2057_3, this:r2057_2 -# 2057| mu2057_5(unknown) = ^CallSideEffect : ~m? -# 2057| v2057_6(void) = ^IndirectReadSideEffect[-1] : &:r2057_2, ~m? -# 2057| mu2057_7(C) = ^IndirectMayWriteSideEffect[-1] : &:r2057_2 -# 2053| v2053_4(void) = ReturnVoid : -# 2053| v2053_5(void) = AliasedUse : ~m? -# 2053| v2053_6(void) = ExitFunction : - -# 2059| void TernaryTestInt(bool, int, int, int) -# 2059| Block 0 -# 2059| v2059_1(void) = EnterFunction : -# 2059| mu2059_2(unknown) = AliasedDefinition : -# 2059| mu2059_3(unknown) = InitializeNonLocal : -# 2059| r2059_4(glval) = VariableAddress[a] : -# 2059| mu2059_5(bool) = InitializeParameter[a] : &:r2059_4 -# 2059| r2059_6(glval) = VariableAddress[x] : -# 2059| mu2059_7(int) = InitializeParameter[x] : &:r2059_6 -# 2059| r2059_8(glval) = VariableAddress[y] : -# 2059| mu2059_9(int) = InitializeParameter[y] : &:r2059_8 -# 2059| r2059_10(glval) = VariableAddress[z] : -# 2059| mu2059_11(int) = InitializeParameter[z] : &:r2059_10 -# 2060| r2060_1(glval) = VariableAddress[a] : -# 2060| r2060_2(bool) = Load[a] : &:r2060_1, ~m? -# 2060| v2060_3(void) = ConditionalBranch : r2060_2 +# 2056| mu2056_2(C) = Uninitialized[c] : &:r2056_1 +# 2056| r2056_3(glval) = FunctionAddress[C] : +# 2056| v2056_4(void) = Call[C] : func:r2056_3, this:r2056_1 +# 2056| mu2056_5(unknown) = ^CallSideEffect : ~m? +# 2056| mu2056_6(C) = ^IndirectMayWriteSideEffect[-1] : &:r2056_1 +# 2057| r2057_1(glval<..(*)(..)>) = VariableAddress[pfn] : +# 2057| r2057_2(..(*)(..)) = FunctionAddress[StaticMemberFunction] : +# 2057| mu2057_3(..(*)(..)) = Store[pfn] : &:r2057_1, r2057_2 +# 2058| r2058_1(glval) = VariableAddress[c] : +# 2058| r2058_2(..(*)(..)) = FunctionAddress[StaticMemberFunction] : +# 2058| r2058_3(glval<..(*)(..)>) = VariableAddress[pfn] : +# 2058| mu2058_4(..(*)(..)) = Store[pfn] : &:r2058_3, r2058_2 +# 2059| v2059_1(void) = NoOp : +# 2059| r2059_2(glval) = VariableAddress[c] : +# 2059| r2059_3(glval) = FunctionAddress[~C] : +# 2059| v2059_4(void) = Call[~C] : func:r2059_3, this:r2059_2 +# 2059| mu2059_5(unknown) = ^CallSideEffect : ~m? +# 2059| v2059_6(void) = ^IndirectReadSideEffect[-1] : &:r2059_2, ~m? +# 2059| mu2059_7(C) = ^IndirectMayWriteSideEffect[-1] : &:r2059_2 +# 2055| v2055_4(void) = ReturnVoid : +# 2055| v2055_5(void) = AliasedUse : ~m? +# 2055| v2055_6(void) = ExitFunction : + +# 2061| void TernaryTestInt(bool, int, int, int) +# 2061| Block 0 +# 2061| v2061_1(void) = EnterFunction : +# 2061| mu2061_2(unknown) = AliasedDefinition : +# 2061| mu2061_3(unknown) = InitializeNonLocal : +# 2061| r2061_4(glval) = VariableAddress[a] : +# 2061| mu2061_5(bool) = InitializeParameter[a] : &:r2061_4 +# 2061| r2061_6(glval) = VariableAddress[x] : +# 2061| mu2061_7(int) = InitializeParameter[x] : &:r2061_6 +# 2061| r2061_8(glval) = VariableAddress[y] : +# 2061| mu2061_9(int) = InitializeParameter[y] : &:r2061_8 +# 2061| r2061_10(glval) = VariableAddress[z] : +# 2061| mu2061_11(int) = InitializeParameter[z] : &:r2061_10 +# 2062| r2062_1(glval) = VariableAddress[a] : +# 2062| r2062_2(bool) = Load[a] : &:r2062_1, ~m? +# 2062| v2062_3(void) = ConditionalBranch : r2062_2 #-----| False -> Block 3 #-----| True -> Block 2 -# 2060| Block 1 -# 2060| r2060_4(glval) = VariableAddress[#temp2060:9] : -# 2060| r2060_5(int) = Load[#temp2060:9] : &:r2060_4, ~m? -# 2060| r2060_6(glval) = VariableAddress[z] : -# 2060| mu2060_7(int) = Store[z] : &:r2060_6, r2060_5 -# 2061| r2061_1(glval) = VariableAddress[a] : -# 2061| r2061_2(bool) = Load[a] : &:r2061_1, ~m? -# 2061| v2061_3(void) = ConditionalBranch : r2061_2 +# 2062| Block 1 +# 2062| r2062_4(glval) = VariableAddress[#temp2062:9] : +# 2062| r2062_5(int) = Load[#temp2062:9] : &:r2062_4, ~m? +# 2062| r2062_6(glval) = VariableAddress[z] : +# 2062| mu2062_7(int) = Store[z] : &:r2062_6, r2062_5 +# 2063| r2063_1(glval) = VariableAddress[a] : +# 2063| r2063_2(bool) = Load[a] : &:r2063_1, ~m? +# 2063| v2063_3(void) = ConditionalBranch : r2063_2 #-----| False -> Block 6 #-----| True -> Block 5 -# 2060| Block 2 -# 2060| r2060_8(glval) = VariableAddress[x] : -# 2060| r2060_9(int) = Load[x] : &:r2060_8, ~m? -# 2060| r2060_10(glval) = VariableAddress[#temp2060:9] : -# 2060| mu2060_11(int) = Store[#temp2060:9] : &:r2060_10, r2060_9 +# 2062| Block 2 +# 2062| r2062_8(glval) = VariableAddress[x] : +# 2062| r2062_9(int) = Load[x] : &:r2062_8, ~m? +# 2062| r2062_10(glval) = VariableAddress[#temp2062:9] : +# 2062| mu2062_11(int) = Store[#temp2062:9] : &:r2062_10, r2062_9 #-----| Goto -> Block 1 -# 2060| Block 3 -# 2060| r2060_12(glval) = VariableAddress[y] : -# 2060| r2060_13(int) = Load[y] : &:r2060_12, ~m? -# 2060| r2060_14(glval) = VariableAddress[#temp2060:9] : -# 2060| mu2060_15(int) = Store[#temp2060:9] : &:r2060_14, r2060_13 +# 2062| Block 3 +# 2062| r2062_12(glval) = VariableAddress[y] : +# 2062| r2062_13(int) = Load[y] : &:r2062_12, ~m? +# 2062| r2062_14(glval) = VariableAddress[#temp2062:9] : +# 2062| mu2062_15(int) = Store[#temp2062:9] : &:r2062_14, r2062_13 #-----| Goto -> Block 1 -# 2061| Block 4 -# 2061| r2061_4(glval) = VariableAddress[#temp2061:9] : -# 2061| r2061_5(int) = Load[#temp2061:9] : &:r2061_4, ~m? -# 2061| r2061_6(glval) = VariableAddress[z] : -# 2061| mu2061_7(int) = Store[z] : &:r2061_6, r2061_5 -# 2062| r2062_1(glval) = VariableAddress[a] : -# 2062| r2062_2(bool) = Load[a] : &:r2062_1, ~m? -# 2062| v2062_3(void) = ConditionalBranch : r2062_2 +# 2063| Block 4 +# 2063| r2063_4(glval) = VariableAddress[#temp2063:9] : +# 2063| r2063_5(int) = Load[#temp2063:9] : &:r2063_4, ~m? +# 2063| r2063_6(glval) = VariableAddress[z] : +# 2063| mu2063_7(int) = Store[z] : &:r2063_6, r2063_5 +# 2064| r2064_1(glval) = VariableAddress[a] : +# 2064| r2064_2(bool) = Load[a] : &:r2064_1, ~m? +# 2064| v2064_3(void) = ConditionalBranch : r2064_2 #-----| False -> Block 9 #-----| True -> Block 8 -# 2061| Block 5 -# 2061| r2061_8(glval) = VariableAddress[x] : -# 2061| r2061_9(int) = Load[x] : &:r2061_8, ~m? -# 2061| r2061_10(glval) = VariableAddress[#temp2061:9] : -# 2061| mu2061_11(int) = Store[#temp2061:9] : &:r2061_10, r2061_9 +# 2063| Block 5 +# 2063| r2063_8(glval) = VariableAddress[x] : +# 2063| r2063_9(int) = Load[x] : &:r2063_8, ~m? +# 2063| r2063_10(glval) = VariableAddress[#temp2063:9] : +# 2063| mu2063_11(int) = Store[#temp2063:9] : &:r2063_10, r2063_9 #-----| Goto -> Block 4 -# 2061| Block 6 -# 2061| r2061_12(int) = Constant[5] : -# 2061| r2061_13(glval) = VariableAddress[#temp2061:9] : -# 2061| mu2061_14(int) = Store[#temp2061:9] : &:r2061_13, r2061_12 +# 2063| Block 6 +# 2063| r2063_12(int) = Constant[5] : +# 2063| r2063_13(glval) = VariableAddress[#temp2063:9] : +# 2063| mu2063_14(int) = Store[#temp2063:9] : &:r2063_13, r2063_12 #-----| Goto -> Block 4 -# 2062| Block 7 -# 2062| r2062_4(glval) = VariableAddress[#temp2062:9] : -# 2062| r2062_5(int) = Load[#temp2062:9] : &:r2062_4, ~m? -# 2062| r2062_6(glval) = VariableAddress[z] : -# 2062| mu2062_7(int) = Store[z] : &:r2062_6, r2062_5 -# 2063| r2063_1(int) = Constant[7] : -# 2063| r2063_2(glval) = VariableAddress[a] : -# 2063| r2063_3(bool) = Load[a] : &:r2063_2, ~m? -# 2063| v2063_4(void) = ConditionalBranch : r2063_3 +# 2064| Block 7 +# 2064| r2064_4(glval) = VariableAddress[#temp2064:9] : +# 2064| r2064_5(int) = Load[#temp2064:9] : &:r2064_4, ~m? +# 2064| r2064_6(glval) = VariableAddress[z] : +# 2064| mu2064_7(int) = Store[z] : &:r2064_6, r2064_5 +# 2065| r2065_1(int) = Constant[7] : +# 2065| r2065_2(glval) = VariableAddress[a] : +# 2065| r2065_3(bool) = Load[a] : &:r2065_2, ~m? +# 2065| v2065_4(void) = ConditionalBranch : r2065_3 #-----| False -> Block 12 #-----| True -> Block 11 -# 2062| Block 8 -# 2062| r2062_8(int) = Constant[3] : -# 2062| r2062_9(glval) = VariableAddress[#temp2062:9] : -# 2062| mu2062_10(int) = Store[#temp2062:9] : &:r2062_9, r2062_8 +# 2064| Block 8 +# 2064| r2064_8(int) = Constant[3] : +# 2064| r2064_9(glval) = VariableAddress[#temp2064:9] : +# 2064| mu2064_10(int) = Store[#temp2064:9] : &:r2064_9, r2064_8 #-----| Goto -> Block 7 -# 2062| Block 9 -# 2062| r2062_11(int) = Constant[5] : -# 2062| r2062_12(glval) = VariableAddress[#temp2062:9] : -# 2062| mu2062_13(int) = Store[#temp2062:9] : &:r2062_12, r2062_11 +# 2064| Block 9 +# 2064| r2064_11(int) = Constant[5] : +# 2064| r2064_12(glval) = VariableAddress[#temp2064:9] : +# 2064| mu2064_13(int) = Store[#temp2064:9] : &:r2064_12, r2064_11 #-----| Goto -> Block 7 -# 2063| Block 10 -# 2063| r2063_5(glval) = VariableAddress[#temp2063:6] : -# 2063| r2063_6(glval) = Load[#temp2063:6] : &:r2063_5, ~m? -# 2063| mu2063_7(int) = Store[?] : &:r2063_6, r2063_1 -# 2064| v2064_1(void) = NoOp : -# 2059| v2059_12(void) = ReturnVoid : -# 2059| v2059_13(void) = AliasedUse : ~m? -# 2059| v2059_14(void) = ExitFunction : - -# 2063| Block 11 -# 2063| r2063_8(glval) = VariableAddress[x] : -# 2063| r2063_9(glval) = VariableAddress[#temp2063:6] : -# 2063| mu2063_10(glval) = Store[#temp2063:6] : &:r2063_9, r2063_8 +# 2065| Block 10 +# 2065| r2065_5(glval) = VariableAddress[#temp2065:6] : +# 2065| r2065_6(glval) = Load[#temp2065:6] : &:r2065_5, ~m? +# 2065| mu2065_7(int) = Store[?] : &:r2065_6, r2065_1 +# 2066| v2066_1(void) = NoOp : +# 2061| v2061_12(void) = ReturnVoid : +# 2061| v2061_13(void) = AliasedUse : ~m? +# 2061| v2061_14(void) = ExitFunction : + +# 2065| Block 11 +# 2065| r2065_8(glval) = VariableAddress[x] : +# 2065| r2065_9(glval) = VariableAddress[#temp2065:6] : +# 2065| mu2065_10(glval) = Store[#temp2065:6] : &:r2065_9, r2065_8 #-----| Goto -> Block 10 -# 2063| Block 12 -# 2063| r2063_11(glval) = VariableAddress[y] : -# 2063| r2063_12(glval) = VariableAddress[#temp2063:6] : -# 2063| mu2063_13(glval) = Store[#temp2063:6] : &:r2063_12, r2063_11 +# 2065| Block 12 +# 2065| r2065_11(glval) = VariableAddress[y] : +# 2065| r2065_12(glval) = VariableAddress[#temp2065:6] : +# 2065| mu2065_13(glval) = Store[#temp2065:6] : &:r2065_12, r2065_11 #-----| Goto -> Block 10 -# 2069| void TernaryTestPodObj(bool, TernaryPodObj, TernaryPodObj, TernaryPodObj) -# 2069| Block 0 -# 2069| v2069_1(void) = EnterFunction : -# 2069| mu2069_2(unknown) = AliasedDefinition : -# 2069| mu2069_3(unknown) = InitializeNonLocal : -# 2069| r2069_4(glval) = VariableAddress[a] : -# 2069| mu2069_5(bool) = InitializeParameter[a] : &:r2069_4 -# 2069| r2069_6(glval) = VariableAddress[x] : -# 2069| mu2069_7(TernaryPodObj) = InitializeParameter[x] : &:r2069_6 -# 2069| r2069_8(glval) = VariableAddress[y] : -# 2069| mu2069_9(TernaryPodObj) = InitializeParameter[y] : &:r2069_8 -# 2069| r2069_10(glval) = VariableAddress[z] : -# 2069| mu2069_11(TernaryPodObj) = InitializeParameter[z] : &:r2069_10 -# 2070| r2070_1(glval) = VariableAddress[a] : -# 2070| r2070_2(bool) = Load[a] : &:r2070_1, ~m? -# 2070| v2070_3(void) = ConditionalBranch : r2070_2 +# 2071| void TernaryTestPodObj(bool, TernaryPodObj, TernaryPodObj, TernaryPodObj) +# 2071| Block 0 +# 2071| v2071_1(void) = EnterFunction : +# 2071| mu2071_2(unknown) = AliasedDefinition : +# 2071| mu2071_3(unknown) = InitializeNonLocal : +# 2071| r2071_4(glval) = VariableAddress[a] : +# 2071| mu2071_5(bool) = InitializeParameter[a] : &:r2071_4 +# 2071| r2071_6(glval) = VariableAddress[x] : +# 2071| mu2071_7(TernaryPodObj) = InitializeParameter[x] : &:r2071_6 +# 2071| r2071_8(glval) = VariableAddress[y] : +# 2071| mu2071_9(TernaryPodObj) = InitializeParameter[y] : &:r2071_8 +# 2071| r2071_10(glval) = VariableAddress[z] : +# 2071| mu2071_11(TernaryPodObj) = InitializeParameter[z] : &:r2071_10 +# 2072| r2072_1(glval) = VariableAddress[a] : +# 2072| r2072_2(bool) = Load[a] : &:r2072_1, ~m? +# 2072| v2072_3(void) = ConditionalBranch : r2072_2 #-----| False -> Block 3 #-----| True -> Block 2 -# 2070| Block 1 -# 2070| r2070_4(glval) = VariableAddress[#temp2070:9] : -# 2070| r2070_5(TernaryPodObj) = Load[#temp2070:9] : &:r2070_4, ~m? -# 2070| r2070_6(glval) = VariableAddress[z] : -# 2070| mu2070_7(TernaryPodObj) = Store[z] : &:r2070_6, r2070_5 -# 2071| r2071_1(glval) = VariableAddress[#temp2071:9] : -# 2071| r2071_2(glval) = VariableAddress[a] : -# 2071| r2071_3(bool) = Load[a] : &:r2071_2, ~m? -# 2071| v2071_4(void) = ConditionalBranch : r2071_3 +# 2072| Block 1 +# 2072| r2072_4(glval) = VariableAddress[#temp2072:9] : +# 2072| r2072_5(TernaryPodObj) = Load[#temp2072:9] : &:r2072_4, ~m? +# 2072| r2072_6(glval) = VariableAddress[z] : +# 2072| mu2072_7(TernaryPodObj) = Store[z] : &:r2072_6, r2072_5 +# 2073| r2073_1(glval) = VariableAddress[#temp2073:9] : +# 2073| r2073_2(glval) = VariableAddress[a] : +# 2073| r2073_3(bool) = Load[a] : &:r2073_2, ~m? +# 2073| v2073_4(void) = ConditionalBranch : r2073_3 #-----| False -> Block 6 #-----| True -> Block 5 -# 2070| Block 2 -# 2070| r2070_8(glval) = VariableAddress[x] : -# 2070| r2070_9(TernaryPodObj) = Load[x] : &:r2070_8, ~m? -# 2070| r2070_10(glval) = VariableAddress[#temp2070:9] : -# 2070| mu2070_11(TernaryPodObj) = Store[#temp2070:9] : &:r2070_10, r2070_9 +# 2072| Block 2 +# 2072| r2072_8(glval) = VariableAddress[x] : +# 2072| r2072_9(TernaryPodObj) = Load[x] : &:r2072_8, ~m? +# 2072| r2072_10(glval) = VariableAddress[#temp2072:9] : +# 2072| mu2072_11(TernaryPodObj) = Store[#temp2072:9] : &:r2072_10, r2072_9 #-----| Goto -> Block 1 -# 2070| Block 3 -# 2070| r2070_12(glval) = VariableAddress[y] : -# 2070| r2070_13(TernaryPodObj) = Load[y] : &:r2070_12, ~m? -# 2070| r2070_14(glval) = VariableAddress[#temp2070:9] : -# 2070| mu2070_15(TernaryPodObj) = Store[#temp2070:9] : &:r2070_14, r2070_13 +# 2072| Block 3 +# 2072| r2072_12(glval) = VariableAddress[y] : +# 2072| r2072_13(TernaryPodObj) = Load[y] : &:r2072_12, ~m? +# 2072| r2072_14(glval) = VariableAddress[#temp2072:9] : +# 2072| mu2072_15(TernaryPodObj) = Store[#temp2072:9] : &:r2072_14, r2072_13 #-----| Goto -> Block 1 -# 2071| Block 4 -# 2071| r2071_5(glval) = VariableAddress[#temp2071:9] : -# 2071| r2071_6(TernaryPodObj) = Load[#temp2071:9] : &:r2071_5, ~m? -# 2071| mu2071_7(TernaryPodObj) = Store[#temp2071:9] : &:r2071_1, r2071_6 -# 2071| r2071_8(TernaryPodObj) = Load[#temp2071:9] : &:r2071_1, ~m? -# 2071| r2071_9(glval) = VariableAddress[z] : -# 2071| mu2071_10(TernaryPodObj) = Store[z] : &:r2071_9, r2071_8 -# 2072| r2072_1(glval) = VariableAddress[#temp2072:9] : -# 2072| r2072_2(glval) = VariableAddress[a] : -# 2072| r2072_3(bool) = Load[a] : &:r2072_2, ~m? -# 2072| v2072_4(void) = ConditionalBranch : r2072_3 +# 2073| Block 4 +# 2073| r2073_5(glval) = VariableAddress[#temp2073:9] : +# 2073| r2073_6(TernaryPodObj) = Load[#temp2073:9] : &:r2073_5, ~m? +# 2073| mu2073_7(TernaryPodObj) = Store[#temp2073:9] : &:r2073_1, r2073_6 +# 2073| r2073_8(TernaryPodObj) = Load[#temp2073:9] : &:r2073_1, ~m? +# 2073| r2073_9(glval) = VariableAddress[z] : +# 2073| mu2073_10(TernaryPodObj) = Store[z] : &:r2073_9, r2073_8 +# 2074| r2074_1(glval) = VariableAddress[#temp2074:9] : +# 2074| r2074_2(glval) = VariableAddress[a] : +# 2074| r2074_3(bool) = Load[a] : &:r2074_2, ~m? +# 2074| v2074_4(void) = ConditionalBranch : r2074_3 #-----| False -> Block 9 #-----| True -> Block 8 -# 2071| Block 5 -# 2071| r2071_11(glval) = VariableAddress[#temp2071:13] : -# 2071| r2071_12(glval) = VariableAddress[x] : -# 2071| r2071_13(TernaryPodObj) = Load[x] : &:r2071_12, ~m? -# 2071| mu2071_14(TernaryPodObj) = Store[#temp2071:13] : &:r2071_11, r2071_13 -# 2071| r2071_15(TernaryPodObj) = Load[#temp2071:13] : &:r2071_11, ~m? -# 2071| r2071_16(glval) = VariableAddress[#temp2071:9] : -# 2071| mu2071_17(TernaryPodObj) = Store[#temp2071:9] : &:r2071_16, r2071_15 +# 2073| Block 5 +# 2073| r2073_11(glval) = VariableAddress[#temp2073:13] : +# 2073| r2073_12(glval) = VariableAddress[x] : +# 2073| r2073_13(TernaryPodObj) = Load[x] : &:r2073_12, ~m? +# 2073| mu2073_14(TernaryPodObj) = Store[#temp2073:13] : &:r2073_11, r2073_13 +# 2073| r2073_15(TernaryPodObj) = Load[#temp2073:13] : &:r2073_11, ~m? +# 2073| r2073_16(glval) = VariableAddress[#temp2073:9] : +# 2073| mu2073_17(TernaryPodObj) = Store[#temp2073:9] : &:r2073_16, r2073_15 #-----| Goto -> Block 4 -# 2071| Block 6 -# 2071| r2071_18(glval) = VariableAddress[#temp2071:17] : -# 2071| r2071_19(TernaryPodObj) = Constant[0] : -# 2071| mu2071_20(TernaryPodObj) = Store[#temp2071:17] : &:r2071_18, r2071_19 -# 2071| r2071_21(TernaryPodObj) = Load[#temp2071:17] : &:r2071_18, ~m? -# 2071| r2071_22(glval) = VariableAddress[#temp2071:9] : -# 2071| mu2071_23(TernaryPodObj) = Store[#temp2071:9] : &:r2071_22, r2071_21 +# 2073| Block 6 +# 2073| r2073_18(glval) = VariableAddress[#temp2073:17] : +# 2073| r2073_19(TernaryPodObj) = Constant[0] : +# 2073| mu2073_20(TernaryPodObj) = Store[#temp2073:17] : &:r2073_18, r2073_19 +# 2073| r2073_21(TernaryPodObj) = Load[#temp2073:17] : &:r2073_18, ~m? +# 2073| r2073_22(glval) = VariableAddress[#temp2073:9] : +# 2073| mu2073_23(TernaryPodObj) = Store[#temp2073:9] : &:r2073_22, r2073_21 #-----| Goto -> Block 4 -# 2072| Block 7 -# 2072| r2072_5(glval) = VariableAddress[#temp2072:9] : -# 2072| r2072_6(TernaryPodObj) = Load[#temp2072:9] : &:r2072_5, ~m? -# 2072| mu2072_7(TernaryPodObj) = Store[#temp2072:9] : &:r2072_1, r2072_6 -# 2072| r2072_8(TernaryPodObj) = Load[#temp2072:9] : &:r2072_1, ~m? -# 2072| r2072_9(glval) = VariableAddress[z] : -# 2072| mu2072_10(TernaryPodObj) = Store[z] : &:r2072_9, r2072_8 -# 2073| r2073_1(glval) = VariableAddress[#temp2073:23] : -# 2073| r2073_2(TernaryPodObj) = Constant[0] : -# 2073| mu2073_3(TernaryPodObj) = Store[#temp2073:23] : &:r2073_1, r2073_2 -# 2073| r2073_4(TernaryPodObj) = Load[#temp2073:23] : &:r2073_1, ~m? -# 2073| r2073_5(glval) = VariableAddress[a] : -# 2073| r2073_6(bool) = Load[a] : &:r2073_5, ~m? -# 2073| v2073_7(void) = ConditionalBranch : r2073_6 +# 2074| Block 7 +# 2074| r2074_5(glval) = VariableAddress[#temp2074:9] : +# 2074| r2074_6(TernaryPodObj) = Load[#temp2074:9] : &:r2074_5, ~m? +# 2074| mu2074_7(TernaryPodObj) = Store[#temp2074:9] : &:r2074_1, r2074_6 +# 2074| r2074_8(TernaryPodObj) = Load[#temp2074:9] : &:r2074_1, ~m? +# 2074| r2074_9(glval) = VariableAddress[z] : +# 2074| mu2074_10(TernaryPodObj) = Store[z] : &:r2074_9, r2074_8 +# 2075| r2075_1(glval) = VariableAddress[#temp2075:23] : +# 2075| r2075_2(TernaryPodObj) = Constant[0] : +# 2075| mu2075_3(TernaryPodObj) = Store[#temp2075:23] : &:r2075_1, r2075_2 +# 2075| r2075_4(TernaryPodObj) = Load[#temp2075:23] : &:r2075_1, ~m? +# 2075| r2075_5(glval) = VariableAddress[a] : +# 2075| r2075_6(bool) = Load[a] : &:r2075_5, ~m? +# 2075| v2075_7(void) = ConditionalBranch : r2075_6 #-----| False -> Block 12 #-----| True -> Block 11 -# 2072| Block 8 -# 2072| r2072_11(glval) = VariableAddress[#temp2072:13] : -# 2072| r2072_12(TernaryPodObj) = Constant[0] : -# 2072| mu2072_13(TernaryPodObj) = Store[#temp2072:13] : &:r2072_11, r2072_12 -# 2072| r2072_14(TernaryPodObj) = Load[#temp2072:13] : &:r2072_11, ~m? -# 2072| r2072_15(glval) = VariableAddress[#temp2072:9] : -# 2072| mu2072_16(TernaryPodObj) = Store[#temp2072:9] : &:r2072_15, r2072_14 +# 2074| Block 8 +# 2074| r2074_11(glval) = VariableAddress[#temp2074:13] : +# 2074| r2074_12(TernaryPodObj) = Constant[0] : +# 2074| mu2074_13(TernaryPodObj) = Store[#temp2074:13] : &:r2074_11, r2074_12 +# 2074| r2074_14(TernaryPodObj) = Load[#temp2074:13] : &:r2074_11, ~m? +# 2074| r2074_15(glval) = VariableAddress[#temp2074:9] : +# 2074| mu2074_16(TernaryPodObj) = Store[#temp2074:9] : &:r2074_15, r2074_14 #-----| Goto -> Block 7 -# 2072| Block 9 -# 2072| r2072_17(glval) = VariableAddress[#temp2072:31] : -# 2072| r2072_18(TernaryPodObj) = Constant[0] : -# 2072| mu2072_19(TernaryPodObj) = Store[#temp2072:31] : &:r2072_17, r2072_18 -# 2072| r2072_20(TernaryPodObj) = Load[#temp2072:31] : &:r2072_17, ~m? -# 2072| r2072_21(glval) = VariableAddress[#temp2072:9] : -# 2072| mu2072_22(TernaryPodObj) = Store[#temp2072:9] : &:r2072_21, r2072_20 +# 2074| Block 9 +# 2074| r2074_17(glval) = VariableAddress[#temp2074:31] : +# 2074| r2074_18(TernaryPodObj) = Constant[0] : +# 2074| mu2074_19(TernaryPodObj) = Store[#temp2074:31] : &:r2074_17, r2074_18 +# 2074| r2074_20(TernaryPodObj) = Load[#temp2074:31] : &:r2074_17, ~m? +# 2074| r2074_21(glval) = VariableAddress[#temp2074:9] : +# 2074| mu2074_22(TernaryPodObj) = Store[#temp2074:9] : &:r2074_21, r2074_20 #-----| Goto -> Block 7 -# 2073| Block 10 -# 2073| r2073_8(glval) = VariableAddress[#temp2073:10] : -# 2073| r2073_9(TernaryPodObj) = Load[#temp2073:10] : &:r2073_8, ~m? -# 2073| r2073_10(glval) = VariableAddress[z] : -# 2073| mu2073_11(TernaryPodObj) = Store[z] : &:r2073_10, r2073_9 -# 2073| r2073_12(glval) = CopyValue : r2073_10 -# 2073| mu2073_13(TernaryPodObj) = Store[?] : &:r2073_12, r2073_4 -# 2074| v2074_1(void) = NoOp : -# 2069| v2069_12(void) = ReturnVoid : -# 2069| v2069_13(void) = AliasedUse : ~m? -# 2069| v2069_14(void) = ExitFunction : - -# 2073| Block 11 -# 2073| r2073_14(glval) = VariableAddress[x] : -# 2073| r2073_15(TernaryPodObj) = Load[x] : &:r2073_14, ~m? -# 2073| r2073_16(glval) = VariableAddress[#temp2073:10] : -# 2073| mu2073_17(TernaryPodObj) = Store[#temp2073:10] : &:r2073_16, r2073_15 +# 2075| Block 10 +# 2075| r2075_8(glval) = VariableAddress[#temp2075:10] : +# 2075| r2075_9(TernaryPodObj) = Load[#temp2075:10] : &:r2075_8, ~m? +# 2075| r2075_10(glval) = VariableAddress[z] : +# 2075| mu2075_11(TernaryPodObj) = Store[z] : &:r2075_10, r2075_9 +# 2075| r2075_12(glval) = CopyValue : r2075_10 +# 2075| mu2075_13(TernaryPodObj) = Store[?] : &:r2075_12, r2075_4 +# 2076| v2076_1(void) = NoOp : +# 2071| v2071_12(void) = ReturnVoid : +# 2071| v2071_13(void) = AliasedUse : ~m? +# 2071| v2071_14(void) = ExitFunction : + +# 2075| Block 11 +# 2075| r2075_14(glval) = VariableAddress[x] : +# 2075| r2075_15(TernaryPodObj) = Load[x] : &:r2075_14, ~m? +# 2075| r2075_16(glval) = VariableAddress[#temp2075:10] : +# 2075| mu2075_17(TernaryPodObj) = Store[#temp2075:10] : &:r2075_16, r2075_15 #-----| Goto -> Block 10 -# 2073| Block 12 -# 2073| r2073_18(glval) = VariableAddress[y] : -# 2073| r2073_19(TernaryPodObj) = Load[y] : &:r2073_18, ~m? -# 2073| r2073_20(glval) = VariableAddress[#temp2073:10] : -# 2073| mu2073_21(TernaryPodObj) = Store[#temp2073:10] : &:r2073_20, r2073_19 +# 2075| Block 12 +# 2075| r2075_18(glval) = VariableAddress[y] : +# 2075| r2075_19(TernaryPodObj) = Load[y] : &:r2075_18, ~m? +# 2075| r2075_20(glval) = VariableAddress[#temp2075:10] : +# 2075| mu2075_21(TernaryPodObj) = Store[#temp2075:10] : &:r2075_20, r2075_19 #-----| Goto -> Block 10 -# 2076| TernaryNonPodObj& TernaryNonPodObj::operator=(TernaryNonPodObj const&) -# 2076| Block 0 -# 2076| v2076_1(void) = EnterFunction : -# 2076| mu2076_2(unknown) = AliasedDefinition : -# 2076| mu2076_3(unknown) = InitializeNonLocal : -# 2076| r2076_4(glval) = VariableAddress[#this] : -# 2076| mu2076_5(glval) = InitializeParameter[#this] : &:r2076_4 -# 2076| r2076_6(glval) = Load[#this] : &:r2076_4, ~m? -# 2076| mu2076_7(TernaryNonPodObj) = InitializeIndirection[#this] : &:r2076_6 +# 2078| TernaryNonPodObj& TernaryNonPodObj::operator=(TernaryNonPodObj const&) +# 2078| Block 0 +# 2078| v2078_1(void) = EnterFunction : +# 2078| mu2078_2(unknown) = AliasedDefinition : +# 2078| mu2078_3(unknown) = InitializeNonLocal : +# 2078| r2078_4(glval) = VariableAddress[#this] : +# 2078| mu2078_5(glval) = InitializeParameter[#this] : &:r2078_4 +# 2078| r2078_6(glval) = Load[#this] : &:r2078_4, ~m? +# 2078| mu2078_7(TernaryNonPodObj) = InitializeIndirection[#this] : &:r2078_6 #-----| r0_1(glval) = VariableAddress[(unnamed parameter 0)] : #-----| mu0_2(TernaryNonPodObj &) = InitializeParameter[(unnamed parameter 0)] : &:r0_1 #-----| r0_3(TernaryNonPodObj &) = Load[(unnamed parameter 0)] : &:r0_1, ~m? @@ -14016,1942 +14084,1927 @@ ir.cpp: #-----| r0_8(glval) = CopyValue : r0_7 #-----| r0_9(TernaryNonPodObj &) = CopyValue : r0_8 #-----| mu0_10(TernaryNonPodObj &) = Store[#return] : &:r0_5, r0_9 -# 2076| v2076_8(void) = ReturnIndirection[#this] : &:r2076_6, ~m? +# 2078| v2078_8(void) = ReturnIndirection[#this] : &:r2078_6, ~m? #-----| v0_11(void) = ReturnIndirection[(unnamed parameter 0)] : &:r0_3, ~m? -# 2076| r2076_9(glval) = VariableAddress[#return] : -# 2076| v2076_10(void) = ReturnValue : &:r2076_9, ~m? -# 2076| v2076_11(void) = AliasedUse : ~m? -# 2076| v2076_12(void) = ExitFunction : - -# 2076| void TernaryNonPodObj::TernaryNonPodObj() -# 2076| Block 0 -# 2076| v2076_1(void) = EnterFunction : -# 2076| mu2076_2(unknown) = AliasedDefinition : -# 2076| mu2076_3(unknown) = InitializeNonLocal : -# 2076| r2076_4(glval) = VariableAddress[#this] : -# 2076| mu2076_5(glval) = InitializeParameter[#this] : &:r2076_4 -# 2076| r2076_6(glval) = Load[#this] : &:r2076_4, ~m? -# 2076| mu2076_7(TernaryNonPodObj) = InitializeIndirection[#this] : &:r2076_6 -# 2076| v2076_8(void) = NoOp : -# 2076| v2076_9(void) = ReturnIndirection[#this] : &:r2076_6, ~m? -# 2076| v2076_10(void) = ReturnVoid : -# 2076| v2076_11(void) = AliasedUse : ~m? -# 2076| v2076_12(void) = ExitFunction : - -# 2076| void TernaryNonPodObj::TernaryNonPodObj(TernaryNonPodObj const&) -# 2076| Block 0 -# 2076| v2076_1(void) = EnterFunction : -# 2076| mu2076_2(unknown) = AliasedDefinition : -# 2076| mu2076_3(unknown) = InitializeNonLocal : -# 2076| r2076_4(glval) = VariableAddress[#this] : -# 2076| mu2076_5(glval) = InitializeParameter[#this] : &:r2076_4 -# 2076| r2076_6(glval) = Load[#this] : &:r2076_4, ~m? -# 2076| mu2076_7(TernaryNonPodObj) = InitializeIndirection[#this] : &:r2076_6 +# 2078| r2078_9(glval) = VariableAddress[#return] : +# 2078| v2078_10(void) = ReturnValue : &:r2078_9, ~m? +# 2078| v2078_11(void) = AliasedUse : ~m? +# 2078| v2078_12(void) = ExitFunction : + +# 2078| void TernaryNonPodObj::TernaryNonPodObj() +# 2078| Block 0 +# 2078| v2078_1(void) = EnterFunction : +# 2078| mu2078_2(unknown) = AliasedDefinition : +# 2078| mu2078_3(unknown) = InitializeNonLocal : +# 2078| r2078_4(glval) = VariableAddress[#this] : +# 2078| mu2078_5(glval) = InitializeParameter[#this] : &:r2078_4 +# 2078| r2078_6(glval) = Load[#this] : &:r2078_4, ~m? +# 2078| mu2078_7(TernaryNonPodObj) = InitializeIndirection[#this] : &:r2078_6 +# 2078| v2078_8(void) = NoOp : +# 2078| v2078_9(void) = ReturnIndirection[#this] : &:r2078_6, ~m? +# 2078| v2078_10(void) = ReturnVoid : +# 2078| v2078_11(void) = AliasedUse : ~m? +# 2078| v2078_12(void) = ExitFunction : + +# 2078| void TernaryNonPodObj::TernaryNonPodObj(TernaryNonPodObj const&) +# 2078| Block 0 +# 2078| v2078_1(void) = EnterFunction : +# 2078| mu2078_2(unknown) = AliasedDefinition : +# 2078| mu2078_3(unknown) = InitializeNonLocal : +# 2078| r2078_4(glval) = VariableAddress[#this] : +# 2078| mu2078_5(glval) = InitializeParameter[#this] : &:r2078_4 +# 2078| r2078_6(glval) = Load[#this] : &:r2078_4, ~m? +# 2078| mu2078_7(TernaryNonPodObj) = InitializeIndirection[#this] : &:r2078_6 #-----| r0_1(glval) = VariableAddress[(unnamed parameter 0)] : #-----| mu0_2(TernaryNonPodObj &) = InitializeParameter[(unnamed parameter 0)] : &:r0_1 #-----| r0_3(TernaryNonPodObj &) = Load[(unnamed parameter 0)] : &:r0_1, ~m? #-----| mu0_4(unknown) = InitializeIndirection[(unnamed parameter 0)] : &:r0_3 -# 2076| v2076_8(void) = NoOp : -# 2076| v2076_9(void) = ReturnIndirection[#this] : &:r2076_6, ~m? +# 2078| v2078_8(void) = NoOp : +# 2078| v2078_9(void) = ReturnIndirection[#this] : &:r2078_6, ~m? #-----| v0_5(void) = ReturnIndirection[(unnamed parameter 0)] : &:r0_3, ~m? -# 2076| v2076_10(void) = ReturnVoid : -# 2076| v2076_11(void) = AliasedUse : ~m? -# 2076| v2076_12(void) = ExitFunction : - -# 2077| void TernaryNonPodObj::~TernaryNonPodObj() -# 2077| Block 0 -# 2077| v2077_1(void) = EnterFunction : -# 2077| mu2077_2(unknown) = AliasedDefinition : -# 2077| mu2077_3(unknown) = InitializeNonLocal : -# 2077| r2077_4(glval) = VariableAddress[#this] : -# 2077| mu2077_5(glval) = InitializeParameter[#this] : &:r2077_4 -# 2077| r2077_6(glval) = Load[#this] : &:r2077_4, ~m? -# 2077| mu2077_7(TernaryNonPodObj) = InitializeIndirection[#this] : &:r2077_6 -# 2077| v2077_8(void) = NoOp : -# 2077| v2077_9(void) = ReturnIndirection[#this] : &:r2077_6, ~m? -# 2077| v2077_10(void) = ReturnVoid : -# 2077| v2077_11(void) = AliasedUse : ~m? -# 2077| v2077_12(void) = ExitFunction : - -# 2080| void TernaryTestNonPodObj(bool, TernaryNonPodObj, TernaryNonPodObj, TernaryNonPodObj) -# 2080| Block 0 -# 2080| v2080_1(void) = EnterFunction : -# 2080| mu2080_2(unknown) = AliasedDefinition : -# 2080| mu2080_3(unknown) = InitializeNonLocal : -# 2080| r2080_4(glval) = VariableAddress[a] : -# 2080| mu2080_5(bool) = InitializeParameter[a] : &:r2080_4 -# 2080| r2080_6(glval) = VariableAddress[x] : -# 2080| mu2080_7(TernaryNonPodObj) = InitializeParameter[x] : &:r2080_6 -# 2080| r2080_8(glval) = VariableAddress[y] : -# 2080| mu2080_9(TernaryNonPodObj) = InitializeParameter[y] : &:r2080_8 -# 2080| r2080_10(glval) = VariableAddress[z] : -# 2080| mu2080_11(TernaryNonPodObj) = InitializeParameter[z] : &:r2080_10 -# 2081| r2081_1(glval) = VariableAddress[z] : -# 2081| r2081_2(glval) = FunctionAddress[operator=] : -# 2081| r2081_3(glval) = VariableAddress[a] : -# 2081| r2081_4(bool) = Load[a] : &:r2081_3, ~m? -# 2081| v2081_5(void) = ConditionalBranch : r2081_4 +# 2078| v2078_10(void) = ReturnVoid : +# 2078| v2078_11(void) = AliasedUse : ~m? +# 2078| v2078_12(void) = ExitFunction : + +# 2079| void TernaryNonPodObj::~TernaryNonPodObj() +# 2079| Block 0 +# 2079| v2079_1(void) = EnterFunction : +# 2079| mu2079_2(unknown) = AliasedDefinition : +# 2079| mu2079_3(unknown) = InitializeNonLocal : +# 2079| r2079_4(glval) = VariableAddress[#this] : +# 2079| mu2079_5(glval) = InitializeParameter[#this] : &:r2079_4 +# 2079| r2079_6(glval) = Load[#this] : &:r2079_4, ~m? +# 2079| mu2079_7(TernaryNonPodObj) = InitializeIndirection[#this] : &:r2079_6 +# 2079| v2079_8(void) = NoOp : +# 2079| v2079_9(void) = ReturnIndirection[#this] : &:r2079_6, ~m? +# 2079| v2079_10(void) = ReturnVoid : +# 2079| v2079_11(void) = AliasedUse : ~m? +# 2079| v2079_12(void) = ExitFunction : + +# 2082| void TernaryTestNonPodObj(bool, TernaryNonPodObj, TernaryNonPodObj, TernaryNonPodObj) +# 2082| Block 0 +# 2082| v2082_1(void) = EnterFunction : +# 2082| mu2082_2(unknown) = AliasedDefinition : +# 2082| mu2082_3(unknown) = InitializeNonLocal : +# 2082| r2082_4(glval) = VariableAddress[a] : +# 2082| mu2082_5(bool) = InitializeParameter[a] : &:r2082_4 +# 2082| r2082_6(glval) = VariableAddress[x] : +# 2082| mu2082_7(TernaryNonPodObj) = InitializeParameter[x] : &:r2082_6 +# 2082| r2082_8(glval) = VariableAddress[y] : +# 2082| mu2082_9(TernaryNonPodObj) = InitializeParameter[y] : &:r2082_8 +# 2082| r2082_10(glval) = VariableAddress[z] : +# 2082| mu2082_11(TernaryNonPodObj) = InitializeParameter[z] : &:r2082_10 +# 2083| r2083_1(glval) = VariableAddress[z] : +# 2083| r2083_2(glval) = FunctionAddress[operator=] : +# 2083| r2083_3(glval) = VariableAddress[a] : +# 2083| r2083_4(bool) = Load[a] : &:r2083_3, ~m? +# 2083| v2083_5(void) = ConditionalBranch : r2083_4 #-----| False -> Block 3 #-----| True -> Block 2 -# 2081| Block 1 -# 2081| r2081_6(glval) = VariableAddress[#temp2081:9] : -# 2081| r2081_7(glval) = Load[#temp2081:9] : &:r2081_6, ~m? -# 2081| r2081_8(glval) = Convert : r2081_7 -# 2081| r2081_9(TernaryNonPodObj &) = CopyValue : r2081_8 -# 2081| r2081_10(TernaryNonPodObj &) = Call[operator=] : func:r2081_2, this:r2081_1, 0:r2081_9 -# 2081| mu2081_11(unknown) = ^CallSideEffect : ~m? -# 2081| v2081_12(void) = ^IndirectReadSideEffect[-1] : &:r2081_1, ~m? -# 2081| v2081_13(void) = ^BufferReadSideEffect[0] : &:r2081_9, ~m? -# 2081| mu2081_14(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2081_1 -# 2081| r2081_15(glval) = CopyValue : r2081_10 -# 2082| r2082_1(glval) = VariableAddress[z] : -# 2082| r2082_2(glval) = FunctionAddress[operator=] : -# 2082| r2082_3(glval) = VariableAddress[#temp2082:9] : -# 2082| r2082_4(glval) = VariableAddress[a] : -# 2082| r2082_5(bool) = Load[a] : &:r2082_4, ~m? -# 2082| v2082_6(void) = ConditionalBranch : r2082_5 +# 2083| Block 1 +# 2083| r2083_6(glval) = VariableAddress[#temp2083:9] : +# 2083| r2083_7(glval) = Load[#temp2083:9] : &:r2083_6, ~m? +# 2083| r2083_8(glval) = Convert : r2083_7 +# 2083| r2083_9(TernaryNonPodObj &) = CopyValue : r2083_8 +# 2083| r2083_10(TernaryNonPodObj &) = Call[operator=] : func:r2083_2, this:r2083_1, 0:r2083_9 +# 2083| mu2083_11(unknown) = ^CallSideEffect : ~m? +# 2083| v2083_12(void) = ^IndirectReadSideEffect[-1] : &:r2083_1, ~m? +# 2083| v2083_13(void) = ^BufferReadSideEffect[0] : &:r2083_9, ~m? +# 2083| mu2083_14(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2083_1 +# 2083| r2083_15(glval) = CopyValue : r2083_10 +# 2084| r2084_1(glval) = VariableAddress[z] : +# 2084| r2084_2(glval) = FunctionAddress[operator=] : +# 2084| r2084_3(glval) = VariableAddress[#temp2084:9] : +# 2084| r2084_4(glval) = VariableAddress[a] : +# 2084| r2084_5(bool) = Load[a] : &:r2084_4, ~m? +# 2084| v2084_6(void) = ConditionalBranch : r2084_5 #-----| False -> Block 6 #-----| True -> Block 5 -# 2081| Block 2 -# 2081| r2081_16(glval) = VariableAddress[x] : -# 2081| r2081_17(glval) = VariableAddress[#temp2081:9] : -# 2081| mu2081_18(glval) = Store[#temp2081:9] : &:r2081_17, r2081_16 +# 2083| Block 2 +# 2083| r2083_16(glval) = VariableAddress[x] : +# 2083| r2083_17(glval) = VariableAddress[#temp2083:9] : +# 2083| mu2083_18(glval) = Store[#temp2083:9] : &:r2083_17, r2083_16 #-----| Goto -> Block 1 -# 2081| Block 3 -# 2081| r2081_19(glval) = VariableAddress[y] : -# 2081| r2081_20(glval) = VariableAddress[#temp2081:9] : -# 2081| mu2081_21(glval) = Store[#temp2081:9] : &:r2081_20, r2081_19 +# 2083| Block 3 +# 2083| r2083_19(glval) = VariableAddress[y] : +# 2083| r2083_20(glval) = VariableAddress[#temp2083:9] : +# 2083| mu2083_21(glval) = Store[#temp2083:9] : &:r2083_20, r2083_19 #-----| Goto -> Block 1 -# 2082| Block 4 -# 2082| r2082_7(glval) = VariableAddress[#temp2082:9] : -# 2082| r2082_8(TernaryNonPodObj) = Load[#temp2082:9] : &:r2082_7, ~m? -# 2082| mu2082_9(TernaryNonPodObj) = Store[#temp2082:9] : &:r2082_3, r2082_8 -# 2082| r2082_10(glval) = Convert : r2082_3 -# 2082| r2082_11(TernaryNonPodObj &) = CopyValue : r2082_10 -# 2082| r2082_12(TernaryNonPodObj &) = Call[operator=] : func:r2082_2, this:r2082_1, 0:r2082_11 -# 2082| mu2082_13(unknown) = ^CallSideEffect : ~m? -# 2082| v2082_14(void) = ^IndirectReadSideEffect[-1] : &:r2082_1, ~m? -# 2082| v2082_15(void) = ^BufferReadSideEffect[0] : &:r2082_11, ~m? -# 2082| mu2082_16(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2082_1 -# 2082| r2082_17(glval) = CopyValue : r2082_3 -# 2082| r2082_18(glval) = FunctionAddress[~TernaryNonPodObj] : -# 2082| v2082_19(void) = Call[~TernaryNonPodObj] : func:r2082_18, this:r2082_17 -# 2082| mu2082_20(unknown) = ^CallSideEffect : ~m? -# 2082| v2082_21(void) = ^IndirectReadSideEffect[-1] : &:r2082_17, ~m? -# 2082| mu2082_22(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2082_17 -# 2082| r2082_23(glval) = CopyValue : r2082_12 -# 2083| r2083_1(glval) = VariableAddress[z] : -# 2083| r2083_2(glval) = FunctionAddress[operator=] : -# 2083| r2083_3(glval) = VariableAddress[#temp2083:9] : -# 2083| r2083_4(glval) = VariableAddress[a] : -# 2083| r2083_5(bool) = Load[a] : &:r2083_4, ~m? -# 2083| v2083_6(void) = ConditionalBranch : r2083_5 +# 2084| Block 4 +# 2084| r2084_7(glval) = VariableAddress[#temp2084:9] : +# 2084| r2084_8(TernaryNonPodObj) = Load[#temp2084:9] : &:r2084_7, ~m? +# 2084| mu2084_9(TernaryNonPodObj) = Store[#temp2084:9] : &:r2084_3, r2084_8 +# 2084| r2084_10(glval) = Convert : r2084_3 +# 2084| r2084_11(TernaryNonPodObj &) = CopyValue : r2084_10 +# 2084| r2084_12(TernaryNonPodObj &) = Call[operator=] : func:r2084_2, this:r2084_1, 0:r2084_11 +# 2084| mu2084_13(unknown) = ^CallSideEffect : ~m? +# 2084| v2084_14(void) = ^IndirectReadSideEffect[-1] : &:r2084_1, ~m? +# 2084| v2084_15(void) = ^BufferReadSideEffect[0] : &:r2084_11, ~m? +# 2084| mu2084_16(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2084_1 +# 2084| r2084_17(glval) = CopyValue : r2084_3 +# 2084| r2084_18(glval) = FunctionAddress[~TernaryNonPodObj] : +# 2084| v2084_19(void) = Call[~TernaryNonPodObj] : func:r2084_18, this:r2084_17 +# 2084| mu2084_20(unknown) = ^CallSideEffect : ~m? +# 2084| v2084_21(void) = ^IndirectReadSideEffect[-1] : &:r2084_17, ~m? +# 2084| mu2084_22(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2084_17 +# 2084| r2084_23(glval) = CopyValue : r2084_12 +# 2085| r2085_1(glval) = VariableAddress[z] : +# 2085| r2085_2(glval) = FunctionAddress[operator=] : +# 2085| r2085_3(glval) = VariableAddress[#temp2085:9] : +# 2085| r2085_4(glval) = VariableAddress[a] : +# 2085| r2085_5(bool) = Load[a] : &:r2085_4, ~m? +# 2085| v2085_6(void) = ConditionalBranch : r2085_5 #-----| False -> Block 9 #-----| True -> Block 8 -# 2082| Block 5 -# 2082| r2082_24(glval) = VariableAddress[#temp2082:13] : -# 2082| mu2082_25(TernaryNonPodObj) = Uninitialized[#temp2082:13] : &:r2082_24 -# 2082| r2082_26(glval) = FunctionAddress[TernaryNonPodObj] : -# 2082| r2082_27(glval) = VariableAddress[x] : -# 2082| r2082_28(glval) = Convert : r2082_27 -# 2082| r2082_29(TernaryNonPodObj &) = CopyValue : r2082_28 -# 2082| v2082_30(void) = Call[TernaryNonPodObj] : func:r2082_26, this:r2082_24, 0:r2082_29 -# 2082| mu2082_31(unknown) = ^CallSideEffect : ~m? -# 2082| v2082_32(void) = ^BufferReadSideEffect[0] : &:r2082_29, ~m? -# 2082| mu2082_33(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2082_24 -# 2082| r2082_34(TernaryNonPodObj) = Load[#temp2082:13] : &:r2082_24, ~m? -# 2082| r2082_35(glval) = VariableAddress[#temp2082:9] : -# 2082| mu2082_36(TernaryNonPodObj) = Store[#temp2082:9] : &:r2082_35, r2082_34 +# 2084| Block 5 +# 2084| r2084_24(glval) = VariableAddress[#temp2084:13] : +# 2084| mu2084_25(TernaryNonPodObj) = Uninitialized[#temp2084:13] : &:r2084_24 +# 2084| r2084_26(glval) = FunctionAddress[TernaryNonPodObj] : +# 2084| r2084_27(glval) = VariableAddress[x] : +# 2084| r2084_28(glval) = Convert : r2084_27 +# 2084| r2084_29(TernaryNonPodObj &) = CopyValue : r2084_28 +# 2084| v2084_30(void) = Call[TernaryNonPodObj] : func:r2084_26, this:r2084_24, 0:r2084_29 +# 2084| mu2084_31(unknown) = ^CallSideEffect : ~m? +# 2084| v2084_32(void) = ^BufferReadSideEffect[0] : &:r2084_29, ~m? +# 2084| mu2084_33(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2084_24 +# 2084| r2084_34(TernaryNonPodObj) = Load[#temp2084:13] : &:r2084_24, ~m? +# 2084| r2084_35(glval) = VariableAddress[#temp2084:9] : +# 2084| mu2084_36(TernaryNonPodObj) = Store[#temp2084:9] : &:r2084_35, r2084_34 #-----| Goto -> Block 4 -# 2082| Block 6 -# 2082| r2082_37(glval) = VariableAddress[#temp2082:17] : -# 2082| mu2082_38(TernaryNonPodObj) = Uninitialized[#temp2082:17] : &:r2082_37 -# 2082| r2082_39(glval) = FunctionAddress[TernaryNonPodObj] : -# 2082| v2082_40(void) = Call[TernaryNonPodObj] : func:r2082_39, this:r2082_37 -# 2082| mu2082_41(unknown) = ^CallSideEffect : ~m? -# 2082| mu2082_42(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2082_37 -# 2082| r2082_43(TernaryNonPodObj) = Load[#temp2082:17] : &:r2082_37, ~m? -# 2082| r2082_44(glval) = VariableAddress[#temp2082:9] : -# 2082| mu2082_45(TernaryNonPodObj) = Store[#temp2082:9] : &:r2082_44, r2082_43 +# 2084| Block 6 +# 2084| r2084_37(glval) = VariableAddress[#temp2084:17] : +# 2084| mu2084_38(TernaryNonPodObj) = Uninitialized[#temp2084:17] : &:r2084_37 +# 2084| r2084_39(glval) = FunctionAddress[TernaryNonPodObj] : +# 2084| v2084_40(void) = Call[TernaryNonPodObj] : func:r2084_39, this:r2084_37 +# 2084| mu2084_41(unknown) = ^CallSideEffect : ~m? +# 2084| mu2084_42(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2084_37 +# 2084| r2084_43(TernaryNonPodObj) = Load[#temp2084:17] : &:r2084_37, ~m? +# 2084| r2084_44(glval) = VariableAddress[#temp2084:9] : +# 2084| mu2084_45(TernaryNonPodObj) = Store[#temp2084:9] : &:r2084_44, r2084_43 #-----| Goto -> Block 4 -# 2083| Block 7 -# 2083| r2083_7(glval) = VariableAddress[#temp2083:9] : -# 2083| r2083_8(TernaryNonPodObj) = Load[#temp2083:9] : &:r2083_7, ~m? -# 2083| mu2083_9(TernaryNonPodObj) = Store[#temp2083:9] : &:r2083_3, r2083_8 -# 2083| r2083_10(glval) = Convert : r2083_3 -# 2083| r2083_11(TernaryNonPodObj &) = CopyValue : r2083_10 -# 2083| r2083_12(TernaryNonPodObj &) = Call[operator=] : func:r2083_2, this:r2083_1, 0:r2083_11 -# 2083| mu2083_13(unknown) = ^CallSideEffect : ~m? -# 2083| v2083_14(void) = ^IndirectReadSideEffect[-1] : &:r2083_1, ~m? -# 2083| v2083_15(void) = ^BufferReadSideEffect[0] : &:r2083_11, ~m? -# 2083| mu2083_16(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2083_1 -# 2083| r2083_17(glval) = CopyValue : r2083_3 -# 2083| r2083_18(glval) = FunctionAddress[~TernaryNonPodObj] : -# 2083| v2083_19(void) = Call[~TernaryNonPodObj] : func:r2083_18, this:r2083_17 -# 2083| mu2083_20(unknown) = ^CallSideEffect : ~m? -# 2083| v2083_21(void) = ^IndirectReadSideEffect[-1] : &:r2083_17, ~m? -# 2083| mu2083_22(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2083_17 -# 2083| r2083_23(glval) = CopyValue : r2083_12 -# 2084| r2084_1(glval) = VariableAddress[z] : -# 2084| r2084_2(glval) = FunctionAddress[operator=] : -# 2084| r2084_3(glval) = VariableAddress[a] : -# 2084| r2084_4(bool) = Load[a] : &:r2084_3, ~m? -# 2084| v2084_5(void) = ConditionalBranch : r2084_4 +# 2085| Block 7 +# 2085| r2085_7(glval) = VariableAddress[#temp2085:9] : +# 2085| r2085_8(TernaryNonPodObj) = Load[#temp2085:9] : &:r2085_7, ~m? +# 2085| mu2085_9(TernaryNonPodObj) = Store[#temp2085:9] : &:r2085_3, r2085_8 +# 2085| r2085_10(glval) = Convert : r2085_3 +# 2085| r2085_11(TernaryNonPodObj &) = CopyValue : r2085_10 +# 2085| r2085_12(TernaryNonPodObj &) = Call[operator=] : func:r2085_2, this:r2085_1, 0:r2085_11 +# 2085| mu2085_13(unknown) = ^CallSideEffect : ~m? +# 2085| v2085_14(void) = ^IndirectReadSideEffect[-1] : &:r2085_1, ~m? +# 2085| v2085_15(void) = ^BufferReadSideEffect[0] : &:r2085_11, ~m? +# 2085| mu2085_16(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2085_1 +# 2085| r2085_17(glval) = CopyValue : r2085_3 +# 2085| r2085_18(glval) = FunctionAddress[~TernaryNonPodObj] : +# 2085| v2085_19(void) = Call[~TernaryNonPodObj] : func:r2085_18, this:r2085_17 +# 2085| mu2085_20(unknown) = ^CallSideEffect : ~m? +# 2085| v2085_21(void) = ^IndirectReadSideEffect[-1] : &:r2085_17, ~m? +# 2085| mu2085_22(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2085_17 +# 2085| r2085_23(glval) = CopyValue : r2085_12 +# 2086| r2086_1(glval) = VariableAddress[z] : +# 2086| r2086_2(glval) = FunctionAddress[operator=] : +# 2086| r2086_3(glval) = VariableAddress[a] : +# 2086| r2086_4(bool) = Load[a] : &:r2086_3, ~m? +# 2086| v2086_5(void) = ConditionalBranch : r2086_4 #-----| False -> Block 12 #-----| True -> Block 11 -# 2083| Block 8 -# 2083| r2083_24(glval) = VariableAddress[#temp2083:13] : -# 2083| mu2083_25(TernaryNonPodObj) = Uninitialized[#temp2083:13] : &:r2083_24 -# 2083| r2083_26(glval) = FunctionAddress[TernaryNonPodObj] : -# 2083| v2083_27(void) = Call[TernaryNonPodObj] : func:r2083_26, this:r2083_24 -# 2083| mu2083_28(unknown) = ^CallSideEffect : ~m? -# 2083| mu2083_29(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2083_24 -# 2083| r2083_30(TernaryNonPodObj) = Load[#temp2083:13] : &:r2083_24, ~m? -# 2083| r2083_31(glval) = VariableAddress[#temp2083:9] : -# 2083| mu2083_32(TernaryNonPodObj) = Store[#temp2083:9] : &:r2083_31, r2083_30 +# 2085| Block 8 +# 2085| r2085_24(glval) = VariableAddress[#temp2085:13] : +# 2085| mu2085_25(TernaryNonPodObj) = Uninitialized[#temp2085:13] : &:r2085_24 +# 2085| r2085_26(glval) = FunctionAddress[TernaryNonPodObj] : +# 2085| v2085_27(void) = Call[TernaryNonPodObj] : func:r2085_26, this:r2085_24 +# 2085| mu2085_28(unknown) = ^CallSideEffect : ~m? +# 2085| mu2085_29(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2085_24 +# 2085| r2085_30(TernaryNonPodObj) = Load[#temp2085:13] : &:r2085_24, ~m? +# 2085| r2085_31(glval) = VariableAddress[#temp2085:9] : +# 2085| mu2085_32(TernaryNonPodObj) = Store[#temp2085:9] : &:r2085_31, r2085_30 #-----| Goto -> Block 7 -# 2083| Block 9 -# 2083| r2083_33(glval) = VariableAddress[#temp2083:34] : -# 2083| mu2083_34(TernaryNonPodObj) = Uninitialized[#temp2083:34] : &:r2083_33 -# 2083| r2083_35(glval) = FunctionAddress[TernaryNonPodObj] : -# 2083| v2083_36(void) = Call[TernaryNonPodObj] : func:r2083_35, this:r2083_33 -# 2083| mu2083_37(unknown) = ^CallSideEffect : ~m? -# 2083| mu2083_38(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2083_33 -# 2083| r2083_39(TernaryNonPodObj) = Load[#temp2083:34] : &:r2083_33, ~m? -# 2083| r2083_40(glval) = VariableAddress[#temp2083:9] : -# 2083| mu2083_41(TernaryNonPodObj) = Store[#temp2083:9] : &:r2083_40, r2083_39 +# 2085| Block 9 +# 2085| r2085_33(glval) = VariableAddress[#temp2085:34] : +# 2085| mu2085_34(TernaryNonPodObj) = Uninitialized[#temp2085:34] : &:r2085_33 +# 2085| r2085_35(glval) = FunctionAddress[TernaryNonPodObj] : +# 2085| v2085_36(void) = Call[TernaryNonPodObj] : func:r2085_35, this:r2085_33 +# 2085| mu2085_37(unknown) = ^CallSideEffect : ~m? +# 2085| mu2085_38(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2085_33 +# 2085| r2085_39(TernaryNonPodObj) = Load[#temp2085:34] : &:r2085_33, ~m? +# 2085| r2085_40(glval) = VariableAddress[#temp2085:9] : +# 2085| mu2085_41(TernaryNonPodObj) = Store[#temp2085:9] : &:r2085_40, r2085_39 #-----| Goto -> Block 7 -# 2084| Block 10 -# 2084| r2084_6(glval) = VariableAddress[#temp2084:10] : -# 2084| r2084_7(glval) = Load[#temp2084:10] : &:r2084_6, ~m? -# 2084| r2084_8(glval) = Convert : r2084_7 -# 2084| r2084_9(TernaryNonPodObj &) = CopyValue : r2084_8 -# 2084| r2084_10(TernaryNonPodObj &) = Call[operator=] : func:r2084_2, this:r2084_1, 0:r2084_9 -# 2084| mu2084_11(unknown) = ^CallSideEffect : ~m? -# 2084| v2084_12(void) = ^IndirectReadSideEffect[-1] : &:r2084_1, ~m? -# 2084| v2084_13(void) = ^BufferReadSideEffect[0] : &:r2084_9, ~m? -# 2084| mu2084_14(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2084_1 -# 2084| r2084_15(glval) = CopyValue : r2084_10 -# 2084| r2084_16(glval) = FunctionAddress[operator=] : -# 2084| r2084_17(glval) = VariableAddress[#temp2084:23] : -# 2084| mu2084_18(TernaryNonPodObj) = Uninitialized[#temp2084:23] : &:r2084_17 -# 2084| r2084_19(glval) = FunctionAddress[TernaryNonPodObj] : -# 2084| v2084_20(void) = Call[TernaryNonPodObj] : func:r2084_19, this:r2084_17 -# 2084| mu2084_21(unknown) = ^CallSideEffect : ~m? -# 2084| mu2084_22(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2084_17 -# 2084| r2084_23(glval) = Convert : r2084_17 -# 2084| r2084_24(TernaryNonPodObj &) = CopyValue : r2084_23 -# 2084| r2084_25(TernaryNonPodObj &) = Call[operator=] : func:r2084_16, this:r2084_15, 0:r2084_24 -# 2084| mu2084_26(unknown) = ^CallSideEffect : ~m? -# 2084| v2084_27(void) = ^IndirectReadSideEffect[-1] : &:r2084_15, ~m? -# 2084| v2084_28(void) = ^BufferReadSideEffect[0] : &:r2084_24, ~m? -# 2084| mu2084_29(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2084_15 -# 2084| r2084_30(glval) = CopyValue : r2084_17 -# 2084| r2084_31(glval) = FunctionAddress[~TernaryNonPodObj] : -# 2084| v2084_32(void) = Call[~TernaryNonPodObj] : func:r2084_31, this:r2084_30 -# 2084| mu2084_33(unknown) = ^CallSideEffect : ~m? -# 2084| v2084_34(void) = ^IndirectReadSideEffect[-1] : &:r2084_30, ~m? -# 2084| mu2084_35(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2084_30 -# 2084| r2084_36(glval) = CopyValue : r2084_25 -# 2085| v2085_1(void) = NoOp : -# 2080| v2080_12(void) = ReturnVoid : -# 2080| v2080_13(void) = AliasedUse : ~m? -# 2080| v2080_14(void) = ExitFunction : - -# 2084| Block 11 -# 2084| r2084_37(glval) = VariableAddress[x] : -# 2084| r2084_38(glval) = VariableAddress[#temp2084:10] : -# 2084| mu2084_39(glval) = Store[#temp2084:10] : &:r2084_38, r2084_37 +# 2086| Block 10 +# 2086| r2086_6(glval) = VariableAddress[#temp2086:10] : +# 2086| r2086_7(glval) = Load[#temp2086:10] : &:r2086_6, ~m? +# 2086| r2086_8(glval) = Convert : r2086_7 +# 2086| r2086_9(TernaryNonPodObj &) = CopyValue : r2086_8 +# 2086| r2086_10(TernaryNonPodObj &) = Call[operator=] : func:r2086_2, this:r2086_1, 0:r2086_9 +# 2086| mu2086_11(unknown) = ^CallSideEffect : ~m? +# 2086| v2086_12(void) = ^IndirectReadSideEffect[-1] : &:r2086_1, ~m? +# 2086| v2086_13(void) = ^BufferReadSideEffect[0] : &:r2086_9, ~m? +# 2086| mu2086_14(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2086_1 +# 2086| r2086_15(glval) = CopyValue : r2086_10 +# 2086| r2086_16(glval) = FunctionAddress[operator=] : +# 2086| r2086_17(glval) = VariableAddress[#temp2086:23] : +# 2086| mu2086_18(TernaryNonPodObj) = Uninitialized[#temp2086:23] : &:r2086_17 +# 2086| r2086_19(glval) = FunctionAddress[TernaryNonPodObj] : +# 2086| v2086_20(void) = Call[TernaryNonPodObj] : func:r2086_19, this:r2086_17 +# 2086| mu2086_21(unknown) = ^CallSideEffect : ~m? +# 2086| mu2086_22(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2086_17 +# 2086| r2086_23(glval) = Convert : r2086_17 +# 2086| r2086_24(TernaryNonPodObj &) = CopyValue : r2086_23 +# 2086| r2086_25(TernaryNonPodObj &) = Call[operator=] : func:r2086_16, this:r2086_15, 0:r2086_24 +# 2086| mu2086_26(unknown) = ^CallSideEffect : ~m? +# 2086| v2086_27(void) = ^IndirectReadSideEffect[-1] : &:r2086_15, ~m? +# 2086| v2086_28(void) = ^BufferReadSideEffect[0] : &:r2086_24, ~m? +# 2086| mu2086_29(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2086_15 +# 2086| r2086_30(glval) = CopyValue : r2086_17 +# 2086| r2086_31(glval) = FunctionAddress[~TernaryNonPodObj] : +# 2086| v2086_32(void) = Call[~TernaryNonPodObj] : func:r2086_31, this:r2086_30 +# 2086| mu2086_33(unknown) = ^CallSideEffect : ~m? +# 2086| v2086_34(void) = ^IndirectReadSideEffect[-1] : &:r2086_30, ~m? +# 2086| mu2086_35(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2086_30 +# 2086| r2086_36(glval) = CopyValue : r2086_25 +# 2087| v2087_1(void) = NoOp : +# 2082| v2082_12(void) = ReturnVoid : +# 2082| v2082_13(void) = AliasedUse : ~m? +# 2082| v2082_14(void) = ExitFunction : + +# 2086| Block 11 +# 2086| r2086_37(glval) = VariableAddress[x] : +# 2086| r2086_38(glval) = VariableAddress[#temp2086:10] : +# 2086| mu2086_39(glval) = Store[#temp2086:10] : &:r2086_38, r2086_37 #-----| Goto -> Block 10 -# 2084| Block 12 -# 2084| r2084_40(glval) = VariableAddress[y] : -# 2084| r2084_41(glval) = VariableAddress[#temp2084:10] : -# 2084| mu2084_42(glval) = Store[#temp2084:10] : &:r2084_41, r2084_40 +# 2086| Block 12 +# 2086| r2086_40(glval) = VariableAddress[y] : +# 2086| r2086_41(glval) = VariableAddress[#temp2086:10] : +# 2086| mu2086_42(glval) = Store[#temp2086:10] : &:r2086_41, r2086_40 #-----| Goto -> Block 10 -# 2089| unsigned int CommaTest(unsigned int) -# 2089| Block 0 -# 2089| v2089_1(void) = EnterFunction : -# 2089| mu2089_2(unknown) = AliasedDefinition : -# 2089| mu2089_3(unknown) = InitializeNonLocal : -# 2089| r2089_4(glval) = VariableAddress[x] : -# 2089| mu2089_5(unsigned int) = InitializeParameter[x] : &:r2089_4 -# 2090| r2090_1(glval) = VariableAddress[y] : -# 2090| mu2090_2(unsigned int) = Uninitialized[y] : &:r2090_1 -# 2091| r2091_1(glval) = VariableAddress[x] : -# 2091| r2091_2(unsigned int) = Load[x] : &:r2091_1, ~m? -# 2091| r2091_3(unsigned int) = Constant[100] : -# 2091| r2091_4(bool) = CompareLT : r2091_2, r2091_3 -# 2091| v2091_5(void) = ConditionalBranch : r2091_4 +# 2091| unsigned int CommaTest(unsigned int) +# 2091| Block 0 +# 2091| v2091_1(void) = EnterFunction : +# 2091| mu2091_2(unknown) = AliasedDefinition : +# 2091| mu2091_3(unknown) = InitializeNonLocal : +# 2091| r2091_4(glval) = VariableAddress[x] : +# 2091| mu2091_5(unsigned int) = InitializeParameter[x] : &:r2091_4 +# 2092| r2092_1(glval) = VariableAddress[y] : +# 2092| mu2092_2(unsigned int) = Uninitialized[y] : &:r2092_1 +# 2093| r2093_1(glval) = VariableAddress[x] : +# 2093| r2093_2(unsigned int) = Load[x] : &:r2093_1, ~m? +# 2093| r2093_3(unsigned int) = Constant[100] : +# 2093| r2093_4(bool) = CompareLT : r2093_2, r2093_3 +# 2093| v2093_5(void) = ConditionalBranch : r2093_4 #-----| False -> Block 3 #-----| True -> Block 2 -# 2091| Block 1 -# 2091| r2091_6(glval) = VariableAddress[#temp2091:7] : -# 2091| r2091_7(unsigned int) = Load[#temp2091:7] : &:r2091_6, ~m? -# 2091| r2091_8(glval) = VariableAddress[y] : -# 2091| mu2091_9(unsigned int) = Store[y] : &:r2091_8, r2091_7 -# 2094| r2094_1(glval) = VariableAddress[#return] : -# 2094| mu2094_2(unsigned int) = Uninitialized[#return] : &:r2094_1 -# 2089| r2089_6(glval) = VariableAddress[#return] : -# 2089| v2089_7(void) = ReturnValue : &:r2089_6, ~m? -# 2089| v2089_8(void) = AliasedUse : ~m? -# 2089| v2089_9(void) = ExitFunction : - -# 2092| Block 2 -# 2092| r2092_1(glval) = FunctionAddress[CommaTestHelper] : -# 2092| r2092_2(glval) = VariableAddress[x] : -# 2092| r2092_3(unsigned int) = Load[x] : &:r2092_2, ~m? -# 2092| v2092_4(void) = Call[CommaTestHelper] : func:r2092_1, 0:r2092_3 -# 2092| mu2092_5(unknown) = ^CallSideEffect : ~m? -# 2092| r2092_6(glval) = VariableAddress[x] : -# 2092| r2092_7(unsigned int) = Load[x] : &:r2092_6, ~m? -# 2092| r2092_8(unsigned int) = CopyValue : r2092_7 -# 2091| r2091_10(glval) = VariableAddress[#temp2091:7] : -# 2091| mu2091_11(unsigned int) = Store[#temp2091:7] : &:r2091_10, r2092_8 +# 2093| Block 1 +# 2093| r2093_6(glval) = VariableAddress[#temp2093:7] : +# 2093| r2093_7(unsigned int) = Load[#temp2093:7] : &:r2093_6, ~m? +# 2093| r2093_8(glval) = VariableAddress[y] : +# 2093| mu2093_9(unsigned int) = Store[y] : &:r2093_8, r2093_7 +# 2096| r2096_1(glval) = VariableAddress[#return] : +# 2096| mu2096_2(unsigned int) = Uninitialized[#return] : &:r2096_1 +# 2091| r2091_6(glval) = VariableAddress[#return] : +# 2091| v2091_7(void) = ReturnValue : &:r2091_6, ~m? +# 2091| v2091_8(void) = AliasedUse : ~m? +# 2091| v2091_9(void) = ExitFunction : + +# 2094| Block 2 +# 2094| r2094_1(glval) = FunctionAddress[CommaTestHelper] : +# 2094| r2094_2(glval) = VariableAddress[x] : +# 2094| r2094_3(unsigned int) = Load[x] : &:r2094_2, ~m? +# 2094| v2094_4(void) = Call[CommaTestHelper] : func:r2094_1, 0:r2094_3 +# 2094| mu2094_5(unknown) = ^CallSideEffect : ~m? +# 2094| r2094_6(glval) = VariableAddress[x] : +# 2094| r2094_7(unsigned int) = Load[x] : &:r2094_6, ~m? +# 2094| r2094_8(unsigned int) = CopyValue : r2094_7 +# 2093| r2093_10(glval) = VariableAddress[#temp2093:7] : +# 2093| mu2093_11(unsigned int) = Store[#temp2093:7] : &:r2093_10, r2094_8 #-----| Goto -> Block 1 -# 2093| Block 3 -# 2093| r2093_1(glval) = FunctionAddress[CommaTestHelper] : -# 2093| r2093_2(glval) = VariableAddress[x] : -# 2093| r2093_3(unsigned int) = Load[x] : &:r2093_2, ~m? -# 2093| v2093_4(void) = Call[CommaTestHelper] : func:r2093_1, 0:r2093_3 -# 2093| mu2093_5(unknown) = ^CallSideEffect : ~m? -# 2093| r2093_6(int) = Constant[10] : -# 2093| r2093_7(int) = CopyValue : r2093_6 -# 2093| r2093_8(unsigned int) = Convert : r2093_7 -# 2091| r2091_12(glval) = VariableAddress[#temp2091:7] : -# 2091| mu2091_13(unsigned int) = Store[#temp2091:7] : &:r2091_12, r2093_8 +# 2095| Block 3 +# 2095| r2095_1(glval) = FunctionAddress[CommaTestHelper] : +# 2095| r2095_2(glval) = VariableAddress[x] : +# 2095| r2095_3(unsigned int) = Load[x] : &:r2095_2, ~m? +# 2095| v2095_4(void) = Call[CommaTestHelper] : func:r2095_1, 0:r2095_3 +# 2095| mu2095_5(unknown) = ^CallSideEffect : ~m? +# 2095| r2095_6(int) = Constant[10] : +# 2095| r2095_7(int) = CopyValue : r2095_6 +# 2095| r2095_8(unsigned int) = Convert : r2095_7 +# 2093| r2093_12(glval) = VariableAddress[#temp2093:7] : +# 2093| mu2093_13(unsigned int) = Store[#temp2093:7] : &:r2093_12, r2095_8 #-----| Goto -> Block 1 -# 2096| void NewDeleteMem() -# 2096| Block 0 -# 2096| v2096_1(void) = EnterFunction : -# 2096| mu2096_2(unknown) = AliasedDefinition : -# 2096| mu2096_3(unknown) = InitializeNonLocal : -# 2097| r2097_1(glval) = VariableAddress[x] : -# 2097| r2097_2(glval) = FunctionAddress[operator new] : -# 2097| r2097_3(unsigned long) = Constant[4] : -# 2097| r2097_4(void *) = Call[operator new] : func:r2097_2, 0:r2097_3 -# 2097| mu2097_5(unknown) = ^CallSideEffect : ~m? -# 2097| mu2097_6(unknown) = ^InitializeDynamicAllocation : &:r2097_4 -# 2097| r2097_7(int *) = Convert : r2097_4 -# 2097| mu2097_8(int *) = Store[x] : &:r2097_1, r2097_7 -# 2098| r2098_1(int) = Constant[6] : -# 2098| r2098_2(glval) = VariableAddress[x] : -# 2098| r2098_3(int *) = Load[x] : &:r2098_2, ~m? -# 2098| r2098_4(glval) = CopyValue : r2098_3 -# 2098| mu2098_5(int) = Store[?] : &:r2098_4, r2098_1 -# 2099| r2099_1(glval) = FunctionAddress[operator delete] : -# 2099| r2099_2(glval) = VariableAddress[x] : -# 2099| r2099_3(int *) = Load[x] : &:r2099_2, ~m? -# 2099| v2099_4(void) = Call[operator delete] : func:r2099_1, 0:r2099_3 +# 2098| void NewDeleteMem() +# 2098| Block 0 +# 2098| v2098_1(void) = EnterFunction : +# 2098| mu2098_2(unknown) = AliasedDefinition : +# 2098| mu2098_3(unknown) = InitializeNonLocal : +# 2099| r2099_1(glval) = VariableAddress[x] : +# 2099| r2099_2(glval) = FunctionAddress[operator new] : +# 2099| r2099_3(unsigned long) = Constant[4] : +# 2099| r2099_4(void *) = Call[operator new] : func:r2099_2, 0:r2099_3 # 2099| mu2099_5(unknown) = ^CallSideEffect : ~m? -# 2100| v2100_1(void) = NoOp : -# 2096| v2096_4(void) = ReturnVoid : -# 2096| v2096_5(void) = AliasedUse : ~m? -# 2096| v2096_6(void) = ExitFunction : - -# 2102| void Base2::Base2() -# 2102| Block 0 -# 2102| v2102_1(void) = EnterFunction : -# 2102| mu2102_2(unknown) = AliasedDefinition : -# 2102| mu2102_3(unknown) = InitializeNonLocal : -# 2102| r2102_4(glval) = VariableAddress[#this] : -# 2102| mu2102_5(glval) = InitializeParameter[#this] : &:r2102_4 -# 2102| r2102_6(glval) = Load[#this] : &:r2102_4, ~m? -# 2102| mu2102_7(Base2) = InitializeIndirection[#this] : &:r2102_6 -# 2102| v2102_8(void) = NoOp : -# 2102| v2102_9(void) = ReturnIndirection[#this] : &:r2102_6, ~m? -# 2102| v2102_10(void) = ReturnVoid : -# 2102| v2102_11(void) = AliasedUse : ~m? -# 2102| v2102_12(void) = ExitFunction : - -# 2104| void Base2::operator delete(void*) +# 2099| mu2099_6(unknown) = ^InitializeDynamicAllocation : &:r2099_4 +# 2099| r2099_7(int *) = Convert : r2099_4 +# 2099| mu2099_8(int *) = Store[x] : &:r2099_1, r2099_7 +# 2100| r2100_1(int) = Constant[6] : +# 2100| r2100_2(glval) = VariableAddress[x] : +# 2100| r2100_3(int *) = Load[x] : &:r2100_2, ~m? +# 2100| r2100_4(glval) = CopyValue : r2100_3 +# 2100| mu2100_5(int) = Store[?] : &:r2100_4, r2100_1 +# 2101| r2101_1(glval) = FunctionAddress[operator delete] : +# 2101| r2101_2(glval) = VariableAddress[x] : +# 2101| r2101_3(int *) = Load[x] : &:r2101_2, ~m? +# 2101| v2101_4(void) = Call[operator delete] : func:r2101_1, 0:r2101_3 +# 2101| mu2101_5(unknown) = ^CallSideEffect : ~m? +# 2102| v2102_1(void) = NoOp : +# 2098| v2098_4(void) = ReturnVoid : +# 2098| v2098_5(void) = AliasedUse : ~m? +# 2098| v2098_6(void) = ExitFunction : + +# 2104| void Base2::Base2() # 2104| Block 0 -# 2104| v2104_1(void) = EnterFunction : -# 2104| mu2104_2(unknown) = AliasedDefinition : -# 2104| mu2104_3(unknown) = InitializeNonLocal : -# 2104| r2104_4(glval) = VariableAddress[p] : -# 2104| mu2104_5(void *) = InitializeParameter[p] : &:r2104_4 -# 2104| r2104_6(void *) = Load[p] : &:r2104_4, ~m? -# 2104| mu2104_7(unknown) = InitializeIndirection[p] : &:r2104_6 -# 2105| v2105_1(void) = NoOp : -# 2104| v2104_8(void) = ReturnIndirection[p] : &:r2104_6, ~m? -# 2104| v2104_9(void) = ReturnVoid : -# 2104| v2104_10(void) = AliasedUse : ~m? -# 2104| v2104_11(void) = ExitFunction : - -# 2106| void Base2::~Base2() +# 2104| v2104_1(void) = EnterFunction : +# 2104| mu2104_2(unknown) = AliasedDefinition : +# 2104| mu2104_3(unknown) = InitializeNonLocal : +# 2104| r2104_4(glval) = VariableAddress[#this] : +# 2104| mu2104_5(glval) = InitializeParameter[#this] : &:r2104_4 +# 2104| r2104_6(glval) = Load[#this] : &:r2104_4, ~m? +# 2104| mu2104_7(Base2) = InitializeIndirection[#this] : &:r2104_6 +# 2104| v2104_8(void) = NoOp : +# 2104| v2104_9(void) = ReturnIndirection[#this] : &:r2104_6, ~m? +# 2104| v2104_10(void) = ReturnVoid : +# 2104| v2104_11(void) = AliasedUse : ~m? +# 2104| v2104_12(void) = ExitFunction : + +# 2106| void Base2::operator delete(void*) # 2106| Block 0 -# 2106| v2106_1(void) = EnterFunction : -# 2106| mu2106_2(unknown) = AliasedDefinition : -# 2106| mu2106_3(unknown) = InitializeNonLocal : -# 2106| r2106_4(glval) = VariableAddress[#this] : -# 2106| mu2106_5(glval) = InitializeParameter[#this] : &:r2106_4 -# 2106| r2106_6(glval) = Load[#this] : &:r2106_4, ~m? -# 2106| mu2106_7(Base2) = InitializeIndirection[#this] : &:r2106_6 -# 2106| v2106_8(void) = NoOp : -# 2106| v2106_9(void) = ReturnIndirection[#this] : &:r2106_6, ~m? -# 2106| v2106_10(void) = ReturnVoid : -# 2106| v2106_11(void) = AliasedUse : ~m? -# 2106| v2106_12(void) = ExitFunction : - -# 2109| void Derived2::Derived2() -# 2109| Block 0 -# 2109| v2109_1(void) = EnterFunction : -# 2109| mu2109_2(unknown) = AliasedDefinition : -# 2109| mu2109_3(unknown) = InitializeNonLocal : -# 2109| r2109_4(glval) = VariableAddress[#this] : -# 2109| mu2109_5(glval) = InitializeParameter[#this] : &:r2109_4 -# 2109| r2109_6(glval) = Load[#this] : &:r2109_4, ~m? -# 2109| mu2109_7(Derived2) = InitializeIndirection[#this] : &:r2109_6 -# 2109| r2109_8(glval) = ConvertToNonVirtualBase[Derived2 : Base2] : r2109_6 -# 2109| r2109_9(glval) = FunctionAddress[Base2] : -# 2109| v2109_10(void) = Call[Base2] : func:r2109_9, this:r2109_8 -# 2109| mu2109_11(unknown) = ^CallSideEffect : ~m? -# 2109| mu2109_12(Base2) = ^IndirectMayWriteSideEffect[-1] : &:r2109_8 -# 2109| v2109_13(void) = NoOp : -# 2109| v2109_14(void) = ReturnIndirection[#this] : &:r2109_6, ~m? -# 2109| v2109_15(void) = ReturnVoid : -# 2109| v2109_16(void) = AliasedUse : ~m? -# 2109| v2109_17(void) = ExitFunction : - -# 2112| void Derived2::~Derived2() -# 2112| Block 0 -# 2112| v2112_1(void) = EnterFunction : -# 2112| mu2112_2(unknown) = AliasedDefinition : -# 2112| mu2112_3(unknown) = InitializeNonLocal : -# 2112| r2112_4(glval) = VariableAddress[#this] : -# 2112| mu2112_5(glval) = InitializeParameter[#this] : &:r2112_4 -# 2112| r2112_6(glval) = Load[#this] : &:r2112_4, ~m? -# 2112| mu2112_7(Derived2) = InitializeIndirection[#this] : &:r2112_6 -# 2112| v2112_8(void) = NoOp : -# 2112| r2112_9(glval) = ConvertToNonVirtualBase[Derived2 : Base2] : r2112_6 -# 2112| r2112_10(glval) = FunctionAddress[~Base2] : -# 2112| v2112_11(void) = Call[~Base2] : func:r2112_10, this:r2112_9 -# 2112| mu2112_12(unknown) = ^CallSideEffect : ~m? -# 2112| v2112_13(void) = ReturnIndirection[#this] : &:r2112_6, ~m? -# 2112| v2112_14(void) = ReturnVoid : -# 2112| v2112_15(void) = AliasedUse : ~m? -# 2112| v2112_16(void) = ExitFunction : - -# 2114| void Derived2::operator delete(void*) +# 2106| v2106_1(void) = EnterFunction : +# 2106| mu2106_2(unknown) = AliasedDefinition : +# 2106| mu2106_3(unknown) = InitializeNonLocal : +# 2106| r2106_4(glval) = VariableAddress[p] : +# 2106| mu2106_5(void *) = InitializeParameter[p] : &:r2106_4 +# 2106| r2106_6(void *) = Load[p] : &:r2106_4, ~m? +# 2106| mu2106_7(unknown) = InitializeIndirection[p] : &:r2106_6 +# 2107| v2107_1(void) = NoOp : +# 2106| v2106_8(void) = ReturnIndirection[p] : &:r2106_6, ~m? +# 2106| v2106_9(void) = ReturnVoid : +# 2106| v2106_10(void) = AliasedUse : ~m? +# 2106| v2106_11(void) = ExitFunction : + +# 2108| void Base2::~Base2() +# 2108| Block 0 +# 2108| v2108_1(void) = EnterFunction : +# 2108| mu2108_2(unknown) = AliasedDefinition : +# 2108| mu2108_3(unknown) = InitializeNonLocal : +# 2108| r2108_4(glval) = VariableAddress[#this] : +# 2108| mu2108_5(glval) = InitializeParameter[#this] : &:r2108_4 +# 2108| r2108_6(glval) = Load[#this] : &:r2108_4, ~m? +# 2108| mu2108_7(Base2) = InitializeIndirection[#this] : &:r2108_6 +# 2108| v2108_8(void) = NoOp : +# 2108| v2108_9(void) = ReturnIndirection[#this] : &:r2108_6, ~m? +# 2108| v2108_10(void) = ReturnVoid : +# 2108| v2108_11(void) = AliasedUse : ~m? +# 2108| v2108_12(void) = ExitFunction : + +# 2111| void Derived2::Derived2() +# 2111| Block 0 +# 2111| v2111_1(void) = EnterFunction : +# 2111| mu2111_2(unknown) = AliasedDefinition : +# 2111| mu2111_3(unknown) = InitializeNonLocal : +# 2111| r2111_4(glval) = VariableAddress[#this] : +# 2111| mu2111_5(glval) = InitializeParameter[#this] : &:r2111_4 +# 2111| r2111_6(glval) = Load[#this] : &:r2111_4, ~m? +# 2111| mu2111_7(Derived2) = InitializeIndirection[#this] : &:r2111_6 +# 2111| r2111_8(glval) = ConvertToNonVirtualBase[Derived2 : Base2] : r2111_6 +# 2111| r2111_9(glval) = FunctionAddress[Base2] : +# 2111| v2111_10(void) = Call[Base2] : func:r2111_9, this:r2111_8 +# 2111| mu2111_11(unknown) = ^CallSideEffect : ~m? +# 2111| mu2111_12(Base2) = ^IndirectMayWriteSideEffect[-1] : &:r2111_8 +# 2111| v2111_13(void) = NoOp : +# 2111| v2111_14(void) = ReturnIndirection[#this] : &:r2111_6, ~m? +# 2111| v2111_15(void) = ReturnVoid : +# 2111| v2111_16(void) = AliasedUse : ~m? +# 2111| v2111_17(void) = ExitFunction : + +# 2114| void Derived2::~Derived2() # 2114| Block 0 -# 2114| v2114_1(void) = EnterFunction : -# 2114| mu2114_2(unknown) = AliasedDefinition : -# 2114| mu2114_3(unknown) = InitializeNonLocal : -# 2114| r2114_4(glval) = VariableAddress[p] : -# 2114| mu2114_5(void *) = InitializeParameter[p] : &:r2114_4 -# 2114| r2114_6(void *) = Load[p] : &:r2114_4, ~m? -# 2114| mu2114_7(unknown) = InitializeIndirection[p] : &:r2114_6 -# 2115| v2115_1(void) = NoOp : -# 2114| v2114_8(void) = ReturnIndirection[p] : &:r2114_6, ~m? -# 2114| v2114_9(void) = ReturnVoid : -# 2114| v2114_10(void) = AliasedUse : ~m? -# 2114| v2114_11(void) = ExitFunction : - -# 2119| int virtual_delete() -# 2119| Block 0 -# 2119| v2119_1(void) = EnterFunction : -# 2119| mu2119_2(unknown) = AliasedDefinition : -# 2119| mu2119_3(unknown) = InitializeNonLocal : -# 2121| r2121_1(glval) = VariableAddress[b1] : -# 2121| r2121_2(glval) = FunctionAddress[operator new] : -# 2121| r2121_3(unsigned long) = Constant[8] : -# 2121| r2121_4(void *) = Call[operator new] : func:r2121_2, 0:r2121_3 -# 2121| mu2121_5(unknown) = ^CallSideEffect : ~m? -# 2121| mu2121_6(unknown) = ^InitializeDynamicAllocation : &:r2121_4 -# 2121| r2121_7(Base2 *) = Convert : r2121_4 -# 2121| r2121_8(glval) = FunctionAddress[Base2] : -# 2121| v2121_9(void) = Call[Base2] : func:r2121_8, this:r2121_7 -# 2121| mu2121_10(unknown) = ^CallSideEffect : ~m? -# 2121| mu2121_11(Base2) = ^IndirectMayWriteSideEffect[-1] : &:r2121_7 -# 2121| mu2121_12(Base2 *) = Store[b1] : &:r2121_1, r2121_7 -# 2122| r2122_1(glval) = VariableAddress[b1] : -# 2122| r2122_2(Base2 *) = Load[b1] : &:r2122_1, ~m? -# 2122| r2122_3(glval) = FunctionAddress[~Base2] : -# 2122| v2122_4(void) = Call[~Base2] : func:r2122_3 -# 2122| mu2122_5(unknown) = ^CallSideEffect : ~m? -# 2122| v2122_6(void) = ^IndirectReadSideEffect[-1] : &:r2122_2, ~m? -# 2122| mu2122_7(Base2) = ^IndirectMayWriteSideEffect[-1] : &:r2122_2 -# 2122| r2122_8(glval) = VirtualDeleteFunctionAddress : -# 2122| r2122_9(Base2 *) = CopyValue : r2122_1 -# 2122| v2122_10(void) = Call[?] : func:r2122_8, 0:r2122_9 -# 2122| mu2122_11(unknown) = ^CallSideEffect : ~m? -# 2124| r2124_1(glval) = VariableAddress[b2] : -# 2124| r2124_2(glval) = FunctionAddress[operator new] : -# 2124| r2124_3(unsigned long) = Constant[16] : -# 2124| r2124_4(void *) = Call[operator new] : func:r2124_2, 0:r2124_3 +# 2114| v2114_1(void) = EnterFunction : +# 2114| mu2114_2(unknown) = AliasedDefinition : +# 2114| mu2114_3(unknown) = InitializeNonLocal : +# 2114| r2114_4(glval) = VariableAddress[#this] : +# 2114| mu2114_5(glval) = InitializeParameter[#this] : &:r2114_4 +# 2114| r2114_6(glval) = Load[#this] : &:r2114_4, ~m? +# 2114| mu2114_7(Derived2) = InitializeIndirection[#this] : &:r2114_6 +# 2114| v2114_8(void) = NoOp : +# 2114| r2114_9(glval) = ConvertToNonVirtualBase[Derived2 : Base2] : r2114_6 +# 2114| r2114_10(glval) = FunctionAddress[~Base2] : +# 2114| v2114_11(void) = Call[~Base2] : func:r2114_10, this:r2114_9 +# 2114| mu2114_12(unknown) = ^CallSideEffect : ~m? +# 2114| v2114_13(void) = ReturnIndirection[#this] : &:r2114_6, ~m? +# 2114| v2114_14(void) = ReturnVoid : +# 2114| v2114_15(void) = AliasedUse : ~m? +# 2114| v2114_16(void) = ExitFunction : + +# 2116| void Derived2::operator delete(void*) +# 2116| Block 0 +# 2116| v2116_1(void) = EnterFunction : +# 2116| mu2116_2(unknown) = AliasedDefinition : +# 2116| mu2116_3(unknown) = InitializeNonLocal : +# 2116| r2116_4(glval) = VariableAddress[p] : +# 2116| mu2116_5(void *) = InitializeParameter[p] : &:r2116_4 +# 2116| r2116_6(void *) = Load[p] : &:r2116_4, ~m? +# 2116| mu2116_7(unknown) = InitializeIndirection[p] : &:r2116_6 +# 2117| v2117_1(void) = NoOp : +# 2116| v2116_8(void) = ReturnIndirection[p] : &:r2116_6, ~m? +# 2116| v2116_9(void) = ReturnVoid : +# 2116| v2116_10(void) = AliasedUse : ~m? +# 2116| v2116_11(void) = ExitFunction : + +# 2121| int virtual_delete() +# 2121| Block 0 +# 2121| v2121_1(void) = EnterFunction : +# 2121| mu2121_2(unknown) = AliasedDefinition : +# 2121| mu2121_3(unknown) = InitializeNonLocal : +# 2123| r2123_1(glval) = VariableAddress[b1] : +# 2123| r2123_2(glval) = FunctionAddress[operator new] : +# 2123| r2123_3(unsigned long) = Constant[8] : +# 2123| r2123_4(void *) = Call[operator new] : func:r2123_2, 0:r2123_3 +# 2123| mu2123_5(unknown) = ^CallSideEffect : ~m? +# 2123| mu2123_6(unknown) = ^InitializeDynamicAllocation : &:r2123_4 +# 2123| r2123_7(Base2 *) = Convert : r2123_4 +# 2123| r2123_8(glval) = FunctionAddress[Base2] : +# 2123| v2123_9(void) = Call[Base2] : func:r2123_8, this:r2123_7 +# 2123| mu2123_10(unknown) = ^CallSideEffect : ~m? +# 2123| mu2123_11(Base2) = ^IndirectMayWriteSideEffect[-1] : &:r2123_7 +# 2123| mu2123_12(Base2 *) = Store[b1] : &:r2123_1, r2123_7 +# 2124| r2124_1(glval) = VariableAddress[b1] : +# 2124| r2124_2(Base2 *) = Load[b1] : &:r2124_1, ~m? +# 2124| r2124_3(glval) = FunctionAddress[~Base2] : +# 2124| v2124_4(void) = Call[~Base2] : func:r2124_3 # 2124| mu2124_5(unknown) = ^CallSideEffect : ~m? -# 2124| mu2124_6(unknown) = ^InitializeDynamicAllocation : &:r2124_4 -# 2124| r2124_7(Derived2 *) = Convert : r2124_4 -# 2124| r2124_8(glval) = FunctionAddress[Derived2] : -# 2124| v2124_9(void) = Call[Derived2] : func:r2124_8, this:r2124_7 -# 2124| mu2124_10(unknown) = ^CallSideEffect : ~m? -# 2124| mu2124_11(Derived2) = ^IndirectMayWriteSideEffect[-1] : &:r2124_7 -# 2124| r2124_12(Base2 *) = ConvertToNonVirtualBase[Derived2 : Base2] : r2124_7 -# 2124| mu2124_13(Base2 *) = Store[b2] : &:r2124_1, r2124_12 -# 2125| r2125_1(glval) = VariableAddress[b2] : -# 2125| r2125_2(Base2 *) = Load[b2] : &:r2125_1, ~m? -# 2125| r2125_3(glval) = FunctionAddress[~Base2] : -# 2125| v2125_4(void) = Call[~Base2] : func:r2125_3 -# 2125| mu2125_5(unknown) = ^CallSideEffect : ~m? -# 2125| v2125_6(void) = ^IndirectReadSideEffect[-1] : &:r2125_2, ~m? -# 2125| mu2125_7(Base2) = ^IndirectMayWriteSideEffect[-1] : &:r2125_2 -# 2125| r2125_8(glval) = VirtualDeleteFunctionAddress : -# 2125| r2125_9(Base2 *) = CopyValue : r2125_1 -# 2125| v2125_10(void) = Call[?] : func:r2125_8, 0:r2125_9 -# 2125| mu2125_11(unknown) = ^CallSideEffect : ~m? -# 2127| r2127_1(glval) = VariableAddress[d] : -# 2127| r2127_2(glval) = FunctionAddress[operator new] : -# 2127| r2127_3(unsigned long) = Constant[16] : -# 2127| r2127_4(void *) = Call[operator new] : func:r2127_2, 0:r2127_3 +# 2124| v2124_6(void) = ^IndirectReadSideEffect[-1] : &:r2124_2, ~m? +# 2124| mu2124_7(Base2) = ^IndirectMayWriteSideEffect[-1] : &:r2124_2 +# 2124| r2124_8(glval) = VirtualDeleteFunctionAddress : +# 2124| r2124_9(Base2 *) = CopyValue : r2124_1 +# 2124| v2124_10(void) = Call[?] : func:r2124_8, 0:r2124_9 +# 2124| mu2124_11(unknown) = ^CallSideEffect : ~m? +# 2126| r2126_1(glval) = VariableAddress[b2] : +# 2126| r2126_2(glval) = FunctionAddress[operator new] : +# 2126| r2126_3(unsigned long) = Constant[16] : +# 2126| r2126_4(void *) = Call[operator new] : func:r2126_2, 0:r2126_3 +# 2126| mu2126_5(unknown) = ^CallSideEffect : ~m? +# 2126| mu2126_6(unknown) = ^InitializeDynamicAllocation : &:r2126_4 +# 2126| r2126_7(Derived2 *) = Convert : r2126_4 +# 2126| r2126_8(glval) = FunctionAddress[Derived2] : +# 2126| v2126_9(void) = Call[Derived2] : func:r2126_8, this:r2126_7 +# 2126| mu2126_10(unknown) = ^CallSideEffect : ~m? +# 2126| mu2126_11(Derived2) = ^IndirectMayWriteSideEffect[-1] : &:r2126_7 +# 2126| r2126_12(Base2 *) = ConvertToNonVirtualBase[Derived2 : Base2] : r2126_7 +# 2126| mu2126_13(Base2 *) = Store[b2] : &:r2126_1, r2126_12 +# 2127| r2127_1(glval) = VariableAddress[b2] : +# 2127| r2127_2(Base2 *) = Load[b2] : &:r2127_1, ~m? +# 2127| r2127_3(glval) = FunctionAddress[~Base2] : +# 2127| v2127_4(void) = Call[~Base2] : func:r2127_3 # 2127| mu2127_5(unknown) = ^CallSideEffect : ~m? -# 2127| mu2127_6(unknown) = ^InitializeDynamicAllocation : &:r2127_4 -# 2127| r2127_7(Derived2 *) = Convert : r2127_4 -# 2127| r2127_8(glval) = FunctionAddress[Derived2] : -# 2127| v2127_9(void) = Call[Derived2] : func:r2127_8, this:r2127_7 -# 2127| mu2127_10(unknown) = ^CallSideEffect : ~m? -# 2127| mu2127_11(Derived2) = ^IndirectMayWriteSideEffect[-1] : &:r2127_7 -# 2127| mu2127_12(Derived2 *) = Store[d] : &:r2127_1, r2127_7 -# 2128| r2128_1(glval) = VariableAddress[d] : -# 2128| r2128_2(Derived2 *) = Load[d] : &:r2128_1, ~m? -# 2128| r2128_3(glval) = FunctionAddress[~Derived2] : -# 2128| v2128_4(void) = Call[~Derived2] : func:r2128_3 -# 2128| mu2128_5(unknown) = ^CallSideEffect : ~m? -# 2128| v2128_6(void) = ^IndirectReadSideEffect[-1] : &:r2128_2, ~m? -# 2128| mu2128_7(Derived2) = ^IndirectMayWriteSideEffect[-1] : &:r2128_2 -# 2128| r2128_8(glval) = VirtualDeleteFunctionAddress : -# 2128| r2128_9(Derived2 *) = CopyValue : r2128_1 -# 2128| v2128_10(void) = Call[?] : func:r2128_8, 0:r2128_9 -# 2128| mu2128_11(unknown) = ^CallSideEffect : ~m? -# 2129| r2129_1(glval) = VariableAddress[#return] : -# 2129| mu2129_2(int) = Uninitialized[#return] : &:r2129_1 -# 2119| r2119_4(glval) = VariableAddress[#return] : -# 2119| v2119_5(void) = ReturnValue : &:r2119_4, ~m? -# 2119| v2119_6(void) = AliasedUse : ~m? -# 2119| v2119_7(void) = ExitFunction : - -# 2133| void test_constant_folding() -# 2133| Block 0 -# 2133| v2133_1(void) = EnterFunction : -# 2133| mu2133_2(unknown) = AliasedDefinition : -# 2133| mu2133_3(unknown) = InitializeNonLocal : -# 2134| r2134_1(glval) = VariableAddress[x] : -# 2134| r2134_2(int) = Constant[116] : -# 2134| mu2134_3(int) = Store[x] : &:r2134_1, r2134_2 -# 2135| r2135_1(glval) = FunctionAddress[test_constant_folding_use] : -# 2135| r2135_2(int) = Constant[116] : -# 2135| v2135_3(void) = Call[test_constant_folding_use] : func:r2135_1, 0:r2135_2 -# 2135| mu2135_4(unknown) = ^CallSideEffect : ~m? -# 2136| v2136_1(void) = NoOp : -# 2133| v2133_4(void) = ReturnVoid : -# 2133| v2133_5(void) = AliasedUse : ~m? -# 2133| v2133_6(void) = ExitFunction : - -# 2140| int NonExit() -# 2140| Block 0 -# 2140| v2140_1(void) = EnterFunction : -# 2140| mu2140_2(unknown) = AliasedDefinition : -# 2140| mu2140_3(unknown) = InitializeNonLocal : -# 2141| r2141_1(glval) = VariableAddress[x] : -# 2141| r2141_2(glval) = FunctionAddress[Add] : -# 2141| r2141_3(int) = Constant[3] : -# 2141| r2141_4(int) = Constant[4] : -# 2141| r2141_5(int) = Call[Add] : func:r2141_2, 0:r2141_3, 1:r2141_4 -# 2141| mu2141_6(unknown) = ^CallSideEffect : ~m? -# 2141| mu2141_7(int) = Store[x] : &:r2141_1, r2141_5 -# 2142| r2142_1(glval) = VariableAddress[x] : -# 2142| r2142_2(int) = Load[x] : &:r2142_1, ~m? -# 2142| r2142_3(int) = Constant[7] : -# 2142| r2142_4(bool) = CompareEQ : r2142_2, r2142_3 -# 2142| v2142_5(void) = ConditionalBranch : r2142_4 +# 2127| v2127_6(void) = ^IndirectReadSideEffect[-1] : &:r2127_2, ~m? +# 2127| mu2127_7(Base2) = ^IndirectMayWriteSideEffect[-1] : &:r2127_2 +# 2127| r2127_8(glval) = VirtualDeleteFunctionAddress : +# 2127| r2127_9(Base2 *) = CopyValue : r2127_1 +# 2127| v2127_10(void) = Call[?] : func:r2127_8, 0:r2127_9 +# 2127| mu2127_11(unknown) = ^CallSideEffect : ~m? +# 2129| r2129_1(glval) = VariableAddress[d] : +# 2129| r2129_2(glval) = FunctionAddress[operator new] : +# 2129| r2129_3(unsigned long) = Constant[16] : +# 2129| r2129_4(void *) = Call[operator new] : func:r2129_2, 0:r2129_3 +# 2129| mu2129_5(unknown) = ^CallSideEffect : ~m? +# 2129| mu2129_6(unknown) = ^InitializeDynamicAllocation : &:r2129_4 +# 2129| r2129_7(Derived2 *) = Convert : r2129_4 +# 2129| r2129_8(glval) = FunctionAddress[Derived2] : +# 2129| v2129_9(void) = Call[Derived2] : func:r2129_8, this:r2129_7 +# 2129| mu2129_10(unknown) = ^CallSideEffect : ~m? +# 2129| mu2129_11(Derived2) = ^IndirectMayWriteSideEffect[-1] : &:r2129_7 +# 2129| mu2129_12(Derived2 *) = Store[d] : &:r2129_1, r2129_7 +# 2130| r2130_1(glval) = VariableAddress[d] : +# 2130| r2130_2(Derived2 *) = Load[d] : &:r2130_1, ~m? +# 2130| r2130_3(glval) = FunctionAddress[~Derived2] : +# 2130| v2130_4(void) = Call[~Derived2] : func:r2130_3 +# 2130| mu2130_5(unknown) = ^CallSideEffect : ~m? +# 2130| v2130_6(void) = ^IndirectReadSideEffect[-1] : &:r2130_2, ~m? +# 2130| mu2130_7(Derived2) = ^IndirectMayWriteSideEffect[-1] : &:r2130_2 +# 2130| r2130_8(glval) = VirtualDeleteFunctionAddress : +# 2130| r2130_9(Derived2 *) = CopyValue : r2130_1 +# 2130| v2130_10(void) = Call[?] : func:r2130_8, 0:r2130_9 +# 2130| mu2130_11(unknown) = ^CallSideEffect : ~m? +# 2131| r2131_1(glval) = VariableAddress[#return] : +# 2131| mu2131_2(int) = Uninitialized[#return] : &:r2131_1 +# 2121| r2121_4(glval) = VariableAddress[#return] : +# 2121| v2121_5(void) = ReturnValue : &:r2121_4, ~m? +# 2121| v2121_6(void) = AliasedUse : ~m? +# 2121| v2121_7(void) = ExitFunction : + +# 2135| void test_constant_folding() +# 2135| Block 0 +# 2135| v2135_1(void) = EnterFunction : +# 2135| mu2135_2(unknown) = AliasedDefinition : +# 2135| mu2135_3(unknown) = InitializeNonLocal : +# 2136| r2136_1(glval) = VariableAddress[x] : +# 2136| r2136_2(int) = Constant[116] : +# 2136| mu2136_3(int) = Store[x] : &:r2136_1, r2136_2 +# 2137| r2137_1(glval) = FunctionAddress[test_constant_folding_use] : +# 2137| r2137_2(int) = Constant[116] : +# 2137| v2137_3(void) = Call[test_constant_folding_use] : func:r2137_1, 0:r2137_2 +# 2137| mu2137_4(unknown) = ^CallSideEffect : ~m? +# 2138| v2138_1(void) = NoOp : +# 2135| v2135_4(void) = ReturnVoid : +# 2135| v2135_5(void) = AliasedUse : ~m? +# 2135| v2135_6(void) = ExitFunction : + +# 2142| int NonExit() +# 2142| Block 0 +# 2142| v2142_1(void) = EnterFunction : +# 2142| mu2142_2(unknown) = AliasedDefinition : +# 2142| mu2142_3(unknown) = InitializeNonLocal : +# 2143| r2143_1(glval) = VariableAddress[x] : +# 2143| r2143_2(glval) = FunctionAddress[Add] : +# 2143| r2143_3(int) = Constant[3] : +# 2143| r2143_4(int) = Constant[4] : +# 2143| r2143_5(int) = Call[Add] : func:r2143_2, 0:r2143_3, 1:r2143_4 +# 2143| mu2143_6(unknown) = ^CallSideEffect : ~m? +# 2143| mu2143_7(int) = Store[x] : &:r2143_1, r2143_5 +# 2144| r2144_1(glval) = VariableAddress[x] : +# 2144| r2144_2(int) = Load[x] : &:r2144_1, ~m? +# 2144| r2144_3(int) = Constant[7] : +# 2144| r2144_4(bool) = CompareEQ : r2144_2, r2144_3 +# 2144| v2144_5(void) = ConditionalBranch : r2144_4 #-----| False -> Block 2 #-----| True -> Block 1 -# 2143| Block 1 -# 2143| r2143_1(glval) = FunctionAddress[exit] : -# 2143| r2143_2(int) = Constant[3] : -# 2143| v2143_3(void) = Call[exit] : func:r2143_1, 0:r2143_2 -# 2143| mu2143_4(unknown) = ^CallSideEffect : ~m? -# 2140| v2140_4(void) = Unreached : - -# 2144| Block 2 -# 2144| r2144_1(glval) = FunctionAddress[VoidFunc] : -# 2144| v2144_2(void) = Call[VoidFunc] : func:r2144_1 -# 2144| mu2144_3(unknown) = ^CallSideEffect : ~m? -# 2145| r2145_1(glval) = VariableAddress[#return] : -# 2145| r2145_2(glval) = VariableAddress[x] : -# 2145| r2145_3(int) = Load[x] : &:r2145_2, ~m? -# 2145| mu2145_4(int) = Store[#return] : &:r2145_1, r2145_3 -# 2140| r2140_5(glval) = VariableAddress[#return] : -# 2140| v2140_6(void) = ReturnValue : &:r2140_5, ~m? -# 2140| v2140_7(void) = AliasedUse : ~m? -# 2140| v2140_8(void) = ExitFunction : - -# 2148| void CallsNonExit() -# 2148| Block 0 -# 2148| v2148_1(void) = EnterFunction : -# 2148| mu2148_2(unknown) = AliasedDefinition : -# 2148| mu2148_3(unknown) = InitializeNonLocal : -# 2149| r2149_1(glval) = FunctionAddress[VoidFunc] : -# 2149| v2149_2(void) = Call[VoidFunc] : func:r2149_1 -# 2149| mu2149_3(unknown) = ^CallSideEffect : ~m? -# 2150| r2150_1(glval) = FunctionAddress[exit] : -# 2150| r2150_2(int) = Constant[3] : -# 2150| v2150_3(void) = Call[exit] : func:r2150_1, 0:r2150_2 -# 2150| mu2150_4(unknown) = ^CallSideEffect : ~m? -# 2148| v2148_4(void) = Unreached : - -# 2151| Block 1 -# 2151| v2151_1(void) = NoOp : -# 2148| v2148_5(void) = ReturnVoid : -# 2148| v2148_6(void) = AliasedUse : ~m? -# 2148| v2148_7(void) = ExitFunction : - -# 2153| int TransNonExit() -# 2153| Block 0 -# 2153| v2153_1(void) = EnterFunction : -# 2153| mu2153_2(unknown) = AliasedDefinition : -# 2153| mu2153_3(unknown) = InitializeNonLocal : -# 2154| r2154_1(glval) = VariableAddress[x] : -# 2154| r2154_2(glval) = FunctionAddress[Add] : -# 2154| r2154_3(int) = Constant[3] : -# 2154| r2154_4(int) = Constant[4] : -# 2154| r2154_5(int) = Call[Add] : func:r2154_2, 0:r2154_3, 1:r2154_4 -# 2154| mu2154_6(unknown) = ^CallSideEffect : ~m? -# 2154| mu2154_7(int) = Store[x] : &:r2154_1, r2154_5 -# 2155| r2155_1(glval) = VariableAddress[x] : -# 2155| r2155_2(int) = Load[x] : &:r2155_1, ~m? -# 2155| r2155_3(int) = Constant[7] : -# 2155| r2155_4(bool) = CompareEQ : r2155_2, r2155_3 -# 2155| v2155_5(void) = ConditionalBranch : r2155_4 +# 2145| Block 1 +# 2145| r2145_1(glval) = FunctionAddress[exit] : +# 2145| r2145_2(int) = Constant[3] : +# 2145| v2145_3(void) = Call[exit] : func:r2145_1, 0:r2145_2 +# 2145| mu2145_4(unknown) = ^CallSideEffect : ~m? +# 2142| v2142_4(void) = Unreached : + +# 2146| Block 2 +# 2146| r2146_1(glval) = FunctionAddress[VoidFunc] : +# 2146| v2146_2(void) = Call[VoidFunc] : func:r2146_1 +# 2146| mu2146_3(unknown) = ^CallSideEffect : ~m? +# 2147| r2147_1(glval) = VariableAddress[#return] : +# 2147| r2147_2(glval) = VariableAddress[x] : +# 2147| r2147_3(int) = Load[x] : &:r2147_2, ~m? +# 2147| mu2147_4(int) = Store[#return] : &:r2147_1, r2147_3 +# 2142| r2142_5(glval) = VariableAddress[#return] : +# 2142| v2142_6(void) = ReturnValue : &:r2142_5, ~m? +# 2142| v2142_7(void) = AliasedUse : ~m? +# 2142| v2142_8(void) = ExitFunction : + +# 2150| void CallsNonExit() +# 2150| Block 0 +# 2150| v2150_1(void) = EnterFunction : +# 2150| mu2150_2(unknown) = AliasedDefinition : +# 2150| mu2150_3(unknown) = InitializeNonLocal : +# 2151| r2151_1(glval) = FunctionAddress[VoidFunc] : +# 2151| v2151_2(void) = Call[VoidFunc] : func:r2151_1 +# 2151| mu2151_3(unknown) = ^CallSideEffect : ~m? +# 2152| r2152_1(glval) = FunctionAddress[exit] : +# 2152| r2152_2(int) = Constant[3] : +# 2152| v2152_3(void) = Call[exit] : func:r2152_1, 0:r2152_2 +# 2152| mu2152_4(unknown) = ^CallSideEffect : ~m? +# 2150| v2150_4(void) = Unreached : + +# 2153| Block 1 +# 2153| v2153_1(void) = NoOp : +# 2150| v2150_5(void) = ReturnVoid : +# 2150| v2150_6(void) = AliasedUse : ~m? +# 2150| v2150_7(void) = ExitFunction : + +# 2155| int TransNonExit() +# 2155| Block 0 +# 2155| v2155_1(void) = EnterFunction : +# 2155| mu2155_2(unknown) = AliasedDefinition : +# 2155| mu2155_3(unknown) = InitializeNonLocal : +# 2156| r2156_1(glval) = VariableAddress[x] : +# 2156| r2156_2(glval) = FunctionAddress[Add] : +# 2156| r2156_3(int) = Constant[3] : +# 2156| r2156_4(int) = Constant[4] : +# 2156| r2156_5(int) = Call[Add] : func:r2156_2, 0:r2156_3, 1:r2156_4 +# 2156| mu2156_6(unknown) = ^CallSideEffect : ~m? +# 2156| mu2156_7(int) = Store[x] : &:r2156_1, r2156_5 +# 2157| r2157_1(glval) = VariableAddress[x] : +# 2157| r2157_2(int) = Load[x] : &:r2157_1, ~m? +# 2157| r2157_3(int) = Constant[7] : +# 2157| r2157_4(bool) = CompareEQ : r2157_2, r2157_3 +# 2157| v2157_5(void) = ConditionalBranch : r2157_4 #-----| False -> Block 2 #-----| True -> Block 1 -# 2156| Block 1 -# 2156| r2156_1(glval) = FunctionAddress[CallsNonExit] : -# 2156| v2156_2(void) = Call[CallsNonExit] : func:r2156_1 -# 2156| mu2156_3(unknown) = ^CallSideEffect : ~m? +# 2158| Block 1 +# 2158| r2158_1(glval) = FunctionAddress[CallsNonExit] : +# 2158| v2158_2(void) = Call[CallsNonExit] : func:r2158_1 +# 2158| mu2158_3(unknown) = ^CallSideEffect : ~m? #-----| Goto -> Block 2 -# 2157| Block 2 -# 2157| r2157_1(glval) = FunctionAddress[VoidFunc] : -# 2157| v2157_2(void) = Call[VoidFunc] : func:r2157_1 -# 2157| mu2157_3(unknown) = ^CallSideEffect : ~m? -# 2158| r2158_1(glval) = VariableAddress[#return] : -# 2158| r2158_2(glval) = VariableAddress[x] : -# 2158| r2158_3(int) = Load[x] : &:r2158_2, ~m? -# 2158| mu2158_4(int) = Store[#return] : &:r2158_1, r2158_3 -# 2153| r2153_4(glval) = VariableAddress[#return] : -# 2153| v2153_5(void) = ReturnValue : &:r2153_4, ~m? -# 2153| v2153_6(void) = AliasedUse : ~m? -# 2153| v2153_7(void) = ExitFunction : - -# 2161| void newArrayCorrectType(size_t) -# 2161| Block 0 -# 2161| v2161_1(void) = EnterFunction : -# 2161| mu2161_2(unknown) = AliasedDefinition : -# 2161| mu2161_3(unknown) = InitializeNonLocal : -# 2161| r2161_4(glval) = VariableAddress[n] : -# 2161| mu2161_5(unsigned long) = InitializeParameter[n] : &:r2161_4 -# 2162| r2162_1(glval) = FunctionAddress[operator new[]] : -# 2162| r2162_2(glval) = VariableAddress[n] : -# 2162| r2162_3(unsigned long) = Load[n] : &:r2162_2, ~m? -# 2162| r2162_4(unsigned long) = Constant[4] : -# 2162| r2162_5(unsigned long) = Mul : r2162_3, r2162_4 -# 2162| r2162_6(void *) = Call[operator new[]] : func:r2162_1, 0:r2162_5 -# 2162| mu2162_7(unknown) = ^CallSideEffect : ~m? -# 2162| mu2162_8(unknown) = ^InitializeDynamicAllocation : &:r2162_6 -# 2162| r2162_9(int *) = Convert : r2162_6 -# 2163| r2163_1(glval) = FunctionAddress[operator new[]] : -# 2163| r2163_2(glval) = VariableAddress[n] : -# 2163| r2163_3(unsigned long) = Load[n] : &:r2163_2, ~m? -# 2163| r2163_4(unsigned long) = Constant[4] : -# 2163| r2163_5(unsigned long) = Mul : r2163_3, r2163_4 -# 2163| r2163_6(float) = Constant[1.0] : -# 2163| r2163_7(void *) = Call[operator new[]] : func:r2163_1, 0:r2163_5, 1:r2163_6 -# 2163| mu2163_8(unknown) = ^CallSideEffect : ~m? -# 2163| mu2163_9(unknown) = ^InitializeDynamicAllocation : &:r2163_7 -# 2163| r2163_10(int *) = Convert : r2163_7 +# 2159| Block 2 +# 2159| r2159_1(glval) = FunctionAddress[VoidFunc] : +# 2159| v2159_2(void) = Call[VoidFunc] : func:r2159_1 +# 2159| mu2159_3(unknown) = ^CallSideEffect : ~m? +# 2160| r2160_1(glval) = VariableAddress[#return] : +# 2160| r2160_2(glval) = VariableAddress[x] : +# 2160| r2160_3(int) = Load[x] : &:r2160_2, ~m? +# 2160| mu2160_4(int) = Store[#return] : &:r2160_1, r2160_3 +# 2155| r2155_4(glval) = VariableAddress[#return] : +# 2155| v2155_5(void) = ReturnValue : &:r2155_4, ~m? +# 2155| v2155_6(void) = AliasedUse : ~m? +# 2155| v2155_7(void) = ExitFunction : + +# 2163| void newArrayCorrectType(size_t) +# 2163| Block 0 +# 2163| v2163_1(void) = EnterFunction : +# 2163| mu2163_2(unknown) = AliasedDefinition : +# 2163| mu2163_3(unknown) = InitializeNonLocal : +# 2163| r2163_4(glval) = VariableAddress[n] : +# 2163| mu2163_5(unsigned long) = InitializeParameter[n] : &:r2163_4 # 2164| r2164_1(glval) = FunctionAddress[operator new[]] : # 2164| r2164_2(glval) = VariableAddress[n] : # 2164| r2164_3(unsigned long) = Load[n] : &:r2164_2, ~m? -# 2164| r2164_4(unsigned long) = Constant[8] : +# 2164| r2164_4(unsigned long) = Constant[4] : # 2164| r2164_5(unsigned long) = Mul : r2164_3, r2164_4 # 2164| r2164_6(void *) = Call[operator new[]] : func:r2164_1, 0:r2164_5 # 2164| mu2164_7(unknown) = ^CallSideEffect : ~m? # 2164| mu2164_8(unknown) = ^InitializeDynamicAllocation : &:r2164_6 -# 2164| r2164_9(String *) = Convert : r2164_6 +# 2164| r2164_9(int *) = Convert : r2164_6 # 2165| r2165_1(glval) = FunctionAddress[operator new[]] : # 2165| r2165_2(glval) = VariableAddress[n] : # 2165| r2165_3(unsigned long) = Load[n] : &:r2165_2, ~m? -# 2165| r2165_4(unsigned long) = Constant[256] : +# 2165| r2165_4(unsigned long) = Constant[4] : # 2165| r2165_5(unsigned long) = Mul : r2165_3, r2165_4 -# 2165| r2165_6(align_val_t) = Constant[128] : +# 2165| r2165_6(float) = Constant[1.0] : # 2165| r2165_7(void *) = Call[operator new[]] : func:r2165_1, 0:r2165_5, 1:r2165_6 # 2165| mu2165_8(unknown) = ^CallSideEffect : ~m? # 2165| mu2165_9(unknown) = ^InitializeDynamicAllocation : &:r2165_7 -# 2165| r2165_10(Overaligned *) = Convert : r2165_7 +# 2165| r2165_10(int *) = Convert : r2165_7 # 2166| r2166_1(glval) = FunctionAddress[operator new[]] : # 2166| r2166_2(glval) = VariableAddress[n] : # 2166| r2166_3(unsigned long) = Load[n] : &:r2166_2, ~m? -# 2166| r2166_4(unsigned long) = Constant[1] : +# 2166| r2166_4(unsigned long) = Constant[8] : # 2166| r2166_5(unsigned long) = Mul : r2166_3, r2166_4 # 2166| r2166_6(void *) = Call[operator new[]] : func:r2166_1, 0:r2166_5 # 2166| mu2166_7(unknown) = ^CallSideEffect : ~m? # 2166| mu2166_8(unknown) = ^InitializeDynamicAllocation : &:r2166_6 -# 2166| r2166_9(DefaultCtorWithDefaultParam *) = Convert : r2166_6 +# 2166| r2166_9(String *) = Convert : r2166_6 # 2167| r2167_1(glval) = FunctionAddress[operator new[]] : # 2167| r2167_2(glval) = VariableAddress[n] : # 2167| r2167_3(unsigned long) = Load[n] : &:r2167_2, ~m? -# 2167| r2167_4(unsigned long) = Constant[4] : +# 2167| r2167_4(unsigned long) = Constant[256] : # 2167| r2167_5(unsigned long) = Mul : r2167_3, r2167_4 -# 2167| r2167_6(void *) = Call[operator new[]] : func:r2167_1, 0:r2167_5 -# 2167| mu2167_7(unknown) = ^CallSideEffect : ~m? -# 2167| mu2167_8(unknown) = ^InitializeDynamicAllocation : &:r2167_6 -# 2167| r2167_9(int *) = Convert : r2167_6 -# 2168| v2168_1(void) = NoOp : -# 2161| v2161_6(void) = ReturnVoid : -# 2161| v2161_7(void) = AliasedUse : ~m? -# 2161| v2161_8(void) = ExitFunction : - -# 2172| char* test_strtod(char*) -# 2172| Block 0 -# 2172| v2172_1(void) = EnterFunction : -# 2172| mu2172_2(unknown) = AliasedDefinition : -# 2172| mu2172_3(unknown) = InitializeNonLocal : -# 2172| r2172_4(glval) = VariableAddress[s] : -# 2172| mu2172_5(char *) = InitializeParameter[s] : &:r2172_4 -# 2172| r2172_6(char *) = Load[s] : &:r2172_4, ~m? -# 2172| mu2172_7(unknown) = InitializeIndirection[s] : &:r2172_6 -# 2173| r2173_1(glval) = VariableAddress[end] : -# 2173| mu2173_2(char *) = Uninitialized[end] : &:r2173_1 -# 2174| r2174_1(glval) = VariableAddress[d] : -# 2174| r2174_2(glval) = FunctionAddress[strtod] : -# 2174| r2174_3(glval) = VariableAddress[s] : -# 2174| r2174_4(char *) = Load[s] : &:r2174_3, ~m? -# 2174| r2174_5(char *) = Convert : r2174_4 -# 2174| r2174_6(glval) = VariableAddress[end] : -# 2174| r2174_7(char **) = CopyValue : r2174_6 -# 2174| r2174_8(double) = Call[strtod] : func:r2174_2, 0:r2174_5, 1:r2174_7 -# 2174| v2174_9(void) = ^BufferReadSideEffect[0] : &:r2174_5, ~m? -# 2174| mu2174_10(char *) = ^IndirectMayWriteSideEffect[1] : &:r2174_7 -# 2174| mu2174_11(double) = Store[d] : &:r2174_1, r2174_8 -# 2175| r2175_1(glval) = VariableAddress[#return] : -# 2175| r2175_2(glval) = VariableAddress[end] : -# 2175| r2175_3(char *) = Load[end] : &:r2175_2, ~m? -# 2175| mu2175_4(char *) = Store[#return] : &:r2175_1, r2175_3 -# 2172| v2172_8(void) = ReturnIndirection[s] : &:r2172_6, ~m? -# 2172| r2172_9(glval) = VariableAddress[#return] : -# 2172| v2172_10(void) = ReturnValue : &:r2172_9, ~m? -# 2172| v2172_11(void) = AliasedUse : ~m? -# 2172| v2172_12(void) = ExitFunction : - -# 2182| void call_as_child_of_ConditionDeclExpr() -# 2182| Block 0 -# 2182| v2182_1(void) = EnterFunction : -# 2182| mu2182_2(unknown) = AliasedDefinition : -# 2182| mu2182_3(unknown) = InitializeNonLocal : -# 2183| r2183_1(glval) = VariableAddress[b] : -# 2183| r2183_2(HasOperatorBool) = Constant[0] : -# 2183| mu2183_3(HasOperatorBool) = Store[b] : &:r2183_1, r2183_2 -# 2183| r2183_4(glval) = VariableAddress[b] : -# 2183| r2183_5(glval) = FunctionAddress[operator bool] : -# 2183| r2183_6(bool) = Call[operator bool] : func:r2183_5, this:r2183_4 -# 2183| mu2183_7(unknown) = ^CallSideEffect : ~m? -# 2183| v2183_8(void) = ^IndirectReadSideEffect[-1] : &:r2183_4, ~m? -# 2183| mu2183_9(HasOperatorBool) = ^IndirectMayWriteSideEffect[-1] : &:r2183_4 -# 2183| r2183_10(bool) = CopyValue : r2183_6 -# 2183| v2183_11(void) = ConditionalBranch : r2183_10 +# 2167| r2167_6(align_val_t) = Constant[128] : +# 2167| r2167_7(void *) = Call[operator new[]] : func:r2167_1, 0:r2167_5, 1:r2167_6 +# 2167| mu2167_8(unknown) = ^CallSideEffect : ~m? +# 2167| mu2167_9(unknown) = ^InitializeDynamicAllocation : &:r2167_7 +# 2167| r2167_10(Overaligned *) = Convert : r2167_7 +# 2168| r2168_1(glval) = FunctionAddress[operator new[]] : +# 2168| r2168_2(glval) = VariableAddress[n] : +# 2168| r2168_3(unsigned long) = Load[n] : &:r2168_2, ~m? +# 2168| r2168_4(unsigned long) = Constant[1] : +# 2168| r2168_5(unsigned long) = Mul : r2168_3, r2168_4 +# 2168| r2168_6(void *) = Call[operator new[]] : func:r2168_1, 0:r2168_5 +# 2168| mu2168_7(unknown) = ^CallSideEffect : ~m? +# 2168| mu2168_8(unknown) = ^InitializeDynamicAllocation : &:r2168_6 +# 2168| r2168_9(DefaultCtorWithDefaultParam *) = Convert : r2168_6 +# 2169| r2169_1(glval) = FunctionAddress[operator new[]] : +# 2169| r2169_2(glval) = VariableAddress[n] : +# 2169| r2169_3(unsigned long) = Load[n] : &:r2169_2, ~m? +# 2169| r2169_4(unsigned long) = Constant[4] : +# 2169| r2169_5(unsigned long) = Mul : r2169_3, r2169_4 +# 2169| r2169_6(void *) = Call[operator new[]] : func:r2169_1, 0:r2169_5 +# 2169| mu2169_7(unknown) = ^CallSideEffect : ~m? +# 2169| mu2169_8(unknown) = ^InitializeDynamicAllocation : &:r2169_6 +# 2169| r2169_9(int *) = Convert : r2169_6 +# 2170| v2170_1(void) = NoOp : +# 2163| v2163_6(void) = ReturnVoid : +# 2163| v2163_7(void) = AliasedUse : ~m? +# 2163| v2163_8(void) = ExitFunction : + +# 2174| char* test_strtod(char*) +# 2174| Block 0 +# 2174| v2174_1(void) = EnterFunction : +# 2174| mu2174_2(unknown) = AliasedDefinition : +# 2174| mu2174_3(unknown) = InitializeNonLocal : +# 2174| r2174_4(glval) = VariableAddress[s] : +# 2174| mu2174_5(char *) = InitializeParameter[s] : &:r2174_4 +# 2174| r2174_6(char *) = Load[s] : &:r2174_4, ~m? +# 2174| mu2174_7(unknown) = InitializeIndirection[s] : &:r2174_6 +# 2175| r2175_1(glval) = VariableAddress[end] : +# 2175| mu2175_2(char *) = Uninitialized[end] : &:r2175_1 +# 2176| r2176_1(glval) = VariableAddress[d] : +# 2176| r2176_2(glval) = FunctionAddress[strtod] : +# 2176| r2176_3(glval) = VariableAddress[s] : +# 2176| r2176_4(char *) = Load[s] : &:r2176_3, ~m? +# 2176| r2176_5(char *) = Convert : r2176_4 +# 2176| r2176_6(glval) = VariableAddress[end] : +# 2176| r2176_7(char **) = CopyValue : r2176_6 +# 2176| r2176_8(double) = Call[strtod] : func:r2176_2, 0:r2176_5, 1:r2176_7 +# 2176| v2176_9(void) = ^BufferReadSideEffect[0] : &:r2176_5, ~m? +# 2176| mu2176_10(char *) = ^IndirectMayWriteSideEffect[1] : &:r2176_7 +# 2176| mu2176_11(double) = Store[d] : &:r2176_1, r2176_8 +# 2177| r2177_1(glval) = VariableAddress[#return] : +# 2177| r2177_2(glval) = VariableAddress[end] : +# 2177| r2177_3(char *) = Load[end] : &:r2177_2, ~m? +# 2177| mu2177_4(char *) = Store[#return] : &:r2177_1, r2177_3 +# 2174| v2174_8(void) = ReturnIndirection[s] : &:r2174_6, ~m? +# 2174| r2174_9(glval) = VariableAddress[#return] : +# 2174| v2174_10(void) = ReturnValue : &:r2174_9, ~m? +# 2174| v2174_11(void) = AliasedUse : ~m? +# 2174| v2174_12(void) = ExitFunction : + +# 2184| void call_as_child_of_ConditionDeclExpr() +# 2184| Block 0 +# 2184| v2184_1(void) = EnterFunction : +# 2184| mu2184_2(unknown) = AliasedDefinition : +# 2184| mu2184_3(unknown) = InitializeNonLocal : +# 2185| r2185_1(glval) = VariableAddress[b] : +# 2185| r2185_2(HasOperatorBool) = Constant[0] : +# 2185| mu2185_3(HasOperatorBool) = Store[b] : &:r2185_1, r2185_2 +# 2185| r2185_4(glval) = VariableAddress[b] : +# 2185| r2185_5(glval) = FunctionAddress[operator bool] : +# 2185| r2185_6(bool) = Call[operator bool] : func:r2185_5, this:r2185_4 +# 2185| mu2185_7(unknown) = ^CallSideEffect : ~m? +# 2185| v2185_8(void) = ^IndirectReadSideEffect[-1] : &:r2185_4, ~m? +# 2185| mu2185_9(HasOperatorBool) = ^IndirectMayWriteSideEffect[-1] : &:r2185_4 +# 2185| r2185_10(bool) = CopyValue : r2185_6 +# 2185| v2185_11(void) = ConditionalBranch : r2185_10 #-----| False -> Block 2 #-----| True -> Block 1 -# 2183| Block 1 -# 2183| v2183_12(void) = NoOp : +# 2185| Block 1 +# 2185| v2185_12(void) = NoOp : #-----| Goto -> Block 2 -# 2184| Block 2 -# 2184| v2184_1(void) = NoOp : -# 2182| v2182_4(void) = ReturnVoid : -# 2182| v2182_5(void) = AliasedUse : ~m? -# 2182| v2182_6(void) = ExitFunction : - -# 2186| void ClassWithDestructor::ClassWithDestructor(ClassWithDestructor const&) -# 2186| Block 0 -# 2186| v2186_1(void) = EnterFunction : -# 2186| mu2186_2(unknown) = AliasedDefinition : -# 2186| mu2186_3(unknown) = InitializeNonLocal : -# 2186| r2186_4(glval) = VariableAddress[#this] : -# 2186| mu2186_5(glval) = InitializeParameter[#this] : &:r2186_4 -# 2186| r2186_6(glval) = Load[#this] : &:r2186_4, ~m? -# 2186| mu2186_7(ClassWithDestructor) = InitializeIndirection[#this] : &:r2186_6 +# 2186| Block 2 +# 2186| v2186_1(void) = NoOp : +# 2184| v2184_4(void) = ReturnVoid : +# 2184| v2184_5(void) = AliasedUse : ~m? +# 2184| v2184_6(void) = ExitFunction : + +# 2188| void ClassWithDestructor::ClassWithDestructor(ClassWithDestructor const&) +# 2188| Block 0 +# 2188| v2188_1(void) = EnterFunction : +# 2188| mu2188_2(unknown) = AliasedDefinition : +# 2188| mu2188_3(unknown) = InitializeNonLocal : +# 2188| r2188_4(glval) = VariableAddress[#this] : +# 2188| mu2188_5(glval) = InitializeParameter[#this] : &:r2188_4 +# 2188| r2188_6(glval) = Load[#this] : &:r2188_4, ~m? +# 2188| mu2188_7(ClassWithDestructor) = InitializeIndirection[#this] : &:r2188_6 #-----| r0_1(glval) = VariableAddress[(unnamed parameter 0)] : #-----| mu0_2(ClassWithDestructor &) = InitializeParameter[(unnamed parameter 0)] : &:r0_1 #-----| r0_3(ClassWithDestructor &) = Load[(unnamed parameter 0)] : &:r0_1, ~m? #-----| mu0_4(unknown) = InitializeIndirection[(unnamed parameter 0)] : &:r0_3 -# 2186| r2186_8(glval) = FieldAddress[x] : r2186_6 -# 2186| r2186_9(glval) = VariableAddress[(unnamed parameter 0)] : -# 2186| r2186_10(ClassWithDestructor &) = Load[(unnamed parameter 0)] : &:r2186_9, ~m? -# 2186| r2186_11(glval) = CopyValue : r2186_10 -# 2186| r2186_12(glval) = FieldAddress[x] : r2186_11 -# 2186| r2186_13(char *) = Load[?] : &:r2186_12, ~m? -# 2186| mu2186_14(char *) = Store[?] : &:r2186_8, r2186_13 -# 2186| v2186_15(void) = NoOp : -# 2186| v2186_16(void) = ReturnIndirection[#this] : &:r2186_6, ~m? +# 2188| r2188_8(glval) = FieldAddress[x] : r2188_6 +# 2188| r2188_9(glval) = VariableAddress[(unnamed parameter 0)] : +# 2188| r2188_10(ClassWithDestructor &) = Load[(unnamed parameter 0)] : &:r2188_9, ~m? +# 2188| r2188_11(glval) = CopyValue : r2188_10 +# 2188| r2188_12(glval) = FieldAddress[x] : r2188_11 +# 2188| r2188_13(char *) = Load[?] : &:r2188_12, ~m? +# 2188| mu2188_14(char *) = Store[?] : &:r2188_8, r2188_13 +# 2188| v2188_15(void) = NoOp : +# 2188| v2188_16(void) = ReturnIndirection[#this] : &:r2188_6, ~m? #-----| v0_5(void) = ReturnIndirection[(unnamed parameter 0)] : &:r0_3, ~m? -# 2186| v2186_17(void) = ReturnVoid : -# 2186| v2186_18(void) = AliasedUse : ~m? -# 2186| v2186_19(void) = ExitFunction : - -# 2189| void ClassWithDestructor::ClassWithDestructor() -# 2189| Block 0 -# 2189| v2189_1(void) = EnterFunction : -# 2189| mu2189_2(unknown) = AliasedDefinition : -# 2189| mu2189_3(unknown) = InitializeNonLocal : -# 2189| r2189_4(glval) = VariableAddress[#this] : -# 2189| mu2189_5(glval) = InitializeParameter[#this] : &:r2189_4 -# 2189| r2189_6(glval) = Load[#this] : &:r2189_4, ~m? -# 2189| mu2189_7(ClassWithDestructor) = InitializeIndirection[#this] : &:r2189_6 -# 2189| r2189_8(glval) = FunctionAddress[operator new] : -# 2189| r2189_9(unsigned long) = Constant[1] : -# 2189| r2189_10(void *) = Call[operator new] : func:r2189_8, 0:r2189_9 -# 2189| mu2189_11(unknown) = ^CallSideEffect : ~m? -# 2189| mu2189_12(unknown) = ^InitializeDynamicAllocation : &:r2189_10 -# 2189| r2189_13(char *) = Convert : r2189_10 -# 2189| r2189_14(glval) = VariableAddress[#this] : -# 2189| r2189_15(ClassWithDestructor *) = Load[#this] : &:r2189_14, ~m? -# 2189| r2189_16(glval) = FieldAddress[x] : r2189_15 -# 2189| mu2189_17(char *) = Store[?] : &:r2189_16, r2189_13 -# 2189| v2189_18(void) = NoOp : -# 2189| v2189_19(void) = ReturnIndirection[#this] : &:r2189_6, ~m? -# 2189| v2189_20(void) = ReturnVoid : -# 2189| v2189_21(void) = AliasedUse : ~m? -# 2189| v2189_22(void) = ExitFunction : - -# 2190| void ClassWithDestructor::~ClassWithDestructor() -# 2190| Block 0 -# 2190| v2190_1(void) = EnterFunction : -# 2190| mu2190_2(unknown) = AliasedDefinition : -# 2190| mu2190_3(unknown) = InitializeNonLocal : -# 2190| r2190_4(glval) = VariableAddress[#this] : -# 2190| mu2190_5(glval) = InitializeParameter[#this] : &:r2190_4 -# 2190| r2190_6(glval) = Load[#this] : &:r2190_4, ~m? -# 2190| mu2190_7(ClassWithDestructor) = InitializeIndirection[#this] : &:r2190_6 -# 2190| r2190_8(glval) = FunctionAddress[operator delete] : -# 2190| r2190_9(glval) = VariableAddress[#this] : -# 2190| r2190_10(ClassWithDestructor *) = Load[#this] : &:r2190_9, ~m? -# 2190| r2190_11(glval) = FieldAddress[x] : r2190_10 -# 2190| r2190_12(char *) = Load[?] : &:r2190_11, ~m? -# 2190| v2190_13(void) = Call[operator delete] : func:r2190_8, 0:r2190_12 -# 2190| mu2190_14(unknown) = ^CallSideEffect : ~m? -# 2190| v2190_15(void) = NoOp : -# 2190| v2190_16(void) = ReturnIndirection[#this] : &:r2190_6, ~m? -# 2190| v2190_17(void) = ReturnVoid : -# 2190| v2190_18(void) = AliasedUse : ~m? -# 2190| v2190_19(void) = ExitFunction : - -# 2192| void ClassWithDestructor::set_x(char) +# 2188| v2188_17(void) = ReturnVoid : +# 2188| v2188_18(void) = AliasedUse : ~m? +# 2188| v2188_19(void) = ExitFunction : + +# 2191| void ClassWithDestructor::ClassWithDestructor() +# 2191| Block 0 +# 2191| v2191_1(void) = EnterFunction : +# 2191| mu2191_2(unknown) = AliasedDefinition : +# 2191| mu2191_3(unknown) = InitializeNonLocal : +# 2191| r2191_4(glval) = VariableAddress[#this] : +# 2191| mu2191_5(glval) = InitializeParameter[#this] : &:r2191_4 +# 2191| r2191_6(glval) = Load[#this] : &:r2191_4, ~m? +# 2191| mu2191_7(ClassWithDestructor) = InitializeIndirection[#this] : &:r2191_6 +# 2191| r2191_8(glval) = FunctionAddress[operator new] : +# 2191| r2191_9(unsigned long) = Constant[1] : +# 2191| r2191_10(void *) = Call[operator new] : func:r2191_8, 0:r2191_9 +# 2191| mu2191_11(unknown) = ^CallSideEffect : ~m? +# 2191| mu2191_12(unknown) = ^InitializeDynamicAllocation : &:r2191_10 +# 2191| r2191_13(char *) = Convert : r2191_10 +# 2191| r2191_14(glval) = VariableAddress[#this] : +# 2191| r2191_15(ClassWithDestructor *) = Load[#this] : &:r2191_14, ~m? +# 2191| r2191_16(glval) = FieldAddress[x] : r2191_15 +# 2191| mu2191_17(char *) = Store[?] : &:r2191_16, r2191_13 +# 2191| v2191_18(void) = NoOp : +# 2191| v2191_19(void) = ReturnIndirection[#this] : &:r2191_6, ~m? +# 2191| v2191_20(void) = ReturnVoid : +# 2191| v2191_21(void) = AliasedUse : ~m? +# 2191| v2191_22(void) = ExitFunction : + +# 2192| void ClassWithDestructor::~ClassWithDestructor() # 2192| Block 0 -# 2192| v2192_1(void) = EnterFunction : -# 2192| mu2192_2(unknown) = AliasedDefinition : -# 2192| mu2192_3(unknown) = InitializeNonLocal : -# 2192| r2192_4(glval) = VariableAddress[#this] : -# 2192| mu2192_5(glval) = InitializeParameter[#this] : &:r2192_4 -# 2192| r2192_6(glval) = Load[#this] : &:r2192_4, ~m? -# 2192| mu2192_7(ClassWithDestructor) = InitializeIndirection[#this] : &:r2192_6 -# 2192| r2192_8(glval) = VariableAddress[y] : -# 2192| mu2192_9(char) = InitializeParameter[y] : &:r2192_8 -# 2192| r2192_10(glval) = VariableAddress[y] : -# 2192| r2192_11(char) = Load[y] : &:r2192_10, ~m? -# 2192| r2192_12(glval) = VariableAddress[#this] : -# 2192| r2192_13(ClassWithDestructor *) = Load[#this] : &:r2192_12, ~m? -# 2192| r2192_14(glval) = FieldAddress[x] : r2192_13 -# 2192| r2192_15(char *) = Load[?] : &:r2192_14, ~m? -# 2192| r2192_16(glval) = CopyValue : r2192_15 -# 2192| mu2192_17(char) = Store[?] : &:r2192_16, r2192_11 -# 2192| v2192_18(void) = NoOp : -# 2192| v2192_19(void) = ReturnIndirection[#this] : &:r2192_6, ~m? -# 2192| v2192_20(void) = ReturnVoid : -# 2192| v2192_21(void) = AliasedUse : ~m? -# 2192| v2192_22(void) = ExitFunction : - -# 2193| char ClassWithDestructor::get_x() -# 2193| Block 0 -# 2193| v2193_1(void) = EnterFunction : -# 2193| mu2193_2(unknown) = AliasedDefinition : -# 2193| mu2193_3(unknown) = InitializeNonLocal : -# 2193| r2193_4(glval) = VariableAddress[#this] : -# 2193| mu2193_5(glval) = InitializeParameter[#this] : &:r2193_4 -# 2193| r2193_6(glval) = Load[#this] : &:r2193_4, ~m? -# 2193| mu2193_7(ClassWithDestructor) = InitializeIndirection[#this] : &:r2193_6 -# 2193| r2193_8(glval) = VariableAddress[#return] : -# 2193| r2193_9(glval) = VariableAddress[#this] : -# 2193| r2193_10(ClassWithDestructor *) = Load[#this] : &:r2193_9, ~m? -# 2193| r2193_11(glval) = FieldAddress[x] : r2193_10 -# 2193| r2193_12(char *) = Load[?] : &:r2193_11, ~m? -# 2193| r2193_13(char) = Load[?] : &:r2193_12, ~m? -# 2193| mu2193_14(char) = Store[#return] : &:r2193_8, r2193_13 -# 2193| v2193_15(void) = ReturnIndirection[#this] : &:r2193_6, ~m? -# 2193| r2193_16(glval) = VariableAddress[#return] : -# 2193| v2193_17(void) = ReturnValue : &:r2193_16, ~m? -# 2193| v2193_18(void) = AliasedUse : ~m? -# 2193| v2193_19(void) = ExitFunction : - -# 2197| bool initialization_with_destructor_bool -# 2197| Block 0 -# 2197| v2197_1(void) = EnterFunction : -# 2197| mu2197_2(unknown) = AliasedDefinition : -# 2197| r2197_3(glval) = VariableAddress[initialization_with_destructor_bool] : -# 2197| r2197_4(bool) = Constant[1] : -# 2197| mu2197_5(bool) = Store[initialization_with_destructor_bool] : &:r2197_3, r2197_4 -# 2197| v2197_6(void) = ReturnVoid : -# 2197| v2197_7(void) = AliasedUse : ~m? -# 2197| v2197_8(void) = ExitFunction : - -# 2199| void initialization_with_destructor(bool, char) +# 2192| v2192_1(void) = EnterFunction : +# 2192| mu2192_2(unknown) = AliasedDefinition : +# 2192| mu2192_3(unknown) = InitializeNonLocal : +# 2192| r2192_4(glval) = VariableAddress[#this] : +# 2192| mu2192_5(glval) = InitializeParameter[#this] : &:r2192_4 +# 2192| r2192_6(glval) = Load[#this] : &:r2192_4, ~m? +# 2192| mu2192_7(ClassWithDestructor) = InitializeIndirection[#this] : &:r2192_6 +# 2192| r2192_8(glval) = FunctionAddress[operator delete] : +# 2192| r2192_9(glval) = VariableAddress[#this] : +# 2192| r2192_10(ClassWithDestructor *) = Load[#this] : &:r2192_9, ~m? +# 2192| r2192_11(glval) = FieldAddress[x] : r2192_10 +# 2192| r2192_12(char *) = Load[?] : &:r2192_11, ~m? +# 2192| v2192_13(void) = Call[operator delete] : func:r2192_8, 0:r2192_12 +# 2192| mu2192_14(unknown) = ^CallSideEffect : ~m? +# 2192| v2192_15(void) = NoOp : +# 2192| v2192_16(void) = ReturnIndirection[#this] : &:r2192_6, ~m? +# 2192| v2192_17(void) = ReturnVoid : +# 2192| v2192_18(void) = AliasedUse : ~m? +# 2192| v2192_19(void) = ExitFunction : + +# 2194| void ClassWithDestructor::set_x(char) +# 2194| Block 0 +# 2194| v2194_1(void) = EnterFunction : +# 2194| mu2194_2(unknown) = AliasedDefinition : +# 2194| mu2194_3(unknown) = InitializeNonLocal : +# 2194| r2194_4(glval) = VariableAddress[#this] : +# 2194| mu2194_5(glval) = InitializeParameter[#this] : &:r2194_4 +# 2194| r2194_6(glval) = Load[#this] : &:r2194_4, ~m? +# 2194| mu2194_7(ClassWithDestructor) = InitializeIndirection[#this] : &:r2194_6 +# 2194| r2194_8(glval) = VariableAddress[y] : +# 2194| mu2194_9(char) = InitializeParameter[y] : &:r2194_8 +# 2194| r2194_10(glval) = VariableAddress[y] : +# 2194| r2194_11(char) = Load[y] : &:r2194_10, ~m? +# 2194| r2194_12(glval) = VariableAddress[#this] : +# 2194| r2194_13(ClassWithDestructor *) = Load[#this] : &:r2194_12, ~m? +# 2194| r2194_14(glval) = FieldAddress[x] : r2194_13 +# 2194| r2194_15(char *) = Load[?] : &:r2194_14, ~m? +# 2194| r2194_16(glval) = CopyValue : r2194_15 +# 2194| mu2194_17(char) = Store[?] : &:r2194_16, r2194_11 +# 2194| v2194_18(void) = NoOp : +# 2194| v2194_19(void) = ReturnIndirection[#this] : &:r2194_6, ~m? +# 2194| v2194_20(void) = ReturnVoid : +# 2194| v2194_21(void) = AliasedUse : ~m? +# 2194| v2194_22(void) = ExitFunction : + +# 2195| char ClassWithDestructor::get_x() +# 2195| Block 0 +# 2195| v2195_1(void) = EnterFunction : +# 2195| mu2195_2(unknown) = AliasedDefinition : +# 2195| mu2195_3(unknown) = InitializeNonLocal : +# 2195| r2195_4(glval) = VariableAddress[#this] : +# 2195| mu2195_5(glval) = InitializeParameter[#this] : &:r2195_4 +# 2195| r2195_6(glval) = Load[#this] : &:r2195_4, ~m? +# 2195| mu2195_7(ClassWithDestructor) = InitializeIndirection[#this] : &:r2195_6 +# 2195| r2195_8(glval) = VariableAddress[#return] : +# 2195| r2195_9(glval) = VariableAddress[#this] : +# 2195| r2195_10(ClassWithDestructor *) = Load[#this] : &:r2195_9, ~m? +# 2195| r2195_11(glval) = FieldAddress[x] : r2195_10 +# 2195| r2195_12(char *) = Load[?] : &:r2195_11, ~m? +# 2195| r2195_13(char) = Load[?] : &:r2195_12, ~m? +# 2195| mu2195_14(char) = Store[#return] : &:r2195_8, r2195_13 +# 2195| v2195_15(void) = ReturnIndirection[#this] : &:r2195_6, ~m? +# 2195| r2195_16(glval) = VariableAddress[#return] : +# 2195| v2195_17(void) = ReturnValue : &:r2195_16, ~m? +# 2195| v2195_18(void) = AliasedUse : ~m? +# 2195| v2195_19(void) = ExitFunction : + +# 2199| bool initialization_with_destructor_bool # 2199| Block 0 -# 2199| v2199_1(void) = EnterFunction : -# 2199| mu2199_2(unknown) = AliasedDefinition : -# 2199| mu2199_3(unknown) = InitializeNonLocal : -# 2199| r2199_4(glval) = VariableAddress[b] : -# 2199| mu2199_5(bool) = InitializeParameter[b] : &:r2199_4 -# 2199| r2199_6(glval) = VariableAddress[c] : -# 2199| mu2199_7(char) = InitializeParameter[c] : &:r2199_6 -# 2200| r2200_1(glval) = VariableAddress[x] : -# 2200| mu2200_2(ClassWithDestructor) = Uninitialized[x] : &:r2200_1 -# 2200| r2200_3(glval) = FunctionAddress[ClassWithDestructor] : -# 2200| v2200_4(void) = Call[ClassWithDestructor] : func:r2200_3, this:r2200_1 -# 2200| mu2200_5(unknown) = ^CallSideEffect : ~m? -# 2200| mu2200_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2200_1 -# 2200| r2200_7(glval) = VariableAddress[b] : -# 2200| r2200_8(bool) = Load[b] : &:r2200_7, ~m? -# 2200| v2200_9(void) = ConditionalBranch : r2200_8 +# 2199| v2199_1(void) = EnterFunction : +# 2199| mu2199_2(unknown) = AliasedDefinition : +# 2199| r2199_3(glval) = VariableAddress[initialization_with_destructor_bool] : +# 2199| r2199_4(bool) = Constant[1] : +# 2199| mu2199_5(bool) = Store[initialization_with_destructor_bool] : &:r2199_3, r2199_4 +# 2199| v2199_6(void) = ReturnVoid : +# 2199| v2199_7(void) = AliasedUse : ~m? +# 2199| v2199_8(void) = ExitFunction : + +# 2201| void initialization_with_destructor(bool, char) +# 2201| Block 0 +# 2201| v2201_1(void) = EnterFunction : +# 2201| mu2201_2(unknown) = AliasedDefinition : +# 2201| mu2201_3(unknown) = InitializeNonLocal : +# 2201| r2201_4(glval) = VariableAddress[b] : +# 2201| mu2201_5(bool) = InitializeParameter[b] : &:r2201_4 +# 2201| r2201_6(glval) = VariableAddress[c] : +# 2201| mu2201_7(char) = InitializeParameter[c] : &:r2201_6 +# 2202| r2202_1(glval) = VariableAddress[x] : +# 2202| mu2202_2(ClassWithDestructor) = Uninitialized[x] : &:r2202_1 +# 2202| r2202_3(glval) = FunctionAddress[ClassWithDestructor] : +# 2202| v2202_4(void) = Call[ClassWithDestructor] : func:r2202_3, this:r2202_1 +# 2202| mu2202_5(unknown) = ^CallSideEffect : ~m? +# 2202| mu2202_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2202_1 +# 2202| r2202_7(glval) = VariableAddress[b] : +# 2202| r2202_8(bool) = Load[b] : &:r2202_7, ~m? +# 2202| v2202_9(void) = ConditionalBranch : r2202_8 #-----| False -> Block 3 #-----| True -> Block 2 -# 2199| Block 1 -# 2199| v2199_8(void) = ReturnVoid : -# 2199| v2199_9(void) = AliasedUse : ~m? -# 2199| v2199_10(void) = ExitFunction : - -# 2201| Block 2 -# 2201| r2201_1(glval) = VariableAddress[x] : -# 2201| r2201_2(glval) = FunctionAddress[set_x] : -# 2201| r2201_3(char) = Constant[97] : -# 2201| v2201_4(void) = Call[set_x] : func:r2201_2, this:r2201_1, 0:r2201_3 -# 2201| mu2201_5(unknown) = ^CallSideEffect : ~m? -# 2201| v2201_6(void) = ^IndirectReadSideEffect[-1] : &:r2201_1, ~m? -# 2201| mu2201_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2201_1 +# 2201| Block 1 +# 2201| v2201_8(void) = ReturnVoid : +# 2201| v2201_9(void) = AliasedUse : ~m? +# 2201| v2201_10(void) = ExitFunction : + +# 2203| Block 2 +# 2203| r2203_1(glval) = VariableAddress[x] : +# 2203| r2203_2(glval) = FunctionAddress[set_x] : +# 2203| r2203_3(char) = Constant[97] : +# 2203| v2203_4(void) = Call[set_x] : func:r2203_2, this:r2203_1, 0:r2203_3 +# 2203| mu2203_5(unknown) = ^CallSideEffect : ~m? +# 2203| v2203_6(void) = ^IndirectReadSideEffect[-1] : &:r2203_1, ~m? +# 2203| mu2203_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2203_1 #-----| Goto -> Block 3 -# 2201| Block 3 -# 2201| r2201_8(glval) = VariableAddress[x] : -# 2201| r2201_9(glval) = FunctionAddress[~ClassWithDestructor] : -# 2201| v2201_10(void) = Call[~ClassWithDestructor] : func:r2201_9, this:r2201_8 -# 2201| mu2201_11(unknown) = ^CallSideEffect : ~m? -# 2201| v2201_12(void) = ^IndirectReadSideEffect[-1] : &:r2201_8, ~m? -# 2201| mu2201_13(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2201_8 -# 2203| r2203_1(glval) = VariableAddress[x] : -# 2203| mu2203_2(ClassWithDestructor) = Uninitialized[x] : &:r2203_1 -# 2203| r2203_3(glval) = FunctionAddress[ClassWithDestructor] : -# 2203| v2203_4(void) = Call[ClassWithDestructor] : func:r2203_3, this:r2203_1 -# 2203| mu2203_5(unknown) = ^CallSideEffect : ~m? -# 2203| mu2203_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2203_1 -# 2203| r2203_7(bool) = Constant[1] : -# 2203| v2203_8(void) = ConditionalBranch : r2203_7 +# 2203| Block 3 +# 2203| r2203_8(glval) = VariableAddress[x] : +# 2203| r2203_9(glval) = FunctionAddress[~ClassWithDestructor] : +# 2203| v2203_10(void) = Call[~ClassWithDestructor] : func:r2203_9, this:r2203_8 +# 2203| mu2203_11(unknown) = ^CallSideEffect : ~m? +# 2203| v2203_12(void) = ^IndirectReadSideEffect[-1] : &:r2203_8, ~m? +# 2203| mu2203_13(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2203_8 +# 2205| r2205_1(glval) = VariableAddress[x] : +# 2205| mu2205_2(ClassWithDestructor) = Uninitialized[x] : &:r2205_1 +# 2205| r2205_3(glval) = FunctionAddress[ClassWithDestructor] : +# 2205| v2205_4(void) = Call[ClassWithDestructor] : func:r2205_3, this:r2205_1 +# 2205| mu2205_5(unknown) = ^CallSideEffect : ~m? +# 2205| mu2205_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2205_1 +# 2205| r2205_7(bool) = Constant[1] : +# 2205| v2205_8(void) = ConditionalBranch : r2205_7 #-----| False -> Block 5 #-----| True -> Block 4 -# 2204| Block 4 -# 2204| r2204_1(glval) = VariableAddress[x] : -# 2204| r2204_2(glval) = FunctionAddress[set_x] : -# 2204| r2204_3(char) = Constant[97] : -# 2204| v2204_4(void) = Call[set_x] : func:r2204_2, this:r2204_1, 0:r2204_3 -# 2204| mu2204_5(unknown) = ^CallSideEffect : ~m? -# 2204| v2204_6(void) = ^IndirectReadSideEffect[-1] : &:r2204_1, ~m? -# 2204| mu2204_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2204_1 +# 2206| Block 4 +# 2206| r2206_1(glval) = VariableAddress[x] : +# 2206| r2206_2(glval) = FunctionAddress[set_x] : +# 2206| r2206_3(char) = Constant[97] : +# 2206| v2206_4(void) = Call[set_x] : func:r2206_2, this:r2206_1, 0:r2206_3 +# 2206| mu2206_5(unknown) = ^CallSideEffect : ~m? +# 2206| v2206_6(void) = ^IndirectReadSideEffect[-1] : &:r2206_1, ~m? +# 2206| mu2206_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2206_1 #-----| Goto -> Block 5 -# 2204| Block 5 -# 2204| r2204_8(glval) = VariableAddress[x] : -# 2204| r2204_9(glval) = FunctionAddress[~ClassWithDestructor] : -# 2204| v2204_10(void) = Call[~ClassWithDestructor] : func:r2204_9, this:r2204_8 -# 2204| mu2204_11(unknown) = ^CallSideEffect : ~m? -# 2204| v2204_12(void) = ^IndirectReadSideEffect[-1] : &:r2204_8, ~m? -# 2204| mu2204_13(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2204_8 -# 2206| r2206_1(glval) = VariableAddress[x] : -# 2206| mu2206_2(ClassWithDestructor) = Uninitialized[x] : &:r2206_1 -# 2206| r2206_3(glval) = FunctionAddress[ClassWithDestructor] : -# 2206| v2206_4(void) = Call[ClassWithDestructor] : func:r2206_3, this:r2206_1 -# 2206| mu2206_5(unknown) = ^CallSideEffect : ~m? -# 2206| mu2206_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2206_1 -# 2206| r2206_7(glval) = VariableAddress[c] : -# 2206| r2206_8(char) = Load[c] : &:r2206_7, ~m? -# 2206| r2206_9(int) = Convert : r2206_8 -# 2206| v2206_10(void) = Switch : r2206_9 +# 2206| Block 5 +# 2206| r2206_8(glval) = VariableAddress[x] : +# 2206| r2206_9(glval) = FunctionAddress[~ClassWithDestructor] : +# 2206| v2206_10(void) = Call[~ClassWithDestructor] : func:r2206_9, this:r2206_8 +# 2206| mu2206_11(unknown) = ^CallSideEffect : ~m? +# 2206| v2206_12(void) = ^IndirectReadSideEffect[-1] : &:r2206_8, ~m? +# 2206| mu2206_13(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2206_8 +# 2208| r2208_1(glval) = VariableAddress[x] : +# 2208| mu2208_2(ClassWithDestructor) = Uninitialized[x] : &:r2208_1 +# 2208| r2208_3(glval) = FunctionAddress[ClassWithDestructor] : +# 2208| v2208_4(void) = Call[ClassWithDestructor] : func:r2208_3, this:r2208_1 +# 2208| mu2208_5(unknown) = ^CallSideEffect : ~m? +# 2208| mu2208_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2208_1 +# 2208| r2208_7(glval) = VariableAddress[c] : +# 2208| r2208_8(char) = Load[c] : &:r2208_7, ~m? +# 2208| r2208_9(int) = Convert : r2208_8 +# 2208| v2208_10(void) = Switch : r2208_9 #-----| Case[97] -> Block 6 #-----| Default -> Block 7 -# 2207| Block 6 -# 2207| v2207_1(void) = NoOp : -# 2208| r2208_1(glval) = VariableAddress[x] : -# 2208| r2208_2(glval) = FunctionAddress[set_x] : -# 2208| r2208_3(char) = Constant[97] : -# 2208| v2208_4(void) = Call[set_x] : func:r2208_2, this:r2208_1, 0:r2208_3 -# 2208| mu2208_5(unknown) = ^CallSideEffect : ~m? -# 2208| v2208_6(void) = ^IndirectReadSideEffect[-1] : &:r2208_1, ~m? -# 2208| mu2208_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2208_1 -# 2213| r2213_1(glval) = VariableAddress[x] : -# 2213| r2213_2(glval) = FunctionAddress[~ClassWithDestructor] : -# 2213| v2213_3(void) = Call[~ClassWithDestructor] : func:r2213_2, this:r2213_1 -# 2213| mu2213_4(unknown) = ^CallSideEffect : ~m? -# 2213| v2213_5(void) = ^IndirectReadSideEffect[-1] : &:r2213_1, ~m? -# 2213| mu2213_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2213_1 +# 2209| Block 6 # 2209| v2209_1(void) = NoOp : +# 2210| r2210_1(glval) = VariableAddress[x] : +# 2210| r2210_2(glval) = FunctionAddress[set_x] : +# 2210| r2210_3(char) = Constant[97] : +# 2210| v2210_4(void) = Call[set_x] : func:r2210_2, this:r2210_1, 0:r2210_3 +# 2210| mu2210_5(unknown) = ^CallSideEffect : ~m? +# 2210| v2210_6(void) = ^IndirectReadSideEffect[-1] : &:r2210_1, ~m? +# 2210| mu2210_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2210_1 +# 2215| r2215_1(glval) = VariableAddress[x] : +# 2215| r2215_2(glval) = FunctionAddress[~ClassWithDestructor] : +# 2215| v2215_3(void) = Call[~ClassWithDestructor] : func:r2215_2, this:r2215_1 +# 2215| mu2215_4(unknown) = ^CallSideEffect : ~m? +# 2215| v2215_5(void) = ^IndirectReadSideEffect[-1] : &:r2215_1, ~m? +# 2215| mu2215_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2215_1 +# 2211| v2211_1(void) = NoOp : #-----| Goto -> Block 9 -# 2210| Block 7 -# 2210| v2210_1(void) = NoOp : -# 2211| r2211_1(glval) = VariableAddress[x] : -# 2211| r2211_2(glval) = FunctionAddress[set_x] : -# 2211| r2211_3(char) = Constant[98] : -# 2211| v2211_4(void) = Call[set_x] : func:r2211_2, this:r2211_1, 0:r2211_3 -# 2211| mu2211_5(unknown) = ^CallSideEffect : ~m? -# 2211| v2211_6(void) = ^IndirectReadSideEffect[-1] : &:r2211_1, ~m? -# 2211| mu2211_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2211_1 -# 2213| r2213_7(glval) = VariableAddress[x] : -# 2213| r2213_8(glval) = FunctionAddress[~ClassWithDestructor] : -# 2213| v2213_9(void) = Call[~ClassWithDestructor] : func:r2213_8, this:r2213_7 -# 2213| mu2213_10(unknown) = ^CallSideEffect : ~m? -# 2213| v2213_11(void) = ^IndirectReadSideEffect[-1] : &:r2213_7, ~m? -# 2213| mu2213_12(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2213_7 +# 2212| Block 7 # 2212| v2212_1(void) = NoOp : +# 2213| r2213_1(glval) = VariableAddress[x] : +# 2213| r2213_2(glval) = FunctionAddress[set_x] : +# 2213| r2213_3(char) = Constant[98] : +# 2213| v2213_4(void) = Call[set_x] : func:r2213_2, this:r2213_1, 0:r2213_3 +# 2213| mu2213_5(unknown) = ^CallSideEffect : ~m? +# 2213| v2213_6(void) = ^IndirectReadSideEffect[-1] : &:r2213_1, ~m? +# 2213| mu2213_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2213_1 +# 2215| r2215_7(glval) = VariableAddress[x] : +# 2215| r2215_8(glval) = FunctionAddress[~ClassWithDestructor] : +# 2215| v2215_9(void) = Call[~ClassWithDestructor] : func:r2215_8, this:r2215_7 +# 2215| mu2215_10(unknown) = ^CallSideEffect : ~m? +# 2215| v2215_11(void) = ^IndirectReadSideEffect[-1] : &:r2215_7, ~m? +# 2215| mu2215_12(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2215_7 +# 2214| v2214_1(void) = NoOp : #-----| Goto -> Block 9 -# 2213| Block 8 -# 2213| r2213_13(glval) = VariableAddress[x] : -# 2213| r2213_14(glval) = FunctionAddress[~ClassWithDestructor] : -# 2213| v2213_15(void) = Call[~ClassWithDestructor] : func:r2213_14, this:r2213_13 -# 2213| mu2213_16(unknown) = ^CallSideEffect : ~m? -# 2213| v2213_17(void) = ^IndirectReadSideEffect[-1] : &:r2213_13, ~m? -# 2213| mu2213_18(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2213_13 +# 2215| Block 8 +# 2215| r2215_13(glval) = VariableAddress[x] : +# 2215| r2215_14(glval) = FunctionAddress[~ClassWithDestructor] : +# 2215| v2215_15(void) = Call[~ClassWithDestructor] : func:r2215_14, this:r2215_13 +# 2215| mu2215_16(unknown) = ^CallSideEffect : ~m? +# 2215| v2215_17(void) = ^IndirectReadSideEffect[-1] : &:r2215_13, ~m? +# 2215| mu2215_18(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2215_13 #-----| Goto -> Block 9 -# 2213| Block 9 -# 2213| v2213_19(void) = NoOp : -# 2215| r2215_1(glval) = VariableAddress[x] : -# 2215| mu2215_2(ClassWithDestructor) = Uninitialized[x] : &:r2215_1 -# 2215| r2215_3(glval) = FunctionAddress[ClassWithDestructor] : -# 2215| v2215_4(void) = Call[ClassWithDestructor] : func:r2215_3, this:r2215_1 -# 2215| mu2215_5(unknown) = ^CallSideEffect : ~m? -# 2215| mu2215_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2215_1 -# 2216| r2216_1(glval>) = VariableAddress[ys] : -# 2216| mu2216_2(vector) = Uninitialized[ys] : &:r2216_1 -# 2216| r2216_3(glval) = FunctionAddress[vector] : -# 2216| r2216_4(glval) = VariableAddress[#temp2216:45] : -# 2216| r2216_5(glval) = VariableAddress[x] : -# 2216| r2216_6(ClassWithDestructor) = Load[x] : &:r2216_5, ~m? -# 2216| mu2216_7(ClassWithDestructor) = Store[#temp2216:45] : &:r2216_4, r2216_6 -# 2216| r2216_8(ClassWithDestructor) = Load[#temp2216:45] : &:r2216_4, ~m? -# 2216| v2216_9(void) = Call[vector] : func:r2216_3, this:r2216_1, 0:r2216_8 -# 2216| mu2216_10(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2216_1 -# 2216| r2216_11(glval) = CopyValue : r2216_4 -# 2216| r2216_12(glval) = FunctionAddress[~ClassWithDestructor] : -# 2216| v2216_13(void) = Call[~ClassWithDestructor] : func:r2216_12, this:r2216_11 -# 2216| mu2216_14(unknown) = ^CallSideEffect : ~m? -# 2216| v2216_15(void) = ^IndirectReadSideEffect[-1] : &:r2216_11, ~m? -# 2216| mu2216_16(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2216_11 -# 2216| r2216_17(glval &>) = VariableAddress[(__range)] : -# 2216| r2216_18(glval>) = VariableAddress[ys] : -# 2216| r2216_19(vector &) = CopyValue : r2216_18 -# 2216| mu2216_20(vector &) = Store[(__range)] : &:r2216_17, r2216_19 -# 2216| r2216_21(glval>) = VariableAddress[(__begin)] : -# 2216| r2216_22(glval &>) = VariableAddress[(__range)] : -# 2216| r2216_23(vector &) = Load[(__range)] : &:r2216_22, ~m? -#-----| r0_1(glval>) = CopyValue : r2216_23 +# 2215| Block 9 +# 2215| v2215_19(void) = NoOp : +# 2217| r2217_1(glval) = VariableAddress[x] : +# 2217| mu2217_2(ClassWithDestructor) = Uninitialized[x] : &:r2217_1 +# 2217| r2217_3(glval) = FunctionAddress[ClassWithDestructor] : +# 2217| v2217_4(void) = Call[ClassWithDestructor] : func:r2217_3, this:r2217_1 +# 2217| mu2217_5(unknown) = ^CallSideEffect : ~m? +# 2217| mu2217_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2217_1 +# 2218| r2218_1(glval>) = VariableAddress[ys] : +# 2218| mu2218_2(vector) = Uninitialized[ys] : &:r2218_1 +# 2218| r2218_3(glval) = FunctionAddress[vector] : +# 2218| r2218_4(glval) = VariableAddress[#temp2218:45] : +# 2218| r2218_5(glval) = VariableAddress[x] : +# 2218| r2218_6(ClassWithDestructor) = Load[x] : &:r2218_5, ~m? +# 2218| mu2218_7(ClassWithDestructor) = Store[#temp2218:45] : &:r2218_4, r2218_6 +# 2218| r2218_8(ClassWithDestructor) = Load[#temp2218:45] : &:r2218_4, ~m? +# 2218| v2218_9(void) = Call[vector] : func:r2218_3, this:r2218_1, 0:r2218_8 +# 2218| mu2218_10(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2218_1 +# 2218| r2218_11(glval) = CopyValue : r2218_4 +# 2218| r2218_12(glval) = FunctionAddress[~ClassWithDestructor] : +# 2218| v2218_13(void) = Call[~ClassWithDestructor] : func:r2218_12, this:r2218_11 +# 2218| mu2218_14(unknown) = ^CallSideEffect : ~m? +# 2218| v2218_15(void) = ^IndirectReadSideEffect[-1] : &:r2218_11, ~m? +# 2218| mu2218_16(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2218_11 +# 2218| r2218_17(glval &>) = VariableAddress[(__range)] : +# 2218| r2218_18(glval>) = VariableAddress[ys] : +# 2218| r2218_19(vector &) = CopyValue : r2218_18 +# 2218| mu2218_20(vector &) = Store[(__range)] : &:r2218_17, r2218_19 +# 2218| r2218_21(glval>) = VariableAddress[(__begin)] : +# 2218| r2218_22(glval &>) = VariableAddress[(__range)] : +# 2218| r2218_23(vector &) = Load[(__range)] : &:r2218_22, ~m? +#-----| r0_1(glval>) = CopyValue : r2218_23 #-----| r0_2(glval>) = Convert : r0_1 -# 2216| r2216_24(glval) = FunctionAddress[begin] : -# 2216| r2216_25(iterator) = Call[begin] : func:r2216_24, this:r0_2 +# 2218| r2218_24(glval) = FunctionAddress[begin] : +# 2218| r2218_25(iterator) = Call[begin] : func:r2218_24, this:r0_2 #-----| v0_3(void) = ^IndirectReadSideEffect[-1] : &:r0_2, ~m? -# 2216| mu2216_26(iterator) = Store[(__begin)] : &:r2216_21, r2216_25 -# 2216| r2216_27(glval>) = VariableAddress[(__end)] : -# 2216| r2216_28(glval &>) = VariableAddress[(__range)] : -# 2216| r2216_29(vector &) = Load[(__range)] : &:r2216_28, ~m? -#-----| r0_4(glval>) = CopyValue : r2216_29 +# 2218| mu2218_26(iterator) = Store[(__begin)] : &:r2218_21, r2218_25 +# 2218| r2218_27(glval>) = VariableAddress[(__end)] : +# 2218| r2218_28(glval &>) = VariableAddress[(__range)] : +# 2218| r2218_29(vector &) = Load[(__range)] : &:r2218_28, ~m? +#-----| r0_4(glval>) = CopyValue : r2218_29 #-----| r0_5(glval>) = Convert : r0_4 -# 2216| r2216_30(glval) = FunctionAddress[end] : -# 2216| r2216_31(iterator) = Call[end] : func:r2216_30, this:r0_5 +# 2218| r2218_30(glval) = FunctionAddress[end] : +# 2218| r2218_31(iterator) = Call[end] : func:r2218_30, this:r0_5 #-----| v0_6(void) = ^IndirectReadSideEffect[-1] : &:r0_5, ~m? -# 2216| mu2216_32(iterator) = Store[(__end)] : &:r2216_27, r2216_31 +# 2218| mu2218_32(iterator) = Store[(__end)] : &:r2218_27, r2218_31 #-----| Goto -> Block 10 -# 2216| Block 10 -# 2216| r2216_33(glval>) = VariableAddress[(__begin)] : -#-----| r0_7(glval>) = Convert : r2216_33 -# 2216| r2216_34(glval) = FunctionAddress[operator!=] : +# 2218| Block 10 +# 2218| r2218_33(glval>) = VariableAddress[(__begin)] : +#-----| r0_7(glval>) = Convert : r2218_33 +# 2218| r2218_34(glval) = FunctionAddress[operator!=] : #-----| r0_8(glval>) = VariableAddress[#temp0:0] : #-----| mu0_9(iterator) = Uninitialized[#temp0:0] : &:r0_8 -# 2216| r2216_35(glval) = FunctionAddress[iterator] : -# 2216| r2216_36(glval>) = VariableAddress[(__end)] : -#-----| r0_10(glval>) = Convert : r2216_36 +# 2218| r2218_35(glval) = FunctionAddress[iterator] : +# 2218| r2218_36(glval>) = VariableAddress[(__end)] : +#-----| r0_10(glval>) = Convert : r2218_36 #-----| r0_11(iterator &) = CopyValue : r0_10 -# 2216| v2216_37(void) = Call[iterator] : func:r2216_35, this:r0_8, 0:r0_11 -# 2216| mu2216_38(unknown) = ^CallSideEffect : ~m? +# 2218| v2218_37(void) = Call[iterator] : func:r2218_35, this:r0_8, 0:r0_11 +# 2218| mu2218_38(unknown) = ^CallSideEffect : ~m? #-----| v0_12(void) = ^BufferReadSideEffect[0] : &:r0_11, ~m? -# 2216| mu2216_39(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r0_8 +# 2218| mu2218_39(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r0_8 #-----| r0_13(iterator) = Load[#temp0:0] : &:r0_8, ~m? -# 2216| r2216_40(bool) = Call[operator!=] : func:r2216_34, this:r0_7, 0:r0_13 +# 2218| r2218_40(bool) = Call[operator!=] : func:r2218_34, this:r0_7, 0:r0_13 #-----| v0_14(void) = ^IndirectReadSideEffect[-1] : &:r0_7, ~m? -# 2216| v2216_41(void) = ConditionalBranch : r2216_40 +# 2218| v2218_41(void) = ConditionalBranch : r2218_40 #-----| False -> Block 12 #-----| True -> Block 11 -# 2216| Block 11 -# 2216| r2216_42(glval) = VariableAddress[y] : -# 2216| r2216_43(glval>) = VariableAddress[(__begin)] : -#-----| r0_15(glval>) = Convert : r2216_43 -# 2216| r2216_44(glval) = FunctionAddress[operator*] : -# 2216| r2216_45(ClassWithDestructor &) = Call[operator*] : func:r2216_44, this:r0_15 +# 2218| Block 11 +# 2218| r2218_42(glval) = VariableAddress[y] : +# 2218| r2218_43(glval>) = VariableAddress[(__begin)] : +#-----| r0_15(glval>) = Convert : r2218_43 +# 2218| r2218_44(glval) = FunctionAddress[operator*] : +# 2218| r2218_45(ClassWithDestructor &) = Call[operator*] : func:r2218_44, this:r0_15 #-----| v0_16(void) = ^IndirectReadSideEffect[-1] : &:r0_15, ~m? -# 2216| r2216_46(ClassWithDestructor) = Load[?] : &:r2216_45, ~m? -# 2216| mu2216_47(ClassWithDestructor) = Store[y] : &:r2216_42, r2216_46 -# 2217| r2217_1(glval) = VariableAddress[y] : -# 2217| r2217_2(glval) = FunctionAddress[set_x] : -# 2217| r2217_3(char) = Constant[97] : -# 2217| v2217_4(void) = Call[set_x] : func:r2217_2, this:r2217_1, 0:r2217_3 -# 2217| mu2217_5(unknown) = ^CallSideEffect : ~m? -# 2217| v2217_6(void) = ^IndirectReadSideEffect[-1] : &:r2217_1, ~m? -# 2217| mu2217_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2217_1 -# 2216| r2216_48(glval>) = VariableAddress[(__begin)] : -# 2216| r2216_49(glval) = FunctionAddress[operator++] : -# 2216| r2216_50(iterator &) = Call[operator++] : func:r2216_49, this:r2216_48 -# 2216| v2216_51(void) = ^IndirectReadSideEffect[-1] : &:r2216_48, ~m? -# 2216| mu2216_52(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2216_48 -# 2216| r2216_53(glval) = VariableAddress[y] : -# 2216| r2216_54(glval) = FunctionAddress[~ClassWithDestructor] : -# 2216| v2216_55(void) = Call[~ClassWithDestructor] : func:r2216_54, this:r2216_53 -# 2216| mu2216_56(unknown) = ^CallSideEffect : ~m? -# 2216| v2216_57(void) = ^IndirectReadSideEffect[-1] : &:r2216_53, ~m? -# 2216| mu2216_58(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2216_53 -# 2216| r2216_59(glval>) = CopyValue : r2216_50 +# 2218| r2218_46(ClassWithDestructor) = Load[?] : &:r2218_45, ~m? +# 2218| mu2218_47(ClassWithDestructor) = Store[y] : &:r2218_42, r2218_46 +# 2219| r2219_1(glval) = VariableAddress[y] : +# 2219| r2219_2(glval) = FunctionAddress[set_x] : +# 2219| r2219_3(char) = Constant[97] : +# 2219| v2219_4(void) = Call[set_x] : func:r2219_2, this:r2219_1, 0:r2219_3 +# 2219| mu2219_5(unknown) = ^CallSideEffect : ~m? +# 2219| v2219_6(void) = ^IndirectReadSideEffect[-1] : &:r2219_1, ~m? +# 2219| mu2219_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2219_1 +# 2218| r2218_48(glval>) = VariableAddress[(__begin)] : +# 2218| r2218_49(glval) = FunctionAddress[operator++] : +# 2218| r2218_50(iterator &) = Call[operator++] : func:r2218_49, this:r2218_48 +# 2218| v2218_51(void) = ^IndirectReadSideEffect[-1] : &:r2218_48, ~m? +# 2218| mu2218_52(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2218_48 +# 2218| r2218_53(glval) = VariableAddress[y] : +# 2218| r2218_54(glval) = FunctionAddress[~ClassWithDestructor] : +# 2218| v2218_55(void) = Call[~ClassWithDestructor] : func:r2218_54, this:r2218_53 +# 2218| mu2218_56(unknown) = ^CallSideEffect : ~m? +# 2218| v2218_57(void) = ^IndirectReadSideEffect[-1] : &:r2218_53, ~m? +# 2218| mu2218_58(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2218_53 +# 2218| r2218_59(glval>) = CopyValue : r2218_50 #-----| Goto (back edge) -> Block 10 -# 2216| Block 12 -# 2216| r2216_60(glval>) = VariableAddress[ys] : -# 2216| r2216_61(glval) = FunctionAddress[~vector] : -# 2216| v2216_62(void) = Call[~vector] : func:r2216_61, this:r2216_60 -# 2216| v2216_63(void) = ^IndirectReadSideEffect[-1] : &:r2216_60, ~m? -# 2216| mu2216_64(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2216_60 -# 2219| r2219_1(glval>) = VariableAddress[ys] : -# 2219| mu2219_2(vector) = Uninitialized[ys] : &:r2219_1 -# 2219| r2219_3(glval) = FunctionAddress[vector] : -# 2219| r2219_4(glval) = VariableAddress[#temp2219:45] : -# 2219| r2219_5(glval) = VariableAddress[x] : -# 2219| r2219_6(ClassWithDestructor) = Load[x] : &:r2219_5, ~m? -# 2219| mu2219_7(ClassWithDestructor) = Store[#temp2219:45] : &:r2219_4, r2219_6 -# 2219| r2219_8(ClassWithDestructor) = Load[#temp2219:45] : &:r2219_4, ~m? -# 2219| v2219_9(void) = Call[vector] : func:r2219_3, this:r2219_1, 0:r2219_8 -# 2219| mu2219_10(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2219_1 -# 2219| r2219_11(glval) = CopyValue : r2219_4 -# 2219| r2219_12(glval) = FunctionAddress[~ClassWithDestructor] : -# 2219| v2219_13(void) = Call[~ClassWithDestructor] : func:r2219_12, this:r2219_11 -# 2219| mu2219_14(unknown) = ^CallSideEffect : ~m? -# 2219| v2219_15(void) = ^IndirectReadSideEffect[-1] : &:r2219_11, ~m? -# 2219| mu2219_16(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2219_11 -# 2219| r2219_17(glval &>) = VariableAddress[(__range)] : -# 2219| r2219_18(glval>) = VariableAddress[ys] : -# 2219| r2219_19(vector &) = CopyValue : r2219_18 -# 2219| mu2219_20(vector &) = Store[(__range)] : &:r2219_17, r2219_19 -# 2219| r2219_21(glval>) = VariableAddress[(__begin)] : -# 2219| r2219_22(glval &>) = VariableAddress[(__range)] : -# 2219| r2219_23(vector &) = Load[(__range)] : &:r2219_22, ~m? -#-----| r0_17(glval>) = CopyValue : r2219_23 +# 2218| Block 12 +# 2218| r2218_60(glval>) = VariableAddress[ys] : +# 2218| r2218_61(glval) = FunctionAddress[~vector] : +# 2218| v2218_62(void) = Call[~vector] : func:r2218_61, this:r2218_60 +# 2218| v2218_63(void) = ^IndirectReadSideEffect[-1] : &:r2218_60, ~m? +# 2218| mu2218_64(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2218_60 +# 2221| r2221_1(glval>) = VariableAddress[ys] : +# 2221| mu2221_2(vector) = Uninitialized[ys] : &:r2221_1 +# 2221| r2221_3(glval) = FunctionAddress[vector] : +# 2221| r2221_4(glval) = VariableAddress[#temp2221:45] : +# 2221| r2221_5(glval) = VariableAddress[x] : +# 2221| r2221_6(ClassWithDestructor) = Load[x] : &:r2221_5, ~m? +# 2221| mu2221_7(ClassWithDestructor) = Store[#temp2221:45] : &:r2221_4, r2221_6 +# 2221| r2221_8(ClassWithDestructor) = Load[#temp2221:45] : &:r2221_4, ~m? +# 2221| v2221_9(void) = Call[vector] : func:r2221_3, this:r2221_1, 0:r2221_8 +# 2221| mu2221_10(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2221_1 +# 2221| r2221_11(glval) = CopyValue : r2221_4 +# 2221| r2221_12(glval) = FunctionAddress[~ClassWithDestructor] : +# 2221| v2221_13(void) = Call[~ClassWithDestructor] : func:r2221_12, this:r2221_11 +# 2221| mu2221_14(unknown) = ^CallSideEffect : ~m? +# 2221| v2221_15(void) = ^IndirectReadSideEffect[-1] : &:r2221_11, ~m? +# 2221| mu2221_16(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2221_11 +# 2221| r2221_17(glval &>) = VariableAddress[(__range)] : +# 2221| r2221_18(glval>) = VariableAddress[ys] : +# 2221| r2221_19(vector &) = CopyValue : r2221_18 +# 2221| mu2221_20(vector &) = Store[(__range)] : &:r2221_17, r2221_19 +# 2221| r2221_21(glval>) = VariableAddress[(__begin)] : +# 2221| r2221_22(glval &>) = VariableAddress[(__range)] : +# 2221| r2221_23(vector &) = Load[(__range)] : &:r2221_22, ~m? +#-----| r0_17(glval>) = CopyValue : r2221_23 #-----| r0_18(glval>) = Convert : r0_17 -# 2219| r2219_24(glval) = FunctionAddress[begin] : -# 2219| r2219_25(iterator) = Call[begin] : func:r2219_24, this:r0_18 +# 2221| r2221_24(glval) = FunctionAddress[begin] : +# 2221| r2221_25(iterator) = Call[begin] : func:r2221_24, this:r0_18 #-----| v0_19(void) = ^IndirectReadSideEffect[-1] : &:r0_18, ~m? -# 2219| mu2219_26(iterator) = Store[(__begin)] : &:r2219_21, r2219_25 -# 2219| r2219_27(glval>) = VariableAddress[(__end)] : -# 2219| r2219_28(glval &>) = VariableAddress[(__range)] : -# 2219| r2219_29(vector &) = Load[(__range)] : &:r2219_28, ~m? -#-----| r0_20(glval>) = CopyValue : r2219_29 +# 2221| mu2221_26(iterator) = Store[(__begin)] : &:r2221_21, r2221_25 +# 2221| r2221_27(glval>) = VariableAddress[(__end)] : +# 2221| r2221_28(glval &>) = VariableAddress[(__range)] : +# 2221| r2221_29(vector &) = Load[(__range)] : &:r2221_28, ~m? +#-----| r0_20(glval>) = CopyValue : r2221_29 #-----| r0_21(glval>) = Convert : r0_20 -# 2219| r2219_30(glval) = FunctionAddress[end] : -# 2219| r2219_31(iterator) = Call[end] : func:r2219_30, this:r0_21 +# 2221| r2221_30(glval) = FunctionAddress[end] : +# 2221| r2221_31(iterator) = Call[end] : func:r2221_30, this:r0_21 #-----| v0_22(void) = ^IndirectReadSideEffect[-1] : &:r0_21, ~m? -# 2219| mu2219_32(iterator) = Store[(__end)] : &:r2219_27, r2219_31 +# 2221| mu2221_32(iterator) = Store[(__end)] : &:r2221_27, r2221_31 #-----| Goto -> Block 13 -# 2219| Block 13 -# 2219| r2219_33(glval>) = VariableAddress[(__begin)] : -#-----| r0_23(glval>) = Convert : r2219_33 -# 2219| r2219_34(glval) = FunctionAddress[operator!=] : +# 2221| Block 13 +# 2221| r2221_33(glval>) = VariableAddress[(__begin)] : +#-----| r0_23(glval>) = Convert : r2221_33 +# 2221| r2221_34(glval) = FunctionAddress[operator!=] : #-----| r0_24(glval>) = VariableAddress[#temp0:0] : #-----| mu0_25(iterator) = Uninitialized[#temp0:0] : &:r0_24 -# 2219| r2219_35(glval) = FunctionAddress[iterator] : -# 2219| r2219_36(glval>) = VariableAddress[(__end)] : -#-----| r0_26(glval>) = Convert : r2219_36 +# 2221| r2221_35(glval) = FunctionAddress[iterator] : +# 2221| r2221_36(glval>) = VariableAddress[(__end)] : +#-----| r0_26(glval>) = Convert : r2221_36 #-----| r0_27(iterator &) = CopyValue : r0_26 -# 2219| v2219_37(void) = Call[iterator] : func:r2219_35, this:r0_24, 0:r0_27 -# 2219| mu2219_38(unknown) = ^CallSideEffect : ~m? +# 2221| v2221_37(void) = Call[iterator] : func:r2221_35, this:r0_24, 0:r0_27 +# 2221| mu2221_38(unknown) = ^CallSideEffect : ~m? #-----| v0_28(void) = ^BufferReadSideEffect[0] : &:r0_27, ~m? -# 2219| mu2219_39(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r0_24 +# 2221| mu2221_39(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r0_24 #-----| r0_29(iterator) = Load[#temp0:0] : &:r0_24, ~m? -# 2219| r2219_40(bool) = Call[operator!=] : func:r2219_34, this:r0_23, 0:r0_29 +# 2221| r2221_40(bool) = Call[operator!=] : func:r2221_34, this:r0_23, 0:r0_29 #-----| v0_30(void) = ^IndirectReadSideEffect[-1] : &:r0_23, ~m? -# 2219| v2219_41(void) = ConditionalBranch : r2219_40 +# 2221| v2221_41(void) = ConditionalBranch : r2221_40 #-----| False -> Block 17 #-----| True -> Block 15 -# 2219| Block 14 -# 2219| r2219_42(glval>) = VariableAddress[(__begin)] : -# 2219| r2219_43(glval) = FunctionAddress[operator++] : -# 2219| r2219_44(iterator &) = Call[operator++] : func:r2219_43, this:r2219_42 -# 2219| v2219_45(void) = ^IndirectReadSideEffect[-1] : &:r2219_42, ~m? -# 2219| mu2219_46(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2219_42 -# 2219| r2219_47(glval) = VariableAddress[y] : -# 2219| r2219_48(glval) = FunctionAddress[~ClassWithDestructor] : -# 2219| v2219_49(void) = Call[~ClassWithDestructor] : func:r2219_48, this:r2219_47 -# 2219| mu2219_50(unknown) = ^CallSideEffect : ~m? -# 2219| v2219_51(void) = ^IndirectReadSideEffect[-1] : &:r2219_47, ~m? -# 2219| mu2219_52(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2219_47 -# 2219| r2219_53(glval>) = CopyValue : r2219_44 +# 2221| Block 14 +# 2221| r2221_42(glval>) = VariableAddress[(__begin)] : +# 2221| r2221_43(glval) = FunctionAddress[operator++] : +# 2221| r2221_44(iterator &) = Call[operator++] : func:r2221_43, this:r2221_42 +# 2221| v2221_45(void) = ^IndirectReadSideEffect[-1] : &:r2221_42, ~m? +# 2221| mu2221_46(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2221_42 +# 2221| r2221_47(glval) = VariableAddress[y] : +# 2221| r2221_48(glval) = FunctionAddress[~ClassWithDestructor] : +# 2221| v2221_49(void) = Call[~ClassWithDestructor] : func:r2221_48, this:r2221_47 +# 2221| mu2221_50(unknown) = ^CallSideEffect : ~m? +# 2221| v2221_51(void) = ^IndirectReadSideEffect[-1] : &:r2221_47, ~m? +# 2221| mu2221_52(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2221_47 +# 2221| r2221_53(glval>) = CopyValue : r2221_44 #-----| Goto (back edge) -> Block 13 -# 2219| Block 15 -# 2219| r2219_54(glval) = VariableAddress[y] : -# 2219| r2219_55(glval>) = VariableAddress[(__begin)] : -#-----| r0_31(glval>) = Convert : r2219_55 -# 2219| r2219_56(glval) = FunctionAddress[operator*] : -# 2219| r2219_57(ClassWithDestructor &) = Call[operator*] : func:r2219_56, this:r0_31 +# 2221| Block 15 +# 2221| r2221_54(glval) = VariableAddress[y] : +# 2221| r2221_55(glval>) = VariableAddress[(__begin)] : +#-----| r0_31(glval>) = Convert : r2221_55 +# 2221| r2221_56(glval) = FunctionAddress[operator*] : +# 2221| r2221_57(ClassWithDestructor &) = Call[operator*] : func:r2221_56, this:r0_31 #-----| v0_32(void) = ^IndirectReadSideEffect[-1] : &:r0_31, ~m? -# 2219| r2219_58(ClassWithDestructor) = Load[?] : &:r2219_57, ~m? -# 2219| mu2219_59(ClassWithDestructor) = Store[y] : &:r2219_54, r2219_58 -# 2220| r2220_1(glval) = VariableAddress[y] : -# 2220| r2220_2(glval) = FunctionAddress[set_x] : -# 2220| r2220_3(char) = Constant[97] : -# 2220| v2220_4(void) = Call[set_x] : func:r2220_2, this:r2220_1, 0:r2220_3 -# 2220| mu2220_5(unknown) = ^CallSideEffect : ~m? -# 2220| v2220_6(void) = ^IndirectReadSideEffect[-1] : &:r2220_1, ~m? -# 2220| mu2220_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2220_1 -# 2221| r2221_1(glval) = VariableAddress[y] : -# 2221| r2221_2(glval) = FunctionAddress[get_x] : -# 2221| r2221_3(char) = Call[get_x] : func:r2221_2, this:r2221_1 -# 2221| mu2221_4(unknown) = ^CallSideEffect : ~m? -# 2221| v2221_5(void) = ^IndirectReadSideEffect[-1] : &:r2221_1, ~m? -# 2221| mu2221_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2221_1 -# 2221| r2221_7(int) = Convert : r2221_3 -# 2221| r2221_8(int) = Constant[98] : -# 2221| r2221_9(bool) = CompareEQ : r2221_7, r2221_8 -# 2221| v2221_10(void) = ConditionalBranch : r2221_9 +# 2221| r2221_58(ClassWithDestructor) = Load[?] : &:r2221_57, ~m? +# 2221| mu2221_59(ClassWithDestructor) = Store[y] : &:r2221_54, r2221_58 +# 2222| r2222_1(glval) = VariableAddress[y] : +# 2222| r2222_2(glval) = FunctionAddress[set_x] : +# 2222| r2222_3(char) = Constant[97] : +# 2222| v2222_4(void) = Call[set_x] : func:r2222_2, this:r2222_1, 0:r2222_3 +# 2222| mu2222_5(unknown) = ^CallSideEffect : ~m? +# 2222| v2222_6(void) = ^IndirectReadSideEffect[-1] : &:r2222_1, ~m? +# 2222| mu2222_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2222_1 +# 2223| r2223_1(glval) = VariableAddress[y] : +# 2223| r2223_2(glval) = FunctionAddress[get_x] : +# 2223| r2223_3(char) = Call[get_x] : func:r2223_2, this:r2223_1 +# 2223| mu2223_4(unknown) = ^CallSideEffect : ~m? +# 2223| v2223_5(void) = ^IndirectReadSideEffect[-1] : &:r2223_1, ~m? +# 2223| mu2223_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2223_1 +# 2223| r2223_7(int) = Convert : r2223_3 +# 2223| r2223_8(int) = Constant[98] : +# 2223| r2223_9(bool) = CompareEQ : r2223_7, r2223_8 +# 2223| v2223_10(void) = ConditionalBranch : r2223_9 #-----| False -> Block 14 #-----| True -> Block 16 -# 2222| Block 16 -# 2222| v2222_1(void) = NoOp : -# 2219| r2219_60(glval) = VariableAddress[y] : -# 2219| r2219_61(glval) = FunctionAddress[~ClassWithDestructor] : -# 2219| v2219_62(void) = Call[~ClassWithDestructor] : func:r2219_61, this:r2219_60 -# 2219| mu2219_63(unknown) = ^CallSideEffect : ~m? -# 2219| v2219_64(void) = ^IndirectReadSideEffect[-1] : &:r2219_60, ~m? -# 2219| mu2219_65(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2219_60 -# 2219| r2219_66(glval>) = VariableAddress[ys] : -# 2219| r2219_67(glval) = FunctionAddress[~vector] : -# 2219| v2219_68(void) = Call[~vector] : func:r2219_67, this:r2219_66 -# 2219| v2219_69(void) = ^IndirectReadSideEffect[-1] : &:r2219_66, ~m? -# 2219| mu2219_70(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2219_66 -# 2234| r2234_1(glval) = VariableAddress[x] : -# 2234| r2234_2(glval) = FunctionAddress[~ClassWithDestructor] : -# 2234| v2234_3(void) = Call[~ClassWithDestructor] : func:r2234_2, this:r2234_1 -# 2234| mu2234_4(unknown) = ^CallSideEffect : ~m? -# 2234| v2234_5(void) = ^IndirectReadSideEffect[-1] : &:r2234_1, ~m? -# 2234| mu2234_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2234_1 +# 2224| Block 16 +# 2224| v2224_1(void) = NoOp : +# 2221| r2221_60(glval) = VariableAddress[y] : +# 2221| r2221_61(glval) = FunctionAddress[~ClassWithDestructor] : +# 2221| v2221_62(void) = Call[~ClassWithDestructor] : func:r2221_61, this:r2221_60 +# 2221| mu2221_63(unknown) = ^CallSideEffect : ~m? +# 2221| v2221_64(void) = ^IndirectReadSideEffect[-1] : &:r2221_60, ~m? +# 2221| mu2221_65(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2221_60 +# 2221| r2221_66(glval>) = VariableAddress[ys] : +# 2221| r2221_67(glval) = FunctionAddress[~vector] : +# 2221| v2221_68(void) = Call[~vector] : func:r2221_67, this:r2221_66 +# 2221| v2221_69(void) = ^IndirectReadSideEffect[-1] : &:r2221_66, ~m? +# 2221| mu2221_70(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2221_66 +# 2236| r2236_1(glval) = VariableAddress[x] : +# 2236| r2236_2(glval) = FunctionAddress[~ClassWithDestructor] : +# 2236| v2236_3(void) = Call[~ClassWithDestructor] : func:r2236_2, this:r2236_1 +# 2236| mu2236_4(unknown) = ^CallSideEffect : ~m? +# 2236| v2236_5(void) = ^IndirectReadSideEffect[-1] : &:r2236_1, ~m? +# 2236| mu2236_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2236_1 #-----| Goto -> Block 1 -# 2219| Block 17 -# 2219| r2219_71(glval>) = VariableAddress[ys] : -# 2219| r2219_72(glval) = FunctionAddress[~vector] : -# 2219| v2219_73(void) = Call[~vector] : func:r2219_72, this:r2219_71 -# 2219| v2219_74(void) = ^IndirectReadSideEffect[-1] : &:r2219_71, ~m? -# 2219| mu2219_75(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2219_71 -# 2225| r2225_1(glval>) = VariableAddress[ys] : -# 2225| mu2225_2(vector) = Uninitialized[ys] : &:r2225_1 -# 2225| r2225_3(glval) = FunctionAddress[vector] : -# 2225| r2225_4(int) = Constant[1] : -# 2225| v2225_5(void) = Call[vector] : func:r2225_3, this:r2225_1, 0:r2225_4 -# 2225| mu2225_6(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2225_1 -# 2225| r2225_7(glval &>) = VariableAddress[(__range)] : -# 2225| r2225_8(glval>) = VariableAddress[ys] : -# 2225| r2225_9(vector &) = CopyValue : r2225_8 -# 2225| mu2225_10(vector &) = Store[(__range)] : &:r2225_7, r2225_9 -# 2225| r2225_11(glval>) = VariableAddress[(__begin)] : -# 2225| r2225_12(glval &>) = VariableAddress[(__range)] : -# 2225| r2225_13(vector &) = Load[(__range)] : &:r2225_12, ~m? -#-----| r0_33(glval>) = CopyValue : r2225_13 +# 2221| Block 17 +# 2221| r2221_71(glval>) = VariableAddress[ys] : +# 2221| r2221_72(glval) = FunctionAddress[~vector] : +# 2221| v2221_73(void) = Call[~vector] : func:r2221_72, this:r2221_71 +# 2221| v2221_74(void) = ^IndirectReadSideEffect[-1] : &:r2221_71, ~m? +# 2221| mu2221_75(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2221_71 +# 2227| r2227_1(glval>) = VariableAddress[ys] : +# 2227| mu2227_2(vector) = Uninitialized[ys] : &:r2227_1 +# 2227| r2227_3(glval) = FunctionAddress[vector] : +# 2227| r2227_4(int) = Constant[1] : +# 2227| v2227_5(void) = Call[vector] : func:r2227_3, this:r2227_1, 0:r2227_4 +# 2227| mu2227_6(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2227_1 +# 2227| r2227_7(glval &>) = VariableAddress[(__range)] : +# 2227| r2227_8(glval>) = VariableAddress[ys] : +# 2227| r2227_9(vector &) = CopyValue : r2227_8 +# 2227| mu2227_10(vector &) = Store[(__range)] : &:r2227_7, r2227_9 +# 2227| r2227_11(glval>) = VariableAddress[(__begin)] : +# 2227| r2227_12(glval &>) = VariableAddress[(__range)] : +# 2227| r2227_13(vector &) = Load[(__range)] : &:r2227_12, ~m? +#-----| r0_33(glval>) = CopyValue : r2227_13 #-----| r0_34(glval>) = Convert : r0_33 -# 2225| r2225_14(glval) = FunctionAddress[begin] : -# 2225| r2225_15(iterator) = Call[begin] : func:r2225_14, this:r0_34 +# 2227| r2227_14(glval) = FunctionAddress[begin] : +# 2227| r2227_15(iterator) = Call[begin] : func:r2227_14, this:r0_34 #-----| v0_35(void) = ^IndirectReadSideEffect[-1] : &:r0_34, ~m? -# 2225| mu2225_16(iterator) = Store[(__begin)] : &:r2225_11, r2225_15 -# 2225| r2225_17(glval>) = VariableAddress[(__end)] : -# 2225| r2225_18(glval &>) = VariableAddress[(__range)] : -# 2225| r2225_19(vector &) = Load[(__range)] : &:r2225_18, ~m? -#-----| r0_36(glval>) = CopyValue : r2225_19 +# 2227| mu2227_16(iterator) = Store[(__begin)] : &:r2227_11, r2227_15 +# 2227| r2227_17(glval>) = VariableAddress[(__end)] : +# 2227| r2227_18(glval &>) = VariableAddress[(__range)] : +# 2227| r2227_19(vector &) = Load[(__range)] : &:r2227_18, ~m? +#-----| r0_36(glval>) = CopyValue : r2227_19 #-----| r0_37(glval>) = Convert : r0_36 -# 2225| r2225_20(glval) = FunctionAddress[end] : -# 2225| r2225_21(iterator) = Call[end] : func:r2225_20, this:r0_37 +# 2227| r2227_20(glval) = FunctionAddress[end] : +# 2227| r2227_21(iterator) = Call[end] : func:r2227_20, this:r0_37 #-----| v0_38(void) = ^IndirectReadSideEffect[-1] : &:r0_37, ~m? -# 2225| mu2225_22(iterator) = Store[(__end)] : &:r2225_17, r2225_21 +# 2227| mu2227_22(iterator) = Store[(__end)] : &:r2227_17, r2227_21 #-----| Goto -> Block 18 -# 2225| Block 18 -# 2225| r2225_23(glval>) = VariableAddress[(__begin)] : -#-----| r0_39(glval>) = Convert : r2225_23 -# 2225| r2225_24(glval) = FunctionAddress[operator!=] : +# 2227| Block 18 +# 2227| r2227_23(glval>) = VariableAddress[(__begin)] : +#-----| r0_39(glval>) = Convert : r2227_23 +# 2227| r2227_24(glval) = FunctionAddress[operator!=] : #-----| r0_40(glval>) = VariableAddress[#temp0:0] : #-----| mu0_41(iterator) = Uninitialized[#temp0:0] : &:r0_40 -# 2225| r2225_25(glval) = FunctionAddress[iterator] : -# 2225| r2225_26(glval>) = VariableAddress[(__end)] : -#-----| r0_42(glval>) = Convert : r2225_26 +# 2227| r2227_25(glval) = FunctionAddress[iterator] : +# 2227| r2227_26(glval>) = VariableAddress[(__end)] : +#-----| r0_42(glval>) = Convert : r2227_26 #-----| r0_43(iterator &) = CopyValue : r0_42 -# 2225| v2225_27(void) = Call[iterator] : func:r2225_25, this:r0_40, 0:r0_43 -# 2225| mu2225_28(unknown) = ^CallSideEffect : ~m? +# 2227| v2227_27(void) = Call[iterator] : func:r2227_25, this:r0_40, 0:r0_43 +# 2227| mu2227_28(unknown) = ^CallSideEffect : ~m? #-----| v0_44(void) = ^BufferReadSideEffect[0] : &:r0_43, ~m? -# 2225| mu2225_29(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r0_40 +# 2227| mu2227_29(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r0_40 #-----| r0_45(iterator) = Load[#temp0:0] : &:r0_40, ~m? -# 2225| r2225_30(bool) = Call[operator!=] : func:r2225_24, this:r0_39, 0:r0_45 +# 2227| r2227_30(bool) = Call[operator!=] : func:r2227_24, this:r0_39, 0:r0_45 #-----| v0_46(void) = ^IndirectReadSideEffect[-1] : &:r0_39, ~m? -# 2225| v2225_31(void) = ConditionalBranch : r2225_30 +# 2227| v2227_31(void) = ConditionalBranch : r2227_30 #-----| False -> Block 22 #-----| True -> Block 20 -# 2225| Block 19 -# 2225| r2225_32(glval>) = VariableAddress[(__begin)] : -# 2225| r2225_33(glval) = FunctionAddress[operator++] : -# 2225| r2225_34(iterator &) = Call[operator++] : func:r2225_33, this:r2225_32 -# 2225| v2225_35(void) = ^IndirectReadSideEffect[-1] : &:r2225_32, ~m? -# 2225| mu2225_36(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2225_32 -# 2225| r2225_37(glval>) = CopyValue : r2225_34 +# 2227| Block 19 +# 2227| r2227_32(glval>) = VariableAddress[(__begin)] : +# 2227| r2227_33(glval) = FunctionAddress[operator++] : +# 2227| r2227_34(iterator &) = Call[operator++] : func:r2227_33, this:r2227_32 +# 2227| v2227_35(void) = ^IndirectReadSideEffect[-1] : &:r2227_32, ~m? +# 2227| mu2227_36(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2227_32 +# 2227| r2227_37(glval>) = CopyValue : r2227_34 #-----| Goto (back edge) -> Block 18 -# 2225| Block 20 -# 2225| r2225_38(glval) = VariableAddress[y] : -# 2225| r2225_39(glval>) = VariableAddress[(__begin)] : -#-----| r0_47(glval>) = Convert : r2225_39 -# 2225| r2225_40(glval) = FunctionAddress[operator*] : -# 2225| r2225_41(int &) = Call[operator*] : func:r2225_40, this:r0_47 +# 2227| Block 20 +# 2227| r2227_38(glval) = VariableAddress[y] : +# 2227| r2227_39(glval>) = VariableAddress[(__begin)] : +#-----| r0_47(glval>) = Convert : r2227_39 +# 2227| r2227_40(glval) = FunctionAddress[operator*] : +# 2227| r2227_41(int &) = Call[operator*] : func:r2227_40, this:r0_47 #-----| v0_48(void) = ^IndirectReadSideEffect[-1] : &:r0_47, ~m? -# 2225| r2225_42(int) = Load[?] : &:r2225_41, ~m? -# 2225| mu2225_43(int) = Store[y] : &:r2225_38, r2225_42 -# 2226| r2226_1(glval) = VariableAddress[y] : -# 2226| r2226_2(int) = Load[y] : &:r2226_1, ~m? -# 2226| r2226_3(int) = Constant[1] : -# 2226| r2226_4(bool) = CompareEQ : r2226_2, r2226_3 -# 2226| v2226_5(void) = ConditionalBranch : r2226_4 +# 2227| r2227_42(int) = Load[?] : &:r2227_41, ~m? +# 2227| mu2227_43(int) = Store[y] : &:r2227_38, r2227_42 +# 2228| r2228_1(glval) = VariableAddress[y] : +# 2228| r2228_2(int) = Load[y] : &:r2228_1, ~m? +# 2228| r2228_3(int) = Constant[1] : +# 2228| r2228_4(bool) = CompareEQ : r2228_2, r2228_3 +# 2228| v2228_5(void) = ConditionalBranch : r2228_4 #-----| False -> Block 19 #-----| True -> Block 21 -# 2227| Block 21 -# 2227| v2227_1(void) = NoOp : -# 2225| r2225_44(glval>) = VariableAddress[ys] : -# 2225| r2225_45(glval) = FunctionAddress[~vector] : -# 2225| v2225_46(void) = Call[~vector] : func:r2225_45, this:r2225_44 -# 2225| v2225_47(void) = ^IndirectReadSideEffect[-1] : &:r2225_44, ~m? -# 2225| mu2225_48(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2225_44 -# 2234| r2234_7(glval) = VariableAddress[x] : -# 2234| r2234_8(glval) = FunctionAddress[~ClassWithDestructor] : -# 2234| v2234_9(void) = Call[~ClassWithDestructor] : func:r2234_8, this:r2234_7 -# 2234| mu2234_10(unknown) = ^CallSideEffect : ~m? -# 2234| v2234_11(void) = ^IndirectReadSideEffect[-1] : &:r2234_7, ~m? -# 2234| mu2234_12(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2234_7 +# 2229| Block 21 +# 2229| v2229_1(void) = NoOp : +# 2227| r2227_44(glval>) = VariableAddress[ys] : +# 2227| r2227_45(glval) = FunctionAddress[~vector] : +# 2227| v2227_46(void) = Call[~vector] : func:r2227_45, this:r2227_44 +# 2227| v2227_47(void) = ^IndirectReadSideEffect[-1] : &:r2227_44, ~m? +# 2227| mu2227_48(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2227_44 +# 2236| r2236_7(glval) = VariableAddress[x] : +# 2236| r2236_8(glval) = FunctionAddress[~ClassWithDestructor] : +# 2236| v2236_9(void) = Call[~ClassWithDestructor] : func:r2236_8, this:r2236_7 +# 2236| mu2236_10(unknown) = ^CallSideEffect : ~m? +# 2236| v2236_11(void) = ^IndirectReadSideEffect[-1] : &:r2236_7, ~m? +# 2236| mu2236_12(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2236_7 #-----| Goto -> Block 1 -# 2225| Block 22 -# 2225| r2225_49(glval>) = VariableAddress[ys] : -# 2225| r2225_50(glval) = FunctionAddress[~vector] : -# 2225| v2225_51(void) = Call[~vector] : func:r2225_50, this:r2225_49 -# 2225| v2225_52(void) = ^IndirectReadSideEffect[-1] : &:r2225_49, ~m? -# 2225| mu2225_53(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2225_49 -# 2230| r2230_1(glval>) = VariableAddress[ys] : -# 2230| mu2230_2(vector) = Uninitialized[ys] : &:r2230_1 -# 2230| r2230_3(glval) = FunctionAddress[vector] : -# 2230| r2230_4(glval) = VariableAddress[#temp2230:45] : -# 2230| r2230_5(glval) = VariableAddress[x] : -# 2230| r2230_6(ClassWithDestructor) = Load[x] : &:r2230_5, ~m? -# 2230| mu2230_7(ClassWithDestructor) = Store[#temp2230:45] : &:r2230_4, r2230_6 -# 2230| r2230_8(ClassWithDestructor) = Load[#temp2230:45] : &:r2230_4, ~m? -# 2230| v2230_9(void) = Call[vector] : func:r2230_3, this:r2230_1, 0:r2230_8 -# 2230| mu2230_10(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2230_1 -# 2230| r2230_11(glval) = CopyValue : r2230_4 -# 2230| r2230_12(glval) = FunctionAddress[~ClassWithDestructor] : -# 2230| v2230_13(void) = Call[~ClassWithDestructor] : func:r2230_12, this:r2230_11 -# 2230| mu2230_14(unknown) = ^CallSideEffect : ~m? -# 2230| v2230_15(void) = ^IndirectReadSideEffect[-1] : &:r2230_11, ~m? -# 2230| mu2230_16(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2230_11 -# 2230| r2230_17(glval &>) = VariableAddress[(__range)] : -# 2230| r2230_18(glval>) = VariableAddress[ys] : -# 2230| r2230_19(vector &) = CopyValue : r2230_18 -# 2230| mu2230_20(vector &) = Store[(__range)] : &:r2230_17, r2230_19 -# 2230| r2230_21(glval>) = VariableAddress[(__begin)] : -# 2230| r2230_22(glval &>) = VariableAddress[(__range)] : -# 2230| r2230_23(vector &) = Load[(__range)] : &:r2230_22, ~m? -#-----| r0_49(glval>) = CopyValue : r2230_23 +# 2227| Block 22 +# 2227| r2227_49(glval>) = VariableAddress[ys] : +# 2227| r2227_50(glval) = FunctionAddress[~vector] : +# 2227| v2227_51(void) = Call[~vector] : func:r2227_50, this:r2227_49 +# 2227| v2227_52(void) = ^IndirectReadSideEffect[-1] : &:r2227_49, ~m? +# 2227| mu2227_53(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2227_49 +# 2232| r2232_1(glval>) = VariableAddress[ys] : +# 2232| mu2232_2(vector) = Uninitialized[ys] : &:r2232_1 +# 2232| r2232_3(glval) = FunctionAddress[vector] : +# 2232| r2232_4(glval) = VariableAddress[#temp2232:45] : +# 2232| r2232_5(glval) = VariableAddress[x] : +# 2232| r2232_6(ClassWithDestructor) = Load[x] : &:r2232_5, ~m? +# 2232| mu2232_7(ClassWithDestructor) = Store[#temp2232:45] : &:r2232_4, r2232_6 +# 2232| r2232_8(ClassWithDestructor) = Load[#temp2232:45] : &:r2232_4, ~m? +# 2232| v2232_9(void) = Call[vector] : func:r2232_3, this:r2232_1, 0:r2232_8 +# 2232| mu2232_10(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2232_1 +# 2232| r2232_11(glval) = CopyValue : r2232_4 +# 2232| r2232_12(glval) = FunctionAddress[~ClassWithDestructor] : +# 2232| v2232_13(void) = Call[~ClassWithDestructor] : func:r2232_12, this:r2232_11 +# 2232| mu2232_14(unknown) = ^CallSideEffect : ~m? +# 2232| v2232_15(void) = ^IndirectReadSideEffect[-1] : &:r2232_11, ~m? +# 2232| mu2232_16(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2232_11 +# 2232| r2232_17(glval &>) = VariableAddress[(__range)] : +# 2232| r2232_18(glval>) = VariableAddress[ys] : +# 2232| r2232_19(vector &) = CopyValue : r2232_18 +# 2232| mu2232_20(vector &) = Store[(__range)] : &:r2232_17, r2232_19 +# 2232| r2232_21(glval>) = VariableAddress[(__begin)] : +# 2232| r2232_22(glval &>) = VariableAddress[(__range)] : +# 2232| r2232_23(vector &) = Load[(__range)] : &:r2232_22, ~m? +#-----| r0_49(glval>) = CopyValue : r2232_23 #-----| r0_50(glval>) = Convert : r0_49 -# 2230| r2230_24(glval) = FunctionAddress[begin] : -# 2230| r2230_25(iterator) = Call[begin] : func:r2230_24, this:r0_50 +# 2232| r2232_24(glval) = FunctionAddress[begin] : +# 2232| r2232_25(iterator) = Call[begin] : func:r2232_24, this:r0_50 #-----| v0_51(void) = ^IndirectReadSideEffect[-1] : &:r0_50, ~m? -# 2230| mu2230_26(iterator) = Store[(__begin)] : &:r2230_21, r2230_25 -# 2230| r2230_27(glval>) = VariableAddress[(__end)] : -# 2230| r2230_28(glval &>) = VariableAddress[(__range)] : -# 2230| r2230_29(vector &) = Load[(__range)] : &:r2230_28, ~m? -#-----| r0_52(glval>) = CopyValue : r2230_29 +# 2232| mu2232_26(iterator) = Store[(__begin)] : &:r2232_21, r2232_25 +# 2232| r2232_27(glval>) = VariableAddress[(__end)] : +# 2232| r2232_28(glval &>) = VariableAddress[(__range)] : +# 2232| r2232_29(vector &) = Load[(__range)] : &:r2232_28, ~m? +#-----| r0_52(glval>) = CopyValue : r2232_29 #-----| r0_53(glval>) = Convert : r0_52 -# 2230| r2230_30(glval) = FunctionAddress[end] : -# 2230| r2230_31(iterator) = Call[end] : func:r2230_30, this:r0_53 +# 2232| r2232_30(glval) = FunctionAddress[end] : +# 2232| r2232_31(iterator) = Call[end] : func:r2232_30, this:r0_53 #-----| v0_54(void) = ^IndirectReadSideEffect[-1] : &:r0_53, ~m? -# 2230| mu2230_32(iterator) = Store[(__end)] : &:r2230_27, r2230_31 +# 2232| mu2232_32(iterator) = Store[(__end)] : &:r2232_27, r2232_31 #-----| Goto -> Block 23 -# 2230| Block 23 -# 2230| r2230_33(glval>) = VariableAddress[(__begin)] : -#-----| r0_55(glval>) = Convert : r2230_33 -# 2230| r2230_34(glval) = FunctionAddress[operator!=] : +# 2232| Block 23 +# 2232| r2232_33(glval>) = VariableAddress[(__begin)] : +#-----| r0_55(glval>) = Convert : r2232_33 +# 2232| r2232_34(glval) = FunctionAddress[operator!=] : #-----| r0_56(glval>) = VariableAddress[#temp0:0] : #-----| mu0_57(iterator) = Uninitialized[#temp0:0] : &:r0_56 -# 2230| r2230_35(glval) = FunctionAddress[iterator] : -# 2230| r2230_36(glval>) = VariableAddress[(__end)] : -#-----| r0_58(glval>) = Convert : r2230_36 +# 2232| r2232_35(glval) = FunctionAddress[iterator] : +# 2232| r2232_36(glval>) = VariableAddress[(__end)] : +#-----| r0_58(glval>) = Convert : r2232_36 #-----| r0_59(iterator &) = CopyValue : r0_58 -# 2230| v2230_37(void) = Call[iterator] : func:r2230_35, this:r0_56, 0:r0_59 -# 2230| mu2230_38(unknown) = ^CallSideEffect : ~m? +# 2232| v2232_37(void) = Call[iterator] : func:r2232_35, this:r0_56, 0:r0_59 +# 2232| mu2232_38(unknown) = ^CallSideEffect : ~m? #-----| v0_60(void) = ^BufferReadSideEffect[0] : &:r0_59, ~m? -# 2230| mu2230_39(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r0_56 +# 2232| mu2232_39(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r0_56 #-----| r0_61(iterator) = Load[#temp0:0] : &:r0_56, ~m? -# 2230| r2230_40(bool) = Call[operator!=] : func:r2230_34, this:r0_55, 0:r0_61 +# 2232| r2232_40(bool) = Call[operator!=] : func:r2232_34, this:r0_55, 0:r0_61 #-----| v0_62(void) = ^IndirectReadSideEffect[-1] : &:r0_55, ~m? -# 2230| v2230_41(void) = ConditionalBranch : r2230_40 +# 2232| v2232_41(void) = ConditionalBranch : r2232_40 #-----| False -> Block 25 #-----| True -> Block 24 -# 2230| Block 24 -# 2230| r2230_42(glval) = VariableAddress[y] : -# 2230| r2230_43(glval>) = VariableAddress[(__begin)] : -#-----| r0_63(glval>) = Convert : r2230_43 -# 2230| r2230_44(glval) = FunctionAddress[operator*] : -# 2230| r2230_45(ClassWithDestructor &) = Call[operator*] : func:r2230_44, this:r0_63 +# 2232| Block 24 +# 2232| r2232_42(glval) = VariableAddress[y] : +# 2232| r2232_43(glval>) = VariableAddress[(__begin)] : +#-----| r0_63(glval>) = Convert : r2232_43 +# 2232| r2232_44(glval) = FunctionAddress[operator*] : +# 2232| r2232_45(ClassWithDestructor &) = Call[operator*] : func:r2232_44, this:r0_63 #-----| v0_64(void) = ^IndirectReadSideEffect[-1] : &:r0_63, ~m? -# 2230| r2230_46(ClassWithDestructor) = Load[?] : &:r2230_45, ~m? -# 2230| mu2230_47(ClassWithDestructor) = Store[y] : &:r2230_42, r2230_46 -# 2231| r2231_1(glval) = VariableAddress[z1] : -# 2231| mu2231_2(ClassWithDestructor) = Uninitialized[z1] : &:r2231_1 -# 2231| r2231_3(glval) = FunctionAddress[ClassWithDestructor] : -# 2231| v2231_4(void) = Call[ClassWithDestructor] : func:r2231_3, this:r2231_1 -# 2231| mu2231_5(unknown) = ^CallSideEffect : ~m? -# 2231| mu2231_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2231_1 -# 2232| r2232_1(glval) = VariableAddress[z2] : -# 2232| mu2232_2(ClassWithDestructor) = Uninitialized[z2] : &:r2232_1 -# 2232| r2232_3(glval) = FunctionAddress[ClassWithDestructor] : -# 2232| v2232_4(void) = Call[ClassWithDestructor] : func:r2232_3, this:r2232_1 -# 2232| mu2232_5(unknown) = ^CallSideEffect : ~m? -# 2232| mu2232_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2232_1 -# 2233| r2233_1(glval) = VariableAddress[z2] : -# 2233| r2233_2(glval) = FunctionAddress[~ClassWithDestructor] : -# 2233| v2233_3(void) = Call[~ClassWithDestructor] : func:r2233_2, this:r2233_1 -# 2233| mu2233_4(unknown) = ^CallSideEffect : ~m? -# 2233| v2233_5(void) = ^IndirectReadSideEffect[-1] : &:r2233_1, ~m? +# 2232| r2232_46(ClassWithDestructor) = Load[?] : &:r2232_45, ~m? +# 2232| mu2232_47(ClassWithDestructor) = Store[y] : &:r2232_42, r2232_46 +# 2233| r2233_1(glval) = VariableAddress[z1] : +# 2233| mu2233_2(ClassWithDestructor) = Uninitialized[z1] : &:r2233_1 +# 2233| r2233_3(glval) = FunctionAddress[ClassWithDestructor] : +# 2233| v2233_4(void) = Call[ClassWithDestructor] : func:r2233_3, this:r2233_1 +# 2233| mu2233_5(unknown) = ^CallSideEffect : ~m? # 2233| mu2233_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2233_1 -# 2233| r2233_7(glval) = VariableAddress[z1] : -# 2233| r2233_8(glval) = FunctionAddress[~ClassWithDestructor] : -# 2233| v2233_9(void) = Call[~ClassWithDestructor] : func:r2233_8, this:r2233_7 -# 2233| mu2233_10(unknown) = ^CallSideEffect : ~m? -# 2233| v2233_11(void) = ^IndirectReadSideEffect[-1] : &:r2233_7, ~m? -# 2233| mu2233_12(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2233_7 -# 2230| r2230_48(glval>) = VariableAddress[(__begin)] : -# 2230| r2230_49(glval) = FunctionAddress[operator++] : -# 2230| r2230_50(iterator &) = Call[operator++] : func:r2230_49, this:r2230_48 -# 2230| v2230_51(void) = ^IndirectReadSideEffect[-1] : &:r2230_48, ~m? -# 2230| mu2230_52(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2230_48 -# 2230| r2230_53(glval) = VariableAddress[y] : -# 2230| r2230_54(glval) = FunctionAddress[~ClassWithDestructor] : -# 2230| v2230_55(void) = Call[~ClassWithDestructor] : func:r2230_54, this:r2230_53 -# 2230| mu2230_56(unknown) = ^CallSideEffect : ~m? -# 2230| v2230_57(void) = ^IndirectReadSideEffect[-1] : &:r2230_53, ~m? -# 2230| mu2230_58(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2230_53 -# 2230| r2230_59(glval>) = CopyValue : r2230_50 +# 2234| r2234_1(glval) = VariableAddress[z2] : +# 2234| mu2234_2(ClassWithDestructor) = Uninitialized[z2] : &:r2234_1 +# 2234| r2234_3(glval) = FunctionAddress[ClassWithDestructor] : +# 2234| v2234_4(void) = Call[ClassWithDestructor] : func:r2234_3, this:r2234_1 +# 2234| mu2234_5(unknown) = ^CallSideEffect : ~m? +# 2234| mu2234_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2234_1 +# 2235| r2235_1(glval) = VariableAddress[z2] : +# 2235| r2235_2(glval) = FunctionAddress[~ClassWithDestructor] : +# 2235| v2235_3(void) = Call[~ClassWithDestructor] : func:r2235_2, this:r2235_1 +# 2235| mu2235_4(unknown) = ^CallSideEffect : ~m? +# 2235| v2235_5(void) = ^IndirectReadSideEffect[-1] : &:r2235_1, ~m? +# 2235| mu2235_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2235_1 +# 2235| r2235_7(glval) = VariableAddress[z1] : +# 2235| r2235_8(glval) = FunctionAddress[~ClassWithDestructor] : +# 2235| v2235_9(void) = Call[~ClassWithDestructor] : func:r2235_8, this:r2235_7 +# 2235| mu2235_10(unknown) = ^CallSideEffect : ~m? +# 2235| v2235_11(void) = ^IndirectReadSideEffect[-1] : &:r2235_7, ~m? +# 2235| mu2235_12(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2235_7 +# 2232| r2232_48(glval>) = VariableAddress[(__begin)] : +# 2232| r2232_49(glval) = FunctionAddress[operator++] : +# 2232| r2232_50(iterator &) = Call[operator++] : func:r2232_49, this:r2232_48 +# 2232| v2232_51(void) = ^IndirectReadSideEffect[-1] : &:r2232_48, ~m? +# 2232| mu2232_52(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2232_48 +# 2232| r2232_53(glval) = VariableAddress[y] : +# 2232| r2232_54(glval) = FunctionAddress[~ClassWithDestructor] : +# 2232| v2232_55(void) = Call[~ClassWithDestructor] : func:r2232_54, this:r2232_53 +# 2232| mu2232_56(unknown) = ^CallSideEffect : ~m? +# 2232| v2232_57(void) = ^IndirectReadSideEffect[-1] : &:r2232_53, ~m? +# 2232| mu2232_58(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2232_53 +# 2232| r2232_59(glval>) = CopyValue : r2232_50 #-----| Goto (back edge) -> Block 23 -# 2230| Block 25 -# 2230| r2230_60(glval>) = VariableAddress[ys] : -# 2230| r2230_61(glval) = FunctionAddress[~vector] : -# 2230| v2230_62(void) = Call[~vector] : func:r2230_61, this:r2230_60 -# 2230| v2230_63(void) = ^IndirectReadSideEffect[-1] : &:r2230_60, ~m? -# 2230| mu2230_64(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2230_60 -# 2234| v2234_13(void) = NoOp : -# 2234| r2234_14(glval) = VariableAddress[x] : -# 2234| r2234_15(glval) = FunctionAddress[~ClassWithDestructor] : -# 2234| v2234_16(void) = Call[~ClassWithDestructor] : func:r2234_15, this:r2234_14 -# 2234| mu2234_17(unknown) = ^CallSideEffect : ~m? -# 2234| v2234_18(void) = ^IndirectReadSideEffect[-1] : &:r2234_14, ~m? -# 2234| mu2234_19(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2234_14 +# 2232| Block 25 +# 2232| r2232_60(glval>) = VariableAddress[ys] : +# 2232| r2232_61(glval) = FunctionAddress[~vector] : +# 2232| v2232_62(void) = Call[~vector] : func:r2232_61, this:r2232_60 +# 2232| v2232_63(void) = ^IndirectReadSideEffect[-1] : &:r2232_60, ~m? +# 2232| mu2232_64(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2232_60 +# 2236| v2236_13(void) = NoOp : +# 2236| r2236_14(glval) = VariableAddress[x] : +# 2236| r2236_15(glval) = FunctionAddress[~ClassWithDestructor] : +# 2236| v2236_16(void) = Call[~ClassWithDestructor] : func:r2236_15, this:r2236_14 +# 2236| mu2236_17(unknown) = ^CallSideEffect : ~m? +# 2236| v2236_18(void) = ^IndirectReadSideEffect[-1] : &:r2236_14, ~m? +# 2236| mu2236_19(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2236_14 #-----| Goto -> Block 1 -# 2236| void static_variable_with_destructor_1() -# 2236| Block 0 -# 2236| v2236_1(void) = EnterFunction : -# 2236| mu2236_2(unknown) = AliasedDefinition : -# 2236| mu2236_3(unknown) = InitializeNonLocal : -# 2237| r2237_1(glval) = VariableAddress[a] : -# 2237| mu2237_2(ClassWithDestructor) = Uninitialized[a] : &:r2237_1 -# 2237| r2237_3(glval) = FunctionAddress[ClassWithDestructor] : -# 2237| v2237_4(void) = Call[ClassWithDestructor] : func:r2237_3, this:r2237_1 -# 2237| mu2237_5(unknown) = ^CallSideEffect : ~m? -# 2237| mu2237_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2237_1 -# 2238| r2238_1(glval) = VariableAddress[b#init] : -# 2238| r2238_2(bool) = Load[b#init] : &:r2238_1, ~m? -# 2238| v2238_3(void) = ConditionalBranch : r2238_2 +# 2238| void static_variable_with_destructor_1() +# 2238| Block 0 +# 2238| v2238_1(void) = EnterFunction : +# 2238| mu2238_2(unknown) = AliasedDefinition : +# 2238| mu2238_3(unknown) = InitializeNonLocal : +# 2239| r2239_1(glval) = VariableAddress[a] : +# 2239| mu2239_2(ClassWithDestructor) = Uninitialized[a] : &:r2239_1 +# 2239| r2239_3(glval) = FunctionAddress[ClassWithDestructor] : +# 2239| v2239_4(void) = Call[ClassWithDestructor] : func:r2239_3, this:r2239_1 +# 2239| mu2239_5(unknown) = ^CallSideEffect : ~m? +# 2239| mu2239_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2239_1 +# 2240| r2240_1(glval) = VariableAddress[b#init] : +# 2240| r2240_2(bool) = Load[b#init] : &:r2240_1, ~m? +# 2240| v2240_3(void) = ConditionalBranch : r2240_2 #-----| False -> Block 1 #-----| True -> Block 2 -# 2238| Block 1 -# 2238| r2238_4(glval) = VariableAddress[b] : +# 2240| Block 1 +# 2240| r2240_4(glval) = VariableAddress[b] : #-----| r0_1(glval) = FunctionAddress[ClassWithDestructor] : -#-----| v0_2(void) = Call[ClassWithDestructor] : func:r0_1, this:r2238_4 +#-----| v0_2(void) = Call[ClassWithDestructor] : func:r0_1, this:r2240_4 #-----| mu0_3(unknown) = ^CallSideEffect : ~m? -#-----| mu0_4(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2238_4 -# 2238| r2238_5(bool) = Constant[1] : -# 2238| mu2238_6(bool) = Store[b#init] : &:r2238_1, r2238_5 +#-----| mu0_4(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2240_4 +# 2240| r2240_5(bool) = Constant[1] : +# 2240| mu2240_6(bool) = Store[b#init] : &:r2240_1, r2240_5 #-----| Goto -> Block 2 -# 2239| Block 2 -# 2239| v2239_1(void) = NoOp : -# 2239| r2239_2(glval) = VariableAddress[a] : -# 2239| r2239_3(glval) = FunctionAddress[~ClassWithDestructor] : -# 2239| v2239_4(void) = Call[~ClassWithDestructor] : func:r2239_3, this:r2239_2 -# 2239| mu2239_5(unknown) = ^CallSideEffect : ~m? -# 2239| v2239_6(void) = ^IndirectReadSideEffect[-1] : &:r2239_2, ~m? -# 2239| mu2239_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2239_2 -# 2236| v2236_4(void) = ReturnVoid : -# 2236| v2236_5(void) = AliasedUse : ~m? -# 2236| v2236_6(void) = ExitFunction : - -# 2241| void static_variable_with_destructor_2() -# 2241| Block 0 -# 2241| v2241_1(void) = EnterFunction : -# 2241| mu2241_2(unknown) = AliasedDefinition : -# 2241| mu2241_3(unknown) = InitializeNonLocal : -# 2242| r2242_1(glval) = VariableAddress[a#init] : -# 2242| r2242_2(bool) = Load[a#init] : &:r2242_1, ~m? -# 2242| v2242_3(void) = ConditionalBranch : r2242_2 +# 2241| Block 2 +# 2241| v2241_1(void) = NoOp : +# 2241| r2241_2(glval) = VariableAddress[a] : +# 2241| r2241_3(glval) = FunctionAddress[~ClassWithDestructor] : +# 2241| v2241_4(void) = Call[~ClassWithDestructor] : func:r2241_3, this:r2241_2 +# 2241| mu2241_5(unknown) = ^CallSideEffect : ~m? +# 2241| v2241_6(void) = ^IndirectReadSideEffect[-1] : &:r2241_2, ~m? +# 2241| mu2241_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2241_2 +# 2238| v2238_4(void) = ReturnVoid : +# 2238| v2238_5(void) = AliasedUse : ~m? +# 2238| v2238_6(void) = ExitFunction : + +# 2243| void static_variable_with_destructor_2() +# 2243| Block 0 +# 2243| v2243_1(void) = EnterFunction : +# 2243| mu2243_2(unknown) = AliasedDefinition : +# 2243| mu2243_3(unknown) = InitializeNonLocal : +# 2244| r2244_1(glval) = VariableAddress[a#init] : +# 2244| r2244_2(bool) = Load[a#init] : &:r2244_1, ~m? +# 2244| v2244_3(void) = ConditionalBranch : r2244_2 #-----| False -> Block 1 #-----| True -> Block 2 -# 2242| Block 1 -# 2242| r2242_4(glval) = VariableAddress[a] : +# 2244| Block 1 +# 2244| r2244_4(glval) = VariableAddress[a] : #-----| r0_1(glval) = FunctionAddress[ClassWithDestructor] : -#-----| v0_2(void) = Call[ClassWithDestructor] : func:r0_1, this:r2242_4 +#-----| v0_2(void) = Call[ClassWithDestructor] : func:r0_1, this:r2244_4 #-----| mu0_3(unknown) = ^CallSideEffect : ~m? -#-----| mu0_4(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2242_4 -# 2242| r2242_5(bool) = Constant[1] : -# 2242| mu2242_6(bool) = Store[a#init] : &:r2242_1, r2242_5 +#-----| mu0_4(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2244_4 +# 2244| r2244_5(bool) = Constant[1] : +# 2244| mu2244_6(bool) = Store[a#init] : &:r2244_1, r2244_5 #-----| Goto -> Block 2 -# 2243| Block 2 -# 2243| r2243_1(glval) = VariableAddress[b] : -# 2243| mu2243_2(ClassWithDestructor) = Uninitialized[b] : &:r2243_1 -# 2243| r2243_3(glval) = FunctionAddress[ClassWithDestructor] : -# 2243| v2243_4(void) = Call[ClassWithDestructor] : func:r2243_3, this:r2243_1 -# 2243| mu2243_5(unknown) = ^CallSideEffect : ~m? -# 2243| mu2243_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2243_1 -# 2244| v2244_1(void) = NoOp : -# 2244| r2244_2(glval) = VariableAddress[b] : -# 2244| r2244_3(glval) = FunctionAddress[~ClassWithDestructor] : -# 2244| v2244_4(void) = Call[~ClassWithDestructor] : func:r2244_3, this:r2244_2 -# 2244| mu2244_5(unknown) = ^CallSideEffect : ~m? -# 2244| v2244_6(void) = ^IndirectReadSideEffect[-1] : &:r2244_2, ~m? -# 2244| mu2244_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2244_2 -# 2241| v2241_4(void) = ReturnVoid : -# 2241| v2241_5(void) = AliasedUse : ~m? -# 2241| v2241_6(void) = ExitFunction : - -# 2246| void static_variable_with_destructor_3() -# 2246| Block 0 -# 2246| v2246_1(void) = EnterFunction : -# 2246| mu2246_2(unknown) = AliasedDefinition : -# 2246| mu2246_3(unknown) = InitializeNonLocal : -# 2247| r2247_1(glval) = VariableAddress[a] : -# 2247| mu2247_2(ClassWithDestructor) = Uninitialized[a] : &:r2247_1 -# 2247| r2247_3(glval) = FunctionAddress[ClassWithDestructor] : -# 2247| v2247_4(void) = Call[ClassWithDestructor] : func:r2247_3, this:r2247_1 -# 2247| mu2247_5(unknown) = ^CallSideEffect : ~m? -# 2247| mu2247_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2247_1 -# 2248| r2248_1(glval) = VariableAddress[b] : -# 2248| mu2248_2(ClassWithDestructor) = Uninitialized[b] : &:r2248_1 -# 2248| r2248_3(glval) = FunctionAddress[ClassWithDestructor] : -# 2248| v2248_4(void) = Call[ClassWithDestructor] : func:r2248_3, this:r2248_1 -# 2248| mu2248_5(unknown) = ^CallSideEffect : ~m? -# 2248| mu2248_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2248_1 -# 2249| r2249_1(glval) = VariableAddress[c#init] : -# 2249| r2249_2(bool) = Load[c#init] : &:r2249_1, ~m? -# 2249| v2249_3(void) = ConditionalBranch : r2249_2 +# 2245| Block 2 +# 2245| r2245_1(glval) = VariableAddress[b] : +# 2245| mu2245_2(ClassWithDestructor) = Uninitialized[b] : &:r2245_1 +# 2245| r2245_3(glval) = FunctionAddress[ClassWithDestructor] : +# 2245| v2245_4(void) = Call[ClassWithDestructor] : func:r2245_3, this:r2245_1 +# 2245| mu2245_5(unknown) = ^CallSideEffect : ~m? +# 2245| mu2245_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2245_1 +# 2246| v2246_1(void) = NoOp : +# 2246| r2246_2(glval) = VariableAddress[b] : +# 2246| r2246_3(glval) = FunctionAddress[~ClassWithDestructor] : +# 2246| v2246_4(void) = Call[~ClassWithDestructor] : func:r2246_3, this:r2246_2 +# 2246| mu2246_5(unknown) = ^CallSideEffect : ~m? +# 2246| v2246_6(void) = ^IndirectReadSideEffect[-1] : &:r2246_2, ~m? +# 2246| mu2246_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2246_2 +# 2243| v2243_4(void) = ReturnVoid : +# 2243| v2243_5(void) = AliasedUse : ~m? +# 2243| v2243_6(void) = ExitFunction : + +# 2248| void static_variable_with_destructor_3() +# 2248| Block 0 +# 2248| v2248_1(void) = EnterFunction : +# 2248| mu2248_2(unknown) = AliasedDefinition : +# 2248| mu2248_3(unknown) = InitializeNonLocal : +# 2249| r2249_1(glval) = VariableAddress[a] : +# 2249| mu2249_2(ClassWithDestructor) = Uninitialized[a] : &:r2249_1 +# 2249| r2249_3(glval) = FunctionAddress[ClassWithDestructor] : +# 2249| v2249_4(void) = Call[ClassWithDestructor] : func:r2249_3, this:r2249_1 +# 2249| mu2249_5(unknown) = ^CallSideEffect : ~m? +# 2249| mu2249_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2249_1 +# 2250| r2250_1(glval) = VariableAddress[b] : +# 2250| mu2250_2(ClassWithDestructor) = Uninitialized[b] : &:r2250_1 +# 2250| r2250_3(glval) = FunctionAddress[ClassWithDestructor] : +# 2250| v2250_4(void) = Call[ClassWithDestructor] : func:r2250_3, this:r2250_1 +# 2250| mu2250_5(unknown) = ^CallSideEffect : ~m? +# 2250| mu2250_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2250_1 +# 2251| r2251_1(glval) = VariableAddress[c#init] : +# 2251| r2251_2(bool) = Load[c#init] : &:r2251_1, ~m? +# 2251| v2251_3(void) = ConditionalBranch : r2251_2 #-----| False -> Block 1 #-----| True -> Block 2 -# 2249| Block 1 -# 2249| r2249_4(glval) = VariableAddress[c] : +# 2251| Block 1 +# 2251| r2251_4(glval) = VariableAddress[c] : #-----| r0_1(glval) = FunctionAddress[ClassWithDestructor] : -#-----| v0_2(void) = Call[ClassWithDestructor] : func:r0_1, this:r2249_4 +#-----| v0_2(void) = Call[ClassWithDestructor] : func:r0_1, this:r2251_4 #-----| mu0_3(unknown) = ^CallSideEffect : ~m? -#-----| mu0_4(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2249_4 -# 2249| r2249_5(bool) = Constant[1] : -# 2249| mu2249_6(bool) = Store[c#init] : &:r2249_1, r2249_5 +#-----| mu0_4(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2251_4 +# 2251| r2251_5(bool) = Constant[1] : +# 2251| mu2251_6(bool) = Store[c#init] : &:r2251_1, r2251_5 #-----| Goto -> Block 2 -# 2250| Block 2 -# 2250| v2250_1(void) = NoOp : -# 2250| r2250_2(glval) = VariableAddress[b] : -# 2250| r2250_3(glval) = FunctionAddress[~ClassWithDestructor] : -# 2250| v2250_4(void) = Call[~ClassWithDestructor] : func:r2250_3, this:r2250_2 -# 2250| mu2250_5(unknown) = ^CallSideEffect : ~m? -# 2250| v2250_6(void) = ^IndirectReadSideEffect[-1] : &:r2250_2, ~m? -# 2250| mu2250_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2250_2 -# 2250| r2250_8(glval) = VariableAddress[a] : -# 2250| r2250_9(glval) = FunctionAddress[~ClassWithDestructor] : -# 2250| v2250_10(void) = Call[~ClassWithDestructor] : func:r2250_9, this:r2250_8 -# 2250| mu2250_11(unknown) = ^CallSideEffect : ~m? -# 2250| v2250_12(void) = ^IndirectReadSideEffect[-1] : &:r2250_8, ~m? -# 2250| mu2250_13(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2250_8 -# 2246| v2246_4(void) = ReturnVoid : -# 2246| v2246_5(void) = AliasedUse : ~m? -# 2246| v2246_6(void) = ExitFunction : - -# 2252| ClassWithDestructor global_class_with_destructor -# 2252| Block 0 -# 2252| v2252_1(void) = EnterFunction : -# 2252| mu2252_2(unknown) = AliasedDefinition : -# 2252| r2252_3(glval) = VariableAddress[global_class_with_destructor] : -# 2252| r2252_4(glval) = FunctionAddress[ClassWithDestructor] : -# 2252| v2252_5(void) = Call[ClassWithDestructor] : func:r2252_4, this:r2252_3 -# 2252| mu2252_6(unknown) = ^CallSideEffect : ~m? -# 2252| mu2252_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2252_3 -# 2252| v2252_8(void) = ReturnVoid : -# 2252| v2252_9(void) = AliasedUse : ~m? -# 2252| v2252_10(void) = ExitFunction : - -# 2256| ClassWithDestructor& vacuous_destructor_call::get(ClassWithDestructor&) -# 2256| Block 0 -# 2256| v2256_1(void) = EnterFunction : -# 2256| mu2256_2(unknown) = AliasedDefinition : -# 2256| mu2256_3(unknown) = InitializeNonLocal : -# 2256| r2256_4(glval) = VariableAddress[t] : -# 2256| mu2256_5(ClassWithDestructor &) = InitializeParameter[t] : &:r2256_4 -# 2256| r2256_6(ClassWithDestructor &) = Load[t] : &:r2256_4, ~m? -# 2256| mu2256_7(unknown) = InitializeIndirection[t] : &:r2256_6 -# 2256| r2256_8(glval) = VariableAddress[#return] : -# 2256| r2256_9(glval) = VariableAddress[t] : -# 2256| r2256_10(ClassWithDestructor &) = Load[t] : &:r2256_9, ~m? -# 2256| r2256_11(glval) = CopyValue : r2256_10 -# 2256| r2256_12(ClassWithDestructor &) = CopyValue : r2256_11 -# 2256| mu2256_13(ClassWithDestructor &) = Store[#return] : &:r2256_8, r2256_12 -# 2256| v2256_14(void) = ReturnIndirection[t] : &:r2256_6, ~m? -# 2256| r2256_15(glval) = VariableAddress[#return] : -# 2256| v2256_16(void) = ReturnValue : &:r2256_15, ~m? -# 2256| v2256_17(void) = AliasedUse : ~m? -# 2256| v2256_18(void) = ExitFunction : - -# 2256| int& vacuous_destructor_call::get(int&) -# 2256| Block 0 -# 2256| v2256_1(void) = EnterFunction : -# 2256| mu2256_2(unknown) = AliasedDefinition : -# 2256| mu2256_3(unknown) = InitializeNonLocal : -# 2256| r2256_4(glval) = VariableAddress[t] : -# 2256| mu2256_5(int &) = InitializeParameter[t] : &:r2256_4 -# 2256| r2256_6(int &) = Load[t] : &:r2256_4, ~m? -# 2256| mu2256_7(unknown) = InitializeIndirection[t] : &:r2256_6 -# 2256| r2256_8(glval) = VariableAddress[#return] : -# 2256| r2256_9(glval) = VariableAddress[t] : -# 2256| r2256_10(int &) = Load[t] : &:r2256_9, ~m? -# 2256| r2256_11(glval) = CopyValue : r2256_10 -# 2256| r2256_12(int &) = CopyValue : r2256_11 -# 2256| mu2256_13(int &) = Store[#return] : &:r2256_8, r2256_12 -# 2256| v2256_14(void) = ReturnIndirection[t] : &:r2256_6, ~m? -# 2256| r2256_15(glval) = VariableAddress[#return] : -# 2256| v2256_16(void) = ReturnValue : &:r2256_15, ~m? -# 2256| v2256_17(void) = AliasedUse : ~m? -# 2256| v2256_18(void) = ExitFunction : - -# 2259| void vacuous_destructor_call::call_destructor(ClassWithDestructor&) -# 2259| Block 0 -# 2259| v2259_1(void) = EnterFunction : -# 2259| mu2259_2(unknown) = AliasedDefinition : -# 2259| mu2259_3(unknown) = InitializeNonLocal : -# 2259| r2259_4(glval) = VariableAddress[t] : -# 2259| mu2259_5(ClassWithDestructor &) = InitializeParameter[t] : &:r2259_4 -# 2259| r2259_6(ClassWithDestructor &) = Load[t] : &:r2259_4, ~m? -# 2259| mu2259_7(unknown) = InitializeIndirection[t] : &:r2259_6 -# 2260| r2260_1(glval) = FunctionAddress[get] : -# 2260| r2260_2(glval) = VariableAddress[t] : -# 2260| r2260_3(ClassWithDestructor &) = Load[t] : &:r2260_2, ~m? -# 2260| r2260_4(glval) = CopyValue : r2260_3 -# 2260| r2260_5(ClassWithDestructor &) = CopyValue : r2260_4 -# 2260| r2260_6(ClassWithDestructor &) = Call[get] : func:r2260_1, 0:r2260_5 -# 2260| mu2260_7(unknown) = ^CallSideEffect : ~m? -# 2260| v2260_8(void) = ^BufferReadSideEffect[0] : &:r2260_5, ~m? -# 2260| mu2260_9(unknown) = ^BufferMayWriteSideEffect[0] : &:r2260_5 -# 2260| r2260_10(glval) = CopyValue : r2260_6 -# 2260| r2260_11(glval) = FunctionAddress[~ClassWithDestructor] : -# 2260| v2260_12(void) = Call[~ClassWithDestructor] : func:r2260_11 -# 2260| mu2260_13(unknown) = ^CallSideEffect : ~m? -# 2260| v2260_14(void) = ^IndirectReadSideEffect[-1] : &:r2260_10, ~m? -# 2260| mu2260_15(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2260_10 -# 2261| v2261_1(void) = NoOp : -# 2259| v2259_8(void) = ReturnIndirection[t] : &:r2259_6, ~m? -# 2259| v2259_9(void) = ReturnVoid : -# 2259| v2259_10(void) = AliasedUse : ~m? -# 2259| v2259_11(void) = ExitFunction : - -# 2259| void vacuous_destructor_call::call_destructor(int&) -# 2259| Block 0 -# 2259| v2259_1(void) = EnterFunction : -# 2259| mu2259_2(unknown) = AliasedDefinition : -# 2259| mu2259_3(unknown) = InitializeNonLocal : -# 2259| r2259_4(glval) = VariableAddress[t] : -# 2259| mu2259_5(int &) = InitializeParameter[t] : &:r2259_4 -# 2259| r2259_6(int &) = Load[t] : &:r2259_4, ~m? -# 2259| mu2259_7(unknown) = InitializeIndirection[t] : &:r2259_6 -# 2260| r2260_1(glval) = FunctionAddress[get] : -# 2260| r2260_2(glval) = VariableAddress[t] : -# 2260| r2260_3(int &) = Load[t] : &:r2260_2, ~m? -# 2260| r2260_4(glval) = CopyValue : r2260_3 -# 2260| r2260_5(int &) = CopyValue : r2260_4 -# 2260| r2260_6(int &) = Call[get] : func:r2260_1, 0:r2260_5 -# 2260| mu2260_7(unknown) = ^CallSideEffect : ~m? -# 2260| v2260_8(void) = ^BufferReadSideEffect[0] : &:r2260_5, ~m? -# 2260| mu2260_9(unknown) = ^BufferMayWriteSideEffect[0] : &:r2260_5 -# 2260| r2260_10(glval) = CopyValue : r2260_6 -# 2261| v2261_1(void) = NoOp : -# 2259| v2259_8(void) = ReturnIndirection[t] : &:r2259_6, ~m? -# 2259| v2259_9(void) = ReturnVoid : -# 2259| v2259_10(void) = AliasedUse : ~m? -# 2259| v2259_11(void) = ExitFunction : - -# 2263| void vacuous_destructor_call::non_vacuous_destructor_call() -# 2263| Block 0 -# 2263| v2263_1(void) = EnterFunction : -# 2263| mu2263_2(unknown) = AliasedDefinition : -# 2263| mu2263_3(unknown) = InitializeNonLocal : -# 2264| r2264_1(glval) = VariableAddress[c] : -# 2264| mu2264_2(ClassWithDestructor) = Uninitialized[c] : &:r2264_1 -# 2264| r2264_3(glval) = FunctionAddress[ClassWithDestructor] : -# 2264| v2264_4(void) = Call[ClassWithDestructor] : func:r2264_3, this:r2264_1 -# 2264| mu2264_5(unknown) = ^CallSideEffect : ~m? -# 2264| mu2264_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2264_1 -# 2265| r2265_1(glval) = FunctionAddress[call_destructor] : -# 2265| r2265_2(glval) = VariableAddress[c] : -# 2265| r2265_3(ClassWithDestructor &) = CopyValue : r2265_2 -# 2265| v2265_4(void) = Call[call_destructor] : func:r2265_1, 0:r2265_3 -# 2265| mu2265_5(unknown) = ^CallSideEffect : ~m? -# 2265| v2265_6(void) = ^BufferReadSideEffect[0] : &:r2265_3, ~m? -# 2265| mu2265_7(unknown) = ^BufferMayWriteSideEffect[0] : &:r2265_3 -# 2266| v2266_1(void) = NoOp : -# 2266| r2266_2(glval) = VariableAddress[c] : -# 2266| r2266_3(glval) = FunctionAddress[~ClassWithDestructor] : -# 2266| v2266_4(void) = Call[~ClassWithDestructor] : func:r2266_3, this:r2266_2 +# 2252| Block 2 +# 2252| v2252_1(void) = NoOp : +# 2252| r2252_2(glval) = VariableAddress[b] : +# 2252| r2252_3(glval) = FunctionAddress[~ClassWithDestructor] : +# 2252| v2252_4(void) = Call[~ClassWithDestructor] : func:r2252_3, this:r2252_2 +# 2252| mu2252_5(unknown) = ^CallSideEffect : ~m? +# 2252| v2252_6(void) = ^IndirectReadSideEffect[-1] : &:r2252_2, ~m? +# 2252| mu2252_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2252_2 +# 2252| r2252_8(glval) = VariableAddress[a] : +# 2252| r2252_9(glval) = FunctionAddress[~ClassWithDestructor] : +# 2252| v2252_10(void) = Call[~ClassWithDestructor] : func:r2252_9, this:r2252_8 +# 2252| mu2252_11(unknown) = ^CallSideEffect : ~m? +# 2252| v2252_12(void) = ^IndirectReadSideEffect[-1] : &:r2252_8, ~m? +# 2252| mu2252_13(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2252_8 +# 2248| v2248_4(void) = ReturnVoid : +# 2248| v2248_5(void) = AliasedUse : ~m? +# 2248| v2248_6(void) = ExitFunction : + +# 2254| ClassWithDestructor global_class_with_destructor +# 2254| Block 0 +# 2254| v2254_1(void) = EnterFunction : +# 2254| mu2254_2(unknown) = AliasedDefinition : +# 2254| r2254_3(glval) = VariableAddress[global_class_with_destructor] : +# 2254| r2254_4(glval) = FunctionAddress[ClassWithDestructor] : +# 2254| v2254_5(void) = Call[ClassWithDestructor] : func:r2254_4, this:r2254_3 +# 2254| mu2254_6(unknown) = ^CallSideEffect : ~m? +# 2254| mu2254_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2254_3 +# 2254| v2254_8(void) = ReturnVoid : +# 2254| v2254_9(void) = AliasedUse : ~m? +# 2254| v2254_10(void) = ExitFunction : + +# 2258| ClassWithDestructor& vacuous_destructor_call::get(ClassWithDestructor&) +# 2258| Block 0 +# 2258| v2258_1(void) = EnterFunction : +# 2258| mu2258_2(unknown) = AliasedDefinition : +# 2258| mu2258_3(unknown) = InitializeNonLocal : +# 2258| r2258_4(glval) = VariableAddress[t] : +# 2258| mu2258_5(ClassWithDestructor &) = InitializeParameter[t] : &:r2258_4 +# 2258| r2258_6(ClassWithDestructor &) = Load[t] : &:r2258_4, ~m? +# 2258| mu2258_7(unknown) = InitializeIndirection[t] : &:r2258_6 +# 2258| r2258_8(glval) = VariableAddress[#return] : +# 2258| r2258_9(glval) = VariableAddress[t] : +# 2258| r2258_10(ClassWithDestructor &) = Load[t] : &:r2258_9, ~m? +# 2258| r2258_11(glval) = CopyValue : r2258_10 +# 2258| r2258_12(ClassWithDestructor &) = CopyValue : r2258_11 +# 2258| mu2258_13(ClassWithDestructor &) = Store[#return] : &:r2258_8, r2258_12 +# 2258| v2258_14(void) = ReturnIndirection[t] : &:r2258_6, ~m? +# 2258| r2258_15(glval) = VariableAddress[#return] : +# 2258| v2258_16(void) = ReturnValue : &:r2258_15, ~m? +# 2258| v2258_17(void) = AliasedUse : ~m? +# 2258| v2258_18(void) = ExitFunction : + +# 2258| int& vacuous_destructor_call::get(int&) +# 2258| Block 0 +# 2258| v2258_1(void) = EnterFunction : +# 2258| mu2258_2(unknown) = AliasedDefinition : +# 2258| mu2258_3(unknown) = InitializeNonLocal : +# 2258| r2258_4(glval) = VariableAddress[t] : +# 2258| mu2258_5(int &) = InitializeParameter[t] : &:r2258_4 +# 2258| r2258_6(int &) = Load[t] : &:r2258_4, ~m? +# 2258| mu2258_7(unknown) = InitializeIndirection[t] : &:r2258_6 +# 2258| r2258_8(glval) = VariableAddress[#return] : +# 2258| r2258_9(glval) = VariableAddress[t] : +# 2258| r2258_10(int &) = Load[t] : &:r2258_9, ~m? +# 2258| r2258_11(glval) = CopyValue : r2258_10 +# 2258| r2258_12(int &) = CopyValue : r2258_11 +# 2258| mu2258_13(int &) = Store[#return] : &:r2258_8, r2258_12 +# 2258| v2258_14(void) = ReturnIndirection[t] : &:r2258_6, ~m? +# 2258| r2258_15(glval) = VariableAddress[#return] : +# 2258| v2258_16(void) = ReturnValue : &:r2258_15, ~m? +# 2258| v2258_17(void) = AliasedUse : ~m? +# 2258| v2258_18(void) = ExitFunction : + +# 2261| void vacuous_destructor_call::call_destructor(ClassWithDestructor&) +# 2261| Block 0 +# 2261| v2261_1(void) = EnterFunction : +# 2261| mu2261_2(unknown) = AliasedDefinition : +# 2261| mu2261_3(unknown) = InitializeNonLocal : +# 2261| r2261_4(glval) = VariableAddress[t] : +# 2261| mu2261_5(ClassWithDestructor &) = InitializeParameter[t] : &:r2261_4 +# 2261| r2261_6(ClassWithDestructor &) = Load[t] : &:r2261_4, ~m? +# 2261| mu2261_7(unknown) = InitializeIndirection[t] : &:r2261_6 +# 2262| r2262_1(glval) = FunctionAddress[get] : +# 2262| r2262_2(glval) = VariableAddress[t] : +# 2262| r2262_3(ClassWithDestructor &) = Load[t] : &:r2262_2, ~m? +# 2262| r2262_4(glval) = CopyValue : r2262_3 +# 2262| r2262_5(ClassWithDestructor &) = CopyValue : r2262_4 +# 2262| r2262_6(ClassWithDestructor &) = Call[get] : func:r2262_1, 0:r2262_5 +# 2262| mu2262_7(unknown) = ^CallSideEffect : ~m? +# 2262| v2262_8(void) = ^BufferReadSideEffect[0] : &:r2262_5, ~m? +# 2262| mu2262_9(unknown) = ^BufferMayWriteSideEffect[0] : &:r2262_5 +# 2262| r2262_10(glval) = CopyValue : r2262_6 +# 2262| r2262_11(glval) = FunctionAddress[~ClassWithDestructor] : +# 2262| v2262_12(void) = Call[~ClassWithDestructor] : func:r2262_11 +# 2262| mu2262_13(unknown) = ^CallSideEffect : ~m? +# 2262| v2262_14(void) = ^IndirectReadSideEffect[-1] : &:r2262_10, ~m? +# 2262| mu2262_15(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2262_10 +# 2263| v2263_1(void) = NoOp : +# 2261| v2261_8(void) = ReturnIndirection[t] : &:r2261_6, ~m? +# 2261| v2261_9(void) = ReturnVoid : +# 2261| v2261_10(void) = AliasedUse : ~m? +# 2261| v2261_11(void) = ExitFunction : + +# 2261| void vacuous_destructor_call::call_destructor(int&) +# 2261| Block 0 +# 2261| v2261_1(void) = EnterFunction : +# 2261| mu2261_2(unknown) = AliasedDefinition : +# 2261| mu2261_3(unknown) = InitializeNonLocal : +# 2261| r2261_4(glval) = VariableAddress[t] : +# 2261| mu2261_5(int &) = InitializeParameter[t] : &:r2261_4 +# 2261| r2261_6(int &) = Load[t] : &:r2261_4, ~m? +# 2261| mu2261_7(unknown) = InitializeIndirection[t] : &:r2261_6 +# 2262| r2262_1(glval) = FunctionAddress[get] : +# 2262| r2262_2(glval) = VariableAddress[t] : +# 2262| r2262_3(int &) = Load[t] : &:r2262_2, ~m? +# 2262| r2262_4(glval) = CopyValue : r2262_3 +# 2262| r2262_5(int &) = CopyValue : r2262_4 +# 2262| r2262_6(int &) = Call[get] : func:r2262_1, 0:r2262_5 +# 2262| mu2262_7(unknown) = ^CallSideEffect : ~m? +# 2262| v2262_8(void) = ^BufferReadSideEffect[0] : &:r2262_5, ~m? +# 2262| mu2262_9(unknown) = ^BufferMayWriteSideEffect[0] : &:r2262_5 +# 2262| r2262_10(glval) = CopyValue : r2262_6 +# 2263| v2263_1(void) = NoOp : +# 2261| v2261_8(void) = ReturnIndirection[t] : &:r2261_6, ~m? +# 2261| v2261_9(void) = ReturnVoid : +# 2261| v2261_10(void) = AliasedUse : ~m? +# 2261| v2261_11(void) = ExitFunction : + +# 2265| void vacuous_destructor_call::non_vacuous_destructor_call() +# 2265| Block 0 +# 2265| v2265_1(void) = EnterFunction : +# 2265| mu2265_2(unknown) = AliasedDefinition : +# 2265| mu2265_3(unknown) = InitializeNonLocal : +# 2266| r2266_1(glval) = VariableAddress[c] : +# 2266| mu2266_2(ClassWithDestructor) = Uninitialized[c] : &:r2266_1 +# 2266| r2266_3(glval) = FunctionAddress[ClassWithDestructor] : +# 2266| v2266_4(void) = Call[ClassWithDestructor] : func:r2266_3, this:r2266_1 # 2266| mu2266_5(unknown) = ^CallSideEffect : ~m? -# 2266| v2266_6(void) = ^IndirectReadSideEffect[-1] : &:r2266_2, ~m? -# 2266| mu2266_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2266_2 -# 2263| v2263_4(void) = ReturnVoid : -# 2263| v2263_5(void) = AliasedUse : ~m? -# 2263| v2263_6(void) = ExitFunction : - -# 2268| void vacuous_destructor_call::vacuous_destructor_call() -# 2268| Block 0 -# 2268| v2268_1(void) = EnterFunction : -# 2268| mu2268_2(unknown) = AliasedDefinition : -# 2268| mu2268_3(unknown) = InitializeNonLocal : -# 2269| r2269_1(glval) = VariableAddress[i] : -# 2269| mu2269_2(int) = Uninitialized[i] : &:r2269_1 -# 2270| r2270_1(glval) = FunctionAddress[call_destructor] : -# 2270| r2270_2(glval) = VariableAddress[i] : -# 2270| r2270_3(int &) = CopyValue : r2270_2 -# 2270| v2270_4(void) = Call[call_destructor] : func:r2270_1, 0:r2270_3 -# 2270| mu2270_5(unknown) = ^CallSideEffect : ~m? -# 2270| v2270_6(void) = ^BufferReadSideEffect[0] : &:r2270_3, ~m? -# 2270| mu2270_7(unknown) = ^BufferMayWriteSideEffect[0] : &:r2270_3 -# 2271| v2271_1(void) = NoOp : -# 2268| v2268_4(void) = ReturnVoid : -# 2268| v2268_5(void) = AliasedUse : ~m? -# 2268| v2268_6(void) = ExitFunction : - -# 2274| void TryCatchDestructors(bool) -# 2274| Block 0 -# 2274| v2274_1(void) = EnterFunction : -# 2274| mu2274_2(unknown) = AliasedDefinition : -# 2274| mu2274_3(unknown) = InitializeNonLocal : -# 2274| r2274_4(glval) = VariableAddress[b] : -# 2274| mu2274_5(bool) = InitializeParameter[b] : &:r2274_4 -# 2276| r2276_1(glval) = VariableAddress[s] : -# 2276| mu2276_2(String) = Uninitialized[s] : &:r2276_1 -# 2276| r2276_3(glval) = FunctionAddress[String] : -# 2276| v2276_4(void) = Call[String] : func:r2276_3, this:r2276_1 -# 2276| mu2276_5(unknown) = ^CallSideEffect : ~m? -# 2276| mu2276_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2276_1 +# 2266| mu2266_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2266_1 +# 2267| r2267_1(glval) = FunctionAddress[call_destructor] : +# 2267| r2267_2(glval) = VariableAddress[c] : +# 2267| r2267_3(ClassWithDestructor &) = CopyValue : r2267_2 +# 2267| v2267_4(void) = Call[call_destructor] : func:r2267_1, 0:r2267_3 +# 2267| mu2267_5(unknown) = ^CallSideEffect : ~m? +# 2267| v2267_6(void) = ^BufferReadSideEffect[0] : &:r2267_3, ~m? +# 2267| mu2267_7(unknown) = ^BufferMayWriteSideEffect[0] : &:r2267_3 +# 2268| v2268_1(void) = NoOp : +# 2268| r2268_2(glval) = VariableAddress[c] : +# 2268| r2268_3(glval) = FunctionAddress[~ClassWithDestructor] : +# 2268| v2268_4(void) = Call[~ClassWithDestructor] : func:r2268_3, this:r2268_2 +# 2268| mu2268_5(unknown) = ^CallSideEffect : ~m? +# 2268| v2268_6(void) = ^IndirectReadSideEffect[-1] : &:r2268_2, ~m? +# 2268| mu2268_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2268_2 +# 2265| v2265_4(void) = ReturnVoid : +# 2265| v2265_5(void) = AliasedUse : ~m? +# 2265| v2265_6(void) = ExitFunction : + +# 2270| void vacuous_destructor_call::vacuous_destructor_call() +# 2270| Block 0 +# 2270| v2270_1(void) = EnterFunction : +# 2270| mu2270_2(unknown) = AliasedDefinition : +# 2270| mu2270_3(unknown) = InitializeNonLocal : +# 2271| r2271_1(glval) = VariableAddress[i] : +# 2271| mu2271_2(int) = Uninitialized[i] : &:r2271_1 +# 2272| r2272_1(glval) = FunctionAddress[call_destructor] : +# 2272| r2272_2(glval) = VariableAddress[i] : +# 2272| r2272_3(int &) = CopyValue : r2272_2 +# 2272| v2272_4(void) = Call[call_destructor] : func:r2272_1, 0:r2272_3 +# 2272| mu2272_5(unknown) = ^CallSideEffect : ~m? +# 2272| v2272_6(void) = ^BufferReadSideEffect[0] : &:r2272_3, ~m? +# 2272| mu2272_7(unknown) = ^BufferMayWriteSideEffect[0] : &:r2272_3 +# 2273| v2273_1(void) = NoOp : +# 2270| v2270_4(void) = ReturnVoid : +# 2270| v2270_5(void) = AliasedUse : ~m? +# 2270| v2270_6(void) = ExitFunction : + +# 2276| void TryCatchDestructors(bool) +# 2276| Block 0 +# 2276| v2276_1(void) = EnterFunction : +# 2276| mu2276_2(unknown) = AliasedDefinition : +# 2276| mu2276_3(unknown) = InitializeNonLocal : +# 2276| r2276_4(glval) = VariableAddress[b] : +# 2276| mu2276_5(bool) = InitializeParameter[b] : &:r2276_4 +# 2278| r2278_1(glval) = VariableAddress[s] : +# 2278| mu2278_2(String) = Uninitialized[s] : &:r2278_1 +# 2278| r2278_3(glval) = FunctionAddress[String] : +# 2278| v2278_4(void) = Call[String] : func:r2278_3, this:r2278_1 +# 2278| mu2278_5(unknown) = ^CallSideEffect : ~m? +# 2278| mu2278_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2278_1 #-----| C++ Exception -> Block 7 #-----| Goto -> Block 3 -# 2274| Block 1 -# 2274| v2274_6(void) = AliasedUse : ~m? -# 2274| v2274_7(void) = ExitFunction : +# 2276| Block 1 +# 2276| v2276_6(void) = AliasedUse : ~m? +# 2276| v2276_7(void) = ExitFunction : -# 2274| Block 2 -# 2274| v2274_8(void) = Unwind : +# 2276| Block 2 +# 2276| v2276_8(void) = Unwind : #-----| Goto -> Block 1 -# 2277| Block 3 -# 2277| r2277_1(glval) = VariableAddress[b] : -# 2277| r2277_2(bool) = Load[b] : &:r2277_1, ~m? -# 2277| v2277_3(void) = ConditionalBranch : r2277_2 +# 2279| Block 3 +# 2279| r2279_1(glval) = VariableAddress[b] : +# 2279| r2279_2(bool) = Load[b] : &:r2279_1, ~m? +# 2279| v2279_3(void) = ConditionalBranch : r2279_2 #-----| False -> Block 5 #-----| True -> Block 4 -# 2278| Block 4 -# 2278| r2278_1(glval) = VariableAddress[#throw2278:7] : -# 2278| r2278_2(glval) = StringConstant["string literal"] : -# 2278| r2278_3(char *) = Convert : r2278_2 -# 2278| mu2278_4(char *) = Store[#throw2278:7] : &:r2278_1, r2278_3 -# 2278| v2278_5(void) = ThrowValue : &:r2278_1, ~m? -# 2281| r2281_1(glval) = VariableAddress[s] : -# 2281| r2281_2(glval) = FunctionAddress[~String] : -# 2281| v2281_3(void) = Call[~String] : func:r2281_2, this:r2281_1 -# 2281| mu2281_4(unknown) = ^CallSideEffect : ~m? -# 2281| v2281_5(void) = ^IndirectReadSideEffect[-1] : &:r2281_1, ~m? -# 2281| mu2281_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2281_1 +# 2280| Block 4 +# 2280| r2280_1(glval) = VariableAddress[#throw2280:7] : +# 2280| r2280_2(glval) = StringConstant["string literal"] : +# 2280| r2280_3(char *) = Convert : r2280_2 +# 2280| mu2280_4(char *) = Store[#throw2280:7] : &:r2280_1, r2280_3 +# 2280| v2280_5(void) = ThrowValue : &:r2280_1, ~m? +# 2283| r2283_1(glval) = VariableAddress[s] : +# 2283| r2283_2(glval) = FunctionAddress[~String] : +# 2283| v2283_3(void) = Call[~String] : func:r2283_2, this:r2283_1 +# 2283| mu2283_4(unknown) = ^CallSideEffect : ~m? +# 2283| v2283_5(void) = ^IndirectReadSideEffect[-1] : &:r2283_1, ~m? +# 2283| mu2283_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2283_1 #-----| C++ Exception -> Block 7 -# 2280| Block 5 -# 2280| r2280_1(glval) = VariableAddress[s2] : -# 2280| mu2280_2(String) = Uninitialized[s2] : &:r2280_1 -# 2280| r2280_3(glval) = FunctionAddress[String] : -# 2280| v2280_4(void) = Call[String] : func:r2280_3, this:r2280_1 -# 2280| mu2280_5(unknown) = ^CallSideEffect : ~m? -# 2280| mu2280_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2280_1 +# 2282| Block 5 +# 2282| r2282_1(glval) = VariableAddress[s2] : +# 2282| mu2282_2(String) = Uninitialized[s2] : &:r2282_1 +# 2282| r2282_3(glval) = FunctionAddress[String] : +# 2282| v2282_4(void) = Call[String] : func:r2282_3, this:r2282_1 +# 2282| mu2282_5(unknown) = ^CallSideEffect : ~m? +# 2282| mu2282_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2282_1 #-----| C++ Exception -> Block 7 #-----| Goto -> Block 6 -# 2281| Block 6 -# 2281| r2281_7(glval) = VariableAddress[s2] : -# 2281| r2281_8(glval) = FunctionAddress[~String] : -# 2281| v2281_9(void) = Call[~String] : func:r2281_8, this:r2281_7 -# 2281| mu2281_10(unknown) = ^CallSideEffect : ~m? -# 2281| v2281_11(void) = ^IndirectReadSideEffect[-1] : &:r2281_7, ~m? -# 2281| mu2281_12(String) = ^IndirectMayWriteSideEffect[-1] : &:r2281_7 -# 2281| r2281_13(glval) = VariableAddress[s] : -# 2281| r2281_14(glval) = FunctionAddress[~String] : -# 2281| v2281_15(void) = Call[~String] : func:r2281_14, this:r2281_13 -# 2281| mu2281_16(unknown) = ^CallSideEffect : ~m? -# 2281| v2281_17(void) = ^IndirectReadSideEffect[-1] : &:r2281_13, ~m? -# 2281| mu2281_18(String) = ^IndirectMayWriteSideEffect[-1] : &:r2281_13 +# 2283| Block 6 +# 2283| r2283_7(glval) = VariableAddress[s2] : +# 2283| r2283_8(glval) = FunctionAddress[~String] : +# 2283| v2283_9(void) = Call[~String] : func:r2283_8, this:r2283_7 +# 2283| mu2283_10(unknown) = ^CallSideEffect : ~m? +# 2283| v2283_11(void) = ^IndirectReadSideEffect[-1] : &:r2283_7, ~m? +# 2283| mu2283_12(String) = ^IndirectMayWriteSideEffect[-1] : &:r2283_7 +# 2283| r2283_13(glval) = VariableAddress[s] : +# 2283| r2283_14(glval) = FunctionAddress[~String] : +# 2283| v2283_15(void) = Call[~String] : func:r2283_14, this:r2283_13 +# 2283| mu2283_16(unknown) = ^CallSideEffect : ~m? +# 2283| v2283_17(void) = ^IndirectReadSideEffect[-1] : &:r2283_13, ~m? +# 2283| mu2283_18(String) = ^IndirectMayWriteSideEffect[-1] : &:r2283_13 #-----| Goto -> Block 12 -# 2282| Block 7 -# 2282| v2282_1(void) = CatchByType[const char *] : +# 2284| Block 7 +# 2284| v2284_1(void) = CatchByType[const char *] : #-----| C++ Exception -> Block 9 #-----| Goto -> Block 8 -# 2282| Block 8 -# 2282| r2282_2(glval) = VariableAddress[s] : -# 2282| mu2282_3(char *) = InitializeParameter[s] : &:r2282_2 -# 2282| r2282_4(char *) = Load[s] : &:r2282_2, ~m? -# 2282| mu2282_5(unknown) = InitializeIndirection[s] : &:r2282_4 -# 2283| r2283_1(glval) = VariableAddress[#throw2283:5] : -# 2283| mu2283_2(String) = Uninitialized[#throw2283:5] : &:r2283_1 -# 2283| r2283_3(glval) = FunctionAddress[String] : -# 2283| r2283_4(glval) = VariableAddress[s] : -# 2283| r2283_5(char *) = Load[s] : &:r2283_4, ~m? -# 2283| v2283_6(void) = Call[String] : func:r2283_3, this:r2283_1, 0:r2283_5 -# 2283| mu2283_7(unknown) = ^CallSideEffect : ~m? -# 2283| v2283_8(void) = ^BufferReadSideEffect[0] : &:r2283_5, ~m? -# 2283| mu2283_9(String) = ^IndirectMayWriteSideEffect[-1] : &:r2283_1 -# 2283| v2283_10(void) = ThrowValue : &:r2283_1, ~m? +# 2284| Block 8 +# 2284| r2284_2(glval) = VariableAddress[s] : +# 2284| mu2284_3(char *) = InitializeParameter[s] : &:r2284_2 +# 2284| r2284_4(char *) = Load[s] : &:r2284_2, ~m? +# 2284| mu2284_5(unknown) = InitializeIndirection[s] : &:r2284_4 +# 2285| r2285_1(glval) = VariableAddress[#throw2285:5] : +# 2285| mu2285_2(String) = Uninitialized[#throw2285:5] : &:r2285_1 +# 2285| r2285_3(glval) = FunctionAddress[String] : +# 2285| r2285_4(glval) = VariableAddress[s] : +# 2285| r2285_5(char *) = Load[s] : &:r2285_4, ~m? +# 2285| v2285_6(void) = Call[String] : func:r2285_3, this:r2285_1, 0:r2285_5 +# 2285| mu2285_7(unknown) = ^CallSideEffect : ~m? +# 2285| v2285_8(void) = ^BufferReadSideEffect[0] : &:r2285_5, ~m? +# 2285| mu2285_9(String) = ^IndirectMayWriteSideEffect[-1] : &:r2285_1 +# 2285| v2285_10(void) = ThrowValue : &:r2285_1, ~m? #-----| C++ Exception -> Block 2 -# 2285| Block 9 -# 2285| v2285_1(void) = CatchByType[const String &] : +# 2287| Block 9 +# 2287| v2287_1(void) = CatchByType[const String &] : #-----| C++ Exception -> Block 11 #-----| Goto -> Block 10 -# 2285| Block 10 -# 2285| r2285_2(glval) = VariableAddress[e] : -# 2285| mu2285_3(String &) = InitializeParameter[e] : &:r2285_2 -# 2285| r2285_4(String &) = Load[e] : &:r2285_2, ~m? -# 2285| mu2285_5(unknown) = InitializeIndirection[e] : &:r2285_4 -# 2285| v2285_6(void) = NoOp : +# 2287| Block 10 +# 2287| r2287_2(glval) = VariableAddress[e] : +# 2287| mu2287_3(String &) = InitializeParameter[e] : &:r2287_2 +# 2287| r2287_4(String &) = Load[e] : &:r2287_2, ~m? +# 2287| mu2287_5(unknown) = InitializeIndirection[e] : &:r2287_4 +# 2287| v2287_6(void) = NoOp : #-----| Goto -> Block 12 -# 2287| Block 11 -# 2287| v2287_1(void) = CatchAny : -# 2288| v2288_1(void) = ReThrow : +# 2289| Block 11 +# 2289| v2289_1(void) = CatchAny : +# 2290| v2290_1(void) = ReThrow : #-----| C++ Exception -> Block 2 -# 2290| Block 12 -# 2290| v2290_1(void) = NoOp : -# 2274| v2274_9(void) = ReturnVoid : +# 2292| Block 12 +# 2292| v2292_1(void) = NoOp : +# 2276| v2276_9(void) = ReturnVoid : #-----| Goto -> Block 1 -# 2292| void IfDestructors(bool) -# 2292| Block 0 -# 2292| v2292_1(void) = EnterFunction : -# 2292| mu2292_2(unknown) = AliasedDefinition : -# 2292| mu2292_3(unknown) = InitializeNonLocal : -# 2292| r2292_4(glval) = VariableAddress[b] : -# 2292| mu2292_5(bool) = InitializeParameter[b] : &:r2292_4 -# 2293| r2293_1(glval) = VariableAddress[s1] : -# 2293| mu2293_2(String) = Uninitialized[s1] : &:r2293_1 -# 2293| r2293_3(glval) = FunctionAddress[String] : -# 2293| v2293_4(void) = Call[String] : func:r2293_3, this:r2293_1 -# 2293| mu2293_5(unknown) = ^CallSideEffect : ~m? -# 2293| mu2293_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2293_1 -# 2294| r2294_1(glval) = VariableAddress[b] : -# 2294| r2294_2(bool) = Load[b] : &:r2294_1, ~m? -# 2294| v2294_3(void) = ConditionalBranch : r2294_2 -#-----| False -> Block 2 -#-----| True -> Block 1 - -# 2295| Block 1 -# 2295| r2295_1(glval) = VariableAddress[s2] : -# 2295| mu2295_2(String) = Uninitialized[s2] : &:r2295_1 +# 2294| void IfDestructors(bool) +# 2294| Block 0 +# 2294| v2294_1(void) = EnterFunction : +# 2294| mu2294_2(unknown) = AliasedDefinition : +# 2294| mu2294_3(unknown) = InitializeNonLocal : +# 2294| r2294_4(glval) = VariableAddress[b] : +# 2294| mu2294_5(bool) = InitializeParameter[b] : &:r2294_4 +# 2295| r2295_1(glval) = VariableAddress[s1] : +# 2295| mu2295_2(String) = Uninitialized[s1] : &:r2295_1 # 2295| r2295_3(glval) = 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) = VariableAddress[s2] : -# 2296| r2296_2(glval) = FunctionAddress[~String] : -# 2296| v2296_3(void) = Call[~String] : func:r2296_2, this:r2296_1 -# 2296| mu2296_4(unknown) = ^CallSideEffect : ~m? -# 2296| v2296_5(void) = ^IndirectReadSideEffect[-1] : &:r2296_1, ~m? -# 2296| mu2296_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2296_1 -#-----| Goto -> Block 3 +# 2296| r2296_1(glval) = VariableAddress[b] : +# 2296| r2296_2(bool) = Load[b] : &:r2296_1, ~m? +# 2296| v2296_3(void) = ConditionalBranch : r2296_2 +#-----| False -> Block 2 +#-----| True -> Block 1 -# 2297| Block 2 -# 2297| r2297_1(glval) = VariableAddress[s3] : -# 2297| mu2297_2(String) = Uninitialized[s3] : &:r2297_1 +# 2297| Block 1 +# 2297| r2297_1(glval) = VariableAddress[s2] : +# 2297| mu2297_2(String) = Uninitialized[s2] : &:r2297_1 # 2297| r2297_3(glval) = FunctionAddress[String] : # 2297| v2297_4(void) = Call[String] : func:r2297_3, this:r2297_1 # 2297| mu2297_5(unknown) = ^CallSideEffect : ~m? # 2297| mu2297_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2297_1 -# 2298| r2298_1(glval) = VariableAddress[s3] : +# 2298| r2298_1(glval) = VariableAddress[s2] : # 2298| r2298_2(glval) = FunctionAddress[~String] : # 2298| v2298_3(void) = Call[~String] : func:r2298_2, this:r2298_1 # 2298| mu2298_4(unknown) = ^CallSideEffect : ~m? @@ -15959,359 +16012,359 @@ ir.cpp: # 2298| mu2298_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2298_1 #-----| Goto -> Block 3 -# 2299| Block 3 -# 2299| r2299_1(glval) = VariableAddress[s4] : -# 2299| mu2299_2(String) = Uninitialized[s4] : &:r2299_1 +# 2299| Block 2 +# 2299| r2299_1(glval) = VariableAddress[s3] : +# 2299| mu2299_2(String) = Uninitialized[s3] : &:r2299_1 # 2299| r2299_3(glval) = FunctionAddress[String] : # 2299| v2299_4(void) = Call[String] : func:r2299_3, this:r2299_1 # 2299| mu2299_5(unknown) = ^CallSideEffect : ~m? # 2299| mu2299_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2299_1 -# 2300| v2300_1(void) = NoOp : -# 2300| r2300_2(glval) = VariableAddress[s4] : -# 2300| r2300_3(glval) = FunctionAddress[~String] : -# 2300| v2300_4(void) = Call[~String] : func:r2300_3, this:r2300_2 -# 2300| mu2300_5(unknown) = ^CallSideEffect : ~m? -# 2300| v2300_6(void) = ^IndirectReadSideEffect[-1] : &:r2300_2, ~m? -# 2300| mu2300_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2300_2 -# 2300| r2300_8(glval) = VariableAddress[s1] : -# 2300| r2300_9(glval) = FunctionAddress[~String] : -# 2300| v2300_10(void) = Call[~String] : func:r2300_9, this:r2300_8 -# 2300| mu2300_11(unknown) = ^CallSideEffect : ~m? -# 2300| v2300_12(void) = ^IndirectReadSideEffect[-1] : &:r2300_8, ~m? -# 2300| mu2300_13(String) = ^IndirectMayWriteSideEffect[-1] : &:r2300_8 -# 2292| v2292_6(void) = ReturnVoid : -# 2292| v2292_7(void) = AliasedUse : ~m? -# 2292| v2292_8(void) = ExitFunction : - -# 2302| void ForDestructors() -# 2302| Block 0 -# 2302| v2302_1(void) = EnterFunction : -# 2302| mu2302_2(unknown) = AliasedDefinition : -# 2302| mu2302_3(unknown) = InitializeNonLocal : -# 2303| r2303_1(glval) = VariableAddress[c] : -# 2303| r2303_2(char) = Constant[97] : -# 2303| mu2303_3(char) = Store[c] : &:r2303_1, r2303_2 -# 2304| r2304_1(glval) = VariableAddress[s] : -# 2304| mu2304_2(String) = Uninitialized[s] : &:r2304_1 -# 2304| r2304_3(glval) = FunctionAddress[String] : -# 2304| r2304_4(glval) = StringConstant["hello"] : -# 2304| r2304_5(char *) = Convert : r2304_4 -# 2304| v2304_6(void) = Call[String] : func:r2304_3, this:r2304_1, 0:r2304_5 -# 2304| mu2304_7(unknown) = ^CallSideEffect : ~m? -# 2304| v2304_8(void) = ^BufferReadSideEffect[0] : &:r2304_5, ~m? -# 2304| mu2304_9(String) = ^IndirectMayWriteSideEffect[-1] : &:r2304_1 +# 2300| r2300_1(glval) = VariableAddress[s3] : +# 2300| r2300_2(glval) = FunctionAddress[~String] : +# 2300| v2300_3(void) = Call[~String] : func:r2300_2, this:r2300_1 +# 2300| mu2300_4(unknown) = ^CallSideEffect : ~m? +# 2300| v2300_5(void) = ^IndirectReadSideEffect[-1] : &:r2300_1, ~m? +# 2300| mu2300_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2300_1 +#-----| Goto -> Block 3 + +# 2301| Block 3 +# 2301| r2301_1(glval) = VariableAddress[s4] : +# 2301| mu2301_2(String) = Uninitialized[s4] : &:r2301_1 +# 2301| r2301_3(glval) = FunctionAddress[String] : +# 2301| v2301_4(void) = Call[String] : func:r2301_3, this:r2301_1 +# 2301| mu2301_5(unknown) = ^CallSideEffect : ~m? +# 2301| mu2301_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2301_1 +# 2302| v2302_1(void) = NoOp : +# 2302| r2302_2(glval) = VariableAddress[s4] : +# 2302| r2302_3(glval) = FunctionAddress[~String] : +# 2302| v2302_4(void) = Call[~String] : func:r2302_3, this:r2302_2 +# 2302| mu2302_5(unknown) = ^CallSideEffect : ~m? +# 2302| v2302_6(void) = ^IndirectReadSideEffect[-1] : &:r2302_2, ~m? +# 2302| mu2302_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2302_2 +# 2302| r2302_8(glval) = VariableAddress[s1] : +# 2302| r2302_9(glval) = FunctionAddress[~String] : +# 2302| v2302_10(void) = Call[~String] : func:r2302_9, this:r2302_8 +# 2302| mu2302_11(unknown) = ^CallSideEffect : ~m? +# 2302| v2302_12(void) = ^IndirectReadSideEffect[-1] : &:r2302_8, ~m? +# 2302| mu2302_13(String) = ^IndirectMayWriteSideEffect[-1] : &:r2302_8 +# 2294| v2294_6(void) = ReturnVoid : +# 2294| v2294_7(void) = AliasedUse : ~m? +# 2294| v2294_8(void) = ExitFunction : + +# 2304| void ForDestructors() +# 2304| Block 0 +# 2304| v2304_1(void) = EnterFunction : +# 2304| mu2304_2(unknown) = AliasedDefinition : +# 2304| mu2304_3(unknown) = InitializeNonLocal : +# 2305| r2305_1(glval) = VariableAddress[c] : +# 2305| r2305_2(char) = Constant[97] : +# 2305| mu2305_3(char) = Store[c] : &:r2305_1, r2305_2 +# 2306| r2306_1(glval) = VariableAddress[s] : +# 2306| mu2306_2(String) = Uninitialized[s] : &:r2306_1 +# 2306| r2306_3(glval) = FunctionAddress[String] : +# 2306| r2306_4(glval) = StringConstant["hello"] : +# 2306| r2306_5(char *) = Convert : r2306_4 +# 2306| v2306_6(void) = Call[String] : func:r2306_3, this:r2306_1, 0:r2306_5 +# 2306| mu2306_7(unknown) = ^CallSideEffect : ~m? +# 2306| v2306_8(void) = ^BufferReadSideEffect[0] : &:r2306_5, ~m? +# 2306| mu2306_9(String) = ^IndirectMayWriteSideEffect[-1] : &:r2306_1 #-----| Goto -> Block 1 -# 2304| Block 1 -# 2304| r2304_10(glval) = VariableAddress[c] : -# 2304| r2304_11(char) = Load[c] : &:r2304_10, ~m? -# 2304| r2304_12(int) = Convert : r2304_11 -# 2304| r2304_13(int) = Constant[0] : -# 2304| r2304_14(bool) = CompareNE : r2304_12, r2304_13 -# 2304| v2304_15(void) = ConditionalBranch : r2304_14 +# 2306| Block 1 +# 2306| r2306_10(glval) = VariableAddress[c] : +# 2306| r2306_11(char) = Load[c] : &:r2306_10, ~m? +# 2306| r2306_12(int) = Convert : r2306_11 +# 2306| r2306_13(int) = Constant[0] : +# 2306| r2306_14(bool) = CompareNE : r2306_12, r2306_13 +# 2306| v2306_15(void) = ConditionalBranch : r2306_14 #-----| False -> Block 3 #-----| True -> Block 2 -# 2305| Block 2 -# 2305| r2305_1(glval) = VariableAddress[s2] : -# 2305| mu2305_2(String) = Uninitialized[s2] : &:r2305_1 -# 2305| r2305_3(glval) = FunctionAddress[String] : -# 2305| v2305_4(void) = Call[String] : func:r2305_3, this:r2305_1 -# 2305| mu2305_5(unknown) = ^CallSideEffect : ~m? -# 2305| mu2305_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2305_1 -# 2306| r2306_1(glval) = VariableAddress[s2] : -# 2306| r2306_2(glval) = FunctionAddress[~String] : -# 2306| v2306_3(void) = Call[~String] : func:r2306_2, this:r2306_1 -# 2306| mu2306_4(unknown) = ^CallSideEffect : ~m? -# 2306| v2306_5(void) = ^IndirectReadSideEffect[-1] : &:r2306_1, ~m? -# 2306| mu2306_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2306_1 -# 2304| r2304_16(glval) = VariableAddress[s] : -# 2304| r2304_17(glval) = FunctionAddress[pop_back] : -# 2304| r2304_18(char) = Call[pop_back] : func:r2304_17, this:r2304_16 -# 2304| mu2304_19(unknown) = ^CallSideEffect : ~m? -# 2304| v2304_20(void) = ^IndirectReadSideEffect[-1] : &:r2304_16, ~m? -# 2304| mu2304_21(String) = ^IndirectMayWriteSideEffect[-1] : &:r2304_16 -# 2304| r2304_22(glval) = VariableAddress[c] : -# 2304| mu2304_23(char) = Store[c] : &:r2304_22, r2304_18 +# 2307| Block 2 +# 2307| r2307_1(glval) = VariableAddress[s2] : +# 2307| mu2307_2(String) = Uninitialized[s2] : &:r2307_1 +# 2307| r2307_3(glval) = FunctionAddress[String] : +# 2307| v2307_4(void) = Call[String] : func:r2307_3, this:r2307_1 +# 2307| mu2307_5(unknown) = ^CallSideEffect : ~m? +# 2307| mu2307_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2307_1 +# 2308| r2308_1(glval) = VariableAddress[s2] : +# 2308| r2308_2(glval) = FunctionAddress[~String] : +# 2308| v2308_3(void) = Call[~String] : func:r2308_2, this:r2308_1 +# 2308| mu2308_4(unknown) = ^CallSideEffect : ~m? +# 2308| v2308_5(void) = ^IndirectReadSideEffect[-1] : &:r2308_1, ~m? +# 2308| mu2308_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2308_1 +# 2306| r2306_16(glval) = VariableAddress[s] : +# 2306| r2306_17(glval) = FunctionAddress[pop_back] : +# 2306| r2306_18(char) = Call[pop_back] : func:r2306_17, this:r2306_16 +# 2306| mu2306_19(unknown) = ^CallSideEffect : ~m? +# 2306| v2306_20(void) = ^IndirectReadSideEffect[-1] : &:r2306_16, ~m? +# 2306| mu2306_21(String) = ^IndirectMayWriteSideEffect[-1] : &:r2306_16 +# 2306| r2306_22(glval) = VariableAddress[c] : +# 2306| mu2306_23(char) = Store[c] : &:r2306_22, r2306_18 #-----| Goto (back edge) -> Block 1 -# 2304| Block 3 -# 2304| r2304_24(glval) = VariableAddress[s] : -# 2304| r2304_25(glval) = FunctionAddress[~String] : -# 2304| v2304_26(void) = Call[~String] : func:r2304_25, this:r2304_24 -# 2304| mu2304_27(unknown) = ^CallSideEffect : ~m? -# 2304| v2304_28(void) = ^IndirectReadSideEffect[-1] : &:r2304_24, ~m? -# 2304| mu2304_29(String) = ^IndirectMayWriteSideEffect[-1] : &:r2304_24 -# 2308| r2308_1(glval &&>) = VariableAddress[(__range)] : -# 2308| r2308_2(glval>) = VariableAddress[#temp2308:20] : -# 2308| mu2308_3(vector) = Uninitialized[#temp2308:20] : &:r2308_2 -# 2308| r2308_4(glval) = FunctionAddress[vector] : -# 2308| r2308_5(glval) = VariableAddress[#temp2308:40] : -# 2308| mu2308_6(String) = Uninitialized[#temp2308:40] : &:r2308_5 -# 2308| r2308_7(glval) = FunctionAddress[String] : -# 2308| r2308_8(glval) = StringConstant["hello"] : -# 2308| r2308_9(char *) = Convert : r2308_8 -# 2308| v2308_10(void) = Call[String] : func:r2308_7, this:r2308_5, 0:r2308_9 -# 2308| mu2308_11(unknown) = ^CallSideEffect : ~m? -# 2308| v2308_12(void) = ^BufferReadSideEffect[0] : &:r2308_9, ~m? -# 2308| mu2308_13(String) = ^IndirectMayWriteSideEffect[-1] : &:r2308_5 -# 2308| r2308_14(String) = Load[#temp2308:40] : &:r2308_5, ~m? -# 2308| v2308_15(void) = Call[vector] : func:r2308_4, this:r2308_2, 0:r2308_14 -# 2308| mu2308_16(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2308_2 -# 2308| r2308_17(glval) = CopyValue : r2308_5 -# 2308| r2308_18(glval) = FunctionAddress[~String] : -# 2308| v2308_19(void) = Call[~String] : func:r2308_18, this:r2308_17 -# 2308| mu2308_20(unknown) = ^CallSideEffect : ~m? -# 2308| v2308_21(void) = ^IndirectReadSideEffect[-1] : &:r2308_17, ~m? -# 2308| mu2308_22(String) = ^IndirectMayWriteSideEffect[-1] : &:r2308_17 -# 2308| r2308_23(vector &) = CopyValue : r2308_2 -# 2308| mu2308_24(vector &&) = Store[(__range)] : &:r2308_1, r2308_23 -# 2308| r2308_25(glval>) = VariableAddress[(__begin)] : -# 2308| r2308_26(glval &&>) = VariableAddress[(__range)] : -# 2308| r2308_27(vector &&) = Load[(__range)] : &:r2308_26, ~m? -#-----| r0_1(glval>) = CopyValue : r2308_27 +# 2306| Block 3 +# 2306| r2306_24(glval) = VariableAddress[s] : +# 2306| r2306_25(glval) = FunctionAddress[~String] : +# 2306| v2306_26(void) = Call[~String] : func:r2306_25, this:r2306_24 +# 2306| mu2306_27(unknown) = ^CallSideEffect : ~m? +# 2306| v2306_28(void) = ^IndirectReadSideEffect[-1] : &:r2306_24, ~m? +# 2306| mu2306_29(String) = ^IndirectMayWriteSideEffect[-1] : &:r2306_24 +# 2310| r2310_1(glval &&>) = VariableAddress[(__range)] : +# 2310| r2310_2(glval>) = VariableAddress[#temp2310:20] : +# 2310| mu2310_3(vector) = Uninitialized[#temp2310:20] : &:r2310_2 +# 2310| r2310_4(glval) = FunctionAddress[vector] : +# 2310| r2310_5(glval) = VariableAddress[#temp2310:40] : +# 2310| mu2310_6(String) = Uninitialized[#temp2310:40] : &:r2310_5 +# 2310| r2310_7(glval) = FunctionAddress[String] : +# 2310| r2310_8(glval) = StringConstant["hello"] : +# 2310| r2310_9(char *) = Convert : r2310_8 +# 2310| v2310_10(void) = Call[String] : func:r2310_7, this:r2310_5, 0:r2310_9 +# 2310| mu2310_11(unknown) = ^CallSideEffect : ~m? +# 2310| v2310_12(void) = ^BufferReadSideEffect[0] : &:r2310_9, ~m? +# 2310| mu2310_13(String) = ^IndirectMayWriteSideEffect[-1] : &:r2310_5 +# 2310| r2310_14(String) = Load[#temp2310:40] : &:r2310_5, ~m? +# 2310| v2310_15(void) = Call[vector] : func:r2310_4, this:r2310_2, 0:r2310_14 +# 2310| mu2310_16(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2310_2 +# 2310| r2310_17(glval) = CopyValue : r2310_5 +# 2310| r2310_18(glval) = FunctionAddress[~String] : +# 2310| v2310_19(void) = Call[~String] : func:r2310_18, this:r2310_17 +# 2310| mu2310_20(unknown) = ^CallSideEffect : ~m? +# 2310| v2310_21(void) = ^IndirectReadSideEffect[-1] : &:r2310_17, ~m? +# 2310| mu2310_22(String) = ^IndirectMayWriteSideEffect[-1] : &:r2310_17 +# 2310| r2310_23(vector &) = CopyValue : r2310_2 +# 2310| mu2310_24(vector &&) = Store[(__range)] : &:r2310_1, r2310_23 +# 2310| r2310_25(glval>) = VariableAddress[(__begin)] : +# 2310| r2310_26(glval &&>) = VariableAddress[(__range)] : +# 2310| r2310_27(vector &&) = Load[(__range)] : &:r2310_26, ~m? +#-----| r0_1(glval>) = CopyValue : r2310_27 #-----| r0_2(glval>) = Convert : r0_1 -# 2308| r2308_28(glval) = FunctionAddress[begin] : -# 2308| r2308_29(iterator) = Call[begin] : func:r2308_28, this:r0_2 +# 2310| r2310_28(glval) = FunctionAddress[begin] : +# 2310| r2310_29(iterator) = Call[begin] : func:r2310_28, this:r0_2 #-----| v0_3(void) = ^IndirectReadSideEffect[-1] : &:r0_2, ~m? -# 2308| mu2308_30(iterator) = Store[(__begin)] : &:r2308_25, r2308_29 -# 2308| r2308_31(glval>) = VariableAddress[(__end)] : -# 2308| r2308_32(glval &&>) = VariableAddress[(__range)] : -# 2308| r2308_33(vector &&) = Load[(__range)] : &:r2308_32, ~m? -#-----| r0_4(glval>) = CopyValue : r2308_33 +# 2310| mu2310_30(iterator) = Store[(__begin)] : &:r2310_25, r2310_29 +# 2310| r2310_31(glval>) = VariableAddress[(__end)] : +# 2310| r2310_32(glval &&>) = VariableAddress[(__range)] : +# 2310| r2310_33(vector &&) = Load[(__range)] : &:r2310_32, ~m? +#-----| r0_4(glval>) = CopyValue : r2310_33 #-----| r0_5(glval>) = Convert : r0_4 -# 2308| r2308_34(glval) = FunctionAddress[end] : -# 2308| r2308_35(iterator) = Call[end] : func:r2308_34, this:r0_5 +# 2310| r2310_34(glval) = FunctionAddress[end] : +# 2310| r2310_35(iterator) = Call[end] : func:r2310_34, this:r0_5 #-----| v0_6(void) = ^IndirectReadSideEffect[-1] : &:r0_5, ~m? -# 2308| mu2308_36(iterator) = Store[(__end)] : &:r2308_31, r2308_35 +# 2310| mu2310_36(iterator) = Store[(__end)] : &:r2310_31, r2310_35 #-----| Goto -> Block 4 -# 2308| Block 4 -# 2308| r2308_37(glval>) = VariableAddress[(__begin)] : -#-----| r0_7(glval>) = Convert : r2308_37 -# 2308| r2308_38(glval) = FunctionAddress[operator!=] : +# 2310| Block 4 +# 2310| r2310_37(glval>) = VariableAddress[(__begin)] : +#-----| r0_7(glval>) = Convert : r2310_37 +# 2310| r2310_38(glval) = FunctionAddress[operator!=] : #-----| r0_8(glval>) = VariableAddress[#temp0:0] : #-----| mu0_9(iterator) = Uninitialized[#temp0:0] : &:r0_8 -# 2308| r2308_39(glval) = FunctionAddress[iterator] : -# 2308| r2308_40(glval>) = VariableAddress[(__end)] : -#-----| r0_10(glval>) = Convert : r2308_40 +# 2310| r2310_39(glval) = FunctionAddress[iterator] : +# 2310| r2310_40(glval>) = VariableAddress[(__end)] : +#-----| r0_10(glval>) = Convert : r2310_40 #-----| r0_11(iterator &) = CopyValue : r0_10 -# 2308| v2308_41(void) = Call[iterator] : func:r2308_39, this:r0_8, 0:r0_11 -# 2308| mu2308_42(unknown) = ^CallSideEffect : ~m? +# 2310| v2310_41(void) = Call[iterator] : func:r2310_39, this:r0_8, 0:r0_11 +# 2310| mu2310_42(unknown) = ^CallSideEffect : ~m? #-----| v0_12(void) = ^BufferReadSideEffect[0] : &:r0_11, ~m? -# 2308| mu2308_43(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r0_8 +# 2310| mu2310_43(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r0_8 #-----| r0_13(iterator) = Load[#temp0:0] : &:r0_8, ~m? -# 2308| r2308_44(bool) = Call[operator!=] : func:r2308_38, this:r0_7, 0:r0_13 +# 2310| r2310_44(bool) = Call[operator!=] : func:r2310_38, this:r0_7, 0:r0_13 #-----| v0_14(void) = ^IndirectReadSideEffect[-1] : &:r0_7, ~m? -# 2308| v2308_45(void) = ConditionalBranch : r2308_44 +# 2310| v2310_45(void) = ConditionalBranch : r2310_44 #-----| False -> Block 6 #-----| True -> Block 5 -# 2308| Block 5 -# 2308| r2308_46(glval) = VariableAddress[s] : -# 2308| mu2308_47(String) = Uninitialized[s] : &:r2308_46 -# 2308| r2308_48(glval) = FunctionAddress[String] : -# 2308| r2308_49(glval>) = VariableAddress[(__begin)] : -#-----| r0_15(glval>) = Convert : r2308_49 -# 2308| r2308_50(glval) = FunctionAddress[operator*] : -# 2308| r2308_51(String &) = Call[operator*] : func:r2308_50, this:r0_15 +# 2310| Block 5 +# 2310| r2310_46(glval) = VariableAddress[s] : +# 2310| mu2310_47(String) = Uninitialized[s] : &:r2310_46 +# 2310| r2310_48(glval) = FunctionAddress[String] : +# 2310| r2310_49(glval>) = VariableAddress[(__begin)] : +#-----| r0_15(glval>) = Convert : r2310_49 +# 2310| r2310_50(glval) = FunctionAddress[operator*] : +# 2310| r2310_51(String &) = Call[operator*] : func:r2310_50, this:r0_15 #-----| v0_16(void) = ^IndirectReadSideEffect[-1] : &:r0_15, ~m? -# 2308| r2308_52(glval) = CopyValue : r2308_51 -# 2308| r2308_53(glval) = Convert : r2308_52 -# 2308| r2308_54(String &) = CopyValue : r2308_53 -# 2308| v2308_55(void) = Call[String] : func:r2308_48, this:r2308_46, 0:r2308_54 -# 2308| mu2308_56(unknown) = ^CallSideEffect : ~m? -# 2308| v2308_57(void) = ^BufferReadSideEffect[0] : &:r2308_54, ~m? -# 2308| mu2308_58(String) = ^IndirectMayWriteSideEffect[-1] : &:r2308_46 -# 2309| r2309_1(glval) = VariableAddress[s2] : -# 2309| mu2309_2(String) = Uninitialized[s2] : &:r2309_1 -# 2309| r2309_3(glval) = FunctionAddress[String] : -# 2309| v2309_4(void) = Call[String] : func:r2309_3, this:r2309_1 -# 2309| mu2309_5(unknown) = ^CallSideEffect : ~m? -# 2309| mu2309_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2309_1 -# 2310| r2310_1(glval) = VariableAddress[s2] : -# 2310| r2310_2(glval) = FunctionAddress[~String] : -# 2310| v2310_3(void) = Call[~String] : func:r2310_2, this:r2310_1 -# 2310| mu2310_4(unknown) = ^CallSideEffect : ~m? -# 2310| v2310_5(void) = ^IndirectReadSideEffect[-1] : &:r2310_1, ~m? -# 2310| mu2310_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2310_1 -# 2308| r2308_59(glval>) = VariableAddress[(__begin)] : -# 2308| r2308_60(glval) = FunctionAddress[operator++] : -# 2308| r2308_61(iterator &) = Call[operator++] : func:r2308_60, this:r2308_59 -# 2308| v2308_62(void) = ^IndirectReadSideEffect[-1] : &:r2308_59, ~m? -# 2308| mu2308_63(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2308_59 -# 2308| r2308_64(glval) = VariableAddress[s] : -# 2308| r2308_65(glval) = FunctionAddress[~String] : -# 2308| v2308_66(void) = Call[~String] : func:r2308_65, this:r2308_64 -# 2308| mu2308_67(unknown) = ^CallSideEffect : ~m? -# 2308| v2308_68(void) = ^IndirectReadSideEffect[-1] : &:r2308_64, ~m? -# 2308| mu2308_69(String) = ^IndirectMayWriteSideEffect[-1] : &:r2308_64 -# 2308| r2308_70(glval>) = CopyValue : r2308_61 +# 2310| r2310_52(glval) = CopyValue : r2310_51 +# 2310| r2310_53(glval) = Convert : r2310_52 +# 2310| r2310_54(String &) = CopyValue : r2310_53 +# 2310| v2310_55(void) = Call[String] : func:r2310_48, this:r2310_46, 0:r2310_54 +# 2310| mu2310_56(unknown) = ^CallSideEffect : ~m? +# 2310| v2310_57(void) = ^BufferReadSideEffect[0] : &:r2310_54, ~m? +# 2310| mu2310_58(String) = ^IndirectMayWriteSideEffect[-1] : &:r2310_46 +# 2311| r2311_1(glval) = VariableAddress[s2] : +# 2311| mu2311_2(String) = Uninitialized[s2] : &:r2311_1 +# 2311| r2311_3(glval) = FunctionAddress[String] : +# 2311| v2311_4(void) = Call[String] : func:r2311_3, this:r2311_1 +# 2311| mu2311_5(unknown) = ^CallSideEffect : ~m? +# 2311| mu2311_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2311_1 +# 2312| r2312_1(glval) = VariableAddress[s2] : +# 2312| r2312_2(glval) = FunctionAddress[~String] : +# 2312| v2312_3(void) = Call[~String] : func:r2312_2, this:r2312_1 +# 2312| mu2312_4(unknown) = ^CallSideEffect : ~m? +# 2312| v2312_5(void) = ^IndirectReadSideEffect[-1] : &:r2312_1, ~m? +# 2312| mu2312_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2312_1 +# 2310| r2310_59(glval>) = VariableAddress[(__begin)] : +# 2310| r2310_60(glval) = FunctionAddress[operator++] : +# 2310| r2310_61(iterator &) = Call[operator++] : func:r2310_60, this:r2310_59 +# 2310| v2310_62(void) = ^IndirectReadSideEffect[-1] : &:r2310_59, ~m? +# 2310| mu2310_63(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2310_59 +# 2310| r2310_64(glval) = VariableAddress[s] : +# 2310| r2310_65(glval) = FunctionAddress[~String] : +# 2310| v2310_66(void) = Call[~String] : func:r2310_65, this:r2310_64 +# 2310| mu2310_67(unknown) = ^CallSideEffect : ~m? +# 2310| v2310_68(void) = ^IndirectReadSideEffect[-1] : &:r2310_64, ~m? +# 2310| mu2310_69(String) = ^IndirectMayWriteSideEffect[-1] : &:r2310_64 +# 2310| r2310_70(glval>) = CopyValue : r2310_61 #-----| Goto (back edge) -> Block 4 -# 2308| Block 6 -# 2308| r2308_71(glval>) = CopyValue : r2308_2 -# 2308| r2308_72(glval) = FunctionAddress[~vector] : -# 2308| v2308_73(void) = Call[~vector] : func:r2308_72, this:r2308_71 -# 2308| v2308_74(void) = ^IndirectReadSideEffect[-1] : &:r2308_71, ~m? -# 2308| mu2308_75(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2308_71 -# 2312| r2312_1(glval) = VariableAddress[s] : -# 2312| mu2312_2(String) = Uninitialized[s] : &:r2312_1 -# 2312| r2312_3(glval) = FunctionAddress[String] : -# 2312| r2312_4(glval) = StringConstant["hello"] : -# 2312| r2312_5(char *) = Convert : r2312_4 -# 2312| v2312_6(void) = Call[String] : func:r2312_3, this:r2312_1, 0:r2312_5 -# 2312| mu2312_7(unknown) = ^CallSideEffect : ~m? -# 2312| v2312_8(void) = ^BufferReadSideEffect[0] : &:r2312_5, ~m? -# 2312| mu2312_9(String) = ^IndirectMayWriteSideEffect[-1] : &:r2312_1 -# 2312| r2312_10(glval) = VariableAddress[s2] : -# 2312| mu2312_11(String) = Uninitialized[s2] : &:r2312_10 -# 2312| r2312_12(glval) = FunctionAddress[String] : -# 2312| r2312_13(glval) = StringConstant["world"] : -# 2312| r2312_14(char *) = Convert : r2312_13 -# 2312| v2312_15(void) = Call[String] : func:r2312_12, this:r2312_10, 0:r2312_14 -# 2312| mu2312_16(unknown) = ^CallSideEffect : ~m? -# 2312| v2312_17(void) = ^BufferReadSideEffect[0] : &:r2312_14, ~m? -# 2312| mu2312_18(String) = ^IndirectMayWriteSideEffect[-1] : &:r2312_10 +# 2310| Block 6 +# 2310| r2310_71(glval>) = CopyValue : r2310_2 +# 2310| r2310_72(glval) = FunctionAddress[~vector] : +# 2310| v2310_73(void) = Call[~vector] : func:r2310_72, this:r2310_71 +# 2310| v2310_74(void) = ^IndirectReadSideEffect[-1] : &:r2310_71, ~m? +# 2310| mu2310_75(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2310_71 +# 2314| r2314_1(glval) = VariableAddress[s] : +# 2314| mu2314_2(String) = Uninitialized[s] : &:r2314_1 +# 2314| r2314_3(glval) = FunctionAddress[String] : +# 2314| r2314_4(glval) = StringConstant["hello"] : +# 2314| r2314_5(char *) = Convert : r2314_4 +# 2314| v2314_6(void) = Call[String] : func:r2314_3, this:r2314_1, 0:r2314_5 +# 2314| mu2314_7(unknown) = ^CallSideEffect : ~m? +# 2314| v2314_8(void) = ^BufferReadSideEffect[0] : &:r2314_5, ~m? +# 2314| mu2314_9(String) = ^IndirectMayWriteSideEffect[-1] : &:r2314_1 +# 2314| r2314_10(glval) = VariableAddress[s2] : +# 2314| mu2314_11(String) = Uninitialized[s2] : &:r2314_10 +# 2314| r2314_12(glval) = FunctionAddress[String] : +# 2314| r2314_13(glval) = StringConstant["world"] : +# 2314| r2314_14(char *) = Convert : r2314_13 +# 2314| v2314_15(void) = Call[String] : func:r2314_12, this:r2314_10, 0:r2314_14 +# 2314| mu2314_16(unknown) = ^CallSideEffect : ~m? +# 2314| v2314_17(void) = ^BufferReadSideEffect[0] : &:r2314_14, ~m? +# 2314| mu2314_18(String) = ^IndirectMayWriteSideEffect[-1] : &:r2314_10 #-----| Goto -> Block 7 -# 2312| Block 7 -# 2312| r2312_19(glval) = VariableAddress[c] : -# 2312| r2312_20(char) = Load[c] : &:r2312_19, ~m? -# 2312| r2312_21(int) = Convert : r2312_20 -# 2312| r2312_22(int) = Constant[0] : -# 2312| r2312_23(bool) = CompareNE : r2312_21, r2312_22 -# 2312| v2312_24(void) = ConditionalBranch : r2312_23 +# 2314| Block 7 +# 2314| r2314_19(glval) = VariableAddress[c] : +# 2314| r2314_20(char) = Load[c] : &:r2314_19, ~m? +# 2314| r2314_21(int) = Convert : r2314_20 +# 2314| r2314_22(int) = Constant[0] : +# 2314| r2314_23(bool) = CompareNE : r2314_21, r2314_22 +# 2314| v2314_24(void) = ConditionalBranch : r2314_23 #-----| False -> Block 9 #-----| True -> Block 8 -# 2313| Block 8 -# 2313| r2313_1(char) = Constant[0] : -# 2313| r2313_2(glval) = VariableAddress[c] : -# 2313| mu2313_3(char) = Store[c] : &:r2313_2, r2313_1 -# 2312| r2312_25(glval) = VariableAddress[s] : -# 2312| r2312_26(glval) = FunctionAddress[pop_back] : -# 2312| r2312_27(char) = Call[pop_back] : func:r2312_26, this:r2312_25 -# 2312| mu2312_28(unknown) = ^CallSideEffect : ~m? -# 2312| v2312_29(void) = ^IndirectReadSideEffect[-1] : &:r2312_25, ~m? -# 2312| mu2312_30(String) = ^IndirectMayWriteSideEffect[-1] : &:r2312_25 -# 2312| r2312_31(glval) = VariableAddress[c] : -# 2312| mu2312_32(char) = Store[c] : &:r2312_31, r2312_27 +# 2315| Block 8 +# 2315| r2315_1(char) = Constant[0] : +# 2315| r2315_2(glval) = VariableAddress[c] : +# 2315| mu2315_3(char) = Store[c] : &:r2315_2, r2315_1 +# 2314| r2314_25(glval) = VariableAddress[s] : +# 2314| r2314_26(glval) = FunctionAddress[pop_back] : +# 2314| r2314_27(char) = Call[pop_back] : func:r2314_26, this:r2314_25 +# 2314| mu2314_28(unknown) = ^CallSideEffect : ~m? +# 2314| v2314_29(void) = ^IndirectReadSideEffect[-1] : &:r2314_25, ~m? +# 2314| mu2314_30(String) = ^IndirectMayWriteSideEffect[-1] : &:r2314_25 +# 2314| r2314_31(glval) = VariableAddress[c] : +# 2314| mu2314_32(char) = Store[c] : &:r2314_31, r2314_27 #-----| Goto (back edge) -> Block 7 -# 2312| Block 9 -# 2312| r2312_33(glval) = VariableAddress[s2] : -# 2312| r2312_34(glval) = FunctionAddress[~String] : -# 2312| v2312_35(void) = Call[~String] : func:r2312_34, this:r2312_33 -# 2312| mu2312_36(unknown) = ^CallSideEffect : ~m? -# 2312| v2312_37(void) = ^IndirectReadSideEffect[-1] : &:r2312_33, ~m? -# 2312| mu2312_38(String) = ^IndirectMayWriteSideEffect[-1] : &:r2312_33 -# 2312| r2312_39(glval) = VariableAddress[s] : -# 2312| r2312_40(glval) = FunctionAddress[~String] : -# 2312| v2312_41(void) = Call[~String] : func:r2312_40, this:r2312_39 -# 2312| mu2312_42(unknown) = ^CallSideEffect : ~m? -# 2312| v2312_43(void) = ^IndirectReadSideEffect[-1] : &:r2312_39, ~m? -# 2312| mu2312_44(String) = ^IndirectMayWriteSideEffect[-1] : &:r2312_39 -# 2315| v2315_1(void) = NoOp : -# 2302| v2302_4(void) = ReturnVoid : -# 2302| v2302_5(void) = AliasedUse : ~m? -# 2302| v2302_6(void) = ExitFunction : - -# 2317| void IfDestructors2(bool) -# 2317| Block 0 -# 2317| v2317_1(void) = EnterFunction : -# 2317| mu2317_2(unknown) = AliasedDefinition : -# 2317| mu2317_3(unknown) = InitializeNonLocal : -# 2317| r2317_4(glval) = VariableAddress[b] : -# 2317| mu2317_5(bool) = InitializeParameter[b] : &:r2317_4 -# 2318| r2318_1(glval) = VariableAddress[s] : -# 2318| mu2318_2(String) = Uninitialized[s] : &:r2318_1 -# 2318| r2318_3(glval) = FunctionAddress[String] : -# 2318| r2318_4(glval) = StringConstant["hello"] : -# 2318| r2318_5(char *) = Convert : r2318_4 -# 2318| v2318_6(void) = Call[String] : func:r2318_3, this:r2318_1, 0:r2318_5 -# 2318| mu2318_7(unknown) = ^CallSideEffect : ~m? -# 2318| v2318_8(void) = ^BufferReadSideEffect[0] : &:r2318_5, ~m? -# 2318| mu2318_9(String) = ^IndirectMayWriteSideEffect[-1] : &:r2318_1 -# 2318| r2318_10(glval) = VariableAddress[b] : -# 2318| r2318_11(bool) = Load[b] : &:r2318_10, ~m? -# 2318| v2318_12(void) = ConditionalBranch : r2318_11 +# 2314| Block 9 +# 2314| r2314_33(glval) = VariableAddress[s2] : +# 2314| r2314_34(glval) = FunctionAddress[~String] : +# 2314| v2314_35(void) = Call[~String] : func:r2314_34, this:r2314_33 +# 2314| mu2314_36(unknown) = ^CallSideEffect : ~m? +# 2314| v2314_37(void) = ^IndirectReadSideEffect[-1] : &:r2314_33, ~m? +# 2314| mu2314_38(String) = ^IndirectMayWriteSideEffect[-1] : &:r2314_33 +# 2314| r2314_39(glval) = VariableAddress[s] : +# 2314| r2314_40(glval) = FunctionAddress[~String] : +# 2314| v2314_41(void) = Call[~String] : func:r2314_40, this:r2314_39 +# 2314| mu2314_42(unknown) = ^CallSideEffect : ~m? +# 2314| v2314_43(void) = ^IndirectReadSideEffect[-1] : &:r2314_39, ~m? +# 2314| mu2314_44(String) = ^IndirectMayWriteSideEffect[-1] : &:r2314_39 +# 2317| v2317_1(void) = NoOp : +# 2304| v2304_4(void) = ReturnVoid : +# 2304| v2304_5(void) = AliasedUse : ~m? +# 2304| v2304_6(void) = ExitFunction : + +# 2319| void IfDestructors2(bool) +# 2319| Block 0 +# 2319| v2319_1(void) = EnterFunction : +# 2319| mu2319_2(unknown) = AliasedDefinition : +# 2319| mu2319_3(unknown) = InitializeNonLocal : +# 2319| r2319_4(glval) = VariableAddress[b] : +# 2319| mu2319_5(bool) = InitializeParameter[b] : &:r2319_4 +# 2320| r2320_1(glval) = VariableAddress[s] : +# 2320| mu2320_2(String) = Uninitialized[s] : &:r2320_1 +# 2320| r2320_3(glval) = FunctionAddress[String] : +# 2320| r2320_4(glval) = StringConstant["hello"] : +# 2320| r2320_5(char *) = Convert : r2320_4 +# 2320| v2320_6(void) = Call[String] : func:r2320_3, this:r2320_1, 0:r2320_5 +# 2320| mu2320_7(unknown) = ^CallSideEffect : ~m? +# 2320| v2320_8(void) = ^BufferReadSideEffect[0] : &:r2320_5, ~m? +# 2320| mu2320_9(String) = ^IndirectMayWriteSideEffect[-1] : &:r2320_1 +# 2320| r2320_10(glval) = VariableAddress[b] : +# 2320| r2320_11(bool) = Load[b] : &:r2320_10, ~m? +# 2320| v2320_12(void) = ConditionalBranch : r2320_11 #-----| False -> Block 2 #-----| True -> Block 1 -# 2319| Block 1 -# 2319| r2319_1(glval) = VariableAddress[x] : -# 2319| r2319_2(int) = Constant[0] : -# 2319| mu2319_3(int) = Store[x] : &:r2319_1, r2319_2 +# 2321| Block 1 +# 2321| r2321_1(glval) = VariableAddress[x] : +# 2321| r2321_2(int) = Constant[0] : +# 2321| mu2321_3(int) = Store[x] : &:r2321_1, r2321_2 #-----| Goto -> Block 3 -# 2321| Block 2 -# 2321| r2321_1(glval) = VariableAddress[y] : -# 2321| r2321_2(int) = Constant[0] : -# 2321| mu2321_3(int) = Store[y] : &:r2321_1, r2321_2 +# 2323| Block 2 +# 2323| r2323_1(glval) = VariableAddress[y] : +# 2323| r2323_2(int) = Constant[0] : +# 2323| mu2323_3(int) = Store[y] : &:r2323_1, r2323_2 #-----| Goto -> Block 3 -# 2322| Block 3 -# 2322| r2322_1(glval) = VariableAddress[s] : -# 2322| r2322_2(glval) = FunctionAddress[~String] : -# 2322| v2322_3(void) = Call[~String] : func:r2322_2, this:r2322_1 -# 2322| mu2322_4(unknown) = ^CallSideEffect : ~m? -# 2322| v2322_5(void) = ^IndirectReadSideEffect[-1] : &:r2322_1, ~m? -# 2322| mu2322_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2322_1 -# 2323| v2323_1(void) = NoOp : -# 2317| v2317_6(void) = ReturnVoid : -# 2317| v2317_7(void) = AliasedUse : ~m? -# 2317| v2317_8(void) = ExitFunction : - -# 2332| void IfDestructors3(bool) -# 2332| Block 0 -# 2332| v2332_1(void) = EnterFunction : -# 2332| mu2332_2(unknown) = AliasedDefinition : -# 2332| mu2332_3(unknown) = InitializeNonLocal : -# 2332| r2332_4(glval) = VariableAddress[b] : -# 2332| mu2332_5(bool) = InitializeParameter[b] : &:r2332_4 -# 2333| r2333_1(glval) = VariableAddress[B] : -# 2333| mu2333_2(Bool) = Uninitialized[B] : &:r2333_1 -# 2333| r2333_3(glval) = FunctionAddress[Bool] : -# 2333| r2333_4(glval) = VariableAddress[b] : -# 2333| r2333_5(bool) = Load[b] : &:r2333_4, ~m? -# 2333| v2333_6(void) = Call[Bool] : func:r2333_3, this:r2333_1, 0:r2333_5 -# 2333| mu2333_7(unknown) = ^CallSideEffect : ~m? -# 2333| mu2333_8(Bool) = ^IndirectMayWriteSideEffect[-1] : &:r2333_1 -# 2333| r2333_9(glval) = VariableAddress[B] : -# 2333| r2333_10(glval) = FunctionAddress[operator bool] : -# 2333| r2333_11(bool) = Call[operator bool] : func:r2333_10, this:r2333_9 -# 2333| mu2333_12(unknown) = ^CallSideEffect : ~m? -# 2333| v2333_13(void) = ^IndirectReadSideEffect[-1] : &:r2333_9, ~m? -# 2333| mu2333_14(Bool) = ^IndirectMayWriteSideEffect[-1] : &:r2333_9 -# 2333| r2333_15(bool) = CopyValue : r2333_11 -# 2333| v2333_16(void) = ConditionalBranch : r2333_15 +# 2324| Block 3 +# 2324| r2324_1(glval) = VariableAddress[s] : +# 2324| r2324_2(glval) = FunctionAddress[~String] : +# 2324| v2324_3(void) = Call[~String] : func:r2324_2, this:r2324_1 +# 2324| mu2324_4(unknown) = ^CallSideEffect : ~m? +# 2324| v2324_5(void) = ^IndirectReadSideEffect[-1] : &:r2324_1, ~m? +# 2324| mu2324_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2324_1 +# 2325| v2325_1(void) = NoOp : +# 2319| v2319_6(void) = ReturnVoid : +# 2319| v2319_7(void) = AliasedUse : ~m? +# 2319| v2319_8(void) = ExitFunction : + +# 2334| void IfDestructors3(bool) +# 2334| Block 0 +# 2334| v2334_1(void) = EnterFunction : +# 2334| mu2334_2(unknown) = AliasedDefinition : +# 2334| mu2334_3(unknown) = InitializeNonLocal : +# 2334| r2334_4(glval) = VariableAddress[b] : +# 2334| mu2334_5(bool) = InitializeParameter[b] : &:r2334_4 +# 2335| r2335_1(glval) = VariableAddress[B] : +# 2335| mu2335_2(Bool) = Uninitialized[B] : &:r2335_1 +# 2335| r2335_3(glval) = FunctionAddress[Bool] : +# 2335| r2335_4(glval) = VariableAddress[b] : +# 2335| r2335_5(bool) = Load[b] : &:r2335_4, ~m? +# 2335| v2335_6(void) = Call[Bool] : func:r2335_3, this:r2335_1, 0:r2335_5 +# 2335| mu2335_7(unknown) = ^CallSideEffect : ~m? +# 2335| mu2335_8(Bool) = ^IndirectMayWriteSideEffect[-1] : &:r2335_1 +# 2335| r2335_9(glval) = VariableAddress[B] : +# 2335| r2335_10(glval) = FunctionAddress[operator bool] : +# 2335| r2335_11(bool) = Call[operator bool] : func:r2335_10, this:r2335_9 +# 2335| mu2335_12(unknown) = ^CallSideEffect : ~m? +# 2335| v2335_13(void) = ^IndirectReadSideEffect[-1] : &:r2335_9, ~m? +# 2335| mu2335_14(Bool) = ^IndirectMayWriteSideEffect[-1] : &:r2335_9 +# 2335| r2335_15(bool) = CopyValue : r2335_11 +# 2335| v2335_16(void) = ConditionalBranch : r2335_15 #-----| False -> Block 2 #-----| True -> Block 1 -# 2334| Block 1 -# 2334| r2334_1(glval) = VariableAddress[s1] : -# 2334| mu2334_2(String) = Uninitialized[s1] : &:r2334_1 -# 2334| r2334_3(glval) = FunctionAddress[String] : -# 2334| v2334_4(void) = Call[String] : func:r2334_3, this:r2334_1 -# 2334| mu2334_5(unknown) = ^CallSideEffect : ~m? -# 2334| mu2334_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2334_1 -# 2335| r2335_1(glval) = VariableAddress[s1] : -# 2335| r2335_2(glval) = FunctionAddress[~String] : -# 2335| v2335_3(void) = Call[~String] : func:r2335_2, this:r2335_1 -# 2335| mu2335_4(unknown) = ^CallSideEffect : ~m? -# 2335| v2335_5(void) = ^IndirectReadSideEffect[-1] : &:r2335_1, ~m? -# 2335| mu2335_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2335_1 -#-----| Goto -> Block 3 - -# 2336| Block 2 -# 2336| r2336_1(glval) = VariableAddress[s2] : -# 2336| mu2336_2(String) = Uninitialized[s2] : &:r2336_1 +# 2336| Block 1 +# 2336| r2336_1(glval) = VariableAddress[s1] : +# 2336| mu2336_2(String) = Uninitialized[s1] : &:r2336_1 # 2336| r2336_3(glval) = FunctionAddress[String] : # 2336| v2336_4(void) = Call[String] : func:r2336_3, this:r2336_1 # 2336| mu2336_5(unknown) = ^CallSideEffect : ~m? # 2336| mu2336_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2336_1 -# 2337| r2337_1(glval) = VariableAddress[s2] : +# 2337| r2337_1(glval) = VariableAddress[s1] : # 2337| r2337_2(glval) = FunctionAddress[~String] : # 2337| v2337_3(void) = Call[~String] : func:r2337_2, this:r2337_1 # 2337| mu2337_4(unknown) = ^CallSideEffect : ~m? @@ -16319,756 +16372,771 @@ ir.cpp: # 2337| mu2337_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2337_1 #-----| Goto -> Block 3 -# 2337| Block 3 -# 2337| r2337_7(glval) = VariableAddress[B] : -# 2337| r2337_8(glval) = FunctionAddress[~Bool] : -# 2337| v2337_9(void) = Call[~Bool] : func:r2337_8, this:r2337_7 -# 2337| mu2337_10(unknown) = ^CallSideEffect : ~m? -# 2337| v2337_11(void) = ^IndirectReadSideEffect[-1] : &:r2337_7, ~m? -# 2337| mu2337_12(Bool) = ^IndirectMayWriteSideEffect[-1] : &:r2337_7 -# 2338| v2338_1(void) = NoOp : -# 2332| v2332_6(void) = ReturnVoid : -# 2332| v2332_7(void) = AliasedUse : ~m? -# 2332| v2332_8(void) = ExitFunction : - -# 2340| void WhileLoopDestructors(bool) -# 2340| Block 0 -# 2340| v2340_1(void) = EnterFunction : -# 2340| mu2340_2(unknown) = AliasedDefinition : -# 2340| mu2340_3(unknown) = InitializeNonLocal : -# 2340| r2340_4(glval) = VariableAddress[b] : -# 2340| mu2340_5(bool) = InitializeParameter[b] : &:r2340_4 -# 2342| r2342_1(glval) = VariableAddress[s] : -# 2342| mu2342_2(String) = Uninitialized[s] : &:r2342_1 -# 2342| r2342_3(glval) = FunctionAddress[String] : -# 2342| v2342_4(void) = Call[String] : func:r2342_3, this:r2342_1 -# 2342| mu2342_5(unknown) = ^CallSideEffect : ~m? -# 2342| mu2342_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2342_1 +# 2338| Block 2 +# 2338| r2338_1(glval) = VariableAddress[s2] : +# 2338| mu2338_2(String) = Uninitialized[s2] : &:r2338_1 +# 2338| r2338_3(glval) = FunctionAddress[String] : +# 2338| v2338_4(void) = Call[String] : func:r2338_3, this:r2338_1 +# 2338| mu2338_5(unknown) = ^CallSideEffect : ~m? +# 2338| mu2338_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2338_1 +# 2339| r2339_1(glval) = VariableAddress[s2] : +# 2339| r2339_2(glval) = FunctionAddress[~String] : +# 2339| v2339_3(void) = Call[~String] : func:r2339_2, this:r2339_1 +# 2339| mu2339_4(unknown) = ^CallSideEffect : ~m? +# 2339| v2339_5(void) = ^IndirectReadSideEffect[-1] : &:r2339_1, ~m? +# 2339| mu2339_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2339_1 +#-----| Goto -> Block 3 + +# 2339| Block 3 +# 2339| r2339_7(glval) = VariableAddress[B] : +# 2339| r2339_8(glval) = FunctionAddress[~Bool] : +# 2339| v2339_9(void) = Call[~Bool] : func:r2339_8, this:r2339_7 +# 2339| mu2339_10(unknown) = ^CallSideEffect : ~m? +# 2339| v2339_11(void) = ^IndirectReadSideEffect[-1] : &:r2339_7, ~m? +# 2339| mu2339_12(Bool) = ^IndirectMayWriteSideEffect[-1] : &:r2339_7 +# 2340| v2340_1(void) = NoOp : +# 2334| v2334_6(void) = ReturnVoid : +# 2334| v2334_7(void) = AliasedUse : ~m? +# 2334| v2334_8(void) = ExitFunction : + +# 2342| void WhileLoopDestructors(bool) +# 2342| Block 0 +# 2342| v2342_1(void) = EnterFunction : +# 2342| mu2342_2(unknown) = AliasedDefinition : +# 2342| mu2342_3(unknown) = InitializeNonLocal : +# 2342| r2342_4(glval) = VariableAddress[b] : +# 2342| mu2342_5(bool) = InitializeParameter[b] : &:r2342_4 +# 2344| r2344_1(glval) = VariableAddress[s] : +# 2344| mu2344_2(String) = Uninitialized[s] : &:r2344_1 +# 2344| r2344_3(glval) = FunctionAddress[String] : +# 2344| v2344_4(void) = Call[String] : func:r2344_3, this:r2344_1 +# 2344| mu2344_5(unknown) = ^CallSideEffect : ~m? +# 2344| mu2344_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2344_1 #-----| Goto -> Block 1 -# 2343| Block 1 -# 2343| r2343_1(glval) = VariableAddress[b] : -# 2343| r2343_2(bool) = Load[b] : &:r2343_1, ~m? -# 2343| v2343_3(void) = ConditionalBranch : r2343_2 +# 2345| Block 1 +# 2345| r2345_1(glval) = VariableAddress[b] : +# 2345| r2345_2(bool) = Load[b] : &:r2345_1, ~m? +# 2345| v2345_3(void) = ConditionalBranch : r2345_2 #-----| False -> Block 3 #-----| True -> Block 2 -# 2344| Block 2 -# 2344| r2344_1(bool) = Constant[0] : -# 2344| r2344_2(glval) = VariableAddress[b] : -# 2344| mu2344_3(bool) = Store[b] : &:r2344_2, r2344_1 +# 2346| Block 2 +# 2346| r2346_1(bool) = Constant[0] : +# 2346| r2346_2(glval) = VariableAddress[b] : +# 2346| mu2346_3(bool) = Store[b] : &:r2346_2, r2346_1 #-----| Goto (back edge) -> Block 1 -# 2346| Block 3 -# 2346| r2346_1(glval) = VariableAddress[s] : -# 2346| r2346_2(glval) = FunctionAddress[~String] : -# 2346| v2346_3(void) = Call[~String] : func:r2346_2, this:r2346_1 -# 2346| mu2346_4(unknown) = ^CallSideEffect : ~m? -# 2346| v2346_5(void) = ^IndirectReadSideEffect[-1] : &:r2346_1, ~m? -# 2346| mu2346_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2346_1 +# 2348| Block 3 +# 2348| r2348_1(glval) = VariableAddress[s] : +# 2348| r2348_2(glval) = FunctionAddress[~String] : +# 2348| v2348_3(void) = Call[~String] : func:r2348_2, this:r2348_1 +# 2348| mu2348_4(unknown) = ^CallSideEffect : ~m? +# 2348| v2348_5(void) = ^IndirectReadSideEffect[-1] : &:r2348_1, ~m? +# 2348| mu2348_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2348_1 #-----| Goto -> Block 4 -# 2349| Block 4 -# 2349| r2349_1(glval) = VariableAddress[B] : -# 2349| mu2349_2(Bool) = Uninitialized[B] : &:r2349_1 -# 2349| r2349_3(glval) = FunctionAddress[Bool] : -# 2349| r2349_4(glval) = VariableAddress[b] : -# 2349| r2349_5(bool) = Load[b] : &:r2349_4, ~m? -# 2349| v2349_6(void) = Call[Bool] : func:r2349_3, this:r2349_1, 0:r2349_5 -# 2349| mu2349_7(unknown) = ^CallSideEffect : ~m? -# 2349| mu2349_8(Bool) = ^IndirectMayWriteSideEffect[-1] : &:r2349_1 -# 2349| r2349_9(glval) = VariableAddress[B] : -# 2349| r2349_10(glval) = FunctionAddress[operator bool] : -# 2349| r2349_11(bool) = Call[operator bool] : func:r2349_10, this:r2349_9 -# 2349| mu2349_12(unknown) = ^CallSideEffect : ~m? -# 2349| v2349_13(void) = ^IndirectReadSideEffect[-1] : &:r2349_9, ~m? -# 2349| mu2349_14(Bool) = ^IndirectMayWriteSideEffect[-1] : &:r2349_9 -# 2349| r2349_15(bool) = CopyValue : r2349_11 -# 2349| v2349_16(void) = ConditionalBranch : r2349_15 +# 2351| Block 4 +# 2351| r2351_1(glval) = VariableAddress[B] : +# 2351| mu2351_2(Bool) = Uninitialized[B] : &:r2351_1 +# 2351| r2351_3(glval) = FunctionAddress[Bool] : +# 2351| r2351_4(glval) = VariableAddress[b] : +# 2351| r2351_5(bool) = Load[b] : &:r2351_4, ~m? +# 2351| v2351_6(void) = Call[Bool] : func:r2351_3, this:r2351_1, 0:r2351_5 +# 2351| mu2351_7(unknown) = ^CallSideEffect : ~m? +# 2351| mu2351_8(Bool) = ^IndirectMayWriteSideEffect[-1] : &:r2351_1 +# 2351| r2351_9(glval) = VariableAddress[B] : +# 2351| r2351_10(glval) = FunctionAddress[operator bool] : +# 2351| r2351_11(bool) = Call[operator bool] : func:r2351_10, this:r2351_9 +# 2351| mu2351_12(unknown) = ^CallSideEffect : ~m? +# 2351| v2351_13(void) = ^IndirectReadSideEffect[-1] : &:r2351_9, ~m? +# 2351| mu2351_14(Bool) = ^IndirectMayWriteSideEffect[-1] : &:r2351_9 +# 2351| r2351_15(bool) = CopyValue : r2351_11 +# 2351| v2351_16(void) = ConditionalBranch : r2351_15 #-----| False -> Block 6 #-----| True -> Block 5 -# 2350| Block 5 -# 2350| r2350_1(bool) = Constant[0] : -# 2350| r2350_2(glval) = VariableAddress[b] : -# 2350| mu2350_3(bool) = Store[b] : &:r2350_2, r2350_1 -# 2351| r2351_1(glval) = VariableAddress[B] : -# 2351| r2351_2(glval) = FunctionAddress[~Bool] : -# 2351| v2351_3(void) = Call[~Bool] : func:r2351_2, this:r2351_1 -# 2351| mu2351_4(unknown) = ^CallSideEffect : ~m? -# 2351| v2351_5(void) = ^IndirectReadSideEffect[-1] : &:r2351_1, ~m? -# 2351| mu2351_6(Bool) = ^IndirectMayWriteSideEffect[-1] : &:r2351_1 +# 2352| Block 5 +# 2352| r2352_1(bool) = Constant[0] : +# 2352| r2352_2(glval) = VariableAddress[b] : +# 2352| mu2352_3(bool) = Store[b] : &:r2352_2, r2352_1 +# 2353| r2353_1(glval) = VariableAddress[B] : +# 2353| r2353_2(glval) = FunctionAddress[~Bool] : +# 2353| v2353_3(void) = Call[~Bool] : func:r2353_2, this:r2353_1 +# 2353| mu2353_4(unknown) = ^CallSideEffect : ~m? +# 2353| v2353_5(void) = ^IndirectReadSideEffect[-1] : &:r2353_1, ~m? +# 2353| mu2353_6(Bool) = ^IndirectMayWriteSideEffect[-1] : &:r2353_1 #-----| Goto (back edge) -> Block 4 -# 2351| Block 6 -# 2351| r2351_7(glval) = VariableAddress[B] : -# 2351| r2351_8(glval) = FunctionAddress[~Bool] : -# 2351| v2351_9(void) = Call[~Bool] : func:r2351_8, this:r2351_7 -# 2351| mu2351_10(unknown) = ^CallSideEffect : ~m? -# 2351| v2351_11(void) = ^IndirectReadSideEffect[-1] : &:r2351_7, ~m? -# 2351| mu2351_12(Bool) = ^IndirectMayWriteSideEffect[-1] : &:r2351_7 -# 2353| v2353_1(void) = NoOp : -# 2340| v2340_6(void) = ReturnVoid : -# 2340| v2340_7(void) = AliasedUse : ~m? -# 2340| v2340_8(void) = ExitFunction : - -# 2355| void VoidFunc() -# 2355| Block 0 -# 2355| v2355_1(void) = EnterFunction : -# 2355| mu2355_2(unknown) = AliasedDefinition : -# 2355| mu2355_3(unknown) = InitializeNonLocal : -# 2355| v2355_4(void) = NoOp : -# 2355| v2355_5(void) = ReturnVoid : -# 2355| v2355_6(void) = AliasedUse : ~m? -# 2355| v2355_7(void) = ExitFunction : - -# 2357| void IfReturnDestructors(bool) +# 2353| Block 6 +# 2353| r2353_7(glval) = VariableAddress[B] : +# 2353| r2353_8(glval) = FunctionAddress[~Bool] : +# 2353| v2353_9(void) = Call[~Bool] : func:r2353_8, this:r2353_7 +# 2353| mu2353_10(unknown) = ^CallSideEffect : ~m? +# 2353| v2353_11(void) = ^IndirectReadSideEffect[-1] : &:r2353_7, ~m? +# 2353| mu2353_12(Bool) = ^IndirectMayWriteSideEffect[-1] : &:r2353_7 +# 2355| v2355_1(void) = NoOp : +# 2342| v2342_6(void) = ReturnVoid : +# 2342| v2342_7(void) = AliasedUse : ~m? +# 2342| v2342_8(void) = ExitFunction : + +# 2357| void VoidFunc() # 2357| Block 0 -# 2357| v2357_1(void) = EnterFunction : -# 2357| mu2357_2(unknown) = AliasedDefinition : -# 2357| mu2357_3(unknown) = InitializeNonLocal : -# 2357| r2357_4(glval) = VariableAddress[b] : -# 2357| mu2357_5(bool) = InitializeParameter[b] : &:r2357_4 -# 2358| r2358_1(glval) = VariableAddress[s] : -# 2358| mu2358_2(String) = Uninitialized[s] : &:r2358_1 -# 2358| r2358_3(glval) = FunctionAddress[String] : -# 2358| v2358_4(void) = Call[String] : func:r2358_3, this:r2358_1 -# 2358| mu2358_5(unknown) = ^CallSideEffect : ~m? -# 2358| mu2358_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2358_1 -# 2359| r2359_1(glval) = VariableAddress[b] : -# 2359| r2359_2(bool) = Load[b] : &:r2359_1, ~m? -# 2359| v2359_3(void) = ConditionalBranch : r2359_2 +# 2357| v2357_1(void) = EnterFunction : +# 2357| mu2357_2(unknown) = AliasedDefinition : +# 2357| mu2357_3(unknown) = InitializeNonLocal : +# 2357| v2357_4(void) = NoOp : +# 2357| v2357_5(void) = ReturnVoid : +# 2357| v2357_6(void) = AliasedUse : ~m? +# 2357| v2357_7(void) = ExitFunction : + +# 2359| void IfReturnDestructors(bool) +# 2359| Block 0 +# 2359| v2359_1(void) = EnterFunction : +# 2359| mu2359_2(unknown) = AliasedDefinition : +# 2359| mu2359_3(unknown) = InitializeNonLocal : +# 2359| r2359_4(glval) = VariableAddress[b] : +# 2359| mu2359_5(bool) = InitializeParameter[b] : &:r2359_4 +# 2360| r2360_1(glval) = VariableAddress[s] : +# 2360| mu2360_2(String) = Uninitialized[s] : &:r2360_1 +# 2360| r2360_3(glval) = FunctionAddress[String] : +# 2360| v2360_4(void) = Call[String] : func:r2360_3, this:r2360_1 +# 2360| mu2360_5(unknown) = ^CallSideEffect : ~m? +# 2360| mu2360_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2360_1 +# 2361| r2361_1(glval) = VariableAddress[b] : +# 2361| r2361_2(bool) = Load[b] : &:r2361_1, ~m? +# 2361| v2361_3(void) = ConditionalBranch : r2361_2 #-----| False -> Block 3 #-----| True -> Block 2 -# 2357| Block 1 -# 2357| v2357_6(void) = ReturnVoid : -# 2357| v2357_7(void) = AliasedUse : ~m? -# 2357| v2357_8(void) = ExitFunction : - -# 2360| Block 2 -# 2360| v2360_1(void) = NoOp : -# 2366| r2366_1(glval) = VariableAddress[s] : -# 2366| r2366_2(glval) = FunctionAddress[~String] : -# 2366| v2366_3(void) = Call[~String] : func:r2366_2, this:r2366_1 -# 2366| mu2366_4(unknown) = ^CallSideEffect : ~m? -# 2366| v2366_5(void) = ^IndirectReadSideEffect[-1] : &:r2366_1, ~m? -# 2366| mu2366_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2366_1 +# 2359| Block 1 +# 2359| v2359_6(void) = ReturnVoid : +# 2359| v2359_7(void) = AliasedUse : ~m? +# 2359| v2359_8(void) = ExitFunction : + +# 2362| Block 2 +# 2362| v2362_1(void) = NoOp : +# 2368| r2368_1(glval) = VariableAddress[s] : +# 2368| r2368_2(glval) = FunctionAddress[~String] : +# 2368| v2368_3(void) = Call[~String] : func:r2368_2, this:r2368_1 +# 2368| mu2368_4(unknown) = ^CallSideEffect : ~m? +# 2368| v2368_5(void) = ^IndirectReadSideEffect[-1] : &:r2368_1, ~m? +# 2368| mu2368_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2368_1 #-----| Goto -> Block 1 -# 2362| Block 3 -# 2362| r2362_1(glval) = VariableAddress[b] : -# 2362| r2362_2(bool) = Load[b] : &:r2362_1, ~m? -# 2362| v2362_3(void) = ConditionalBranch : r2362_2 +# 2364| Block 3 +# 2364| r2364_1(glval) = VariableAddress[b] : +# 2364| r2364_2(bool) = Load[b] : &:r2364_1, ~m? +# 2364| v2364_3(void) = ConditionalBranch : r2364_2 #-----| False -> Block 5 #-----| True -> Block 4 -# 2363| Block 4 -# 2363| r2363_1(glval) = FunctionAddress[VoidFunc] : -# 2363| v2363_2(void) = Call[VoidFunc] : func:r2363_1 -# 2363| mu2363_3(unknown) = ^CallSideEffect : ~m? -# 2363| v2363_4(void) = NoOp : -# 2366| r2366_7(glval) = VariableAddress[s] : -# 2366| r2366_8(glval) = FunctionAddress[~String] : -# 2366| v2366_9(void) = Call[~String] : func:r2366_8, this:r2366_7 -# 2366| mu2366_10(unknown) = ^CallSideEffect : ~m? -# 2366| v2366_11(void) = ^IndirectReadSideEffect[-1] : &:r2366_7, ~m? -# 2366| mu2366_12(String) = ^IndirectMayWriteSideEffect[-1] : &:r2366_7 +# 2365| Block 4 +# 2365| r2365_1(glval) = FunctionAddress[VoidFunc] : +# 2365| v2365_2(void) = Call[VoidFunc] : func:r2365_1 +# 2365| mu2365_3(unknown) = ^CallSideEffect : ~m? +# 2365| v2365_4(void) = NoOp : +# 2368| r2368_7(glval) = VariableAddress[s] : +# 2368| r2368_8(glval) = FunctionAddress[~String] : +# 2368| v2368_9(void) = Call[~String] : func:r2368_8, this:r2368_7 +# 2368| mu2368_10(unknown) = ^CallSideEffect : ~m? +# 2368| v2368_11(void) = ^IndirectReadSideEffect[-1] : &:r2368_7, ~m? +# 2368| mu2368_12(String) = ^IndirectMayWriteSideEffect[-1] : &:r2368_7 #-----| Goto -> Block 1 -# 2365| Block 5 -# 2365| r2365_1(glval) = VariableAddress[s] : -# 2366| v2366_13(void) = NoOp : -# 2366| r2366_14(glval) = VariableAddress[s] : -# 2366| r2366_15(glval) = FunctionAddress[~String] : -# 2366| v2366_16(void) = Call[~String] : func:r2366_15, this:r2366_14 -# 2366| mu2366_17(unknown) = ^CallSideEffect : ~m? -# 2366| v2366_18(void) = ^IndirectReadSideEffect[-1] : &:r2366_14, ~m? -# 2366| mu2366_19(String) = ^IndirectMayWriteSideEffect[-1] : &:r2366_14 +# 2367| Block 5 +# 2367| r2367_1(glval) = VariableAddress[s] : +# 2368| v2368_13(void) = NoOp : +# 2368| r2368_14(glval) = VariableAddress[s] : +# 2368| r2368_15(glval) = FunctionAddress[~String] : +# 2368| v2368_16(void) = Call[~String] : func:r2368_15, this:r2368_14 +# 2368| mu2368_17(unknown) = ^CallSideEffect : ~m? +# 2368| v2368_18(void) = ^IndirectReadSideEffect[-1] : &:r2368_14, ~m? +# 2368| mu2368_19(String) = ^IndirectMayWriteSideEffect[-1] : &:r2368_14 #-----| Goto -> Block 1 -# 2368| int IfReturnDestructors3(bool) -# 2368| Block 0 -# 2368| v2368_1(void) = EnterFunction : -# 2368| mu2368_2(unknown) = AliasedDefinition : -# 2368| mu2368_3(unknown) = InitializeNonLocal : -# 2368| r2368_4(glval) = VariableAddress[b] : -# 2368| mu2368_5(bool) = InitializeParameter[b] : &:r2368_4 -# 2369| r2369_1(glval) = VariableAddress[s] : -# 2369| mu2369_2(String) = Uninitialized[s] : &:r2369_1 -# 2369| r2369_3(glval) = FunctionAddress[String] : -# 2369| v2369_4(void) = Call[String] : func:r2369_3, this:r2369_1 -# 2369| mu2369_5(unknown) = ^CallSideEffect : ~m? -# 2369| mu2369_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2369_1 -# 2370| r2370_1(glval) = VariableAddress[b] : -# 2370| r2370_2(bool) = Load[b] : &:r2370_1, ~m? -# 2370| v2370_3(void) = ConditionalBranch : r2370_2 +# 2370| int IfReturnDestructors3(bool) +# 2370| Block 0 +# 2370| v2370_1(void) = EnterFunction : +# 2370| mu2370_2(unknown) = AliasedDefinition : +# 2370| mu2370_3(unknown) = InitializeNonLocal : +# 2370| r2370_4(glval) = VariableAddress[b] : +# 2370| mu2370_5(bool) = InitializeParameter[b] : &:r2370_4 +# 2371| r2371_1(glval) = VariableAddress[s] : +# 2371| mu2371_2(String) = Uninitialized[s] : &:r2371_1 +# 2371| r2371_3(glval) = FunctionAddress[String] : +# 2371| v2371_4(void) = Call[String] : func:r2371_3, this:r2371_1 +# 2371| mu2371_5(unknown) = ^CallSideEffect : ~m? +# 2371| mu2371_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2371_1 +# 2372| r2372_1(glval) = VariableAddress[b] : +# 2372| r2372_2(bool) = Load[b] : &:r2372_1, ~m? +# 2372| v2372_3(void) = ConditionalBranch : r2372_2 #-----| False -> Block 3 #-----| True -> Block 2 -# 2368| Block 1 -# 2368| r2368_6(glval) = VariableAddress[#return] : -# 2368| v2368_7(void) = ReturnValue : &:r2368_6, ~m? -# 2368| v2368_8(void) = AliasedUse : ~m? -# 2368| v2368_9(void) = ExitFunction : - -# 2371| Block 2 -# 2371| r2371_1(glval) = VariableAddress[#return] : -# 2371| r2371_2(int) = Constant[1] : -# 2371| mu2371_3(int) = Store[#return] : &:r2371_1, r2371_2 -# 2374| r2374_1(glval) = VariableAddress[s] : -# 2374| r2374_2(glval) = FunctionAddress[~String] : -# 2374| v2374_3(void) = Call[~String] : func:r2374_2, this:r2374_1 -# 2374| mu2374_4(unknown) = ^CallSideEffect : ~m? -# 2374| v2374_5(void) = ^IndirectReadSideEffect[-1] : &:r2374_1, ~m? -# 2374| mu2374_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2374_1 -#-----| Goto -> Block 1 +# 2370| Block 1 +# 2370| r2370_6(glval) = VariableAddress[#return] : +# 2370| v2370_7(void) = ReturnValue : &:r2370_6, ~m? +# 2370| v2370_8(void) = AliasedUse : ~m? +# 2370| v2370_9(void) = ExitFunction : -# 2373| Block 3 +# 2373| Block 2 # 2373| r2373_1(glval) = VariableAddress[#return] : -# 2373| r2373_2(int) = Constant[0] : +# 2373| r2373_2(int) = Constant[1] : # 2373| mu2373_3(int) = Store[#return] : &:r2373_1, r2373_2 -# 2374| r2374_7(glval) = VariableAddress[s] : -# 2374| r2374_8(glval) = FunctionAddress[~String] : -# 2374| v2374_9(void) = Call[~String] : func:r2374_8, this:r2374_7 -# 2374| mu2374_10(unknown) = ^CallSideEffect : ~m? -# 2374| v2374_11(void) = ^IndirectReadSideEffect[-1] : &:r2374_7, ~m? -# 2374| mu2374_12(String) = ^IndirectMayWriteSideEffect[-1] : &:r2374_7 +# 2376| r2376_1(glval) = VariableAddress[s] : +# 2376| r2376_2(glval) = FunctionAddress[~String] : +# 2376| v2376_3(void) = Call[~String] : func:r2376_2, this:r2376_1 +# 2376| mu2376_4(unknown) = ^CallSideEffect : ~m? +# 2376| v2376_5(void) = ^IndirectReadSideEffect[-1] : &:r2376_1, ~m? +# 2376| mu2376_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2376_1 +#-----| Goto -> Block 1 + +# 2375| Block 3 +# 2375| r2375_1(glval) = VariableAddress[#return] : +# 2375| r2375_2(int) = Constant[0] : +# 2375| mu2375_3(int) = Store[#return] : &:r2375_1, r2375_2 +# 2376| r2376_7(glval) = VariableAddress[s] : +# 2376| r2376_8(glval) = FunctionAddress[~String] : +# 2376| v2376_9(void) = Call[~String] : func:r2376_8, this:r2376_7 +# 2376| mu2376_10(unknown) = ^CallSideEffect : ~m? +# 2376| v2376_11(void) = ^IndirectReadSideEffect[-1] : &:r2376_7, ~m? +# 2376| mu2376_12(String) = ^IndirectMayWriteSideEffect[-1] : &:r2376_7 #-----| Goto -> Block 1 -# 2376| void VoidReturnDestructors() -# 2376| Block 0 -# 2376| v2376_1(void) = EnterFunction : -# 2376| mu2376_2(unknown) = AliasedDefinition : -# 2376| mu2376_3(unknown) = InitializeNonLocal : -# 2377| r2377_1(glval) = VariableAddress[s] : -# 2377| mu2377_2(String) = Uninitialized[s] : &:r2377_1 -# 2377| r2377_3(glval) = FunctionAddress[String] : -# 2377| v2377_4(void) = Call[String] : func:r2377_3, this:r2377_1 -# 2377| mu2377_5(unknown) = ^CallSideEffect : ~m? -# 2377| mu2377_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2377_1 -# 2378| r2378_1(glval) = FunctionAddress[VoidFunc] : -# 2378| v2378_2(void) = Call[VoidFunc] : func:r2378_1 -# 2378| mu2378_3(unknown) = ^CallSideEffect : ~m? -# 2378| v2378_4(void) = NoOp : +# 2378| void VoidReturnDestructors() +# 2378| Block 0 +# 2378| v2378_1(void) = EnterFunction : +# 2378| mu2378_2(unknown) = AliasedDefinition : +# 2378| mu2378_3(unknown) = InitializeNonLocal : # 2379| r2379_1(glval) = VariableAddress[s] : -# 2379| r2379_2(glval) = FunctionAddress[~String] : -# 2379| v2379_3(void) = Call[~String] : func:r2379_2, this:r2379_1 -# 2379| mu2379_4(unknown) = ^CallSideEffect : ~m? -# 2379| v2379_5(void) = ^IndirectReadSideEffect[-1] : &:r2379_1, ~m? +# 2379| mu2379_2(String) = Uninitialized[s] : &:r2379_1 +# 2379| r2379_3(glval) = FunctionAddress[String] : +# 2379| v2379_4(void) = Call[String] : func:r2379_3, this:r2379_1 +# 2379| mu2379_5(unknown) = ^CallSideEffect : ~m? # 2379| mu2379_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2379_1 -# 2376| v2376_4(void) = ReturnVoid : -# 2376| v2376_5(void) = AliasedUse : ~m? -# 2376| v2376_6(void) = ExitFunction : - -# 2389| return_routine_type::VoidToIntMemberFunc return_routine_type::GetVoidToIntFunc() -# 2389| Block 0 -# 2389| v2389_1(void) = EnterFunction : -# 2389| mu2389_2(unknown) = AliasedDefinition : -# 2389| mu2389_3(unknown) = InitializeNonLocal : -# 2391| r2391_1(glval<..:: *>) = VariableAddress[#return] : -# 2391| r2391_2(..()(..)) = FunctionAddress[VoidToInt] : -# 2391| mu2391_3(..:: *) = Store[#return] : &:r2391_1, r2391_2 -# 2389| r2389_4(glval<..:: *>) = VariableAddress[#return] : -# 2389| v2389_5(void) = ReturnValue : &:r2389_4, ~m? -# 2389| v2389_6(void) = AliasedUse : ~m? -# 2389| v2389_7(void) = ExitFunction : - -# 2396| int small_operation_should_not_be_constant_folded() -# 2396| Block 0 -# 2396| v2396_1(void) = EnterFunction : -# 2396| mu2396_2(unknown) = AliasedDefinition : -# 2396| mu2396_3(unknown) = InitializeNonLocal : -# 2397| r2397_1(glval) = VariableAddress[#return] : -# 2397| r2397_2(int) = Constant[1] : -# 2397| r2397_3(int) = Constant[2] : -# 2397| r2397_4(int) = BitXor : r2397_2, r2397_3 -# 2397| mu2397_5(int) = Store[#return] : &:r2397_1, r2397_4 -# 2396| r2396_4(glval) = VariableAddress[#return] : -# 2396| v2396_5(void) = ReturnValue : &:r2396_4, ~m? -# 2396| v2396_6(void) = AliasedUse : ~m? -# 2396| v2396_7(void) = ExitFunction : - -# 2407| int large_operation_should_be_constant_folded() -# 2407| Block 0 -# 2407| v2407_1(void) = EnterFunction : -# 2407| mu2407_2(unknown) = AliasedDefinition : -# 2407| mu2407_3(unknown) = InitializeNonLocal : -# 2408| r2408_1(glval) = VariableAddress[#return] : -# 2408| r2408_2(int) = Constant[0] : -# 2408| mu2408_3(int) = Store[#return] : &:r2408_1, r2408_2 -# 2407| r2407_4(glval) = VariableAddress[#return] : -# 2407| v2407_5(void) = ReturnValue : &:r2407_4, ~m? -# 2407| v2407_6(void) = AliasedUse : ~m? -# 2407| v2407_7(void) = ExitFunction : - -# 2411| void initialization_with_temp_destructor() -# 2411| Block 0 -# 2411| v2411_1(void) = EnterFunction : -# 2411| mu2411_2(unknown) = AliasedDefinition : -# 2411| mu2411_3(unknown) = InitializeNonLocal : -# 2412| r2412_1(glval) = VariableAddress[x] : -# 2412| r2412_2(glval) = VariableAddress[#temp2412:18] : -# 2412| mu2412_3(ClassWithDestructor) = Uninitialized[#temp2412:18] : &:r2412_2 -# 2412| r2412_4(glval) = FunctionAddress[ClassWithDestructor] : -# 2412| v2412_5(void) = Call[ClassWithDestructor] : func:r2412_4, this:r2412_2 -# 2412| mu2412_6(unknown) = ^CallSideEffect : ~m? -# 2412| mu2412_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2412_2 -# 2412| r2412_8(glval) = FunctionAddress[get_x] : -# 2412| r2412_9(char) = Call[get_x] : func:r2412_8, this:r2412_2 -# 2412| mu2412_10(unknown) = ^CallSideEffect : ~m? -# 2412| v2412_11(void) = ^IndirectReadSideEffect[-1] : &:r2412_2, ~m? -# 2412| mu2412_12(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2412_2 -# 2412| r2412_13(glval) = CopyValue : r2412_2 -# 2412| r2412_14(glval) = FunctionAddress[~ClassWithDestructor] : -# 2412| v2412_15(void) = Call[~ClassWithDestructor] : func:r2412_14, this:r2412_13 -# 2412| mu2412_16(unknown) = ^CallSideEffect : ~m? -# 2412| v2412_17(void) = ^IndirectReadSideEffect[-1] : &:r2412_13, ~m? -# 2412| mu2412_18(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2412_13 -# 2412| mu2412_19(char) = Store[x] : &:r2412_1, r2412_9 -# 2412| r2412_20(glval) = VariableAddress[x] : -# 2412| r2412_21(char) = Load[x] : &:r2412_20, ~m? -# 2412| r2412_22(char) = Constant[0] : -# 2412| r2412_23(bool) = CompareNE : r2412_21, r2412_22 -# 2412| r2412_24(bool) = CopyValue : r2412_23 -# 2412| v2412_25(void) = ConditionalBranch : r2412_24 +# 2380| r2380_1(glval) = FunctionAddress[VoidFunc] : +# 2380| v2380_2(void) = Call[VoidFunc] : func:r2380_1 +# 2380| mu2380_3(unknown) = ^CallSideEffect : ~m? +# 2380| v2380_4(void) = NoOp : +# 2381| r2381_1(glval) = VariableAddress[s] : +# 2381| r2381_2(glval) = FunctionAddress[~String] : +# 2381| v2381_3(void) = Call[~String] : func:r2381_2, this:r2381_1 +# 2381| mu2381_4(unknown) = ^CallSideEffect : ~m? +# 2381| v2381_5(void) = ^IndirectReadSideEffect[-1] : &:r2381_1, ~m? +# 2381| mu2381_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2381_1 +# 2378| v2378_4(void) = ReturnVoid : +# 2378| v2378_5(void) = AliasedUse : ~m? +# 2378| v2378_6(void) = ExitFunction : + +# 2391| return_routine_type::VoidToIntMemberFunc return_routine_type::GetVoidToIntFunc() +# 2391| Block 0 +# 2391| v2391_1(void) = EnterFunction : +# 2391| mu2391_2(unknown) = AliasedDefinition : +# 2391| mu2391_3(unknown) = InitializeNonLocal : +# 2393| r2393_1(glval<..:: *>) = VariableAddress[#return] : +# 2393| r2393_2(..()(..)) = FunctionAddress[VoidToInt] : +# 2393| mu2393_3(..:: *) = Store[#return] : &:r2393_1, r2393_2 +# 2391| r2391_4(glval<..:: *>) = VariableAddress[#return] : +# 2391| v2391_5(void) = ReturnValue : &:r2391_4, ~m? +# 2391| v2391_6(void) = AliasedUse : ~m? +# 2391| v2391_7(void) = ExitFunction : + +# 2398| int small_operation_should_not_be_constant_folded() +# 2398| Block 0 +# 2398| v2398_1(void) = EnterFunction : +# 2398| mu2398_2(unknown) = AliasedDefinition : +# 2398| mu2398_3(unknown) = InitializeNonLocal : +# 2399| r2399_1(glval) = VariableAddress[#return] : +# 2399| r2399_2(int) = Constant[1] : +# 2399| r2399_3(int) = Constant[2] : +# 2399| r2399_4(int) = BitXor : r2399_2, r2399_3 +# 2399| mu2399_5(int) = Store[#return] : &:r2399_1, r2399_4 +# 2398| r2398_4(glval) = VariableAddress[#return] : +# 2398| v2398_5(void) = ReturnValue : &:r2398_4, ~m? +# 2398| v2398_6(void) = AliasedUse : ~m? +# 2398| v2398_7(void) = ExitFunction : + +# 2409| int large_operation_should_be_constant_folded() +# 2409| Block 0 +# 2409| v2409_1(void) = EnterFunction : +# 2409| mu2409_2(unknown) = AliasedDefinition : +# 2409| mu2409_3(unknown) = InitializeNonLocal : +# 2410| r2410_1(glval) = VariableAddress[#return] : +# 2410| r2410_2(int) = Constant[0] : +# 2410| mu2410_3(int) = Store[#return] : &:r2410_1, r2410_2 +# 2409| r2409_4(glval) = VariableAddress[#return] : +# 2409| v2409_5(void) = ReturnValue : &:r2409_4, ~m? +# 2409| v2409_6(void) = AliasedUse : ~m? +# 2409| v2409_7(void) = ExitFunction : + +# 2413| void initialization_with_temp_destructor() +# 2413| Block 0 +# 2413| v2413_1(void) = EnterFunction : +# 2413| mu2413_2(unknown) = AliasedDefinition : +# 2413| mu2413_3(unknown) = InitializeNonLocal : +# 2414| r2414_1(glval) = VariableAddress[x] : +# 2414| r2414_2(glval) = VariableAddress[#temp2414:18] : +# 2414| mu2414_3(ClassWithDestructor) = Uninitialized[#temp2414:18] : &:r2414_2 +# 2414| r2414_4(glval) = FunctionAddress[ClassWithDestructor] : +# 2414| v2414_5(void) = Call[ClassWithDestructor] : func:r2414_4, this:r2414_2 +# 2414| mu2414_6(unknown) = ^CallSideEffect : ~m? +# 2414| mu2414_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2414_2 +# 2414| r2414_8(glval) = FunctionAddress[get_x] : +# 2414| r2414_9(char) = Call[get_x] : func:r2414_8, this:r2414_2 +# 2414| mu2414_10(unknown) = ^CallSideEffect : ~m? +# 2414| v2414_11(void) = ^IndirectReadSideEffect[-1] : &:r2414_2, ~m? +# 2414| mu2414_12(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2414_2 +# 2414| r2414_13(glval) = CopyValue : r2414_2 +# 2414| r2414_14(glval) = FunctionAddress[~ClassWithDestructor] : +# 2414| v2414_15(void) = Call[~ClassWithDestructor] : func:r2414_14, this:r2414_13 +# 2414| mu2414_16(unknown) = ^CallSideEffect : ~m? +# 2414| v2414_17(void) = ^IndirectReadSideEffect[-1] : &:r2414_13, ~m? +# 2414| mu2414_18(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2414_13 +# 2414| mu2414_19(char) = Store[x] : &:r2414_1, r2414_9 +# 2414| r2414_20(glval) = VariableAddress[x] : +# 2414| r2414_21(char) = Load[x] : &:r2414_20, ~m? +# 2414| r2414_22(char) = Constant[0] : +# 2414| r2414_23(bool) = CompareNE : r2414_21, r2414_22 +# 2414| r2414_24(bool) = CopyValue : r2414_23 +# 2414| v2414_25(void) = ConditionalBranch : r2414_24 #-----| False -> Block 2 #-----| True -> Block 1 -# 2413| Block 1 -# 2413| r2413_1(glval) = VariableAddress[x] : -# 2413| r2413_2(char) = Load[x] : &:r2413_1, ~m? -# 2413| r2413_3(char) = Constant[1] : -# 2413| r2413_4(char) = Add : r2413_2, r2413_3 -# 2413| mu2413_5(char) = Store[x] : &:r2413_1, r2413_4 +# 2415| Block 1 +# 2415| r2415_1(glval) = VariableAddress[x] : +# 2415| r2415_2(char) = Load[x] : &:r2415_1, ~m? +# 2415| r2415_3(char) = Constant[1] : +# 2415| r2415_4(char) = Add : r2415_2, r2415_3 +# 2415| mu2415_5(char) = Store[x] : &:r2415_1, r2415_4 #-----| Goto -> Block 2 -# 2415| Block 2 -# 2415| r2415_1(glval) = VariableAddress[x] : -# 2415| r2415_2(glval) = VariableAddress[#temp2415:18] : -# 2415| mu2415_3(ClassWithDestructor) = Uninitialized[#temp2415:18] : &:r2415_2 -# 2415| r2415_4(glval) = FunctionAddress[ClassWithDestructor] : -# 2415| v2415_5(void) = Call[ClassWithDestructor] : func:r2415_4, this:r2415_2 -# 2415| mu2415_6(unknown) = ^CallSideEffect : ~m? -# 2415| mu2415_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2415_2 -# 2415| r2415_8(glval) = FunctionAddress[get_x] : -# 2415| r2415_9(char) = Call[get_x] : func:r2415_8, this:r2415_2 -# 2415| mu2415_10(unknown) = ^CallSideEffect : ~m? -# 2415| v2415_11(void) = ^IndirectReadSideEffect[-1] : &:r2415_2, ~m? -# 2415| mu2415_12(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2415_2 -# 2415| r2415_13(glval) = CopyValue : r2415_2 -# 2415| r2415_14(glval) = FunctionAddress[~ClassWithDestructor] : -# 2415| v2415_15(void) = Call[~ClassWithDestructor] : func:r2415_14, this:r2415_13 -# 2415| mu2415_16(unknown) = ^CallSideEffect : ~m? -# 2415| v2415_17(void) = ^IndirectReadSideEffect[-1] : &:r2415_13, ~m? -# 2415| mu2415_18(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2415_13 -# 2415| mu2415_19(char) = Store[x] : &:r2415_1, r2415_9 -# 2415| r2415_20(glval) = VariableAddress[x] : -# 2415| r2415_21(char) = Load[x] : &:r2415_20, ~m? -# 2415| r2415_22(char) = Constant[0] : -# 2415| r2415_23(bool) = CompareNE : r2415_21, r2415_22 -# 2415| v2415_24(void) = ConditionalBranch : r2415_23 +# 2417| Block 2 +# 2417| r2417_1(glval) = VariableAddress[x] : +# 2417| r2417_2(glval) = VariableAddress[#temp2417:18] : +# 2417| mu2417_3(ClassWithDestructor) = Uninitialized[#temp2417:18] : &:r2417_2 +# 2417| r2417_4(glval) = FunctionAddress[ClassWithDestructor] : +# 2417| v2417_5(void) = Call[ClassWithDestructor] : func:r2417_4, this:r2417_2 +# 2417| mu2417_6(unknown) = ^CallSideEffect : ~m? +# 2417| mu2417_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2417_2 +# 2417| r2417_8(glval) = FunctionAddress[get_x] : +# 2417| r2417_9(char) = Call[get_x] : func:r2417_8, this:r2417_2 +# 2417| mu2417_10(unknown) = ^CallSideEffect : ~m? +# 2417| v2417_11(void) = ^IndirectReadSideEffect[-1] : &:r2417_2, ~m? +# 2417| mu2417_12(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2417_2 +# 2417| r2417_13(glval) = CopyValue : r2417_2 +# 2417| r2417_14(glval) = FunctionAddress[~ClassWithDestructor] : +# 2417| v2417_15(void) = Call[~ClassWithDestructor] : func:r2417_14, this:r2417_13 +# 2417| mu2417_16(unknown) = ^CallSideEffect : ~m? +# 2417| v2417_17(void) = ^IndirectReadSideEffect[-1] : &:r2417_13, ~m? +# 2417| mu2417_18(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2417_13 +# 2417| mu2417_19(char) = Store[x] : &:r2417_1, r2417_9 +# 2417| r2417_20(glval) = VariableAddress[x] : +# 2417| r2417_21(char) = Load[x] : &:r2417_20, ~m? +# 2417| r2417_22(char) = Constant[0] : +# 2417| r2417_23(bool) = CompareNE : r2417_21, r2417_22 +# 2417| v2417_24(void) = ConditionalBranch : r2417_23 #-----| False -> Block 4 #-----| True -> Block 3 -# 2416| Block 3 -# 2416| r2416_1(glval) = VariableAddress[x] : -# 2416| r2416_2(char) = Load[x] : &:r2416_1, ~m? -# 2416| r2416_3(char) = Constant[1] : -# 2416| r2416_4(char) = Add : r2416_2, r2416_3 -# 2416| mu2416_5(char) = Store[x] : &:r2416_1, r2416_4 +# 2418| Block 3 +# 2418| r2418_1(glval) = VariableAddress[x] : +# 2418| r2418_2(char) = Load[x] : &:r2418_1, ~m? +# 2418| r2418_3(char) = Constant[1] : +# 2418| r2418_4(char) = Add : r2418_2, r2418_3 +# 2418| mu2418_5(char) = Store[x] : &:r2418_1, r2418_4 #-----| Goto -> Block 4 -# 2418| Block 4 -# 2418| r2418_1(glval) = VariableAddress[x] : -# 2418| r2418_2(glval) = VariableAddress[#temp2418:28] : -# 2418| mu2418_3(ClassWithDestructor) = Uninitialized[#temp2418:28] : &:r2418_2 -# 2418| r2418_4(glval) = FunctionAddress[ClassWithDestructor] : -# 2418| v2418_5(void) = Call[ClassWithDestructor] : func:r2418_4, this:r2418_2 -# 2418| mu2418_6(unknown) = ^CallSideEffect : ~m? -# 2418| mu2418_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2418_2 -# 2418| r2418_8(glval) = FunctionAddress[get_x] : -# 2418| r2418_9(char) = Call[get_x] : func:r2418_8, this:r2418_2 -# 2418| mu2418_10(unknown) = ^CallSideEffect : ~m? -# 2418| v2418_11(void) = ^IndirectReadSideEffect[-1] : &:r2418_2, ~m? -# 2418| mu2418_12(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2418_2 -# 2418| r2418_13(glval) = CopyValue : r2418_2 -# 2418| r2418_14(glval) = FunctionAddress[~ClassWithDestructor] : -# 2418| v2418_15(void) = Call[~ClassWithDestructor] : func:r2418_14, this:r2418_13 -# 2418| mu2418_16(unknown) = ^CallSideEffect : ~m? -# 2418| v2418_17(void) = ^IndirectReadSideEffect[-1] : &:r2418_13, ~m? -# 2418| mu2418_18(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2418_13 -# 2418| mu2418_19(char) = Store[x] : &:r2418_1, r2418_9 -# 2418| r2418_20(bool) = Constant[1] : -# 2418| v2418_21(void) = ConditionalBranch : r2418_20 +# 2420| Block 4 +# 2420| r2420_1(glval) = VariableAddress[x] : +# 2420| r2420_2(glval) = VariableAddress[#temp2420:28] : +# 2420| mu2420_3(ClassWithDestructor) = Uninitialized[#temp2420:28] : &:r2420_2 +# 2420| r2420_4(glval) = FunctionAddress[ClassWithDestructor] : +# 2420| v2420_5(void) = Call[ClassWithDestructor] : func:r2420_4, this:r2420_2 +# 2420| mu2420_6(unknown) = ^CallSideEffect : ~m? +# 2420| mu2420_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2420_2 +# 2420| r2420_8(glval) = FunctionAddress[get_x] : +# 2420| r2420_9(char) = Call[get_x] : func:r2420_8, this:r2420_2 +# 2420| mu2420_10(unknown) = ^CallSideEffect : ~m? +# 2420| v2420_11(void) = ^IndirectReadSideEffect[-1] : &:r2420_2, ~m? +# 2420| mu2420_12(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2420_2 +# 2420| r2420_13(glval) = CopyValue : r2420_2 +# 2420| r2420_14(glval) = FunctionAddress[~ClassWithDestructor] : +# 2420| v2420_15(void) = Call[~ClassWithDestructor] : func:r2420_14, this:r2420_13 +# 2420| mu2420_16(unknown) = ^CallSideEffect : ~m? +# 2420| v2420_17(void) = ^IndirectReadSideEffect[-1] : &:r2420_13, ~m? +# 2420| mu2420_18(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2420_13 +# 2420| mu2420_19(char) = Store[x] : &:r2420_1, r2420_9 +# 2420| r2420_20(bool) = Constant[1] : +# 2420| v2420_21(void) = ConditionalBranch : r2420_20 #-----| False -> Block 6 #-----| True -> Block 5 -# 2419| Block 5 -# 2419| r2419_1(glval) = VariableAddress[x] : -# 2419| r2419_2(char) = Load[x] : &:r2419_1, ~m? -# 2419| r2419_3(char) = Constant[1] : -# 2419| r2419_4(char) = Add : r2419_2, r2419_3 -# 2419| mu2419_5(char) = Store[x] : &:r2419_1, r2419_4 +# 2421| Block 5 +# 2421| r2421_1(glval) = VariableAddress[x] : +# 2421| r2421_2(char) = Load[x] : &:r2421_1, ~m? +# 2421| r2421_3(char) = Constant[1] : +# 2421| r2421_4(char) = Add : r2421_2, r2421_3 +# 2421| mu2421_5(char) = Store[x] : &:r2421_1, r2421_4 #-----| Goto -> Block 6 -# 2421| Block 6 -# 2421| r2421_1(glval) = VariableAddress[x] : -# 2421| r2421_2(glval) = VariableAddress[#temp2421:21] : -# 2421| mu2421_3(ClassWithDestructor) = Uninitialized[#temp2421:21] : &:r2421_2 -# 2421| r2421_4(glval) = FunctionAddress[ClassWithDestructor] : -# 2421| v2421_5(void) = Call[ClassWithDestructor] : func:r2421_4, this:r2421_2 -# 2421| mu2421_6(unknown) = ^CallSideEffect : ~m? -# 2421| mu2421_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2421_2 -# 2421| r2421_8(glval) = FunctionAddress[get_x] : -# 2421| r2421_9(char) = Call[get_x] : func:r2421_8, this:r2421_2 -# 2421| mu2421_10(unknown) = ^CallSideEffect : ~m? -# 2421| v2421_11(void) = ^IndirectReadSideEffect[-1] : &:r2421_2, ~m? -# 2421| mu2421_12(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2421_2 -# 2421| r2421_13(glval) = CopyValue : r2421_2 -# 2421| r2421_14(glval) = FunctionAddress[~ClassWithDestructor] : -# 2421| v2421_15(void) = Call[~ClassWithDestructor] : func:r2421_14, this:r2421_13 -# 2421| mu2421_16(unknown) = ^CallSideEffect : ~m? -# 2421| v2421_17(void) = ^IndirectReadSideEffect[-1] : &:r2421_13, ~m? -# 2421| mu2421_18(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2421_13 -# 2421| mu2421_19(char) = Store[x] : &:r2421_1, r2421_9 -# 2421| r2421_20(glval) = VariableAddress[x] : -# 2421| r2421_21(char) = Load[x] : &:r2421_20, ~m? -# 2421| r2421_22(int) = Convert : r2421_21 -# 2421| r2421_23(int) = CopyValue : r2421_22 -# 2421| v2421_24(void) = Switch : r2421_23 +# 2423| Block 6 +# 2423| r2423_1(glval) = VariableAddress[x] : +# 2423| r2423_2(glval) = VariableAddress[#temp2423:21] : +# 2423| mu2423_3(ClassWithDestructor) = Uninitialized[#temp2423:21] : &:r2423_2 +# 2423| r2423_4(glval) = FunctionAddress[ClassWithDestructor] : +# 2423| v2423_5(void) = Call[ClassWithDestructor] : func:r2423_4, this:r2423_2 +# 2423| mu2423_6(unknown) = ^CallSideEffect : ~m? +# 2423| mu2423_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2423_2 +# 2423| r2423_8(glval) = FunctionAddress[get_x] : +# 2423| r2423_9(char) = Call[get_x] : func:r2423_8, this:r2423_2 +# 2423| mu2423_10(unknown) = ^CallSideEffect : ~m? +# 2423| v2423_11(void) = ^IndirectReadSideEffect[-1] : &:r2423_2, ~m? +# 2423| mu2423_12(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2423_2 +# 2423| r2423_13(glval) = CopyValue : r2423_2 +# 2423| r2423_14(glval) = FunctionAddress[~ClassWithDestructor] : +# 2423| v2423_15(void) = Call[~ClassWithDestructor] : func:r2423_14, this:r2423_13 +# 2423| mu2423_16(unknown) = ^CallSideEffect : ~m? +# 2423| v2423_17(void) = ^IndirectReadSideEffect[-1] : &:r2423_13, ~m? +# 2423| mu2423_18(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2423_13 +# 2423| mu2423_19(char) = Store[x] : &:r2423_1, r2423_9 +# 2423| r2423_20(glval) = VariableAddress[x] : +# 2423| r2423_21(char) = Load[x] : &:r2423_20, ~m? +# 2423| r2423_22(int) = Convert : r2423_21 +# 2423| r2423_23(int) = CopyValue : r2423_22 +# 2423| v2423_24(void) = Switch : r2423_23 #-----| Case[97] -> Block 7 #-----| Default -> Block 8 -# 2422| Block 7 -# 2422| v2422_1(void) = NoOp : -# 2423| r2423_1(glval) = VariableAddress[x] : -# 2423| r2423_2(char) = Load[x] : &:r2423_1, ~m? -# 2423| r2423_3(char) = Constant[1] : -# 2423| r2423_4(char) = Add : r2423_2, r2423_3 -# 2423| mu2423_5(char) = Store[x] : &:r2423_1, r2423_4 +# 2424| Block 7 +# 2424| v2424_1(void) = NoOp : +# 2425| r2425_1(glval) = VariableAddress[x] : +# 2425| r2425_2(char) = Load[x] : &:r2425_1, ~m? +# 2425| r2425_3(char) = Constant[1] : +# 2425| r2425_4(char) = Add : r2425_2, r2425_3 +# 2425| mu2425_5(char) = Store[x] : &:r2425_1, r2425_4 #-----| Goto -> Block 8 -# 2426| Block 8 -# 2426| r2426_1(glval) = VariableAddress[x] : -# 2426| r2426_2(glval) = VariableAddress[#temp2426:21] : -# 2426| mu2426_3(ClassWithDestructor) = Uninitialized[#temp2426:21] : &:r2426_2 -# 2426| r2426_4(glval) = FunctionAddress[ClassWithDestructor] : -# 2426| v2426_5(void) = Call[ClassWithDestructor] : func:r2426_4, this:r2426_2 -# 2426| mu2426_6(unknown) = ^CallSideEffect : ~m? -# 2426| mu2426_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2426_2 -# 2426| r2426_8(glval) = FunctionAddress[get_x] : -# 2426| r2426_9(char) = Call[get_x] : func:r2426_8, this:r2426_2 -# 2426| mu2426_10(unknown) = ^CallSideEffect : ~m? -# 2426| v2426_11(void) = ^IndirectReadSideEffect[-1] : &:r2426_2, ~m? -# 2426| mu2426_12(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2426_2 -# 2426| r2426_13(glval) = CopyValue : r2426_2 -# 2426| r2426_14(glval) = FunctionAddress[~ClassWithDestructor] : -# 2426| v2426_15(void) = Call[~ClassWithDestructor] : func:r2426_14, this:r2426_13 -# 2426| mu2426_16(unknown) = ^CallSideEffect : ~m? -# 2426| v2426_17(void) = ^IndirectReadSideEffect[-1] : &:r2426_13, ~m? -# 2426| mu2426_18(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2426_13 -# 2426| mu2426_19(char) = Store[x] : &:r2426_1, r2426_9 -# 2426| r2426_20(glval) = VariableAddress[x] : -# 2426| r2426_21(char) = Load[x] : &:r2426_20, ~m? -# 2426| r2426_22(int) = Convert : r2426_21 -# 2426| v2426_23(void) = Switch : r2426_22 +# 2428| Block 8 +# 2428| r2428_1(glval) = VariableAddress[x] : +# 2428| r2428_2(glval) = VariableAddress[#temp2428:21] : +# 2428| mu2428_3(ClassWithDestructor) = Uninitialized[#temp2428:21] : &:r2428_2 +# 2428| r2428_4(glval) = FunctionAddress[ClassWithDestructor] : +# 2428| v2428_5(void) = Call[ClassWithDestructor] : func:r2428_4, this:r2428_2 +# 2428| mu2428_6(unknown) = ^CallSideEffect : ~m? +# 2428| mu2428_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2428_2 +# 2428| r2428_8(glval) = FunctionAddress[get_x] : +# 2428| r2428_9(char) = Call[get_x] : func:r2428_8, this:r2428_2 +# 2428| mu2428_10(unknown) = ^CallSideEffect : ~m? +# 2428| v2428_11(void) = ^IndirectReadSideEffect[-1] : &:r2428_2, ~m? +# 2428| mu2428_12(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2428_2 +# 2428| r2428_13(glval) = CopyValue : r2428_2 +# 2428| r2428_14(glval) = FunctionAddress[~ClassWithDestructor] : +# 2428| v2428_15(void) = Call[~ClassWithDestructor] : func:r2428_14, this:r2428_13 +# 2428| mu2428_16(unknown) = ^CallSideEffect : ~m? +# 2428| v2428_17(void) = ^IndirectReadSideEffect[-1] : &:r2428_13, ~m? +# 2428| mu2428_18(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2428_13 +# 2428| mu2428_19(char) = Store[x] : &:r2428_1, r2428_9 +# 2428| r2428_20(glval) = VariableAddress[x] : +# 2428| r2428_21(char) = Load[x] : &:r2428_20, ~m? +# 2428| r2428_22(int) = Convert : r2428_21 +# 2428| v2428_23(void) = Switch : r2428_22 #-----| Case[97] -> Block 9 #-----| Default -> Block 10 -# 2427| Block 9 -# 2427| v2427_1(void) = NoOp : -# 2428| r2428_1(glval) = VariableAddress[x] : -# 2428| r2428_2(char) = Load[x] : &:r2428_1, ~m? -# 2428| r2428_3(char) = Constant[1] : -# 2428| r2428_4(char) = Add : r2428_2, r2428_3 -# 2428| mu2428_5(char) = Store[x] : &:r2428_1, r2428_4 +# 2429| Block 9 +# 2429| v2429_1(void) = NoOp : +# 2430| r2430_1(glval) = VariableAddress[x] : +# 2430| r2430_2(char) = Load[x] : &:r2430_1, ~m? +# 2430| r2430_3(char) = Constant[1] : +# 2430| r2430_4(char) = Add : r2430_2, r2430_3 +# 2430| mu2430_5(char) = Store[x] : &:r2430_1, r2430_4 #-----| Goto -> Block 10 -# 2431| Block 10 -# 2431| r2431_1(glval) = VariableAddress[x] : -# 2431| r2431_2(glval) = VariableAddress[#temp2431:18] : -# 2431| mu2431_3(ClassWithDestructor) = Uninitialized[#temp2431:18] : &:r2431_2 -# 2431| r2431_4(glval) = FunctionAddress[ClassWithDestructor] : -# 2431| v2431_5(void) = Call[ClassWithDestructor] : func:r2431_4, this:r2431_2 -# 2431| mu2431_6(unknown) = ^CallSideEffect : ~m? -# 2431| mu2431_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2431_2 -# 2431| r2431_8(glval) = FunctionAddress[get_x] : -# 2431| r2431_9(char) = Call[get_x] : func:r2431_8, this:r2431_2 -# 2431| mu2431_10(unknown) = ^CallSideEffect : ~m? -# 2431| v2431_11(void) = ^IndirectReadSideEffect[-1] : &:r2431_2, ~m? -# 2431| mu2431_12(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2431_2 -# 2431| r2431_13(glval) = CopyValue : r2431_2 -# 2431| r2431_14(glval) = FunctionAddress[~ClassWithDestructor] : -# 2431| v2431_15(void) = Call[~ClassWithDestructor] : func:r2431_14, this:r2431_13 -# 2431| mu2431_16(unknown) = ^CallSideEffect : ~m? -# 2431| v2431_17(void) = ^IndirectReadSideEffect[-1] : &:r2431_13, ~m? -# 2431| mu2431_18(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2431_13 -# 2431| mu2431_19(char) = Store[x] : &:r2431_1, r2431_9 -# 2431| r2431_20(glval &&>) = VariableAddress[(__range)] : -# 2431| r2431_21(glval>) = VariableAddress[#temp2431:58] : -# 2431| mu2431_22(vector) = Uninitialized[#temp2431:58] : &:r2431_21 -# 2431| r2431_23(glval) = FunctionAddress[vector] : -# 2431| r2431_24(glval) = VariableAddress[x] : -# 2431| r2431_25(char) = Load[x] : &:r2431_24, ~m? -# 2431| v2431_26(void) = Call[vector] : func:r2431_23, this:r2431_21, 0:r2431_25 -# 2431| mu2431_27(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2431_21 -# 2431| r2431_28(vector &) = CopyValue : r2431_21 -# 2431| mu2431_29(vector &&) = Store[(__range)] : &:r2431_20, r2431_28 -# 2431| r2431_30(glval>) = VariableAddress[(__begin)] : -# 2431| r2431_31(glval &&>) = VariableAddress[(__range)] : -# 2431| r2431_32(vector &&) = Load[(__range)] : &:r2431_31, ~m? -#-----| r0_1(glval>) = CopyValue : r2431_32 +# 2433| Block 10 +# 2433| r2433_1(glval) = VariableAddress[x] : +# 2433| r2433_2(glval) = VariableAddress[#temp2433:18] : +# 2433| mu2433_3(ClassWithDestructor) = Uninitialized[#temp2433:18] : &:r2433_2 +# 2433| r2433_4(glval) = FunctionAddress[ClassWithDestructor] : +# 2433| v2433_5(void) = Call[ClassWithDestructor] : func:r2433_4, this:r2433_2 +# 2433| mu2433_6(unknown) = ^CallSideEffect : ~m? +# 2433| mu2433_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2433_2 +# 2433| r2433_8(glval) = FunctionAddress[get_x] : +# 2433| r2433_9(char) = Call[get_x] : func:r2433_8, this:r2433_2 +# 2433| mu2433_10(unknown) = ^CallSideEffect : ~m? +# 2433| v2433_11(void) = ^IndirectReadSideEffect[-1] : &:r2433_2, ~m? +# 2433| mu2433_12(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2433_2 +# 2433| r2433_13(glval) = CopyValue : r2433_2 +# 2433| r2433_14(glval) = FunctionAddress[~ClassWithDestructor] : +# 2433| v2433_15(void) = Call[~ClassWithDestructor] : func:r2433_14, this:r2433_13 +# 2433| mu2433_16(unknown) = ^CallSideEffect : ~m? +# 2433| v2433_17(void) = ^IndirectReadSideEffect[-1] : &:r2433_13, ~m? +# 2433| mu2433_18(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2433_13 +# 2433| mu2433_19(char) = Store[x] : &:r2433_1, r2433_9 +# 2433| r2433_20(glval &&>) = VariableAddress[(__range)] : +# 2433| r2433_21(glval>) = VariableAddress[#temp2433:58] : +# 2433| mu2433_22(vector) = Uninitialized[#temp2433:58] : &:r2433_21 +# 2433| r2433_23(glval) = FunctionAddress[vector] : +# 2433| r2433_24(glval) = VariableAddress[x] : +# 2433| r2433_25(char) = Load[x] : &:r2433_24, ~m? +# 2433| v2433_26(void) = Call[vector] : func:r2433_23, this:r2433_21, 0:r2433_25 +# 2433| mu2433_27(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2433_21 +# 2433| r2433_28(vector &) = CopyValue : r2433_21 +# 2433| mu2433_29(vector &&) = Store[(__range)] : &:r2433_20, r2433_28 +# 2433| r2433_30(glval>) = VariableAddress[(__begin)] : +# 2433| r2433_31(glval &&>) = VariableAddress[(__range)] : +# 2433| r2433_32(vector &&) = Load[(__range)] : &:r2433_31, ~m? +#-----| r0_1(glval>) = CopyValue : r2433_32 #-----| r0_2(glval>) = Convert : r0_1 -# 2431| r2431_33(glval) = FunctionAddress[begin] : -# 2431| r2431_34(iterator) = Call[begin] : func:r2431_33, this:r0_2 +# 2433| r2433_33(glval) = FunctionAddress[begin] : +# 2433| r2433_34(iterator) = Call[begin] : func:r2433_33, this:r0_2 #-----| v0_3(void) = ^IndirectReadSideEffect[-1] : &:r0_2, ~m? -# 2431| mu2431_35(iterator) = Store[(__begin)] : &:r2431_30, r2431_34 -# 2431| r2431_36(glval>) = VariableAddress[(__end)] : -# 2431| r2431_37(glval &&>) = VariableAddress[(__range)] : -# 2431| r2431_38(vector &&) = Load[(__range)] : &:r2431_37, ~m? -#-----| r0_4(glval>) = CopyValue : r2431_38 +# 2433| mu2433_35(iterator) = Store[(__begin)] : &:r2433_30, r2433_34 +# 2433| r2433_36(glval>) = VariableAddress[(__end)] : +# 2433| r2433_37(glval &&>) = VariableAddress[(__range)] : +# 2433| r2433_38(vector &&) = Load[(__range)] : &:r2433_37, ~m? +#-----| r0_4(glval>) = CopyValue : r2433_38 #-----| r0_5(glval>) = Convert : r0_4 -# 2431| r2431_39(glval) = FunctionAddress[end] : -# 2431| r2431_40(iterator) = Call[end] : func:r2431_39, this:r0_5 +# 2433| r2433_39(glval) = FunctionAddress[end] : +# 2433| r2433_40(iterator) = Call[end] : func:r2433_39, this:r0_5 #-----| v0_6(void) = ^IndirectReadSideEffect[-1] : &:r0_5, ~m? -# 2431| mu2431_41(iterator) = Store[(__end)] : &:r2431_36, r2431_40 +# 2433| mu2433_41(iterator) = Store[(__end)] : &:r2433_36, r2433_40 #-----| Goto -> Block 11 -# 2431| Block 11 -# 2431| r2431_42(glval>) = VariableAddress[(__begin)] : -#-----| r0_7(glval>) = Convert : r2431_42 -# 2431| r2431_43(glval) = FunctionAddress[operator!=] : +# 2433| Block 11 +# 2433| r2433_42(glval>) = VariableAddress[(__begin)] : +#-----| r0_7(glval>) = Convert : r2433_42 +# 2433| r2433_43(glval) = FunctionAddress[operator!=] : #-----| r0_8(glval>) = VariableAddress[#temp0:0] : #-----| mu0_9(iterator) = Uninitialized[#temp0:0] : &:r0_8 -# 2431| r2431_44(glval) = FunctionAddress[iterator] : -# 2431| r2431_45(glval>) = VariableAddress[(__end)] : -#-----| r0_10(glval>) = Convert : r2431_45 +# 2433| r2433_44(glval) = FunctionAddress[iterator] : +# 2433| r2433_45(glval>) = VariableAddress[(__end)] : +#-----| r0_10(glval>) = Convert : r2433_45 #-----| r0_11(iterator &) = CopyValue : r0_10 -# 2431| v2431_46(void) = Call[iterator] : func:r2431_44, this:r0_8, 0:r0_11 -# 2431| mu2431_47(unknown) = ^CallSideEffect : ~m? +# 2433| v2433_46(void) = Call[iterator] : func:r2433_44, this:r0_8, 0:r0_11 +# 2433| mu2433_47(unknown) = ^CallSideEffect : ~m? #-----| v0_12(void) = ^BufferReadSideEffect[0] : &:r0_11, ~m? -# 2431| mu2431_48(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r0_8 +# 2433| mu2433_48(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r0_8 #-----| r0_13(iterator) = Load[#temp0:0] : &:r0_8, ~m? -# 2431| r2431_49(bool) = Call[operator!=] : func:r2431_43, this:r0_7, 0:r0_13 +# 2433| r2433_49(bool) = Call[operator!=] : func:r2433_43, this:r0_7, 0:r0_13 #-----| v0_14(void) = ^IndirectReadSideEffect[-1] : &:r0_7, ~m? -# 2431| v2431_50(void) = ConditionalBranch : r2431_49 +# 2433| v2433_50(void) = ConditionalBranch : r2433_49 #-----| False -> Block 13 #-----| True -> Block 12 -# 2431| Block 12 -# 2431| r2431_51(glval) = VariableAddress[y] : -# 2431| r2431_52(glval>) = VariableAddress[(__begin)] : -#-----| r0_15(glval>) = Convert : r2431_52 -# 2431| r2431_53(glval) = FunctionAddress[operator*] : -# 2431| r2431_54(char &) = Call[operator*] : func:r2431_53, this:r0_15 +# 2433| Block 12 +# 2433| r2433_51(glval) = VariableAddress[y] : +# 2433| r2433_52(glval>) = VariableAddress[(__begin)] : +#-----| r0_15(glval>) = Convert : r2433_52 +# 2433| r2433_53(glval) = FunctionAddress[operator*] : +# 2433| r2433_54(char &) = Call[operator*] : func:r2433_53, this:r0_15 #-----| v0_16(void) = ^IndirectReadSideEffect[-1] : &:r0_15, ~m? -# 2431| r2431_55(char) = Load[?] : &:r2431_54, ~m? -# 2431| mu2431_56(char) = Store[y] : &:r2431_51, r2431_55 -# 2432| r2432_1(glval) = VariableAddress[x] : -# 2432| r2432_2(char) = Load[x] : &:r2432_1, ~m? -# 2432| r2432_3(int) = Convert : r2432_2 -# 2432| r2432_4(glval) = VariableAddress[y] : -# 2432| r2432_5(char) = Load[y] : &:r2432_4, ~m? -# 2432| r2432_6(int) = Convert : r2432_5 -# 2432| r2432_7(int) = Add : r2432_6, r2432_3 -# 2432| r2432_8(char) = Convert : r2432_7 -# 2432| mu2432_9(char) = Store[y] : &:r2432_4, r2432_8 -# 2431| r2431_57(glval>) = VariableAddress[(__begin)] : -# 2431| r2431_58(glval) = FunctionAddress[operator++] : -# 2431| r2431_59(iterator &) = Call[operator++] : func:r2431_58, this:r2431_57 -# 2431| v2431_60(void) = ^IndirectReadSideEffect[-1] : &:r2431_57, ~m? -# 2431| mu2431_61(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2431_57 -# 2431| r2431_62(glval>) = CopyValue : r2431_59 +# 2433| r2433_55(char) = Load[?] : &:r2433_54, ~m? +# 2433| mu2433_56(char) = Store[y] : &:r2433_51, r2433_55 +# 2434| r2434_1(glval) = VariableAddress[x] : +# 2434| r2434_2(char) = Load[x] : &:r2434_1, ~m? +# 2434| r2434_3(int) = Convert : r2434_2 +# 2434| r2434_4(glval) = VariableAddress[y] : +# 2434| r2434_5(char) = Load[y] : &:r2434_4, ~m? +# 2434| r2434_6(int) = Convert : r2434_5 +# 2434| r2434_7(int) = Add : r2434_6, r2434_3 +# 2434| r2434_8(char) = Convert : r2434_7 +# 2434| mu2434_9(char) = Store[y] : &:r2434_4, r2434_8 +# 2433| r2433_57(glval>) = VariableAddress[(__begin)] : +# 2433| r2433_58(glval) = FunctionAddress[operator++] : +# 2433| r2433_59(iterator &) = Call[operator++] : func:r2433_58, this:r2433_57 +# 2433| v2433_60(void) = ^IndirectReadSideEffect[-1] : &:r2433_57, ~m? +# 2433| mu2433_61(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2433_57 +# 2433| r2433_62(glval>) = CopyValue : r2433_59 #-----| Goto (back edge) -> Block 11 -# 2431| Block 13 -# 2431| r2431_63(glval>) = CopyValue : r2431_21 -# 2431| r2431_64(glval) = FunctionAddress[~vector] : -# 2431| v2431_65(void) = Call[~vector] : func:r2431_64, this:r2431_63 -# 2431| v2431_66(void) = ^IndirectReadSideEffect[-1] : &:r2431_63, ~m? -# 2431| mu2431_67(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2431_63 -# 2433| v2433_1(void) = NoOp : -# 2411| v2411_4(void) = ReturnVoid : -# 2411| v2411_5(void) = AliasedUse : ~m? -# 2411| v2411_6(void) = ExitFunction : - -# 2435| void param_with_destructor_by_value(ClassWithDestructor) -# 2435| Block 0 -# 2435| v2435_1(void) = EnterFunction : -# 2435| mu2435_2(unknown) = AliasedDefinition : -# 2435| mu2435_3(unknown) = InitializeNonLocal : -# 2435| r2435_4(glval) = VariableAddress[c] : -# 2435| mu2435_5(ClassWithDestructor) = InitializeParameter[c] : &:r2435_4 -# 2437| v2437_1(void) = NoOp : -# 2435| v2435_6(void) = ReturnVoid : -# 2435| v2435_7(void) = AliasedUse : ~m? -# 2435| v2435_8(void) = ExitFunction : - -# 2439| void param_with_destructor_by_pointer(ClassWithDestructor*) -# 2439| Block 0 -# 2439| v2439_1(void) = EnterFunction : -# 2439| mu2439_2(unknown) = AliasedDefinition : -# 2439| mu2439_3(unknown) = InitializeNonLocal : -# 2439| r2439_4(glval) = VariableAddress[c] : -# 2439| mu2439_5(ClassWithDestructor *) = InitializeParameter[c] : &:r2439_4 -# 2439| r2439_6(ClassWithDestructor *) = Load[c] : &:r2439_4, ~m? -# 2439| mu2439_7(unknown) = InitializeIndirection[c] : &:r2439_6 -# 2441| v2441_1(void) = NoOp : -# 2439| v2439_8(void) = ReturnIndirection[c] : &:r2439_6, ~m? -# 2439| v2439_9(void) = ReturnVoid : -# 2439| v2439_10(void) = AliasedUse : ~m? -# 2439| v2439_11(void) = ExitFunction : - -# 2443| void param_with_destructor_by_ref(ClassWithDestructor&) -# 2443| Block 0 -# 2443| v2443_1(void) = EnterFunction : -# 2443| mu2443_2(unknown) = AliasedDefinition : -# 2443| mu2443_3(unknown) = InitializeNonLocal : -# 2443| r2443_4(glval) = VariableAddress[c] : -# 2443| mu2443_5(ClassWithDestructor &) = InitializeParameter[c] : &:r2443_4 -# 2443| r2443_6(ClassWithDestructor &) = Load[c] : &:r2443_4, ~m? -# 2443| mu2443_7(unknown) = InitializeIndirection[c] : &:r2443_6 -# 2445| v2445_1(void) = NoOp : -# 2443| v2443_8(void) = ReturnIndirection[c] : &:r2443_6, ~m? -# 2443| v2443_9(void) = ReturnVoid : -# 2443| v2443_10(void) = AliasedUse : ~m? -# 2443| v2443_11(void) = ExitFunction : - -# 2447| void param_with_destructor_by_rref(ClassWithDestructor&&) -# 2447| Block 0 -# 2447| v2447_1(void) = EnterFunction : -# 2447| mu2447_2(unknown) = AliasedDefinition : -# 2447| mu2447_3(unknown) = InitializeNonLocal : -# 2447| r2447_4(glval) = VariableAddress[c] : -# 2447| mu2447_5(ClassWithDestructor &&) = InitializeParameter[c] : &:r2447_4 -# 2447| r2447_6(ClassWithDestructor &&) = Load[c] : &:r2447_4, ~m? -# 2447| mu2447_7(unknown) = InitializeIndirection[c] : &:r2447_6 -# 2449| v2449_1(void) = NoOp : -# 2447| v2447_8(void) = ReturnIndirection[c] : &:r2447_6, ~m? -# 2447| v2447_9(void) = ReturnVoid : -# 2447| v2447_10(void) = AliasedUse : ~m? -# 2447| v2447_11(void) = ExitFunction : - -# 2451| void rethrow_with_destruction(int) -# 2451| Block 0 -# 2451| v2451_1(void) = EnterFunction : -# 2451| mu2451_2(unknown) = AliasedDefinition : -# 2451| mu2451_3(unknown) = InitializeNonLocal : -# 2451| r2451_4(glval) = VariableAddress[x] : -# 2451| mu2451_5(int) = InitializeParameter[x] : &:r2451_4 -# 2452| r2452_1(glval) = VariableAddress[c] : -# 2452| mu2452_2(ClassWithDestructor) = Uninitialized[c] : &:r2452_1 -# 2452| r2452_3(glval) = FunctionAddress[ClassWithDestructor] : -# 2452| v2452_4(void) = Call[ClassWithDestructor] : func:r2452_3, this:r2452_1 -# 2452| mu2452_5(unknown) = ^CallSideEffect : ~m? -# 2452| mu2452_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2452_1 -# 2453| v2453_1(void) = ReThrow : +# 2433| Block 13 +# 2433| r2433_63(glval>) = CopyValue : r2433_21 +# 2433| r2433_64(glval) = FunctionAddress[~vector] : +# 2433| v2433_65(void) = Call[~vector] : func:r2433_64, this:r2433_63 +# 2433| v2433_66(void) = ^IndirectReadSideEffect[-1] : &:r2433_63, ~m? +# 2433| mu2433_67(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2433_63 +# 2435| v2435_1(void) = NoOp : +# 2413| v2413_4(void) = ReturnVoid : +# 2413| v2413_5(void) = AliasedUse : ~m? +# 2413| v2413_6(void) = ExitFunction : + +# 2437| void param_with_destructor_by_value(ClassWithDestructor) +# 2437| Block 0 +# 2437| v2437_1(void) = EnterFunction : +# 2437| mu2437_2(unknown) = AliasedDefinition : +# 2437| mu2437_3(unknown) = InitializeNonLocal : +# 2437| r2437_4(glval) = VariableAddress[c] : +# 2437| mu2437_5(ClassWithDestructor) = InitializeParameter[c] : &:r2437_4 +# 2439| v2439_1(void) = NoOp : +# 2437| v2437_6(void) = ReturnVoid : +# 2437| v2437_7(void) = AliasedUse : ~m? +# 2437| v2437_8(void) = ExitFunction : + +# 2441| void param_with_destructor_by_pointer(ClassWithDestructor*) +# 2441| Block 0 +# 2441| v2441_1(void) = EnterFunction : +# 2441| mu2441_2(unknown) = AliasedDefinition : +# 2441| mu2441_3(unknown) = InitializeNonLocal : +# 2441| r2441_4(glval) = VariableAddress[c] : +# 2441| mu2441_5(ClassWithDestructor *) = InitializeParameter[c] : &:r2441_4 +# 2441| r2441_6(ClassWithDestructor *) = Load[c] : &:r2441_4, ~m? +# 2441| mu2441_7(unknown) = InitializeIndirection[c] : &:r2441_6 +# 2443| v2443_1(void) = NoOp : +# 2441| v2441_8(void) = ReturnIndirection[c] : &:r2441_6, ~m? +# 2441| v2441_9(void) = ReturnVoid : +# 2441| v2441_10(void) = AliasedUse : ~m? +# 2441| v2441_11(void) = ExitFunction : + +# 2445| void param_with_destructor_by_ref(ClassWithDestructor&) +# 2445| Block 0 +# 2445| v2445_1(void) = EnterFunction : +# 2445| mu2445_2(unknown) = AliasedDefinition : +# 2445| mu2445_3(unknown) = InitializeNonLocal : +# 2445| r2445_4(glval) = VariableAddress[c] : +# 2445| mu2445_5(ClassWithDestructor &) = InitializeParameter[c] : &:r2445_4 +# 2445| r2445_6(ClassWithDestructor &) = Load[c] : &:r2445_4, ~m? +# 2445| mu2445_7(unknown) = InitializeIndirection[c] : &:r2445_6 +# 2447| v2447_1(void) = NoOp : +# 2445| v2445_8(void) = ReturnIndirection[c] : &:r2445_6, ~m? +# 2445| v2445_9(void) = ReturnVoid : +# 2445| v2445_10(void) = AliasedUse : ~m? +# 2445| v2445_11(void) = ExitFunction : + +# 2449| void param_with_destructor_by_rref(ClassWithDestructor&&) +# 2449| Block 0 +# 2449| v2449_1(void) = EnterFunction : +# 2449| mu2449_2(unknown) = AliasedDefinition : +# 2449| mu2449_3(unknown) = InitializeNonLocal : +# 2449| r2449_4(glval) = VariableAddress[c] : +# 2449| mu2449_5(ClassWithDestructor &&) = InitializeParameter[c] : &:r2449_4 +# 2449| r2449_6(ClassWithDestructor &&) = Load[c] : &:r2449_4, ~m? +# 2449| mu2449_7(unknown) = InitializeIndirection[c] : &:r2449_6 +# 2451| v2451_1(void) = NoOp : +# 2449| v2449_8(void) = ReturnIndirection[c] : &:r2449_6, ~m? +# 2449| v2449_9(void) = ReturnVoid : +# 2449| v2449_10(void) = AliasedUse : ~m? +# 2449| v2449_11(void) = ExitFunction : + +# 2453| void rethrow_with_destruction(int) +# 2453| Block 0 +# 2453| v2453_1(void) = EnterFunction : +# 2453| mu2453_2(unknown) = AliasedDefinition : +# 2453| mu2453_3(unknown) = InitializeNonLocal : +# 2453| r2453_4(glval) = VariableAddress[x] : +# 2453| mu2453_5(int) = InitializeParameter[x] : &:r2453_4 # 2454| r2454_1(glval) = VariableAddress[c] : -# 2454| r2454_2(glval) = FunctionAddress[~ClassWithDestructor] : -# 2454| v2454_3(void) = Call[~ClassWithDestructor] : func:r2454_2, this:r2454_1 -# 2454| mu2454_4(unknown) = ^CallSideEffect : ~m? -# 2454| v2454_5(void) = ^IndirectReadSideEffect[-1] : &:r2454_1, ~m? +# 2454| mu2454_2(ClassWithDestructor) = Uninitialized[c] : &:r2454_1 +# 2454| r2454_3(glval) = FunctionAddress[ClassWithDestructor] : +# 2454| v2454_4(void) = Call[ClassWithDestructor] : func:r2454_3, this:r2454_1 +# 2454| mu2454_5(unknown) = ^CallSideEffect : ~m? # 2454| mu2454_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2454_1 +# 2455| v2455_1(void) = ReThrow : +# 2456| r2456_1(glval) = VariableAddress[c] : +# 2456| r2456_2(glval) = FunctionAddress[~ClassWithDestructor] : +# 2456| v2456_3(void) = Call[~ClassWithDestructor] : func:r2456_2, this:r2456_1 +# 2456| mu2456_4(unknown) = ^CallSideEffect : ~m? +# 2456| v2456_5(void) = ^IndirectReadSideEffect[-1] : &:r2456_1, ~m? +# 2456| mu2456_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2456_1 #-----| C++ Exception -> Block 3 -# 2451| Block 1 -# 2451| v2451_6(void) = AliasedUse : ~m? -# 2451| v2451_7(void) = ExitFunction : +# 2453| Block 1 +# 2453| v2453_6(void) = AliasedUse : ~m? +# 2453| v2453_7(void) = ExitFunction : -# 2451| Block 2 -# 2451| v2451_8(void) = ReturnVoid : +# 2453| Block 2 +# 2453| v2453_8(void) = ReturnVoid : #-----| Goto -> Block 1 -# 2451| Block 3 -# 2451| v2451_9(void) = Unwind : +# 2453| Block 3 +# 2453| v2453_9(void) = Unwind : #-----| Goto -> Block 1 -# 2460| void new_with_destructor(ClassWithDestructor) -# 2460| Block 0 -# 2460| v2460_1(void) = EnterFunction : -# 2460| mu2460_2(unknown) = AliasedDefinition : -# 2460| mu2460_3(unknown) = InitializeNonLocal : -# 2460| r2460_4(glval) = VariableAddress[a] : -# 2460| mu2460_5(ClassWithDestructor) = InitializeParameter[a] : &:r2460_4 -# 2462| r2462_1(glval) = VariableAddress[b] : -# 2462| r2462_2(glval) = FunctionAddress[operator new] : -# 2462| r2462_3(unsigned long) = Constant[1] : -# 2462| r2462_4(void *) = Call[operator new] : func:r2462_2, 0:r2462_3 -# 2462| mu2462_5(unknown) = ^CallSideEffect : ~m? -# 2462| mu2462_6(unknown) = ^InitializeDynamicAllocation : &:r2462_4 -# 2462| r2462_7(ByValueConstructor *) = Convert : r2462_4 -# 2462| r2462_8(glval) = FunctionAddress[ByValueConstructor] : -# 2462| r2462_9(glval) = VariableAddress[#temp2462:52] : -# 2462| r2462_10(glval) = VariableAddress[a] : -# 2462| r2462_11(ClassWithDestructor) = Load[a] : &:r2462_10, ~m? -# 2462| mu2462_12(ClassWithDestructor) = Store[#temp2462:52] : &:r2462_9, r2462_11 -# 2462| r2462_13(ClassWithDestructor) = Load[#temp2462:52] : &:r2462_9, ~m? -# 2462| v2462_14(void) = Call[ByValueConstructor] : func:r2462_8, this:r2462_7, 0:r2462_13 -# 2462| mu2462_15(unknown) = ^CallSideEffect : ~m? -# 2462| mu2462_16(ByValueConstructor) = ^IndirectMayWriteSideEffect[-1] : &:r2462_7 -# 2462| r2462_17(glval) = CopyValue : r2462_9 -# 2462| r2462_18(glval) = FunctionAddress[~ClassWithDestructor] : -# 2462| v2462_19(void) = Call[~ClassWithDestructor] : func:r2462_18, this:r2462_17 -# 2462| mu2462_20(unknown) = ^CallSideEffect : ~m? -# 2462| v2462_21(void) = ^IndirectReadSideEffect[-1] : &:r2462_17, ~m? -# 2462| mu2462_22(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2462_17 -# 2462| mu2462_23(ByValueConstructor *) = Store[b] : &:r2462_1, r2462_7 -# 2463| v2463_1(void) = NoOp : -# 2460| v2460_6(void) = ReturnVoid : -# 2460| v2460_7(void) = AliasedUse : ~m? -# 2460| v2460_8(void) = ExitFunction : - -# 2479| void rvalue_conversion_with_destructor::test() -# 2479| Block 0 -# 2479| v2479_1(void) = EnterFunction : -# 2479| mu2479_2(unknown) = AliasedDefinition : -# 2479| mu2479_3(unknown) = InitializeNonLocal : -# 2481| r2481_1(glval) = VariableAddress[a] : -# 2481| r2481_2(glval) = VariableAddress[#temp2481:18] : -# 2481| r2481_3(glval) = FunctionAddress[get] : -# 2481| r2481_4(B) = Call[get] : func:r2481_3 -# 2481| mu2481_5(unknown) = ^CallSideEffect : ~m? -# 2481| mu2481_6(B) = Store[#temp2481:18] : &:r2481_2, r2481_4 -# 2481| r2481_7(glval) = Convert : r2481_2 -# 2481| r2481_8(glval) = FunctionAddress[operator->] : -# 2481| r2481_9(A *) = Call[operator->] : func:r2481_8, this:r2481_7 -# 2481| mu2481_10(unknown) = ^CallSideEffect : ~m? -# 2481| v2481_11(void) = ^IndirectReadSideEffect[-1] : &:r2481_7, ~m? -# 2481| r2481_12(glval) = FieldAddress[a] : r2481_9 -# 2481| r2481_13(glval) = CopyValue : r2481_2 -# 2481| r2481_14(glval) = FunctionAddress[~B] : -# 2481| v2481_15(void) = Call[~B] : func:r2481_14, this:r2481_13 -# 2481| mu2481_16(unknown) = ^CallSideEffect : ~m? -# 2481| v2481_17(void) = ^IndirectReadSideEffect[-1] : &:r2481_13, ~m? -# 2481| mu2481_18(B) = ^IndirectMayWriteSideEffect[-1] : &:r2481_13 -# 2481| r2481_19(unsigned int) = Load[?] : &:r2481_12, ~m? -# 2481| mu2481_20(unsigned int) = Store[a] : &:r2481_1, r2481_19 -# 2482| v2482_1(void) = NoOp : -# 2479| v2479_4(void) = ReturnVoid : -# 2479| v2479_5(void) = AliasedUse : ~m? -# 2479| v2479_6(void) = ExitFunction : - -# 2485| void destructor_without_block(bool) -# 2485| Block 0 -# 2485| v2485_1(void) = EnterFunction : -# 2485| mu2485_2(unknown) = AliasedDefinition : -# 2485| mu2485_3(unknown) = InitializeNonLocal : -# 2485| r2485_4(glval) = VariableAddress[b] : -# 2485| mu2485_5(bool) = InitializeParameter[b] : &:r2485_4 -# 2487| r2487_1(glval) = VariableAddress[b] : -# 2487| r2487_2(bool) = Load[b] : &:r2487_1, ~m? -# 2487| v2487_3(void) = ConditionalBranch : r2487_2 +# 2462| void new_with_destructor(ClassWithDestructor) +# 2462| Block 0 +# 2462| v2462_1(void) = EnterFunction : +# 2462| mu2462_2(unknown) = AliasedDefinition : +# 2462| mu2462_3(unknown) = InitializeNonLocal : +# 2462| r2462_4(glval) = VariableAddress[a] : +# 2462| mu2462_5(ClassWithDestructor) = InitializeParameter[a] : &:r2462_4 +# 2464| r2464_1(glval) = VariableAddress[b] : +# 2464| r2464_2(glval) = FunctionAddress[operator new] : +# 2464| r2464_3(unsigned long) = Constant[1] : +# 2464| r2464_4(void *) = Call[operator new] : func:r2464_2, 0:r2464_3 +# 2464| mu2464_5(unknown) = ^CallSideEffect : ~m? +# 2464| mu2464_6(unknown) = ^InitializeDynamicAllocation : &:r2464_4 +# 2464| r2464_7(ByValueConstructor *) = Convert : r2464_4 +# 2464| r2464_8(glval) = FunctionAddress[ByValueConstructor] : +# 2464| r2464_9(glval) = VariableAddress[#temp2464:52] : +# 2464| r2464_10(glval) = VariableAddress[a] : +# 2464| r2464_11(ClassWithDestructor) = Load[a] : &:r2464_10, ~m? +# 2464| mu2464_12(ClassWithDestructor) = Store[#temp2464:52] : &:r2464_9, r2464_11 +# 2464| r2464_13(ClassWithDestructor) = Load[#temp2464:52] : &:r2464_9, ~m? +# 2464| v2464_14(void) = Call[ByValueConstructor] : func:r2464_8, this:r2464_7, 0:r2464_13 +# 2464| mu2464_15(unknown) = ^CallSideEffect : ~m? +# 2464| mu2464_16(ByValueConstructor) = ^IndirectMayWriteSideEffect[-1] : &:r2464_7 +# 2464| r2464_17(glval) = CopyValue : r2464_9 +# 2464| r2464_18(glval) = FunctionAddress[~ClassWithDestructor] : +# 2464| v2464_19(void) = Call[~ClassWithDestructor] : func:r2464_18, this:r2464_17 +# 2464| mu2464_20(unknown) = ^CallSideEffect : ~m? +# 2464| v2464_21(void) = ^IndirectReadSideEffect[-1] : &:r2464_17, ~m? +# 2464| mu2464_22(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2464_17 +# 2464| mu2464_23(ByValueConstructor *) = Store[b] : &:r2464_1, r2464_7 +# 2465| v2465_1(void) = NoOp : +# 2462| v2462_6(void) = ReturnVoid : +# 2462| v2462_7(void) = AliasedUse : ~m? +# 2462| v2462_8(void) = ExitFunction : + +# 2481| void rvalue_conversion_with_destructor::test() +# 2481| Block 0 +# 2481| v2481_1(void) = EnterFunction : +# 2481| mu2481_2(unknown) = AliasedDefinition : +# 2481| mu2481_3(unknown) = InitializeNonLocal : +# 2483| r2483_1(glval) = VariableAddress[a] : +# 2483| r2483_2(glval) = VariableAddress[#temp2483:18] : +# 2483| r2483_3(glval) = FunctionAddress[get] : +# 2483| r2483_4(B) = Call[get] : func:r2483_3 +# 2483| mu2483_5(unknown) = ^CallSideEffect : ~m? +# 2483| mu2483_6(B) = Store[#temp2483:18] : &:r2483_2, r2483_4 +# 2483| r2483_7(glval) = Convert : r2483_2 +# 2483| r2483_8(glval) = FunctionAddress[operator->] : +# 2483| r2483_9(A *) = Call[operator->] : func:r2483_8, this:r2483_7 +# 2483| mu2483_10(unknown) = ^CallSideEffect : ~m? +# 2483| v2483_11(void) = ^IndirectReadSideEffect[-1] : &:r2483_7, ~m? +# 2483| r2483_12(glval) = FieldAddress[a] : r2483_9 +# 2483| r2483_13(glval) = CopyValue : r2483_2 +# 2483| r2483_14(glval) = FunctionAddress[~B] : +# 2483| v2483_15(void) = Call[~B] : func:r2483_14, this:r2483_13 +# 2483| mu2483_16(unknown) = ^CallSideEffect : ~m? +# 2483| v2483_17(void) = ^IndirectReadSideEffect[-1] : &:r2483_13, ~m? +# 2483| mu2483_18(B) = ^IndirectMayWriteSideEffect[-1] : &:r2483_13 +# 2483| r2483_19(unsigned int) = Load[?] : &:r2483_12, ~m? +# 2483| mu2483_20(unsigned int) = Store[a] : &:r2483_1, r2483_19 +# 2484| v2484_1(void) = NoOp : +# 2481| v2481_4(void) = ReturnVoid : +# 2481| v2481_5(void) = AliasedUse : ~m? +# 2481| v2481_6(void) = ExitFunction : + +# 2487| void destructor_without_block(bool) +# 2487| Block 0 +# 2487| v2487_1(void) = EnterFunction : +# 2487| mu2487_2(unknown) = AliasedDefinition : +# 2487| mu2487_3(unknown) = InitializeNonLocal : +# 2487| r2487_4(glval) = VariableAddress[b] : +# 2487| mu2487_5(bool) = InitializeParameter[b] : &:r2487_4 +# 2489| r2489_1(glval) = VariableAddress[b] : +# 2489| r2489_2(bool) = Load[b] : &:r2489_1, ~m? +# 2489| v2489_3(void) = ConditionalBranch : r2489_2 #-----| False -> Block 2 #-----| True -> Block 1 -# 2488| Block 1 -# 2488| r2488_1(glval) = VariableAddress[c] : -# 2488| mu2488_2(ClassWithDestructor) = Uninitialized[c] : &:r2488_1 -# 2488| r2488_3(glval) = FunctionAddress[ClassWithDestructor] : -# 2488| v2488_4(void) = Call[ClassWithDestructor] : func:r2488_3, this:r2488_1 -# 2488| mu2488_5(unknown) = ^CallSideEffect : ~m? -# 2488| mu2488_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2488_1 +# 2490| Block 1 +# 2490| r2490_1(glval) = VariableAddress[c] : +# 2490| mu2490_2(ClassWithDestructor) = Uninitialized[c] : &:r2490_1 +# 2490| r2490_3(glval) = FunctionAddress[ClassWithDestructor] : +# 2490| v2490_4(void) = Call[ClassWithDestructor] : func:r2490_3, this:r2490_1 +# 2490| mu2490_5(unknown) = ^CallSideEffect : ~m? +# 2490| mu2490_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2490_1 #-----| r0_1(glval) = VariableAddress[c] : #-----| r0_2(glval) = FunctionAddress[~ClassWithDestructor] : #-----| v0_3(void) = Call[~ClassWithDestructor] : func:r0_2, this:r0_1 @@ -17077,20 +17145,20 @@ ir.cpp: #-----| mu0_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r0_1 #-----| Goto -> Block 2 -# 2490| Block 2 -# 2490| r2490_1(glval) = VariableAddress[b] : -# 2490| r2490_2(bool) = Load[b] : &:r2490_1, ~m? -# 2490| v2490_3(void) = ConditionalBranch : r2490_2 +# 2492| Block 2 +# 2492| r2492_1(glval) = VariableAddress[b] : +# 2492| r2492_2(bool) = Load[b] : &:r2492_1, ~m? +# 2492| v2492_3(void) = ConditionalBranch : r2492_2 #-----| False -> Block 4 #-----| True -> Block 3 -# 2491| Block 3 -# 2491| r2491_1(glval) = VariableAddress[d] : -# 2491| mu2491_2(ClassWithDestructor) = Uninitialized[d] : &:r2491_1 -# 2491| r2491_3(glval) = FunctionAddress[ClassWithDestructor] : -# 2491| v2491_4(void) = Call[ClassWithDestructor] : func:r2491_3, this:r2491_1 -# 2491| mu2491_5(unknown) = ^CallSideEffect : ~m? -# 2491| mu2491_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2491_1 +# 2493| Block 3 +# 2493| r2493_1(glval) = VariableAddress[d] : +# 2493| mu2493_2(ClassWithDestructor) = Uninitialized[d] : &:r2493_1 +# 2493| r2493_3(glval) = FunctionAddress[ClassWithDestructor] : +# 2493| v2493_4(void) = Call[ClassWithDestructor] : func:r2493_3, this:r2493_1 +# 2493| mu2493_5(unknown) = ^CallSideEffect : ~m? +# 2493| mu2493_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2493_1 #-----| r0_7(glval) = VariableAddress[d] : #-----| r0_8(glval) = FunctionAddress[~ClassWithDestructor] : #-----| v0_9(void) = Call[~ClassWithDestructor] : func:r0_8, this:r0_7 @@ -17099,13 +17167,13 @@ ir.cpp: #-----| mu0_12(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r0_7 #-----| Goto -> Block 5 -# 2493| Block 4 -# 2493| r2493_1(glval) = VariableAddress[e] : -# 2493| mu2493_2(ClassWithDestructor) = Uninitialized[e] : &:r2493_1 -# 2493| r2493_3(glval) = FunctionAddress[ClassWithDestructor] : -# 2493| v2493_4(void) = Call[ClassWithDestructor] : func:r2493_3, this:r2493_1 -# 2493| mu2493_5(unknown) = ^CallSideEffect : ~m? -# 2493| mu2493_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2493_1 +# 2495| Block 4 +# 2495| r2495_1(glval) = VariableAddress[e] : +# 2495| mu2495_2(ClassWithDestructor) = Uninitialized[e] : &:r2495_1 +# 2495| r2495_3(glval) = FunctionAddress[ClassWithDestructor] : +# 2495| v2495_4(void) = Call[ClassWithDestructor] : func:r2495_3, this:r2495_1 +# 2495| mu2495_5(unknown) = ^CallSideEffect : ~m? +# 2495| mu2495_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2495_1 #-----| r0_13(glval) = VariableAddress[e] : #-----| r0_14(glval) = FunctionAddress[~ClassWithDestructor] : #-----| v0_15(void) = Call[~ClassWithDestructor] : func:r0_14, this:r0_13 @@ -17114,20 +17182,20 @@ ir.cpp: #-----| mu0_18(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r0_13 #-----| Goto -> Block 5 -# 2495| Block 5 -# 2495| r2495_1(glval) = VariableAddress[b] : -# 2495| r2495_2(bool) = Load[b] : &:r2495_1, ~m? -# 2495| v2495_3(void) = ConditionalBranch : r2495_2 +# 2497| Block 5 +# 2497| r2497_1(glval) = VariableAddress[b] : +# 2497| r2497_2(bool) = Load[b] : &:r2497_1, ~m? +# 2497| v2497_3(void) = ConditionalBranch : r2497_2 #-----| False -> Block 7 #-----| True -> Block 6 -# 2496| Block 6 -# 2496| r2496_1(glval) = VariableAddress[f] : -# 2496| mu2496_2(ClassWithDestructor) = Uninitialized[f] : &:r2496_1 -# 2496| r2496_3(glval) = FunctionAddress[ClassWithDestructor] : -# 2496| v2496_4(void) = Call[ClassWithDestructor] : func:r2496_3, this:r2496_1 -# 2496| mu2496_5(unknown) = ^CallSideEffect : ~m? -# 2496| mu2496_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2496_1 +# 2498| Block 6 +# 2498| r2498_1(glval) = VariableAddress[f] : +# 2498| mu2498_2(ClassWithDestructor) = Uninitialized[f] : &:r2498_1 +# 2498| r2498_3(glval) = FunctionAddress[ClassWithDestructor] : +# 2498| v2498_4(void) = Call[ClassWithDestructor] : func:r2498_3, this:r2498_1 +# 2498| mu2498_5(unknown) = ^CallSideEffect : ~m? +# 2498| mu2498_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2498_1 #-----| r0_19(glval) = VariableAddress[f] : #-----| r0_20(glval) = FunctionAddress[~ClassWithDestructor] : #-----| v0_21(void) = Call[~ClassWithDestructor] : func:r0_20, this:r0_19 @@ -17136,1243 +17204,1229 @@ ir.cpp: #-----| mu0_24(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r0_19 #-----| Goto (back edge) -> Block 5 -# 2498| Block 7 -# 2498| r2498_1(glval) = VariableAddress[i] : -# 2498| r2498_2(int) = Constant[0] : -# 2498| mu2498_3(int) = Store[i] : &:r2498_1, r2498_2 +# 2500| Block 7 +# 2500| r2500_1(glval) = VariableAddress[i] : +# 2500| r2500_2(int) = Constant[0] : +# 2500| mu2500_3(int) = Store[i] : &:r2500_1, r2500_2 #-----| Goto -> Block 8 -# 2498| Block 8 -# 2498| r2498_4(glval) = VariableAddress[i] : -# 2498| r2498_5(int) = Load[i] : &:r2498_4, ~m? -# 2498| r2498_6(int) = Constant[42] : -# 2498| r2498_7(bool) = CompareLT : r2498_5, r2498_6 -# 2498| v2498_8(void) = ConditionalBranch : r2498_7 +# 2500| Block 8 +# 2500| r2500_4(glval) = VariableAddress[i] : +# 2500| r2500_5(int) = Load[i] : &:r2500_4, ~m? +# 2500| r2500_6(int) = Constant[42] : +# 2500| r2500_7(bool) = CompareLT : r2500_5, r2500_6 +# 2500| v2500_8(void) = ConditionalBranch : r2500_7 #-----| False -> Block 10 #-----| True -> Block 9 -# 2499| Block 9 -# 2499| r2499_1(glval) = VariableAddress[g] : -# 2499| mu2499_2(ClassWithDestructor) = Uninitialized[g] : &:r2499_1 -# 2499| r2499_3(glval) = FunctionAddress[ClassWithDestructor] : -# 2499| v2499_4(void) = Call[ClassWithDestructor] : func:r2499_3, this:r2499_1 -# 2499| mu2499_5(unknown) = ^CallSideEffect : ~m? -# 2499| mu2499_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2499_1 +# 2501| Block 9 +# 2501| r2501_1(glval) = VariableAddress[g] : +# 2501| mu2501_2(ClassWithDestructor) = Uninitialized[g] : &:r2501_1 +# 2501| r2501_3(glval) = FunctionAddress[ClassWithDestructor] : +# 2501| v2501_4(void) = Call[ClassWithDestructor] : func:r2501_3, this:r2501_1 +# 2501| mu2501_5(unknown) = ^CallSideEffect : ~m? +# 2501| mu2501_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2501_1 #-----| r0_25(glval) = VariableAddress[g] : #-----| r0_26(glval) = FunctionAddress[~ClassWithDestructor] : #-----| v0_27(void) = Call[~ClassWithDestructor] : func:r0_26, this:r0_25 #-----| mu0_28(unknown) = ^CallSideEffect : ~m? #-----| v0_29(void) = ^IndirectReadSideEffect[-1] : &:r0_25, ~m? #-----| mu0_30(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r0_25 -# 2498| r2498_9(glval) = VariableAddress[i] : -# 2498| r2498_10(int) = Load[i] : &:r2498_9, ~m? -# 2498| r2498_11(int) = Constant[1] : -# 2498| r2498_12(int) = Add : r2498_10, r2498_11 -# 2498| mu2498_13(int) = Store[i] : &:r2498_9, r2498_12 +# 2500| r2500_9(glval) = VariableAddress[i] : +# 2500| r2500_10(int) = Load[i] : &:r2500_9, ~m? +# 2500| r2500_11(int) = Constant[1] : +# 2500| r2500_12(int) = Add : r2500_10, r2500_11 +# 2500| mu2500_13(int) = Store[i] : &:r2500_9, r2500_12 #-----| Goto (back edge) -> Block 8 -# 2500| Block 10 -# 2500| v2500_1(void) = NoOp : -# 2485| v2485_6(void) = ReturnVoid : -# 2485| v2485_7(void) = AliasedUse : ~m? -# 2485| v2485_8(void) = ExitFunction : - -# 2502| void destruction_in_switch_1(int) -# 2502| Block 0 -# 2502| v2502_1(void) = EnterFunction : -# 2502| mu2502_2(unknown) = AliasedDefinition : -# 2502| mu2502_3(unknown) = InitializeNonLocal : -# 2502| r2502_4(glval) = VariableAddress[c] : -# 2502| mu2502_5(int) = InitializeParameter[c] : &:r2502_4 -# 2503| r2503_1(glval) = VariableAddress[c] : -# 2503| r2503_2(int) = Load[c] : &:r2503_1, ~m? -# 2503| v2503_3(void) = Switch : r2503_2 +# 2502| Block 10 +# 2502| v2502_1(void) = NoOp : +# 2487| v2487_6(void) = ReturnVoid : +# 2487| v2487_7(void) = AliasedUse : ~m? +# 2487| v2487_8(void) = ExitFunction : + +# 2504| void destruction_in_switch_1(int) +# 2504| Block 0 +# 2504| v2504_1(void) = EnterFunction : +# 2504| mu2504_2(unknown) = AliasedDefinition : +# 2504| mu2504_3(unknown) = InitializeNonLocal : +# 2504| r2504_4(glval) = VariableAddress[c] : +# 2504| mu2504_5(int) = InitializeParameter[c] : &:r2504_4 +# 2505| r2505_1(glval) = VariableAddress[c] : +# 2505| r2505_2(int) = Load[c] : &:r2505_1, ~m? +# 2505| v2505_3(void) = Switch : r2505_2 #-----| Case[0] -> Block 1 #-----| Default -> Block 3 -# 2504| Block 1 -# 2504| v2504_1(void) = NoOp : -# 2505| r2505_1(glval) = VariableAddress[x] : -# 2505| mu2505_2(ClassWithDestructor) = Uninitialized[x] : &:r2505_1 -# 2505| r2505_3(glval) = FunctionAddress[ClassWithDestructor] : -# 2505| v2505_4(void) = Call[ClassWithDestructor] : func:r2505_3, this:r2505_1 -# 2505| mu2505_5(unknown) = ^CallSideEffect : ~m? -# 2505| mu2505_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2505_1 +# 2506| Block 1 +# 2506| v2506_1(void) = NoOp : # 2507| r2507_1(glval) = VariableAddress[x] : -# 2507| r2507_2(glval) = FunctionAddress[~ClassWithDestructor] : -# 2507| v2507_3(void) = Call[~ClassWithDestructor] : func:r2507_2, this:r2507_1 -# 2507| mu2507_4(unknown) = ^CallSideEffect : ~m? -# 2507| v2507_5(void) = ^IndirectReadSideEffect[-1] : &:r2507_1, ~m? +# 2507| mu2507_2(ClassWithDestructor) = Uninitialized[x] : &:r2507_1 +# 2507| r2507_3(glval) = FunctionAddress[ClassWithDestructor] : +# 2507| v2507_4(void) = Call[ClassWithDestructor] : func:r2507_3, this:r2507_1 +# 2507| mu2507_5(unknown) = ^CallSideEffect : ~m? # 2507| mu2507_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2507_1 -# 2506| v2506_1(void) = NoOp : +# 2509| r2509_1(glval) = VariableAddress[x] : +# 2509| r2509_2(glval) = FunctionAddress[~ClassWithDestructor] : +# 2509| v2509_3(void) = Call[~ClassWithDestructor] : func:r2509_2, this:r2509_1 +# 2509| mu2509_4(unknown) = ^CallSideEffect : ~m? +# 2509| v2509_5(void) = ^IndirectReadSideEffect[-1] : &:r2509_1, ~m? +# 2509| mu2509_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2509_1 +# 2508| v2508_1(void) = NoOp : #-----| Goto -> Block 3 -# 2507| Block 2 -# 2507| r2507_7(glval) = VariableAddress[x] : -# 2507| r2507_8(glval) = FunctionAddress[~ClassWithDestructor] : -# 2507| v2507_9(void) = Call[~ClassWithDestructor] : func:r2507_8, this:r2507_7 -# 2507| mu2507_10(unknown) = ^CallSideEffect : ~m? -# 2507| v2507_11(void) = ^IndirectReadSideEffect[-1] : &:r2507_7, ~m? -# 2507| mu2507_12(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2507_7 +# 2509| Block 2 +# 2509| r2509_7(glval) = VariableAddress[x] : +# 2509| r2509_8(glval) = FunctionAddress[~ClassWithDestructor] : +# 2509| v2509_9(void) = Call[~ClassWithDestructor] : func:r2509_8, this:r2509_7 +# 2509| mu2509_10(unknown) = ^CallSideEffect : ~m? +# 2509| v2509_11(void) = ^IndirectReadSideEffect[-1] : &:r2509_7, ~m? +# 2509| mu2509_12(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2509_7 #-----| Goto -> Block 3 -# 2508| Block 3 -# 2508| v2508_1(void) = NoOp : -# 2509| v2509_1(void) = NoOp : -# 2502| v2502_6(void) = ReturnVoid : -# 2502| v2502_7(void) = AliasedUse : ~m? -# 2502| v2502_8(void) = ExitFunction : - -# 2511| void destruction_in_switch_2(int) -# 2511| Block 0 -# 2511| v2511_1(void) = EnterFunction : -# 2511| mu2511_2(unknown) = AliasedDefinition : -# 2511| mu2511_3(unknown) = InitializeNonLocal : -# 2511| r2511_4(glval) = VariableAddress[c] : -# 2511| mu2511_5(int) = InitializeParameter[c] : &:r2511_4 -# 2512| r2512_1(glval) = VariableAddress[y] : -# 2512| mu2512_2(ClassWithDestructor) = Uninitialized[y] : &:r2512_1 -# 2512| r2512_3(glval) = FunctionAddress[ClassWithDestructor] : -# 2512| v2512_4(void) = Call[ClassWithDestructor] : func:r2512_3, this:r2512_1 -# 2512| mu2512_5(unknown) = ^CallSideEffect : ~m? -# 2512| mu2512_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2512_1 -# 2512| r2512_7(glval) = VariableAddress[c] : -# 2512| r2512_8(int) = Load[c] : &:r2512_7, ~m? -# 2512| v2512_9(void) = Switch : r2512_8 +# 2510| Block 3 +# 2510| v2510_1(void) = NoOp : +# 2511| v2511_1(void) = NoOp : +# 2504| v2504_6(void) = ReturnVoid : +# 2504| v2504_7(void) = AliasedUse : ~m? +# 2504| v2504_8(void) = ExitFunction : + +# 2513| void destruction_in_switch_2(int) +# 2513| Block 0 +# 2513| v2513_1(void) = EnterFunction : +# 2513| mu2513_2(unknown) = AliasedDefinition : +# 2513| mu2513_3(unknown) = InitializeNonLocal : +# 2513| r2513_4(glval) = VariableAddress[c] : +# 2513| mu2513_5(int) = InitializeParameter[c] : &:r2513_4 +# 2514| r2514_1(glval) = VariableAddress[y] : +# 2514| mu2514_2(ClassWithDestructor) = Uninitialized[y] : &:r2514_1 +# 2514| r2514_3(glval) = FunctionAddress[ClassWithDestructor] : +# 2514| v2514_4(void) = Call[ClassWithDestructor] : func:r2514_3, this:r2514_1 +# 2514| mu2514_5(unknown) = ^CallSideEffect : ~m? +# 2514| mu2514_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2514_1 +# 2514| r2514_7(glval) = VariableAddress[c] : +# 2514| r2514_8(int) = Load[c] : &:r2514_7, ~m? +# 2514| v2514_9(void) = Switch : r2514_8 #-----| Case[0] -> Block 1 #-----| Default -> Block 2 -# 2513| Block 1 -# 2513| v2513_1(void) = NoOp : -# 2519| r2519_1(glval) = VariableAddress[y] : -# 2519| r2519_2(glval) = FunctionAddress[~ClassWithDestructor] : -# 2519| v2519_3(void) = Call[~ClassWithDestructor] : func:r2519_2, this:r2519_1 -# 2519| mu2519_4(unknown) = ^CallSideEffect : ~m? -# 2519| v2519_5(void) = ^IndirectReadSideEffect[-1] : &:r2519_1, ~m? -# 2519| mu2519_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2519_1 -# 2514| v2514_1(void) = NoOp : +# 2515| Block 1 +# 2515| v2515_1(void) = NoOp : +# 2521| r2521_1(glval) = VariableAddress[y] : +# 2521| r2521_2(glval) = FunctionAddress[~ClassWithDestructor] : +# 2521| v2521_3(void) = Call[~ClassWithDestructor] : func:r2521_2, this:r2521_1 +# 2521| mu2521_4(unknown) = ^CallSideEffect : ~m? +# 2521| v2521_5(void) = ^IndirectReadSideEffect[-1] : &:r2521_1, ~m? +# 2521| mu2521_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2521_1 +# 2516| v2516_1(void) = NoOp : #-----| Goto -> Block 4 -# 2516| Block 2 -# 2516| v2516_1(void) = NoOp : -# 2519| r2519_7(glval) = VariableAddress[y] : -# 2519| r2519_8(glval) = FunctionAddress[~ClassWithDestructor] : -# 2519| v2519_9(void) = Call[~ClassWithDestructor] : func:r2519_8, this:r2519_7 -# 2519| mu2519_10(unknown) = ^CallSideEffect : ~m? -# 2519| v2519_11(void) = ^IndirectReadSideEffect[-1] : &:r2519_7, ~m? -# 2519| mu2519_12(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2519_7 -# 2517| v2517_1(void) = NoOp : +# 2518| Block 2 +# 2518| v2518_1(void) = NoOp : +# 2521| r2521_7(glval) = VariableAddress[y] : +# 2521| r2521_8(glval) = FunctionAddress[~ClassWithDestructor] : +# 2521| v2521_9(void) = Call[~ClassWithDestructor] : func:r2521_8, this:r2521_7 +# 2521| mu2521_10(unknown) = ^CallSideEffect : ~m? +# 2521| v2521_11(void) = ^IndirectReadSideEffect[-1] : &:r2521_7, ~m? +# 2521| mu2521_12(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2521_7 +# 2519| v2519_1(void) = NoOp : #-----| Goto -> Block 4 -# 2519| Block 3 -# 2519| r2519_13(glval) = VariableAddress[y] : -# 2519| r2519_14(glval) = FunctionAddress[~ClassWithDestructor] : -# 2519| v2519_15(void) = Call[~ClassWithDestructor] : func:r2519_14, this:r2519_13 -# 2519| mu2519_16(unknown) = ^CallSideEffect : ~m? -# 2519| v2519_17(void) = ^IndirectReadSideEffect[-1] : &:r2519_13, ~m? -# 2519| mu2519_18(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2519_13 +# 2521| Block 3 +# 2521| r2521_13(glval) = VariableAddress[y] : +# 2521| r2521_14(glval) = FunctionAddress[~ClassWithDestructor] : +# 2521| v2521_15(void) = Call[~ClassWithDestructor] : func:r2521_14, this:r2521_13 +# 2521| mu2521_16(unknown) = ^CallSideEffect : ~m? +# 2521| v2521_17(void) = ^IndirectReadSideEffect[-1] : &:r2521_13, ~m? +# 2521| mu2521_18(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2521_13 #-----| Goto -> Block 4 -# 2519| Block 4 -# 2519| v2519_19(void) = NoOp : -# 2520| v2520_1(void) = NoOp : -# 2511| v2511_6(void) = ReturnVoid : -# 2511| v2511_7(void) = AliasedUse : ~m? -# 2511| v2511_8(void) = ExitFunction : - -# 2522| void destruction_in_switch_3(int) -# 2522| Block 0 -# 2522| v2522_1(void) = EnterFunction : -# 2522| mu2522_2(unknown) = AliasedDefinition : -# 2522| mu2522_3(unknown) = InitializeNonLocal : -# 2522| r2522_4(glval) = VariableAddress[c] : -# 2522| mu2522_5(int) = InitializeParameter[c] : &:r2522_4 -# 2523| r2523_1(glval) = VariableAddress[y] : -# 2523| mu2523_2(ClassWithDestructor) = Uninitialized[y] : &:r2523_1 -# 2523| r2523_3(glval) = FunctionAddress[ClassWithDestructor] : -# 2523| v2523_4(void) = Call[ClassWithDestructor] : func:r2523_3, this:r2523_1 -# 2523| mu2523_5(unknown) = ^CallSideEffect : ~m? -# 2523| mu2523_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2523_1 -# 2523| r2523_7(glval) = VariableAddress[c] : -# 2523| r2523_8(int) = Load[c] : &:r2523_7, ~m? -# 2523| v2523_9(void) = Switch : r2523_8 +# 2521| Block 4 +# 2521| v2521_19(void) = NoOp : +# 2522| v2522_1(void) = NoOp : +# 2513| v2513_6(void) = ReturnVoid : +# 2513| v2513_7(void) = AliasedUse : ~m? +# 2513| v2513_8(void) = ExitFunction : + +# 2524| void destruction_in_switch_3(int) +# 2524| Block 0 +# 2524| v2524_1(void) = EnterFunction : +# 2524| mu2524_2(unknown) = AliasedDefinition : +# 2524| mu2524_3(unknown) = InitializeNonLocal : +# 2524| r2524_4(glval) = VariableAddress[c] : +# 2524| mu2524_5(int) = InitializeParameter[c] : &:r2524_4 +# 2525| r2525_1(glval) = VariableAddress[y] : +# 2525| mu2525_2(ClassWithDestructor) = Uninitialized[y] : &:r2525_1 +# 2525| r2525_3(glval) = FunctionAddress[ClassWithDestructor] : +# 2525| v2525_4(void) = Call[ClassWithDestructor] : func:r2525_3, this:r2525_1 +# 2525| mu2525_5(unknown) = ^CallSideEffect : ~m? +# 2525| mu2525_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2525_1 +# 2525| r2525_7(glval) = VariableAddress[c] : +# 2525| r2525_8(int) = Load[c] : &:r2525_7, ~m? +# 2525| v2525_9(void) = Switch : r2525_8 #-----| Case[0] -> Block 1 #-----| Default -> Block 3 -# 2524| Block 1 -# 2524| v2524_1(void) = NoOp : -# 2525| r2525_1(glval) = VariableAddress[x] : -# 2525| mu2525_2(ClassWithDestructor) = Uninitialized[x] : &:r2525_1 -# 2525| r2525_3(glval) = FunctionAddress[ClassWithDestructor] : -# 2525| v2525_4(void) = Call[ClassWithDestructor] : func:r2525_3, this:r2525_1 -# 2525| mu2525_5(unknown) = ^CallSideEffect : ~m? -# 2525| mu2525_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2525_1 +# 2526| Block 1 +# 2526| v2526_1(void) = NoOp : # 2527| r2527_1(glval) = VariableAddress[x] : -# 2527| r2527_2(glval) = FunctionAddress[~ClassWithDestructor] : -# 2527| v2527_3(void) = Call[~ClassWithDestructor] : func:r2527_2, this:r2527_1 -# 2527| mu2527_4(unknown) = ^CallSideEffect : ~m? -# 2527| v2527_5(void) = ^IndirectReadSideEffect[-1] : &:r2527_1, ~m? +# 2527| mu2527_2(ClassWithDestructor) = Uninitialized[x] : &:r2527_1 +# 2527| r2527_3(glval) = FunctionAddress[ClassWithDestructor] : +# 2527| v2527_4(void) = Call[ClassWithDestructor] : func:r2527_3, this:r2527_1 +# 2527| mu2527_5(unknown) = ^CallSideEffect : ~m? # 2527| mu2527_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2527_1 -# 2531| r2531_1(glval) = VariableAddress[y] : -# 2531| r2531_2(glval) = FunctionAddress[~ClassWithDestructor] : -# 2531| v2531_3(void) = Call[~ClassWithDestructor] : func:r2531_2, this:r2531_1 -# 2531| mu2531_4(unknown) = ^CallSideEffect : ~m? -# 2531| v2531_5(void) = ^IndirectReadSideEffect[-1] : &:r2531_1, ~m? -# 2531| mu2531_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2531_1 -# 2526| v2526_1(void) = NoOp : +# 2529| r2529_1(glval) = VariableAddress[x] : +# 2529| r2529_2(glval) = FunctionAddress[~ClassWithDestructor] : +# 2529| v2529_3(void) = Call[~ClassWithDestructor] : func:r2529_2, this:r2529_1 +# 2529| mu2529_4(unknown) = ^CallSideEffect : ~m? +# 2529| v2529_5(void) = ^IndirectReadSideEffect[-1] : &:r2529_1, ~m? +# 2529| mu2529_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2529_1 +# 2533| r2533_1(glval) = VariableAddress[y] : +# 2533| r2533_2(glval) = FunctionAddress[~ClassWithDestructor] : +# 2533| v2533_3(void) = Call[~ClassWithDestructor] : func:r2533_2, this:r2533_1 +# 2533| mu2533_4(unknown) = ^CallSideEffect : ~m? +# 2533| v2533_5(void) = ^IndirectReadSideEffect[-1] : &:r2533_1, ~m? +# 2533| mu2533_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2533_1 +# 2528| v2528_1(void) = NoOp : #-----| Goto -> Block 5 -# 2527| Block 2 -# 2527| r2527_7(glval) = VariableAddress[x] : -# 2527| r2527_8(glval) = FunctionAddress[~ClassWithDestructor] : -# 2527| v2527_9(void) = Call[~ClassWithDestructor] : func:r2527_8, this:r2527_7 -# 2527| mu2527_10(unknown) = ^CallSideEffect : ~m? -# 2527| v2527_11(void) = ^IndirectReadSideEffect[-1] : &:r2527_7, ~m? -# 2527| mu2527_12(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2527_7 +# 2529| Block 2 +# 2529| r2529_7(glval) = VariableAddress[x] : +# 2529| r2529_8(glval) = FunctionAddress[~ClassWithDestructor] : +# 2529| v2529_9(void) = Call[~ClassWithDestructor] : func:r2529_8, this:r2529_7 +# 2529| mu2529_10(unknown) = ^CallSideEffect : ~m? +# 2529| v2529_11(void) = ^IndirectReadSideEffect[-1] : &:r2529_7, ~m? +# 2529| mu2529_12(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2529_7 #-----| Goto -> Block 3 -# 2528| Block 3 -# 2528| v2528_1(void) = NoOp : -# 2531| r2531_7(glval) = VariableAddress[y] : -# 2531| r2531_8(glval) = FunctionAddress[~ClassWithDestructor] : -# 2531| v2531_9(void) = Call[~ClassWithDestructor] : func:r2531_8, this:r2531_7 -# 2531| mu2531_10(unknown) = ^CallSideEffect : ~m? -# 2531| v2531_11(void) = ^IndirectReadSideEffect[-1] : &:r2531_7, ~m? -# 2531| mu2531_12(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2531_7 -# 2529| v2529_1(void) = NoOp : +# 2530| Block 3 +# 2530| v2530_1(void) = NoOp : +# 2533| r2533_7(glval) = VariableAddress[y] : +# 2533| r2533_8(glval) = FunctionAddress[~ClassWithDestructor] : +# 2533| v2533_9(void) = Call[~ClassWithDestructor] : func:r2533_8, this:r2533_7 +# 2533| mu2533_10(unknown) = ^CallSideEffect : ~m? +# 2533| v2533_11(void) = ^IndirectReadSideEffect[-1] : &:r2533_7, ~m? +# 2533| mu2533_12(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2533_7 +# 2531| v2531_1(void) = NoOp : #-----| Goto -> Block 5 -# 2531| Block 4 -# 2531| r2531_13(glval) = VariableAddress[y] : -# 2531| r2531_14(glval) = FunctionAddress[~ClassWithDestructor] : -# 2531| v2531_15(void) = Call[~ClassWithDestructor] : func:r2531_14, this:r2531_13 -# 2531| mu2531_16(unknown) = ^CallSideEffect : ~m? -# 2531| v2531_17(void) = ^IndirectReadSideEffect[-1] : &:r2531_13, ~m? -# 2531| mu2531_18(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2531_13 +# 2533| Block 4 +# 2533| r2533_13(glval) = VariableAddress[y] : +# 2533| r2533_14(glval) = FunctionAddress[~ClassWithDestructor] : +# 2533| v2533_15(void) = Call[~ClassWithDestructor] : func:r2533_14, this:r2533_13 +# 2533| mu2533_16(unknown) = ^CallSideEffect : ~m? +# 2533| v2533_17(void) = ^IndirectReadSideEffect[-1] : &:r2533_13, ~m? +# 2533| mu2533_18(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2533_13 #-----| Goto -> Block 5 -# 2531| Block 5 -# 2531| v2531_19(void) = NoOp : -# 2532| v2532_1(void) = NoOp : -# 2522| v2522_6(void) = ReturnVoid : -# 2522| v2522_7(void) = AliasedUse : ~m? -# 2522| v2522_8(void) = ExitFunction : - -# 2534| void destructor_possibly_not_handled() -# 2534| Block 0 -# 2534| v2534_1(void) = EnterFunction : -# 2534| mu2534_2(unknown) = AliasedDefinition : -# 2534| mu2534_3(unknown) = InitializeNonLocal : -# 2535| r2535_1(glval) = VariableAddress[x] : -# 2535| mu2535_2(ClassWithDestructor) = Uninitialized[x] : &:r2535_1 -# 2535| r2535_3(glval) = FunctionAddress[ClassWithDestructor] : -# 2535| v2535_4(void) = Call[ClassWithDestructor] : func:r2535_3, this:r2535_1 -# 2535| mu2535_5(unknown) = ^CallSideEffect : ~m? -# 2535| mu2535_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2535_1 -# 2537| r2537_1(glval) = VariableAddress[#throw2537:5] : -# 2537| r2537_2(int) = Constant[42] : -# 2537| mu2537_3(int) = Store[#throw2537:5] : &:r2537_1, r2537_2 -# 2537| v2537_4(void) = ThrowValue : &:r2537_1, ~m? +# 2533| Block 5 +# 2533| v2533_19(void) = NoOp : +# 2534| v2534_1(void) = NoOp : +# 2524| v2524_6(void) = ReturnVoid : +# 2524| v2524_7(void) = AliasedUse : ~m? +# 2524| v2524_8(void) = ExitFunction : + +# 2536| void destructor_possibly_not_handled() +# 2536| Block 0 +# 2536| v2536_1(void) = EnterFunction : +# 2536| mu2536_2(unknown) = AliasedDefinition : +# 2536| mu2536_3(unknown) = InitializeNonLocal : +# 2537| r2537_1(glval) = VariableAddress[x] : +# 2537| mu2537_2(ClassWithDestructor) = Uninitialized[x] : &:r2537_1 +# 2537| r2537_3(glval) = FunctionAddress[ClassWithDestructor] : +# 2537| v2537_4(void) = Call[ClassWithDestructor] : func:r2537_3, this:r2537_1 +# 2537| mu2537_5(unknown) = ^CallSideEffect : ~m? +# 2537| mu2537_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2537_1 +# 2539| r2539_1(glval) = VariableAddress[#throw2539:5] : +# 2539| r2539_2(int) = Constant[42] : +# 2539| mu2539_3(int) = Store[#throw2539:5] : &:r2539_1, r2539_2 +# 2539| v2539_4(void) = ThrowValue : &:r2539_1, ~m? #-----| C++ Exception -> Block 2 -# 2534| Block 1 -# 2534| v2534_4(void) = AliasedUse : ~m? -# 2534| v2534_5(void) = ExitFunction : +# 2536| Block 1 +# 2536| v2536_4(void) = AliasedUse : ~m? +# 2536| v2536_5(void) = ExitFunction : -# 2539| Block 2 -# 2539| v2539_1(void) = CatchByType[char] : +# 2541| Block 2 +# 2541| v2541_1(void) = CatchByType[char] : #-----| C++ Exception -> Block 4 #-----| Goto -> Block 3 -# 2539| Block 3 -# 2539| r2539_2(glval) = VariableAddress[(unnamed parameter 0)] : -# 2539| mu2539_3(char) = InitializeParameter[(unnamed parameter 0)] : &:r2539_2 -# 2539| v2539_4(void) = NoOp : -# 2541| v2541_1(void) = NoOp : -# 2541| r2541_2(glval) = VariableAddress[x] : -# 2541| r2541_3(glval) = FunctionAddress[~ClassWithDestructor] : -# 2541| v2541_4(void) = Call[~ClassWithDestructor] : func:r2541_3, this:r2541_2 -# 2541| mu2541_5(unknown) = ^CallSideEffect : ~m? -# 2541| v2541_6(void) = ^IndirectReadSideEffect[-1] : &:r2541_2, ~m? -# 2541| mu2541_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2541_2 -# 2534| v2534_6(void) = ReturnVoid : +# 2541| Block 3 +# 2541| r2541_2(glval) = VariableAddress[(unnamed parameter 0)] : +# 2541| mu2541_3(char) = InitializeParameter[(unnamed parameter 0)] : &:r2541_2 +# 2541| v2541_4(void) = NoOp : +# 2543| v2543_1(void) = NoOp : +# 2543| r2543_2(glval) = VariableAddress[x] : +# 2543| r2543_3(glval) = FunctionAddress[~ClassWithDestructor] : +# 2543| v2543_4(void) = Call[~ClassWithDestructor] : func:r2543_3, this:r2543_2 +# 2543| mu2543_5(unknown) = ^CallSideEffect : ~m? +# 2543| v2543_6(void) = ^IndirectReadSideEffect[-1] : &:r2543_2, ~m? +# 2543| mu2543_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2543_2 +# 2536| v2536_6(void) = ReturnVoid : #-----| Goto -> Block 1 -# 2541| Block 4 -# 2541| r2541_8(glval) = VariableAddress[x] : -# 2541| r2541_9(glval) = FunctionAddress[~ClassWithDestructor] : -# 2541| v2541_10(void) = Call[~ClassWithDestructor] : func:r2541_9, this:r2541_8 -# 2541| mu2541_11(unknown) = ^CallSideEffect : ~m? -# 2541| v2541_12(void) = ^IndirectReadSideEffect[-1] : &:r2541_8, ~m? -# 2541| mu2541_13(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2541_8 -# 2534| v2534_7(void) = Unwind : +# 2543| Block 4 +# 2543| r2543_8(glval) = VariableAddress[x] : +# 2543| r2543_9(glval) = FunctionAddress[~ClassWithDestructor] : +# 2543| v2543_10(void) = Call[~ClassWithDestructor] : func:r2543_9, this:r2543_8 +# 2543| mu2543_11(unknown) = ^CallSideEffect : ~m? +# 2543| v2543_12(void) = ^IndirectReadSideEffect[-1] : &:r2543_8, ~m? +# 2543| mu2543_13(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2543_8 +# 2536| v2536_7(void) = Unwind : #-----| Goto -> Block 1 -# 2545| void this_inconsistency(bool) -# 2545| Block 0 -# 2545| v2545_1(void) = EnterFunction : -# 2545| mu2545_2(unknown) = AliasedDefinition : -# 2545| mu2545_3(unknown) = InitializeNonLocal : -# 2545| r2545_4(glval) = VariableAddress[b] : -# 2545| mu2545_5(bool) = InitializeParameter[b] : &:r2545_4 -# 2546| r2546_1(glval) = VariableAddress[a] : -# 2546| r2546_2(glval) = VariableAddress[#temp2546:38] : -# 2546| r2546_3(glval) = FunctionAddress[getClassWithDestructor] : -# 2546| r2546_4(ClassWithDestructor) = Call[getClassWithDestructor] : func:r2546_3 -# 2546| mu2546_5(unknown) = ^CallSideEffect : ~m? -# 2546| mu2546_6(ClassWithDestructor) = Store[#temp2546:38] : &:r2546_2, r2546_4 -# 2546| r2546_7(glval) = Convert : r2546_2 -# 2546| r2546_8(ClassWithDestructor &) = CopyValue : r2546_7 -# 2546| mu2546_9(ClassWithDestructor &) = Store[a] : &:r2546_1, r2546_8 -# 2546| r2546_10(glval) = VariableAddress[a] : -# 2546| r2546_11(ClassWithDestructor &) = Load[a] : &:r2546_10, ~m? -# 2546| r2546_12(ClassWithDestructor) = CopyValue : r2546_11 -# 2546| r2546_13(glval) = FunctionAddress[operator bool] : -# 2546| r2546_14(bool) = Call[operator bool] : func:r2546_13, this:r2546_12 -# 2546| mu2546_15(unknown) = ^CallSideEffect : ~m? -# 2546| v2546_16(void) = ^IndirectReadSideEffect[-1] : &:r2546_12, ~m? -# 2546| r2546_17(bool) = CopyValue : r2546_14 -# 2546| v2546_18(void) = ConditionalBranch : r2546_17 +# 2547| void this_inconsistency(bool) +# 2547| Block 0 +# 2547| v2547_1(void) = EnterFunction : +# 2547| mu2547_2(unknown) = AliasedDefinition : +# 2547| mu2547_3(unknown) = InitializeNonLocal : +# 2547| r2547_4(glval) = VariableAddress[b] : +# 2547| mu2547_5(bool) = InitializeParameter[b] : &:r2547_4 +# 2548| r2548_1(glval) = VariableAddress[a] : +# 2548| r2548_2(glval) = VariableAddress[#temp2548:38] : +# 2548| r2548_3(glval) = FunctionAddress[getClassWithDestructor] : +# 2548| r2548_4(ClassWithDestructor) = Call[getClassWithDestructor] : func:r2548_3 +# 2548| mu2548_5(unknown) = ^CallSideEffect : ~m? +# 2548| mu2548_6(ClassWithDestructor) = Store[#temp2548:38] : &:r2548_2, r2548_4 +# 2548| r2548_7(glval) = Convert : r2548_2 +# 2548| r2548_8(ClassWithDestructor &) = CopyValue : r2548_7 +# 2548| mu2548_9(ClassWithDestructor &) = Store[a] : &:r2548_1, r2548_8 +# 2548| r2548_10(glval) = VariableAddress[a] : +# 2548| r2548_11(ClassWithDestructor &) = Load[a] : &:r2548_10, ~m? +# 2548| r2548_12(ClassWithDestructor) = CopyValue : r2548_11 +# 2548| r2548_13(glval) = FunctionAddress[operator bool] : +# 2548| r2548_14(bool) = Call[operator bool] : func:r2548_13, this:r2548_12 +# 2548| mu2548_15(unknown) = ^CallSideEffect : ~m? +# 2548| v2548_16(void) = ^IndirectReadSideEffect[-1] : &:r2548_12, ~m? +# 2548| r2548_17(bool) = CopyValue : r2548_14 +# 2548| v2548_18(void) = ConditionalBranch : r2548_17 #-----| False -> Block 2 #-----| True -> Block 1 -# 2547| Block 1 -# 2547| v2547_1(void) = NoOp : +# 2549| Block 1 +# 2549| v2549_1(void) = NoOp : #-----| Goto -> Block 2 -# 2547| Block 2 -# 2547| r2547_2(glval) = CopyValue : r2546_2 -# 2547| r2547_3(glval) = FunctionAddress[~ClassWithDestructor] : -# 2547| v2547_4(void) = Call[~ClassWithDestructor] : func:r2547_3, this:r2547_2 -# 2547| mu2547_5(unknown) = ^CallSideEffect : ~m? -# 2547| v2547_6(void) = ^IndirectReadSideEffect[-1] : &:r2547_2, ~m? -# 2547| mu2547_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2547_2 -# 2548| v2548_1(void) = NoOp : -# 2545| v2545_6(void) = ReturnVoid : -# 2545| v2545_7(void) = AliasedUse : ~m? -# 2545| v2545_8(void) = ExitFunction : - -# 2550| void constexpr_inconsistency(bool) -# 2550| Block 0 -# 2550| v2550_1(void) = EnterFunction : -# 2550| mu2550_2(unknown) = AliasedDefinition : -# 2550| mu2550_3(unknown) = InitializeNonLocal : -# 2550| r2550_4(glval) = VariableAddress[b] : -# 2550| mu2550_5(bool) = InitializeParameter[b] : &:r2550_4 -# 2551| r2551_1(glval) = VariableAddress[a] : -# 2551| r2551_2(glval) = VariableAddress[#temp2551:48] : -# 2551| r2551_3(glval) = FunctionAddress[getClassWithDestructor] : -# 2551| r2551_4(ClassWithDestructor) = Call[getClassWithDestructor] : func:r2551_3 -# 2551| mu2551_5(unknown) = ^CallSideEffect : ~m? -# 2551| mu2551_6(ClassWithDestructor) = Store[#temp2551:48] : &:r2551_2, r2551_4 -# 2551| r2551_7(glval) = Convert : r2551_2 -# 2551| r2551_8(ClassWithDestructor &) = CopyValue : r2551_7 -# 2551| mu2551_9(ClassWithDestructor &) = Store[a] : &:r2551_1, r2551_8 -# 2551| r2551_10(bool) = Constant[1] : -# 2551| v2551_11(void) = ConditionalBranch : r2551_10 +# 2549| Block 2 +# 2549| r2549_2(glval) = CopyValue : r2548_2 +# 2549| r2549_3(glval) = FunctionAddress[~ClassWithDestructor] : +# 2549| v2549_4(void) = Call[~ClassWithDestructor] : func:r2549_3, this:r2549_2 +# 2549| mu2549_5(unknown) = ^CallSideEffect : ~m? +# 2549| v2549_6(void) = ^IndirectReadSideEffect[-1] : &:r2549_2, ~m? +# 2549| mu2549_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2549_2 +# 2550| v2550_1(void) = NoOp : +# 2547| v2547_6(void) = ReturnVoid : +# 2547| v2547_7(void) = AliasedUse : ~m? +# 2547| v2547_8(void) = ExitFunction : + +# 2552| void constexpr_inconsistency(bool) +# 2552| Block 0 +# 2552| v2552_1(void) = EnterFunction : +# 2552| mu2552_2(unknown) = AliasedDefinition : +# 2552| mu2552_3(unknown) = InitializeNonLocal : +# 2552| r2552_4(glval) = VariableAddress[b] : +# 2552| mu2552_5(bool) = InitializeParameter[b] : &:r2552_4 +# 2553| r2553_1(glval) = VariableAddress[a] : +# 2553| r2553_2(glval) = VariableAddress[#temp2553:48] : +# 2553| r2553_3(glval) = FunctionAddress[getClassWithDestructor] : +# 2553| r2553_4(ClassWithDestructor) = Call[getClassWithDestructor] : func:r2553_3 +# 2553| mu2553_5(unknown) = ^CallSideEffect : ~m? +# 2553| mu2553_6(ClassWithDestructor) = Store[#temp2553:48] : &:r2553_2, r2553_4 +# 2553| r2553_7(glval) = Convert : r2553_2 +# 2553| r2553_8(ClassWithDestructor &) = CopyValue : r2553_7 +# 2553| mu2553_9(ClassWithDestructor &) = Store[a] : &:r2553_1, r2553_8 +# 2553| r2553_10(bool) = Constant[1] : +# 2553| v2553_11(void) = ConditionalBranch : r2553_10 #-----| False -> Block 2 #-----| True -> Block 1 -# 2552| Block 1 -# 2552| v2552_1(void) = NoOp : +# 2554| Block 1 +# 2554| v2554_1(void) = NoOp : #-----| Goto -> Block 2 -# 2552| Block 2 -# 2552| r2552_2(glval) = CopyValue : r2551_2 -# 2552| r2552_3(glval) = FunctionAddress[~ClassWithDestructor] : -# 2552| v2552_4(void) = Call[~ClassWithDestructor] : func:r2552_3, this:r2552_2 -# 2552| mu2552_5(unknown) = ^CallSideEffect : ~m? -# 2552| v2552_6(void) = ^IndirectReadSideEffect[-1] : &:r2552_2, ~m? -# 2552| mu2552_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2552_2 -# 2553| v2553_1(void) = NoOp : -# 2550| v2550_6(void) = ReturnVoid : -# 2550| v2550_7(void) = AliasedUse : ~m? -# 2550| v2550_8(void) = ExitFunction : - -# 2555| void builtin_bitcast(unsigned long) -# 2555| Block 0 -# 2555| v2555_1(void) = EnterFunction : -# 2555| mu2555_2(unknown) = AliasedDefinition : -# 2555| mu2555_3(unknown) = InitializeNonLocal : -# 2555| r2555_4(glval) = VariableAddress[ul] : -# 2555| mu2555_5(unsigned long) = InitializeParameter[ul] : &:r2555_4 -# 2556| r2556_1(glval) = VariableAddress[d] : -# 2556| r2556_2(glval) = VariableAddress[ul] : -# 2556| r2556_3(unsigned long) = Load[ul] : &:r2556_2, ~m? -# 2556| r2556_4(double) = BuiltIn[__builtin_bit_cast] : 0:r2556_3 -# 2556| mu2556_5(double) = Store[d] : &:r2556_1, r2556_4 -# 2557| v2557_1(void) = NoOp : -# 2555| v2555_6(void) = ReturnVoid : -# 2555| v2555_7(void) = AliasedUse : ~m? -# 2555| v2555_8(void) = ExitFunction : - -# 2559| void p_points_to_x_or_y(int, int) -# 2559| Block 0 -# 2559| v2559_1(void) = EnterFunction : -# 2559| mu2559_2(unknown) = AliasedDefinition : -# 2559| mu2559_3(unknown) = InitializeNonLocal : -# 2559| r2559_4(glval) = VariableAddress[a] : -# 2559| mu2559_5(int) = InitializeParameter[a] : &:r2559_4 -# 2559| r2559_6(glval) = VariableAddress[b] : -# 2559| mu2559_7(int) = InitializeParameter[b] : &:r2559_6 -# 2560| r2560_1(glval) = VariableAddress[x] : -# 2560| mu2560_2(int) = Uninitialized[x] : &:r2560_1 -# 2561| r2561_1(glval) = VariableAddress[y] : -# 2561| mu2561_2(int) = Uninitialized[y] : &:r2561_1 -# 2562| r2562_1(glval) = VariableAddress[p] : -# 2562| mu2562_2(int *) = Uninitialized[p] : &:r2562_1 -# 2563| r2563_1(glval) = VariableAddress[a] : -# 2563| r2563_2(int) = Load[a] : &:r2563_1, ~m? -# 2563| r2563_3(glval) = VariableAddress[b] : -# 2563| r2563_4(int) = Load[b] : &:r2563_3, ~m? -# 2563| r2563_5(bool) = CompareLT : r2563_2, r2563_4 -# 2563| v2563_6(void) = ConditionalBranch : r2563_5 +# 2554| Block 2 +# 2554| r2554_2(glval) = CopyValue : r2553_2 +# 2554| r2554_3(glval) = FunctionAddress[~ClassWithDestructor] : +# 2554| v2554_4(void) = Call[~ClassWithDestructor] : func:r2554_3, this:r2554_2 +# 2554| mu2554_5(unknown) = ^CallSideEffect : ~m? +# 2554| v2554_6(void) = ^IndirectReadSideEffect[-1] : &:r2554_2, ~m? +# 2554| mu2554_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2554_2 +# 2555| v2555_1(void) = NoOp : +# 2552| v2552_6(void) = ReturnVoid : +# 2552| v2552_7(void) = AliasedUse : ~m? +# 2552| v2552_8(void) = ExitFunction : + +# 2557| void builtin_bitcast(unsigned long) +# 2557| Block 0 +# 2557| v2557_1(void) = EnterFunction : +# 2557| mu2557_2(unknown) = AliasedDefinition : +# 2557| mu2557_3(unknown) = InitializeNonLocal : +# 2557| r2557_4(glval) = VariableAddress[ul] : +# 2557| mu2557_5(unsigned long) = InitializeParameter[ul] : &:r2557_4 +# 2558| r2558_1(glval) = VariableAddress[d] : +# 2558| r2558_2(glval) = VariableAddress[ul] : +# 2558| r2558_3(unsigned long) = Load[ul] : &:r2558_2, ~m? +# 2558| r2558_4(double) = BuiltIn[__builtin_bit_cast] : 0:r2558_3 +# 2558| mu2558_5(double) = Store[d] : &:r2558_1, r2558_4 +# 2559| v2559_1(void) = NoOp : +# 2557| v2557_6(void) = ReturnVoid : +# 2557| v2557_7(void) = AliasedUse : ~m? +# 2557| v2557_8(void) = ExitFunction : + +# 2561| void p_points_to_x_or_y(int, int) +# 2561| Block 0 +# 2561| v2561_1(void) = EnterFunction : +# 2561| mu2561_2(unknown) = AliasedDefinition : +# 2561| mu2561_3(unknown) = InitializeNonLocal : +# 2561| r2561_4(glval) = VariableAddress[a] : +# 2561| mu2561_5(int) = InitializeParameter[a] : &:r2561_4 +# 2561| r2561_6(glval) = VariableAddress[b] : +# 2561| mu2561_7(int) = InitializeParameter[b] : &:r2561_6 +# 2562| r2562_1(glval) = VariableAddress[x] : +# 2562| mu2562_2(int) = Uninitialized[x] : &:r2562_1 +# 2563| r2563_1(glval) = VariableAddress[y] : +# 2563| mu2563_2(int) = Uninitialized[y] : &:r2563_1 +# 2564| r2564_1(glval) = VariableAddress[p] : +# 2564| mu2564_2(int *) = Uninitialized[p] : &:r2564_1 +# 2565| r2565_1(glval) = VariableAddress[a] : +# 2565| r2565_2(int) = Load[a] : &:r2565_1, ~m? +# 2565| r2565_3(glval) = VariableAddress[b] : +# 2565| r2565_4(int) = Load[b] : &:r2565_3, ~m? +# 2565| r2565_5(bool) = CompareLT : r2565_2, r2565_4 +# 2565| v2565_6(void) = ConditionalBranch : r2565_5 #-----| False -> Block 2 #-----| True -> Block 1 -# 2564| Block 1 -# 2564| r2564_1(glval) = VariableAddress[x] : -# 2564| r2564_2(int *) = CopyValue : r2564_1 -# 2564| r2564_3(glval) = VariableAddress[p] : -# 2564| mu2564_4(int *) = Store[p] : &:r2564_3, r2564_2 -#-----| Goto -> Block 3 - -# 2566| Block 2 -# 2566| r2566_1(glval) = VariableAddress[y] : +# 2566| Block 1 +# 2566| r2566_1(glval) = VariableAddress[x] : # 2566| r2566_2(int *) = CopyValue : r2566_1 # 2566| r2566_3(glval) = VariableAddress[p] : # 2566| mu2566_4(int *) = Store[p] : &:r2566_3, r2566_2 #-----| Goto -> Block 3 -# 2568| Block 3 -# 2568| r2568_1(int) = Constant[5] : -# 2568| r2568_2(glval) = VariableAddress[p] : -# 2568| r2568_3(int *) = Load[p] : &:r2568_2, ~m? -# 2568| r2568_4(glval) = CopyValue : r2568_3 -# 2568| mu2568_5(int) = Store[?] : &:r2568_4, r2568_1 -# 2569| r2569_1(glval) = VariableAddress[z] : -# 2569| r2569_2(glval) = VariableAddress[x] : -# 2569| r2569_3(int) = Load[x] : &:r2569_2, ~m? -# 2569| mu2569_4(int) = Store[z] : &:r2569_1, r2569_3 -# 2570| r2570_1(glval) = VariableAddress[w] : -# 2570| r2570_2(glval) = VariableAddress[y] : -# 2570| r2570_3(int) = Load[y] : &:r2570_2, ~m? -# 2570| mu2570_4(int) = Store[w] : &:r2570_1, r2570_3 -# 2571| v2571_1(void) = NoOp : -# 2559| v2559_8(void) = ReturnVoid : -# 2559| v2559_9(void) = AliasedUse : ~m? -# 2559| v2559_10(void) = ExitFunction : - -# 2573| int phi_after_while() -# 2573| Block 0 -# 2573| v2573_1(void) = EnterFunction : -# 2573| mu2573_2(unknown) = AliasedDefinition : -# 2573| mu2573_3(unknown) = InitializeNonLocal : -# 2574| r2574_1(glval) = VariableAddress[r] : -# 2574| mu2574_2(int) = Uninitialized[r] : &:r2574_1 -# 2575| r2575_1(glval) = VariableAddress[rP] : -# 2575| r2575_2(glval) = VariableAddress[r] : -# 2575| r2575_3(int *) = CopyValue : r2575_2 -# 2575| mu2575_4(int *) = Store[rP] : &:r2575_1, r2575_3 +# 2568| Block 2 +# 2568| r2568_1(glval) = VariableAddress[y] : +# 2568| r2568_2(int *) = CopyValue : r2568_1 +# 2568| r2568_3(glval) = VariableAddress[p] : +# 2568| mu2568_4(int *) = Store[p] : &:r2568_3, r2568_2 +#-----| Goto -> Block 3 + +# 2570| Block 3 +# 2570| r2570_1(int) = Constant[5] : +# 2570| r2570_2(glval) = VariableAddress[p] : +# 2570| r2570_3(int *) = Load[p] : &:r2570_2, ~m? +# 2570| r2570_4(glval) = CopyValue : r2570_3 +# 2570| mu2570_5(int) = Store[?] : &:r2570_4, r2570_1 +# 2571| r2571_1(glval) = VariableAddress[z] : +# 2571| r2571_2(glval) = VariableAddress[x] : +# 2571| r2571_3(int) = Load[x] : &:r2571_2, ~m? +# 2571| mu2571_4(int) = Store[z] : &:r2571_1, r2571_3 +# 2572| r2572_1(glval) = VariableAddress[w] : +# 2572| r2572_2(glval) = VariableAddress[y] : +# 2572| r2572_3(int) = Load[y] : &:r2572_2, ~m? +# 2572| mu2572_4(int) = Store[w] : &:r2572_1, r2572_3 +# 2573| v2573_1(void) = NoOp : +# 2561| v2561_8(void) = ReturnVoid : +# 2561| v2561_9(void) = AliasedUse : ~m? +# 2561| v2561_10(void) = ExitFunction : + +# 2575| int phi_after_while() +# 2575| Block 0 +# 2575| v2575_1(void) = EnterFunction : +# 2575| mu2575_2(unknown) = AliasedDefinition : +# 2575| mu2575_3(unknown) = InitializeNonLocal : +# 2576| r2576_1(glval) = VariableAddress[r] : +# 2576| mu2576_2(int) = Uninitialized[r] : &:r2576_1 +# 2577| r2577_1(glval) = VariableAddress[rP] : +# 2577| r2577_2(glval) = VariableAddress[r] : +# 2577| r2577_3(int *) = CopyValue : r2577_2 +# 2577| mu2577_4(int *) = Store[rP] : &:r2577_1, r2577_3 #-----| Goto -> Block 1 -# 2577| Block 1 -# 2577| r2577_1(glval) = FunctionAddress[predicateA] : -# 2577| r2577_2(bool) = Call[predicateA] : func:r2577_1 -# 2577| mu2577_3(unknown) = ^CallSideEffect : ~m? -# 2577| v2577_4(void) = ConditionalBranch : r2577_2 +# 2579| Block 1 +# 2579| r2579_1(glval) = FunctionAddress[predicateA] : +# 2579| r2579_2(bool) = Call[predicateA] : func:r2579_1 +# 2579| mu2579_3(unknown) = ^CallSideEffect : ~m? +# 2579| v2579_4(void) = ConditionalBranch : r2579_2 #-----| False -> Block 3 #-----| True -> Block 2 -# 2578| Block 2 -# 2578| r2578_1(glval) = VariableAddress[s] : -# 2578| r2578_2(int) = Constant[0] : -# 2578| mu2578_3(int) = Store[s] : &:r2578_1, r2578_2 -# 2579| r2579_1(glval) = VariableAddress[s] : -# 2579| r2579_2(int) = Load[s] : &:r2579_1, ~m? -# 2579| r2579_3(glval) = VariableAddress[rP] : -# 2579| r2579_4(int *) = Load[rP] : &:r2579_3, ~m? -# 2579| r2579_5(glval) = CopyValue : r2579_4 -# 2579| mu2579_6(int) = Store[?] : &:r2579_5, r2579_2 +# 2580| Block 2 # 2580| r2580_1(glval) = VariableAddress[s] : -# 2580| r2580_2(int *) = CopyValue : r2580_1 -# 2580| r2580_3(glval) = VariableAddress[rP] : -# 2580| mu2580_4(int *) = Store[rP] : &:r2580_3, r2580_2 +# 2580| r2580_2(int) = Constant[0] : +# 2580| mu2580_3(int) = Store[s] : &:r2580_1, r2580_2 +# 2581| r2581_1(glval) = VariableAddress[s] : +# 2581| r2581_2(int) = Load[s] : &:r2581_1, ~m? +# 2581| r2581_3(glval) = VariableAddress[rP] : +# 2581| r2581_4(int *) = Load[rP] : &:r2581_3, ~m? +# 2581| r2581_5(glval) = CopyValue : r2581_4 +# 2581| mu2581_6(int) = Store[?] : &:r2581_5, r2581_2 +# 2582| r2582_1(glval) = VariableAddress[s] : +# 2582| r2582_2(int *) = CopyValue : r2582_1 +# 2582| r2582_3(glval) = VariableAddress[rP] : +# 2582| mu2582_4(int *) = Store[rP] : &:r2582_3, r2582_2 #-----| Goto (back edge) -> Block 1 -# 2583| Block 3 -# 2583| r2583_1(glval) = VariableAddress[#return] : -# 2583| r2583_2(glval) = VariableAddress[r] : -# 2583| r2583_3(int) = Load[r] : &:r2583_2, ~m? -# 2583| mu2583_4(int) = Store[#return] : &:r2583_1, r2583_3 -# 2573| r2573_4(glval) = VariableAddress[#return] : -# 2573| v2573_5(void) = ReturnValue : &:r2573_4, ~m? -# 2573| v2573_6(void) = AliasedUse : ~m? -# 2573| v2573_7(void) = ExitFunction : - -# 2588| char* recursive_conditional_call_with_increment(char*, bool) -# 2588| Block 0 -# 2588| v2588_1(void) = EnterFunction : -# 2588| mu2588_2(unknown) = AliasedDefinition : -# 2588| mu2588_3(unknown) = InitializeNonLocal : -# 2588| r2588_4(glval) = VariableAddress[d] : -# 2588| mu2588_5(char *) = InitializeParameter[d] : &:r2588_4 -# 2588| r2588_6(char *) = Load[d] : &:r2588_4, ~m? -# 2588| mu2588_7(unknown) = InitializeIndirection[d] : &:r2588_6 -# 2588| r2588_8(glval) = VariableAddress[b] : -# 2588| mu2588_9(bool) = InitializeParameter[b] : &:r2588_8 -# 2590| r2590_1(glval) = VariableAddress[b] : -# 2590| r2590_2(bool) = Load[b] : &:r2590_1, ~m? -# 2590| v2590_3(void) = ConditionalBranch : r2590_2 +# 2585| Block 3 +# 2585| r2585_1(glval) = VariableAddress[#return] : +# 2585| r2585_2(glval) = VariableAddress[r] : +# 2585| r2585_3(int) = Load[r] : &:r2585_2, ~m? +# 2585| mu2585_4(int) = Store[#return] : &:r2585_1, r2585_3 +# 2575| r2575_4(glval) = VariableAddress[#return] : +# 2575| v2575_5(void) = ReturnValue : &:r2575_4, ~m? +# 2575| v2575_6(void) = AliasedUse : ~m? +# 2575| v2575_7(void) = ExitFunction : + +# 2590| char* recursive_conditional_call_with_increment(char*, bool) +# 2590| Block 0 +# 2590| v2590_1(void) = EnterFunction : +# 2590| mu2590_2(unknown) = AliasedDefinition : +# 2590| mu2590_3(unknown) = InitializeNonLocal : +# 2590| r2590_4(glval) = VariableAddress[d] : +# 2590| mu2590_5(char *) = InitializeParameter[d] : &:r2590_4 +# 2590| r2590_6(char *) = Load[d] : &:r2590_4, ~m? +# 2590| mu2590_7(unknown) = InitializeIndirection[d] : &:r2590_6 +# 2590| r2590_8(glval) = VariableAddress[b] : +# 2590| mu2590_9(bool) = InitializeParameter[b] : &:r2590_8 +# 2592| r2592_1(glval) = VariableAddress[b] : +# 2592| r2592_2(bool) = Load[b] : &:r2592_1, ~m? +# 2592| v2592_3(void) = ConditionalBranch : r2592_2 #-----| False -> Block 2 #-----| True -> Block 1 -# 2591| Block 1 -# 2591| r2591_1(glval) = FunctionAddress[recursive_conditional_call_with_increment] : -# 2591| r2591_2(glval) = VariableAddress[d] : -# 2591| r2591_3(char *) = Load[d] : &:r2591_2, ~m? -# 2591| r2591_4(glval) = VariableAddress[b] : -# 2591| r2591_5(bool) = Load[b] : &:r2591_4, ~m? -# 2591| r2591_6(char *) = Call[recursive_conditional_call_with_increment] : func:r2591_1, 0:r2591_3, 1:r2591_5 -# 2591| mu2591_7(unknown) = ^CallSideEffect : ~m? -# 2591| v2591_8(void) = ^BufferReadSideEffect[0] : &:r2591_3, ~m? -# 2591| mu2591_9(unknown) = ^BufferMayWriteSideEffect[0] : &:r2591_3 -# 2591| r2591_10(glval) = VariableAddress[d] : -# 2591| mu2591_11(char *) = Store[d] : &:r2591_10, r2591_6 +# 2593| Block 1 +# 2593| r2593_1(glval) = FunctionAddress[recursive_conditional_call_with_increment] : +# 2593| r2593_2(glval) = VariableAddress[d] : +# 2593| r2593_3(char *) = Load[d] : &:r2593_2, ~m? +# 2593| r2593_4(glval) = VariableAddress[b] : +# 2593| r2593_5(bool) = Load[b] : &:r2593_4, ~m? +# 2593| r2593_6(char *) = Call[recursive_conditional_call_with_increment] : func:r2593_1, 0:r2593_3, 1:r2593_5 +# 2593| mu2593_7(unknown) = ^CallSideEffect : ~m? +# 2593| v2593_8(void) = ^BufferReadSideEffect[0] : &:r2593_3, ~m? +# 2593| mu2593_9(unknown) = ^BufferMayWriteSideEffect[0] : &:r2593_3 +# 2593| r2593_10(glval) = VariableAddress[d] : +# 2593| mu2593_11(char *) = Store[d] : &:r2593_10, r2593_6 #-----| Goto -> Block 2 -# 2593| Block 2 -# 2593| r2593_1(glval) = VariableAddress[d] : -# 2593| r2593_2(char *) = Load[d] : &:r2593_1, ~m? -# 2593| r2593_3(int) = Constant[1] : -# 2593| r2593_4(char *) = PointerAdd[1] : r2593_2, r2593_3 -# 2593| mu2593_5(char *) = Store[d] : &:r2593_1, r2593_4 -# 2594| r2594_1(glval) = VariableAddress[#return] : -# 2594| r2594_2(glval) = VariableAddress[d] : -# 2594| r2594_3(char *) = Load[d] : &:r2594_2, ~m? -# 2594| mu2594_4(char *) = Store[#return] : &:r2594_1, r2594_3 -# 2588| v2588_10(void) = ReturnIndirection[d] : &:r2588_6, ~m? -# 2588| r2588_11(glval) = VariableAddress[#return] : -# 2588| v2588_12(void) = ReturnValue : &:r2588_11, ~m? -# 2588| v2588_13(void) = AliasedUse : ~m? -# 2588| v2588_14(void) = ExitFunction : - -# 2602| Recursive* merge(Recursive*) -# 2602| Block 0 -# 2602| v2602_1(void) = EnterFunction : -# 2602| mu2602_2(unknown) = AliasedDefinition : -# 2602| mu2602_3(unknown) = InitializeNonLocal : -# 2602| r2602_4(glval) = VariableAddress[a] : -# 2602| mu2602_5(Recursive *) = InitializeParameter[a] : &:r2602_4 -# 2602| r2602_6(Recursive *) = Load[a] : &:r2602_4, ~m? -# 2602| mu2602_7(unknown) = InitializeIndirection[a] : &:r2602_6 -# 2604| r2604_1(glval) = VariableAddress[b] : -# 2604| mu2604_2(Recursive *) = Uninitialized[b] : &:r2604_1 -# 2605| r2605_1(glval) = VariableAddress[p] : -# 2605| r2605_2(glval) = VariableAddress[b] : -# 2605| r2605_3(Recursive **) = CopyValue : r2605_2 -# 2605| mu2605_4(Recursive **) = Store[p] : &:r2605_1, r2605_3 +# 2595| Block 2 +# 2595| r2595_1(glval) = VariableAddress[d] : +# 2595| r2595_2(char *) = Load[d] : &:r2595_1, ~m? +# 2595| r2595_3(int) = Constant[1] : +# 2595| r2595_4(char *) = PointerAdd[1] : r2595_2, r2595_3 +# 2595| mu2595_5(char *) = Store[d] : &:r2595_1, r2595_4 +# 2596| r2596_1(glval) = VariableAddress[#return] : +# 2596| r2596_2(glval) = VariableAddress[d] : +# 2596| r2596_3(char *) = Load[d] : &:r2596_2, ~m? +# 2596| mu2596_4(char *) = Store[#return] : &:r2596_1, r2596_3 +# 2590| v2590_10(void) = ReturnIndirection[d] : &:r2590_6, ~m? +# 2590| r2590_11(glval) = VariableAddress[#return] : +# 2590| v2590_12(void) = ReturnValue : &:r2590_11, ~m? +# 2590| v2590_13(void) = AliasedUse : ~m? +# 2590| v2590_14(void) = ExitFunction : + +# 2604| Recursive* merge(Recursive*) +# 2604| Block 0 +# 2604| v2604_1(void) = EnterFunction : +# 2604| mu2604_2(unknown) = AliasedDefinition : +# 2604| mu2604_3(unknown) = InitializeNonLocal : +# 2604| r2604_4(glval) = VariableAddress[a] : +# 2604| mu2604_5(Recursive *) = InitializeParameter[a] : &:r2604_4 +# 2604| r2604_6(Recursive *) = Load[a] : &:r2604_4, ~m? +# 2604| mu2604_7(unknown) = InitializeIndirection[a] : &:r2604_6 +# 2606| r2606_1(glval) = VariableAddress[b] : +# 2606| mu2606_2(Recursive *) = Uninitialized[b] : &:r2606_1 +# 2607| r2607_1(glval) = VariableAddress[p] : +# 2607| r2607_2(glval) = VariableAddress[b] : +# 2607| r2607_3(Recursive **) = CopyValue : r2607_2 +# 2607| mu2607_4(Recursive **) = Store[p] : &:r2607_1, r2607_3 #-----| Goto -> Block 1 -# 2607| Block 1 -# 2607| r2607_1(glval) = FunctionAddress[predicateA] : -# 2607| r2607_2(bool) = Call[predicateA] : func:r2607_1 -# 2607| mu2607_3(unknown) = ^CallSideEffect : ~m? -# 2607| v2607_4(void) = ConditionalBranch : r2607_2 +# 2609| Block 1 +# 2609| r2609_1(glval) = FunctionAddress[predicateA] : +# 2609| r2609_2(bool) = Call[predicateA] : func:r2609_1 +# 2609| mu2609_3(unknown) = ^CallSideEffect : ~m? +# 2609| v2609_4(void) = ConditionalBranch : r2609_2 #-----| False -> Block 3 #-----| True -> Block 2 -# 2609| Block 2 -# 2609| r2609_1(glval) = VariableAddress[a] : -# 2609| r2609_2(Recursive *) = Load[a] : &:r2609_1, ~m? -# 2609| r2609_3(glval) = VariableAddress[p] : -# 2609| r2609_4(Recursive **) = Load[p] : &:r2609_3, ~m? -# 2609| r2609_5(glval) = CopyValue : r2609_4 -# 2609| mu2609_6(Recursive *) = Store[?] : &:r2609_5, r2609_2 -# 2610| r2610_1(glval) = VariableAddress[a] : -# 2610| r2610_2(Recursive *) = Load[a] : &:r2610_1, ~m? -# 2610| r2610_3(glval) = FieldAddress[next] : r2610_2 -# 2610| r2610_4(Recursive **) = CopyValue : r2610_3 -# 2610| r2610_5(glval) = VariableAddress[p] : -# 2610| mu2610_6(Recursive **) = Store[p] : &:r2610_5, r2610_4 +# 2611| Block 2 +# 2611| r2611_1(glval) = VariableAddress[a] : +# 2611| r2611_2(Recursive *) = Load[a] : &:r2611_1, ~m? +# 2611| r2611_3(glval) = VariableAddress[p] : +# 2611| r2611_4(Recursive **) = Load[p] : &:r2611_3, ~m? +# 2611| r2611_5(glval) = CopyValue : r2611_4 +# 2611| mu2611_6(Recursive *) = Store[?] : &:r2611_5, r2611_2 +# 2612| r2612_1(glval) = VariableAddress[a] : +# 2612| r2612_2(Recursive *) = Load[a] : &:r2612_1, ~m? +# 2612| r2612_3(glval) = FieldAddress[next] : r2612_2 +# 2612| r2612_4(Recursive **) = CopyValue : r2612_3 +# 2612| r2612_5(glval) = VariableAddress[p] : +# 2612| mu2612_6(Recursive **) = Store[p] : &:r2612_5, r2612_4 #-----| Goto (back edge) -> Block 1 -# 2613| Block 3 -# 2613| r2613_1(glval) = VariableAddress[#return] : -# 2613| r2613_2(glval) = VariableAddress[b] : -# 2613| r2613_3(Recursive *) = Load[b] : &:r2613_2, ~m? -# 2613| mu2613_4(Recursive *) = Store[#return] : &:r2613_1, r2613_3 -# 2602| v2602_8(void) = ReturnIndirection[a] : &:r2602_6, ~m? -# 2602| r2602_9(glval) = VariableAddress[#return] : -# 2602| v2602_10(void) = ReturnValue : &:r2602_9, ~m? -# 2602| v2602_11(void) = AliasedUse : ~m? -# 2602| v2602_12(void) = ExitFunction : - -# 2618| void escaping_pointer(bool) -# 2618| Block 0 -# 2618| v2618_1(void) = EnterFunction : -# 2618| mu2618_2(unknown) = AliasedDefinition : -# 2618| mu2618_3(unknown) = InitializeNonLocal : -# 2618| r2618_4(glval) = VariableAddress[b] : -# 2618| mu2618_5(bool) = InitializeParameter[b] : &:r2618_4 -# 2620| r2620_1(glval) = VariableAddress[data] : -# 2620| mu2620_2(int *) = Uninitialized[data] : &:r2620_1 -# 2621| r2621_1(glval) = VariableAddress[l1] : -# 2621| mu2621_2(int) = Uninitialized[l1] : &:r2621_1 -# 2621| r2621_3(glval) = VariableAddress[l2] : -# 2621| mu2621_4(int) = Uninitialized[l2] : &:r2621_3 -# 2622| r2622_1(glval) = VariableAddress[b] : -# 2622| r2622_2(bool) = Load[b] : &:r2622_1, ~m? -# 2622| v2622_3(void) = ConditionalBranch : r2622_2 +# 2615| Block 3 +# 2615| r2615_1(glval) = VariableAddress[#return] : +# 2615| r2615_2(glval) = VariableAddress[b] : +# 2615| r2615_3(Recursive *) = Load[b] : &:r2615_2, ~m? +# 2615| mu2615_4(Recursive *) = Store[#return] : &:r2615_1, r2615_3 +# 2604| v2604_8(void) = ReturnIndirection[a] : &:r2604_6, ~m? +# 2604| r2604_9(glval) = VariableAddress[#return] : +# 2604| v2604_10(void) = ReturnValue : &:r2604_9, ~m? +# 2604| v2604_11(void) = AliasedUse : ~m? +# 2604| v2604_12(void) = ExitFunction : + +# 2620| void escaping_pointer(bool) +# 2620| Block 0 +# 2620| v2620_1(void) = EnterFunction : +# 2620| mu2620_2(unknown) = AliasedDefinition : +# 2620| mu2620_3(unknown) = InitializeNonLocal : +# 2620| r2620_4(glval) = VariableAddress[b] : +# 2620| mu2620_5(bool) = InitializeParameter[b] : &:r2620_4 +# 2622| r2622_1(glval) = VariableAddress[data] : +# 2622| mu2622_2(int *) = Uninitialized[data] : &:r2622_1 +# 2623| r2623_1(glval) = VariableAddress[l1] : +# 2623| mu2623_2(int) = Uninitialized[l1] : &:r2623_1 +# 2623| r2623_3(glval) = VariableAddress[l2] : +# 2623| mu2623_4(int) = Uninitialized[l2] : &:r2623_3 +# 2624| r2624_1(glval) = VariableAddress[b] : +# 2624| r2624_2(bool) = Load[b] : &:r2624_1, ~m? +# 2624| v2624_3(void) = ConditionalBranch : r2624_2 #-----| False -> Block 2 #-----| True -> Block 1 -# 2624| Block 1 -# 2624| r2624_1(glval) = VariableAddress[l1] : -# 2624| r2624_2(int *) = CopyValue : r2624_1 -# 2624| r2624_3(glval) = VariableAddress[data] : -# 2624| mu2624_4(int *) = Store[data] : &:r2624_3, r2624_2 +# 2626| Block 1 +# 2626| r2626_1(glval) = VariableAddress[l1] : +# 2626| r2626_2(int *) = CopyValue : r2626_1 +# 2626| r2626_3(glval) = VariableAddress[data] : +# 2626| mu2626_4(int *) = Store[data] : &:r2626_3, r2626_2 #-----| Goto -> Block 3 -# 2628| Block 2 -# 2628| r2628_1(glval) = VariableAddress[l2] : -# 2628| r2628_2(int *) = CopyValue : r2628_1 -# 2628| r2628_3(glval) = VariableAddress[data] : -# 2628| mu2628_4(int *) = Store[data] : &:r2628_3, r2628_2 +# 2630| Block 2 +# 2630| r2630_1(glval) = VariableAddress[l2] : +# 2630| r2630_2(int *) = CopyValue : r2630_1 +# 2630| r2630_3(glval) = VariableAddress[data] : +# 2630| mu2630_4(int *) = Store[data] : &:r2630_3, r2630_2 #-----| Goto -> Block 3 -# 2630| Block 3 -# 2630| r2630_1(glval) = FunctionAddress[use_const_int] : -# 2630| r2630_2(glval) = VariableAddress[data] : -# 2630| r2630_3(int *) = Load[data] : &:r2630_2, ~m? -# 2630| r2630_4(int *) = Convert : r2630_3 -# 2630| v2630_5(void) = Call[use_const_int] : func:r2630_1, 0:r2630_4 -# 2630| mu2630_6(unknown) = ^CallSideEffect : ~m? -# 2630| v2630_7(void) = ^BufferReadSideEffect[0] : &:r2630_4, ~m? -# 2631| v2631_1(void) = NoOp : -# 2618| v2618_6(void) = ReturnVoid : -# 2618| v2618_7(void) = AliasedUse : ~m? -# 2618| v2618_8(void) = ExitFunction : - -# 2639| void needs_chi_for_initialize_groups() -# 2639| Block 0 -# 2639| v2639_1(void) = EnterFunction : -# 2639| mu2639_2(unknown) = AliasedDefinition : -# 2639| mu2639_3(unknown) = InitializeNonLocal : -# 2641| r2641_1(glval) = FunctionAddress[predicateA] : -# 2641| r2641_2(bool) = Call[predicateA] : func:r2641_1 -# 2641| mu2641_3(unknown) = ^CallSideEffect : ~m? -# 2641| v2641_4(void) = ConditionalBranch : r2641_2 +# 2632| Block 3 +# 2632| r2632_1(glval) = FunctionAddress[use_const_int] : +# 2632| r2632_2(glval) = VariableAddress[data] : +# 2632| r2632_3(int *) = Load[data] : &:r2632_2, ~m? +# 2632| r2632_4(int *) = Convert : r2632_3 +# 2632| v2632_5(void) = Call[use_const_int] : func:r2632_1, 0:r2632_4 +# 2632| mu2632_6(unknown) = ^CallSideEffect : ~m? +# 2632| v2632_7(void) = ^BufferReadSideEffect[0] : &:r2632_4, ~m? +# 2633| v2633_1(void) = NoOp : +# 2620| v2620_6(void) = ReturnVoid : +# 2620| v2620_7(void) = AliasedUse : ~m? +# 2620| v2620_8(void) = ExitFunction : + +# 2641| void needs_chi_for_initialize_groups() +# 2641| Block 0 +# 2641| v2641_1(void) = EnterFunction : +# 2641| mu2641_2(unknown) = AliasedDefinition : +# 2641| mu2641_3(unknown) = InitializeNonLocal : +# 2643| r2643_1(glval) = FunctionAddress[predicateA] : +# 2643| r2643_2(bool) = Call[predicateA] : func:r2643_1 +# 2643| mu2643_3(unknown) = ^CallSideEffect : ~m? +# 2643| v2643_4(void) = ConditionalBranch : r2643_2 #-----| False -> Block 4 #-----| True -> Block 1 -# 2643| Block 1 -# 2643| r2643_1(glval) = VariableAddress[data] : -# 2643| r2643_2(glval) = FunctionAddress[malloc] : -# 2643| r2643_3(unsigned long) = Constant[100] : -# 2643| r2643_4(void *) = Call[malloc] : func:r2643_2, 0:r2643_3 -# 2643| mu2643_5(unknown) = ^CallSideEffect : ~m? -# 2643| mu2643_6(unknown) = ^InitializeDynamicAllocation : &:r2643_4 -# 2643| r2643_7(long long *) = Convert : r2643_4 -# 2643| mu2643_8(long long *) = Store[data] : &:r2643_1, r2643_7 -# 2644| r2644_1(glval) = VariableAddress[data] : -# 2644| r2644_2(long long *) = Load[data] : &:r2644_1, ~m? -# 2644| r2644_3(void *) = Convert : r2644_2 -# 2644| r2644_4(void *) = Constant[0] : -# 2644| r2644_5(bool) = CompareNE : r2644_3, r2644_4 -# 2644| v2644_6(void) = ConditionalBranch : r2644_5 +# 2645| Block 1 +# 2645| r2645_1(glval) = VariableAddress[data] : +# 2645| r2645_2(glval) = FunctionAddress[malloc] : +# 2645| r2645_3(unsigned long) = Constant[100] : +# 2645| r2645_4(void *) = Call[malloc] : func:r2645_2, 0:r2645_3 +# 2645| mu2645_5(unknown) = ^CallSideEffect : ~m? +# 2645| mu2645_6(unknown) = ^InitializeDynamicAllocation : &:r2645_4 +# 2645| r2645_7(long long *) = Convert : r2645_4 +# 2645| mu2645_8(long long *) = Store[data] : &:r2645_1, r2645_7 +# 2646| r2646_1(glval) = VariableAddress[data] : +# 2646| r2646_2(long long *) = Load[data] : &:r2646_1, ~m? +# 2646| r2646_3(void *) = Convert : r2646_2 +# 2646| r2646_4(void *) = Constant[0] : +# 2646| r2646_5(bool) = CompareNE : r2646_3, r2646_4 +# 2646| v2646_6(void) = ConditionalBranch : r2646_5 #-----| False -> Block 3 #-----| True -> Block 2 -# 2646| Block 2 -# 2646| r2646_1(glval) = FunctionAddress[malloc] : -# 2646| r2646_2(unsigned long) = Constant[100] : -# 2646| r2646_3(void *) = Call[malloc] : func:r2646_1, 0:r2646_2 -# 2646| mu2646_4(unknown) = ^CallSideEffect : ~m? -# 2646| mu2646_5(unknown) = ^InitializeDynamicAllocation : &:r2646_3 -# 2646| r2646_6(long long *) = Convert : r2646_3 -# 2646| r2646_7(glval) = VariableAddress[data] : -# 2646| mu2646_8(long long *) = Store[data] : &:r2646_7, r2646_6 +# 2648| Block 2 +# 2648| r2648_1(glval) = FunctionAddress[malloc] : +# 2648| r2648_2(unsigned long) = Constant[100] : +# 2648| r2648_3(void *) = Call[malloc] : func:r2648_1, 0:r2648_2 +# 2648| mu2648_4(unknown) = ^CallSideEffect : ~m? +# 2648| mu2648_5(unknown) = ^InitializeDynamicAllocation : &:r2648_3 +# 2648| r2648_6(long long *) = Convert : r2648_3 +# 2648| r2648_7(glval) = VariableAddress[data] : +# 2648| mu2648_8(long long *) = Store[data] : &:r2648_7, r2648_6 #-----| Goto -> Block 3 -# 2648| Block 3 -# 2648| r2648_1(glval) = FunctionAddress[use_const_void_pointer] : -# 2648| r2648_2(glval) = VariableAddress[data] : -# 2648| r2648_3(long long *) = Load[data] : &:r2648_2, ~m? -# 2648| r2648_4(void *) = Convert : r2648_3 -# 2648| v2648_5(void) = Call[use_const_void_pointer] : func:r2648_1, 0:r2648_4 -# 2648| mu2648_6(unknown) = ^CallSideEffect : ~m? -# 2648| v2648_7(void) = ^BufferReadSideEffect[0] : &:r2648_4, ~m? +# 2650| Block 3 +# 2650| r2650_1(glval) = FunctionAddress[use_const_void_pointer] : +# 2650| r2650_2(glval) = VariableAddress[data] : +# 2650| r2650_3(long long *) = Load[data] : &:r2650_2, ~m? +# 2650| r2650_4(void *) = Convert : r2650_3 +# 2650| v2650_5(void) = Call[use_const_void_pointer] : func:r2650_1, 0:r2650_4 +# 2650| mu2650_6(unknown) = ^CallSideEffect : ~m? +# 2650| v2650_7(void) = ^BufferReadSideEffect[0] : &:r2650_4, ~m? #-----| Goto -> Block 7 -# 2652| Block 4 -# 2652| r2652_1(glval) = VariableAddress[data] : -# 2652| r2652_2(glval) = FunctionAddress[malloc] : -# 2652| r2652_3(unsigned long) = Constant[100] : -# 2652| r2652_4(void *) = Call[malloc] : func:r2652_2, 0:r2652_3 -# 2652| mu2652_5(unknown) = ^CallSideEffect : ~m? -# 2652| mu2652_6(unknown) = ^InitializeDynamicAllocation : &:r2652_4 -# 2652| r2652_7(long long *) = Convert : r2652_4 -# 2652| mu2652_8(long long *) = Store[data] : &:r2652_1, r2652_7 -# 2653| r2653_1(glval) = VariableAddress[data] : -# 2653| r2653_2(long long *) = Load[data] : &:r2653_1, ~m? -# 2653| r2653_3(void *) = Convert : r2653_2 -# 2653| r2653_4(void *) = Constant[0] : -# 2653| r2653_5(bool) = CompareNE : r2653_3, r2653_4 -# 2653| v2653_6(void) = ConditionalBranch : r2653_5 +# 2654| Block 4 +# 2654| r2654_1(glval) = VariableAddress[data] : +# 2654| r2654_2(glval) = FunctionAddress[malloc] : +# 2654| r2654_3(unsigned long) = Constant[100] : +# 2654| r2654_4(void *) = Call[malloc] : func:r2654_2, 0:r2654_3 +# 2654| mu2654_5(unknown) = ^CallSideEffect : ~m? +# 2654| mu2654_6(unknown) = ^InitializeDynamicAllocation : &:r2654_4 +# 2654| r2654_7(long long *) = Convert : r2654_4 +# 2654| mu2654_8(long long *) = Store[data] : &:r2654_1, r2654_7 +# 2655| r2655_1(glval) = VariableAddress[data] : +# 2655| r2655_2(long long *) = Load[data] : &:r2655_1, ~m? +# 2655| r2655_3(void *) = Convert : r2655_2 +# 2655| r2655_4(void *) = Constant[0] : +# 2655| r2655_5(bool) = CompareNE : r2655_3, r2655_4 +# 2655| v2655_6(void) = ConditionalBranch : r2655_5 #-----| False -> Block 6 #-----| True -> Block 5 -# 2655| Block 5 -# 2655| r2655_1(glval) = FunctionAddress[malloc] : -# 2655| r2655_2(unsigned long) = Constant[200] : -# 2655| r2655_3(void *) = Call[malloc] : func:r2655_1, 0:r2655_2 -# 2655| mu2655_4(unknown) = ^CallSideEffect : ~m? -# 2655| mu2655_5(unknown) = ^InitializeDynamicAllocation : &:r2655_3 -# 2655| r2655_6(long long *) = Convert : r2655_3 -# 2655| r2655_7(glval) = VariableAddress[data] : -# 2655| mu2655_8(long long *) = Store[data] : &:r2655_7, r2655_6 +# 2657| Block 5 +# 2657| r2657_1(glval) = FunctionAddress[malloc] : +# 2657| r2657_2(unsigned long) = Constant[200] : +# 2657| r2657_3(void *) = Call[malloc] : func:r2657_1, 0:r2657_2 +# 2657| mu2657_4(unknown) = ^CallSideEffect : ~m? +# 2657| mu2657_5(unknown) = ^InitializeDynamicAllocation : &:r2657_3 +# 2657| r2657_6(long long *) = Convert : r2657_3 +# 2657| r2657_7(glval) = VariableAddress[data] : +# 2657| mu2657_8(long long *) = Store[data] : &:r2657_7, r2657_6 #-----| Goto -> Block 6 -# 2657| Block 6 -# 2657| r2657_1(glval) = FunctionAddress[use_const_void_pointer] : -# 2657| r2657_2(glval) = VariableAddress[data] : -# 2657| r2657_3(long long *) = Load[data] : &:r2657_2, ~m? -# 2657| r2657_4(void *) = Convert : r2657_3 -# 2657| v2657_5(void) = Call[use_const_void_pointer] : func:r2657_1, 0:r2657_4 -# 2657| mu2657_6(unknown) = ^CallSideEffect : ~m? -# 2657| v2657_7(void) = ^BufferReadSideEffect[0] : &:r2657_4, ~m? +# 2659| Block 6 +# 2659| r2659_1(glval) = FunctionAddress[use_const_void_pointer] : +# 2659| r2659_2(glval) = VariableAddress[data] : +# 2659| r2659_3(long long *) = Load[data] : &:r2659_2, ~m? +# 2659| r2659_4(void *) = Convert : r2659_3 +# 2659| v2659_5(void) = Call[use_const_void_pointer] : func:r2659_1, 0:r2659_4 +# 2659| mu2659_6(unknown) = ^CallSideEffect : ~m? +# 2659| v2659_7(void) = ^BufferReadSideEffect[0] : &:r2659_4, ~m? #-----| Goto -> Block 7 -# 2659| Block 7 -# 2659| v2659_1(void) = NoOp : -# 2639| v2639_4(void) = ReturnVoid : -# 2639| v2639_5(void) = AliasedUse : ~m? -# 2639| v2639_6(void) = ExitFunction : - -# 2663| void phi_with_single_input_at_merge(bool) -# 2663| Block 0 -# 2663| v2663_1(void) = EnterFunction : -# 2663| mu2663_2(unknown) = AliasedDefinition : -# 2663| mu2663_3(unknown) = InitializeNonLocal : -# 2663| r2663_4(glval) = VariableAddress[b] : -# 2663| mu2663_5(bool) = InitializeParameter[b] : &:r2663_4 -# 2665| r2665_1(glval) = VariableAddress[data] : -# 2665| r2665_2(int *) = Constant[0] : -# 2665| mu2665_3(int *) = Store[data] : &:r2665_1, r2665_2 -# 2666| r2666_1(glval) = VariableAddress[b] : -# 2666| r2666_2(bool) = Load[b] : &:r2666_1, ~m? -# 2666| v2666_3(void) = ConditionalBranch : r2666_2 +# 2661| Block 7 +# 2661| v2661_1(void) = NoOp : +# 2641| v2641_4(void) = ReturnVoid : +# 2641| v2641_5(void) = AliasedUse : ~m? +# 2641| v2641_6(void) = ExitFunction : + +# 2665| void phi_with_single_input_at_merge(bool) +# 2665| Block 0 +# 2665| v2665_1(void) = EnterFunction : +# 2665| mu2665_2(unknown) = AliasedDefinition : +# 2665| mu2665_3(unknown) = InitializeNonLocal : +# 2665| r2665_4(glval) = VariableAddress[b] : +# 2665| mu2665_5(bool) = InitializeParameter[b] : &:r2665_4 +# 2667| r2667_1(glval) = VariableAddress[data] : +# 2667| r2667_2(int *) = Constant[0] : +# 2667| mu2667_3(int *) = Store[data] : &:r2667_1, r2667_2 +# 2668| r2668_1(glval) = VariableAddress[b] : +# 2668| r2668_2(bool) = Load[b] : &:r2668_1, ~m? +# 2668| v2668_3(void) = ConditionalBranch : r2668_2 #-----| False -> Block 2 #-----| True -> Block 1 -# 2667| Block 1 -# 2667| r2667_1(glval) = VariableAddress[intBuffer] : -# 2667| r2667_2(int) = Constant[8] : -# 2667| mu2667_3(int) = Store[intBuffer] : &:r2667_1, r2667_2 -# 2668| r2668_1(glval) = VariableAddress[intBuffer] : -# 2668| r2668_2(int *) = CopyValue : r2668_1 -# 2668| r2668_3(glval) = VariableAddress[data] : -# 2668| mu2668_4(int *) = Store[data] : &:r2668_3, r2668_2 +# 2669| Block 1 +# 2669| r2669_1(glval) = VariableAddress[intBuffer] : +# 2669| r2669_2(int) = Constant[8] : +# 2669| mu2669_3(int) = Store[intBuffer] : &:r2669_1, r2669_2 +# 2670| r2670_1(glval) = VariableAddress[intBuffer] : +# 2670| r2670_2(int *) = CopyValue : r2670_1 +# 2670| r2670_3(glval) = VariableAddress[data] : +# 2670| mu2670_4(int *) = Store[data] : &:r2670_3, r2670_2 #-----| Goto -> Block 2 -# 2670| Block 2 -# 2670| r2670_1(glval) = FunctionAddress[use_int] : -# 2670| r2670_2(glval) = VariableAddress[data] : -# 2670| r2670_3(int *) = Load[data] : &:r2670_2, ~m? -# 2670| r2670_4(int) = Load[?] : &:r2670_3, ~m? -# 2670| v2670_5(void) = Call[use_int] : func:r2670_1, 0:r2670_4 -# 2670| mu2670_6(unknown) = ^CallSideEffect : ~m? -# 2671| v2671_1(void) = NoOp : -# 2663| v2663_6(void) = ReturnVoid : -# 2663| v2663_7(void) = AliasedUse : ~m? -# 2663| v2663_8(void) = ExitFunction : - -# 2684| void test(bool) -# 2684| Block 0 -# 2684| v2684_1(void) = EnterFunction : -# 2684| mu2684_2(unknown) = AliasedDefinition : -# 2684| mu2684_3(unknown) = InitializeNonLocal : -# 2684| r2684_4(glval) = VariableAddress[b] : -# 2684| mu2684_5(bool) = InitializeParameter[b] : &:r2684_4 +# 2672| Block 2 +# 2672| r2672_1(glval) = FunctionAddress[use_int] : +# 2672| r2672_2(glval) = VariableAddress[data] : +# 2672| r2672_3(int *) = Load[data] : &:r2672_2, ~m? +# 2672| r2672_4(int) = Load[?] : &:r2672_3, ~m? +# 2672| v2672_5(void) = Call[use_int] : func:r2672_1, 0:r2672_4 +# 2672| mu2672_6(unknown) = ^CallSideEffect : ~m? +# 2673| v2673_1(void) = NoOp : +# 2665| v2665_6(void) = ReturnVoid : +# 2665| v2665_7(void) = AliasedUse : ~m? +# 2665| v2665_8(void) = ExitFunction : + +# 2686| void test(bool) +# 2686| Block 0 +# 2686| v2686_1(void) = EnterFunction : +# 2686| mu2686_2(unknown) = AliasedDefinition : +# 2686| mu2686_3(unknown) = InitializeNonLocal : +# 2686| r2686_4(glval) = VariableAddress[b] : +# 2686| mu2686_5(bool) = InitializeParameter[b] : &:r2686_4 #-----| Goto -> Block 1 -# 2686| Block 1 -# 2686| r2686_1(glval) = FunctionAddress[use] : -# 2686| r2686_2(glval) = VariableAddress[b] : -# 2686| r2686_3(bool) = Load[b] : &:r2686_2, ~m? -# 2686| v2686_4(void) = ConditionalBranch : r2686_3 +# 2688| Block 1 +# 2688| r2688_1(glval) = FunctionAddress[use] : +# 2688| r2688_2(glval) = VariableAddress[b] : +# 2688| r2688_3(bool) = Load[b] : &:r2688_2, ~m? +# 2688| v2688_4(void) = ConditionalBranch : r2688_3 #-----| False -> Block 4 #-----| True -> Block 3 -# 2686| Block 2 -# 2686| r2686_5(glval) = VariableAddress[#temp2686:18] : -# 2686| r2686_6(char *) = Load[#temp2686:18] : &:r2686_5, ~m? -# 2686| v2686_7(void) = Call[use] : func:r2686_1, 0:r2686_6 -# 2686| mu2686_8(unknown) = ^CallSideEffect : ~m? -# 2686| v2686_9(void) = ^BufferReadSideEffect[0] : &:r2686_6, ~m? -# 2686| r2686_10(glval) = FunctionAddress[use] : -# 2686| r2686_11(glval) = VariableAddress[b] : -# 2686| r2686_12(bool) = Load[b] : &:r2686_11, ~m? -# 2686| v2686_13(void) = ConditionalBranch : r2686_12 +# 2688| Block 2 +# 2688| r2688_5(glval) = VariableAddress[#temp2688:18] : +# 2688| r2688_6(char *) = Load[#temp2688:18] : &:r2688_5, ~m? +# 2688| v2688_7(void) = Call[use] : func:r2688_1, 0:r2688_6 +# 2688| mu2688_8(unknown) = ^CallSideEffect : ~m? +# 2688| v2688_9(void) = ^BufferReadSideEffect[0] : &:r2688_6, ~m? +# 2688| r2688_10(glval) = FunctionAddress[use] : +# 2688| r2688_11(glval) = VariableAddress[b] : +# 2688| r2688_12(bool) = Load[b] : &:r2688_11, ~m? +# 2688| v2688_13(void) = ConditionalBranch : r2688_12 #-----| False -> Block 7 #-----| True -> Block 6 -# 2686| Block 3 -# 2686| r2686_14(glval) = StringConstant[] : -# 2686| r2686_15(char *) = Convert : r2686_14 -# 2686| r2686_16(glval) = VariableAddress[#temp2686:18] : -# 2686| mu2686_17(char *) = Store[#temp2686:18] : &:r2686_16, r2686_15 +# 2688| Block 3 +# 2688| r2688_14(glval) = StringConstant[] : +# 2688| r2688_15(char *) = Convert : r2688_14 +# 2688| r2688_16(glval) = VariableAddress[#temp2688:18] : +# 2688| mu2688_17(char *) = Store[#temp2688:18] : &:r2688_16, r2688_15 #-----| Goto -> Block 2 -# 2686| Block 4 -# 2686| r2686_18(glval) = StringConstant[] : -# 2686| r2686_19(char *) = Convert : r2686_18 -# 2686| r2686_20(glval) = VariableAddress[#temp2686:18] : -# 2686| mu2686_21(char *) = Store[#temp2686:18] : &:r2686_20, r2686_19 +# 2688| Block 4 +# 2688| r2688_18(glval) = StringConstant[] : +# 2688| r2688_19(char *) = Convert : r2688_18 +# 2688| r2688_20(glval) = VariableAddress[#temp2688:18] : +# 2688| mu2688_21(char *) = Store[#temp2688:18] : &:r2688_20, r2688_19 #-----| Goto -> Block 2 -# 2686| Block 5 -# 2686| r2686_22(glval) = VariableAddress[#temp2686:18] : -# 2686| r2686_23(char *) = Load[#temp2686:18] : &:r2686_22, ~m? -# 2686| v2686_24(void) = Call[use] : func:r2686_10, 0:r2686_23 -# 2686| mu2686_25(unknown) = ^CallSideEffect : ~m? -# 2686| v2686_26(void) = ^BufferReadSideEffect[0] : &:r2686_23, ~m? -# 2686| r2686_27(bool) = Constant[0] : -# 2686| v2686_28(void) = ConditionalBranch : r2686_27 +# 2688| Block 5 +# 2688| r2688_22(glval) = VariableAddress[#temp2688:18] : +# 2688| r2688_23(char *) = Load[#temp2688:18] : &:r2688_22, ~m? +# 2688| v2688_24(void) = Call[use] : func:r2688_10, 0:r2688_23 +# 2688| mu2688_25(unknown) = ^CallSideEffect : ~m? +# 2688| v2688_26(void) = ^BufferReadSideEffect[0] : &:r2688_23, ~m? +# 2688| r2688_27(bool) = Constant[0] : +# 2688| v2688_28(void) = ConditionalBranch : r2688_27 #-----| False -> Block 8 #-----| True (back edge) -> Block 1 -# 2686| Block 6 -# 2686| r2686_29(glval) = StringConstant[] : -# 2686| r2686_30(char *) = Convert : r2686_29 -# 2686| r2686_31(glval) = VariableAddress[#temp2686:18] : -# 2686| mu2686_32(char *) = Store[#temp2686:18] : &:r2686_31, r2686_30 +# 2688| Block 6 +# 2688| r2688_29(glval) = StringConstant[] : +# 2688| r2688_30(char *) = Convert : r2688_29 +# 2688| r2688_31(glval) = VariableAddress[#temp2688:18] : +# 2688| mu2688_32(char *) = Store[#temp2688:18] : &:r2688_31, r2688_30 #-----| Goto -> Block 5 -# 2686| Block 7 -# 2686| r2686_33(glval) = StringConstant[] : -# 2686| r2686_34(char *) = Convert : r2686_33 -# 2686| r2686_35(glval) = VariableAddress[#temp2686:18] : -# 2686| mu2686_36(char *) = Store[#temp2686:18] : &:r2686_35, r2686_34 +# 2688| Block 7 +# 2688| r2688_33(glval) = StringConstant[] : +# 2688| r2688_34(char *) = Convert : r2688_33 +# 2688| r2688_35(glval) = VariableAddress[#temp2688:18] : +# 2688| mu2688_36(char *) = Store[#temp2688:18] : &:r2688_35, r2688_34 #-----| Goto -> Block 5 -# 2687| Block 8 -# 2687| v2687_1(void) = NoOp : -# 2684| v2684_6(void) = ReturnVoid : -# 2684| v2684_7(void) = AliasedUse : ~m? -# 2684| v2684_8(void) = ExitFunction : - -# 2691| int concepts::requires_use() -# 2691| Block 0 -# 2691| v2691_1(void) = EnterFunction : -# 2691| mu2691_2(unknown) = AliasedDefinition : -# 2691| mu2691_3(unknown) = InitializeNonLocal : -# 2692| r2692_1(glval) = VariableAddress[y] : -# 2692| r2692_2(int) = Constant[1] : -# 2692| mu2692_3(int) = Store[y] : &:r2692_1, r2692_2 -# 2693| r2693_1(glval) = VariableAddress[#return] : -# 2693| r2693_2(glval) = VariableAddress[y] : -# 2693| r2693_3(int) = Load[y] : &:r2693_2, ~m? -# 2693| mu2693_4(int) = Store[#return] : &:r2693_1, r2693_3 -# 2691| r2691_4(glval) = VariableAddress[#return] : -# 2691| v2691_5(void) = ReturnValue : &:r2691_4, ~m? -# 2691| v2691_6(void) = AliasedUse : ~m? -# 2691| v2691_7(void) = ExitFunction : - -# 2698| void branch_on_integral_in_cpp(int, int) -# 2698| Block 0 -# 2698| v2698_1(void) = EnterFunction : -# 2698| mu2698_2(unknown) = AliasedDefinition : -# 2698| mu2698_3(unknown) = InitializeNonLocal : -# 2698| r2698_4(glval) = VariableAddress[x1] : -# 2698| mu2698_5(int) = InitializeParameter[x1] : &:r2698_4 -# 2698| r2698_6(glval) = VariableAddress[x2] : -# 2698| mu2698_7(int) = InitializeParameter[x2] : &:r2698_6 -# 2699| r2699_1(glval) = VariableAddress[x1] : -# 2699| r2699_2(int) = Load[x1] : &:r2699_1, ~m? -# 2699| r2699_3(int) = Constant[0] : -# 2699| r2699_4(bool) = CompareNE : r2699_2, r2699_3 -# 2699| v2699_5(void) = ConditionalBranch : r2699_4 +# 2689| Block 8 +# 2689| v2689_1(void) = NoOp : +# 2686| v2686_6(void) = ReturnVoid : +# 2686| v2686_7(void) = AliasedUse : ~m? +# 2686| v2686_8(void) = ExitFunction : + +# 2693| int concepts::requires_use() +# 2693| Block 0 +# 2693| v2693_1(void) = EnterFunction : +# 2693| mu2693_2(unknown) = AliasedDefinition : +# 2693| mu2693_3(unknown) = InitializeNonLocal : +# 2694| r2694_1(glval) = VariableAddress[y] : +# 2694| r2694_2(int) = Constant[1] : +# 2694| mu2694_3(int) = Store[y] : &:r2694_1, r2694_2 +# 2695| r2695_1(glval) = VariableAddress[#return] : +# 2695| r2695_2(glval) = VariableAddress[y] : +# 2695| r2695_3(int) = Load[y] : &:r2695_2, ~m? +# 2695| mu2695_4(int) = Store[#return] : &:r2695_1, r2695_3 +# 2693| r2693_4(glval) = VariableAddress[#return] : +# 2693| v2693_5(void) = ReturnValue : &:r2693_4, ~m? +# 2693| v2693_6(void) = AliasedUse : ~m? +# 2693| v2693_7(void) = ExitFunction : + +# 2700| void branch_on_integral_in_cpp(int, int) +# 2700| Block 0 +# 2700| v2700_1(void) = EnterFunction : +# 2700| mu2700_2(unknown) = AliasedDefinition : +# 2700| mu2700_3(unknown) = InitializeNonLocal : +# 2700| r2700_4(glval) = VariableAddress[x1] : +# 2700| mu2700_5(int) = InitializeParameter[x1] : &:r2700_4 +# 2700| r2700_6(glval) = VariableAddress[x2] : +# 2700| mu2700_7(int) = InitializeParameter[x2] : &:r2700_6 +# 2701| r2701_1(glval) = VariableAddress[x1] : +# 2701| r2701_2(int) = Load[x1] : &:r2701_1, ~m? +# 2701| r2701_3(int) = Constant[0] : +# 2701| r2701_4(bool) = CompareNE : r2701_2, r2701_3 +# 2701| v2701_5(void) = ConditionalBranch : r2701_4 #-----| False -> Block 2 #-----| True -> Block 1 -# 2699| Block 1 -# 2699| v2699_6(void) = NoOp : +# 2701| Block 1 +# 2701| v2701_6(void) = NoOp : #-----| Goto -> Block 2 -# 2700| Block 2 -# 2700| r2700_1(glval) = VariableAddress[x1] : -# 2700| r2700_2(int) = Load[x1] : &:r2700_1, ~m? -# 2700| r2700_3(int) = Constant[0] : -# 2700| r2700_4(bool) = CompareNE : r2700_2, r2700_3 -# 2700| r2700_5(bool) = LogicalNot : r2700_4 -# 2700| v2700_6(void) = ConditionalBranch : r2700_5 +# 2702| Block 2 +# 2702| r2702_1(glval) = VariableAddress[x1] : +# 2702| r2702_2(int) = Load[x1] : &:r2702_1, ~m? +# 2702| r2702_3(int) = Constant[0] : +# 2702| r2702_4(bool) = CompareNE : r2702_2, r2702_3 +# 2702| r2702_5(bool) = LogicalNot : r2702_4 +# 2702| v2702_6(void) = ConditionalBranch : r2702_5 #-----| False -> Block 4 #-----| True -> Block 3 -# 2700| Block 3 -# 2700| v2700_7(void) = NoOp : +# 2702| Block 3 +# 2702| v2702_7(void) = NoOp : #-----| Goto -> Block 4 -# 2702| Block 4 -# 2702| r2702_1(glval) = VariableAddress[y] : -# 2702| r2702_2(glval) = VariableAddress[x1] : -# 2702| r2702_3(int) = Load[x1] : &:r2702_2, ~m? -# 2702| r2702_4(int) = Constant[0] : -# 2702| r2702_5(bool) = CompareNE : r2702_3, r2702_4 -# 2702| r2702_6(bool) = LogicalNot : r2702_5 -# 2702| r2702_7(int) = Convert : r2702_6 -# 2702| mu2702_8(int) = Store[y] : &:r2702_1, r2702_7 -# 2703| r2703_1(glval) = VariableAddress[y] : -# 2703| r2703_2(int) = Load[y] : &:r2703_1, ~m? -# 2703| r2703_3(int) = Constant[0] : -# 2703| r2703_4(bool) = CompareNE : r2703_2, r2703_3 -# 2703| v2703_5(void) = ConditionalBranch : r2703_4 +# 2704| Block 4 +# 2704| r2704_1(glval) = VariableAddress[y] : +# 2704| r2704_2(glval) = VariableAddress[x1] : +# 2704| r2704_3(int) = Load[x1] : &:r2704_2, ~m? +# 2704| r2704_4(int) = Constant[0] : +# 2704| r2704_5(bool) = CompareNE : r2704_3, r2704_4 +# 2704| r2704_6(bool) = LogicalNot : r2704_5 +# 2704| r2704_7(int) = Convert : r2704_6 +# 2704| mu2704_8(int) = Store[y] : &:r2704_1, r2704_7 +# 2705| r2705_1(glval) = VariableAddress[y] : +# 2705| r2705_2(int) = Load[y] : &:r2705_1, ~m? +# 2705| r2705_3(int) = Constant[0] : +# 2705| r2705_4(bool) = CompareNE : r2705_2, r2705_3 +# 2705| v2705_5(void) = ConditionalBranch : r2705_4 #-----| False -> Block 6 #-----| True -> Block 5 -# 2703| Block 5 -# 2703| v2703_6(void) = NoOp : +# 2705| Block 5 +# 2705| v2705_6(void) = NoOp : #-----| Goto -> Block 6 -# 2704| Block 6 -# 2704| r2704_1(glval) = VariableAddress[y] : -# 2704| r2704_2(int) = Load[y] : &:r2704_1, ~m? -# 2704| r2704_3(int) = Constant[0] : -# 2704| r2704_4(bool) = CompareNE : r2704_2, r2704_3 -# 2704| r2704_5(bool) = LogicalNot : r2704_4 -# 2704| v2704_6(void) = ConditionalBranch : r2704_5 +# 2706| Block 6 +# 2706| r2706_1(glval) = VariableAddress[y] : +# 2706| r2706_2(int) = Load[y] : &:r2706_1, ~m? +# 2706| r2706_3(int) = Constant[0] : +# 2706| r2706_4(bool) = CompareNE : r2706_2, r2706_3 +# 2706| r2706_5(bool) = LogicalNot : r2706_4 +# 2706| v2706_6(void) = ConditionalBranch : r2706_5 #-----| False -> Block 8 #-----| True -> Block 7 -# 2704| Block 7 -# 2704| v2704_7(void) = NoOp : +# 2706| Block 7 +# 2706| v2706_7(void) = NoOp : #-----| Goto -> Block 8 -# 2706| Block 8 -# 2706| r2706_1(glval) = VariableAddress[x1] : -# 2706| r2706_2(int) = Load[x1] : &:r2706_1, ~m? -# 2706| r2706_3(int) = Constant[0] : -# 2706| r2706_4(bool) = CompareNE : r2706_2, r2706_3 -# 2706| v2706_5(void) = ConditionalBranch : r2706_4 -#-----| False -> Block 11 -#-----| True -> Block 9 - -# 2706| Block 9 -# 2706| r2706_6(glval) = VariableAddress[x2] : -# 2706| r2706_7(int) = Load[x2] : &:r2706_6, ~m? -# 2706| r2706_8(int) = Constant[0] : -# 2706| r2706_9(bool) = CompareNE : r2706_7, r2706_8 -# 2706| v2706_10(void) = ConditionalBranch : r2706_9 -#-----| False -> Block 11 -#-----| True -> Block 10 - -# 2706| Block 10 -# 2706| v2706_11(void) = NoOp : -#-----| Goto -> Block 11 - -# 2707| Block 11 -# 2707| r2707_1(glval) = VariableAddress[x1] : -# 2707| r2707_2(int) = Load[x1] : &:r2707_1, ~m? -# 2707| r2707_3(int) = Constant[0] : -# 2707| r2707_4(bool) = CompareNE : r2707_2, r2707_3 -# 2707| r2707_5(bool) = LogicalNot : r2707_4 -# 2707| v2707_6(void) = ConditionalBranch : r2707_5 -#-----| False -> Block 14 -#-----| True -> Block 12 - -# 2707| Block 12 -# 2707| r2707_7(glval) = VariableAddress[x2] : -# 2707| r2707_8(int) = Load[x2] : &:r2707_7, ~m? -# 2707| r2707_9(int) = Constant[0] : -# 2707| r2707_10(bool) = CompareNE : r2707_8, r2707_9 -# 2707| v2707_11(void) = ConditionalBranch : r2707_10 -#-----| False -> Block 14 -#-----| True -> Block 13 - -# 2707| Block 13 -# 2707| v2707_12(void) = NoOp : -#-----| Goto -> Block 14 - -# 2708| Block 14 +# 2708| Block 8 # 2708| r2708_1(glval) = VariableAddress[x1] : # 2708| r2708_2(int) = Load[x1] : &:r2708_1, ~m? # 2708| r2708_3(int) = Constant[0] : # 2708| r2708_4(bool) = CompareNE : r2708_2, r2708_3 # 2708| v2708_5(void) = ConditionalBranch : r2708_4 -#-----| False -> Block 17 -#-----| True -> Block 15 +#-----| False -> Block 11 +#-----| True -> Block 9 -# 2708| Block 15 +# 2708| Block 9 # 2708| r2708_6(glval) = VariableAddress[x2] : # 2708| r2708_7(int) = Load[x2] : &:r2708_6, ~m? # 2708| r2708_8(int) = Constant[0] : # 2708| r2708_9(bool) = CompareNE : r2708_7, r2708_8 -# 2708| r2708_10(bool) = LogicalNot : r2708_9 -# 2708| v2708_11(void) = ConditionalBranch : r2708_10 -#-----| False -> Block 17 -#-----| True -> Block 16 +# 2708| v2708_10(void) = ConditionalBranch : r2708_9 +#-----| False -> Block 11 +#-----| True -> Block 10 -# 2708| Block 16 -# 2708| v2708_12(void) = NoOp : -#-----| Goto -> Block 17 +# 2708| Block 10 +# 2708| v2708_11(void) = NoOp : +#-----| Goto -> Block 11 -# 2709| Block 17 +# 2709| Block 11 # 2709| r2709_1(glval) = VariableAddress[x1] : # 2709| r2709_2(int) = Load[x1] : &:r2709_1, ~m? # 2709| r2709_3(int) = Constant[0] : # 2709| r2709_4(bool) = CompareNE : r2709_2, r2709_3 # 2709| r2709_5(bool) = LogicalNot : r2709_4 # 2709| v2709_6(void) = ConditionalBranch : r2709_5 -#-----| False -> Block 20 -#-----| True -> Block 18 +#-----| False -> Block 14 +#-----| True -> Block 12 -# 2709| Block 18 +# 2709| Block 12 # 2709| r2709_7(glval) = VariableAddress[x2] : # 2709| r2709_8(int) = Load[x2] : &:r2709_7, ~m? # 2709| r2709_9(int) = Constant[0] : # 2709| r2709_10(bool) = CompareNE : r2709_8, r2709_9 -# 2709| r2709_11(bool) = LogicalNot : r2709_10 -# 2709| v2709_12(void) = ConditionalBranch : r2709_11 -#-----| False -> Block 20 -#-----| True -> Block 19 +# 2709| v2709_11(void) = ConditionalBranch : r2709_10 +#-----| False -> Block 14 +#-----| True -> Block 13 -# 2709| Block 19 -# 2709| v2709_13(void) = NoOp : -#-----| Goto -> Block 20 +# 2709| Block 13 +# 2709| v2709_12(void) = NoOp : +#-----| Goto -> Block 14 -# 2710| Block 20 +# 2710| Block 14 # 2710| r2710_1(glval) = VariableAddress[x1] : # 2710| r2710_2(int) = Load[x1] : &:r2710_1, ~m? # 2710| r2710_3(int) = Constant[0] : # 2710| r2710_4(bool) = CompareNE : r2710_2, r2710_3 # 2710| v2710_5(void) = ConditionalBranch : r2710_4 -#-----| False -> Block 21 -#-----| True -> Block 22 +#-----| False -> Block 17 +#-----| True -> Block 15 -# 2710| Block 21 +# 2710| Block 15 # 2710| r2710_6(glval) = VariableAddress[x2] : # 2710| r2710_7(int) = Load[x2] : &:r2710_6, ~m? # 2710| r2710_8(int) = Constant[0] : # 2710| r2710_9(bool) = CompareNE : r2710_7, r2710_8 -# 2710| v2710_10(void) = ConditionalBranch : r2710_9 -#-----| False -> Block 23 -#-----| True -> Block 22 +# 2710| r2710_10(bool) = LogicalNot : r2710_9 +# 2710| v2710_11(void) = ConditionalBranch : r2710_10 +#-----| False -> Block 17 +#-----| True -> Block 16 -# 2710| Block 22 -# 2710| v2710_11(void) = NoOp : -#-----| Goto -> Block 23 +# 2710| Block 16 +# 2710| v2710_12(void) = NoOp : +#-----| Goto -> Block 17 -# 2711| Block 23 +# 2711| Block 17 # 2711| r2711_1(glval) = VariableAddress[x1] : # 2711| r2711_2(int) = Load[x1] : &:r2711_1, ~m? # 2711| r2711_3(int) = Constant[0] : # 2711| r2711_4(bool) = CompareNE : r2711_2, r2711_3 # 2711| r2711_5(bool) = LogicalNot : r2711_4 # 2711| v2711_6(void) = ConditionalBranch : r2711_5 -#-----| False -> Block 24 -#-----| True -> Block 25 +#-----| False -> Block 20 +#-----| True -> Block 18 -# 2711| Block 24 +# 2711| Block 18 # 2711| r2711_7(glval) = VariableAddress[x2] : # 2711| r2711_8(int) = Load[x2] : &:r2711_7, ~m? # 2711| r2711_9(int) = Constant[0] : # 2711| r2711_10(bool) = CompareNE : r2711_8, r2711_9 -# 2711| v2711_11(void) = ConditionalBranch : r2711_10 -#-----| False -> Block 26 -#-----| True -> Block 25 +# 2711| r2711_11(bool) = LogicalNot : r2711_10 +# 2711| v2711_12(void) = ConditionalBranch : r2711_11 +#-----| False -> Block 20 +#-----| True -> Block 19 -# 2711| Block 25 -# 2711| v2711_12(void) = NoOp : -#-----| Goto -> Block 26 +# 2711| Block 19 +# 2711| v2711_13(void) = NoOp : +#-----| Goto -> Block 20 -# 2712| Block 26 +# 2712| Block 20 # 2712| r2712_1(glval) = VariableAddress[x1] : # 2712| r2712_2(int) = Load[x1] : &:r2712_1, ~m? # 2712| r2712_3(int) = Constant[0] : # 2712| r2712_4(bool) = CompareNE : r2712_2, r2712_3 # 2712| v2712_5(void) = ConditionalBranch : r2712_4 -#-----| False -> Block 27 -#-----| True -> Block 28 +#-----| False -> Block 21 +#-----| True -> Block 22 -# 2712| Block 27 +# 2712| Block 21 # 2712| r2712_6(glval) = VariableAddress[x2] : # 2712| r2712_7(int) = Load[x2] : &:r2712_6, ~m? # 2712| r2712_8(int) = Constant[0] : # 2712| r2712_9(bool) = CompareNE : r2712_7, r2712_8 -# 2712| r2712_10(bool) = LogicalNot : r2712_9 -# 2712| v2712_11(void) = ConditionalBranch : r2712_10 -#-----| False -> Block 29 -#-----| True -> Block 28 +# 2712| v2712_10(void) = ConditionalBranch : r2712_9 +#-----| False -> Block 23 +#-----| True -> Block 22 -# 2712| Block 28 -# 2712| v2712_12(void) = NoOp : -#-----| Goto -> Block 29 +# 2712| Block 22 +# 2712| v2712_11(void) = NoOp : +#-----| Goto -> Block 23 -# 2713| Block 29 +# 2713| Block 23 # 2713| r2713_1(glval) = VariableAddress[x1] : # 2713| r2713_2(int) = Load[x1] : &:r2713_1, ~m? # 2713| r2713_3(int) = Constant[0] : # 2713| r2713_4(bool) = CompareNE : r2713_2, r2713_3 # 2713| r2713_5(bool) = LogicalNot : r2713_4 # 2713| v2713_6(void) = ConditionalBranch : r2713_5 -#-----| False -> Block 30 -#-----| True -> Block 31 +#-----| False -> Block 24 +#-----| True -> Block 25 -# 2713| Block 30 +# 2713| Block 24 # 2713| r2713_7(glval) = VariableAddress[x2] : # 2713| r2713_8(int) = Load[x2] : &:r2713_7, ~m? # 2713| r2713_9(int) = Constant[0] : # 2713| r2713_10(bool) = CompareNE : r2713_8, r2713_9 -# 2713| r2713_11(bool) = LogicalNot : r2713_10 -# 2713| v2713_12(void) = ConditionalBranch : r2713_11 +# 2713| v2713_11(void) = ConditionalBranch : r2713_10 +#-----| False -> Block 26 +#-----| True -> Block 25 + +# 2713| Block 25 +# 2713| v2713_12(void) = NoOp : +#-----| Goto -> Block 26 + +# 2714| Block 26 +# 2714| r2714_1(glval) = VariableAddress[x1] : +# 2714| r2714_2(int) = Load[x1] : &:r2714_1, ~m? +# 2714| r2714_3(int) = Constant[0] : +# 2714| r2714_4(bool) = CompareNE : r2714_2, r2714_3 +# 2714| v2714_5(void) = ConditionalBranch : r2714_4 +#-----| False -> Block 27 +#-----| True -> Block 28 + +# 2714| Block 27 +# 2714| r2714_6(glval) = VariableAddress[x2] : +# 2714| r2714_7(int) = Load[x2] : &:r2714_6, ~m? +# 2714| r2714_8(int) = Constant[0] : +# 2714| r2714_9(bool) = CompareNE : r2714_7, r2714_8 +# 2714| r2714_10(bool) = LogicalNot : r2714_9 +# 2714| v2714_11(void) = ConditionalBranch : r2714_10 +#-----| False -> Block 29 +#-----| True -> Block 28 + +# 2714| Block 28 +# 2714| v2714_12(void) = NoOp : +#-----| Goto -> Block 29 + +# 2715| Block 29 +# 2715| r2715_1(glval) = VariableAddress[x1] : +# 2715| r2715_2(int) = Load[x1] : &:r2715_1, ~m? +# 2715| r2715_3(int) = Constant[0] : +# 2715| r2715_4(bool) = CompareNE : r2715_2, r2715_3 +# 2715| r2715_5(bool) = LogicalNot : r2715_4 +# 2715| v2715_6(void) = ConditionalBranch : r2715_5 +#-----| False -> Block 30 +#-----| True -> Block 31 + +# 2715| Block 30 +# 2715| r2715_7(glval) = VariableAddress[x2] : +# 2715| r2715_8(int) = Load[x2] : &:r2715_7, ~m? +# 2715| r2715_9(int) = Constant[0] : +# 2715| r2715_10(bool) = CompareNE : r2715_8, r2715_9 +# 2715| r2715_11(bool) = LogicalNot : r2715_10 +# 2715| v2715_12(void) = ConditionalBranch : r2715_11 #-----| False -> Block 32 #-----| True -> Block 31 -# 2713| Block 31 -# 2713| v2713_13(void) = NoOp : +# 2715| Block 31 +# 2715| v2715_13(void) = NoOp : #-----| Goto -> Block 32 -# 2715| Block 32 -# 2715| r2715_1(glval) = VariableAddress[x_1_and_2] : -# 2715| r2715_2(glval) = VariableAddress[x1] : -# 2715| r2715_3(int) = Load[x1] : &:r2715_2, ~m? -# 2715| r2715_4(int) = Constant[0] : -# 2715| r2715_5(bool) = CompareNE : r2715_3, r2715_4 -# 2715| v2715_6(void) = ConditionalBranch : r2715_5 +# 2717| Block 32 +# 2717| r2717_1(glval) = VariableAddress[x_1_and_2] : +# 2717| r2717_2(glval) = VariableAddress[x1] : +# 2717| r2717_3(int) = Load[x1] : &:r2717_2, ~m? +# 2717| r2717_4(int) = Constant[0] : +# 2717| r2717_5(bool) = CompareNE : r2717_3, r2717_4 +# 2717| v2717_6(void) = ConditionalBranch : r2717_5 #-----| False -> Block 33 #-----| True -> Block 36 -# 2715| Block 33 -# 2715| r2715_7(glval) = VariableAddress[#temp2715:19] : -# 2715| r2715_8(bool) = Constant[0] : -# 2715| mu2715_9(bool) = Store[#temp2715:19] : &:r2715_7, r2715_8 +# 2717| Block 33 +# 2717| r2717_7(glval) = VariableAddress[#temp2717:19] : +# 2717| r2717_8(bool) = Constant[0] : +# 2717| mu2717_9(bool) = Store[#temp2717:19] : &:r2717_7, r2717_8 #-----| Goto -> Block 34 -# 2715| Block 34 -# 2715| r2715_10(glval) = VariableAddress[#temp2715:19] : -# 2715| r2715_11(bool) = Load[#temp2715:19] : &:r2715_10, ~m? -# 2715| r2715_12(int) = Convert : r2715_11 -# 2715| mu2715_13(int) = Store[x_1_and_2] : &:r2715_1, r2715_12 -# 2716| r2716_1(glval) = VariableAddress[x_1_and_2] : -# 2716| r2716_2(int) = Load[x_1_and_2] : &:r2716_1, ~m? -# 2716| r2716_3(int) = Constant[0] : -# 2716| r2716_4(bool) = CompareNE : r2716_2, r2716_3 -# 2716| v2716_5(void) = ConditionalBranch : r2716_4 +# 2717| Block 34 +# 2717| r2717_10(glval) = VariableAddress[#temp2717:19] : +# 2717| r2717_11(bool) = Load[#temp2717:19] : &:r2717_10, ~m? +# 2717| r2717_12(int) = Convert : r2717_11 +# 2717| mu2717_13(int) = Store[x_1_and_2] : &:r2717_1, r2717_12 +# 2718| r2718_1(glval) = VariableAddress[x_1_and_2] : +# 2718| r2718_2(int) = Load[x_1_and_2] : &:r2718_1, ~m? +# 2718| r2718_3(int) = Constant[0] : +# 2718| r2718_4(bool) = CompareNE : r2718_2, r2718_3 +# 2718| v2718_5(void) = ConditionalBranch : r2718_4 #-----| False -> Block 38 #-----| True -> Block 37 -# 2715| Block 35 -# 2715| r2715_14(glval) = VariableAddress[#temp2715:19] : -# 2715| r2715_15(bool) = Constant[1] : -# 2715| mu2715_16(bool) = Store[#temp2715:19] : &:r2715_14, r2715_15 +# 2717| Block 35 +# 2717| r2717_14(glval) = VariableAddress[#temp2717:19] : +# 2717| r2717_15(bool) = Constant[1] : +# 2717| mu2717_16(bool) = Store[#temp2717:19] : &:r2717_14, r2717_15 #-----| Goto -> Block 34 -# 2715| Block 36 -# 2715| r2715_17(glval) = VariableAddress[x2] : -# 2715| r2715_18(int) = Load[x2] : &:r2715_17, ~m? -# 2715| r2715_19(int) = Constant[0] : -# 2715| r2715_20(bool) = CompareNE : r2715_18, r2715_19 -# 2715| v2715_21(void) = ConditionalBranch : r2715_20 +# 2717| Block 36 +# 2717| r2717_17(glval) = VariableAddress[x2] : +# 2717| r2717_18(int) = Load[x2] : &:r2717_17, ~m? +# 2717| r2717_19(int) = Constant[0] : +# 2717| r2717_20(bool) = CompareNE : r2717_18, r2717_19 +# 2717| v2717_21(void) = ConditionalBranch : r2717_20 #-----| False -> Block 33 #-----| True -> Block 35 -# 2716| Block 37 -# 2716| v2716_6(void) = NoOp : +# 2718| Block 37 +# 2718| v2718_6(void) = NoOp : #-----| Goto -> Block 38 -# 2717| Block 38 -# 2717| r2717_1(glval) = VariableAddress[x_1_and_2] : -# 2717| r2717_2(int) = Load[x_1_and_2] : &:r2717_1, ~m? -# 2717| r2717_3(int) = Constant[0] : -# 2717| r2717_4(bool) = CompareNE : r2717_2, r2717_3 -# 2717| r2717_5(bool) = LogicalNot : r2717_4 -# 2717| v2717_6(void) = ConditionalBranch : r2717_5 +# 2719| Block 38 +# 2719| r2719_1(glval) = VariableAddress[x_1_and_2] : +# 2719| r2719_2(int) = Load[x_1_and_2] : &:r2719_1, ~m? +# 2719| r2719_3(int) = Constant[0] : +# 2719| r2719_4(bool) = CompareNE : r2719_2, r2719_3 +# 2719| r2719_5(bool) = LogicalNot : r2719_4 +# 2719| v2719_6(void) = ConditionalBranch : r2719_5 #-----| False -> Block 40 #-----| True -> Block 39 -# 2717| Block 39 -# 2717| v2717_7(void) = NoOp : +# 2719| Block 39 +# 2719| v2719_7(void) = NoOp : #-----| Goto -> Block 40 -# 2718| Block 40 -# 2718| v2718_1(void) = NoOp : -# 2698| v2698_8(void) = ReturnVoid : -# 2698| v2698_9(void) = AliasedUse : ~m? -# 2698| v2698_10(void) = ExitFunction : - -# 2724| char UseBracketOperator(WithBracketOperator const, int) -# 2724| Block 0 -# 2724| v2724_1(void) = EnterFunction : -# 2724| mu2724_2(unknown) = AliasedDefinition : -# 2724| mu2724_3(unknown) = InitializeNonLocal : -# 2724| r2724_4(glval) = VariableAddress[x] : -# 2724| mu2724_5(WithBracketOperator) = InitializeParameter[x] : &:r2724_4 -# 2724| r2724_6(glval) = VariableAddress[i] : -# 2724| mu2724_7(int) = InitializeParameter[i] : &:r2724_6 -# 2725| r2725_1(glval) = VariableAddress[#return] : -# 2725| r2725_2(glval) = VariableAddress[x] : -# 2725| r2725_3(glval) = FunctionAddress[operator[]] : -# 2725| r2725_4(glval) = VariableAddress[i] : -# 2725| r2725_5(int) = Load[i] : &:r2725_4, ~m? -# 2725| r2725_6(char &) = Call[operator[]] : func:r2725_3, this:r2725_2, 0:r2725_5 -# 2725| mu2725_7(unknown) = ^CallSideEffect : ~m? -# 2725| v2725_8(void) = ^IndirectReadSideEffect[-1] : &:r2725_2, ~m? -# 2725| r2725_9(char) = Load[?] : &:r2725_6, ~m? -# 2725| mu2725_10(char) = Store[#return] : &:r2725_1, r2725_9 -# 2724| r2724_8(glval) = VariableAddress[#return] : -# 2724| v2724_9(void) = ReturnValue : &:r2724_8, ~m? -# 2724| v2724_10(void) = AliasedUse : ~m? -# 2724| v2724_11(void) = ExitFunction : - -# 2728| void test_postfix_crement(int*, int) -# 2728| Block 0 -# 2728| v2728_1(void) = EnterFunction : -# 2728| mu2728_2(unknown) = AliasedDefinition : -# 2728| mu2728_3(unknown) = InitializeNonLocal : -# 2728| r2728_4(glval) = VariableAddress[p] : -# 2728| mu2728_5(int *) = InitializeParameter[p] : &:r2728_4 -# 2728| r2728_6(int *) = Load[p] : &:r2728_4, ~m? -# 2728| mu2728_7(unknown) = InitializeIndirection[p] : &:r2728_6 -# 2728| r2728_8(glval) = VariableAddress[q] : -# 2728| mu2728_9(int) = InitializeParameter[q] : &:r2728_8 -# 2729| r2729_1(glval) = VariableAddress[p] : -# 2729| r2729_2(int *) = Load[p] : &:r2729_1, ~m? -# 2729| r2729_3(int) = Constant[1] : -# 2729| r2729_4(int *) = PointerAdd[4] : r2729_2, r2729_3 -# 2729| mu2729_5(int *) = Store[p] : &:r2729_1, r2729_4 -# 2730| r2730_1(glval) = VariableAddress[q] : -# 2730| r2730_2(int) = Load[q] : &:r2730_1, ~m? -# 2730| r2730_3(int) = Constant[1] : -# 2730| r2730_4(int) = Add : r2730_2, r2730_3 -# 2730| mu2730_5(int) = Store[q] : &:r2730_1, r2730_4 +# 2720| Block 40 +# 2720| v2720_1(void) = NoOp : +# 2700| v2700_8(void) = ReturnVoid : +# 2700| v2700_9(void) = AliasedUse : ~m? +# 2700| v2700_10(void) = ExitFunction : + +# 2726| char UseBracketOperator(WithBracketOperator const, int) +# 2726| Block 0 +# 2726| v2726_1(void) = EnterFunction : +# 2726| mu2726_2(unknown) = AliasedDefinition : +# 2726| mu2726_3(unknown) = InitializeNonLocal : +# 2726| r2726_4(glval) = VariableAddress[x] : +# 2726| mu2726_5(WithBracketOperator) = InitializeParameter[x] : &:r2726_4 +# 2726| r2726_6(glval) = VariableAddress[i] : +# 2726| mu2726_7(int) = InitializeParameter[i] : &:r2726_6 +# 2727| r2727_1(glval) = VariableAddress[#return] : +# 2727| r2727_2(glval) = VariableAddress[x] : +# 2727| r2727_3(glval) = FunctionAddress[operator[]] : +# 2727| r2727_4(glval) = VariableAddress[i] : +# 2727| r2727_5(int) = Load[i] : &:r2727_4, ~m? +# 2727| r2727_6(char &) = Call[operator[]] : func:r2727_3, this:r2727_2, 0:r2727_5 +# 2727| mu2727_7(unknown) = ^CallSideEffect : ~m? +# 2727| v2727_8(void) = ^IndirectReadSideEffect[-1] : &:r2727_2, ~m? +# 2727| r2727_9(char) = Load[?] : &:r2727_6, ~m? +# 2727| mu2727_10(char) = Store[#return] : &:r2727_1, r2727_9 +# 2726| r2726_8(glval) = VariableAddress[#return] : +# 2726| v2726_9(void) = ReturnValue : &:r2726_8, ~m? +# 2726| v2726_10(void) = AliasedUse : ~m? +# 2726| v2726_11(void) = ExitFunction : + +# 2730| void test_postfix_crement(int*, int) +# 2730| Block 0 +# 2730| v2730_1(void) = EnterFunction : +# 2730| mu2730_2(unknown) = AliasedDefinition : +# 2730| mu2730_3(unknown) = InitializeNonLocal : +# 2730| r2730_4(glval) = VariableAddress[p] : +# 2730| mu2730_5(int *) = InitializeParameter[p] : &:r2730_4 +# 2730| r2730_6(int *) = Load[p] : &:r2730_4, ~m? +# 2730| mu2730_7(unknown) = InitializeIndirection[p] : &:r2730_6 +# 2730| r2730_8(glval) = VariableAddress[q] : +# 2730| mu2730_9(int) = InitializeParameter[q] : &:r2730_8 # 2731| r2731_1(glval) = VariableAddress[p] : # 2731| r2731_2(int *) = Load[p] : &:r2731_1, ~m? # 2731| r2731_3(int) = Constant[1] : # 2731| r2731_4(int *) = PointerAdd[4] : r2731_2, r2731_3 # 2731| mu2731_5(int *) = Store[p] : &:r2731_1, r2731_4 -# 2731| r2731_6(int *) = CopyValue : r2731_2 # 2732| r2732_1(glval) = VariableAddress[q] : # 2732| r2732_2(int) = Load[q] : &:r2732_1, ~m? # 2732| r2732_3(int) = Constant[1] : # 2732| r2732_4(int) = Add : r2732_2, r2732_3 # 2732| mu2732_5(int) = Store[q] : &:r2732_1, r2732_4 -# 2732| r2732_6(int) = CopyValue : r2732_2 # 2733| r2733_1(glval) = VariableAddress[p] : # 2733| r2733_2(int *) = Load[p] : &:r2733_1, ~m? # 2733| r2733_3(int) = Constant[1] : # 2733| r2733_4(int *) = PointerAdd[4] : r2733_2, r2733_3 # 2733| mu2733_5(int *) = Store[p] : &:r2733_1, r2733_4 # 2733| r2733_6(int *) = CopyValue : r2733_2 -# 2733| v2733_7(void) = Convert : r2733_6 # 2734| r2734_1(glval) = VariableAddress[q] : # 2734| r2734_2(int) = Load[q] : &:r2734_1, ~m? # 2734| r2734_3(int) = Constant[1] : # 2734| r2734_4(int) = Add : r2734_2, r2734_3 # 2734| mu2734_5(int) = Store[q] : &:r2734_1, r2734_4 # 2734| r2734_6(int) = CopyValue : r2734_2 -# 2734| v2734_7(void) = Convert : r2734_6 # 2735| r2735_1(glval) = VariableAddress[p] : # 2735| r2735_2(int *) = Load[p] : &:r2735_1, ~m? # 2735| r2735_3(int) = Constant[1] : @@ -18387,430 +18441,444 @@ ir.cpp: # 2736| mu2736_5(int) = Store[q] : &:r2736_1, r2736_4 # 2736| r2736_6(int) = CopyValue : r2736_2 # 2736| v2736_7(void) = Convert : r2736_6 -# 2737| r2737_1(glval) = VariableAddress[p1] : -# 2737| r2737_2(glval) = VariableAddress[p] : -# 2737| r2737_3(int *) = Load[p] : &:r2737_2, ~m? -# 2737| r2737_4(int) = Constant[1] : -# 2737| r2737_5(int *) = PointerAdd[4] : r2737_3, r2737_4 -# 2737| mu2737_6(int *) = Store[p] : &:r2737_2, r2737_5 -# 2737| r2737_7(int *) = CopyValue : r2737_3 -# 2737| mu2737_8(int *) = Store[p1] : &:r2737_1, r2737_7 -# 2738| r2738_1(glval) = VariableAddress[q1] : -# 2738| r2738_2(glval) = VariableAddress[q] : -# 2738| r2738_3(int) = Load[q] : &:r2738_2, ~m? -# 2738| r2738_4(int) = Constant[1] : -# 2738| r2738_5(int) = Add : r2738_3, r2738_4 -# 2738| mu2738_6(int) = Store[q] : &:r2738_2, r2738_5 -# 2738| r2738_7(int) = CopyValue : r2738_3 -# 2738| mu2738_8(int) = Store[q1] : &:r2738_1, r2738_7 -# 2739| r2739_1(glval) = VariableAddress[p] : -# 2739| r2739_2(int *) = Load[p] : &:r2739_1, ~m? -# 2739| r2739_3(int) = Constant[1] : -# 2739| r2739_4(int *) = PointerAdd[4] : r2739_2, r2739_3 -# 2739| mu2739_5(int *) = Store[p] : &:r2739_1, r2739_4 -# 2739| r2739_6(int *) = CopyValue : r2739_2 -# 2739| r2739_7(int *) = Convert : r2739_6 -# 2740| r2740_1(glval) = VariableAddress[q] : -# 2740| r2740_2(int) = Load[q] : &:r2740_1, ~m? -# 2740| r2740_3(int) = Constant[1] : -# 2740| r2740_4(int) = Add : r2740_2, r2740_3 -# 2740| mu2740_5(int) = Store[q] : &:r2740_1, r2740_4 -# 2740| r2740_6(int) = CopyValue : r2740_2 -# 2740| r2740_7(int) = Convert : r2740_6 -# 2741| r2741_1(glval) = VariableAddress[p2] : -# 2741| r2741_2(glval) = VariableAddress[p] : -# 2741| r2741_3(int *) = Load[p] : &:r2741_2, ~m? -# 2741| r2741_4(int) = Constant[1] : -# 2741| r2741_5(int *) = PointerAdd[4] : r2741_3, r2741_4 -# 2741| mu2741_6(int *) = Store[p] : &:r2741_2, r2741_5 -# 2741| r2741_7(int *) = CopyValue : r2741_3 -# 2741| r2741_8(int *) = Convert : r2741_7 -# 2741| mu2741_9(int *) = Store[p2] : &:r2741_1, r2741_8 -# 2742| r2742_1(glval) = VariableAddress[q2] : -# 2742| r2742_2(glval) = VariableAddress[q] : -# 2742| r2742_3(int) = Load[q] : &:r2742_2, ~m? -# 2742| r2742_4(int) = Constant[1] : -# 2742| r2742_5(int) = Add : r2742_3, r2742_4 -# 2742| mu2742_6(int) = Store[q] : &:r2742_2, r2742_5 -# 2742| r2742_7(int) = CopyValue : r2742_3 -# 2742| r2742_8(int) = Convert : r2742_7 -# 2742| mu2742_9(int) = Store[q2] : &:r2742_1, r2742_8 -# 2743| v2743_1(void) = NoOp : -# 2728| v2728_10(void) = ReturnIndirection[p] : &:r2728_6, ~m? -# 2728| v2728_11(void) = ReturnVoid : -# 2728| v2728_12(void) = AliasedUse : ~m? -# 2728| v2728_13(void) = ExitFunction : - -# 2747| void std::strong_ordering::strong_ordering(std::strong_ordering&&) -# 2747| Block 0 -# 2747| v2747_1(void) = EnterFunction : -# 2747| mu2747_2(unknown) = AliasedDefinition : -# 2747| mu2747_3(unknown) = InitializeNonLocal : -# 2747| r2747_4(glval) = VariableAddress[#this] : -# 2747| mu2747_5(glval) = InitializeParameter[#this] : &:r2747_4 -# 2747| r2747_6(glval) = Load[#this] : &:r2747_4, ~m? -# 2747| mu2747_7(strong_ordering) = InitializeIndirection[#this] : &:r2747_6 +# 2737| r2737_1(glval) = VariableAddress[p] : +# 2737| r2737_2(int *) = Load[p] : &:r2737_1, ~m? +# 2737| r2737_3(int) = Constant[1] : +# 2737| r2737_4(int *) = PointerAdd[4] : r2737_2, r2737_3 +# 2737| mu2737_5(int *) = Store[p] : &:r2737_1, r2737_4 +# 2737| r2737_6(int *) = CopyValue : r2737_2 +# 2737| v2737_7(void) = Convert : r2737_6 +# 2738| r2738_1(glval) = VariableAddress[q] : +# 2738| r2738_2(int) = Load[q] : &:r2738_1, ~m? +# 2738| r2738_3(int) = Constant[1] : +# 2738| r2738_4(int) = Add : r2738_2, r2738_3 +# 2738| mu2738_5(int) = Store[q] : &:r2738_1, r2738_4 +# 2738| r2738_6(int) = CopyValue : r2738_2 +# 2738| v2738_7(void) = Convert : r2738_6 +# 2739| r2739_1(glval) = VariableAddress[p1] : +# 2739| r2739_2(glval) = VariableAddress[p] : +# 2739| r2739_3(int *) = Load[p] : &:r2739_2, ~m? +# 2739| r2739_4(int) = Constant[1] : +# 2739| r2739_5(int *) = PointerAdd[4] : r2739_3, r2739_4 +# 2739| mu2739_6(int *) = Store[p] : &:r2739_2, r2739_5 +# 2739| r2739_7(int *) = CopyValue : r2739_3 +# 2739| mu2739_8(int *) = Store[p1] : &:r2739_1, r2739_7 +# 2740| r2740_1(glval) = VariableAddress[q1] : +# 2740| r2740_2(glval) = VariableAddress[q] : +# 2740| r2740_3(int) = Load[q] : &:r2740_2, ~m? +# 2740| r2740_4(int) = Constant[1] : +# 2740| r2740_5(int) = Add : r2740_3, r2740_4 +# 2740| mu2740_6(int) = Store[q] : &:r2740_2, r2740_5 +# 2740| r2740_7(int) = CopyValue : r2740_3 +# 2740| mu2740_8(int) = Store[q1] : &:r2740_1, r2740_7 +# 2741| r2741_1(glval) = VariableAddress[p] : +# 2741| r2741_2(int *) = Load[p] : &:r2741_1, ~m? +# 2741| r2741_3(int) = Constant[1] : +# 2741| r2741_4(int *) = PointerAdd[4] : r2741_2, r2741_3 +# 2741| mu2741_5(int *) = Store[p] : &:r2741_1, r2741_4 +# 2741| r2741_6(int *) = CopyValue : r2741_2 +# 2741| r2741_7(int *) = Convert : r2741_6 +# 2742| r2742_1(glval) = VariableAddress[q] : +# 2742| r2742_2(int) = Load[q] : &:r2742_1, ~m? +# 2742| r2742_3(int) = Constant[1] : +# 2742| r2742_4(int) = Add : r2742_2, r2742_3 +# 2742| mu2742_5(int) = Store[q] : &:r2742_1, r2742_4 +# 2742| r2742_6(int) = CopyValue : r2742_2 +# 2742| r2742_7(int) = Convert : r2742_6 +# 2743| r2743_1(glval) = VariableAddress[p2] : +# 2743| r2743_2(glval) = VariableAddress[p] : +# 2743| r2743_3(int *) = Load[p] : &:r2743_2, ~m? +# 2743| r2743_4(int) = Constant[1] : +# 2743| r2743_5(int *) = PointerAdd[4] : r2743_3, r2743_4 +# 2743| mu2743_6(int *) = Store[p] : &:r2743_2, r2743_5 +# 2743| r2743_7(int *) = CopyValue : r2743_3 +# 2743| r2743_8(int *) = Convert : r2743_7 +# 2743| mu2743_9(int *) = Store[p2] : &:r2743_1, r2743_8 +# 2744| r2744_1(glval) = VariableAddress[q2] : +# 2744| r2744_2(glval) = VariableAddress[q] : +# 2744| r2744_3(int) = Load[q] : &:r2744_2, ~m? +# 2744| r2744_4(int) = Constant[1] : +# 2744| r2744_5(int) = Add : r2744_3, r2744_4 +# 2744| mu2744_6(int) = Store[q] : &:r2744_2, r2744_5 +# 2744| r2744_7(int) = CopyValue : r2744_3 +# 2744| r2744_8(int) = Convert : r2744_7 +# 2744| mu2744_9(int) = Store[q2] : &:r2744_1, r2744_8 +# 2745| v2745_1(void) = NoOp : +# 2730| v2730_10(void) = ReturnIndirection[p] : &:r2730_6, ~m? +# 2730| v2730_11(void) = ReturnVoid : +# 2730| v2730_12(void) = AliasedUse : ~m? +# 2730| v2730_13(void) = ExitFunction : + +# 2749| void std::strong_ordering::strong_ordering(std::strong_ordering&&) +# 2749| Block 0 +# 2749| v2749_1(void) = EnterFunction : +# 2749| mu2749_2(unknown) = AliasedDefinition : +# 2749| mu2749_3(unknown) = InitializeNonLocal : +# 2749| r2749_4(glval) = VariableAddress[#this] : +# 2749| mu2749_5(glval) = InitializeParameter[#this] : &:r2749_4 +# 2749| r2749_6(glval) = Load[#this] : &:r2749_4, ~m? +# 2749| mu2749_7(strong_ordering) = InitializeIndirection[#this] : &:r2749_6 #-----| r0_1(glval) = VariableAddress[(unnamed parameter 0)] : #-----| mu0_2(strong_ordering &&) = InitializeParameter[(unnamed parameter 0)] : &:r0_1 #-----| r0_3(strong_ordering &&) = Load[(unnamed parameter 0)] : &:r0_1, ~m? #-----| mu0_4(unknown) = InitializeIndirection[(unnamed parameter 0)] : &:r0_3 -# 2747| v2747_8(void) = NoOp : -# 2747| v2747_9(void) = ReturnIndirection[#this] : &:r2747_6, ~m? +# 2749| v2749_8(void) = NoOp : +# 2749| v2749_9(void) = ReturnIndirection[#this] : &:r2749_6, ~m? #-----| v0_5(void) = ReturnIndirection[(unnamed parameter 0)] : &:r0_3, ~m? -# 2747| v2747_10(void) = ReturnVoid : -# 2747| v2747_11(void) = AliasedUse : ~m? -# 2747| v2747_12(void) = ExitFunction : - -# 2748| void std::strong_ordering::strong_ordering(std::_Order) -# 2748| Block 0 -# 2748| v2748_1(void) = EnterFunction : -# 2748| mu2748_2(unknown) = AliasedDefinition : -# 2748| mu2748_3(unknown) = InitializeNonLocal : -# 2748| r2748_4(glval) = VariableAddress[#this] : -# 2748| mu2748_5(glval) = InitializeParameter[#this] : &:r2748_4 -# 2748| r2748_6(glval) = Load[#this] : &:r2748_4, ~m? -# 2748| mu2748_7(strong_ordering) = InitializeIndirection[#this] : &:r2748_6 -# 2748| r2748_8(glval<_Order>) = VariableAddress[v] : -# 2748| mu2748_9(_Order) = InitializeParameter[v] : &:r2748_8 -# 2748| v2748_10(void) = NoOp : -# 2748| v2748_11(void) = ReturnIndirection[#this] : &:r2748_6, ~m? -# 2748| v2748_12(void) = ReturnVoid : -# 2748| v2748_13(void) = AliasedUse : ~m? -# 2748| v2748_14(void) = ExitFunction : - -# 2766| std::strong_ordering ThreeWay::operator<=>(ThreeWay&) -# 2766| Block 0 -# 2766| v2766_1(void) = EnterFunction : -# 2766| mu2766_2(unknown) = AliasedDefinition : -# 2766| mu2766_3(unknown) = InitializeNonLocal : -# 2766| r2766_4(glval) = VariableAddress[#this] : -# 2766| mu2766_5(glval) = InitializeParameter[#this] : &:r2766_4 -# 2766| r2766_6(glval) = Load[#this] : &:r2766_4, ~m? -# 2766| mu2766_7(ThreeWay) = InitializeIndirection[#this] : &:r2766_6 -# 2766| r2766_8(glval) = VariableAddress[y] : -# 2766| mu2766_9(ThreeWay &) = InitializeParameter[y] : &:r2766_8 -# 2766| r2766_10(ThreeWay &) = Load[y] : &:r2766_8, ~m? -# 2766| mu2766_11(unknown) = InitializeIndirection[y] : &:r2766_10 -# 2766| r2766_12(glval) = VariableAddress[#return] : -# 2766| r2766_13(glval) = VariableAddress[#this] : -# 2766| r2766_14(ThreeWay *) = Load[#this] : &:r2766_13, ~m? -# 2766| r2766_15(glval) = FieldAddress[x] : r2766_14 -# 2766| r2766_16(int) = Load[?] : &:r2766_15, ~m? -# 2766| r2766_17(glval) = VariableAddress[y] : -# 2766| r2766_18(ThreeWay &) = Load[y] : &:r2766_17, ~m? -# 2766| r2766_19(glval) = CopyValue : r2766_18 -# 2766| r2766_20(glval) = FieldAddress[x] : r2766_19 -# 2766| r2766_21(int) = Load[?] : &:r2766_20, ~m? -# 2766| r2766_22(strong_ordering) = Spaceship : r2766_16, r2766_21 -# 2766| mu2766_23(strong_ordering) = Store[#return] : &:r2766_12, r2766_22 -# 2766| v2766_24(void) = ReturnIndirection[#this] : &:r2766_6, ~m? -# 2766| v2766_25(void) = ReturnIndirection[y] : &:r2766_10, ~m? -# 2766| r2766_26(glval) = VariableAddress[#return] : -# 2766| v2766_27(void) = ReturnValue : &:r2766_26, ~m? -# 2766| v2766_28(void) = AliasedUse : ~m? -# 2766| v2766_29(void) = ExitFunction : - -# 2769| void test_three_way(int, int, ThreeWay, ThreeWay) -# 2769| Block 0 -# 2769| v2769_1(void) = EnterFunction : -# 2769| mu2769_2(unknown) = AliasedDefinition : -# 2769| mu2769_3(unknown) = InitializeNonLocal : -# 2769| r2769_4(glval) = VariableAddress[a] : -# 2769| mu2769_5(int) = InitializeParameter[a] : &:r2769_4 -# 2769| r2769_6(glval) = VariableAddress[b] : -# 2769| mu2769_7(int) = InitializeParameter[b] : &:r2769_6 -# 2769| r2769_8(glval) = VariableAddress[c] : -# 2769| mu2769_9(ThreeWay) = InitializeParameter[c] : &:r2769_8 -# 2769| r2769_10(glval) = VariableAddress[d] : -# 2769| mu2769_11(ThreeWay) = InitializeParameter[d] : &:r2769_10 -# 2770| r2770_1(glval) = VariableAddress[x] : -# 2770| r2770_2(glval) = VariableAddress[a] : -# 2770| r2770_3(int) = Load[a] : &:r2770_2, ~m? -# 2770| r2770_4(glval) = VariableAddress[b] : -# 2770| r2770_5(int) = Load[b] : &:r2770_4, ~m? -# 2770| r2770_6(strong_ordering) = Spaceship : r2770_3, r2770_5 -# 2770| mu2770_7(strong_ordering) = Store[x] : &:r2770_1, r2770_6 -# 2771| r2771_1(glval) = VariableAddress[y] : -# 2771| r2771_2(glval) = VariableAddress[c] : -# 2771| r2771_3(glval) = FunctionAddress[operator<=>] : -# 2771| r2771_4(glval) = VariableAddress[d] : -# 2771| r2771_5(ThreeWay &) = CopyValue : r2771_4 -# 2771| r2771_6(strong_ordering) = Call[operator<=>] : func:r2771_3, this:r2771_2, 0:r2771_5 -# 2771| mu2771_7(unknown) = ^CallSideEffect : ~m? -# 2771| v2771_8(void) = ^IndirectReadSideEffect[-1] : &:r2771_2, ~m? -# 2771| v2771_9(void) = ^BufferReadSideEffect[0] : &:r2771_5, ~m? -# 2771| mu2771_10(ThreeWay) = ^IndirectMayWriteSideEffect[-1] : &:r2771_2 -# 2771| mu2771_11(unknown) = ^BufferMayWriteSideEffect[0] : &:r2771_5 -# 2771| mu2771_12(strong_ordering) = Store[y] : &:r2771_1, r2771_6 -# 2772| v2772_1(void) = NoOp : -# 2769| v2769_12(void) = ReturnVoid : -# 2769| v2769_13(void) = AliasedUse : ~m? -# 2769| v2769_14(void) = ExitFunction : - -# 2774| void test_allocation_with_initializer() -# 2774| Block 0 -# 2774| v2774_1(void) = EnterFunction : -# 2774| mu2774_2(unknown) = AliasedDefinition : -# 2774| mu2774_3(unknown) = InitializeNonLocal : -# 2775| r2775_1(glval) = VariableAddress[p1] : -# 2775| r2775_2(glval) = FunctionAddress[operator new] : -# 2775| r2775_3(unsigned long) = Constant[4] : -# 2775| r2775_4(void *) = Call[operator new] : func:r2775_2, 0:r2775_3 -# 2775| mu2775_5(unknown) = ^CallSideEffect : ~m? -# 2775| mu2775_6(unknown) = ^InitializeDynamicAllocation : &:r2775_4 -# 2775| r2775_7(int *) = Convert : r2775_4 -# 2775| r2775_8(int) = Constant[42] : -# 2775| mu2775_9(int) = Store[?] : &:r2775_7, r2775_8 -# 2775| mu2775_10(int *) = Store[p1] : &:r2775_1, r2775_7 -# 2776| r2776_1(glval) = VariableAddress[p2] : -# 2776| r2776_2(glval) = FunctionAddress[operator new] : -# 2776| r2776_3(unsigned long) = Constant[8] : -# 2776| r2776_4(void *) = Call[operator new] : func:r2776_2, 0:r2776_3 -# 2776| mu2776_5(unknown) = ^CallSideEffect : ~m? -# 2776| mu2776_6(unknown) = ^InitializeDynamicAllocation : &:r2776_4 -# 2776| r2776_7(long *) = Convert : r2776_4 -# 2776| r2776_8(long) = Constant[42] : -# 2776| mu2776_9(long) = Store[?] : &:r2776_7, r2776_8 -# 2776| mu2776_10(long *) = Store[p2] : &:r2776_1, r2776_7 -# 2777| v2777_1(void) = NoOp : -# 2774| v2774_4(void) = ReturnVoid : -# 2774| v2774_5(void) = AliasedUse : ~m? -# 2774| v2774_6(void) = ExitFunction : - -# 2779| void vla_sizeof_test(int, size_t, char) -# 2779| Block 0 -# 2779| v2779_1(void) = EnterFunction : -# 2779| mu2779_2(unknown) = AliasedDefinition : -# 2779| mu2779_3(unknown) = InitializeNonLocal : -# 2779| r2779_4(glval) = VariableAddress[len1] : -# 2779| mu2779_5(int) = InitializeParameter[len1] : &:r2779_4 -# 2779| r2779_6(glval) = VariableAddress[len2] : -# 2779| mu2779_7(unsigned long) = InitializeParameter[len2] : &:r2779_6 -# 2779| r2779_8(glval) = VariableAddress[len3] : -# 2779| mu2779_9(char) = InitializeParameter[len3] : &:r2779_8 -# 2780| r2780_1(glval) = VariableAddress[tmp1] : -# 2780| mu2780_2(char[]) = Uninitialized[tmp1] : &:r2780_1 -# 2780| r2780_3(glval) = VariableAddress[len1] : -# 2780| r2780_4(int) = Load[len1] : &:r2780_3, ~m? -# 2780| v2780_5(void) = NoOp : -# 2781| r2781_1(glval) = VariableAddress[x] : -# 2781| r2781_2(unsigned long) = Constant[1] : -# 2781| r2781_3(unsigned long) = Convert : r2780_4 -# 2781| r2781_4(unsigned long) = Mul : r2781_2, r2781_3 -# 2781| mu2781_5(unsigned long) = Store[x] : &:r2781_1, r2781_4 -# 2782| r2782_1(glval) = VariableAddress[tmp2] : -# 2782| mu2782_2(int[][]) = Uninitialized[tmp2] : &:r2782_1 +# 2749| v2749_10(void) = ReturnVoid : +# 2749| v2749_11(void) = AliasedUse : ~m? +# 2749| v2749_12(void) = ExitFunction : + +# 2750| void std::strong_ordering::strong_ordering(std::_Order) +# 2750| Block 0 +# 2750| v2750_1(void) = EnterFunction : +# 2750| mu2750_2(unknown) = AliasedDefinition : +# 2750| mu2750_3(unknown) = InitializeNonLocal : +# 2750| r2750_4(glval) = VariableAddress[#this] : +# 2750| mu2750_5(glval) = InitializeParameter[#this] : &:r2750_4 +# 2750| r2750_6(glval) = Load[#this] : &:r2750_4, ~m? +# 2750| mu2750_7(strong_ordering) = InitializeIndirection[#this] : &:r2750_6 +# 2750| r2750_8(glval<_Order>) = VariableAddress[v] : +# 2750| mu2750_9(_Order) = InitializeParameter[v] : &:r2750_8 +# 2750| v2750_10(void) = NoOp : +# 2750| v2750_11(void) = ReturnIndirection[#this] : &:r2750_6, ~m? +# 2750| v2750_12(void) = ReturnVoid : +# 2750| v2750_13(void) = AliasedUse : ~m? +# 2750| v2750_14(void) = ExitFunction : + +# 2768| std::strong_ordering ThreeWay::operator<=>(ThreeWay&) +# 2768| Block 0 +# 2768| v2768_1(void) = EnterFunction : +# 2768| mu2768_2(unknown) = AliasedDefinition : +# 2768| mu2768_3(unknown) = InitializeNonLocal : +# 2768| r2768_4(glval) = VariableAddress[#this] : +# 2768| mu2768_5(glval) = InitializeParameter[#this] : &:r2768_4 +# 2768| r2768_6(glval) = Load[#this] : &:r2768_4, ~m? +# 2768| mu2768_7(ThreeWay) = InitializeIndirection[#this] : &:r2768_6 +# 2768| r2768_8(glval) = VariableAddress[y] : +# 2768| mu2768_9(ThreeWay &) = InitializeParameter[y] : &:r2768_8 +# 2768| r2768_10(ThreeWay &) = Load[y] : &:r2768_8, ~m? +# 2768| mu2768_11(unknown) = InitializeIndirection[y] : &:r2768_10 +# 2768| r2768_12(glval) = VariableAddress[#return] : +# 2768| r2768_13(glval) = VariableAddress[#this] : +# 2768| r2768_14(ThreeWay *) = Load[#this] : &:r2768_13, ~m? +# 2768| r2768_15(glval) = FieldAddress[x] : r2768_14 +# 2768| r2768_16(int) = Load[?] : &:r2768_15, ~m? +# 2768| r2768_17(glval) = VariableAddress[y] : +# 2768| r2768_18(ThreeWay &) = Load[y] : &:r2768_17, ~m? +# 2768| r2768_19(glval) = CopyValue : r2768_18 +# 2768| r2768_20(glval) = FieldAddress[x] : r2768_19 +# 2768| r2768_21(int) = Load[?] : &:r2768_20, ~m? +# 2768| r2768_22(strong_ordering) = Spaceship : r2768_16, r2768_21 +# 2768| mu2768_23(strong_ordering) = Store[#return] : &:r2768_12, r2768_22 +# 2768| v2768_24(void) = ReturnIndirection[#this] : &:r2768_6, ~m? +# 2768| v2768_25(void) = ReturnIndirection[y] : &:r2768_10, ~m? +# 2768| r2768_26(glval) = VariableAddress[#return] : +# 2768| v2768_27(void) = ReturnValue : &:r2768_26, ~m? +# 2768| v2768_28(void) = AliasedUse : ~m? +# 2768| v2768_29(void) = ExitFunction : + +# 2771| void test_three_way(int, int, ThreeWay, ThreeWay) +# 2771| Block 0 +# 2771| v2771_1(void) = EnterFunction : +# 2771| mu2771_2(unknown) = AliasedDefinition : +# 2771| mu2771_3(unknown) = InitializeNonLocal : +# 2771| r2771_4(glval) = VariableAddress[a] : +# 2771| mu2771_5(int) = InitializeParameter[a] : &:r2771_4 +# 2771| r2771_6(glval) = VariableAddress[b] : +# 2771| mu2771_7(int) = InitializeParameter[b] : &:r2771_6 +# 2771| r2771_8(glval) = VariableAddress[c] : +# 2771| mu2771_9(ThreeWay) = InitializeParameter[c] : &:r2771_8 +# 2771| r2771_10(glval) = VariableAddress[d] : +# 2771| mu2771_11(ThreeWay) = InitializeParameter[d] : &:r2771_10 +# 2772| r2772_1(glval) = VariableAddress[x] : +# 2772| r2772_2(glval) = VariableAddress[a] : +# 2772| r2772_3(int) = Load[a] : &:r2772_2, ~m? +# 2772| r2772_4(glval) = VariableAddress[b] : +# 2772| r2772_5(int) = Load[b] : &:r2772_4, ~m? +# 2772| r2772_6(strong_ordering) = Spaceship : r2772_3, r2772_5 +# 2772| mu2772_7(strong_ordering) = Store[x] : &:r2772_1, r2772_6 +# 2773| r2773_1(glval) = VariableAddress[y] : +# 2773| r2773_2(glval) = VariableAddress[c] : +# 2773| r2773_3(glval) = FunctionAddress[operator<=>] : +# 2773| r2773_4(glval) = VariableAddress[d] : +# 2773| r2773_5(ThreeWay &) = CopyValue : r2773_4 +# 2773| r2773_6(strong_ordering) = Call[operator<=>] : func:r2773_3, this:r2773_2, 0:r2773_5 +# 2773| mu2773_7(unknown) = ^CallSideEffect : ~m? +# 2773| v2773_8(void) = ^IndirectReadSideEffect[-1] : &:r2773_2, ~m? +# 2773| v2773_9(void) = ^BufferReadSideEffect[0] : &:r2773_5, ~m? +# 2773| mu2773_10(ThreeWay) = ^IndirectMayWriteSideEffect[-1] : &:r2773_2 +# 2773| mu2773_11(unknown) = ^BufferMayWriteSideEffect[0] : &:r2773_5 +# 2773| mu2773_12(strong_ordering) = Store[y] : &:r2773_1, r2773_6 +# 2774| v2774_1(void) = NoOp : +# 2771| v2771_12(void) = ReturnVoid : +# 2771| v2771_13(void) = AliasedUse : ~m? +# 2771| v2771_14(void) = ExitFunction : + +# 2776| void test_allocation_with_initializer() +# 2776| Block 0 +# 2776| v2776_1(void) = EnterFunction : +# 2776| mu2776_2(unknown) = AliasedDefinition : +# 2776| mu2776_3(unknown) = InitializeNonLocal : +# 2777| r2777_1(glval) = VariableAddress[p1] : +# 2777| r2777_2(glval) = FunctionAddress[operator new] : +# 2777| r2777_3(unsigned long) = Constant[4] : +# 2777| r2777_4(void *) = Call[operator new] : func:r2777_2, 0:r2777_3 +# 2777| mu2777_5(unknown) = ^CallSideEffect : ~m? +# 2777| mu2777_6(unknown) = ^InitializeDynamicAllocation : &:r2777_4 +# 2777| r2777_7(int *) = Convert : r2777_4 +# 2777| r2777_8(int) = Constant[42] : +# 2777| mu2777_9(int) = Store[?] : &:r2777_7, r2777_8 +# 2777| mu2777_10(int *) = Store[p1] : &:r2777_1, r2777_7 +# 2778| r2778_1(glval) = VariableAddress[p2] : +# 2778| r2778_2(glval) = FunctionAddress[operator new] : +# 2778| r2778_3(unsigned long) = Constant[8] : +# 2778| r2778_4(void *) = Call[operator new] : func:r2778_2, 0:r2778_3 +# 2778| mu2778_5(unknown) = ^CallSideEffect : ~m? +# 2778| mu2778_6(unknown) = ^InitializeDynamicAllocation : &:r2778_4 +# 2778| r2778_7(long *) = Convert : r2778_4 +# 2778| r2778_8(long) = Constant[42] : +# 2778| mu2778_9(long) = Store[?] : &:r2778_7, r2778_8 +# 2778| mu2778_10(long *) = Store[p2] : &:r2778_1, r2778_7 +# 2779| v2779_1(void) = NoOp : +# 2776| v2776_4(void) = ReturnVoid : +# 2776| v2776_5(void) = AliasedUse : ~m? +# 2776| v2776_6(void) = ExitFunction : + +# 2781| void vla_sizeof_test(int, size_t, char) +# 2781| Block 0 +# 2781| v2781_1(void) = EnterFunction : +# 2781| mu2781_2(unknown) = AliasedDefinition : +# 2781| mu2781_3(unknown) = InitializeNonLocal : +# 2781| r2781_4(glval) = VariableAddress[len1] : +# 2781| mu2781_5(int) = InitializeParameter[len1] : &:r2781_4 +# 2781| r2781_6(glval) = VariableAddress[len2] : +# 2781| mu2781_7(unsigned long) = InitializeParameter[len2] : &:r2781_6 +# 2781| r2781_8(glval) = VariableAddress[len3] : +# 2781| mu2781_9(char) = InitializeParameter[len3] : &:r2781_8 +# 2782| r2782_1(glval) = VariableAddress[tmp1] : +# 2782| mu2782_2(char[]) = Uninitialized[tmp1] : &:r2782_1 # 2782| r2782_3(glval) = VariableAddress[len1] : # 2782| r2782_4(int) = Load[len1] : &:r2782_3, ~m? -# 2782| r2782_5(glval) = VariableAddress[len2] : -# 2782| r2782_6(unsigned long) = Load[len2] : &:r2782_5, ~m? -# 2782| v2782_7(void) = NoOp : -# 2783| r2783_1(glval) = VariableAddress[y] : -# 2783| r2783_2(unsigned long) = Constant[4] : +# 2782| v2782_5(void) = NoOp : +# 2783| r2783_1(glval) = VariableAddress[x] : +# 2783| r2783_2(unsigned long) = Constant[1] : # 2783| r2783_3(unsigned long) = Convert : r2782_4 # 2783| r2783_4(unsigned long) = Mul : r2783_2, r2783_3 -# 2783| r2783_5(unsigned long) = CopyValue : r2782_6 -# 2783| r2783_6(unsigned long) = Mul : r2783_4, r2783_5 -# 2783| mu2783_7(unsigned long) = Store[y] : &:r2783_1, r2783_6 -# 2784| r2784_1(glval) = VariableAddress[z] : -# 2784| r2784_2(unsigned long) = Constant[4] : -# 2784| r2784_3(unsigned long) = CopyValue : r2782_6 -# 2784| r2784_4(unsigned long) = Mul : r2784_2, r2784_3 -# 2784| mu2784_5(unsigned long) = Store[z] : &:r2784_1, r2784_4 -# 2785| r2785_1(glval) = VariableAddress[tmp3] : -# 2785| mu2785_2(int[][][]) = Uninitialized[tmp3] : &:r2785_1 -# 2785| r2785_3(glval) = VariableAddress[len1] : -# 2785| r2785_4(int) = Load[len1] : &:r2785_3, ~m? -# 2785| r2785_5(glval) = VariableAddress[len2] : -# 2785| r2785_6(unsigned long) = Load[len2] : &:r2785_5, ~m? -# 2785| r2785_7(glval) = VariableAddress[len3] : -# 2785| r2785_8(char) = Load[len3] : &:r2785_7, ~m? -# 2785| v2785_9(void) = NoOp : -# 2786| r2786_1(glval) = VariableAddress[w] : +# 2783| mu2783_5(unsigned long) = Store[x] : &:r2783_1, r2783_4 +# 2784| r2784_1(glval) = VariableAddress[tmp2] : +# 2784| mu2784_2(int[][]) = Uninitialized[tmp2] : &:r2784_1 +# 2784| r2784_3(glval) = VariableAddress[len1] : +# 2784| r2784_4(int) = Load[len1] : &:r2784_3, ~m? +# 2784| r2784_5(glval) = VariableAddress[len2] : +# 2784| r2784_6(unsigned long) = Load[len2] : &:r2784_5, ~m? +# 2784| v2784_7(void) = NoOp : +# 2785| r2785_1(glval) = VariableAddress[y] : +# 2785| r2785_2(unsigned long) = Constant[4] : +# 2785| r2785_3(unsigned long) = Convert : r2784_4 +# 2785| r2785_4(unsigned long) = Mul : r2785_2, r2785_3 +# 2785| r2785_5(unsigned long) = CopyValue : r2784_6 +# 2785| r2785_6(unsigned long) = Mul : r2785_4, r2785_5 +# 2785| mu2785_7(unsigned long) = Store[y] : &:r2785_1, r2785_6 +# 2786| r2786_1(glval) = VariableAddress[z] : # 2786| r2786_2(unsigned long) = Constant[4] : -# 2786| r2786_3(unsigned long) = Convert : r2785_4 +# 2786| r2786_3(unsigned long) = CopyValue : r2784_6 # 2786| r2786_4(unsigned long) = Mul : r2786_2, r2786_3 -# 2786| r2786_5(unsigned long) = CopyValue : r2785_6 -# 2786| r2786_6(unsigned long) = Mul : r2786_4, r2786_5 -# 2786| r2786_7(unsigned long) = Convert : r2785_8 -# 2786| r2786_8(unsigned long) = Mul : r2786_6, r2786_7 -# 2786| mu2786_9(unsigned long) = Store[w] : &:r2786_1, r2786_8 -# 2787| r2787_1(glval) = VariableAddress[v] : -# 2787| r2787_2(unsigned long) = Constant[4] : -# 2787| r2787_3(unsigned long) = CopyValue : r2785_6 -# 2787| r2787_4(unsigned long) = Mul : r2787_2, r2787_3 -# 2787| r2787_5(unsigned long) = Convert : r2785_8 -# 2787| r2787_6(unsigned long) = Mul : r2787_4, r2787_5 -# 2787| mu2787_7(unsigned long) = Store[v] : &:r2787_1, r2787_6 -# 2788| r2788_1(glval) = VariableAddress[u] : +# 2786| mu2786_5(unsigned long) = Store[z] : &:r2786_1, r2786_4 +# 2787| r2787_1(glval) = VariableAddress[tmp3] : +# 2787| mu2787_2(int[][][]) = Uninitialized[tmp3] : &:r2787_1 +# 2787| r2787_3(glval) = VariableAddress[len1] : +# 2787| r2787_4(int) = Load[len1] : &:r2787_3, ~m? +# 2787| r2787_5(glval) = VariableAddress[len2] : +# 2787| r2787_6(unsigned long) = Load[len2] : &:r2787_5, ~m? +# 2787| r2787_7(glval) = VariableAddress[len3] : +# 2787| r2787_8(char) = Load[len3] : &:r2787_7, ~m? +# 2787| v2787_9(void) = NoOp : +# 2788| r2788_1(glval) = VariableAddress[w] : # 2788| r2788_2(unsigned long) = Constant[4] : -# 2788| r2788_3(unsigned long) = Convert : r2785_8 +# 2788| r2788_3(unsigned long) = Convert : r2787_4 # 2788| r2788_4(unsigned long) = Mul : r2788_2, r2788_3 -# 2788| mu2788_5(unsigned long) = Store[u] : &:r2788_1, r2788_4 -# 2789| r2789_1(glval) = VariableAddress[t] : +# 2788| r2788_5(unsigned long) = CopyValue : r2787_6 +# 2788| r2788_6(unsigned long) = Mul : r2788_4, r2788_5 +# 2788| r2788_7(unsigned long) = Convert : r2787_8 +# 2788| r2788_8(unsigned long) = Mul : r2788_6, r2788_7 +# 2788| mu2788_9(unsigned long) = Store[w] : &:r2788_1, r2788_8 +# 2789| r2789_1(glval) = VariableAddress[v] : # 2789| r2789_2(unsigned long) = Constant[4] : -# 2789| mu2789_3(unsigned long) = Store[t] : &:r2789_1, r2789_2 -# 2790| v2790_1(void) = NoOp : -# 2779| v2779_10(void) = ReturnVoid : -# 2779| v2779_11(void) = AliasedUse : ~m? -# 2779| v2779_12(void) = ExitFunction : - -# 2792| void vla_sizeof_test2(int, size_t, char) -# 2792| Block 0 -# 2792| v2792_1(void) = EnterFunction : -# 2792| mu2792_2(unknown) = AliasedDefinition : -# 2792| mu2792_3(unknown) = InitializeNonLocal : -# 2792| r2792_4(glval) = VariableAddress[len1] : -# 2792| mu2792_5(int) = InitializeParameter[len1] : &:r2792_4 -# 2792| r2792_6(glval) = VariableAddress[len2] : -# 2792| mu2792_7(unsigned long) = InitializeParameter[len2] : &:r2792_6 -# 2792| r2792_8(glval) = VariableAddress[len3] : -# 2792| mu2792_9(char) = InitializeParameter[len3] : &:r2792_8 -# 2793| r2793_1(glval) = VariableAddress[tmp1] : -# 2793| mu2793_2(int[][]) = Uninitialized[tmp1] : &:r2793_1 -# 2793| r2793_3(glval) = VariableAddress[len1] : -# 2793| r2793_4(int) = Load[len1] : &:r2793_3, ~m? -# 2793| r2793_5(glval) = VariableAddress[len2] : -# 2793| r2793_6(unsigned long) = Load[len2] : &:r2793_5, ~m? -# 2793| v2793_7(void) = NoOp : -# 2794| r2794_1(glval) = VariableAddress[z] : -# 2794| r2794_2(unsigned long) = Constant[4] : -# 2794| r2794_3(unsigned long) = CopyValue : r2793_6 -# 2794| r2794_4(unsigned long) = Mul : r2794_2, r2794_3 -# 2794| mu2794_5(unsigned long) = Store[z] : &:r2794_1, r2794_4 -# 2795| r2795_1(glval) = VariableAddress[tmp2] : -# 2795| mu2795_2(int[][][]) = Uninitialized[tmp2] : &:r2795_1 +# 2789| r2789_3(unsigned long) = CopyValue : r2787_6 +# 2789| r2789_4(unsigned long) = Mul : r2789_2, r2789_3 +# 2789| r2789_5(unsigned long) = Convert : r2787_8 +# 2789| r2789_6(unsigned long) = Mul : r2789_4, r2789_5 +# 2789| mu2789_7(unsigned long) = Store[v] : &:r2789_1, r2789_6 +# 2790| r2790_1(glval) = VariableAddress[u] : +# 2790| r2790_2(unsigned long) = Constant[4] : +# 2790| r2790_3(unsigned long) = Convert : r2787_8 +# 2790| r2790_4(unsigned long) = Mul : r2790_2, r2790_3 +# 2790| mu2790_5(unsigned long) = Store[u] : &:r2790_1, r2790_4 +# 2791| r2791_1(glval) = VariableAddress[t] : +# 2791| r2791_2(unsigned long) = Constant[4] : +# 2791| mu2791_3(unsigned long) = Store[t] : &:r2791_1, r2791_2 +# 2792| v2792_1(void) = NoOp : +# 2781| v2781_10(void) = ReturnVoid : +# 2781| v2781_11(void) = AliasedUse : ~m? +# 2781| v2781_12(void) = ExitFunction : + +# 2794| void vla_sizeof_test2(int, size_t, char) +# 2794| Block 0 +# 2794| v2794_1(void) = EnterFunction : +# 2794| mu2794_2(unknown) = AliasedDefinition : +# 2794| mu2794_3(unknown) = InitializeNonLocal : +# 2794| r2794_4(glval) = VariableAddress[len1] : +# 2794| mu2794_5(int) = InitializeParameter[len1] : &:r2794_4 +# 2794| r2794_6(glval) = VariableAddress[len2] : +# 2794| mu2794_7(unsigned long) = InitializeParameter[len2] : &:r2794_6 +# 2794| r2794_8(glval) = VariableAddress[len3] : +# 2794| mu2794_9(char) = InitializeParameter[len3] : &:r2794_8 +# 2795| r2795_1(glval) = VariableAddress[tmp1] : +# 2795| mu2795_2(int[][]) = Uninitialized[tmp1] : &:r2795_1 # 2795| r2795_3(glval) = VariableAddress[len1] : # 2795| r2795_4(int) = Load[len1] : &:r2795_3, ~m? # 2795| r2795_5(glval) = VariableAddress[len2] : # 2795| r2795_6(unsigned long) = Load[len2] : &:r2795_5, ~m? -# 2795| r2795_7(glval) = VariableAddress[len3] : -# 2795| r2795_8(char) = Load[len3] : &:r2795_7, ~m? -# 2795| v2795_9(void) = NoOp : -# 2796| r2796_1(glval) = VariableAddress[v] : +# 2795| v2795_7(void) = NoOp : +# 2796| r2796_1(glval) = VariableAddress[z] : # 2796| r2796_2(unsigned long) = Constant[4] : # 2796| r2796_3(unsigned long) = CopyValue : r2795_6 # 2796| r2796_4(unsigned long) = Mul : r2796_2, r2796_3 -# 2796| r2796_5(unsigned long) = Convert : r2795_8 -# 2796| r2796_6(unsigned long) = Mul : r2796_4, r2796_5 -# 2796| mu2796_7(unsigned long) = Store[v] : &:r2796_1, r2796_6 -# 2797| r2797_1(glval) = VariableAddress[u] : -# 2797| r2797_2(unsigned long) = Constant[4] : -# 2797| r2797_3(unsigned long) = Convert : r2795_8 -# 2797| r2797_4(unsigned long) = Mul : r2797_2, r2797_3 -# 2797| mu2797_5(unsigned long) = Store[u] : &:r2797_1, r2797_4 -# 2798| r2798_1(glval) = VariableAddress[t] : +# 2796| mu2796_5(unsigned long) = Store[z] : &:r2796_1, r2796_4 +# 2797| r2797_1(glval) = VariableAddress[tmp2] : +# 2797| mu2797_2(int[][][]) = Uninitialized[tmp2] : &:r2797_1 +# 2797| r2797_3(glval) = VariableAddress[len1] : +# 2797| r2797_4(int) = Load[len1] : &:r2797_3, ~m? +# 2797| r2797_5(glval) = VariableAddress[len2] : +# 2797| r2797_6(unsigned long) = Load[len2] : &:r2797_5, ~m? +# 2797| r2797_7(glval) = VariableAddress[len3] : +# 2797| r2797_8(char) = Load[len3] : &:r2797_7, ~m? +# 2797| v2797_9(void) = NoOp : +# 2798| r2798_1(glval) = VariableAddress[v] : # 2798| r2798_2(unsigned long) = Constant[4] : -# 2798| mu2798_3(unsigned long) = Store[t] : &:r2798_1, r2798_2 -# 2799| v2799_1(void) = NoOp : -# 2792| v2792_10(void) = ReturnVoid : -# 2792| v2792_11(void) = AliasedUse : ~m? -# 2792| v2792_12(void) = ExitFunction : - -# 2801| size_t vla_sizeof_test3(int, size_t, char, bool) -# 2801| Block 0 -# 2801| v2801_1(void) = EnterFunction : -# 2801| mu2801_2(unknown) = AliasedDefinition : -# 2801| mu2801_3(unknown) = InitializeNonLocal : -# 2801| r2801_4(glval) = VariableAddress[len1] : -# 2801| mu2801_5(int) = InitializeParameter[len1] : &:r2801_4 -# 2801| r2801_6(glval) = VariableAddress[len2] : -# 2801| mu2801_7(unsigned long) = InitializeParameter[len2] : &:r2801_6 -# 2801| r2801_8(glval) = VariableAddress[len3] : -# 2801| mu2801_9(char) = InitializeParameter[len3] : &:r2801_8 -# 2801| r2801_10(glval) = VariableAddress[b] : -# 2801| mu2801_11(bool) = InitializeParameter[b] : &:r2801_10 -# 2802| r2802_1(glval) = VariableAddress[len1] : -# 2802| r2802_2(int) = Load[len1] : &:r2802_1, ~m? -# 2802| r2802_3(glval) = VariableAddress[len2] : -# 2802| r2802_4(unsigned long) = Load[len2] : &:r2802_3, ~m? -# 2802| v2802_5(void) = NoOp : -# 2803| v2803_1(void) = NoOp : -# 2804| r2804_1(glval) = VariableAddress[len3] : -# 2804| r2804_2(char) = Load[len3] : &:r2804_1, ~m? -# 2804| v2804_3(void) = NoOp : -# 2806| r2806_1(glval) = VariableAddress[b] : -# 2806| r2806_2(bool) = Load[b] : &:r2806_1, ~m? -# 2806| v2806_3(void) = ConditionalBranch : r2806_2 +# 2798| r2798_3(unsigned long) = CopyValue : r2797_6 +# 2798| r2798_4(unsigned long) = Mul : r2798_2, r2798_3 +# 2798| r2798_5(unsigned long) = Convert : r2797_8 +# 2798| r2798_6(unsigned long) = Mul : r2798_4, r2798_5 +# 2798| mu2798_7(unsigned long) = Store[v] : &:r2798_1, r2798_6 +# 2799| r2799_1(glval) = VariableAddress[u] : +# 2799| r2799_2(unsigned long) = Constant[4] : +# 2799| r2799_3(unsigned long) = Convert : r2797_8 +# 2799| r2799_4(unsigned long) = Mul : r2799_2, r2799_3 +# 2799| mu2799_5(unsigned long) = Store[u] : &:r2799_1, r2799_4 +# 2800| r2800_1(glval) = VariableAddress[t] : +# 2800| r2800_2(unsigned long) = Constant[4] : +# 2800| mu2800_3(unsigned long) = Store[t] : &:r2800_1, r2800_2 +# 2801| v2801_1(void) = NoOp : +# 2794| v2794_10(void) = ReturnVoid : +# 2794| v2794_11(void) = AliasedUse : ~m? +# 2794| v2794_12(void) = ExitFunction : + +# 2803| size_t vla_sizeof_test3(int, size_t, char, bool) +# 2803| Block 0 +# 2803| v2803_1(void) = EnterFunction : +# 2803| mu2803_2(unknown) = AliasedDefinition : +# 2803| mu2803_3(unknown) = InitializeNonLocal : +# 2803| r2803_4(glval) = VariableAddress[len1] : +# 2803| mu2803_5(int) = InitializeParameter[len1] : &:r2803_4 +# 2803| r2803_6(glval) = VariableAddress[len2] : +# 2803| mu2803_7(unsigned long) = InitializeParameter[len2] : &:r2803_6 +# 2803| r2803_8(glval) = VariableAddress[len3] : +# 2803| mu2803_9(char) = InitializeParameter[len3] : &:r2803_8 +# 2803| r2803_10(glval) = VariableAddress[b] : +# 2803| mu2803_11(bool) = InitializeParameter[b] : &:r2803_10 +# 2804| r2804_1(glval) = VariableAddress[len1] : +# 2804| r2804_2(int) = Load[len1] : &:r2804_1, ~m? +# 2804| r2804_3(glval) = VariableAddress[len2] : +# 2804| r2804_4(unsigned long) = Load[len2] : &:r2804_3, ~m? +# 2804| v2804_5(void) = NoOp : +# 2805| v2805_1(void) = NoOp : +# 2806| r2806_1(glval) = VariableAddress[len3] : +# 2806| r2806_2(char) = Load[len3] : &:r2806_1, ~m? +# 2806| v2806_3(void) = NoOp : +# 2808| r2808_1(glval) = VariableAddress[b] : +# 2808| r2808_2(bool) = Load[b] : &:r2808_1, ~m? +# 2808| v2808_3(void) = ConditionalBranch : r2808_2 #-----| False -> Block 3 #-----| True -> Block 2 -# 2801| Block 1 -# 2801| r2801_12(glval) = VariableAddress[#return] : -# 2801| v2801_13(void) = ReturnValue : &:r2801_12, ~m? -# 2801| v2801_14(void) = AliasedUse : ~m? -# 2801| v2801_15(void) = ExitFunction : - -# 2807| Block 2 -# 2807| r2807_1(glval) = VariableAddress[tmp] : -# 2807| mu2807_2(long[][][]) = Uninitialized[tmp] : &:r2807_1 -# 2807| v2807_3(void) = NoOp : -# 2808| r2808_1(glval) = VariableAddress[#return] : -# 2808| r2808_2(unsigned long) = Constant[8] : -# 2808| r2808_3(unsigned long) = Convert : r2802_2 -# 2808| r2808_4(unsigned long) = Mul : r2808_2, r2808_3 -# 2808| r2808_5(unsigned long) = CopyValue : r2802_4 -# 2808| r2808_6(unsigned long) = Mul : r2808_4, r2808_5 -# 2808| mu2808_7(unsigned long) = Store[#return] : &:r2808_1, r2808_6 +# 2803| Block 1 +# 2803| r2803_12(glval) = VariableAddress[#return] : +# 2803| v2803_13(void) = ReturnValue : &:r2803_12, ~m? +# 2803| v2803_14(void) = AliasedUse : ~m? +# 2803| v2803_15(void) = ExitFunction : + +# 2809| Block 2 +# 2809| r2809_1(glval) = VariableAddress[tmp] : +# 2809| mu2809_2(long[][][]) = Uninitialized[tmp] : &:r2809_1 +# 2809| v2809_3(void) = NoOp : +# 2810| r2810_1(glval) = VariableAddress[#return] : +# 2810| r2810_2(unsigned long) = Constant[8] : +# 2810| r2810_3(unsigned long) = Convert : r2804_2 +# 2810| r2810_4(unsigned long) = Mul : r2810_2, r2810_3 +# 2810| r2810_5(unsigned long) = CopyValue : r2804_4 +# 2810| r2810_6(unsigned long) = Mul : r2810_4, r2810_5 +# 2810| mu2810_7(unsigned long) = Store[#return] : &:r2810_1, r2810_6 #-----| Goto -> Block 1 -# 2811| Block 3 -# 2811| r2811_1(glval) = VariableAddress[#return] : -# 2811| r2811_2(unsigned long) = Constant[0] : -# 2811| mu2811_3(unsigned long) = Store[#return] : &:r2811_1, r2811_2 +# 2813| Block 3 +# 2813| r2813_1(glval) = VariableAddress[#return] : +# 2813| r2813_2(unsigned long) = Constant[0] : +# 2813| mu2813_3(unsigned long) = Store[#return] : &:r2813_1, r2813_2 #-----| Goto -> Block 1 -# 2814| void vla_sizeof_test4(int, size_t) -# 2814| Block 0 -# 2814| v2814_1(void) = EnterFunction : -# 2814| mu2814_2(unknown) = AliasedDefinition : -# 2814| mu2814_3(unknown) = InitializeNonLocal : -# 2814| r2814_4(glval) = VariableAddress[len1] : -# 2814| mu2814_5(int) = InitializeParameter[len1] : &:r2814_4 -# 2814| r2814_6(glval) = VariableAddress[len2] : -# 2814| mu2814_7(unsigned long) = InitializeParameter[len2] : &:r2814_6 -# 2815| r2815_1(glval) = VariableAddress[tmp1] : -# 2815| mu2815_2(int[][]) = Uninitialized[tmp1] : &:r2815_1 -# 2815| r2815_3(glval) = VariableAddress[len1] : -# 2815| r2815_4(int) = Load[len1] : &:r2815_3, ~m? -# 2815| r2815_5(glval) = VariableAddress[len2] : -# 2815| r2815_6(unsigned long) = Load[len2] : &:r2815_5, ~m? -# 2815| v2815_7(void) = NoOp : -# 2816| r2816_1(glval) = VariableAddress[z] : -# 2816| r2816_2(unsigned long) = Constant[4] : -# 2816| r2816_3(unsigned long) = CopyValue : r2815_6 -# 2816| r2816_4(unsigned long) = Mul : r2816_2, r2816_3 -# 2816| mu2816_5(unsigned long) = Store[z] : &:r2816_1, r2816_4 -# 2817| v2817_1(void) = NoOp : -# 2814| v2814_8(void) = ReturnVoid : -# 2814| v2814_9(void) = AliasedUse : ~m? -# 2814| v2814_10(void) = ExitFunction : - -# 2819| void vla_sizeof_test5(int, size_t) -# 2819| Block 0 -# 2819| v2819_1(void) = EnterFunction : -# 2819| mu2819_2(unknown) = AliasedDefinition : -# 2819| mu2819_3(unknown) = InitializeNonLocal : -# 2819| r2819_4(glval) = VariableAddress[len1] : -# 2819| mu2819_5(int) = InitializeParameter[len1] : &:r2819_4 -# 2819| r2819_6(glval) = VariableAddress[len2] : -# 2819| mu2819_7(unsigned long) = InitializeParameter[len2] : &:r2819_6 -# 2820| r2820_1(glval) = VariableAddress[tmp1] : -# 2820| mu2820_2(int[][]) = Uninitialized[tmp1] : &:r2820_1 -# 2820| r2820_3(glval) = VariableAddress[len1] : -# 2820| r2820_4(int) = Load[len1] : &:r2820_3, ~m? -# 2820| r2820_5(glval) = VariableAddress[len2] : -# 2820| r2820_6(unsigned long) = Load[len2] : &:r2820_5, ~m? -# 2820| v2820_7(void) = NoOp : -# 2821| r2821_1(glval) = VariableAddress[z] : -# 2821| r2821_2(unsigned long) = Constant[4] : -# 2821| r2821_3(unsigned long) = CopyValue : r2820_6 -# 2821| r2821_4(unsigned long) = Mul : r2821_2, r2821_3 -# 2821| mu2821_5(unsigned long) = Store[z] : &:r2821_1, r2821_4 -# 2822| v2822_1(void) = NoOp : -# 2819| v2819_8(void) = ReturnVoid : -# 2819| v2819_9(void) = AliasedUse : ~m? -# 2819| v2819_10(void) = ExitFunction : +# 2816| void vla_sizeof_test4(int, size_t) +# 2816| Block 0 +# 2816| v2816_1(void) = EnterFunction : +# 2816| mu2816_2(unknown) = AliasedDefinition : +# 2816| mu2816_3(unknown) = InitializeNonLocal : +# 2816| r2816_4(glval) = VariableAddress[len1] : +# 2816| mu2816_5(int) = InitializeParameter[len1] : &:r2816_4 +# 2816| r2816_6(glval) = VariableAddress[len2] : +# 2816| mu2816_7(unsigned long) = InitializeParameter[len2] : &:r2816_6 +# 2817| r2817_1(glval) = VariableAddress[tmp1] : +# 2817| mu2817_2(int[][]) = Uninitialized[tmp1] : &:r2817_1 +# 2817| r2817_3(glval) = VariableAddress[len1] : +# 2817| r2817_4(int) = Load[len1] : &:r2817_3, ~m? +# 2817| r2817_5(glval) = VariableAddress[len2] : +# 2817| r2817_6(unsigned long) = Load[len2] : &:r2817_5, ~m? +# 2817| v2817_7(void) = NoOp : +# 2818| r2818_1(glval) = VariableAddress[z] : +# 2818| r2818_2(unsigned long) = Constant[4] : +# 2818| r2818_3(unsigned long) = CopyValue : r2817_6 +# 2818| r2818_4(unsigned long) = Mul : r2818_2, r2818_3 +# 2818| mu2818_5(unsigned long) = Store[z] : &:r2818_1, r2818_4 +# 2819| v2819_1(void) = NoOp : +# 2816| v2816_8(void) = ReturnVoid : +# 2816| v2816_9(void) = AliasedUse : ~m? +# 2816| v2816_10(void) = ExitFunction : + +# 2821| void vla_sizeof_test5(int, size_t) +# 2821| Block 0 +# 2821| v2821_1(void) = EnterFunction : +# 2821| mu2821_2(unknown) = AliasedDefinition : +# 2821| mu2821_3(unknown) = InitializeNonLocal : +# 2821| r2821_4(glval) = VariableAddress[len1] : +# 2821| mu2821_5(int) = InitializeParameter[len1] : &:r2821_4 +# 2821| r2821_6(glval) = VariableAddress[len2] : +# 2821| mu2821_7(unsigned long) = InitializeParameter[len2] : &:r2821_6 +# 2822| r2822_1(glval) = VariableAddress[tmp1] : +# 2822| mu2822_2(int[][]) = Uninitialized[tmp1] : &:r2822_1 +# 2822| r2822_3(glval) = VariableAddress[len1] : +# 2822| r2822_4(int) = Load[len1] : &:r2822_3, ~m? +# 2822| r2822_5(glval) = VariableAddress[len2] : +# 2822| r2822_6(unsigned long) = Load[len2] : &:r2822_5, ~m? +# 2822| v2822_7(void) = NoOp : +# 2823| r2823_1(glval) = VariableAddress[z] : +# 2823| r2823_2(unsigned long) = Constant[4] : +# 2823| r2823_3(unsigned long) = CopyValue : r2822_6 +# 2823| r2823_4(unsigned long) = Mul : r2823_2, r2823_3 +# 2823| mu2823_5(unsigned long) = Store[z] : &:r2823_1, r2823_4 +# 2824| v2824_1(void) = NoOp : +# 2821| v2821_8(void) = ReturnVoid : +# 2821| v2821_9(void) = AliasedUse : ~m? +# 2821| v2821_10(void) = ExitFunction : ir23.cpp: # 1| bool consteval_1() diff --git a/cpp/ql/test/library-tests/ir/ir/unaliased_ssa_consistency.expected b/cpp/ql/test/library-tests/ir/ir/unaliased_ssa_consistency.expected index b83d9ea47e38..f1b75895c3e7 100644 --- a/cpp/ql/test/library-tests/ir/ir/unaliased_ssa_consistency.expected +++ b/cpp/ql/test/library-tests/ir/ir/unaliased_ssa_consistency.expected @@ -27,7 +27,7 @@ invalidOverlap nonUniqueEnclosingIRFunction fieldAddressOnNonPointer thisArgumentIsNonPointer -| ir.cpp:2546:34:2546:34 | Call: call to operator bool | Call instruction 'Call: call to operator bool' has a `this` argument operand that is not an address, in function '$@'. | ir.cpp:2545:6:2545:23 | void this_inconsistency(bool) | void this_inconsistency(bool) | +| ir.cpp:2548:34:2548:34 | Call: call to operator bool | Call instruction 'Call: call to operator bool' has a `this` argument operand that is not an address, in function '$@'. | ir.cpp:2547:6:2547:23 | void this_inconsistency(bool) | void this_inconsistency(bool) | nonUniqueIRVariable nonBooleanOperand missingCppType diff --git a/cpp/ql/test/library-tests/ir/ir/unaliased_ssa_consistency_unsound.expected b/cpp/ql/test/library-tests/ir/ir/unaliased_ssa_consistency_unsound.expected index b83d9ea47e38..f1b75895c3e7 100644 --- a/cpp/ql/test/library-tests/ir/ir/unaliased_ssa_consistency_unsound.expected +++ b/cpp/ql/test/library-tests/ir/ir/unaliased_ssa_consistency_unsound.expected @@ -27,7 +27,7 @@ invalidOverlap nonUniqueEnclosingIRFunction fieldAddressOnNonPointer thisArgumentIsNonPointer -| ir.cpp:2546:34:2546:34 | Call: call to operator bool | Call instruction 'Call: call to operator bool' has a `this` argument operand that is not an address, in function '$@'. | ir.cpp:2545:6:2545:23 | void this_inconsistency(bool) | void this_inconsistency(bool) | +| ir.cpp:2548:34:2548:34 | Call: call to operator bool | Call instruction 'Call: call to operator bool' has a `this` argument operand that is not an address, in function '$@'. | ir.cpp:2547:6:2547:23 | void this_inconsistency(bool) | void this_inconsistency(bool) | nonUniqueIRVariable nonBooleanOperand missingCppType diff --git a/cpp/ql/test/library-tests/vector_types/builtin_ops.expected b/cpp/ql/test/library-tests/vector_types/builtin_ops.expected index 756ca2f1c17a..0fe2627ff18f 100644 --- a/cpp/ql/test/library-tests/vector_types/builtin_ops.expected +++ b/cpp/ql/test/library-tests/vector_types/builtin_ops.expected @@ -1,4 +1,4 @@ | vector_types2.cpp:10:15:10:42 | __builtin_shuffle | | vector_types2.cpp:11:15:11:45 | __builtin_shuffle | | vector_types.cpp:31:13:31:49 | __builtin_shufflevector | -| vector_types.cpp:58:10:58:52 | __builtin_convertvector | +| vector_types.cpp:63:10:63:52 | __builtin_convertvector | diff --git a/cpp/ql/test/library-tests/vector_types/variables.expected b/cpp/ql/test/library-tests/vector_types/variables.expected index 52fa98dd3f02..a4062385bafe 100644 --- a/cpp/ql/test/library-tests/vector_types/variables.expected +++ b/cpp/ql/test/library-tests/vector_types/variables.expected @@ -34,4 +34,7 @@ | vector_types.cpp:47:23:47:25 | dst | dst | file://:0:0:0:0 | v16i * | 8 | | vector_types.cpp:47:34:47:36 | src | src | file://:0:0:0:0 | v16i * | 8 | | vector_types.cpp:47:43:47:43 | n | n | file://:0:0:0:0 | int | 4 | -| vector_types.cpp:57:43:57:44 | vf | vf | vector_types.cpp:55:16:55:27 | vector4float | 16 | +| vector_types.cpp:54:20:54:22 | dst | dst | file://:0:0:0:0 | v16i * | 8 | +| vector_types.cpp:54:31:54:34 | src1 | src1 | file://:0:0:0:0 | v16i * | 8 | +| vector_types.cpp:54:43:54:46 | src2 | src2 | file://:0:0:0:0 | v16i * | 8 | +| vector_types.cpp:62:43:62:44 | vf | vf | vector_types.cpp:60:16:60:27 | vector4float | 16 | diff --git a/cpp/ql/test/library-tests/vector_types/vector_ops.expected b/cpp/ql/test/library-tests/vector_types/vector_ops.expected index 376457b88c84..7c08015a94ac 100644 --- a/cpp/ql/test/library-tests/vector_types/vector_ops.expected +++ b/cpp/ql/test/library-tests/vector_types/vector_ops.expected @@ -2,3 +2,5 @@ | vector_types.cpp:21:10:21:18 | ... < ... | < | file://:0:0:0:0 | __attribute((vector_size(16))) int | | vector_types.cpp:51:10:51:18 | ... << ... | << | file://:0:0:0:0 | __attribute((vector_size(16))) int | | vector_types.cpp:51:18:51:18 | (vector fill) ... | (vector fill) | file://:0:0:0:0 | __attribute((vector_size(16))) int | +| vector_types.cpp:55:10:55:23 | ... && ... | && | file://:0:0:0:0 | __attribute((vector_size(16))) int | +| vector_types.cpp:56:10:56:23 | ... \|\| ... | \|\| | file://:0:0:0:0 | __attribute((vector_size(16))) int | diff --git a/cpp/ql/test/library-tests/vector_types/vector_types.cpp b/cpp/ql/test/library-tests/vector_types/vector_types.cpp index 778b88ed5f89..84e263897d2a 100644 --- a/cpp/ql/test/library-tests/vector_types/vector_types.cpp +++ b/cpp/ql/test/library-tests/vector_types/vector_types.cpp @@ -51,6 +51,11 @@ void shift_left(v16i *dst, v16i *src, int n) { *dst = *src << n; } +void logical(v16i *dst, v16i *src1, v16i *src2) { + *dst = *src1 && *src2; + *dst = *src1 || *src2; +} + typedef double vector4double __attribute__((__vector_size__(32))); typedef float vector4float __attribute__((__vector_size__(16)));