LCOV - code coverage report
Current view: top level - include/llvm/DebugInfo/DWARF - DWARFDebugMacro.h (source / functions) Hit Total Coverage
Test: llvm-toolchain.info Lines: 1 2 50.0 %
Date: 2018-10-20 13:21:21 Functions: 0 0 -
Legend: Lines: hit not hit

          Line data    Source code
       1             : //===- DWARFDebugMacro.h ----------------------------------------*- 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             : #ifndef LLVM_DEBUGINFO_DWARF_DWARFDEBUGMACRO_H
      11             : #define LLVM_DEBUGINFO_DWARF_DWARFDEBUGMACRO_H
      12             : 
      13             : #include "llvm/ADT/SmallVector.h"
      14             : #include "llvm/Support/DataExtractor.h"
      15             : #include <cstdint>
      16             : 
      17             : namespace llvm {
      18             : 
      19             : class raw_ostream;
      20             : 
      21           0 : class DWARFDebugMacro {
      22             :   /// A single macro entry within a macro list.
      23             :   struct Entry {
      24             :     /// The type of the macro entry.
      25             :     uint32_t Type;
      26             :     union {
      27             :       /// The source line where the macro is defined.
      28             :       uint64_t Line;
      29             :       /// Vendor extension constant value.
      30             :       uint64_t ExtConstant;
      31             :     };
      32             : 
      33             :     union {
      34             :       /// The string (name, value) of the macro entry.
      35             :       const char *MacroStr;
      36             :       // An unsigned integer indicating the identity of the source file.
      37             :       uint64_t File;
      38             :       /// Vendor extension string.
      39             :       const char *ExtStr;
      40             :     };
      41             :   };
      42             : 
      43             :   using MacroList = SmallVector<Entry, 4>;
      44             : 
      45             :   /// A list of all the macro entries in the debug_macinfo section.
      46             :   MacroList Macros;
      47             : 
      48             : public:
      49             :   DWARFDebugMacro() = default;
      50             : 
      51             :   /// Print the macro list found within the debug_macinfo section.
      52             :   void dump(raw_ostream &OS) const;
      53             : 
      54             :   /// Parse the debug_macinfo section accessible via the 'data' parameter.
      55             :   void parse(DataExtractor data);
      56             : 
      57             :   /// Return whether the section has any entries.
      58         204 :   bool empty() const { return Macros.empty(); }
      59             : };
      60             : 
      61             : } // end namespace llvm
      62             : 
      63             : #endif // LLVM_DEBUGINFO_DWARF_DWARFDEBUGMACRO_H

Generated by: LCOV version 1.13