summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-pdbdump/PdbYaml.h
diff options
context:
space:
mode:
authorZachary Turner <zturner@google.com>2016-07-11 21:45:26 +0000
committerZachary Turner <zturner@google.com>2016-07-11 21:45:26 +0000
commitdbeaea7b357fb4343d01ffa466f3dcab1e57d392 (patch)
treef1fd778564c5e85b31e96504ee26b49424b00823 /llvm/tools/llvm-pdbdump/PdbYaml.h
parentf6b93824677a9aaab59989f7f402010fda6bd63c (diff)
downloadbcm5719-llvm-dbeaea7b357fb4343d01ffa466f3dcab1e57d392.tar.gz
bcm5719-llvm-dbeaea7b357fb4343d01ffa466f3dcab1e57d392.zip
Refactor the PDB writing to use a builder approach
llvm-svn: 275110
Diffstat (limited to 'llvm/tools/llvm-pdbdump/PdbYaml.h')
-rw-r--r--llvm/tools/llvm-pdbdump/PdbYaml.h33
1 files changed, 24 insertions, 9 deletions
diff --git a/llvm/tools/llvm-pdbdump/PdbYaml.h b/llvm/tools/llvm-pdbdump/PdbYaml.h
index d243f9b12b1..91c0a585926 100644
--- a/llvm/tools/llvm-pdbdump/PdbYaml.h
+++ b/llvm/tools/llvm-pdbdump/PdbYaml.h
@@ -39,17 +39,28 @@ struct StreamBlockList {
};
struct PdbInfoStream {
- uint32_t Version;
+ PdbRaw_ImplVer Version;
uint32_t Signature;
uint32_t Age;
PDB_UniqueId Guid;
};
+struct PdbDbiStream {
+ PdbRaw_DbiVer VerHeader;
+ uint32_t Age;
+ uint16_t BuildNumber;
+ uint32_t PdbDllVersion;
+ uint16_t PdbDllRbld;
+ uint16_t Flags;
+ PDB_Machine MachineType;
+};
+
struct PdbObject {
Optional<MsfHeaders> Headers;
Optional<std::vector<support::ulittle32_t>> StreamSizes;
Optional<std::vector<StreamBlockList>> StreamMap;
Optional<PdbInfoStream> PdbStream;
+ Optional<PdbDbiStream> DbiStream;
};
}
}
@@ -58,25 +69,29 @@ struct PdbObject {
namespace llvm {
namespace yaml {
-template <> struct MappingTraits<pdb::PDBFile::SuperBlock> {
- static void mapping(IO &IO, pdb::PDBFile::SuperBlock &SB);
-};
-
-template <> struct MappingTraits<pdb::yaml::StreamBlockList> {
- static void mapping(IO &IO, pdb::yaml::StreamBlockList &SB);
+template <> struct MappingTraits<pdb::yaml::PdbObject> {
+ static void mapping(IO &IO, pdb::yaml::PdbObject &Obj);
};
template <> struct MappingTraits<pdb::yaml::MsfHeaders> {
static void mapping(IO &IO, pdb::yaml::MsfHeaders &Obj);
};
-template <> struct MappingTraits<pdb::yaml::PdbObject> {
- static void mapping(IO &IO, pdb::yaml::PdbObject &Obj);
+template <> struct MappingTraits<pdb::PDBFile::SuperBlock> {
+ static void mapping(IO &IO, pdb::PDBFile::SuperBlock &SB);
+};
+
+template <> struct MappingTraits<pdb::yaml::StreamBlockList> {
+ static void mapping(IO &IO, pdb::yaml::StreamBlockList &SB);
};
template <> struct MappingTraits<pdb::yaml::PdbInfoStream> {
static void mapping(IO &IO, pdb::yaml::PdbInfoStream &Obj);
};
+
+template <> struct MappingTraits<pdb::yaml::PdbDbiStream> {
+ static void mapping(IO &IO, pdb::yaml::PdbDbiStream &Obj);
+};
}
}
OpenPOWER on IntegriCloud