aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>2012-03-13 02:17:06 +0000
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>2012-03-13 02:17:06 +0000
commit4bd265468cb115efd5c87c59d5a5b6af5d24d48c (patch)
tree70312c437105dc73b2be5e1adf787ff582c3f9ab
parent23dde82d9043d404ee506880796b761bfec93d0d (diff)
[libclang] When there's a file error when saving the PCH, make sure to
clear the error from raw_fd_ostream, otherwise we will crash. rdar://10976410 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152605 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Frontend/ASTUnit.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/Frontend/ASTUnit.cpp b/lib/Frontend/ASTUnit.cpp
index 7514d8adc3..25c8ab89b7 100644
--- a/lib/Frontend/ASTUnit.cpp
+++ b/lib/Frontend/ASTUnit.cpp
@@ -2411,8 +2411,10 @@ CXSaveError ASTUnit::Save(StringRef File) {
serialize(Out);
Out.close();
- if (Out.has_error())
+ if (Out.has_error()) {
+ Out.clear_error();
return CXSaveError_Unknown;
+ }
if (llvm::sys::fs::rename(TempPath.str(), File)) {
bool exists;