diff --git a/clang/include/clang/Serialization/ASTWriter.h b/clang/include/clang/Serialization/ASTWriter.h index f2c7c03ff0936..98445d40ebd82 100644 --- a/clang/include/clang/Serialization/ASTWriter.h +++ b/clang/include/clang/Serialization/ASTWriter.h @@ -613,7 +613,6 @@ class ASTWriter : public ASTDeserializationListener, /// the module but currently is merely a random 32-bit number. ASTFileSignature WriteAST(Sema &SemaRef, StringRef OutputFile, Module *WritingModule, StringRef isysroot, - bool hasErrors = false, bool ShouldCacheASTInMemory = false); /// Emit a token. diff --git a/clang/lib/Frontend/ASTUnit.cpp b/clang/lib/Frontend/ASTUnit.cpp index 016f88a43a56d..85157c3b21b66 100644 --- a/clang/lib/Frontend/ASTUnit.cpp +++ b/clang/lib/Frontend/ASTUnit.cpp @@ -2341,12 +2341,9 @@ bool ASTUnit::Save(StringRef File) { return false; } -static bool serializeUnit(ASTWriter &Writer, - SmallVectorImpl &Buffer, - Sema &S, - bool hasErrors, - raw_ostream &OS) { - Writer.WriteAST(S, std::string(), nullptr, "", hasErrors); +static bool serializeUnit(ASTWriter &Writer, SmallVectorImpl &Buffer, + Sema &S, raw_ostream &OS) { + Writer.WriteAST(S, std::string(), nullptr, ""); // Write the generated bitstream to "Out". if (!Buffer.empty()) @@ -2356,18 +2353,14 @@ static bool serializeUnit(ASTWriter &Writer, } bool ASTUnit::serialize(raw_ostream &OS) { - // For serialization we are lenient if the errors were only warn-as-error kind. - bool hasErrors = getDiagnostics().hasUncompilableErrorOccurred(); - if (WriterData) - return serializeUnit(WriterData->Writer, WriterData->Buffer, - getSema(), hasErrors, OS); + return serializeUnit(WriterData->Writer, WriterData->Buffer, getSema(), OS); SmallString<128> Buffer; llvm::BitstreamWriter Stream(Buffer); InMemoryModuleCache ModuleCache; ASTWriter Writer(Stream, Buffer, ModuleCache, {}); - return serializeUnit(Writer, Buffer, getSema(), hasErrors, OS); + return serializeUnit(Writer, Buffer, getSema(), OS); } using SLocRemap = ContinuousRangeMap; diff --git a/clang/lib/Serialization/ASTWriter.cpp b/clang/lib/Serialization/ASTWriter.cpp index 201e2fcaaec91..0acd86de06ba4 100644 --- a/clang/lib/Serialization/ASTWriter.cpp +++ b/clang/lib/Serialization/ASTWriter.cpp @@ -4622,12 +4622,12 @@ time_t ASTWriter::getTimestampForOutput(const FileEntry *E) const { ASTFileSignature ASTWriter::WriteAST(Sema &SemaRef, StringRef OutputFile, Module *WritingModule, StringRef isysroot, - bool hasErrors, bool ShouldCacheASTInMemory) { llvm::TimeTraceScope scope("WriteAST", OutputFile); WritingAST = true; - ASTHasCompilerErrors = hasErrors; + ASTHasCompilerErrors = + SemaRef.PP.getDiagnostics().hasUncompilableErrorOccurred(); // Emit the file header. Stream.Emit((unsigned)'C', 8); diff --git a/clang/lib/Serialization/GeneratePCH.cpp b/clang/lib/Serialization/GeneratePCH.cpp index 601a24b4aec46..cf8084333811f 100644 --- a/clang/lib/Serialization/GeneratePCH.cpp +++ b/clang/lib/Serialization/GeneratePCH.cpp @@ -65,12 +65,8 @@ void PCHGenerator::HandleTranslationUnit(ASTContext &Ctx) { // 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(), - ShouldCacheASTInMemory); + Buffer->Signature = Writer.WriteAST(*SemaPtr, OutputFile, Module, isysroot, + ShouldCacheASTInMemory); Buffer->IsComplete = true; }