2013-07-22 1 views
1

Я пытаюсь использовать LLVM IR-вызов isntruction. То, что я хочу добиться, - это получить аргументы вызова функции. Если аргумент является типом указателя, тогда я хочу получить указатель на элемент/переменную, на который указывает указатель. Я знаю, что если у меня есть ARG, я могу использоватьLLVM IR instumentation. как получить значение элемента, на которое указывает указатель arg?

getPointerElementType to get the type of element the pointer is pointing to. But how to access the value of element? 

ответ

0

Вы хотите

получить элемент/переменную, указатель, указывающий на

Это также называется «разыменования указатель ". Это не то, что вы можете сделать во время компиляции, но то, что вы может сделать, это инструкция, которая выполняет разыменование - другими словами, a load instruction.

+1

Хорошо, я это понимаю. Но я хочу передать это значение функции в библиотеке времени выполнения. Могу ли я передать команду нагрузки в качестве аргумента или сначала сохранить значение для некоторого значения (например, типа int), а затем перейти к функции? – Mahwish

+0

Если функция хочет указатель, вы можете передать ее как есть. Если он хочет иметь значение с указателем, вам нужно передать инструкцию 'load'. – Oak