YARR does not run properly when using clang based compilers
https://godbolt.org/z/zcsM6nK5h
The register maps are using pointer to member functionality that is not portable. See compiler explorer example. Works with gcc and MSV, fails with clang and icx. The compiler does not call the derived virtual function rather the base class.
Base Test::* r2 = reinterpret_cast<Base Test::*>(&Test::reg2);
I am not sure yet if this is a gcc exploit or clang has a bug.