mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
Merge pull request #27635 from varungandhi-apple/vg-robustify-module-trace-emission
Make module trace emission more robust.
This commit is contained in:
@@ -31,8 +31,8 @@ enum class ModuleLoadingMode {
|
||||
OnlySerialized
|
||||
};
|
||||
|
||||
/// Common functionality shared between \c SerializedModuleLoader and
|
||||
/// \c ModuleInterfaceLoader.
|
||||
/// Common functionality shared between \c SerializedModuleLoader,
|
||||
/// \c ModuleInterfaceLoader and \c MemoryBufferSerializedModuleLoader.
|
||||
class SerializedModuleLoaderBase : public ModuleLoader {
|
||||
/// A { module, generation # } pair.
|
||||
using LoadedModulePair = std::pair<std::unique_ptr<ModuleFile>, unsigned>;
|
||||
@@ -53,6 +53,7 @@ protected:
|
||||
|
||||
using AccessPathElem = std::pair<Identifier, SourceLoc>;
|
||||
bool findModule(AccessPathElem moduleID,
|
||||
SmallVectorImpl<char> *moduleInterfacePath,
|
||||
std::unique_ptr<llvm::MemoryBuffer> *moduleBuffer,
|
||||
std::unique_ptr<llvm::MemoryBuffer> *moduleDocBuffer,
|
||||
std::unique_ptr<llvm::MemoryBuffer> *moduleSourceInfoBuffer,
|
||||
@@ -74,6 +75,7 @@ protected:
|
||||
AccessPathElem ModuleID, StringRef DirPath, StringRef ModuleFilename,
|
||||
StringRef ModuleDocFilename,
|
||||
StringRef ModuleSourceInfoFilename,
|
||||
SmallVectorImpl<char> *ModuleInterfacePath,
|
||||
std::unique_ptr<llvm::MemoryBuffer> *ModuleBuffer,
|
||||
std::unique_ptr<llvm::MemoryBuffer> *ModuleDocBuffer,
|
||||
std::unique_ptr<llvm::MemoryBuffer> *ModuleSourceInfoBuffer) = 0;
|
||||
@@ -127,6 +129,7 @@ public:
|
||||
/// If the AST cannot be loaded and \p diagLoc is present, a diagnostic is
|
||||
/// printed. (Note that \p diagLoc is allowed to be invalid.)
|
||||
FileUnit *loadAST(ModuleDecl &M, Optional<SourceLoc> diagLoc,
|
||||
StringRef moduleInterfacePath,
|
||||
std::unique_ptr<llvm::MemoryBuffer> moduleInputBuffer,
|
||||
std::unique_ptr<llvm::MemoryBuffer> moduleDocInputBuffer,
|
||||
std::unique_ptr<llvm::MemoryBuffer> moduleSourceInfoInputBuffer,
|
||||
@@ -178,6 +181,7 @@ class SerializedModuleLoader : public SerializedModuleLoaderBase {
|
||||
AccessPathElem ModuleID, StringRef DirPath, StringRef ModuleFilename,
|
||||
StringRef ModuleDocFilename,
|
||||
StringRef ModuleSourceInfoFilename,
|
||||
SmallVectorImpl<char> *ModuleInterfacePath,
|
||||
std::unique_ptr<llvm::MemoryBuffer> *ModuleBuffer,
|
||||
std::unique_ptr<llvm::MemoryBuffer> *ModuleDocBuffer,
|
||||
std::unique_ptr<llvm::MemoryBuffer> *ModuleSourceInfoBuffer) override;
|
||||
@@ -223,6 +227,7 @@ class MemoryBufferSerializedModuleLoader : public SerializedModuleLoaderBase {
|
||||
AccessPathElem ModuleID, StringRef DirPath, StringRef ModuleFilename,
|
||||
StringRef ModuleDocFilename,
|
||||
StringRef ModuleSourceInfoFilename,
|
||||
SmallVectorImpl<char> *ModuleInterfacePath,
|
||||
std::unique_ptr<llvm::MemoryBuffer> *ModuleBuffer,
|
||||
std::unique_ptr<llvm::MemoryBuffer> *ModuleDocBuffer,
|
||||
std::unique_ptr<llvm::MemoryBuffer> *ModuleSourceInfoBuffer) override;
|
||||
|
||||
Reference in New Issue
Block a user