标签: clang llvm-clang libtool libtooling
我正在建立一个clang libtool, 我如何获得预处理器信息,告诉我一个给定的Decl是否在#if #ifdef #ifndef范围内?
答案 0 :(得分:2)
不幸的是,这并不是一个简单的答案。 Clang并不完全了解任何预处理器指令的AST级别。
据我所知,您可以做的最好的事情是实现一个PPCallbacks类,将其注册到编译器实例预处理器并实现If,Elif,Endif的函数。
然后您可以使用ASTVisitor查找这些源位置之间的所有内容。