Skip to content

Commit

Permalink
Removed mentions of clang-modernize, added a short description of cla…
Browse files Browse the repository at this point in the history
…ng-tidy.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@252066 91177308-0d34-0410-b5e6-96231b3b80d8
  • Loading branch information
alexfh committed Nov 4, 2015
1 parent b3a1984 commit e32ede1
Showing 1 changed file with 9 additions and 33 deletions.
42 changes: 9 additions & 33 deletions docs/ClangTools.rst
Original file line number Diff line number Diff line change
Expand Up @@ -93,18 +93,6 @@ as a user tool (ideally with powerful IDE integrations) and as part of other
refactoring tools, e.g. to do a reformatting of all the lines changed during a
renaming.

``clang-modernize``
~~~~~~~~~~~~~~~~~~~
``clang-modernize`` migrates C++ code to use C++11 features where appropriate.
Currently it can:

* convert loops to range-based for loops;

* convert null pointer constants (like ``NULL`` or ``0``) to C++11 ``nullptr``;

* replace the type specifier in variable declarations with the ``auto`` type specifier;

* add the ``override`` specifier to applicable member functions.

Extra Clang Tools
=================
Expand All @@ -114,6 +102,15 @@ they'll be tracked here. The focus of this documentation is on the scope
and features of the tools for other tool developers; each tool should
provide its own user-focused documentation.

``clang-tidy``
~~~~~~~~~~~~~~

`clang-tidy <http://clang.llvm.org/extra/clang-tidy/>` is a clang-based C++
linter tool. It provides an extensible framework for building compiler-based
static analyses detecting and fixing bug-prone patterns, performance,
portability and maintainability issues.


Ideas for new Tools
===================

Expand All @@ -124,27 +121,6 @@ Ideas for new Tools
``foo.begin()`` into ``begin(foo)`` and similarly for ``end()``, where
``foo`` is a standard container. We could also detect similar patterns for
arrays.
* ``make_shared`` / ``make_unique`` conversion. Part of this transformation
can be incorporated into the ``auto`` transformation. Will convert

.. code-block:: c++

std::shared_ptr<Foo> sp(new Foo);
std::unique_ptr<Foo> up(new Foo);

func(std::shared_ptr<Foo>(new Foo), bar());

into:

.. code-block:: c++

auto sp = std::make_shared<Foo>();
auto up = std::make_unique<Foo>(); // In C++14 mode.

// This also affects correctness. For the cases where bar() throws,
// make_shared() is safe and the original code may leak.
func(std::make_shared<Foo>(), bar());

* ``tr1`` removal tool. Will migrate source code from using TR1 library
features to C++11 library. For example:

Expand Down

0 comments on commit e32ede1

Please sign in to comment.