#include <cstdio>
#include <typeinfo>
struct ass {
virtual ~ass() { printf("%s with %p\n", __PRETTY_FUNCTION__, this); }
virtual void f() { printf("%s with %p\n", __PRETTY_FUNCTION__, this); }
};
int main()
{
ass ass;
void** pvtbl = reinterpret_cast<void***>(&ass)[0];
printf("%p\n", &typeid(ass));
printf("%p\n", pvtbl[-1]);
}
I2luY2x1ZGUgPGNzdGRpbz4KI2luY2x1ZGUgPHR5cGVpbmZvPgoKc3RydWN0IGFzcyB7CiAgICB2aXJ0dWFsIH5hc3MoKSAgIHsgcHJpbnRmKCIlcyB3aXRoICVwXG4iLCBfX1BSRVRUWV9GVU5DVElPTl9fLCB0aGlzKTsgfQogICAgdmlydHVhbCB2b2lkIGYoKSB7IHByaW50ZigiJXMgd2l0aCAlcFxuIiwgX19QUkVUVFlfRlVOQ1RJT05fXywgdGhpcyk7IH0KfTsKCmludCBtYWluKCkKewogICAgYXNzIGFzczsKICAgIHZvaWQqKiBwdnRibCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCoqKj4oJmFzcylbMF07CiAgCiAgICBwcmludGYoIiVwXG4iLCAmdHlwZWlkKGFzcykpOwogICAgcHJpbnRmKCIlcFxuIiwgcHZ0YmxbLTFdKTsKfQ==