首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在LLVM3.0中是否存在结构化同构检查?

在LLVM3.0中是否存在结构化同构检查?
EN

Stack Overflow用户
提问于 2012-05-01 13:57:43
回答 1查看 1.3K关注 0票数 4

在LLVM-3.0中,命名结构总是唯一的,与其他结构相同的结构的指针相等不起作用。从他们的关于LLVM-3.0类型的博客条目,重点是我的:

标识的结构就是我们所讨论的那种:它们可以有一个名称,并且可以在创建类型之后指定它们的主体。标识的结构与其他结构类型并不是唯一的,这就是为什么它们是用StructType::create(.)生成的。由于标识的类型可能是递归的,因此asm打印机总是按其名称打印它们(如果标识的结构没有名称,则打印的数字为%42 )。

这将通过类型指针检查来中断类型相等检查。例如,haskell包勒夫姆依赖于用于编译时类型检查和类型转换的llvm类型指针相等。

有没有办法检查两个结构是否同构(相同的结构)?最好是在llvm c api中?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-16 05:03:53

在C++ API中,StructType类具有

代码语言:javascript
复制
bool StructType::isLayoutIdentical(StructType *Other) const

这个函数遍历StructTypes的元素,查看它们是否相等。

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

https://stackoverflow.com/questions/10398746

复制
相关文章

相似问题

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