如何在 clang AST 中获取无效/未解析类型的实际名称

How to get actual name of invalid/unresolved type in clang AST

提问人:Hemant 提问时间:12/31/2016 更新时间:12/31/2016 访问量:423

问:

请考虑以下代码

int function()
{
  unknownType variable;
}

在上面的代码片段中,“unknownType”在编译时没有被解析,所以clang会在AST中将默认类型作为int,并将声明标记为无效。

现在的问题是,在遍历 AST 时,如何获取名称“unknownType”。 使用现有 API 获取类型名称将给出 int,并且其源范围也无效。

有人遇到过这样的问题吗?请帮忙?

谢谢 赫曼特

C++ 解析 抽象语法树 llvm-clang libtooling

评论

0赞 maddouri 11/21/2018
您是否设法找到了解决方案或解决方法?
1赞 Hemant 11/30/2018
是的,使用词法分析器 API。我在该位置获取了原始代码,并提取了标识符之前的文本。此解决方法在大多数情况下都有效。但并不优雅。
0赞 Scott McPeak 7/23/2023
找到解决方案后,我建议将其作为答案发布,以便将问题从未回答的问题列表中删除(它有 7 个赞成票,所以显然其他人很感兴趣)。否则,更多地了解为什么要获取名称“unknownType”会有所帮助,因为根据目的的不同,获取它的潜在方法可能会更好或更差。

答: 暂无答案