Commit a5c89bb0 authored by Duncan P. N. Exon Smith's avatar Duncan P. N. Exon Smith
Browse files

Frontend: Migrate to FileEntryRef in CompilerInstance::InitializeSourceManager, NFC

Use `FileManager::getVirtualFileRef` to get the virtual file for stdin,
and add an overload of `SourceManager::overrideFileContents` that takes
a `FileEntryRef`, migrating `CompilerInstance::InitializeSourceManager`.

Differential Revision: https://reviews.llvm.org/D92680
parent 8b23b3ab
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -958,6 +958,10 @@ public:
  /// data in the given source file.
  void overrideFileContents(const FileEntry *SourceFile,
                            std::unique_ptr<llvm::MemoryBuffer> Buffer);
  void overrideFileContents(FileEntryRef SourceFile,
                            std::unique_ptr<llvm::MemoryBuffer> Buffer) {
    overrideFileContents(&SourceFile.getFileEntry(), std::move(Buffer));
  }

  /// Override the given source file with another one.
  ///
+2 −2
Original line number Diff line number Diff line
@@ -891,7 +891,7 @@ bool CompilerInstance::InitializeSourceManager(const FrontendInputFile &Input,
    }
    std::unique_ptr<llvm::MemoryBuffer> SB = std::move(SBOrErr.get());

    const FileEntry *File = FileMgr.getVirtualFile(SB->getBufferIdentifier(),
    FileEntryRef File = FileMgr.getVirtualFileRef(SB->getBufferIdentifier(),
                                                  SB->getBufferSize(), 0);
    SourceMgr.setMainFileID(
        SourceMgr.createFileID(File, SourceLocation(), Kind));