[LLVMdev] How to cast Value* to ConstantDataArray*

Sean Silva silvas at purdue.edu
Sat Apr 20 15:37:09 PDT 2013


On Sat, Apr 20, 2013 at 5:15 PM, Richard Catlin
<richard.m.catlin at gmail.com>wrote:

> 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* does it not work? You need to give us more information. Also make
sure that you have read <
http://llvm.org/docs/ProgrammersManual.html#the-isa-cast-and-dyn-cast-templates
>.

-- Sean Silva
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130420/d262214a/attachment.html>


More information about the llvm-dev mailing list