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

          Line data    Source code
       1             : //===- DWARFAttribute.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_DWARFATTRIBUTE_H
      11             : #define LLVM_DEBUGINFO_DWARFATTRIBUTE_H
      12             : 
      13             : #include "llvm/BinaryFormat/Dwarf.h"
      14             : #include "llvm/DebugInfo/DWARF/DWARFFormValue.h"
      15             : #include <cstdint>
      16             : 
      17             : namespace llvm {
      18             : 
      19             : //===----------------------------------------------------------------------===//
      20             : /// Encapsulates a DWARF attribute value and all of the data required to
      21             : /// describe the attribute value.
      22             : ///
      23             : /// This class is designed to be used by clients that want to iterate across all
      24             : /// attributes in a DWARFDie.
      25             : struct DWARFAttribute {
      26             :   /// The debug info/types offset for this attribute.
      27             :   uint32_t Offset = 0;
      28             :   /// The debug info/types section byte size of the data for this attribute.
      29             :   uint32_t ByteSize = 0;
      30             :   /// The attribute enumeration of this attribute.
      31             :   dwarf::Attribute Attr;
      32             :   /// The form and value for this attribute.
      33             :   DWARFFormValue Value;
      34             : 
      35             :   DWARFAttribute(uint32_t O, dwarf::Attribute A = dwarf::Attribute(0),
      36        1052 :                  dwarf::Form F = dwarf::Form(0)) : Attr(A), Value(F) {}
      37             : 
      38             :   bool isValid() const {
      39             :     return Offset != 0 && Attr != dwarf::Attribute(0);
      40             :   }
      41             : 
      42             :   explicit operator bool() const {
      43             :     return isValid();
      44             :   }
      45             : 
      46             :   void clear() {
      47         526 :     Offset = 0;
      48         526 :     ByteSize = 0;
      49         526 :     Attr = dwarf::Attribute(0);
      50         526 :     Value = DWARFFormValue();
      51             :   }
      52             : };
      53             : 
      54             : } // end namespace llvm
      55             : 
      56             : #endif // LLVM_DEBUGINFO_DWARFATTRIBUTE_H

Generated by: LCOV version 1.13