[clang-tools-extra] b34ca08 - [clang-tidy] Fix handling of UseAssignment option in cppcoreguidelines-prefer-member-initializer
Piotr Zegar via cfe-commits
cfe-commits at lists.llvm.org
Sun Apr 16 03:34:58 PDT 2023
Author: Piotr Zegar
Date: 2023-04-16T10:34:48Z
New Revision: b34ca0851a5209a10c0ca285c000a18073677891
URL: https://github.com/llvm/llvm-project/commit/b34ca0851a5209a10c0ca285c000a18073677891
DIFF: https://github.com/llvm/llvm-project/commit/b34ca0851a5209a10c0ca285c000a18073677891.diff
LOG: [clang-tidy] Fix handling of UseAssignment option in cppcoreguidelines-prefer-member-initializer
>From now on check will use value from cppcoreguidelines-prefer-member-initializer
and fallback to modernize-use-default-member-init.UseAssignment if not specified.
Fixes: #55616.
Reviewed By: carlosgalvezp
Differential Revision: https://reviews.llvm.org/D147929
Added:
Modified:
clang-tools-extra/clang-tidy/cppcoreguidelines/PreferMemberInitializerCheck.cpp
clang-tools-extra/docs/clang-tidy/checks/cppcoreguidelines/prefer-member-initializer.rst
clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/prefer-member-initializer-modernize-use-default-member-init-assignment.cpp
clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/prefer-member-initializer-modernize-use-default-member-init.cpp
Removed:
################################################################################
diff --git a/clang-tools-extra/clang-tidy/cppcoreguidelines/PreferMemberInitializerCheck.cpp b/clang-tools-extra/clang-tidy/cppcoreguidelines/PreferMemberInitializerCheck.cpp
index 68697dbff3cfa..80b8c9211792a 100644
--- a/clang-tools-extra/clang-tidy/cppcoreguidelines/PreferMemberInitializerCheck.cpp
+++ b/clang-tools-extra/clang-tidy/cppcoreguidelines/PreferMemberInitializerCheck.cpp
@@ -129,9 +129,11 @@ PreferMemberInitializerCheck::PreferMemberInitializerCheck(
: ClangTidyCheck(Name, Context),
IsUseDefaultMemberInitEnabled(
Context->isCheckEnabled("modernize-use-default-member-init")),
- UseAssignment(OptionsView("modernize-use-default-member-init",
- Context->getOptions().CheckOptions, Context)
- .get("UseAssignment", false)) {}
+ UseAssignment(
+ Options.get("UseAssignment",
+ OptionsView("modernize-use-default-member-init",
+ Context->getOptions().CheckOptions, Context)
+ .get("UseAssignment", false))) {}
void PreferMemberInitializerCheck::storeOptions(
ClangTidyOptions::OptionMap &Opts) {
diff --git a/clang-tools-extra/docs/clang-tidy/checks/cppcoreguidelines/prefer-member-initializer.rst b/clang-tools-extra/docs/clang-tidy/checks/cppcoreguidelines/prefer-member-initializer.rst
index 1d47c03350003..dea9450b86fd3 100644
--- a/clang-tools-extra/docs/clang-tidy/checks/cppcoreguidelines/prefer-member-initializer.rst
+++ b/clang-tools-extra/docs/clang-tidy/checks/cppcoreguidelines/prefer-member-initializer.rst
@@ -85,9 +85,11 @@ Here ``n`` can be initialized in the constructor initialization list, unlike
.. option:: UseAssignment
- If this option is set to `true` (default is `false`), the check will initialize
- members with an assignment. In this case the fix of the first example looks
- like this:
+ 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),
+ the check will initialize members with an assignment.
+ In this case the fix of the first example looks like this:
.. code-block:: c++
diff --git a/clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/prefer-member-initializer-modernize-use-default-member-init-assignment.cpp b/clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/prefer-member-initializer-modernize-use-default-member-init-assignment.cpp
index 7240f03f78fed..17600b82fb592 100644
--- a/clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/prefer-member-initializer-modernize-use-default-member-init-assignment.cpp
+++ b/clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/prefer-member-initializer-modernize-use-default-member-init-assignment.cpp
@@ -1,5 +1,8 @@
// RUN: %check_clang_tidy %s cppcoreguidelines-prefer-member-initializer,modernize-use-default-member-init %t -- \
// RUN: -config="{CheckOptions: [{key: modernize-use-default-member-init.UseAssignment, value: true}]}"
+// RUN: %check_clang_tidy %s cppcoreguidelines-prefer-member-initializer,modernize-use-default-member-init %t -- \
+// RUN: -config="{CheckOptions: [{key: modernize-use-default-member-init.UseAssignment, value: false}, \
+// RUN: {key: cppcoreguidelines-prefer-member-initializer.UseAssignment, value: true}]}"
class Simple1 {
int n;
diff --git a/clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/prefer-member-initializer-modernize-use-default-member-init.cpp b/clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/prefer-member-initializer-modernize-use-default-member-init.cpp
index fe5bb7c3bb989..2353f58b6bfa5 100644
--- a/clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/prefer-member-initializer-modernize-use-default-member-init.cpp
+++ b/clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/prefer-member-initializer-modernize-use-default-member-init.cpp
@@ -1,4 +1,7 @@
// RUN: %check_clang_tidy %s cppcoreguidelines-prefer-member-initializer,modernize-use-default-member-init %t
+// RUN: %check_clang_tidy %s cppcoreguidelines-prefer-member-initializer,modernize-use-default-member-init %t -- \
+// RUN: -config="{CheckOptions: [{key: modernize-use-default-member-init.UseAssignment, value: true}, \
+// RUN: {key: cppcoreguidelines-prefer-member-initializer.UseAssignment, value: false}]}"
class Simple1 {
int n;
More information about the cfe-commits
mailing list