MSVC-style RTTI when targeting x86_64 requires creating references to symbols using image-base relative relocations (IMAGE_REL_AMD64_ADDR32 in PE/COFF, similar to ELF’s R_X86_64_RELATIVE). This is currently supported at the MC layer, one may have:
This would create a symbol which points to it’s own image-relative offset.
To my knowledge, LLVM IR gives no way to refer to the address of a symbol using a relocation and thus the above result cannot be obtained.
Seeing as how we want to support MSVC-style RTTI from clang, how should we represent image-relative relocations in the IR?