[LLVMdev] Copy function pointer contents (original) (raw)
Calixte Denizet calixte.denizet at scilab-enterprises.com
Tue Oct 21 08:04:35 PDT 2014
- Previous message: [LLVMdev] RFC: Are we ready to completely move away from the optionality of a DataLayout?
- Next message: [LLVMdev] Copy function pointer contents
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Folks,
Is it safe to copy a function pointer contents from an ObjectImage ? I made something like:
void (*fptr)() = nullptr; llvm::object::symbol_iterator i = obj.begin_symbols(); if (!i->getType(type) && type == llvm::object::SymbolRef::ST_Function) { llvm::StringRef name; uint64_t addr, size; if (!i->getName(name) && !i->getAddress(addr) && !i->getSize(size)) { llvm::sys::MemoryBlock mem = llvm::sys::Memory::AllocateRWX(size, nullptr); memcpy(mem.base(), (void *)addr, size); fptr = reinterpret_cast<void(*)()>(mem.base()); } } ...
My first experiments shew that it works but I'd like to know it could have any side effects? My goal is to delete a finalized module and just keep the copyed function (to decrease the memory use)
Best regards,
Calixte
-- Calixte Denizet Software Development Engineer
Scilab Enterprises 143bis rue Yves Le Coz - 78000 Versailles, France http://www.scilab-enterprises.com
- Previous message: [LLVMdev] RFC: Are we ready to completely move away from the optionality of a DataLayout?
- Next message: [LLVMdev] Copy function pointer contents
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]