summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/docs/clang-tidy
diff options
context:
space:
mode:
authorAngel Garcia Gomez <angelgarcia@google.com>2015-10-21 12:58:15 +0000
committerAngel Garcia Gomez <angelgarcia@google.com>2015-10-21 12:58:15 +0000
commit8dedeb0230c589ca121098f8051a35eb5fb53848 (patch)
tree3f77020d05c442b64ee9b064d08d0a71f1ff8ec9 /clang-tools-extra/docs/clang-tidy
parentbaf54a8ad5710d54bc6cc8fd2e7f1fcfabc9c503 (diff)
downloadbcm5719-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.rst1
-rw-r--r--clang-tools-extra/docs/clang-tidy/checks/modernize-use-default.rst27
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.
OpenPOWER on IntegriCloud