@@ -4048,6 +4048,27 @@ ir.cpp:
4048
4048
#-----| Type = [RValueReferenceType] C &&
4049
4049
# 628| [Destructor] void C::~C()
4050
4050
# 628| params:
4051
+ #-----| body: [Block] { ... }
4052
+ #-----| 0: [ReturnStmt] return ...
4053
+ # 628| destructions:
4054
+ # 628| 0: [DestructorFieldDestruction] destructor field destruction of m_f
4055
+ # 628| Type = [Struct] String
4056
+ # 628| ValueCategory = prvalue
4057
+ # 628| 0: [DestructorCall] call to ~String
4058
+ # 628| Type = [VoidType] void
4059
+ # 628| ValueCategory = prvalue
4060
+ # 628| -1: [ImplicitThisFieldAccess] m_f
4061
+ # 628| Type = [Struct] String
4062
+ # 628| ValueCategory = lvalue
4063
+ # 628| 1: [DestructorFieldDestruction] destructor field destruction of m_b
4064
+ # 628| Type = [Struct] String
4065
+ # 628| ValueCategory = prvalue
4066
+ # 628| 0: [DestructorCall] call to ~String
4067
+ # 628| Type = [VoidType] void
4068
+ # 628| ValueCategory = prvalue
4069
+ # 628| -1: [ImplicitThisFieldAccess] m_b
4070
+ # 628| Type = [Struct] String
4071
+ # 628| ValueCategory = lvalue
4051
4072
# 630| [MemberFunction] int C::StaticMemberFunction(int)
4052
4073
# 630| params:
4053
4074
# 630| 0: [Parameter] x
@@ -8545,6 +8566,190 @@ ir.cpp:
8545
8566
# 1255| Type = [CharPointerType] char *
8546
8567
# 1255| ValueCategory = prvalue(load)
8547
8568
# 1256| 3: [ReturnStmt] return ...
8569
+ # 1258| [CopyAssignmentOperator] A& A::operator=(A const&)
8570
+ # 1258| params:
8571
+ #-----| 0: [Parameter] p#0
8572
+ #-----| Type = [LValueReferenceType] const A &
8573
+ # 1258| [MoveAssignmentOperator] A& A::operator=(A&&)
8574
+ # 1258| params:
8575
+ #-----| 0: [Parameter] p#0
8576
+ #-----| Type = [RValueReferenceType] A &&
8577
+ # 1261| [MemberFunction] void A::static_member(A*, int)
8578
+ # 1261| params:
8579
+ # 1261| 0: [Parameter] a
8580
+ # 1261| Type = [PointerType] A *
8581
+ # 1261| 1: [Parameter] x
8582
+ # 1261| Type = [IntType] int
8583
+ # 1261| body: [Block] { ... }
8584
+ # 1262| 0: [ExprStmt] ExprStmt
8585
+ # 1262| 0: [AssignExpr] ... = ...
8586
+ # 1262| Type = [IntType] int
8587
+ # 1262| ValueCategory = lvalue
8588
+ # 1262| 0: [PointerFieldAccess] member
8589
+ # 1262| Type = [IntType] int
8590
+ # 1262| ValueCategory = lvalue
8591
+ # 1262| -1: [VariableAccess] a
8592
+ # 1262| Type = [PointerType] A *
8593
+ # 1262| ValueCategory = prvalue(load)
8594
+ # 1262| 1: [VariableAccess] x
8595
+ # 1262| Type = [IntType] int
8596
+ # 1262| ValueCategory = prvalue(load)
8597
+ # 1263| 1: [ReturnStmt] return ...
8598
+ # 1265| [MemberFunction] void A::static_member_without_def()
8599
+ # 1265| params:
8600
+ # 1268| [TopLevelFunction] A* getAnInstanceOfA()
8601
+ # 1268| params:
8602
+ # 1270| [TopLevelFunction] void test_static_member_functions(int, A*)
8603
+ # 1270| params:
8604
+ # 1270| 0: [Parameter] int_arg
8605
+ # 1270| Type = [IntType] int
8606
+ # 1270| 1: [Parameter] a_arg
8607
+ # 1270| Type = [PointerType] A *
8608
+ # 1270| body: [Block] { ... }
8609
+ # 1271| 0: [DeclStmt] declaration
8610
+ # 1271| 0: [VariableDeclarationEntry] definition of c
8611
+ # 1271| Type = [Class] C
8612
+ # 1271| init: [Initializer] initializer for c
8613
+ # 1271| expr: [ConstructorCall] call to C
8614
+ # 1271| Type = [VoidType] void
8615
+ # 1271| ValueCategory = prvalue
8616
+ # 1272| 1: [ExprStmt] ExprStmt
8617
+ # 1272| 0: [FunctionCall] call to StaticMemberFunction
8618
+ # 1272| Type = [IntType] int
8619
+ # 1272| ValueCategory = prvalue
8620
+ # 1272| -1: [VariableAccess] c
8621
+ # 1272| Type = [Class] C
8622
+ # 1272| ValueCategory = lvalue
8623
+ # 1272| 0: [Literal] 10
8624
+ # 1272| Type = [IntType] int
8625
+ # 1272| Value = [Literal] 10
8626
+ # 1272| ValueCategory = prvalue
8627
+ # 1273| 2: [ExprStmt] ExprStmt
8628
+ # 1273| 0: [FunctionCall] call to StaticMemberFunction
8629
+ # 1273| Type = [IntType] int
8630
+ # 1273| ValueCategory = prvalue
8631
+ # 1273| 0: [Literal] 10
8632
+ # 1273| Type = [IntType] int
8633
+ # 1273| Value = [Literal] 10
8634
+ # 1273| ValueCategory = prvalue
8635
+ # 1275| 3: [DeclStmt] declaration
8636
+ # 1275| 0: [VariableDeclarationEntry] definition of a
8637
+ # 1275| Type = [Struct] A
8638
+ # 1276| 4: [ExprStmt] ExprStmt
8639
+ # 1276| 0: [FunctionCall] call to static_member
8640
+ # 1276| Type = [VoidType] void
8641
+ # 1276| ValueCategory = prvalue
8642
+ # 1276| -1: [VariableAccess] a
8643
+ # 1276| Type = [Struct] A
8644
+ # 1276| ValueCategory = lvalue
8645
+ # 1276| 0: [AddressOfExpr] & ...
8646
+ # 1276| Type = [PointerType] A *
8647
+ # 1276| ValueCategory = prvalue
8648
+ # 1276| 0: [VariableAccess] a
8649
+ # 1276| Type = [Struct] A
8650
+ # 1276| ValueCategory = lvalue
8651
+ # 1276| 1: [VariableAccess] int_arg
8652
+ # 1276| Type = [IntType] int
8653
+ # 1276| ValueCategory = prvalue(load)
8654
+ # 1277| 5: [ExprStmt] ExprStmt
8655
+ # 1277| 0: [FunctionCall] call to static_member
8656
+ # 1277| Type = [VoidType] void
8657
+ # 1277| ValueCategory = prvalue
8658
+ # 1277| 0: [AddressOfExpr] & ...
8659
+ # 1277| Type = [PointerType] A *
8660
+ # 1277| ValueCategory = prvalue
8661
+ # 1277| 0: [VariableAccess] a
8662
+ # 1277| Type = [Struct] A
8663
+ # 1277| ValueCategory = lvalue
8664
+ # 1277| 1: [VariableAccess] int_arg
8665
+ # 1277| Type = [IntType] int
8666
+ # 1277| ValueCategory = prvalue(load)
8667
+ # 1279| 6: [ExprStmt] ExprStmt
8668
+ # 1279| 0: [FunctionCall] call to static_member
8669
+ # 1279| Type = [VoidType] void
8670
+ # 1279| ValueCategory = prvalue
8671
+ # 1279| -1: [ParenthesisExpr] (...)
8672
+ # 1279| Type = [PointerType] A *
8673
+ # 1279| ValueCategory = prvalue
8674
+ # 1279| expr: [AddressOfExpr] & ...
8675
+ # 1279| Type = [PointerType] A *
8676
+ # 1279| ValueCategory = prvalue
8677
+ # 1279| 0: [VariableAccess] a
8678
+ # 1279| Type = [Struct] A
8679
+ # 1279| ValueCategory = lvalue
8680
+ # 1279| 0: [VariableAccess] a_arg
8681
+ # 1279| Type = [PointerType] A *
8682
+ # 1279| ValueCategory = prvalue(load)
8683
+ # 1279| 1: [AddExpr] ... + ...
8684
+ # 1279| Type = [IntType] int
8685
+ # 1279| ValueCategory = prvalue
8686
+ # 1279| 0: [VariableAccess] int_arg
8687
+ # 1279| Type = [IntType] int
8688
+ # 1279| ValueCategory = prvalue(load)
8689
+ # 1279| 1: [Literal] 2
8690
+ # 1279| Type = [IntType] int
8691
+ # 1279| Value = [Literal] 2
8692
+ # 1279| ValueCategory = prvalue
8693
+ # 1280| 7: [ExprStmt] ExprStmt
8694
+ # 1280| 0: [FunctionCall] call to static_member
8695
+ # 1280| Type = [VoidType] void
8696
+ # 1280| ValueCategory = prvalue
8697
+ # 1280| -1: [ParenthesisExpr] (...)
8698
+ # 1280| Type = [Struct] A
8699
+ # 1280| ValueCategory = lvalue
8700
+ # 1280| expr: [PointerDereferenceExpr] * ...
8701
+ # 1280| Type = [Struct] A
8702
+ # 1280| ValueCategory = lvalue
8703
+ # 1280| 0: [VariableAccess] a_arg
8704
+ # 1280| Type = [PointerType] A *
8705
+ # 1280| ValueCategory = prvalue(load)
8706
+ # 1280| 0: [AddressOfExpr] & ...
8707
+ # 1280| Type = [PointerType] A *
8708
+ # 1280| ValueCategory = prvalue
8709
+ # 1280| 0: [VariableAccess] a
8710
+ # 1280| Type = [Struct] A
8711
+ # 1280| ValueCategory = lvalue
8712
+ # 1280| 1: [Literal] 99
8713
+ # 1280| Type = [IntType] int
8714
+ # 1280| Value = [Literal] 99
8715
+ # 1280| ValueCategory = prvalue
8716
+ # 1281| 8: [ExprStmt] ExprStmt
8717
+ # 1281| 0: [FunctionCall] call to static_member
8718
+ # 1281| Type = [VoidType] void
8719
+ # 1281| ValueCategory = prvalue
8720
+ # 1281| -1: [VariableAccess] a_arg
8721
+ # 1281| Type = [PointerType] A *
8722
+ # 1281| ValueCategory = prvalue(load)
8723
+ # 1281| 0: [VariableAccess] a_arg
8724
+ # 1281| Type = [PointerType] A *
8725
+ # 1281| ValueCategory = prvalue(load)
8726
+ # 1281| 1: [UnaryMinusExpr] - ...
8727
+ # 1281| Type = [IntType] int
8728
+ # 1281| Value = [UnaryMinusExpr] -1
8729
+ # 1281| ValueCategory = prvalue
8730
+ # 1281| 0: [Literal] 1
8731
+ # 1281| Type = [IntType] int
8732
+ # 1281| Value = [Literal] 1
8733
+ # 1281| ValueCategory = prvalue
8734
+ # 1283| 9: [ExprStmt] ExprStmt
8735
+ # 1283| 0: [FunctionCall] call to static_member_without_def
8736
+ # 1283| Type = [VoidType] void
8737
+ # 1283| ValueCategory = prvalue
8738
+ # 1283| -1: [VariableAccess] a
8739
+ # 1283| Type = [Struct] A
8740
+ # 1283| ValueCategory = lvalue
8741
+ # 1284| 10: [ExprStmt] ExprStmt
8742
+ # 1284| 0: [FunctionCall] call to static_member_without_def
8743
+ # 1284| Type = [VoidType] void
8744
+ # 1284| ValueCategory = prvalue
8745
+ # 1286| 11: [ExprStmt] ExprStmt
8746
+ # 1286| 0: [FunctionCall] call to static_member_without_def
8747
+ # 1286| Type = [VoidType] void
8748
+ # 1286| ValueCategory = prvalue
8749
+ # 1286| -1: [FunctionCall] call to getAnInstanceOfA
8750
+ # 1286| Type = [PointerType] A *
8751
+ # 1286| ValueCategory = prvalue
8752
+ # 1287| 12: [ReturnStmt] return ...
8548
8753
perf-regression.cpp:
8549
8754
# 4| [CopyAssignmentOperator] Big& Big::operator=(Big const&)
8550
8755
# 4| params:
0 commit comments