簡體   English   中英

確定 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<>()

if(isa<Constant>(val)){ ...... }

dynamic_cast使用的類型必須是指針或引用類型。 我猜你也想保持const性。

試試這個:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM