This is an archive of the discontinued LLVM Phabricator instance.

IRGen: When performing CFI checks, load vtable pointer from vbase when necessary.
ClosedPublic

Authored by pcc on Dec 8 2017, 3:14 PM.

Details

Summary

Under the Microsoft ABI, it is possible for an object not to have
a virtual table pointer of its own if all of its virtual functions
were introduced by virtual bases. In that case, we need to load the
vtable pointer from one of the virtual bases and perform the type
check using its type.

Diff Detail

Repository
rL LLVM

Event Timeline

pcc created this revision.Dec 8 2017, 3:14 PM
vlad.tsyrklevich accepted this revision.Dec 13 2017, 1:12 PM
This revision is now accepted and ready to land.Dec 13 2017, 1:12 PM
This revision was automatically updated to reflect the committed changes.
rnk added a comment.Dec 13 2017, 2:07 PM

Looks good!