Skip to content

Commit 06dbb4e

Browse files
authored
Merge pull request #15937 from jketema/destructors14
C++: Handle destructors of temporaries with extended lifetimes
2 parents f025430 + fd49871 commit 06dbb4e

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

cpp/ql/test/library-tests/ir/ir/PrintAST.expected

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1883,6 +1883,12 @@ destructors_for_temps.cpp:
18831883
# 30| Type = [Class] ClassWithDestructor2
18841884
# 30| ValueCategory = lvalue
18851885
# 31| getStmt(1): [ReturnStmt] return ...
1886+
# 31| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor2
1887+
# 31| Type = [VoidType] void
1888+
# 31| ValueCategory = prvalue
1889+
# 31| getQualifier(): [ReuseExpr] reuse of temporary object
1890+
# 31| Type = [Class] ClassWithDestructor2
1891+
# 31| ValueCategory = xvalue
18861892
# 33| [TopLevelFunction] void temp_test4()
18871893
# 33| <params>:
18881894
# 33| getEntryPoint(): [BlockStmt] { ... }
@@ -1914,6 +1920,12 @@ destructors_for_temps.cpp:
19141920
# 36| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor2
19151921
# 36| Type = [VoidType] void
19161922
# 36| ValueCategory = prvalue
1923+
# 36| getQualifier(): [ReuseExpr] reuse of temporary object
1924+
# 36| Type = [Class] ClassWithDestructor2
1925+
# 36| ValueCategory = xvalue
1926+
# 36| getImplicitDestructorCall(1): [DestructorCall] call to ~ClassWithDestructor2
1927+
# 36| Type = [VoidType] void
1928+
# 36| ValueCategory = prvalue
19171929
# 36| getQualifier(): [VariableAccess] c
19181930
# 36| Type = [Class] ClassWithDestructor2
19191931
# 36| ValueCategory = lvalue
@@ -11743,6 +11755,12 @@ ir.cpp:
1174311755
# 1426| getImplicitDestructorCall(0): [DestructorCall] call to ~String
1174411756
# 1426| Type = [VoidType] void
1174511757
# 1426| ValueCategory = prvalue
11758+
# 1426| getQualifier(): [ReuseExpr] reuse of temporary object
11759+
# 1426| Type = [Struct] String
11760+
# 1426| ValueCategory = xvalue
11761+
# 1426| getImplicitDestructorCall(1): [DestructorCall] call to ~String
11762+
# 1426| Type = [VoidType] void
11763+
# 1426| ValueCategory = prvalue
1174611764
# 1426| getQualifier(): [VariableAccess] s
1174711765
# 1426| Type = [Struct] String
1174811766
# 1426| ValueCategory = lvalue
@@ -11838,6 +11856,12 @@ ir.cpp:
1183811856
# 1438| getImplicitDestructorCall(1): [DestructorCall] call to ~destructor_only
1183911857
# 1438| Type = [VoidType] void
1184011858
# 1438| ValueCategory = prvalue
11859+
# 1438| getQualifier(): [ReuseExpr] reuse of temporary object
11860+
# 1438| Type = [Class] destructor_only
11861+
# 1438| ValueCategory = xvalue
11862+
# 1438| getImplicitDestructorCall(2): [DestructorCall] call to ~destructor_only
11863+
# 1438| Type = [VoidType] void
11864+
# 1438| ValueCategory = prvalue
1184111865
# 1438| getQualifier(): [VariableAccess] d
1184211866
# 1438| Type = [Class] destructor_only
1184311867
# 1438| ValueCategory = lvalue

0 commit comments

Comments
 (0)