这是什么<some symbol>@GOTPCREL(%rip)
意思?
我遇到过这一行mov var@GOTPCREL(%rip), %rax
,并对奇怪的语法感到有点困惑。
有人可以推荐我应该阅读以理解这一点的相关文档吗?谢谢!
从JVM规范(第4.1章 “ ClassFile结构”)中可以看出,“ constant_pool表从1索引到constant_pool_count-1”。
我很好奇为什么他们跳过[0],并且该条目保留什么。
void WorkHorse(void* ptr, int tag) {
if (SomeFunction(tag)) {
Foo* foo_ptr = (Foo*)ptr;
// do stuff
} else {
Bar* bar_ptr = (Bar*)ptr;
}
}
Run Code Online (Sandbox Code Playgroud)
我知道这通常是一个糟糕的设计,但很好奇它是否在技术上是 UB。