diff --git a/cpp/ql/test/library-tests/access/FieldAccess/FieldAccess.cpp b/cpp/ql/test/library-tests/access/FieldAccess/FieldAccess.cpp index 1a25acf6847..8afad9d11db 100644 --- a/cpp/ql/test/library-tests/access/FieldAccess/FieldAccess.cpp +++ b/cpp/ql/test/library-tests/access/FieldAccess/FieldAccess.cpp @@ -96,3 +96,22 @@ public: int x, y; }; + +class MyHasDestructor1 { +public: + ~MyHasDestructor1() { + // ... + } +}; + +class MyHasDestructor2 { +public: + int x; + MyHasDestructor1 v; + + ~MyHasDestructor2() { + x++; // PointerFieldAccess, the `this->` is generated rather than implicit. + + // ImplicitThisFieldAccess on call `v`s destructor. + } +}; diff --git a/cpp/ql/test/library-tests/access/FieldAccess/FieldAccess.expected b/cpp/ql/test/library-tests/access/FieldAccess/FieldAccess.expected index 201f07ef995..18e12fe46f6 100644 --- a/cpp/ql/test/library-tests/access/FieldAccess/FieldAccess.expected +++ b/cpp/ql/test/library-tests/access/FieldAccess/FieldAccess.expected @@ -24,3 +24,5 @@ | FieldAccess.cpp:93:18:93:18 | y | ptr | | FieldAccess.cpp:94:11:94:11 | y | ptr | | FieldAccess.cpp:94:20:94:20 | y | val | +| FieldAccess.cpp:113:5:113:5 | x | ptr | +| FieldAccess.cpp:116:3:116:3 | v | this |