[llvm-dev] How to get the address of a global variable in LLVM? (original) (raw)

Dipanjan Das via llvm-dev llvm-dev at lists.llvm.org
Fri Apr 28 14:38:27 PDT 2017


I am a little confused. Can anyone explain me in short? The definition of func is as below:

void func(int var_addr) { printf("[instr]: Global variable at address 0x%x\n", var_addr); }

I want to insert a call to func just before the store instruction with the address x of global variable g as parameter.

On 28 April 2017 at 14:34, Tim Northover <t.p.northover at gmail.com> wrote:

On 28 April 2017 at 14:32, Jonathan Roelofs via llvm-dev <llvm-dev at lists.llvm.org> wrote: > You need a load instruction since your function takes an i32, not an > i32*.... A global's value in llvm is its address, not the numeric data it > contains.

I suspect he actually wants to make his function take an "i8*" and bitcast his pointer to that type before calling it. [*] Tim. [*] Keeping it as an i32/i64 and using ptrtoint instead of bitcast would also work, but be less portable and elegant.

--

Thanks & Regards, Dipanjan -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170428/cd605c04/attachment.html>



More information about the llvm-dev mailing list