diff options
author | Angel Garcia Gomez <angelgarcia@google.com> | 2015-10-21 12:58:15 +0000 |
---|---|---|
committer | Angel Garcia Gomez <angelgarcia@google.com> | 2015-10-21 12:58:15 +0000 |
commit | 8dedeb0230c589ca121098f8051a35eb5fb53848 (patch) | |
tree | 3f77020d05c442b64ee9b064d08d0a71f1ff8ec9 /clang-tools-extra/docs/clang-tidy | |
parent | baf54a8ad5710d54bc6cc8fd2e7f1fcfabc9c503 (diff) | |
download | bcm5719-llvm-8dedeb0230c589ca121098f8051a35eb5fb53848.tar.gz bcm5719-llvm-8dedeb0230c589ca121098f8051a35eb5fb53848.zip |
Add modernize-use-default check to clang-tidy.
Summary:
Add a check that replaces empty bodies of special member functions with '= default;'.
For now, it is only implemented for the default constructor and the destructor, which are the easier cases.
The copy-constructor and the copy-assignment operator cases will be implemented later.
I applied this check to the llvm code base and found 627 warnings (385 in llvm, 9 in compiler-rt, 220 in clang and 13 in clang-tools-extra).
Applying the fixes didn't break any build or test, it only caused a -Wpedantic warning in lib/Target/Mips/MipsOptionRecord.h:33 becaused it replaced
virtual ~MipsOptionRecord(){}; to virtual ~MipsOptionRecord()= default;;
Reviewers: klimek
Subscribers: george.burgess.iv, Eugene.Zelenko, alexfh, cfe-commits
Differential Revision: http://reviews.llvm.org/D13871
llvm-svn: 250897
Diffstat (limited to 'clang-tools-extra/docs/clang-tidy')
-rw-r--r-- | clang-tools-extra/docs/clang-tidy/checks/list.rst | 1 | ||||
-rw-r--r-- | clang-tools-extra/docs/clang-tidy/checks/modernize-use-default.rst | 27 |
2 files changed, 28 insertions, 0 deletions
diff --git a/clang-tools-extra/docs/clang-tidy/checks/list.rst b/clang-tools-extra/docs/clang-tidy/checks/list.rst index d1dda8ecdb2..a2e4de29135 100644 --- a/clang-tools-extra/docs/clang-tidy/checks/list.rst +++ b/clang-tools-extra/docs/clang-tidy/checks/list.rst @@ -55,6 +55,7 @@ List of clang-tidy Checks modernize-replace-auto-ptr modernize-shrink-to-fit modernize-use-auto + modernize-use-default modernize-use-nullptr modernize-use-override readability-braces-around-statements diff --git a/clang-tools-extra/docs/clang-tidy/checks/modernize-use-default.rst b/clang-tools-extra/docs/clang-tidy/checks/modernize-use-default.rst new file mode 100644 index 00000000000..c52cf89b918 --- /dev/null +++ b/clang-tools-extra/docs/clang-tidy/checks/modernize-use-default.rst @@ -0,0 +1,27 @@ +modernize-use-default +===================== + +This check replaces default bodies of special member functions with ``= +default;``. The explicitly defaulted function declarations enable more +opportunities in optimization, because the compiler might treat explicitly +defaulted functions as trivial. + +.. code-block:: c++ + + struct A { + A() {} + ~A(); + }; + A::~A() {} + + // becomes + + struct A { + A() = default; + ~A(); + }; + A::~A() = default; + +.. note:: + Copy-constructor, copy-assignment operator, move-constructor and + move-assignment operator are not supported yet. |