I am working with this setup: LLVM+Clang Compiler on an Ubuntu 64bit OS.
Questions:
Is it possible to get the return addresses of virtual function call
and non virtual C++ methods inside Clang and LLVM.
Is thre a way to get the candidate addresses where the return address
points back after each function return was performed.
I have a few questions and hopefully you guys can help me out.
The return-addresses of indirect function calls to virtual functions
(and thus v-tables), are they pointers?
If not, what format do they have? How are those handled by Clang?
Is the return address of a non virtual function in Clang a pointer or
a hardcoded value?
How can I get the return addresses of an indirect call to a virtual
function using LLVM? Do i have to import them from Clang and make them
available during LTO?
Is thinLTO a better candidate for helping me recuperate this information?
Does the return address of a function called from an indirect
call-site always jump back to the next line (instruction) of assembly
code after the callsite instruction. Are there some occurrences where
it doesn't?
How is this handled in Clang?