我试图将指令转换为值,如下所示:
Value *def_val = (dyn_cast<Value>(instr));
然而,这会产生以下错误:
error: non-pointer
operand type 'llvm::Value' incompatible with nullptr
return isa<X>(Val) ? cast<X>(Val) : nullptr;
我还尝试转换为Value*
,并将*
放在整个dyn_cast
表达式的前面,但这些选项都不起作用。
答案 0 :(得分:0)
获取指令指针:
Value *val = dyn_cast<Value>(&instr);
答案 1 :(得分:-1)
你的dynamic_cast必须是值*(并且dynamic_cast的参数需要是指向已经处理多态行为的东西的指针。如果后者不是这种情况,你可能可以使用其他一些演员但是dynamic_cast不行。