[LLVMdev] How to convert an iterator to an object pointer

Surinder surifilms at gmail.com
Sun Jan 30 20:42:08 PST 2011


Thanks.   *p=*pr; works.  I am passing *p to dominates function of
dominator tree and it does not like *pr, but is happy with *p.

On Mon, Jan 31, 2011 at 3:36 PM, Lang Hames <lhames at gmail.com> wrote:
> Hi Surinder,
> You'll need to dereference your iterator to get a pointer:
> const BasicBlock *p = *pr;
> Cheers,
> Lang.
> On Mon, Jan 31, 2011 at 3:04 PM, Surinder <surifilms at gmail.com> wrote:
>>
>> I have a pointer to a basic block and am iterating thru its
>> predecessor blocks.  I want to get a pointer to the predecessor block.
>>  How do I do it.  I am using following code and it given compile time
>> errors.
>>
>>  error: cannot convert 'llvm::const_pred_iterator' to 'const
>> llvm::BasicBlock*' in initialization
>>
>>    const BasicBlock *b = PH->getParent();
>>    // process all pred block of the current block
>>    for (const_pred_iterator pr=pred_begin(b), esc=pred_end(b); pr!=esc;
>> ++pr)
>>      { const BasicBlock *p = pr;     // ************error line
>> ****************
>> _______________________________________________
>> LLVM Developers mailing list
>> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
>




More information about the llvm-dev mailing list