See the attached (pre-committed) test case. Looks like when we scan vtables for a particular vload in ScanVTableLoad and an entry in one possible vtable is invalid (null or non-fptr), we bail in a wrong way -- we completely stop the scanning of vtables with a return and this results in dropped dependencies because we don't perform GVDependencies[Caller].insert(Callee); on following valid vtable entries. Let's fix that.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Comment Actions
LGTM, thanks! It looks like the test only occurs the 'not function pointer' case. Could you also add a case covering the not a pointer case?