//===- ModuleFile.h - Module file description -------------------*- 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 // //===----------------------------------------------------------------------===// // // This file defines the Module class, which describes a module that has // been loaded from an AST file. // //===----------------------------------------------------------------------===// #ifndef LLVM_CLANG_SERIALIZATION_MODULEFILE_H #define LLVM_CLANG_SERIALIZATION_MODULEFILE_H #include "clang/Basic/FileManager.h" #include "clang/Basic/Module.h" #include "clang/Basic/SourceLocation.h" #include "clang/Serialization/ASTBitCodes.h" #include "clang/Serialization/ContinuousRangeMap.h" #include "clang/Serialization/ModuleFileExtension.h" #include "llvm/ADT/BitVector.h" #include "llvm/ADT/DenseMap.h" #include "llvm/ADT/PointerIntPair.h" #include "llvm/ADT/SetVector.h" #include "llvm/ADT/SmallVector.h" #include "llvm/ADT/StringRef.h" #include "llvm/Bitstream/BitstreamReader.h" #include "llvm/Support/Endian.h" #include <cassert> #include <cstdint> #include <memory> #include <string> #include <vector> namespace clang { namespace serialization { /// Specifies the kind of module that has been loaded. enum ModuleKind { … }; /// The input file info that has been loaded from an AST file. struct InputFileInfo { … }; /// The input file that has been loaded from this AST file, along with /// bools indicating whether this was an overridden buffer or if it was /// out-of-date or not-found. class InputFile { … }; /// Information about a module that has been loaded by the ASTReader. /// /// Each instance of the Module class corresponds to a single AST file, which /// may be a precompiled header, precompiled preamble, a module, or an AST file /// of some sort loaded as the main file, all of which are specific formulations /// of the general notion of a "module". A module may depend on any number of /// other modules. class ModuleFile { … }; } // namespace serialization } // namespace clang #endif // LLVM_CLANG_SERIALIZATION_MODULEFILE_H