Classes without virtual methods have address point immediately after the virtual table.
Accessing it through inrange getelementptr confuses the global split pass
Details
Details
- Reviewers
pcc
Diff Detail
Diff Detail
- Repository
- rL LLVM
Event Timeline
Comment Actions
I can't see how whether the inrange marking is correct could depend on whether the array of virtual methods is empty; AFAIK, it doesn't actually change the layout of anything else. Could you explain in a bit more detail why you think there's a bug in the emission of the inrange marking, as opposed to a bug in the global split pass?
Comment Actions
Actually, after sleeping on it, I'm starting to think it's the global split pass that is wrong. One-byte-after is explicitly allowed in the specification for inrange, but the splitting pass simply does not have enough information w/o relying on the knowledge of itanium abi.