[LLVMdev] How to cast Value* to ConstantDataArray*

Richard Catlin richard.m.catlin at gmail.com
Sat Apr 20 14:15:42 PDT 2013


I extended the LLVM Kaleidoscope example to support Strings. I added a
StringExprAST, which has the virtual Codegen method impl as follows:

Value *StringExprAST::Codegen() {
  StringRef r(Val);
  return ConstantDataArray::getString(getGlobalContext(), r, false);
}

I am trying to concatenate Strings and have a ConcatExprAST with its
Codegen method. Upon trying to access the data in the ConstantDataArray, I
need to cast the Value* back to a ConstantDataArray* in order to use the
getAsString() method.

I tried:

ConstantDataArray * cda = cast<ConstantDataArray>(v);

where v is a Value*.  It does not work.

How can I do this?

Thanks for any help.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130420/701f1611/attachment.html>


More information about the llvm-dev mailing list