c++ - 在llvm中确定常量值

标签 c++ 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)){
                       ^           ~~~~~~~~~~

我该如何修改?

最佳答案

dynamic_cast中使用的类型必须是指针或引用类型。我猜您也想保持const的风格。

尝试这个:

dynamic_cast<const Constant*>(val)
//           ^^^^^         ^

关于c++ - 在llvm中确定常量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48635807/

相关文章:

c++ - FastCGI 如何在 Web 服务器上工作(例如 Apache 2.2+)?

c++ - boost::get boost::variant 没有给出正确的输出

c++ - 将 Type&&(右值引用)绑定(bind)到可修改的左值和

c++ - 用户输入值,但任意值打印到屏幕。打印值与输入值不匹配

c++ - 尝试使用 gdb 调试 LLVM pass,gdb 说找不到调试符号?

llvm - GEP指令: i32 vs i64

LLVM ir 如何导入其他模块?

ocaml - LLVM OCaml 绑定(bind)是否包含内在支持?

ios - LLVM 5.1 "Deprecated isa"的编译器错误

c++ - Cmake 是如何查找文件的?