[LLVMdev] Help needed with creating new and replacing an old instruction

Bill Wendling isanbard at gmail.com
Mon Dec 9 00:47:43 PST 2013


On Dec 2, 2013, at 6:42 PM, marc chellarmani <marcchellarmani at email.biz> wrote:

> Hi,
> 
> I have the following instruction in my IR-
> %call2 = call i8* @strcpy(i8* %1, i8* %2) #2
> 
> I intend to change call to strcpy with strncpy. I have included the following code in runOnFunction, so that when it is strcpy's turn to be invoked, strncpy is invoked instead.
> 
> Assuming I* is the strcpy instruction,
> 
> CallInst* x=new CallInst::CreateCall3(strncpy,1,2,ConstantInt(16),"my_strncpy");
> ReplaceInstWithInst(I*,x);
> 
> I'm running into a whole bunch of errors in CreateCall3(). How can I go about writing this correctly?
> 
You’re using ‘new’ incorrectly. The ‘CreateCall3’ does all of the allocation and creation of the call instruction.

-bw


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


More information about the llvm-dev mailing list