LLVM получает постоянное целое число обратно из Value *

Я создаю llvm :: Value * из целочисленной константы следующим образом:

llvm::Value* constValue = llvm::ConstantInt::get( llvmContext , llvm::APInt( node->someInt() ));

теперь я хочу получить обратно значение константы времени компиляции;

int constIntValue = constValue->???

примеры, показанные в Руководстве по программированию LLVM , похоже, подразумевают, что cast будет принимать указатель при использовании параметра шаблона типа (а не типа плюс указатель), однако я почти уверен, что это не работает, начиная с 2.8:

llvm::Value* foo = 0;
llvm::ConstantInt* intValue = & llvm::cast< llvm::ConstantInt , llvm::Value >(foo );

//build error:
//error: no matching function for call to ‘cast(llvm::Value*&)’

Какой здесь подход будет правильным?

24
задан lurscher 15 March 2011 в 16:58
поделиться