[clang-tools-extra] r255886 - Remove clang-modernize.

Aaron Ballman via cfe-commits cfe-commits at lists.llvm.org
Thu Dec 17 05:40:15 PST 2015


On Thu, Dec 17, 2015 at 6:49 AM, Alexander Kornienko via cfe-commits
<cfe-commits at lists.llvm.org> wrote:
> Author: alexfh
> Date: Thu Dec 17 05:49:19 2015
> New Revision: 255886
>
> URL: http://llvm.org/viewvc/llvm-project?rev=255886&view=rev
> Log:
> Remove clang-modernize.
>
> Summary:
> clang-modernize transforms have moved to clang-tidy. Removing
> the old tool now.

Awesome, thank you!

~Aaron

>
> Reviewers: klimek
>
> Subscribers: cfe-commits
>
> Differential Revision: http://reviews.llvm.org/D15606
>
> Removed:
>     clang-tools-extra/trunk/clang-modernize/
>     clang-tools-extra/trunk/docs/AddOverrideTransform.rst
>     clang-tools-extra/trunk/docs/LoopConvertTransform.rst
>     clang-tools-extra/trunk/docs/MigratorUsage.rst
>     clang-tools-extra/trunk/docs/ModernizerUsage.rst
>     clang-tools-extra/trunk/docs/PassByValueTransform.rst
>     clang-tools-extra/trunk/docs/ReplaceAutoPtrTransform.rst
>     clang-tools-extra/trunk/docs/UseAutoTransform.rst
>     clang-tools-extra/trunk/docs/UseNullptrTransform.rst
>     clang-tools-extra/trunk/test/clang-modernize/
>     clang-tools-extra/trunk/unittests/clang-modernize/
>     clang-tools-extra/trunk/unittests/include/common/Utility.h
> Modified:
>     clang-tools-extra/trunk/CMakeLists.txt
>     clang-tools-extra/trunk/Makefile
>     clang-tools-extra/trunk/docs/clang-modernize.rst
>     clang-tools-extra/trunk/docs/cpp11-migrate.rst
>     clang-tools-extra/trunk/docs/index.rst
>     clang-tools-extra/trunk/test/CMakeLists.txt
>     clang-tools-extra/trunk/unittests/CMakeLists.txt
>     clang-tools-extra/trunk/unittests/Makefile
>
> Modified: clang-tools-extra/trunk/CMakeLists.txt
> URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/CMakeLists.txt?rev=255886&r1=255885&r2=255886&view=diff
> ==============================================================================
> --- clang-tools-extra/trunk/CMakeLists.txt (original)
> +++ clang-tools-extra/trunk/CMakeLists.txt Thu Dec 17 05:49:19 2015
> @@ -1,5 +1,4 @@
>  add_subdirectory(clang-apply-replacements)
> -add_subdirectory(clang-modernize)
>  add_subdirectory(clang-rename)
>  add_subdirectory(modularize)
>  if(CLANG_ENABLE_STATIC_ANALYZER)
>
> Modified: clang-tools-extra/trunk/Makefile
> URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/Makefile?rev=255886&r1=255885&r2=255886&view=diff
> ==============================================================================
> --- clang-tools-extra/trunk/Makefile (original)
> +++ clang-tools-extra/trunk/Makefile Thu Dec 17 05:49:19 2015
> @@ -12,8 +12,7 @@ CLANG_LEVEL := ../..
>  include $(CLANG_LEVEL)/../../Makefile.config
>
>  PARALLEL_DIRS := tool-template modularize pp-trace
> -DIRS := clang-apply-replacements clang-modernize clang-rename clang-tidy \
> -       clang-query unittests
> +DIRS := clang-apply-replacements clang-rename clang-tidy clang-query unittests
>
>  include $(CLANG_LEVEL)/Makefile
>
>
> Removed: clang-tools-extra/trunk/docs/AddOverrideTransform.rst
> URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/docs/AddOverrideTransform.rst?rev=255885&view=auto
> ==============================================================================
> --- clang-tools-extra/trunk/docs/AddOverrideTransform.rst (original)
> +++ clang-tools-extra/trunk/docs/AddOverrideTransform.rst (removed)
> @@ -1,54 +0,0 @@
> -.. index:: Add-Override Transform
> -
> -======================
> -Add-Override Transform
> -======================
> -
> -The Add-Override Transform adds the ``override`` specifier to member
> -functions that override a virtual function in a base class and that
> -don't already have the specifier. The transform is enabled with the
> -:option:`-add-override` option of :program:`clang-modernize`.
> -For example:
> -
> -.. code-block:: c++
> -
> -  class A {
> -  public:
> -    virtual void h() const;
> -  };
> -
> -  class B : public A {
> -  public:
> -    void h() const;
> -
> -    // The declaration of h is transformed to
> -    void h() const override;
> -  };
> -
> -Using Expands-to-Override Macros
> -================================
> -
> -Like LLVM's ``LLVM_OVERRIDE``, several projects have macros that conditionally
> -expand to the ``override`` keyword when compiling with C++11 features enabled.
> -To maintain compatibility with non-C++11 builds, the Add-Override Transform
> -supports detection and use of these macros instead of using the ``override``
> -keyword directly. Specify ``-override-macros`` on the command line to the
> -Modernizer to enable this behavior.
> -
> -
> -Known Limitations
> -=================
> -* This transform will not insert the override keyword if a method is
> -  pure. At the moment it's not possible to track down the pure
> -  specifier location.
> -
> -.. code-block:: c++
> -
> -  class B : public A {
> -  public:
> -    virtual void h() const = 0;
> -
> -    // The declaration of h is NOT transformed to
> -    virtual void h() const override = 0;
> -  };
> -
>
> Removed: clang-tools-extra/trunk/docs/LoopConvertTransform.rst
> URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/docs/LoopConvertTransform.rst?rev=255885&view=auto
> ==============================================================================
> --- clang-tools-extra/trunk/docs/LoopConvertTransform.rst (original)
> +++ clang-tools-extra/trunk/docs/LoopConvertTransform.rst (removed)
> @@ -1,257 +0,0 @@
> -.. index:: Loop Convert Transform
> -
> -======================
> -Loop Convert Transform
> -======================
> -
> -The Loop Convert Transform is a transformation to convert ``for(...; ...;
> -...)`` loops to use the new range-based loops in C++11. The transform is enabled
> -with the :option:`-loop-convert` option of :program:`clang-modernize`.
> -
> -Three kinds of loops can be converted:
> -
> --  Loops over statically allocated arrays
> --  Loops over containers, using iterators
> --  Loops over array-like containers, using ``operator[]`` and ``at()``
> -
> -Risk
> -====
> -
> -Risky
> ------
> -
> -In loops where the container expression is more complex than just a
> -reference to a declared expression (a variable, function, enum, etc.),
> -and some part of it appears elsewhere in the loop, we lower our confidence
> -in the transformation due to the increased risk of changing semantics.
> -Transformations for these loops are marked as `risky`, and thus will only
> -be converted if the acceptable risk level is set to ``-risk=risky``.
> -
> -.. code-block:: c++
> -
> -  int arr[10][20];
> -  int l = 5;
> -
> -  for (int j = 0; j < 20; ++j)
> -    int k = arr[l][j] + l; // using l outside arr[l] is considered risky
> -
> -  for (int i = 0; i < obj.getVector().size(); ++i)
> -    obj.foo(10); // using 'obj' is considered risky
> -
> -See
> -:ref:`Range-based loops evaluate end() only once<IncorrectRiskyTransformation>`
> -for an example of an incorrect transformation when the maximum acceptable risk
> -level is set to `risky`.
> -
> -Reasonable (Default)
> ---------------------
> -
> -If a loop calls ``.end()`` or ``.size()`` after each iteration, the
> -transformation for that loop is marked as `reasonable`, and thus will
> -be converted if the acceptable risk level is set to ``-risk=reasonable``
> -(default) or higher.
> -
> -.. code-block:: c++
> -
> -  // using size() is considered reasonable
> -  for (int i = 0; i < container.size(); ++i)
> -    cout << container[i];
> -
> -Safe
> -----
> -
> -Any other loops that do not match the above criteria to be marked as
> -`risky` or `reasonable` are marked `safe`, and thus will be converted
> -if the acceptable risk level is set to ``-risk=safe`` or higher.
> -
> -.. code-block:: c++
> -
> -  int arr[] = {1,2,3};
> -
> -  for (int i = 0; i < 3; ++i)
> -    cout << arr[i];
> -
> -Example
> -=======
> -
> -Original:
> -
> -.. code-block:: c++
> -
> -  const int N = 5;
> -  int arr[] = {1,2,3,4,5};
> -  vector<int> v;
> -  v.push_back(1);
> -  v.push_back(2);
> -  v.push_back(3);
> -
> -  // safe transform
> -  for (int i = 0; i < N; ++i)
> -    cout << arr[i];
> -
> -  // reasonable transform
> -  for (vector<int>::iterator it = v.begin(); it != v.end(); ++it)
> -    cout << *it;*
> -
> -  // reasonable transform
> -  for (int i = 0; i < v.size(); ++i)
> -    cout << v[i];
> -
> -After transformation with risk level set to ``-risk=reasonable`` (default):
> -
> -.. code-block:: c++
> -
> -  const int N = 5;
> -  int arr[] = {1,2,3,4,5};
> -  vector<int> v;
> -  v.push_back(1);
> -  v.push_back(2);
> -  v.push_back(3);
> -
> -  // safe transform
> -  for (auto & elem : arr)
> -    cout << elem;
> -
> -  // reasonable transform
> -  for (auto & elem : v)
> -    cout << elem;
> -
> -  // reasonable transform
> -  for (auto & elem : v)
> -    cout << elem;
> -
> -Limitations
> -===========
> -
> -There are certain situations where the tool may erroneously perform
> -transformations that remove information and change semantics. Users of the tool
> -should be aware of the behaviour and limitations of the transform outlined by
> -the cases below.
> -
> -Comments inside loop headers
> -----------------------------
> -
> -Comments inside the original loop header are ignored and deleted when
> -transformed.
> -
> -.. code-block:: c++
> -
> -  for (int i = 0; i < N; /* This will be deleted */ ++i) { }
> -
> -Range-based loops evaluate end() only once
> -------------------------------------------
> -
> -The C++11 range-based for loop calls ``.end()`` only once during the
> -initialization of the loop. If in the original loop ``.end()`` is called after
> -each iteration the semantics of the transformed loop may differ.
> -
> -.. code-block:: c++
> -
> -  // The following is semantically equivalent to the C++11 range-based for loop,
> -  // therefore the semantics of the header will not change.
> -  for (iterator it = container.begin(), e = container.end(); it != e; ++it) { }
> -
> -  // Instead of calling .end() after each iteration, this loop will be
> -  // transformed to call .end() only once during the initialization of the loop,
> -  // which may affect semantics.
> -  for (iterator it = container.begin(); it != container.end(); ++it) { }
> -
> -.. _IncorrectRiskyTransformation:
> -
> -As explained above, calling member functions of the container in the body
> -of the loop is considered `risky`. If the called member function modifies the
> -container the semantics of the converted loop will differ due to ``.end()``
> -being called only once.
> -
> -.. code-block:: c++
> -
> -  bool flag = false;
> -  for (vector<T>::iterator it = vec.begin(); it != vec.end(); ++it) {
> -    // Add a copy of the first element to the end of the vector.
> -    if (!flag) {
> -      // This line makes this transformation 'risky'.
> -      vec.push_back(*it);
> -      flag = true;
> -    }
> -    cout << *it;
> -  }
> -
> -The original code above prints out the contents of the container including the
> -newly added element while the converted loop, shown below, will only print the
> -original contents and not the newly added element.
> -
> -.. code-block:: c++
> -
> -  bool flag = false;
> -  for (auto & elem : vec) {
> -    // Add a copy of the first element to the end of the vector.
> -    if (!flag) {
> -      // This line makes this transformation 'risky'
> -      vec.push_back(elem);
> -      flag = true;
> -    }
> -    cout << elem;
> -  }
> -
> -Semantics will also be affected if ``.end()`` has side effects. For example, in
> -the case where calls to ``.end()`` are logged the semantics will change in the
> -transformed loop if ``.end()`` was originally called after each iteration.
> -
> -.. code-block:: c++
> -
> -  iterator end() {
> -    num_of_end_calls++;
> -    return container.end();
> -  }
> -
> -Overloaded operator->() with side effects
> ------------------------------------------
> -
> -Similarly, if ``operator->()`` was overloaded to have side effects, such as
> -logging, the semantics will change. If the iterator's ``operator->()`` was used
> -in the original loop it will be replaced with ``<container element>.<member>``
> -instead due to the implicit dereference as part of the range-based for loop.
> -Therefore any side effect of the overloaded ``operator->()`` will no longer be
> -performed.
> -
> -.. code-block:: c++
> -
> -  for (iterator it = c.begin(); it != c.end(); ++it) {
> -    it->func(); // Using operator->()
> -  }
> -  // Will be transformed to:
> -  for (auto & elem : c) {
> -    elem.func(); // No longer using operator->()
> -  }
> -
> -Pointers and references to containers
> --------------------------------------
> -
> -While most of the transform's risk analysis is dedicated to determining whether
> -the iterator or container was modified within the loop, it is possible to
> -circumvent the analysis by accessing and modifying the container through a
> -pointer or reference.
> -
> -If the container were directly used instead of using the pointer or reference
> -the following transformation would have only been applied at the ``-risk=risky``
> -level since calling a member function of the container is considered `risky`.
> -The transform cannot identify expressions associated with the container that are
> -different than the one used in the loop header, therefore the transformation
> -below ends up being performed at the ``-risk=safe`` level.
> -
> -.. code-block:: c++
> -
> -  vector<int> vec;
> -
> -  vector<int> *ptr = &vec;
> -  vector<int> &ref = vec;
> -
> -  for (vector<int>::iterator it = vec.begin(), e = vec.end(); it != e; ++it) {
> -    if (!flag) {
> -      // Accessing and modifying the container is considered risky, but the risk
> -      // level is not raised here.
> -      ptr->push_back(*it);
> -      ref.push_back(*it);
> -      flag = true;
> -    }
> -  }
>
> Removed: clang-tools-extra/trunk/docs/MigratorUsage.rst
> URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/docs/MigratorUsage.rst?rev=255885&view=auto
> ==============================================================================
> --- clang-tools-extra/trunk/docs/MigratorUsage.rst (original)
> +++ clang-tools-extra/trunk/docs/MigratorUsage.rst (removed)
> @@ -1,6 +0,0 @@
> -===================
> -cpp11-migrate Usage
> -===================
> -
> -This program has been renamed :doc:`clang-modernize <clang-modernize>`, and its usage is now
> -found in :doc:`ModernizerUsage`.
>
> Removed: clang-tools-extra/trunk/docs/ModernizerUsage.rst
> URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/docs/ModernizerUsage.rst?rev=255885&view=auto
> ==============================================================================
> --- clang-tools-extra/trunk/docs/ModernizerUsage.rst (original)
> +++ clang-tools-extra/trunk/docs/ModernizerUsage.rst (removed)
> @@ -1,313 +0,0 @@
> -=====================
> -clang-modernize Usage
> -=====================
> -
> -``clang-modernize [options] [<sources>...] [-- [args]]``
> -
> -``<source#>`` specifies the path to the source to migrate. This path may be
> -relative to the current directory. If no sources are provided, a compilation
> -database provided with `-p`_ can be used to provide sources together with the
> -`include/exclude options`_.
> -
> -By default all transformations are applied. There are two ways to enable a
> -subset of the transformations:
> -
> -1. Explicitly, by referring to the transform options directly, see
> -   :ref:`transform-specific-command-line-options`.
> -2. Implicitly, based on the compilers to support, see
> -   :ref:`-for-compilers=\<string\> <for-compilers-option>`.
> -
> -If both ways of specifying transforms are used only explicitly specified
> -transformations that are supported by the given compilers will be applied.
> -
> -General Command Line Options
> -============================
> -
> -.. option:: -help
> -
> -  Displays tool usage instructions and command line options.
> -
> -.. option:: -version
> -
> -  Displays the version information of this tool.
> -
> -.. _-p:
> -
> -.. option:: -p=<build-path>
> -
> -  ``<build-path>`` is the directory containing a *compilation databasefile*, a
> -  file named ``compile_commands.json``, which provides compiler arguments for
> -  building each source file. CMake can generate this file by specifying
> -  ``-DCMAKE_EXPORT_COMPILE_COMMANDS=ON`` when running CMake. Ninja_, since v1.2
> -  can also generate this file with ``ninja -t compdb``. If the compilation
> -  database cannot be used for any reason, an error is reported.
> -
> -  This option is ignored if ``--`` is present.
> -
> -  Files in the compilation database will be transformed if no sources are
> -  provided and paths to files are explicitly included using ``-include`` or
> -  ``-include-from``.
> -  In order to transform all files in a compilation database the following
> -  command line can be used:
> -
> -    ``clang-modernize -p=<build-path> -include=<project_root>``
> -
> -  Use ``-exclude`` or ``-exclude-from`` to limit the scope of ``-include``.
> -
> -.. _Ninja: http://martine.github.io/ninja/
> -
> -.. option:: -- [args]
> -
> -  Another way to provide compiler arguments is to specify all arguments on the
> -  command line following ``--``. Arguments provided this way are used for
> -  *every* source file.
> -
> -  If neither ``--`` nor ``-p`` are specified a compilation database is
> -  searched for starting with the path of the first-provided source file and
> -  proceeding through parent directories. If no compilation database is found or
> -  one is found and cannot be used for any reason then ``-std=c++11`` is used as
> -  the only compiler argument.
> -
> -.. option:: -risk=<risk-level>
> -
> -  Some transformations may cause a change in semantics. In such cases the
> -  maximum acceptable risk level specified through the ``-risk`` command
> -  line option decides whether or not a transformation is applied.
> -
> -  Three different risk level options are available:
> -
> -    ``-risk=safe``
> -      Perform only safe transformations.
> -    ``-risk=reasonable`` (default)
> -      Enable transformations that may change semantics.
> -    ``-risk=risky``
> -      Enable transformations that are likely to change semantics.
> -
> -  The meaning of risk is handled differently for each transform. See
> -  :ref:`transform documentation <transforms>` for details.
> -
> -.. option:: -final-syntax-check
> -
> -  After applying the final transform to a file, parse the file to ensure the
> -  last transform did not introduce syntax errors. Syntax errors introduced by
> -  earlier transforms are already caught when subsequent transforms parse the
> -  file.
> -
> -.. option:: -summary
> -
> -  Displays a summary of the number of changes each transform made or could have
> -  made to each source file immediately after each transform is applied.
> -  **Accepted** changes are those actually made. **Rejected** changes are those
> -  that could have been made if the acceptable risk level were higher.
> -  **Deferred** changes are those that might be possible but they might conflict
> -  with other accepted changes. Re-applying the transform will resolve deferred
> -  changes.
> -
> -.. _for-compilers-option:
> -
> -.. option:: -for-compilers=<string>
> -
> -  Select transforms targeting the intersection of language features supported by
> -  the given compilers.
> -
> -  Four compilers are supported. The transforms are enabled according to this
> -  table:
> -
> -  ===============  =====  ===  ====  ====
> -  Transforms       clang  gcc  icc   mscv
> -  ===============  =====  ===  ====  ====
> -  AddOverride (1)  3.0    4.7  14    8
> -  LoopConvert      3.0    4.6  13    11
> -  PassByValue      3.0    4.6  13    11
> -  ReplaceAutoPtr   3.0    4.6  13    11
> -  UseAuto          2.9    4.4  12    10
> -  UseNullptr       3.0    4.6  12.1  10
> -  ===============  =====  ===  ====  ====
> -
> -  (1): if *-override-macros* is provided it's assumed that the macros are C++11
> -  aware and the transform is enabled without regard to the supported compilers.
> -
> -  The structure of the argument to the `-for-compilers` option is
> -  **<compiler>-<major ver>[.<minor ver>]** where **<compiler>** is one of the
> -  compilers from the above table.
> -
> -  Some examples:
> -
> -  1. To support `Clang >= 3.0`, `gcc >= 4.6` and `MSVC >= 11`:
> -
> -     ``clang-modernize -for-compilers=clang-3.0,gcc-4.6,msvc-11 <args..>``
> -
> -     Enables LoopConvert, ReplaceAutoPtr, UseAuto, UseNullptr.
> -
> -  2. To support `icc >= 12` while using a C++11-aware macro for the `override`
> -     virtual specifier:
> -
> -     ``clang-modernize -for-compilers=icc-12 -override-macros <args..>``
> -
> -     Enables AddOverride and UseAuto.
> -
> -  .. warning::
> -
> -    If your version of Clang depends on the GCC headers (e.g: when `libc++` is
> -    not used), then you probably want to add the GCC version to the targeted
> -    platforms as well.
> -
> -.. option:: -perf[=<directory>]
> -
> -  Turns on performance measurement and output functionality. The time it takes to
> -  apply each transform is recorded by the migrator and written in JSON format
> -  to a uniquely named file in the given ``<directory>``. All sources processed
> -  by a single Modernizer process are written to the same output file. If
> -  ``<directory>`` is not provided the default is ``./migrate_perf/``.
> -
> -  The time recorded for a transform includes parsing and creating source code
> -  replacements.
> -
> -.. option:: -serialize-replacements
> -
> -  Causes the modernizer to generate replacements and serialize them to disk but
> -  not apply them. This can be useful for debugging or for manually running
> -  ``clang-apply-replacements``. Replacements are serialized in YAML_ format.
> -  By default serialzied replacements are written to a temporary directory whose
> -  name is written to stderr when serialization is complete.
> -
> -.. _YAML: http://www.yaml.org/
> -
> -.. option:: -serialize-dir=<string>
> -
> -  Choose a directory to serialize replacements to. The directory must exist.
> -
> -.. _include/exclude options:
> -
> -Path Inclusion/Exclusion Options
> -================================
> -
> -.. option:: -include=<path1>,<path2>,...,<pathN>
> -
> -  Use this option to indicate which directories contain files that can be
> -  changed by the modernizer. Inidividual files may be specified if desired.
> -  Multiple paths can be specified as a comma-separated list. Sources mentioned
> -  explicitly on the command line are always included so this option controls
> -  which other files (e.g. headers) may be changed while transforming
> -  translation units.
> -
> -.. option:: -exclude=<path1>,<path2>,...,<pathN>
> -
> -  Used with ``-include`` to provide finer control over which files and
> -  directories can be transformed. Individual files and files within directories
> -  specified by this option **will not** be transformed. Multiple paths can be
> -  specified as a comma-separated list.
> -
> -.. option:: -include-from=<filename>
> -
> -  Like ``-include`` but read paths from the given file. Paths should be one per
> -  line.
> -
> -.. option:: -exclude-from=<filename>
> -
> -  Like ``-exclude`` but read paths from the given file. Paths are listed one
> -  per line.
> -
> -Formatting Command Line Options
> -===============================
> -
> -.. option:: -format
> -
> -  Enable reformatting of code changed by transforms. Formatting is done after
> -  every transform.
> -
> -.. option:: -style=<string>
> -
> -  Specifies how formatting should be done. The behaviour of this option is
> -  identical to the same option provided by clang-format_. Refer to
> -  `clang-format's style options`_ for more details.
> -
> -.. option:: -style-config=<dir>
> -
> -  When using ``-style=file``, the default behaviour is to look for
> -  ``.clang-format`` starting in the current directory and then in ancestors. To
> -  specify a directory to find the style configuration file, use this option.
> -
> -Example:
> -
> -.. code-block:: c++
> -  :emphasize-lines: 10-12,18
> -
> -    // file.cpp
> -    for (std::vector<int>::const_iterator I = my_container.begin(),
> -                                          E = my_container.end();
> -         I != E; ++I) {
> -      std::cout << *I << std::endl;
> -    }
> -
> -    // No reformatting:
> -    //     clang-modernize -use-auto file.cpp
> -    for (auto I = my_container.begin(),
> -                                          E = my_container.end();
> -         I != E; ++I) {
> -      std::cout << *I << std::endl;
> -    }
> -
> -    // With reformatting enabled:
> -    //     clang-modernize -format -use-auto file.cpp
> -    for (auto I = my_container.begin(), E = my_container.end(); I != E; ++I) {
> -      std::cout << *I << std::endl;
> -    }
> -
> -.. _clang-format: http://clang.llvm.org/docs/ClangFormat.html
> -.. _clang-format's style options: http://clang.llvm.org/docs/ClangFormatStyleOptions.html
> -
> -
> -.. _transform-specific-command-line-options:
> -
> -Transform-Specific Command Line Options
> -=======================================
> -
> -.. option:: -loop-convert
> -
> -  Makes use of C++11 range-based for loops where possible. See
> -  :doc:`LoopConvertTransform`.
> -
> -.. option:: -use-nullptr
> -
> -  Makes use of the new C++11 keyword ``nullptr`` where possible.
> -  See :doc:`UseNullptrTransform`.
> -
> -.. option:: -user-null-macros=<string>
> -
> -  ``<string>`` is a comma-separated list of user-defined macros that behave like
> -  the ``NULL`` macro. The :option:`-use-nullptr` transform will replace these
> -  macros along with ``NULL``. See :doc:`UseNullptrTransform`.
> -
> -.. option:: -use-auto
> -
> -  Replace the type specifier of variable declarations with the ``auto`` type
> -  specifier. See :doc:`UseAutoTransform`.
> -
> -.. option:: -add-override
> -
> -  Adds the override specifier to member functions where it is appropriate. That
> -  is, the override specifier is added to member functions that override a
> -  virtual function in a base class and that don't already have the specifier.
> -  See :doc:`AddOverrideTransform`.
> -
> -.. option:: -override-macros
> -
> -  Tells the Add Override Transform to locate a macro that expands to
> -  ``override`` and use that macro instead of the ``override`` keyword directly.
> -  If no such macro is found, ``override`` is still used. This option enables
> -  projects that use such macros to maintain build compatibility with non-C++11
> -  code.
> -
> -.. option:: -pass-by-value
> -
> -  Replace const-reference parameters by values in situations where it can be
> -  beneficial.
> -  See :doc:`PassByValueTransform`.
> -
> -.. option:: -replace-auto_ptr
> -
> -  Replace ``std::auto_ptr`` (deprecated in C++11) by ``std::unique_ptr`` and
> -  wrap calls to the copy constructor and assignment operator with
> -  ``std::move()``.
> -  See :doc:`ReplaceAutoPtrTransform`.
>
> Removed: clang-tools-extra/trunk/docs/PassByValueTransform.rst
> URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/docs/PassByValueTransform.rst?rev=255885&view=auto
> ==============================================================================
> --- clang-tools-extra/trunk/docs/PassByValueTransform.rst (original)
> +++ clang-tools-extra/trunk/docs/PassByValueTransform.rst (removed)
> @@ -1,165 +0,0 @@
> -.. index:: Pass-By-Value Transform
> -
> -=======================
> -Pass-By-Value Transform
> -=======================
> -
> -The Pass-By-Value Transform makes use of the pass-by-value idiom when possible.
> -
> -With move semantics added to the language and the standard library updated with
> -move constructors added for many types it is now interesting to take an argument
> -directly by value, instead of by const-reference, and then copy. This
> -transformation allows the compiler to take care of choosing the best way to
> -construct the copy.
> -
> -The transformation is usually beneficial when the calling code passes an
> -*rvalue* and assumes the move construction is a cheap operation. This short
> -example illustrates how the construction of the value happens:
> -
> -  .. code-block:: c++
> -
> -    void foo(std::string s);
> -    std::string get_str();
> -
> -    void f(const std::string &str) {
> -      foo(str);       // lvalue  -> copy construction
> -      foo(get_str()); // prvalue -> move construction
> -    }
> -
> -.. note::
> -
> -   Currently only constructors are transformed to make use of pass-by-value.
> -   Contributions that handle other situations are welcome!
> -
> -
> -Pass-by-value in constructors
> ------------------------------
> -
> -Replaces the uses of const-references constructor parameters that are copied
> -into class fields. The parameter is then moved with `std::move()`.
> -
> -Since `std::move()` is a library function declared in `<utility>` it may be
> -necessary to add this include. The transform will add the include directive when
> -necessary.
> -
> -Example::
> -
> -  $ clang-modernize -pass-by-value ctor.cpp
> -
> -**ctor.cpp**
> -
> -  .. code-block:: c++
> -
> -     #include <string>
> -
> -     class Foo {
> -     public:
> -    -  Foo(const std::string &Copied, const std::string &ReadOnly)
> -    -    : Copied(Copied), ReadOnly(ReadOnly)
> -    +  Foo(std::string Copied, const std::string &ReadOnly)
> -    +    : Copied(std::move(Copied)), ReadOnly(ReadOnly)
> -       {}
> -
> -     private:
> -       std::string Copied;
> -       const std::string &ReadOnly;
> -     };
> -
> -     std::string get_cwd();
> -
> -     void f(const std::string &Path) {
> -       // The parameter corresponding to 'get_cwd()' is move-constructed. By
> -       // using pass-by-value in the Foo constructor we managed to avoid a
> -       // copy-construction.
> -       Foo foo(get_cwd(), Path);
> -     }
> -
> -
> -If the parameter is used more than once no transformation is performed since
> -moved objects have an undefined state. It means the following code will be left
> -untouched:
> -
> -.. code-block:: c++
> -
> -  #include <string>
> -
> -  void pass(const std::string &S);
> -
> -  struct Foo {
> -    Foo(const std::string &S) : Str(S) {
> -      pass(S);
> -    }
> -
> -    std::string Str;
> -  };
> -
> -
> -Risk
> -^^^^
> -
> -This modification is considered **reasonably safe** (see :option:`-risk`
> -option).
> -
> -A situation where the generated code can be wrong is when the object referenced
> -is modified before the assignment in the init-list through a "hidden" reference.
> -
> -Example:
> -
> -.. code-block:: c++
> -
> -   std::string s("foo");
> -
> -   struct Base {
> -     Base() {
> -       s = "bar";
> -     }
> -   };
> -
> -   struct Derived : Base {
> -  -  Derived(const std::string &S) : Field(S)
> -  +  Derived(std::string S) : Field(std::move(S))
> -     { }
> -
> -     std::string Field;
> -   };
> -
> -   void f() {
> -  -  Derived d(s); // d.Field holds "bar"
> -  +  Derived d(s); // d.Field holds "foo"
> -   }
> -
> -
> -Note about delayed template parsing
> -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> -
> -When delayed template parsing is enabled, constructors part of templated
> -contexts; templated constructors, constructors in class templates, constructors
> -of inner classes of template classes, etc., are not transformed. Delayed
> -template parsing is enabled by default on Windows as a Microsoft extension:
> -`Clang Compiler User’s Manual - Microsoft extensions`_.
> -
> -Delayed template parsing can be enabled using the `-fdelayed-template-parsing`
> -flag and disabled using `-fno-delayed-template-parsing`.
> -
> -Example:
> -
> -.. code-block:: c++
> -
> -   template <typename T> class C {
> -     std::string S;
> -
> -   public:
> - =  // using -fdelayed-template-parsing (default on Windows)
> - =  C(const std::string &S) : S(S) {}
> -
> - +  // using -fno-delayed-template-parsing (default on non-Windows systems)
> - +  C(std::string S) : S(std::move(S)) {}
> -   };
> -
> -.. _Clang Compiler User’s Manual - Microsoft extensions: http://clang.llvm.org/docs/UsersManual.html#microsoft-extensions
> -
> -.. seealso::
> -
> -  For more information about the pass-by-value idiom, read: `Want Speed? Pass by Value`_.
> -
> -  .. _Want Speed? Pass by Value: http://cpp-next.com/archive/2009/08/want-speed-pass-by-value/
>
> Removed: clang-tools-extra/trunk/docs/ReplaceAutoPtrTransform.rst
> URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/docs/ReplaceAutoPtrTransform.rst?rev=255885&view=auto
> ==============================================================================
> --- clang-tools-extra/trunk/docs/ReplaceAutoPtrTransform.rst (original)
> +++ clang-tools-extra/trunk/docs/ReplaceAutoPtrTransform.rst (removed)
> @@ -1,72 +0,0 @@
> -.. index:: Replace-AutoPtr Transform
> -
> -=========================
> -Replace-AutoPtr Transform
> -=========================
> -
> -The Replace-AutoPtr Transform replaces the uses of the deprecated class
> -``std::auto_ptr`` by ``std::unique_ptr`` (introduced in C++11). The transfer of
> -ownership, done by the copy-constructor and the assignment operator, is changed
> -to match ``std::unique_ptr`` usage by using explicit calls to ``std::move()``.
> -The transform is enabled with the :option:`-replace-auto_ptr` option of
> -:program:`clang-modernize`.
> -
> -Migration example:
> -
> -.. code-block:: c++
> -
> -  -void take_ownership_fn(std::auto_ptr<int> int_ptr);
> -  +void take_ownership_fn(std::unique_ptr<int> int_ptr);
> -
> -   void f(int x) {
> -  -  std::auto_ptr<int> a(new int(x));
> -  -  std::auto_ptr<int> b;
> -  +  std::unique_ptr<int> a(new int(x));
> -  +  std::unique_ptr<int> b;
> -
> -  -  b = a;
> -  -  take_ownership_fn(b);
> -  +  b = std::move(a);
> -  +  take_ownership_fn(std::move(b));
> -   }
> -
> -
> -Known Limitations
> -=================
> -* If headers modification is not activated or if a header is not allowed to be
> -  changed this transform will produce broken code (compilation error), where the
> -  the headers' code will stay unchanged while the code using them will be
> -  changed.
> -
> -* Client code that declares a reference to an ``std::auto_ptr`` coming from code
> -  that can't be migrated (such as a header coming from a 3\ :sup:`rd` party
> -  library) will produce a compilation error after migration. This is because the
> -  type of the reference will be changed to ``std::unique_ptr`` but the type
> -  returned by the library won't change, binding a reference to
> -  ``std::unique_ptr`` from an ``std::auto_ptr``. This pattern doesn't make much
> -  sense and usually ``std::auto_ptr`` are stored by value (otherwise what is the
> -  point in using them instead of a reference or a pointer?).
> -
> -  .. code-block:: c++
> -
> -     // <3rd-party header...>
> -     std::auto_ptr<int> get_value();
> -     const std::auto_ptr<int> & get_ref();
> -
> -     // <calling code (with migration)...>
> -    -std::auto_ptr<int> a(get_value());
> -    +std::unique_ptr<int> a(get_value()); // ok, unique_ptr constructed from auto_ptr
> -
> -    -const std::auto_ptr<int> & p = get_ptr();
> -    +const std::unique_ptr<int> & p = get_ptr(); // won't compile
> -
> -* Non-instantiated templates aren't modified.
> -
> -  .. code-block:: c++
> -
> -     template <typename X>
> -     void f() {
> -         std::auto_ptr<X> p;
> -     }
> -
> -     // only 'f<int>()' (or similar) will trigger the replacement
>
> Removed: clang-tools-extra/trunk/docs/UseAutoTransform.rst
> URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/docs/UseAutoTransform.rst?rev=255885&view=auto
> ==============================================================================
> --- clang-tools-extra/trunk/docs/UseAutoTransform.rst (original)
> +++ clang-tools-extra/trunk/docs/UseAutoTransform.rst (removed)
> @@ -1,137 +0,0 @@
> -.. index:: Use-Auto Transform
> -
> -==================
> -Use-Auto Transform
> -==================
> -
> -The Use-Auto Transform is responsible for using the ``auto`` type specifier for
> -variable declarations to *improve code readability and maintainability*. The
> -transform is enabled with the :option:`-use-auto` option of
> -:program:`clang-modernize`. For example:
> -
> -.. code-block:: c++
> -
> -  std::vector<int>::iterator I = my_container.begin();
> -
> -  // transforms to:
> -
> -  auto I = my_container.begin();
> -
> -The ``auto`` type specifier will only be introduced in situations where the
> -variable type matches the type of the initializer expression. In other words
> -``auto`` should deduce the same type that was originally spelled in the source.
> -However, not every situation should be transformed:
> -
> -.. code-block:: c++
> -
> -  int val = 42;
> -  InfoStruct &I = SomeObject.getInfo();
> -
> -  // Should not become:
> -
> -  auto val = 42;
> -  auto &I = SomeObject.getInfo();
> -
> -In this example using ``auto`` for builtins doesn't improve readability. In
> -other situations it makes the code less self-documenting impairing readability
> -and maintainability. As a result, ``auto`` is used only introduced in specific
> -situations described below.
> -
> -Iterators
> -=========
> -
> -Iterator type specifiers tend to be long and used frequently, especially in
> -loop constructs. Since the functions generating iterators have a common format,
> -the type specifier can be replaced without obscuring the meaning of code while
> -improving readability and maintainability.
> -
> -.. code-block:: c++
> -
> -  for (std::vector<int>::iterator I = my_container.begin(),
> -                                  E = my_container.end();
> -       I != E; ++I) {
> -  }
> -
> -  // becomes
> -
> -  for (auto I = my_container.begin(), E = my_container.end(); I != E; ++I) {
> -  }
> -
> -The transform will only replace iterator type-specifiers when all of the
> -following conditions are satisfied:
> -* The iterator is for one of the standard container in ``std`` namespace:
> -
> -  * ``array``
> -
> -  * ``deque``
> -
> -  * ``forward_list``
> -
> -  * ``list``
> -
> -  * ``vector``
> -
> -  * ``map``
> -
> -  * ``multimap``
> -
> -  * ``set``
> -
> -  * ``multiset``
> -
> -  * ``unordered_map``
> -
> -  * ``unordered_multimap``
> -
> -  * ``unordered_set``
> -
> -  * ``unordered_multiset``
> -
> -  * ``queue``
> -
> -  * ``priority_queue``
> -
> -  * ``stack``
> -
> -* The iterator is one of the possible iterator types for standard containers:
> -
> -  * ``iterator``
> -
> -  * ``reverse_iterator``
> -
> -  * ``const_iterator``
> -
> -  * ``const_reverse_iterator``
> -
> -* In addition to using iterator types directly, typedefs or other ways of
> -  referring to those types are also allowed. However, implementation-specific
> -  types for which a type like ``std::vector<int>::iterator`` is itself a
> -  typedef will not be transformed. Consider the following examples:
> -
> -.. code-block:: c++
> -
> -  // The following direct uses of iterator types will be transformed.
> -  std::vector<int>::iterator I = MyVec.begin();
> -  {
> -    using namespace std;
> -    list<int>::iterator I = MyList.begin();
> -  }
> -
> -  // The type specifier for J would transform to auto since it's a typedef
> -  // to a standard iterator type.
> -  typedef std::map<int, std::string>::const_iterator map_iterator;
> -  map_iterator J = MyMap.begin();
> -
> -  // The following implementation-specific iterator type for which
> -  // std::vector<int>::iterator could be a typedef would not be transformed.
> -  __gnu_cxx::__normal_iterator<int*, std::vector> K = MyVec.begin();
> -
> -* The initializer for the variable being declared is not a braced initializer
> -  list. Otherwise, use of ``auto`` would cause the type of the variable to be
> -  deduced as``std::initializer_list``.
> -
> -Known Limitations
> -=================
> -* If the initializer is an explicit conversion constructor, the transform will
> -  not replace the type specifier even though it would be safe to do so.
> -* User-defined iterators are not handled at this time.
>
> Removed: clang-tools-extra/trunk/docs/UseNullptrTransform.rst
> URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/docs/UseNullptrTransform.rst?rev=255885&view=auto
> ==============================================================================
> --- clang-tools-extra/trunk/docs/UseNullptrTransform.rst (original)
> +++ clang-tools-extra/trunk/docs/UseNullptrTransform.rst (removed)
> @@ -1,82 +0,0 @@
> -.. index:: Use-Nullptr Transform
> -
> -=====================
> -Use-Nullptr Transform
> -=====================
> -
> -The Use-Nullptr Transform is a transformation to convert the usage of null
> -pointer constants (eg. ``NULL``, ``0``) to use the new C++11 ``nullptr``
> -keyword. The transform is enabled with the :option:`-use-nullptr` option of
> -:program:`clang-modernize`.
> -
> -Example
> -=======
> -
> -.. code-block:: c++
> -
> -  void assignment() {
> -    char *a = NULL;
> -    char *b = 0;
> -    char c = 0;
> -  }
> -
> -  int *ret_ptr() {
> -    return 0;
> -  }
> -
> -
> -transforms to:
> -
> -.. code-block:: c++
> -
> -  void assignment() {
> -    char *a = nullptr;
> -    char *b = nullptr;
> -    char c = 0;
> -  }
> -
> -  int *ret_ptr() {
> -    return nullptr;
> -  }
> -
> -
> -User defined macros
> -===================
> -
> -By default this transform will only replace the ``NULL`` macro and will skip any
> -user-defined macros that behaves like ``NULL``. The user can use the
> -:option:`-user-null-macros` option to specify a comma-separated list of macro
> -names that will be transformed along with ``NULL``.
> -
> -Example
> --------
> -
> -.. code-block:: c++
> -
> -  #define MY_NULL (void*)0
> -  void assignment() {
> -    void *p = MY_NULL;
> -  }
> -
> -
> -using the command-line
> -
> -.. code-block:: bash
> -
> -  clang-modernize -use-nullptr -user-null-macros=MY_NULL foo.cpp
> -
> -
> -transforms to:
> -
> -.. code-block:: c++
> -
> -  #define MY_NULL NULL
> -  void assignment() {
> -    int *p = nullptr;
> -  }
> -
> -
> -Risk
> -====
> -
> -:option:`-risk` has no effect in this transform.
>
> Modified: clang-tools-extra/trunk/docs/clang-modernize.rst
> URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/docs/clang-modernize.rst?rev=255886&r1=255885&r2=255886&view=diff
> ==============================================================================
> --- clang-tools-extra/trunk/docs/clang-modernize.rst (original)
> +++ clang-tools-extra/trunk/docs/clang-modernize.rst Thu Dec 17 05:49:19 2015
> @@ -1,112 +1,2 @@
> -.. index:: clang-modernize
> -
> -.. note::
> -
> -   **Deprecation**
> -
> -   As of September 2015 all :program:`clang-modernize` transforms have been
> -   ported to :doc:`clang-tidy/index`. :program:`clang-modernize` is deprecated
> -   and is going to be removed soon.
> -
> -
> -==================================
> -Clang C++ Modernizer User's Manual
> -==================================
> -
> -.. toctree::
> -   :hidden:
> -
> -   UseAutoTransform
> -   UseNullptrTransform
> -   LoopConvertTransform
> -   AddOverrideTransform
> -   PassByValueTransform
> -   ReplaceAutoPtrTransform
> -   ModernizerUsage
> -   cpp11-migrate
> -   MigratorUsage
> -
> -:program:`clang-modernize` is a standalone tool used to automatically convert
> -C++ code written against old standards to use features of the newest C++
> -standard where appropriate.
> -
> -Getting Started
> -===============
> -
> -To build from source:
> -
> -1. Read `Getting Started with the LLVM System`_ and `Clang Tools
> -   Documentation`_ for information on getting sources for LLVM, Clang, and
> -   Clang Extra Tools.
> -
> -2. `Getting Started with the LLVM System`_ and `Building LLVM with CMake`_ give
> -   directions for how to build. With sources all checked out into the
> -   right place the LLVM build will build Clang Extra Tools and their
> -   dependencies automatically.
> -
> -   * If using CMake, you can also use the ``clang-modernize`` target to build
> -     just the Modernizer and its dependencies.
> -
> -Before continuing, take a look at :doc:`ModernizerUsage` to see how to invoke
> -the Modernizer.
> -
> -Before running the Modernizer on code you'll need the arguments you'd normally
> -pass to the compiler. If you're migrating a single file with few compiler
> -arguments, it might be easier to pass the compiler args on the command line
> -after ``--``. If you don't have any compiler arguments then ``--`` is not needed.
> -If you're working with multiple files or even a single file with many compiler
> -args, it's probably best to use a *compilation database*.
> -
> -A `compilation database`_ contains the command-line arguments for multiple
> -files. If the code you want to transform can be built with CMake, you can
> -generate this database easily by running CMake with the
> -``-DCMAKE_EXPORT_COMPILE_COMMANDS=ON`` option. The Ninja_ build system, since
> -v1.2, can create this file too using the *compdb* tool: ``ninja -t compdb``. If
> -you're not already using either of these tools or cannot easily make use of
> -them you might consider looking into Bear_.
> -
> -In addition to the compiler arguments you usually build your code with, you must
> -provide the option for enabling C++11 features. For clang and versions of gcc
> -≥ v4.8 this is ``-std=c++11``.
> -
> -With compiler arguments in hand, the modernizer can be applied to sources. Each
> -transform is applied to all sources before the next transform. All the changes
> -generated by each transform pass are serialized to disk and applied using
> -``clang-apply-replacements``. This executable must be located on the ``PATH``
> -or be present in the same directory as the ``clang-modernizer`` executable. If
> -any changes fail to apply, the modernizer will **not** proceed to the next
> -transform and will halt.
> -
> -There's a small chance that changes made by a transform will produce code that
> -doesn't compile, also causing the modernizer to halt. This can happen with
> -bugs in the transforms or use of the pre-processor to make the same code behave
> -differently between translation units. Before logging a bug, be sure which
> -situation you are dealing with.
> -
> -.. _Ninja: http://martine.github.io/ninja/
> -.. _Bear: https://github.com/rizsotto/Bear
> -.. _compilation database: http://clang.llvm.org/docs/JSONCompilationDatabase.html
> -.. _Getting Started with the LLVM System: http://llvm.org/docs/GettingStarted.html
> -.. _Building LLVM with CMake: http://llvm.org/docs/CMake.html
> -.. _Clang Tools Documentation: http://clang.llvm.org/docs/ClangTools.html
> -
> -
> -.. _transforms:
> -
> -Transformations
> -===============
> -
> -The Modernizer is a collection of independent transforms which can be
> -independently enabled. The transforms currently implemented are:
> -
> -* :doc:`LoopConvertTransform`
> -
> -* :doc:`UseNullptrTransform`
> -
> -* :doc:`UseAutoTransform`
> -
> -* :doc:`AddOverrideTransform`
> -
> -* :doc:`PassByValueTransform`
> -
> -* :doc:`ReplaceAutoPtrTransform`
> +All :program:`clang-modernize` transforms have moved to :doc:`clang-tidy/index`
> +(see the ``modernize`` module).
>
> Modified: clang-tools-extra/trunk/docs/cpp11-migrate.rst
> URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/docs/cpp11-migrate.rst?rev=255886&r1=255885&r2=255886&view=diff
> ==============================================================================
> --- clang-tools-extra/trunk/docs/cpp11-migrate.rst (original)
> +++ clang-tools-extra/trunk/docs/cpp11-migrate.rst Thu Dec 17 05:49:19 2015
> @@ -1,5 +1,2 @@
> -============================
> -C++11 Migrator User's Manual
> -============================
> -
> -This tool has been renamed :doc:`clang-modernize <clang-modernize>`.
> +All :program:`clang-modernize` transforms have moved to :doc:`clang-tidy/index`
> +(see the ``modernize`` module).
>
> Modified: clang-tools-extra/trunk/docs/index.rst
> URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/docs/index.rst?rev=255886&r1=255885&r2=255886&view=diff
> ==============================================================================
> --- clang-tools-extra/trunk/docs/index.rst (original)
> +++ clang-tools-extra/trunk/docs/index.rst Thu Dec 17 05:49:19 2015
> @@ -15,7 +15,6 @@ Contents
>  .. toctree::
>     :maxdepth: 1
>
> -   clang-modernize
>     clang-tidy/index
>     modularize
>     pp-trace
>
> Modified: clang-tools-extra/trunk/test/CMakeLists.txt
> URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/CMakeLists.txt?rev=255886&r1=255885&r2=255886&view=diff
> ==============================================================================
> --- clang-tools-extra/trunk/test/CMakeLists.txt (original)
> +++ clang-tools-extra/trunk/test/CMakeLists.txt Thu Dec 17 05:49:19 2015
> @@ -36,7 +36,6 @@ set(CLANG_TOOLS_TEST_DEPS
>
>    # Individual tools we test.
>    clang-apply-replacements
> -  clang-modernize
>    clang-rename
>    clang-query
>    clang-tidy
>
> Modified: clang-tools-extra/trunk/unittests/CMakeLists.txt
> URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/unittests/CMakeLists.txt?rev=255886&r1=255885&r2=255886&view=diff
> ==============================================================================
> --- clang-tools-extra/trunk/unittests/CMakeLists.txt (original)
> +++ clang-tools-extra/trunk/unittests/CMakeLists.txt Thu Dec 17 05:49:19 2015
> @@ -6,7 +6,6 @@ function(add_extra_unittest test_dirname
>  endfunction()
>
>  add_subdirectory(clang-apply-replacements)
> -add_subdirectory(clang-modernize)
>  add_subdirectory(clang-rename)
>  add_subdirectory(clang-query)
>  add_subdirectory(clang-tidy)
>
> Modified: clang-tools-extra/trunk/unittests/Makefile
> URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/unittests/Makefile?rev=255886&r1=255885&r2=255886&view=diff
> ==============================================================================
> --- clang-tools-extra/trunk/unittests/Makefile (original)
> +++ clang-tools-extra/trunk/unittests/Makefile Thu Dec 17 05:49:19 2015
> @@ -10,6 +10,6 @@
>  CLANG_LEVEL := ../../..
>  include $(CLANG_LEVEL)/../../Makefile.config
>
> -PARALLEL_DIRS := clang-apply-replacements clang-modernize clang-query clang-tidy clang-rename
> +PARALLEL_DIRS := clang-apply-replacements clang-query clang-tidy clang-rename
>
>  include $(CLANG_LEVEL)/Makefile
>
> Removed: clang-tools-extra/trunk/unittests/include/common/Utility.h
> URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/unittests/include/common/Utility.h?rev=255885&view=auto
> ==============================================================================
> --- clang-tools-extra/trunk/unittests/include/common/Utility.h (original)
> +++ clang-tools-extra/trunk/unittests/include/common/Utility.h (removed)
> @@ -1,25 +0,0 @@
> -//=-- clang-modernize/Utility.h - Utility functions and macros---*- C++ -*-===//
> -//
> -//                     The LLVM Compiler Infrastructure
> -//
> -// This file is distributed under the University of Illinois Open Source
> -// License. See LICENSE.TXT for details.
> -//
> -//===----------------------------------------------------------------------===//
> -
> -#ifndef CLANG_MODERNIZE_UNITTESTS_UTILITY_H
> -#define CLANG_MODERNIZE_UNITTESTS_UTILITY_H
> -
> -// FIXME: copied from unittests/Support/Path.cpp
> -#define ASSERT_NO_ERROR(x)                                                     \
> -  if (std::error_code ASSERT_NO_ERROR_ec = x) {                                \
> -    llvm::SmallString<128> MessageStorage;                                     \
> -    llvm::raw_svector_ostream Message(MessageStorage);                         \
> -    Message << #x ": did not return errc::success.\n"                          \
> -            << "error number: " << ASSERT_NO_ERROR_ec.value() << "\n"          \
> -            << "error message: " << ASSERT_NO_ERROR_ec.message() << "\n";      \
> -    GTEST_FATAL_FAILURE_(MessageStorage.c_str());                              \
> -  } else {                                                                     \
> -  }
> -
> -#endif // CLANG_MODERNIZE_UNITTESTS_UTILITY_H
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


More information about the cfe-commits mailing list