llvm-project/clang-tools-extra
Edwin Vane 147984a8ad 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
2013-09-03 13:16:02 +00:00
..
clang-replace clang-replace: Fix autoconf build failures 2013-08-30 15:40:26 +00:00
clang-tidy clang-tidy's modules depend on it. 2013-08-04 16:06:43 +00:00
cpp11-migrate cpp11-migrate: Refactor for driver model of operation 2013-09-03 13:16:02 +00:00
docs cpp11-migrate: Add Pass-By-Value Transform 2013-08-29 13:42:13 +00:00
modularize Updated the main comment with respect to problems and future directions. 2013-08-26 15:55:47 +00:00
remove-cstr-calls Fix speling. 2013-08-08 16:49:52 +00:00
test cpp11-migrate: Refactor for driver model of operation 2013-09-03 13:16:02 +00:00
tool-template Add a dependency on LLVM's option library for clang-tools-extra 2013-06-14 17:34:04 +00:00
unittests cpp11-migrate: Refactor for driver model of operation 2013-09-03 13:16:02 +00:00
.arcconfig Add .arcconfig for Arcanist support for Phabricator 2013-01-10 04:12:08 +00:00
.gitignore .gitignore: ignore docs/_build 2013-03-03 15:15:12 +00:00
CMakeLists.txt Introducing new tool clang-replace 2013-08-22 13:07:14 +00:00
CODE_OWNERS.TXT Adding a new code owners file for clang-tools-extra. 2013-03-14 16:56:31 +00:00
LICENSE.TXT Update the copyright coredits -- Happy new year 2013! 2013-01-01 10:00:19 +00:00
Makefile cpp11-migrate: Refactor for driver model of operation 2013-09-03 13:16:02 +00:00
README.txt Reverted to correct commit this time. 2012-08-24 23:29:33 +00:00

README.txt

//===----------------------------------------------------------------------===//
// Clang Tools repository
//===----------------------------------------------------------------------===//

Welcome to the repository of extra Clang Tools.  This repository holds tools
that are developed as part of the LLVM compiler infrastructure project and the
Clang frontend.  These tools are kept in a separate "extra" repository to
allow lighter weight checkouts of the core Clang codebase.

This repository is only intended to be checked out inside of a full LLVM+Clang
tree, and in the 'tools/extra' subdirectory of the Clang checkout.

All discussion regarding Clang, Clang-based tools, and code in this repository
should be held using the standard Clang mailing lists:
  http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev

Code review for this tree should take place on the standard Clang patch and
commit lists:
  http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

If you find a bug in these tools, please file it in the LLVM bug tracker:
  http://llvm.org/bugs/