Mercurial > hg > CbC > CbC_llvm
view tools/llvm-pdbutil/PdbYaml.h @ 133:c60214abe0e8
fix intrin.h
author | mir3636 |
---|---|
date | Fri, 16 Feb 2018 19:10:49 +0900 |
parents | 803732b1fca8 |
children | c2174574ed3a |
line wrap: on
line source
//===- PdbYAML.h ---------------------------------------------- *- 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_PDBYAML_H #define LLVM_TOOLS_LLVMPDBDUMP_PDBYAML_H #include "OutputStyle.h" #include "llvm/ADT/Optional.h" #include "llvm/DebugInfo/CodeView/SymbolRecord.h" #include "llvm/DebugInfo/CodeView/TypeRecord.h" #include "llvm/DebugInfo/MSF/MSFCommon.h" #include "llvm/DebugInfo/PDB/Native/PDBFile.h" #include "llvm/DebugInfo/PDB/Native/RawConstants.h" #include "llvm/DebugInfo/PDB/PDBTypes.h" #include "llvm/ObjectYAML/CodeViewYAMLDebugSections.h" #include "llvm/ObjectYAML/CodeViewYAMLSymbols.h" #include "llvm/ObjectYAML/CodeViewYAMLTypes.h" #include "llvm/Support/Endian.h" #include "llvm/Support/YAMLTraits.h" #include <vector> namespace llvm { namespace codeview { class DebugStringTableSubsection; } namespace pdb { namespace yaml { struct SerializationContext; struct MSFHeaders { msf::SuperBlock SuperBlock; uint32_t NumDirectoryBlocks = 0; std::vector<uint32_t> DirectoryBlocks; uint32_t NumStreams = 0; uint32_t FileSize = 0; }; struct StreamBlockList { std::vector<uint32_t> Blocks; }; struct NamedStreamMapping { StringRef StreamName; uint32_t StreamNumber; }; struct PdbInfoStream { PdbRaw_ImplVer Version = PdbImplVC70; uint32_t Signature = 0; uint32_t Age = 1; codeview::GUID Guid; std::vector<PdbRaw_FeatureSig> Features; std::vector<NamedStreamMapping> NamedStreams; }; struct PdbModiStream { uint32_t Signature; std::vector<CodeViewYAML::SymbolRecord> Symbols; }; struct PdbDbiModuleInfo { StringRef Obj; StringRef Mod; std::vector<StringRef> SourceFiles; std::vector<CodeViewYAML::YAMLDebugSubsection> Subsections; Optional<PdbModiStream> Modi; }; struct PdbDbiStream { PdbRaw_DbiVer VerHeader = PdbDbiV70; uint32_t Age = 1; uint16_t BuildNumber = 0; uint32_t PdbDllVersion = 0; uint16_t PdbDllRbld = 0; uint16_t Flags = 1; PDB_Machine MachineType = PDB_Machine::x86; std::vector<PdbDbiModuleInfo> ModInfos; }; struct PdbTpiStream { PdbRaw_TpiVer Version = PdbTpiV80; std::vector<CodeViewYAML::LeafRecord> Records; }; struct PdbObject { explicit PdbObject(BumpPtrAllocator &Allocator) : Allocator(Allocator) {} Optional<MSFHeaders> Headers; Optional<std::vector<uint32_t>> StreamSizes; Optional<std::vector<StreamBlockList>> StreamMap; Optional<PdbInfoStream> PdbStream; Optional<PdbDbiStream> DbiStream; Optional<PdbTpiStream> TpiStream; Optional<PdbTpiStream> IpiStream; Optional<std::vector<StringRef>> StringTable; BumpPtrAllocator &Allocator; }; } } } LLVM_YAML_DECLARE_MAPPING_TRAITS(pdb::yaml::PdbObject) LLVM_YAML_DECLARE_MAPPING_TRAITS(pdb::yaml::MSFHeaders) LLVM_YAML_DECLARE_MAPPING_TRAITS(msf::SuperBlock) LLVM_YAML_DECLARE_MAPPING_TRAITS(pdb::yaml::StreamBlockList) LLVM_YAML_DECLARE_MAPPING_TRAITS(pdb::yaml::PdbInfoStream) LLVM_YAML_DECLARE_MAPPING_TRAITS(pdb::yaml::PdbDbiStream) LLVM_YAML_DECLARE_MAPPING_TRAITS(pdb::yaml::PdbTpiStream) LLVM_YAML_DECLARE_MAPPING_TRAITS(pdb::yaml::NamedStreamMapping) LLVM_YAML_DECLARE_MAPPING_TRAITS(pdb::yaml::PdbModiStream) LLVM_YAML_DECLARE_MAPPING_TRAITS(pdb::yaml::PdbDbiModuleInfo) #endif // LLVM_TOOLS_LLVMPDBDUMP_PDBYAML_H