LCOV - code coverage report
Current view: top level - lib/DebugInfo/CodeView - ModuleSubstreamVisitor.cpp (source / functions) Hit Total Coverage
Test: llvm-toolchain.info Lines: 12 53 22.6 %
Date: 2017-04-27 17:53:54 Functions: 1 14 7.1 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : //===- ModuleSubstreamVisitor.cpp -------------------------------*- 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             : #include "llvm/DebugInfo/CodeView/ModuleSubstreamVisitor.h"
      11             : #include "llvm/Support/BinaryStreamReader.h"
      12             : #include "llvm/Support/BinaryStreamRef.h"
      13             : 
      14             : using namespace llvm;
      15             : using namespace llvm::codeview;
      16             : 
      17           0 : Error IModuleSubstreamVisitor::visitSymbols(BinaryStreamRef Data) {
      18           0 :   return visitUnknown(ModuleSubstreamKind::Symbols, Data);
      19             : }
      20           0 : Error IModuleSubstreamVisitor::visitLines(BinaryStreamRef Data,
      21             :                                           const LineSubstreamHeader *Header,
      22             :                                           const LineInfoArray &Lines) {
      23           0 :   return visitUnknown(ModuleSubstreamKind::Lines, Data);
      24             : }
      25           0 : Error IModuleSubstreamVisitor::visitStringTable(BinaryStreamRef Data) {
      26           0 :   return visitUnknown(ModuleSubstreamKind::StringTable, Data);
      27             : }
      28           0 : Error IModuleSubstreamVisitor::visitFileChecksums(
      29             :     BinaryStreamRef Data, const FileChecksumArray &Checksums) {
      30           0 :   return visitUnknown(ModuleSubstreamKind::FileChecksums, Data);
      31             : }
      32           0 : Error IModuleSubstreamVisitor::visitFrameData(BinaryStreamRef Data) {
      33           0 :   return visitUnknown(ModuleSubstreamKind::FrameData, Data);
      34             : }
      35           0 : Error IModuleSubstreamVisitor::visitInlineeLines(BinaryStreamRef Data) {
      36           0 :   return visitUnknown(ModuleSubstreamKind::InlineeLines, Data);
      37             : }
      38           0 : Error IModuleSubstreamVisitor::visitCrossScopeImports(BinaryStreamRef Data) {
      39           0 :   return visitUnknown(ModuleSubstreamKind::CrossScopeExports, Data);
      40             : }
      41           0 : Error IModuleSubstreamVisitor::visitCrossScopeExports(BinaryStreamRef Data) {
      42           0 :   return visitUnknown(ModuleSubstreamKind::CrossScopeImports, Data);
      43             : }
      44           0 : Error IModuleSubstreamVisitor::visitILLines(BinaryStreamRef Data) {
      45           0 :   return visitUnknown(ModuleSubstreamKind::ILLines, Data);
      46             : }
      47           0 : Error IModuleSubstreamVisitor::visitFuncMDTokenMap(BinaryStreamRef Data) {
      48           0 :   return visitUnknown(ModuleSubstreamKind::FuncMDTokenMap, Data);
      49             : }
      50           0 : Error IModuleSubstreamVisitor::visitTypeMDTokenMap(BinaryStreamRef Data) {
      51           0 :   return visitUnknown(ModuleSubstreamKind::TypeMDTokenMap, Data);
      52             : }
      53           0 : Error IModuleSubstreamVisitor::visitMergedAssemblyInput(BinaryStreamRef Data) {
      54           0 :   return visitUnknown(ModuleSubstreamKind::MergedAssemblyInput, Data);
      55             : }
      56           0 : Error IModuleSubstreamVisitor::visitCoffSymbolRVA(BinaryStreamRef Data) {
      57           0 :   return visitUnknown(ModuleSubstreamKind::CoffSymbolRVA, Data);
      58             : }
      59             : 
      60           6 : Error llvm::codeview::visitModuleSubstream(const ModuleSubstream &R,
      61             :                                            IModuleSubstreamVisitor &V) {
      62           6 :   switch (R.getSubstreamKind()) {
      63             :   case ModuleSubstreamKind::Symbols:
      64           0 :     return V.visitSymbols(R.getRecordData());
      65             :   case ModuleSubstreamKind::Lines: {
      66           6 :     BinaryStreamReader Reader(R.getRecordData());
      67             :     const LineSubstreamHeader *Header;
      68           9 :     if (auto EC = Reader.readObject(Header))
      69           0 :       return EC;
      70           6 :     VarStreamArrayExtractor<LineColumnEntry> E(Header);
      71           3 :     LineInfoArray LineInfos(E);
      72           9 :     if (auto EC = Reader.readArray(LineInfos, Reader.bytesRemaining()))
      73           0 :       return EC;
      74           3 :     return V.visitLines(R.getRecordData(), Header, LineInfos);
      75             :   }
      76             :   case ModuleSubstreamKind::StringTable:
      77           0 :     return V.visitStringTable(R.getRecordData());
      78             :   case ModuleSubstreamKind::FileChecksums: {
      79           6 :     BinaryStreamReader Reader(R.getRecordData());
      80           3 :     FileChecksumArray Checksums;
      81           9 :     if (auto EC = Reader.readArray(Checksums, Reader.bytesRemaining()))
      82           0 :       return EC;
      83           3 :     return V.visitFileChecksums(R.getRecordData(), Checksums);
      84             :   }
      85             :   case ModuleSubstreamKind::FrameData:
      86           0 :     return V.visitFrameData(R.getRecordData());
      87             :   case ModuleSubstreamKind::InlineeLines:
      88           0 :     return V.visitInlineeLines(R.getRecordData());
      89             :   case ModuleSubstreamKind::CrossScopeImports:
      90           0 :     return V.visitCrossScopeImports(R.getRecordData());
      91             :   case ModuleSubstreamKind::CrossScopeExports:
      92           0 :     return V.visitCrossScopeExports(R.getRecordData());
      93             :   case ModuleSubstreamKind::ILLines:
      94           0 :     return V.visitILLines(R.getRecordData());
      95             :   case ModuleSubstreamKind::FuncMDTokenMap:
      96           0 :     return V.visitFuncMDTokenMap(R.getRecordData());
      97             :   case ModuleSubstreamKind::TypeMDTokenMap:
      98           0 :     return V.visitTypeMDTokenMap(R.getRecordData());
      99             :   case ModuleSubstreamKind::MergedAssemblyInput:
     100           0 :     return V.visitMergedAssemblyInput(R.getRecordData());
     101             :   case ModuleSubstreamKind::CoffSymbolRVA:
     102           0 :     return V.visitCoffSymbolRVA(R.getRecordData());
     103             :   default:
     104           0 :     return V.visitUnknown(R.getSubstreamKind(), R.getRecordData());
     105             :   }
     106             : }

Generated by: LCOV version 1.13