Home | History | Annotate | Download | only in DWARF
      1 //===-- DWARFTypeUnit.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_LIB_DEBUGINFO_DWARFTYPEUNIT_H
     11 #define LLVM_LIB_DEBUGINFO_DWARFTYPEUNIT_H
     12 
     13 #include "llvm/DebugInfo/DWARF/DWARFUnit.h"
     14 
     15 namespace llvm {
     16 
     17 class DWARFTypeUnit : public DWARFUnit {
     18 private:
     19   uint64_t TypeHash;
     20   uint32_t TypeOffset;
     21 public:
     22   DWARFTypeUnit(DWARFContext &Context, const DWARFSection &Section,
     23                 const DWARFDebugAbbrev *DA, StringRef RS, StringRef SS,
     24                 StringRef SOS, StringRef AOS, StringRef LS, bool LE,
     25                 const DWARFUnitSectionBase &UnitSection,
     26                 const DWARFUnitIndex::Entry *Entry)
     27       : DWARFUnit(Context, Section, DA, RS, SS, SOS, AOS, LS, LE, UnitSection,
     28                   Entry) {}
     29   uint32_t getHeaderSize() const override {
     30     return DWARFUnit::getHeaderSize() + 12;
     31   }
     32   void dump(raw_ostream &OS);
     33   static const DWARFSectionKind Section = DW_SECT_TYPES;
     34 
     35 protected:
     36   bool extractImpl(DataExtractor debug_info, uint32_t *offset_ptr) override;
     37 };
     38 
     39 }
     40 
     41 #endif
     42 
     43