Clang AST转储不显示#defines

时间:2015-04-12 23:20:20

标签: clang llvm abstract-syntax-tree llvm-clang

我正在倾销像这样的一些标题的AST:

clang -cc1 -ast-dump -fblocks header.h

但是,标头上的任何#define都没有显示在转储上。有没有办法添加它们?

1 个答案:

答案 0 :(得分:2)

确实如此,#define由预处理器而不是编译器处理。所以你需要一个预处理器解析器阶段。我知道两个:

  1. Boost Wave可以为您预处理输入,和/或为您提供挂钩以触发宏定义或使用。

  2. Clang工具pp-trace使用一个Clang库,可以对许多预处理器事件进行回调,包括宏定义。