arphaman created this revision.
We should clear the error on the output stream to prevent the call to
`report_fatal_error` from `raw_fd_ostreams`'s destructor.
I couldn't think of a way to test this, do you think it's possible to have a
test for this?
Repository:
rL LLVM
https://reviews.llvm.org/D33357
Files:
lib/Serialization/ASTReader.cpp
Index: lib/Serialization/ASTReader.cpp
===================================================================
--- lib/Serialization/ASTReader.cpp
+++ lib/Serialization/ASTReader.cpp
@@ -3650,9 +3650,13 @@
std::string TimestampFilename = MF.getTimestampFilename();
std::error_code EC;
llvm::raw_fd_ostream OS(TimestampFilename, EC, llvm::sys::fs::F_Text);
- if (EC)
+ if (EC) {
+ OS.clear_error(); // Avoid triggering a fatal error.
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
Index: lib/Serialization/ASTReader.cpp
===================================================================
--- lib/Serialization/ASTReader.cpp
+++ lib/Serialization/ASTReader.cpp
@@ -3650,9 +3650,13 @@
std::string TimestampFilename = MF.getTimestampFilename();
std::error_code EC;
llvm::raw_fd_ostream OS(TimestampFilename, EC, llvm::sys::fs::F_Text);
- if (EC)
+ if (EC) {
+ OS.clear_error(); // Avoid triggering a fatal error.
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
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits