//===-- CompileUnit.h -------------------------------------------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #ifndef LLDB_SYMBOL_COMPILEUNIT_H #define LLDB_SYMBOL_COMPILEUNIT_H #include "lldb/Core/ModuleChild.h" #include "lldb/Core/SourceLocationSpec.h" #include "lldb/Symbol/DebugMacros.h" #include "lldb/Symbol/Function.h" #include "lldb/Symbol/LineTable.h" #include "lldb/Symbol/SourceModule.h" #include "lldb/Utility/FileSpecList.h" #include "lldb/Utility/Stream.h" #include "lldb/Utility/UserID.h" #include "lldb/lldb-enumerations.h" #include "lldb/lldb-forward.h" #include "llvm/ADT/DenseMap.h" #include "llvm/ADT/DenseSet.h" namespace lldb_private { /// \class CompileUnit CompileUnit.h "lldb/Symbol/CompileUnit.h" /// A class that describes a compilation unit. /// /// A representation of a compilation unit, or compiled source file. /// The UserID of the compile unit is specified by the SymbolFile plug-in and /// can have any value as long as the value is unique within the Module that /// owns this compile units. /// /// Each compile unit has a list of functions, global and static variables, /// support file list (include files and inlined source files), and a line /// table. class CompileUnit : public std::enable_shared_from_this<CompileUnit>, public ModuleChild, public UserID, public SymbolContextScope { … }; } // namespace lldb_private #endif // LLDB_SYMBOL_COMPILEUNIT_H