@@ -16754,12 +16754,12 @@ ir.cpp:
16754
16754
# 2159| Value = [CStyleCast] 98
16755
16755
# 2159| ValueCategory = prvalue
16756
16756
# 2160| getThen(): [ReturnStmt] return ...
16757
- # 2167 | getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor
16758
- # 2167 | Type = [VoidType] void
16759
- # 2167 | ValueCategory = prvalue
16760
- # 2167 | getQualifier(): [VariableAccess] x
16761
- # 2167 | Type = [Class] ClassWithDestructor
16762
- # 2167 | ValueCategory = lvalue
16757
+ # 2172 | getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor
16758
+ # 2172 | Type = [VoidType] void
16759
+ # 2172 | ValueCategory = prvalue
16760
+ # 2172 | getQualifier(): [VariableAccess] x
16761
+ # 2172 | Type = [Class] ClassWithDestructor
16762
+ # 2172 | ValueCategory = lvalue
16763
16763
# 2157| getUpdate().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference)
16764
16764
# 2157| Type = [NestedStruct] iterator
16765
16765
# 2157| ValueCategory = lvalue
@@ -16867,112 +16867,235 @@ ir.cpp:
16867
16867
# 2164| Value = [Literal] 1
16868
16868
# 2164| ValueCategory = prvalue
16869
16869
# 2165| getThen(): [ReturnStmt] return ...
16870
- # 2167 | getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor
16871
- # 2167 | Type = [VoidType] void
16872
- # 2167 | ValueCategory = prvalue
16873
- # 2167 | getQualifier(): [VariableAccess] x
16874
- # 2167 | Type = [Class] ClassWithDestructor
16875
- # 2167 | ValueCategory = lvalue
16870
+ # 2172 | getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor
16871
+ # 2172 | Type = [VoidType] void
16872
+ # 2172 | ValueCategory = prvalue
16873
+ # 2172 | getQualifier(): [VariableAccess] x
16874
+ # 2172 | Type = [Class] ClassWithDestructor
16875
+ # 2172 | ValueCategory = lvalue
16876
16876
# 2163| getUpdate().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference)
16877
16877
# 2163| Type = [NestedStruct] iterator
16878
16878
# 2163| ValueCategory = lvalue
16879
- # 2167| getStmt(8): [ReturnStmt] return ...
16880
- # 2167| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor
16881
- # 2167| Type = [VoidType] void
16882
- # 2167| ValueCategory = prvalue
16883
- # 2167| getQualifier(): [VariableAccess] x
16884
- # 2167| Type = [Class] ClassWithDestructor
16885
- # 2167| ValueCategory = lvalue
16886
- # 2169| [TopLevelFunction] void static_variable_with_destructor_1()
16887
- # 2169| <params>:
16888
- # 2169| getEntryPoint(): [BlockStmt] { ... }
16889
- # 2170| getStmt(0): [DeclStmt] declaration
16890
- # 2170| getDeclarationEntry(0): [VariableDeclarationEntry] definition of a
16891
- # 2170| Type = [Class] ClassWithDestructor
16892
- # 2170| getVariable().getInitializer(): [Initializer] initializer for a
16893
- # 2170| getExpr(): [ConstructorCall] call to ClassWithDestructor
16894
- # 2170| Type = [VoidType] void
16895
- # 2170| ValueCategory = prvalue
16896
- # 2171| getStmt(1): [DeclStmt] declaration
16897
- # 2171| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b
16898
- # 2171| Type = [Class] ClassWithDestructor
16899
- #-----| getVariable().getInitializer(): [Initializer] initializer for b
16900
- #-----| getExpr(): [ConstructorCall] call to ClassWithDestructor
16901
- #-----| Type = [VoidType] void
16902
- #-----| ValueCategory = prvalue
16903
- # 2172| getStmt(2): [ReturnStmt] return ...
16879
+ # 2168| getStmt(8): [RangeBasedForStmt] for(...:...) ...
16880
+ # 2168| getInitialization(): [DeclStmt] declaration
16881
+ # 2168| getDeclarationEntry(0): [VariableDeclarationEntry] definition of ys
16882
+ # 2168| Type = [ClassTemplateInstantiation,Struct] vector<ClassWithDestructor>
16883
+ # 2168| getVariable().getInitializer(): [Initializer] initializer for ys
16884
+ # 2168| getExpr(): [ConstructorCall] call to vector
16885
+ # 2168| Type = [VoidType] void
16886
+ # 2168| ValueCategory = prvalue
16887
+ # 2168| getArgument(0): [VariableAccess] x
16888
+ # 2168| Type = [Class] ClassWithDestructor
16889
+ # 2168| ValueCategory = prvalue(load)
16890
+ # 2168| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object
16891
+ # 2168| Type = [Class] ClassWithDestructor
16892
+ # 2168| ValueCategory = lvalue
16893
+ # 2168| getChild(1): [DeclStmt] declaration
16894
+ # 2168| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of (__range)
16895
+ # 2168| Type = [LValueReferenceType] vector<ClassWithDestructor> &
16896
+ #-----| getVariable().getInitializer(): [Initializer] initializer for (__range)
16897
+ # 2168| getExpr(): [VariableAccess] ys
16898
+ # 2168| Type = [ClassTemplateInstantiation,Struct] vector<ClassWithDestructor>
16899
+ # 2168| ValueCategory = lvalue
16900
+ # 2168| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to)
16901
+ # 2168| Type = [LValueReferenceType] vector<ClassWithDestructor> &
16902
+ # 2168| ValueCategory = prvalue
16903
+ # 2168| getBeginEndDeclaration(): [DeclStmt] declaration
16904
+ # 2168| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of (__begin)
16905
+ # 2168| Type = [NestedStruct] iterator
16906
+ #-----| getVariable().getInitializer(): [Initializer] initializer for (__begin)
16907
+ # 2168| getExpr(): [FunctionCall] call to begin
16908
+ # 2168| Type = [NestedStruct] iterator
16909
+ # 2168| ValueCategory = prvalue
16910
+ # 2168| getQualifier(): [VariableAccess] (__range)
16911
+ # 2168| Type = [LValueReferenceType] vector<ClassWithDestructor> &
16912
+ # 2168| ValueCategory = prvalue(load)
16913
+ #-----| getQualifier().getFullyConverted(): [CStyleCast] (const vector<ClassWithDestructor>)...
16914
+ #-----| Conversion = [GlvalueConversion] glvalue conversion
16915
+ #-----| Type = [SpecifiedType] const vector<ClassWithDestructor>
16916
+ #-----| ValueCategory = lvalue
16917
+ #-----| getExpr(): [ReferenceDereferenceExpr] (reference dereference)
16918
+ #-----| Type = [ClassTemplateInstantiation,Struct] vector<ClassWithDestructor>
16919
+ #-----| ValueCategory = lvalue
16920
+ # 2168| getDeclarationEntry(1): [VariableDeclarationEntry] declaration of (__end)
16921
+ # 2168| Type = [NestedStruct] iterator
16922
+ #-----| getVariable().getInitializer(): [Initializer] initializer for (__end)
16923
+ # 2168| getExpr(): [FunctionCall] call to end
16924
+ # 2168| Type = [NestedStruct] iterator
16925
+ # 2168| ValueCategory = prvalue
16926
+ # 2168| getQualifier(): [VariableAccess] (__range)
16927
+ # 2168| Type = [LValueReferenceType] vector<ClassWithDestructor> &
16928
+ # 2168| ValueCategory = prvalue(load)
16929
+ #-----| getQualifier().getFullyConverted(): [CStyleCast] (const vector<ClassWithDestructor>)...
16930
+ #-----| Conversion = [GlvalueConversion] glvalue conversion
16931
+ #-----| Type = [SpecifiedType] const vector<ClassWithDestructor>
16932
+ #-----| ValueCategory = lvalue
16933
+ #-----| getExpr(): [ReferenceDereferenceExpr] (reference dereference)
16934
+ #-----| Type = [ClassTemplateInstantiation,Struct] vector<ClassWithDestructor>
16935
+ #-----| ValueCategory = lvalue
16936
+ # 2168| getCondition(): [FunctionCall] call to operator!=
16937
+ # 2168| Type = [BoolType] bool
16938
+ # 2168| ValueCategory = prvalue
16939
+ # 2168| getQualifier(): [VariableAccess] (__begin)
16940
+ # 2168| Type = [NestedStruct] iterator
16941
+ # 2168| ValueCategory = lvalue
16942
+ # 2168| getArgument(0): [VariableAccess] (__end)
16943
+ # 2168| Type = [NestedStruct] iterator
16944
+ # 2168| ValueCategory = prvalue(load)
16945
+ #-----| getQualifier().getFullyConverted(): [CStyleCast] (const iterator)...
16946
+ #-----| Conversion = [GlvalueConversion] glvalue conversion
16947
+ #-----| Type = [SpecifiedType] const iterator
16948
+ #-----| ValueCategory = lvalue
16949
+ # 2168| getUpdate(): [FunctionCall] call to operator++
16950
+ # 2168| Type = [LValueReferenceType] iterator &
16951
+ # 2168| ValueCategory = prvalue
16952
+ # 2168| getQualifier(): [VariableAccess] (__begin)
16953
+ # 2168| Type = [NestedStruct] iterator
16954
+ # 2168| ValueCategory = lvalue
16955
+ # 2168| getChild(5): [DeclStmt] declaration
16956
+ # 2168| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y
16957
+ # 2168| Type = [Class] ClassWithDestructor
16958
+ # 2168| getVariable().getInitializer(): [Initializer] initializer for y
16959
+ # 2168| getExpr(): [OverloadedPointerDereferenceExpr] call to operator*
16960
+ # 2168| Type = [LValueReferenceType] ClassWithDestructor &
16961
+ # 2168| ValueCategory = prvalue
16962
+ # 2168| getQualifier(): [VariableAccess] (__begin)
16963
+ # 2168| Type = [NestedStruct] iterator
16964
+ # 2168| ValueCategory = lvalue
16965
+ #-----| getQualifier().getFullyConverted(): [CStyleCast] (const iterator)...
16966
+ #-----| Conversion = [GlvalueConversion] glvalue conversion
16967
+ #-----| Type = [SpecifiedType] const iterator
16968
+ #-----| ValueCategory = lvalue
16969
+ # 2168| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference)
16970
+ # 2168| Type = [Class] ClassWithDestructor
16971
+ # 2168| ValueCategory = prvalue(load)
16972
+ # 2168| getStmt(): [BlockStmt] { ... }
16973
+ # 2169| getStmt(0): [DeclStmt] declaration
16974
+ # 2169| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z1
16975
+ # 2169| Type = [Class] ClassWithDestructor
16976
+ # 2169| getVariable().getInitializer(): [Initializer] initializer for z1
16977
+ # 2169| getExpr(): [ConstructorCall] call to ClassWithDestructor
16978
+ # 2169| Type = [VoidType] void
16979
+ # 2169| ValueCategory = prvalue
16980
+ # 2170| getStmt(1): [DeclStmt] declaration
16981
+ # 2170| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z2
16982
+ # 2170| Type = [Class] ClassWithDestructor
16983
+ # 2170| getVariable().getInitializer(): [Initializer] initializer for z2
16984
+ # 2170| getExpr(): [ConstructorCall] call to ClassWithDestructor
16985
+ # 2170| Type = [VoidType] void
16986
+ # 2170| ValueCategory = prvalue
16987
+ # 2171| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor
16988
+ # 2171| Type = [VoidType] void
16989
+ # 2171| ValueCategory = prvalue
16990
+ # 2171| getQualifier(): [VariableAccess] z2
16991
+ # 2171| Type = [Class] ClassWithDestructor
16992
+ # 2171| ValueCategory = lvalue
16993
+ # 2171| getImplicitDestructorCall(1): [DestructorCall] call to ~ClassWithDestructor
16994
+ # 2171| Type = [VoidType] void
16995
+ # 2171| ValueCategory = prvalue
16996
+ # 2171| getQualifier(): [VariableAccess] z1
16997
+ # 2171| Type = [Class] ClassWithDestructor
16998
+ # 2171| ValueCategory = lvalue
16999
+ # 2168| getUpdate().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference)
17000
+ # 2168| Type = [NestedStruct] iterator
17001
+ # 2168| ValueCategory = lvalue
17002
+ # 2172| getStmt(9): [ReturnStmt] return ...
16904
17003
# 2172| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor
16905
17004
# 2172| Type = [VoidType] void
16906
17005
# 2172| ValueCategory = prvalue
16907
- # 2172| getQualifier(): [VariableAccess] a
17006
+ # 2172| getQualifier(): [VariableAccess] x
16908
17007
# 2172| Type = [Class] ClassWithDestructor
16909
17008
# 2172| ValueCategory = lvalue
16910
- # 2174| [TopLevelFunction] void static_variable_with_destructor_2 ()
17009
+ # 2174| [TopLevelFunction] void static_variable_with_destructor_1 ()
16911
17010
# 2174| <params>:
16912
17011
# 2174| getEntryPoint(): [BlockStmt] { ... }
16913
17012
# 2175| getStmt(0): [DeclStmt] declaration
16914
17013
# 2175| getDeclarationEntry(0): [VariableDeclarationEntry] definition of a
16915
17014
# 2175| Type = [Class] ClassWithDestructor
16916
- #----- | getVariable().getInitializer(): [Initializer] initializer for a
16917
- #----- | getExpr(): [ConstructorCall] call to ClassWithDestructor
16918
- #----- | Type = [VoidType] void
16919
- #----- | ValueCategory = prvalue
17015
+ # 2175 | getVariable().getInitializer(): [Initializer] initializer for a
17016
+ # 2175 | getExpr(): [ConstructorCall] call to ClassWithDestructor
17017
+ # 2175 | Type = [VoidType] void
17018
+ # 2175 | ValueCategory = prvalue
16920
17019
# 2176| getStmt(1): [DeclStmt] declaration
16921
17020
# 2176| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b
16922
17021
# 2176| Type = [Class] ClassWithDestructor
16923
- # 2176 | getVariable().getInitializer(): [Initializer] initializer for b
16924
- # 2176 | getExpr(): [ConstructorCall] call to ClassWithDestructor
16925
- # 2176 | Type = [VoidType] void
16926
- # 2176 | ValueCategory = prvalue
17022
+ #----- | getVariable().getInitializer(): [Initializer] initializer for b
17023
+ #----- | getExpr(): [ConstructorCall] call to ClassWithDestructor
17024
+ #----- | Type = [VoidType] void
17025
+ #----- | ValueCategory = prvalue
16927
17026
# 2177| getStmt(2): [ReturnStmt] return ...
16928
17027
# 2177| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor
16929
17028
# 2177| Type = [VoidType] void
16930
17029
# 2177| ValueCategory = prvalue
16931
- # 2177| getQualifier(): [VariableAccess] b
17030
+ # 2177| getQualifier(): [VariableAccess] a
16932
17031
# 2177| Type = [Class] ClassWithDestructor
16933
17032
# 2177| ValueCategory = lvalue
16934
- # 2179| [TopLevelFunction] void static_variable_with_destructor_3 ()
17033
+ # 2179| [TopLevelFunction] void static_variable_with_destructor_2 ()
16935
17034
# 2179| <params>:
16936
17035
# 2179| getEntryPoint(): [BlockStmt] { ... }
16937
17036
# 2180| getStmt(0): [DeclStmt] declaration
16938
17037
# 2180| getDeclarationEntry(0): [VariableDeclarationEntry] definition of a
16939
17038
# 2180| Type = [Class] ClassWithDestructor
16940
- # 2180 | getVariable().getInitializer(): [Initializer] initializer for a
16941
- # 2180 | getExpr(): [ConstructorCall] call to ClassWithDestructor
16942
- # 2180 | Type = [VoidType] void
16943
- # 2180 | ValueCategory = prvalue
17039
+ #----- | getVariable().getInitializer(): [Initializer] initializer for a
17040
+ #----- | getExpr(): [ConstructorCall] call to ClassWithDestructor
17041
+ #----- | Type = [VoidType] void
17042
+ #----- | ValueCategory = prvalue
16944
17043
# 2181| getStmt(1): [DeclStmt] declaration
16945
17044
# 2181| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b
16946
17045
# 2181| Type = [Class] ClassWithDestructor
16947
17046
# 2181| getVariable().getInitializer(): [Initializer] initializer for b
16948
17047
# 2181| getExpr(): [ConstructorCall] call to ClassWithDestructor
16949
17048
# 2181| Type = [VoidType] void
16950
17049
# 2181| ValueCategory = prvalue
16951
- # 2182| getStmt(2): [DeclStmt] declaration
16952
- # 2182| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c
16953
- # 2182| Type = [Class] ClassWithDestructor
17050
+ # 2182| getStmt(2): [ReturnStmt] return ...
17051
+ # 2182| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor
17052
+ # 2182| Type = [VoidType] void
17053
+ # 2182| ValueCategory = prvalue
17054
+ # 2182| getQualifier(): [VariableAccess] b
17055
+ # 2182| Type = [Class] ClassWithDestructor
17056
+ # 2182| ValueCategory = lvalue
17057
+ # 2184| [TopLevelFunction] void static_variable_with_destructor_3()
17058
+ # 2184| <params>:
17059
+ # 2184| getEntryPoint(): [BlockStmt] { ... }
17060
+ # 2185| getStmt(0): [DeclStmt] declaration
17061
+ # 2185| getDeclarationEntry(0): [VariableDeclarationEntry] definition of a
17062
+ # 2185| Type = [Class] ClassWithDestructor
17063
+ # 2185| getVariable().getInitializer(): [Initializer] initializer for a
17064
+ # 2185| getExpr(): [ConstructorCall] call to ClassWithDestructor
17065
+ # 2185| Type = [VoidType] void
17066
+ # 2185| ValueCategory = prvalue
17067
+ # 2186| getStmt(1): [DeclStmt] declaration
17068
+ # 2186| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b
17069
+ # 2186| Type = [Class] ClassWithDestructor
17070
+ # 2186| getVariable().getInitializer(): [Initializer] initializer for b
17071
+ # 2186| getExpr(): [ConstructorCall] call to ClassWithDestructor
17072
+ # 2186| Type = [VoidType] void
17073
+ # 2186| ValueCategory = prvalue
17074
+ # 2187| getStmt(2): [DeclStmt] declaration
17075
+ # 2187| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c
17076
+ # 2187| Type = [Class] ClassWithDestructor
16954
17077
#-----| getVariable().getInitializer(): [Initializer] initializer for c
16955
17078
#-----| getExpr(): [ConstructorCall] call to ClassWithDestructor
16956
17079
#-----| Type = [VoidType] void
16957
17080
#-----| ValueCategory = prvalue
16958
- # 2183 | getStmt(3): [ReturnStmt] return ...
16959
- # 2183 | getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor
16960
- # 2183 | Type = [VoidType] void
16961
- # 2183 | ValueCategory = prvalue
16962
- # 2183 | getQualifier(): [VariableAccess] b
16963
- # 2183 | Type = [Class] ClassWithDestructor
16964
- # 2183 | ValueCategory = lvalue
16965
- # 2183 | getImplicitDestructorCall(1): [DestructorCall] call to ~ClassWithDestructor
16966
- # 2183 | Type = [VoidType] void
16967
- # 2183 | ValueCategory = prvalue
16968
- # 2183 | getQualifier(): [VariableAccess] a
16969
- # 2183 | Type = [Class] ClassWithDestructor
16970
- # 2183 | ValueCategory = lvalue
16971
- # 2185 | [GlobalVariable] ClassWithDestructor global_class_with_destructor
16972
- # 2185 | getInitializer(): [Initializer] initializer for global_class_with_destructor
16973
- # 2185 | getExpr(): [ConstructorCall] call to ClassWithDestructor
16974
- # 2185 | Type = [VoidType] void
16975
- # 2185 | ValueCategory = prvalue
17081
+ # 2188 | getStmt(3): [ReturnStmt] return ...
17082
+ # 2188 | getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor
17083
+ # 2188 | Type = [VoidType] void
17084
+ # 2188 | ValueCategory = prvalue
17085
+ # 2188 | getQualifier(): [VariableAccess] b
17086
+ # 2188 | Type = [Class] ClassWithDestructor
17087
+ # 2188 | ValueCategory = lvalue
17088
+ # 2188 | getImplicitDestructorCall(1): [DestructorCall] call to ~ClassWithDestructor
17089
+ # 2188 | Type = [VoidType] void
17090
+ # 2188 | ValueCategory = prvalue
17091
+ # 2188 | getQualifier(): [VariableAccess] a
17092
+ # 2188 | Type = [Class] ClassWithDestructor
17093
+ # 2188 | ValueCategory = lvalue
17094
+ # 2190 | [GlobalVariable] ClassWithDestructor global_class_with_destructor
17095
+ # 2190 | getInitializer(): [Initializer] initializer for global_class_with_destructor
17096
+ # 2190 | getExpr(): [ConstructorCall] call to ClassWithDestructor
17097
+ # 2190 | Type = [VoidType] void
17098
+ # 2190 | ValueCategory = prvalue
16976
17099
perf-regression.cpp:
16977
17100
# 4| [CopyAssignmentOperator] Big& Big::operator=(Big const&)
16978
17101
# 4| <params>:
0 commit comments