summaryrefslogtreecommitdiffstats
path: root/clang/lib/Tooling
diff options
context:
space:
mode:
authorAlp Toker <alp@nuanti.com>2013-10-29 07:56:03 +0000
committerAlp Toker <alp@nuanti.com>2013-10-29 07:56:03 +0000
commit7c3ba222e0d3e81f5e2480ed6ecd506d05c310ad (patch)
tree2e1541aa250e164c9e9efe90867e35f3262834ce /clang/lib/Tooling
parent54d5b55b0a1541180958657f6c960a5a6f649c52 (diff)
downloadbcm5719-llvm-7c3ba222e0d3e81f5e2480ed6ecd506d05c310ad.tar.gz
bcm5719-llvm-7c3ba222e0d3e81f5e2480ed6ecd506d05c310ad.zip
Revert "Use Rewriter::overwriteChangedFiles() directly"
This wasn't ready for prime time yet, seems to break tools-extra. This reverts commit r193590. llvm-svn: 193592
Diffstat (limited to 'clang/lib/Tooling')
-rw-r--r--clang/lib/Tooling/Refactoring.cpp18
1 files changed, 17 insertions, 1 deletions
diff --git a/clang/lib/Tooling/Refactoring.cpp b/clang/lib/Tooling/Refactoring.cpp
index fa35a74c9c4..9e58db0f482 100644
--- a/clang/lib/Tooling/Refactoring.cpp
+++ b/clang/lib/Tooling/Refactoring.cpp
@@ -301,7 +301,23 @@ bool RefactoringTool::applyAllReplacements(Rewriter &Rewrite) {
}
int RefactoringTool::saveRewrittenFiles(Rewriter &Rewrite) {
- return Rewrite.overwriteChangedFiles() ? 0 : 1;
+ for (Rewriter::buffer_iterator I = Rewrite.buffer_begin(),
+ E = Rewrite.buffer_end();
+ I != E; ++I) {
+ // FIXME: This code is copied from the FixItRewriter.cpp - I think it should
+ // go into directly into Rewriter (there we also have the Diagnostics to
+ // handle the error cases better).
+ const FileEntry *Entry =
+ Rewrite.getSourceMgr().getFileEntryForID(I->first);
+ std::string ErrorInfo;
+ llvm::raw_fd_ostream FileStream(Entry->getName(), ErrorInfo,
+ llvm::sys::fs::F_Binary);
+ if (!ErrorInfo.empty())
+ return 1;
+ I->second.write(FileStream);
+ FileStream.flush();
+ }
+ return 0;
}
} // end namespace tooling
OpenPOWER on IntegriCloud