LLVM API Documentation
00001 //===-- DWARFTypeUnit.h -----------------------------------------*- C++ -*-===// 00002 // 00003 // The LLVM Compiler Infrastructure 00004 // 00005 // This file is distributed under the University of Illinois Open Source 00006 // License. See LICENSE.TXT for details. 00007 // 00008 //===----------------------------------------------------------------------===// 00009 00010 #ifndef LLVM_LIB_DEBUGINFO_DWARFTYPEUNIT_H 00011 #define LLVM_LIB_DEBUGINFO_DWARFTYPEUNIT_H 00012 00013 #include "DWARFUnit.h" 00014 00015 namespace llvm { 00016 00017 class DWARFTypeUnit : public DWARFUnit { 00018 private: 00019 uint64_t TypeHash; 00020 uint32_t TypeOffset; 00021 public: 00022 DWARFTypeUnit(DWARFContext &Context, const DWARFDebugAbbrev *DA, 00023 StringRef IS, StringRef RS, StringRef SS, StringRef SOS, 00024 StringRef AOS, const RelocAddrMap *M, bool LE, 00025 const DWARFUnitSectionBase &UnitSection) 00026 : DWARFUnit(Context, DA, IS, RS, SS, SOS, AOS, M, LE, UnitSection) {} 00027 uint32_t getHeaderSize() const override { 00028 return DWARFUnit::getHeaderSize() + 12; 00029 } 00030 void dump(raw_ostream &OS); 00031 protected: 00032 bool extractImpl(DataExtractor debug_info, uint32_t *offset_ptr) override; 00033 }; 00034 00035 } 00036 00037 #endif 00038