@@ -13365,6 +13365,174 @@ ir.cpp:
13365
13365
# 1717| <params>:
13366
13366
# 1717| getEntryPoint(): [BlockStmt] { ... }
13367
13367
# 1717| getStmt(0): [ReturnStmt] return ...
13368
+ # 1721| [CopyAssignmentOperator] CopyConstructorWithImplicitArgumentClass& CopyConstructorWithImplicitArgumentClass::operator=(CopyConstructorWithImplicitArgumentClass const&)
13369
+ # 1721| <params>:
13370
+ #-----| getParameter(0): [Parameter] (unnamed parameter 0)
13371
+ #-----| Type = [LValueReferenceType] const CopyConstructorWithImplicitArgumentClass &
13372
+ # 1724| [Constructor] void CopyConstructorWithImplicitArgumentClass::CopyConstructorWithImplicitArgumentClass()
13373
+ # 1724| <params>:
13374
+ # 1724| <initializations>:
13375
+ # 1724| getEntryPoint(): [BlockStmt] { ... }
13376
+ # 1724| getStmt(0): [ReturnStmt] return ...
13377
+ # 1725| [CopyConstructor] void CopyConstructorWithImplicitArgumentClass::CopyConstructorWithImplicitArgumentClass(CopyConstructorWithImplicitArgumentClass const&)
13378
+ # 1725| <params>:
13379
+ # 1725| getParameter(0): [Parameter] c
13380
+ # 1725| Type = [LValueReferenceType] const CopyConstructorWithImplicitArgumentClass &
13381
+ # 1725| <initializations>:
13382
+ # 1725| getEntryPoint(): [BlockStmt] { ... }
13383
+ # 1726| getStmt(0): [ExprStmt] ExprStmt
13384
+ # 1726| getExpr(): [AssignExpr] ... = ...
13385
+ # 1726| Type = [IntType] int
13386
+ # 1726| ValueCategory = lvalue
13387
+ # 1726| getLValue(): [PointerFieldAccess] x
13388
+ # 1726| Type = [IntType] int
13389
+ # 1726| ValueCategory = lvalue
13390
+ # 1726| getQualifier(): [ThisExpr] this
13391
+ # 1726| Type = [PointerType] CopyConstructorWithImplicitArgumentClass *
13392
+ # 1726| ValueCategory = prvalue(load)
13393
+ # 1726| getRValue(): [ReferenceFieldAccess] x
13394
+ # 1726| Type = [IntType] int
13395
+ # 1726| ValueCategory = prvalue(load)
13396
+ # 1726| getQualifier(): [VariableAccess] c
13397
+ # 1726| Type = [LValueReferenceType] const CopyConstructorWithImplicitArgumentClass &
13398
+ # 1726| ValueCategory = prvalue(load)
13399
+ # 1726| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference)
13400
+ # 1726| Type = [SpecifiedType] const CopyConstructorWithImplicitArgumentClass
13401
+ # 1726| ValueCategory = lvalue
13402
+ # 1727| getStmt(1): [ReturnStmt] return ...
13403
+ # 1730| [CopyAssignmentOperator] CopyConstructorWithBitwiseCopyClass& CopyConstructorWithBitwiseCopyClass::operator=(CopyConstructorWithBitwiseCopyClass const&)
13404
+ # 1730| <params>:
13405
+ #-----| getParameter(0): [Parameter] (unnamed parameter 0)
13406
+ #-----| Type = [LValueReferenceType] const CopyConstructorWithBitwiseCopyClass &
13407
+ # 1730| [MoveAssignmentOperator] CopyConstructorWithBitwiseCopyClass& CopyConstructorWithBitwiseCopyClass::operator=(CopyConstructorWithBitwiseCopyClass&&)
13408
+ # 1730| <params>:
13409
+ #-----| getParameter(0): [Parameter] (unnamed parameter 0)
13410
+ #-----| Type = [RValueReferenceType] CopyConstructorWithBitwiseCopyClass &&
13411
+ # 1730| [CopyConstructor] void CopyConstructorWithBitwiseCopyClass::CopyConstructorWithBitwiseCopyClass(CopyConstructorWithBitwiseCopyClass const&)
13412
+ # 1730| <params>:
13413
+ #-----| getParameter(0): [Parameter] (unnamed parameter 0)
13414
+ #-----| Type = [LValueReferenceType] const CopyConstructorWithBitwiseCopyClass &
13415
+ # 1730| [MoveConstructor] void CopyConstructorWithBitwiseCopyClass::CopyConstructorWithBitwiseCopyClass(CopyConstructorWithBitwiseCopyClass&&)
13416
+ # 1730| <params>:
13417
+ #-----| getParameter(0): [Parameter] (unnamed parameter 0)
13418
+ #-----| Type = [RValueReferenceType] CopyConstructorWithBitwiseCopyClass &&
13419
+ # 1733| [Constructor] void CopyConstructorWithBitwiseCopyClass::CopyConstructorWithBitwiseCopyClass()
13420
+ # 1733| <params>:
13421
+ # 1733| <initializations>:
13422
+ # 1733| getEntryPoint(): [BlockStmt] { ... }
13423
+ # 1733| getStmt(0): [ReturnStmt] return ...
13424
+ # 1736| [CopyAssignmentOperator] CopyConstructorTestNonVirtualClass& CopyConstructorTestNonVirtualClass::operator=(CopyConstructorTestNonVirtualClass const&)
13425
+ # 1736| <params>:
13426
+ #-----| getParameter(0): [Parameter] (unnamed parameter 0)
13427
+ #-----| Type = [LValueReferenceType] const CopyConstructorTestNonVirtualClass &
13428
+ # 1736| [MoveAssignmentOperator] CopyConstructorTestNonVirtualClass& CopyConstructorTestNonVirtualClass::operator=(CopyConstructorTestNonVirtualClass&&)
13429
+ # 1736| <params>:
13430
+ #-----| getParameter(0): [Parameter] (unnamed parameter 0)
13431
+ #-----| Type = [RValueReferenceType] CopyConstructorTestNonVirtualClass &&
13432
+ # 1736| [CopyConstructor] void CopyConstructorTestNonVirtualClass::CopyConstructorTestNonVirtualClass(CopyConstructorTestNonVirtualClass const&)
13433
+ # 1736| <params>:
13434
+ #-----| getParameter(0): [Parameter] (unnamed parameter 0)
13435
+ #-----| Type = [LValueReferenceType] const CopyConstructorTestNonVirtualClass &
13436
+ # 1736| <initializations>:
13437
+ # 1736| getInitializer(0): [ConstructorDirectInit] call to CopyConstructorWithImplicitArgumentClass
13438
+ # 1736| Type = [VoidType] void
13439
+ # 1736| ValueCategory = prvalue
13440
+ # 1736| getInitializer(1): (no string representation)
13441
+ # 1736| Type = [VirtualBaseClass] CopyConstructorWithBitwiseCopyClass
13442
+ # 1736| ValueCategory = prvalue
13443
+ # 1736| getEntryPoint(): [BlockStmt] { ... }
13444
+ # 1736| getStmt(0): [ReturnStmt] return ...
13445
+ # 1736| [MoveConstructor] void CopyConstructorTestNonVirtualClass::CopyConstructorTestNonVirtualClass(CopyConstructorTestNonVirtualClass&&)
13446
+ # 1736| <params>:
13447
+ #-----| getParameter(0): [Parameter] (unnamed parameter 0)
13448
+ #-----| Type = [RValueReferenceType] CopyConstructorTestNonVirtualClass &&
13449
+ # 1740| [Constructor] void CopyConstructorTestNonVirtualClass::CopyConstructorTestNonVirtualClass()
13450
+ # 1740| <params>:
13451
+ # 1740| <initializations>:
13452
+ # 1740| getInitializer(0): [ConstructorDirectInit] call to CopyConstructorWithImplicitArgumentClass
13453
+ # 1740| Type = [VoidType] void
13454
+ # 1740| ValueCategory = prvalue
13455
+ # 1740| getInitializer(1): [ConstructorDirectInit] call to CopyConstructorWithBitwiseCopyClass
13456
+ # 1740| Type = [VoidType] void
13457
+ # 1740| ValueCategory = prvalue
13458
+ # 1740| getEntryPoint(): [BlockStmt] { ... }
13459
+ # 1740| getStmt(0): [ReturnStmt] return ...
13460
+ # 1743| [CopyAssignmentOperator] CopyConstructorTestVirtualClass& CopyConstructorTestVirtualClass::operator=(CopyConstructorTestVirtualClass const&)
13461
+ # 1743| <params>:
13462
+ #-----| getParameter(0): [Parameter] (unnamed parameter 0)
13463
+ #-----| Type = [LValueReferenceType] const CopyConstructorTestVirtualClass &
13464
+ # 1743| [MoveAssignmentOperator] CopyConstructorTestVirtualClass& CopyConstructorTestVirtualClass::operator=(CopyConstructorTestVirtualClass&&)
13465
+ # 1743| <params>:
13466
+ #-----| getParameter(0): [Parameter] (unnamed parameter 0)
13467
+ #-----| Type = [RValueReferenceType] CopyConstructorTestVirtualClass &&
13468
+ # 1743| [CopyConstructor] void CopyConstructorTestVirtualClass::CopyConstructorTestVirtualClass(CopyConstructorTestVirtualClass const&)
13469
+ # 1743| <params>:
13470
+ #-----| getParameter(0): [Parameter] (unnamed parameter 0)
13471
+ #-----| Type = [LValueReferenceType] const CopyConstructorTestVirtualClass &
13472
+ # 1743| <initializations>:
13473
+ # 1743| getInitializer(0): [ConstructorVirtualInit] call to CopyConstructorWithImplicitArgumentClass
13474
+ # 1743| Type = [VoidType] void
13475
+ # 1743| ValueCategory = prvalue
13476
+ # 1743| getInitializer(1): (no string representation)
13477
+ # 1743| Type = [VirtualBaseClass] CopyConstructorWithBitwiseCopyClass
13478
+ # 1743| ValueCategory = prvalue
13479
+ # 1743| getEntryPoint(): [BlockStmt] { ... }
13480
+ # 1743| getStmt(0): [ReturnStmt] return ...
13481
+ # 1743| [MoveConstructor] void CopyConstructorTestVirtualClass::CopyConstructorTestVirtualClass(CopyConstructorTestVirtualClass&&)
13482
+ # 1743| <params>:
13483
+ #-----| getParameter(0): [Parameter] (unnamed parameter 0)
13484
+ #-----| Type = [RValueReferenceType] CopyConstructorTestVirtualClass &&
13485
+ # 1747| [Constructor] void CopyConstructorTestVirtualClass::CopyConstructorTestVirtualClass()
13486
+ # 1747| <params>:
13487
+ # 1747| <initializations>:
13488
+ # 1747| getInitializer(0): [ConstructorVirtualInit] call to CopyConstructorWithImplicitArgumentClass
13489
+ # 1747| Type = [VoidType] void
13490
+ # 1747| ValueCategory = prvalue
13491
+ # 1747| getInitializer(1): [ConstructorVirtualInit] call to CopyConstructorWithBitwiseCopyClass
13492
+ # 1747| Type = [VoidType] void
13493
+ # 1747| ValueCategory = prvalue
13494
+ # 1747| getEntryPoint(): [BlockStmt] { ... }
13495
+ # 1747| getStmt(0): [ReturnStmt] return ...
13496
+ # 1750| [TopLevelFunction] int implicit_copy_constructor_test(CopyConstructorTestNonVirtualClass const&, CopyConstructorTestVirtualClass const&)
13497
+ # 1750| <params>:
13498
+ # 1751| getParameter(0): [Parameter] x
13499
+ # 1751| Type = [LValueReferenceType] const CopyConstructorTestNonVirtualClass &
13500
+ # 1752| getParameter(1): [Parameter] y
13501
+ # 1752| Type = [LValueReferenceType] const CopyConstructorTestVirtualClass &
13502
+ # 1752| getEntryPoint(): [BlockStmt] { ... }
13503
+ # 1753| getStmt(0): [DeclStmt] declaration
13504
+ # 1753| getDeclarationEntry(0): [VariableDeclarationEntry] definition of cx
13505
+ # 1753| Type = [Class] CopyConstructorTestNonVirtualClass
13506
+ # 1753| getVariable().getInitializer(): [Initializer] initializer for cx
13507
+ # 1753| getExpr(): [ConstructorCall] call to CopyConstructorTestNonVirtualClass
13508
+ # 1753| Type = [VoidType] void
13509
+ # 1753| ValueCategory = prvalue
13510
+ # 1753| getArgument(0): [VariableAccess] x
13511
+ # 1753| Type = [LValueReferenceType] const CopyConstructorTestNonVirtualClass &
13512
+ # 1753| ValueCategory = prvalue(load)
13513
+ # 1753| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to)
13514
+ # 1753| Type = [LValueReferenceType] const CopyConstructorTestNonVirtualClass &
13515
+ # 1753| ValueCategory = prvalue
13516
+ # 1753| getExpr(): [ReferenceDereferenceExpr] (reference dereference)
13517
+ # 1753| Type = [SpecifiedType] const CopyConstructorTestNonVirtualClass
13518
+ # 1753| ValueCategory = lvalue
13519
+ # 1754| getStmt(1): [DeclStmt] declaration
13520
+ # 1754| getDeclarationEntry(0): [VariableDeclarationEntry] definition of cy
13521
+ # 1754| Type = [Class] CopyConstructorTestVirtualClass
13522
+ # 1754| getVariable().getInitializer(): [Initializer] initializer for cy
13523
+ # 1754| getExpr(): [ConstructorCall] call to CopyConstructorTestVirtualClass
13524
+ # 1754| Type = [VoidType] void
13525
+ # 1754| ValueCategory = prvalue
13526
+ # 1754| getArgument(0): [VariableAccess] y
13527
+ # 1754| Type = [LValueReferenceType] const CopyConstructorTestVirtualClass &
13528
+ # 1754| ValueCategory = prvalue(load)
13529
+ # 1754| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to)
13530
+ # 1754| Type = [LValueReferenceType] const CopyConstructorTestVirtualClass &
13531
+ # 1754| ValueCategory = prvalue
13532
+ # 1754| getExpr(): [ReferenceDereferenceExpr] (reference dereference)
13533
+ # 1754| Type = [SpecifiedType] const CopyConstructorTestVirtualClass
13534
+ # 1754| ValueCategory = lvalue
13535
+ # 1755| getStmt(2): [ReturnStmt] return ...
13368
13536
perf-regression.cpp:
13369
13537
# 4| [CopyAssignmentOperator] Big& Big::operator=(Big const&)
13370
13538
# 4| <params>:
0 commit comments