Nerixyz wrote:

> This patch does deviate slightly from how `IsPossibleDynamicType` behaves for 
> DWARF. There we also mark a type dynamic if it has virtual bases (even 
> without any virtual functions). We use this to determine the dynamic type of 
> a derived class, for which the Itanium ABI runtime plugin uses the vtable 
> (which exists for virtual bases too).

I missed that, thank you! On the Microsoft ABI, a type with only virtual bases 
(no virtual functions) will only have a `vbtable` (offset table for virtual 
bases). The `vftable` is (if I understand correctly) similar to the vtable on 
Itanium.

Detecting a class with a vftable is also a bit easier, because the record that 
describes a class includes a vtable type.

---

For testing, I had to add a binary, since the unit tests can't build. The 
`yaml2pdb` functionality can't be used, because it's only in `llvm-pdbutil` 
(not in ObjectYAML). To construct a `UdtRecordCompleter` a `PdbIndex` and the 
`PdbAstBuilder` is required. And the `PdbAstBuilder` also requires the 
`SymbolFileNativePDB` to exist. 

https://github.com/llvm/llvm-project/pull/155853
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to