From: Alex Lorenz Date: Fri, 2 Jun 2017 10:36:56 +0000 (+0000) Subject: Avoid calling report_fatal_error in the destructor of raw_fd_ostream X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8679b18b176b0675a7d5c30551e2c271a9050239;p=clang Avoid calling report_fatal_error in the destructor of raw_fd_ostream when saving a module timestamp file This commit doesn't include a test as it requires a test that reproduces a file write/close error that couldn't really be constructed artificially. rdar://31860650 Differential Revision: https://reviews.llvm.org/D33357 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@304538 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Serialization/ASTReader.cpp b/lib/Serialization/ASTReader.cpp index 125b045351..e16a9b3ee3 100644 --- a/lib/Serialization/ASTReader.cpp +++ b/lib/Serialization/ASTReader.cpp @@ -3697,6 +3697,8 @@ static void updateModuleTimestamp(ModuleFile &MF) { if (EC) return; OS << "Timestamp file\n"; + OS.close(); + OS.clear_error(); // Avoid triggering a fatal error. } /// \brief Given a cursor at the start of an AST file, scan ahead and drop the