Timeline for C++ : What is the order of function pointers inside vtable?
Current License: CC BY-SA 4.0
11 events
| when toggle format | what | by | license | comment | |
|---|---|---|---|---|---|
| Jun 4, 2019 at 19:57 | comment | added | Jan Hudec | @curiousguy, no, you can't, because the dynamic dependencies are, intentionally, allowed to change between linktime and runtime. So the answer is always yes. Besides, the libc is dlopening plugins depending on configuration already. | |
| Jun 4, 2019 at 18:57 | comment | added | curiousguy | @JanHudec You can determine by global analysis whether object files can be dynamically loaded after initial linking. | |
| May 8, 2019 at 21:14 | comment | added | Jan Hudec | @Caleth, in a static binary the linker could rearrange the layout to optimize it, but in any system that supports dynamic libraries there is no such thing as “finished binary”, because another shared object can be loaded almost anytime. | |
| May 8, 2019 at 21:06 | comment | added | Caleth | @JanHudec only at the edges. In the finished binary anything goes | |
| May 8, 2019 at 20:35 | comment | added | Jan Hudec | The implementation is, however, required to define the calling convention in a fully deterministic way and stick to it, so that separately compiled objects can be linked together. | |
| May 8, 2019 at 10:46 | comment | added | Matthieu M. | @Deduplicator: Sure. I see it as a proof of concept that this is feasible; it's just that the requirement of a sealed hierarchy essentially requires Whole Program Analysis, which itself requires compiling the whole program in one shot. | |
| May 7, 2019 at 21:04 | comment | added | Deduplicator | @MatthieuM. Yes, it is. But that's user-code. | |
| May 7, 2019 at 18:34 | history | edited | Caleth | CC BY-SA 4.0 |
added 147 characters in body
|
| May 7, 2019 at 14:28 | comment | added | Matthieu M. | @Deduplicator: Well, the LLVM codebase is relatively famous for doing its own virtual-dispatch based on storing a hierarchy-specific enum field in the base class and then switching on it. It just requires a sealed hierarchy... | |
| May 7, 2019 at 11:03 | comment | added | Deduplicator | … and strictly speaking, it need not use a vtable at all. Though AFAIK, that's purely academic at best. | |
| May 7, 2019 at 10:37 | history | answered | Caleth | CC BY-SA 4.0 |