summaryrefslogtreecommitdiffstats
path: root/gnu/llvm/tools/clang/lib/Serialization/GeneratePCH.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/llvm/tools/clang/lib/Serialization/GeneratePCH.cpp')
-rw-r--r--gnu/llvm/tools/clang/lib/Serialization/GeneratePCH.cpp76
1 files changed, 0 insertions, 76 deletions
diff --git a/gnu/llvm/tools/clang/lib/Serialization/GeneratePCH.cpp b/gnu/llvm/tools/clang/lib/Serialization/GeneratePCH.cpp
deleted file mode 100644
index 2e0076521f9..00000000000
--- a/gnu/llvm/tools/clang/lib/Serialization/GeneratePCH.cpp
+++ /dev/null
@@ -1,76 +0,0 @@
-//===--- GeneratePCH.cpp - Sema Consumer for PCH Generation -----*- C++ -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines the PCHGenerator, which as a SemaConsumer that generates
-// a PCH file.
-//
-//===----------------------------------------------------------------------===//
-
-#include "clang/AST/ASTContext.h"
-#include "clang/Lex/HeaderSearch.h"
-#include "clang/Lex/Preprocessor.h"
-#include "clang/Sema/SemaConsumer.h"
-#include "clang/Serialization/ASTWriter.h"
-#include "llvm/Bitcode/BitstreamWriter.h"
-
-using namespace clang;
-
-PCHGenerator::PCHGenerator(
- const Preprocessor &PP, StringRef OutputFile, StringRef isysroot,
- std::shared_ptr<PCHBuffer> Buffer,
- ArrayRef<std::shared_ptr<ModuleFileExtension>> Extensions,
- bool AllowASTWithErrors, bool IncludeTimestamps)
- : PP(PP), OutputFile(OutputFile), isysroot(isysroot.str()),
- SemaPtr(nullptr), Buffer(std::move(Buffer)), Stream(this->Buffer->Data),
- Writer(Stream, this->Buffer->Data, PP.getPCMCache(), Extensions,
- IncludeTimestamps),
- AllowASTWithErrors(AllowASTWithErrors) {
- this->Buffer->IsComplete = false;
-}
-
-PCHGenerator::~PCHGenerator() {
-}
-
-void PCHGenerator::HandleTranslationUnit(ASTContext &Ctx) {
- // Don't create a PCH if there were fatal failures during module loading.
- if (PP.getModuleLoader().HadFatalFailure)
- return;
-
- bool hasErrors = PP.getDiagnostics().hasErrorOccurred();
- if (hasErrors && !AllowASTWithErrors)
- return;
-
- Module *Module = nullptr;
- if (PP.getLangOpts().isCompilingModule()) {
- Module = PP.getHeaderSearchInfo().lookupModule(
- PP.getLangOpts().CurrentModule, /*AllowSearch*/ false);
- if (!Module) {
- assert(hasErrors && "emitting module but current module doesn't exist");
- return;
- }
- }
-
- // Emit the PCH file to the Buffer.
- assert(SemaPtr && "No Sema?");
- Buffer->Signature =
- Writer.WriteAST(*SemaPtr, OutputFile, Module, isysroot,
- // For serialization we are lenient if the errors were
- // only warn-as-error kind.
- PP.getDiagnostics().hasUncompilableErrorOccurred());
-
- Buffer->IsComplete = true;
-}
-
-ASTMutationListener *PCHGenerator::GetASTMutationListener() {
- return &Writer;
-}
-
-ASTDeserializationListener *PCHGenerator::GetASTDeserializationListener() {
- return &Writer;
-}