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 14namespace llvm { 15 16class DWARFContext; 17class DWARFDebugAbbrev; 18class raw_ostream; 19struct DIDumpOptions; 20struct DWARFSection; 21 22class DWARFCompileUnit : public DWARFUnit { 23public: 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. 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