This is an archive of the discontinued LLVM Phabricator instance.

Fix a couple of incorrect fields in our generated PDBs.
ClosedPublic

Authored by zturner on Apr 4 2018, 11:34 AM.

Details

Summary

Most of these are pretty trivial and obvious. Setting the toolchain version to 14.11 is perhaps a little questionable, but we've been bitten in the past where one of our version fields sidn't match MSVC's, and I definitely don't want to go through that diagnosis again as it was pretty time consuming and hard to track down.

I found all of these by using llvm-pdbutil export to dump the dbi and pdb streams to a file, then using fc followed by llvm-pdbutil explain to explain the mismatched bytes.

There are still some more, these are just the low hanging fruit.

Diff Detail

Repository
rL LLVM

Event Timeline

zturner created this revision.Apr 4 2018, 11:34 AM
arm-chrjan01 added inline comments.
lld/COFF/PDB.cpp
1091 ↗(On Diff #141008)

This should use Configuration::Machine rather than Configuration::is64. Configuration::is64 will return true for ARM64, for example, and this condition then goes on to assume it's AMD64.

zturner updated this revision to Diff 141728.Apr 9 2018, 1:36 PM

Use Config->Machine instead of Config->is64()

rnk accepted this revision.Apr 10 2018, 10:48 AM

Looks good, feel free to address the is64() check in a follow-up.

lld/COFF/PDB.cpp
1091 ↗(On Diff #141008)

This one seems still unaddressed.

This revision is now accepted and ready to land.Apr 10 2018, 10:48 AM
This revision was automatically updated to reflect the committed changes.