summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-pdbdump/Diff.h
diff options
context:
space:
mode:
authorZachary Turner <zturner@google.com>2017-03-13 23:28:25 +0000
committerZachary Turner <zturner@google.com>2017-03-13 23:28:25 +0000
commit6ac232caed92b148a80e1462525408b4bcfdca76 (patch)
treec7b1cc7a66ed138f85b94bd4dc6f8044cc1b7e57 /llvm/tools/llvm-pdbdump/Diff.h
parentb3c780875d3d2ab94d77324f0124fb953fa88bea (diff)
downloadbcm5719-llvm-6ac232caed92b148a80e1462525408b4bcfdca76.tar.gz
bcm5719-llvm-6ac232caed92b148a80e1462525408b4bcfdca76.zip
Add the beginning of PDB diffing support.
For now this only diffs the stream directory and the MSF Superblock. Future patches will drill down into individual streams to find out where the differences lie. Differential Revision: https://reviews.llvm.org/D30908 llvm-svn: 297689
Diffstat (limited to 'llvm/tools/llvm-pdbdump/Diff.h')
-rw-r--r--llvm/tools/llvm-pdbdump/Diff.h45
1 files changed, 45 insertions, 0 deletions
diff --git a/llvm/tools/llvm-pdbdump/Diff.h b/llvm/tools/llvm-pdbdump/Diff.h
new file mode 100644
index 00000000000..6037576e21b
--- /dev/null
+++ b/llvm/tools/llvm-pdbdump/Diff.h
@@ -0,0 +1,45 @@
+//===- Diff.h - PDB diff utility --------------------------------*- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_TOOLS_LLVMPDBDUMP_DIFF_H
+#define LLVM_TOOLS_LLVMPDBDUMP_DIFF_H
+
+#include "OutputStyle.h"
+
+namespace llvm {
+namespace pdb {
+class PDBFile;
+class DiffStyle : public OutputStyle {
+public:
+ explicit DiffStyle(PDBFile &File1, PDBFile &File2);
+
+ Error dump() override;
+
+private:
+ Error diffSuperBlock();
+ Error diffStreamDirectory();
+ Error diffStringTable();
+ Error diffFreePageMap();
+ Error diffInfoStream();
+ Error diffDbiStream();
+ Error diffSectionContribs();
+ Error diffSectionMap();
+ Error diffFpoStream();
+ Error diffTpiStream(int Index);
+ Error diffModuleInfoStream(int Index);
+ Error diffPublics();
+ Error diffGlobals();
+
+ PDBFile &File1;
+ PDBFile &File2;
+};
+}
+}
+
+#endif
OpenPOWER on IntegriCloud