[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