diff options
author | Alp Toker <alp@nuanti.com> | 2013-10-29 07:56:03 +0000 |
---|---|---|
committer | Alp Toker <alp@nuanti.com> | 2013-10-29 07:56:03 +0000 |
commit | 7c3ba222e0d3e81f5e2480ed6ecd506d05c310ad (patch) | |
tree | 2e1541aa250e164c9e9efe90867e35f3262834ce /clang/lib/Tooling | |
parent | 54d5b55b0a1541180958657f6c960a5a6f649c52 (diff) | |
download | bcm5719-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.cpp | 18 |
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 |