diff options
author | Reid Kleckner <rnk@google.com> | 2019-05-31 22:55:03 +0000 |
---|---|---|
committer | Reid Kleckner <rnk@google.com> | 2019-05-31 22:55:03 +0000 |
commit | eddd6c25b567bf2b75b38e9e09b80f69f87d7017 (patch) | |
tree | 280b6895fa86cb8e49dab779557f4dbac1ec537e /llvm/tools/llvm-pdbutil | |
parent | 7d4ec5af6c27c2c7225afbfd7b6460930a384ac6 (diff) | |
download | bcm5719-llvm-eddd6c25b567bf2b75b38e9e09b80f69f87d7017.tar.gz bcm5719-llvm-eddd6c25b567bf2b75b38e9e09b80f69f87d7017.zip |
[codeview] Revert inline line table change of r362264
Testing with debuggers shows that our previous behavior was correct.
The reason I thought MSVC did things differently is that MSVC prefers to
use the 0xB combined code offset and code length update opcode when
inline sites are discontiguous.
Keep the test changes, and update the llvm-pdbutil inline line table
dumper to account for this new interpretation of the opcodes.
llvm-svn: 362277
Diffstat (limited to 'llvm/tools/llvm-pdbutil')
-rw-r--r-- | llvm/tools/llvm-pdbutil/MinimalSymbolDumper.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/tools/llvm-pdbutil/MinimalSymbolDumper.cpp b/llvm/tools/llvm-pdbutil/MinimalSymbolDumper.cpp index d3c3f3da9c0..720d7396601 100644 --- a/llvm/tools/llvm-pdbutil/MinimalSymbolDumper.cpp +++ b/llvm/tools/llvm-pdbutil/MinimalSymbolDumper.cpp @@ -689,6 +689,10 @@ Error MinimalSymbolDumper::visitKnownRecord(CVSymbol &CVR, InlineSiteSym &IS) { break; case BinaryAnnotationsOpCode::ChangeCodeLength: formatCodeLength(Annot.U1); + // Apparently this annotation updates the code offset. It's hard to make + // MSVC produce this opcode, but clang uses it, and debuggers seem to use + // this interpretation. + CodeOffset += Annot.U1; break; case BinaryAnnotationsOpCode::ChangeCodeOffsetAndLineOffset: formatCodeOffset(Annot.U1); |