Itanium ABI may have an address point one byte after the end of a
vtable. When such vtable global is split, the !type metadata needs to
follow the right vtable.
Details
Details
Diff Detail
Diff Detail
- Repository
- rL LLVM
Event Timeline
Comment Actions
LGTM
This is a bit of a hack because we're assuming that vtable groups are the only kinds of global variables that !type metadata can be attached to, and that they are either Itanium ABI vtable groups or contain a single vtable (i.e. Microsoft ABI vtables). To avoid needing to make that assumption we may want to represent the type metadata offsets as something like a set of GEP indices instead of a byte offset. But this is fine for now. Please leave a comment stating that we're making this assumption.