[LLVMdev] How can i differentiate pointer type int 32* from int 32** ?

John Criswell jtcriswel at gmail.com
Fri Jul 17 11:22:20 PDT 2015


On 7/17/15 1:06 PM, Shen Liu wrote:
>  John, thanks for you answer! But as far as I know LLVM doesn't 
> provide any interface for finding the pointee of a pointer directly, 
> so i have to process a multi-level pointer i need to write my own 
> function to check pointers level by level, is that right?

I'm not sure what you're trying to do.  If you're trying to determine 
the LLVM pointer type and the LLVM type to which it points, what I've 
said will work.

If you're trying to do something more complicated, then you need to 
explain more clearly what you want to do.  I think it would also help if 
you "jumped up a level" and explained what your end goal is so that the 
community can give you better advice.  Based on your previous emails, it 
seems like you're asking very specific questions instead of asking how 
to best achieve your overall goal.

Regards,

John Criswell


>
> On Fri, Jul 17, 2015 at 1:47 PM, John Criswell <jtcriswel at gmail.com 
> <mailto:jtcriswel at gmail.com>> wrote:
>
>     On 7/17/15 12:38 PM, Shen Liu wrote:
>>     Hi all, as a LLVM beginner I would like to know how can i check
>>     the pointer types with different levels like int 32* and int
>>     32**, int 32***?
>>
>>     By using value->getType()->isPointerTy() i can just know they are
>>     pointers. But the dump results clearly show they are different.
>>     Is there a good way to calculate their actual point to levels?
>>     Thanks!
>
>     You will need to use dyn_cast<PointerType> to cast the Type * into
>     a PointerType *.  Once you do that, you can find the Type * that
>     the PointerType points to.
>
>     Regards,
>
>     John Criswell
>
>>
>>
>>     Best regards,
>>
>>     Shen
>>
>>
>>     _______________________________________________
>>     LLVM Developers mailing list
>>     LLVMdev at cs.uiuc.edu  <mailto:LLVMdev at cs.uiuc.edu>          http://llvm.cs.uiuc.edu
>>     http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
>
>     -- 
>     John Criswell
>     Assistant Professor
>     Department of Computer Science, University of Rochester
>     http://www.cs.rochester.edu/u/criswell
>
>


-- 
John Criswell
Assistant Professor
Department of Computer Science, University of Rochester
http://www.cs.rochester.edu/u/criswell

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150717/a6112e43/attachment.html>


More information about the llvm-dev mailing list