The first bug is that the implementation of GetCompilerType for ValueObjectVariable only requests the forward type. This is insufficient for printing enum decls. I suspect this works with the DWARF plugin because the DWARF plugin probably completes enums immediately. The PDB plugin implements enums similarly to other tag records though, and only completes them lazily. ValueObjectVariable then requests the forward compiler type, and makes no attempt to complete it, resulting in insufficient information to print out the value of the enum.
Note that in general, you need a full compiler type to print out the variable anyway. If it's a class type you need it to print out its children, and this already happens when the ValueObject calls GetNumChildren. So this particular change isn't actually invoking any additional work or parsing that wasn't already going to happen anyway, it just allows the case where a symbol file plugin parses enums lazily.
The second bug fixed here is in ObjectFilePECOFF. Both MSVC and clang-cl emit their bss section as a magic section called .data with a raw size of 0 and a file offset of 0. These 3 properties together are sufficient to indicate "this is actually a BSS section", but we had no mechanism of reading from such sections. So we would just try the default read algorithm, which looks at the size, sees that it's too small (0 bytes), and gives up. So we need to add support for this in ObjectFilePECOFF.
This fixes all of the outstanding printing bugs in the native pdb reading tests.