确定LLVM中的常数值
Identify constant value in llvm
我正在写一个条件,看看const llvm :: value*是否是常数。代码如下:
if(const Constant* c = dynamic_cast<Constant>(val)){
......
}
" val"这是一个const llvm :: value*,但是,编译器说
error: 'llvm::Constant' is not a reference or pointer
if(const Constant* c = dynamic_cast<Constant>(val)){
^ ~~~~~~~~~~
如何修改它?
如果您不需要使用if块内部的常数,则可以使用isa&lt;>((
if(isa<Constant>(val)){ ...... }
dynamic_cast
中使用的类型必须是指针或参考类型。我猜你也想保留 const
ness。
尝试以下操作:
dynamic_cast<const Constant*>(val)
// ^^^^^ ^
相关文章:
- C++表达式必须具有常数值
- 表达式必须具有常数值,变量不能用作定义数组大小的常数
- C++重载|(按位OR)运算符,返回常数值
- 确定LLVM中的常数值
- 在编译时间之前抓取常数值
- 如何基于用户设置的初始变量设置一组常数值
- C++:在函数内部声明数组时,表达式必须具有常数值
- 常数值可能不一致
- 初始化ctor中的随机常数值
- 使用整数常量0初始化实例,但不使用其他常数值或整数变量
- 从模板参数中指定常数值
- 枚举指针是否可以指向常数值
- C++std用一个常数值列出初始化,它是否会改变性能
- C++-参考参数的常数值
- c++表达式必须有一个常数值
- 如何创建一个std::map的常数值,它仍然可以被[]操作符访问
- c++常数值1j是什么意思?
- 表达式在c++中必须有一个常数值错误
- 错误:表达式必须具有常数值.对于一个明显的常数值
- 在c++中表达式必须有一个常数值