aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/ASTUnit.cpp
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
commiteeea16a0d5aef93d6ab8c7184a3d5f73b7a8bb76 (patch)
tree337dce4807e6dc8a342b136e27d4d14ed1a10b1e /clang/lib/Frontend/ASTUnit.cpp
parent68fc21562fbadae641909d0a0be4c89691b83d03 (diff)
downloadllvm-eeea16a0d5aef93d6ab8c7184a3d5f73b7a8bb76.zip
llvm-eeea16a0d5aef93d6ab8c7184a3d5f73b7a8bb76.tar.gz
llvm-eeea16a0d5aef93d6ab8c7184a3d5f73b7a8bb76.tar.bz2
[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 llvm-svn: 152605
Diffstat (limited to 'clang/lib/Frontend/ASTUnit.cpp')
-rw-r--r--clang/lib/Frontend/ASTUnit.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/clang/lib/Frontend/ASTUnit.cpp b/clang/lib/Frontend/ASTUnit.cpp
index 7514d8a..25c8ab8 100644
--- a/clang/lib/Frontend/ASTUnit.cpp
+++ b/clang/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;