[LLVMdev] correct types for ArgumentList?

ret val retval386 at gmail.com
Sat Sep 3 17:07:17 PDT 2011


I'm trying to create and insert a anonymous function that will make a
assignment on a GlobalVariable, based on a existing StoreInst. Once I
find this StoreInst(which provides me with 2 Value* objects for me to
use) I need to pass it to my anonymous function so it can carry out
the assignment. I can not get the correct types, at runtime I get a
bad signature error.

So basically the function is setup to take arguments like this:
                vector<Type *> v_params;
		v_params.push_back(ptrType);					/* Shadow */
		v_params.push_back(ptrType);					/* New Value */
		v_params.push_back(ptrType);					/* Pointer */
		ArrayRef<Type *> a_params(v_params);

Where the assignment will look something like this:
                Value *val = newFunc->arg_begin();
		Value *ptr = ++(newFunc->arg_begin());
		new StoreInst(val, ptr, block);

But the only way I know to call is it is like this:
                vector<Value *> v_args;
		v_args.push_back(shadow);
		v_args.push_back(store->getValueOperand());
		v_args.push_back(store->getPointerOperand());
		ArrayRef<Value *> a_args(v_args);

What is the correct way todo something like this? The full code for
this simple pass is here: http://tinypaste.com/4df56

Thank you



More information about the llvm-dev mailing list