Map all returns of virtual functions to their corresponding return addresses

Hi guys,

basically I want to do caller/callee mapping by adding runtime checks
which checks for the allowed ranges before each C/C++ return is

I have a forward mapping of all virtual object dispatches to the
allowed virtual table entries for a given class hierarchy.
This data is collected during LLVM LTO. Now I want to do the same for
all the virtual function returns. Since the forward mapping is telling
me which functions should be accessible I need to determine in order
to precisely map backward the following information.

1. From where in Clang/LLVM to get the return addresses for each
return contained in a virtual function. Is it possible to be obtained
this information during compile time?

2. How to determine in which function a certain return is contained.
Next how to determine to which class that function belongs to?

Thanks in advance,