- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
LLVM 中的 Module::getOrInsertFunction
有如下 4 种变体,它们都返回 Constant*
。为什么在创建 Function
时返回指向 Constant
的指针?
常量 * getOrInsertFunction (StringRef Name, FunctionType *T, AttributeSet AttributeList)
最佳答案
Four possibilities: 1. If it does not exist, add a prototype for the function and return it. 2. If it exists, and has a local linkage, the existing function is renamed and a new one is inserted. 3. Otherwise, if the existing function has the correct prototype, return the existing function. 4. Finally, the function exists but has the wrong prototype: return the function with a constantexpr cast to the right prototype.
对于情况 4,返回值是 ConstantExpr*
,而不是 Function*
。因此,返回类型是 Constant*
,即公共(public)父类(super class)。
关于llvm - 为什么 Module::getOrInsertFunction 返回一个指向 Constant 的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35163367/
LLVM 中的 Module::getOrInsertFunction 有如下 4 种变体,它们都返回 Constant*。为什么在创建 Function 时返回指向 Constant 的指针? 常量
我是一名优秀的程序员,十分优秀!