Skip to content

Commit

Permalink
[clang-tidy] Add alias cppcoreguidelines-use-default-member-init
Browse files Browse the repository at this point in the history
And deprecate identical functionality from
cppcoreguidelines-prefer-member-initializer, which had too many
responsibilities and a tight coupling to the
modernize-use-default-member-init check.

Fixes #62164.

Differential Revision: https://reviews.llvm.org/D148460
  • Loading branch information
carlosgalvezp committed Apr 17, 2023
1 parent e779d54 commit b507bda
Show file tree
Hide file tree
Showing 5 changed files with 38 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
#include "../misc/NonPrivateMemberVariablesInClassesCheck.h"
#include "../misc/UnconventionalAssignOperatorCheck.h"
#include "../modernize/AvoidCArraysCheck.h"
#include "../modernize/UseDefaultMemberInitCheck.h"
#include "../modernize/UseOverrideCheck.h"
#include "../readability/MagicNumbersCheck.h"
#include "AvoidCapturingLambdaCoroutinesCheck.h"
Expand Down Expand Up @@ -110,6 +111,8 @@ class CppCoreGuidelinesModule : public ClangTidyModule {
CheckFactories.registerCheck<SpecialMemberFunctionsCheck>(
"cppcoreguidelines-special-member-functions");
CheckFactories.registerCheck<SlicingCheck>("cppcoreguidelines-slicing");
CheckFactories.registerCheck<modernize::UseDefaultMemberInitCheck>(
"cppcoreguidelines-use-default-member-init");
CheckFactories.registerCheck<misc::UnconventionalAssignOperatorCheck>(
"cppcoreguidelines-c-copy-assignment-signature");
CheckFactories.registerCheck<VirtualClassDestructorCheck>(
Expand Down
10 changes: 10 additions & 0 deletions clang-tools-extra/docs/ReleaseNotes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -174,6 +174,11 @@ New check aliases
<clang-tidy/checks/cert/msc33-c>` to :doc:`bugprone-unsafe-functions
<clang-tidy/checks/bugprone/unsafe-functions>` was added.

- New alias :doc:`cppcoreguidelines-use-default-member-init
<clang-tidy/checks/cppcoreguidelines/use-default-member-init>` to
:doc:`modernize-use-default-member-init
<clang-tidy/checks/modernize/use-default-member-init>` was added.

Changes in existing checks
^^^^^^^^^^^^^^^^^^^^^^^^^^
- Improved :doc:`readability-redundant-string-cstr
Expand Down Expand Up @@ -215,6 +220,11 @@ Changes in existing checks
- Deprecated :doc:`cert-dcl21-cpp
<clang-tidy/checks/cert/dcl21-cpp>` check.

- Deprecated C.48 enforcement from :doc:`cppcoreguidelines-prefer-member-initializer
<clang-tidy/checks/cppcoreguidelines/prefer-member-initializer>`. Please use
:doc:`cppcoreguidelines-use-default-member-init
<clang-tidy/checks/cppcoreguidelines/use-default-member-init>` instead.

- Deprecated check-local options `HeaderFileExtensions`
in :doc:`google-build-namespaces
<clang-tidy/checks/google/build-namespaces>` check.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,13 @@ Please note, that this check does not enforce this latter rule for
initializations already implemented as member initializers. For that purpose
see check `modernize-use-default-member-init <../modernize/use-default-member-init.html>`_.

.. note::

Enforcement of rule C.48 in this check is deprecated, to be removed in
:program:`clang-tidy` version 19 (only C.49 will be enforced by this check then).
Please use `cppcoreguidelines-use-default-member-init <../cppcoreguidelines/use-default-member-init.html>`_
to enfoce rule C.48.

Example 1
---------

Expand Down Expand Up @@ -85,6 +92,11 @@ Here ``n`` can be initialized in the constructor initialization list, unlike

.. option:: UseAssignment

Note: this option is deprecated, to be removed in :program:`clang-tidy`
version 19. Please use the `UseAssignment` option from
`cppcoreguidelines-use-default-member-init <../cppcoreguidelines/use-default-member-init.html>`_
instead.

If this option is set to `true` (by default `UseAssignment` from
`modernize-use-default-member-init
<../modernize/use-default-member-init.html>`_ will be used),
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
.. title:: clang-tidy - cppcoreguidelines-use-default-member-init
.. meta::
:http-equiv=refresh: 5;URL=../modernize/use-default-member-init.html

cppcoreguidelines-use-default-member-init
=========================================

This check implements `C.48 <https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#c48-prefer-in-class-initializers-to-member-initializers-in-constructors-for-constant-initializers>`_ from the CppCoreGuidelines.

The cppcoreguidelines-use-default-member-init check is an alias, please see
`modernize-use-default-member-init <../modernize/use-default-member-init.html>`_
for more information.
1 change: 1 addition & 0 deletions clang-tools-extra/docs/clang-tidy/checks/list.rst
Original file line number Diff line number Diff line change
Expand Up @@ -477,6 +477,7 @@ Clang-Tidy Checks
`cppcoreguidelines-explicit-virtual-functions <cppcoreguidelines/explicit-virtual-functions.html>`_, `modernize-use-override <modernize/use-override.html>`_, "Yes"
`cppcoreguidelines-macro-to-enum <cppcoreguidelines/macro-to-enum.html>`_, `modernize-macro-to-enum <modernize/macro-to-enum.html>`_, "Yes"
`cppcoreguidelines-non-private-member-variables-in-classes <cppcoreguidelines/non-private-member-variables-in-classes.html>`_, `misc-non-private-member-variables-in-classes <misc/non-private-member-variables-in-classes.html>`_,
`cppcoreguidelines-use-default-member-init <cppcoreguidelines/use-default-member-init.html>`_, `modernize-use-default-member-init <modernize/use-default-member-init.html>`_,
`fuchsia-header-anon-namespaces <fuchsia/header-anon-namespaces.html>`_, `google-build-namespaces <google/build-namespaces.html>`_,
`google-readability-braces-around-statements <google/readability-braces-around-statements.html>`_, `readability-braces-around-statements <readability/braces-around-statements.html>`_, "Yes"
`google-readability-function-size <google/readability-function-size.html>`_, `readability-function-size <readability/function-size.html>`_,
Expand Down

0 comments on commit b507bda

Please sign in to comment.