From 147984a8adf15183de3f3a25f74b7b3620e2a1a6 Mon Sep 17 00:00:00 2001 From: Edwin Vane Date: Tue, 3 Sep 2013 13:16:02 +0000 Subject: cpp11-migrate: Refactor for driver model of operation Re-commit of r189691 and r189689 now with a proper autoconf fix. Massive simplification of how replacements and file overrides are handled by the migrator: * Sources and headers are all treated the same. * All replacements for a given translation unit are stored in the same TranslationUnitReplacements structure. * Change tracking is updated only from main file; no need for propagating "is tracking" flag around. * Transform base class no longer responsible for applying replacements. They are simply stored and main() looks after deduplication and application. * Renamed -yaml-only to -serialize-replacements. Same restrictions apply: Can only request one transform. New restriction: formatting cannot also be turned on since it's basically a transform. * If -serialize-replacements is requested, changes to files will not be applied on disk. * Changed behaviour of function generating names for serialized replacements: Only the main source file goes into the name of the file since a file may contain changes for multiple different files. * Updated HeaderReplacements LIT test for new serialization behaviour. * Replaced old test that ensures replacements are not serialized if -serialize-replacements is not provided. New version ensures changes are made directly to all files in the translation unit. * Updated unit tests. * Due to major simplification of structures in FileOverrides.h, the FileOverridesTest is quite a bit simpler now. llvm-svn: 189798 --- clang-tools-extra/cpp11-migrate/AddOverride/AddOverrideActions.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'clang-tools-extra/cpp11-migrate/AddOverride/AddOverrideActions.cpp') diff --git a/clang-tools-extra/cpp11-migrate/AddOverride/AddOverrideActions.cpp b/clang-tools-extra/cpp11-migrate/AddOverride/AddOverrideActions.cpp index 47c070e55ae..134318ed386 100644 --- a/clang-tools-extra/cpp11-migrate/AddOverride/AddOverrideActions.cpp +++ b/clang-tools-extra/cpp11-migrate/AddOverride/AddOverrideActions.cpp @@ -95,6 +95,7 @@ void AddOverrideFixer::run(const MatchFinder::MatchResult &Result) { if (!MacroName.empty()) ReplacementText = (" " + MacroName).str(); } - Replace.insert(tooling::Replacement(SM, StartLoc, 0, ReplacementText)); + Owner.addReplacementForCurrentTU( + tooling::Replacement(SM, StartLoc, 0, ReplacementText)); ++AcceptedChanges; } -- cgit v1.2.3