Clang的AST解析器将未知类型名称视为int

时间:2015-07-08 08:41:09

标签: c++ c parsing clang

我尝试使用clang的ParseAST()和ASTConsumer来提取源文件中的所有c函数声明,然后将这些函数声明输出到另一个文件中。

除非存在某种未知类型名称,否则一切都很好。例如,

my_type foo(int x) { /*...*/ }    // "my_type" is just a type identifier whose definition is missed in this translation unit.

当我在RecursiveASTVisitor :: VisitFunctionDecl()中使用getReturnType()时,它将返回“int”类型。所以我的程序将输出

int foo(int x);

而不是

my_type foo(int x);

我很好奇为什么"my_type"将被解析为int类型。 解析此源代码时,clang将报告错误说明错误:

  

未知类型名称'my_type'

。所以我认为clang知道它是一种类型(未知类型也是我认为的类型)。

0 个答案:

没有答案