summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-pdbutil
diff options
context:
space:
mode:
authorReid Kleckner <rnk@google.com>2019-05-31 22:55:03 +0000
committerReid Kleckner <rnk@google.com>2019-05-31 22:55:03 +0000
commiteddd6c25b567bf2b75b38e9e09b80f69f87d7017 (patch)
tree280b6895fa86cb8e49dab779557f4dbac1ec537e /llvm/tools/llvm-pdbutil
parent7d4ec5af6c27c2c7225afbfd7b6460930a384ac6 (diff)
downloadbcm5719-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.cpp4
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);
OpenPOWER on IntegriCloud