1//===-- SymbolFileDWARFDwoDwp.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 SymbolFileDWARFDwoDwp_SymbolFileDWARFDwoDwp_h_
10#define SymbolFileDWARFDwoDwp_SymbolFileDWARFDwoDwp_h_
11
12#include "SymbolFileDWARFDwo.h"
13#include "SymbolFileDWARFDwp.h"
14
15class SymbolFileDWARFDwoDwp : public SymbolFileDWARFDwo {
16  /// LLVM RTTI support.
17  static char ID;
18
19public:
20  /// LLVM RTTI support.
21  /// \{
22  bool isA(const void *ClassID) const override {
23    return ClassID == &ID || SymbolFileDWARFDwo::isA(ClassID);
24  }
25  static bool classof(const SymbolFile *obj) { return obj->isA(&ID); }
26  /// \}
27  SymbolFileDWARFDwoDwp(SymbolFileDWARFDwp *dwp_symfile,
28                        lldb::ObjectFileSP objfile, DWARFCompileUnit &dwarf_cu,
29                        uint64_t dwo_id);
30
31protected:
32  void LoadSectionData(lldb::SectionType sect_type,
33                       lldb_private::DWARFDataExtractor &data) override;
34
35  SymbolFileDWARFDwp *m_dwp_symfile;
36  uint64_t m_dwo_id;
37};
38
39#endif // SymbolFileDWARFDwoDwp_SymbolFileDWARFDwoDwp_h_
40