В C ++ компилятор должен неявно вставлять вызовы деструкторов в таких местах, как удаление ключевого слова / конец области видимости и т. Д. c. В C ++ вызов деструкторов должен быть исправлен во время компиляции (хотя вызываемый может быть решен во время выполнения с помощью vtables). (Правильно ли это выше?)
Но в дампе Clang AST при использовании Clang LibTooling нет таких неявных вызовов деструкторов в AST. Для сравнения, в AST неявно генерируются конструктор по умолчанию и узел деструктора, даже если они не присутствуют в отсканированном исходном коде.
Для ключевого слова delete в AST есть узел CXXDeleteExpr, но он не ' t содержит CXXDestructorDecl деструкторов, содержит только тип удаляемого объекта.
Для вызова другого типа для деструкторов нет никаких узлов в AST вообще.
Тогда в Clang LibTooling, как получить информацию о том, в каких местах называются деструкторы?