首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在某些输入文件上运行自定义clang前端工具时出现异常。

在某些输入文件上运行自定义clang前端工具时出现异常。
EN

Stack Overflow用户
提问于 2017-02-27 06:50:22
回答 1查看 66关注 0票数 0

我已经根据下面的链接编写了一个定制的clang前端工具。http://clang.llvm.org/docs/RAVFrontendAction.html

现在,我将clang源代码本身提供给我的前端工具进行静态分析。我的工具正在为这个测试用例https://llvm.org/svn/llvm-project/cfe/trunk/test/CXX/expr/expr.const/p2-0x.cpp抛出一个异常。

从这个测试用例的文档中,它是为未定义的行为编写的。在此测试上运行ClangTool时,它甚至在控件进入HandleTranslationUnit之前就会抛出堆栈溢出异常。

因为clang可以为上面的测试用例生成AST,所以我假设在编译过程中可能会出现异常。现在的问题是,我不能继续访问AST节点来获取这些文件,因为我不关心输入源文件的语义。我只对静态分析感兴趣。

这是预期的行为吗?然后,如何遍历生成的AST并访问节点。我真的被困在这个时刻,不知道该如何进行。你能帮我解决这个问题吗。

提前感谢!

谢谢你,哈曼特·巴格特

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-28 18:00:42

我找到了答案。系统递归深度存在问题。在Windows默认情况下,递归深度限制为512。因此,在所提到的测试用例中,堆栈甚至在达到递归极限之前就会被溢出。因此,将递归深度限制降至27,避免了堆栈溢出异常。

模板深度的情况也是如此。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42479448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档