LCOV - code coverage report
Current view: top level - include/llvm/ObjectYAML - CodeViewYAMLDebugSections.h (source / functions) Hit Total Coverage
Test: llvm-toolchain.info Lines: 9 9 100.0 %
Date: 2017-09-14 15:23:50 Functions: 1 1 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : //=- CodeViewYAMLDebugSections.h - CodeView YAMLIO debug sections -*- C++ -*-=//
       2             : //
       3             : //                     The LLVM Compiler Infrastructure
       4             : //
       5             : // This file is distributed under the University of Illinois Open Source
       6             : // License. See LICENSE.TXT for details.
       7             : //
       8             : //===----------------------------------------------------------------------===//
       9             : //
      10             : // This file defines classes for handling the YAML representation of CodeView
      11             : // Debug Info.
      12             : //
      13             : //===----------------------------------------------------------------------===//
      14             : 
      15             : #ifndef LLVM_OBJECTYAML_CODEVIEWYAMLDEBUGSECTIONS_H
      16             : #define LLVM_OBJECTYAML_CODEVIEWYAMLDEBUGSECTIONS_H
      17             : 
      18             : #include "llvm/ADT/ArrayRef.h"
      19             : #include "llvm/ADT/StringRef.h"
      20             : #include "llvm/DebugInfo/CodeView/CodeView.h"
      21             : #include "llvm/DebugInfo/CodeView/DebugSubsection.h"
      22             : #include "llvm/DebugInfo/CodeView/DebugSubsectionRecord.h"
      23             : #include "llvm/Support/Error.h"
      24             : #include "llvm/Support/YAMLTraits.h"
      25             : #include <cstdint>
      26             : #include <memory>
      27             : #include <vector>
      28             : 
      29             : namespace llvm {
      30             : 
      31             : namespace codeview {
      32             : 
      33             : class StringsAndChecksums;
      34             : class StringsAndChecksumsRef;
      35             : 
      36             : } // end namespace codeview
      37             : 
      38             : namespace CodeViewYAML {
      39             : 
      40             : namespace detail {
      41             : 
      42             : struct YAMLSubsectionBase;
      43             : 
      44             : } // end namespace detail
      45             : 
      46           4 : struct YAMLFrameData {
      47             :   uint32_t RvaStart;
      48             :   uint32_t CodeSize;
      49             :   uint32_t LocalSize;
      50             :   uint32_t ParamsSize;
      51             :   uint32_t MaxStackSize;
      52             :   StringRef FrameFunc;
      53             :   uint32_t PrologSize;
      54             :   uint32_t SavedRegsSize;
      55             :   uint32_t Flags;
      56             : };
      57             : 
      58          12 : struct YAMLCrossModuleImport {
      59             :   StringRef ModuleName;
      60             :   std::vector<uint32_t> ImportIds;
      61             : };
      62             : 
      63             : struct SourceLineEntry {
      64             :   uint32_t Offset;
      65             :   uint32_t LineStart;
      66             :   uint32_t EndDelta;
      67             :   bool IsStatement;
      68             : };
      69             : 
      70             : struct SourceColumnEntry {
      71             :   uint16_t StartColumn;
      72             :   uint16_t EndColumn;
      73             : };
      74             : 
      75         247 : struct SourceLineBlock {
      76             :   StringRef FileName;
      77             :   std::vector<SourceLineEntry> Lines;
      78             :   std::vector<SourceColumnEntry> Columns;
      79             : };
      80             : 
      81         194 : struct HexFormattedString {
      82             :   std::vector<uint8_t> Bytes;
      83             : };
      84             : 
      85         209 : struct SourceFileChecksumEntry {
      86             :   StringRef FileName;
      87             :   codeview::FileChecksumKind Kind;
      88             :   HexFormattedString ChecksumBytes;
      89             : };
      90             : 
      91          99 : struct SourceLineInfo {
      92             :   uint32_t RelocOffset;
      93             :   uint32_t RelocSegment;
      94             :   codeview::LineFlags Flags;
      95             :   uint32_t CodeSize;
      96             :   std::vector<SourceLineBlock> Blocks;
      97             : };
      98             : 
      99          13 : struct InlineeSite {
     100             :   uint32_t Inlinee;
     101             :   StringRef FileName;
     102             :   uint32_t SourceLineNum;
     103             :   std::vector<StringRef> ExtraFiles;
     104             : };
     105             : 
     106           6 : struct InlineeInfo {
     107             :   bool HasExtraFiles;
     108             :   std::vector<InlineeSite> Sites;
     109             : };
     110             : 
     111        1748 : struct YAMLDebugSubsection {
     112             :   static Expected<YAMLDebugSubsection>
     113             :   fromCodeViewSubection(const codeview::StringsAndChecksumsRef &SC,
     114             :                         const codeview::DebugSubsectionRecord &SS);
     115             : 
     116             :   std::shared_ptr<detail::YAMLSubsectionBase> Subsection;
     117             : };
     118             : 
     119             : struct DebugSubsectionState {};
     120             : 
     121             : Expected<std::vector<std::shared_ptr<codeview::DebugSubsection>>>
     122             : toCodeViewSubsectionList(BumpPtrAllocator &Allocator,
     123             :                          ArrayRef<YAMLDebugSubsection> Subsections,
     124             :                          const codeview::StringsAndChecksums &SC);
     125             : 
     126             : std::vector<YAMLDebugSubsection>
     127             : fromDebugS(ArrayRef<uint8_t> Data, const codeview::StringsAndChecksumsRef &SC);
     128             : 
     129             : void initializeStringsAndChecksums(ArrayRef<YAMLDebugSubsection> Sections,
     130             :                                    codeview::StringsAndChecksums &SC);
     131             : 
     132             : } // end namespace CodeViewYAML
     133             : 
     134             : } // end namespace llvm
     135             : 
     136             : LLVM_YAML_DECLARE_MAPPING_TRAITS(CodeViewYAML::YAMLDebugSubsection)
     137             : 
     138             : LLVM_YAML_IS_SEQUENCE_VECTOR(CodeViewYAML::YAMLDebugSubsection)
     139             : 
     140             : #endif // LLVM_OBJECTYAML_CODEVIEWYAMLDEBUGSECTIONS_H

Generated by: LCOV version 1.13