clang-replace: Write merged changes to disk
Functionality for clang-replace completed with the addition of the ability to
write merged replacements to disk.
Test added.
Differential Revision: http://llvm-reviews.chandlerc.com/D1460
llvm-svn: 189014
diff --git a/clang-tools-extra/clang-replace/tool/ClangReplaceMain.cpp b/clang-tools-extra/clang-replace/tool/ClangReplaceMain.cpp
index f085ed8..dae4652 100644
--- a/clang-tools-extra/clang-replace/tool/ClangReplaceMain.cpp
+++ b/clang-tools-extra/clang-replace/tool/ClangReplaceMain.cpp
@@ -15,6 +15,7 @@
#include "ApplyReplacements.h"
#include "clang/Basic/Diagnostic.h"
#include "clang/Basic/DiagnosticOptions.h"
+#include "clang/Basic/SourceManager.h"
#include "llvm/Support/CommandLine.h"
using namespace llvm;
@@ -43,8 +44,13 @@
return false;
}
+ FileManager Files((FileSystemOptions()));
+ SourceManager SM(Diagnostics, Files);
+
FileToReplacementsMap GroupedReplacements;
- if (mergeAndDeduplicate(TUs, GroupedReplacements, Diagnostics))
- return 0;
- return 1;
+ if (!mergeAndDeduplicate(TUs, GroupedReplacements, SM))
+ return 1;
+
+ if (!applyReplacements(GroupedReplacements, SM))
+ return 1;
}