Как получить информацию о вызове деструкторам в Clang LibTooling? - PullRequest
1 голос
/ 06 января 2020

В C ++ компилятор должен неявно вставлять вызовы деструкторов в таких местах, как удаление ключевого слова / конец области видимости и т. Д. c. В C ++ вызов деструкторов должен быть исправлен во время компиляции (хотя вызываемый может быть решен во время выполнения с помощью vtables). (Правильно ли это выше?)

Но в дампе Clang AST при использовании Clang LibTooling нет таких неявных вызовов деструкторов в AST. Для сравнения, в AST неявно генерируются конструктор по умолчанию и узел деструктора, даже если они не присутствуют в отсканированном исходном коде.

Для ключевого слова delete в AST есть узел CXXDeleteExpr, но он не ' t содержит CXXDestructorDecl деструкторов, содержит только тип удаляемого объекта.

Для вызова другого типа для деструкторов нет никаких узлов в AST вообще.

Тогда в Clang LibTooling, как получить информацию о том, в каких местах называются деструкторы?

...