我正在编写一个基于 LibTooling 和 RecursiveASTVistor 的独立工具,我不想查看存储在源代码中的头文件的内容。我需要更改编译数据库吗?我一直在使用这个小技巧来防止我的工具崩溃,但我不希望我的工具分析我正在处理的源代码中包含的任何头文件。
bool VisitDecl(Decl *D) {
FullSourceLoc FullLocation = Context->getFullLoc(D->getLocStart());
const auto &SourceManager = Context->getSourceManager();
if (FullLocation.isValid() && !SourceManager.isInSystemHeader(FullLocation) && Context->getSourceManager().isInMainFile(D->getLocation()))
}