Right now the virtual base pointer offset for virtual bases is not implemented and hard-coded to zero in CodeViewDebug.cpp. This patch passes the offset from clang to CodeView where it can be emitted. The crux of the patch looks like this:
- // FIXME: Emit VBPtrOffset when the frontend provides it. - unsigned VBPtrOffset = 0; + unsigned VBPtrOffset = I->getVBPtrOffset();
The rest of the source changes support embedding this single field in the IR and reading/writing it to bitcode.
Inheritance is currently encoded in the IR as a DIDerivedType which is currently reused for several other purposes. Four tests which have bitcode files containing a DIDerivedType needed to have the bitcode file updated. Three of these bitcode files were not marked in subversion as a binary file, so I also set the mime-type accordingly.
The diglobalvariable.ll file did not appear to get updated to match changes made to diglobalvariable.bc when DIGlobalVariableExpression was added. Since I had to regenerate the bitcode file anyways I also updated the ".ll" file accordingly.
please drop the \brief.