1 //===- DWARFCompileUnit.h ---------------------------------------*- C++ -*-===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 9 #ifndef LLVM_DEBUGINFO_DWARF_DWARFCOMPILEUNIT_H 10 #define LLVM_DEBUGINFO_DWARF_DWARFCOMPILEUNIT_H 11 12 #include "llvm/DebugInfo/DWARF/DWARFUnit.h" 13 14 namespace llvm { 15 16 class DWARFContext; 17 class DWARFDebugAbbrev; 18 class raw_ostream; 19 struct DIDumpOptions; 20 struct DWARFSection; 21 22 class DWARFCompileUnit : public DWARFUnit { 23 public: DWARFCompileUnit(DWARFContext & Context,const DWARFSection & Section,const DWARFUnitHeader & Header,const DWARFDebugAbbrev * DA,const DWARFSection * RS,const DWARFSection * LocSection,StringRef SS,const DWARFSection & SOS,const DWARFSection * AOS,const DWARFSection & LS,bool LE,bool IsDWO,const DWARFUnitVector & UnitVector)24 DWARFCompileUnit(DWARFContext &Context, const DWARFSection &Section, 25 const DWARFUnitHeader &Header, const DWARFDebugAbbrev *DA, 26 const DWARFSection *RS, const DWARFSection *LocSection, 27 StringRef SS, const DWARFSection &SOS, 28 const DWARFSection *AOS, const DWARFSection &LS, bool LE, 29 bool IsDWO, const DWARFUnitVector &UnitVector) 30 : DWARFUnit(Context, Section, Header, DA, RS, LocSection, SS, SOS, AOS, 31 LS, LE, IsDWO, UnitVector) {} 32 33 /// VTable anchor. 34 ~DWARFCompileUnit() override; 35 /// Dump this compile unit to \p OS. 36 void dump(raw_ostream &OS, DIDumpOptions DumpOpts) override; 37 /// Enable LLVM-style RTTI. classof(const DWARFUnit * U)38 static bool classof(const DWARFUnit *U) { return !U->isTypeUnit(); } 39 }; 40 41 } // end namespace llvm 42 43 #endif // LLVM_DEBUGINFO_DWARF_DWARFCOMPILEUNIT_H 44