<table cellspacing="0" cellpadding="0" border="0" ><tr><td valign="top" style="font: inherit;"><font face="arial" size="2">After cloning you need to replace all the uses of original one with the cloned function.Probably you can use </font><span style="font-family: arial; font-size: small;">"replaceAllUsesWith( )" function to do this.</span><div><font face="arial" size="2"><br></font></div><div><font face="arial" size="2">Regards,</font></div><div><font face="arial" size="2">Shahid<br></font><div><br><font face="arial" size="2">--- On </font><b style="font-family: arial; font-size: 10pt;">Wed, 5/29/13, Rasha Omar <i><rasha.sala7@gmail.com></i></b><font face="arial" size="2"> wrote:</font><br><blockquote style="font-family: arial; font-size: 10pt; border-left-width: 2px; border-left-style: solid; border-left-color: rgb(16, 16, 255); margin-left: 5px; padding-left: 5px;"><br>From: Rasha Omar <rasha.sala7@gmail.com><br>Subject: Re: [LLVMdev]
 CloneFunctionInto() Error<br>To: LLVMdev@cs.uiuc.edu<br>Date: Wednesday, May 29, 2013, 5:23 AM<br><br><div id="yiv1594074873"><div dir="ltr"><div><div>Does cloning copies the function with its address or it constructs a new address to the new function? Is this real copying for the CFG or just opaque one to do some work?<br></div><div>If it's not real copying, please I need a method that can help me in copying the function in another with new pointer to another address.<br>
</div><div><br></div>Please  I need answer urgent<br></div>Thanks<br></div><div class="yiv1594074873gmail_extra"><br><br><div class="yiv1594074873gmail_quote">On 29 May 2013 10:14, Rasha Omar <span dir="ltr"><<a rel="nofollow" ymailto="mailto:rasha.sala7@gmail.com" target="_blank" href="/mc/compose?to=rasha.sala7@gmail.com">rasha.sala7@gmail.com</a>></span> wrote:<br>
<blockquote class="yiv1594074873gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div dir="ltr"><div>Dear All,<br><br></div><div>I need your help urgently<br></div><div>I have to copy the CFG of each function using CloneFunction or CloneFunctionInto.<br>
</div><div>After I made the copy function. Print the basic blocks then get this error :<br>
<br>While deleting: i32 %<br>Use still stuck around after Def is destroyed:  %mul2_ = mul nsw i32 %6, 3<br>Use still stuck around after Def is destroyed:  store i32 3, i32* %x_, align 4<br>opt: Value.cpp:75: virtual llvm::Value::~Value(): Assertion `use_empty() && "Uses remain when a value is destroyed!"' failed.<br>

0  opt             0x0000000000fc7fe2<br>1  opt             0x0000000000fc8473<br>2  libpthread.so.0 0x00007f0396f43cb0<br>3  libc.so.6       0x00007f0396195425 gsignal + 53<br>4  libc.so.6       0x00007f0396198b8b abort + 379<br>

5  libc.so.6       0x00007f039618e0ee<br>6  libc.so.6       0x00007f039618e192<br>7  opt             0x0000000000f7cd7d<br>8  opt             0x0000000000ee3c52<br>9  opt             0x0000000000f5bddf llvm::LLVMContextImpl::~LLVMContextImpl() + 1999<br>

10 opt             0x0000000000f5ad1c<br>11 opt             0x0000000000fb9d69 llvm::llvm_shutdown() + 41<br>12 opt             0x00000000005285b3 main + 7251<br>13 libc.so.6       0x00007f039618076d __libc_start_main + 237<br>

14 opt             0x0000000000521f91<br>Stack dump:<br>0.    Program arguments: opt -load ../../../Release+Asserts/lib/Blocks.so -blocks <br>Aborted (core dumped)<br><br><br><br></div><div><div><div>***The code is<br><br>

<br> > std::vector<Type*> ArgTypes;<br><br> > ValueToValueMapTy VMap;<br><br> >FunctionType *FTy = FunctionType::get(F.getFunctionType()->getReturnType(),<br>                        ArgTypes, F.getFunctionType()->isVarArg());<br>

<br> >Function *NewF = Function::Create(FTy, F.getLinkage(), F.getName());<br><br> > SmallVector<ReturnInst*, 8> Returns; <br><br>  >CloneFunctionInto(NewF, (Function*) &F, VMap, false, Returns, "_", 0, 0);<br>

<br><br></div><div>Thanks in advance<span class="yiv1594074873HOEnZb"><font color="#888888"><br></font></span></div><span class="yiv1594074873HOEnZb"><font color="#888888"><div><br></div><div>-- <br><div dir="ltr"><b><span style="color:rgb(0,0,102);">Rasha Salah Omar</span><br style="color:rgb(0,0,102);">
<span style="color:rgb(0,0,102);">Msc Student at E-JUST</span><br style="color:rgb(0,0,102);">
<span style="color:rgb(0,0,102);">Demonestrator  at Faculty of Computers and Informatics</span><br style="color:rgb(0,0,102);"><span style="color:rgb(0,0,102);">Benha University</span><br></b></div>
</div></font></span></div></div></div>
</blockquote></div><br><br clear="all"><br>-- <br><div dir="ltr"><b><span style="color:rgb(0,0,102);">Rasha Salah Omar</span><br style="color:rgb(0,0,102);"><span style="color:rgb(0,0,102);">Msc Student at E-JUST</span><br style="color:rgb(0,0,102);">
<span style="color:rgb(0,0,102);">Demonestrator  at Faculty of Computers and Informatics</span><br style="color:rgb(0,0,102);"><span style="color:rgb(0,0,102);">Benha University</span><br></b></div>
</div>
</div><br>-----Inline Attachment Follows-----<br><br><div class="plainMail">_______________________________________________<br>LLVM Developers mailing list<br><a ymailto="mailto:LLVMdev@cs.uiuc.edu" href="/mc/compose?to=LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a><br><a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br></div></blockquote></div></div></td></tr></table>