[clang-tools-extra] r323208 - [clang-tidy] Handle bitfields in modernize-use-default-member-init if using C++2a
Malcolm Parsons via cfe-commits
cfe-commits at lists.llvm.org
Tue Jan 23 07:32:42 PST 2018
Author: malcolm.parsons
Date: Tue Jan 23 07:32:42 2018
New Revision: 323208
URL: http://llvm.org/viewvc/llvm-project?rev=323208&view=rev
Log:
[clang-tidy] Handle bitfields in modernize-use-default-member-init if using C++2a
Summary:
C++2a allows bitfields to have default member initializers.
Add support for this to clang-tidy's modernize-use-default-member-init check.
Reviewers: aaron.ballman, alexfh
Reviewed By: aaron.ballman
Subscribers: klimek, xazax.hun, cfe-commits
Differential Revision: https://reviews.llvm.org/D42413
Added:
clang-tools-extra/trunk/test/clang-tidy/modernize-use-default-member-init-bitfield.cpp
Modified:
clang-tools-extra/trunk/clang-tidy/modernize/UseDefaultMemberInitCheck.cpp
Modified: clang-tools-extra/trunk/clang-tidy/modernize/UseDefaultMemberInitCheck.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/modernize/UseDefaultMemberInitCheck.cpp?rev=323208&r1=323207&r2=323208&view=diff
==============================================================================
--- clang-tools-extra/trunk/clang-tidy/modernize/UseDefaultMemberInitCheck.cpp (original)
+++ clang-tools-extra/trunk/clang-tidy/modernize/UseDefaultMemberInitCheck.cpp Tue Jan 23 07:32:42 2018
@@ -167,7 +167,9 @@ void UseDefaultMemberInitCheck::register
isDefaultConstructor(), unless(isInstantiated()),
forEachConstructorInitializer(
cxxCtorInitializer(
- forField(unless(anyOf(isBitField(),
+ forField(unless(anyOf(getLangOpts().CPlusPlus2a
+ ? unless(anything())
+ : isBitField(),
hasInClassInitializer(anything()),
hasParent(recordDecl(isUnion()))))),
isWritten(), withInitializer(ignoringImplicit(Init)))
Added: clang-tools-extra/trunk/test/clang-tidy/modernize-use-default-member-init-bitfield.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-tidy/modernize-use-default-member-init-bitfield.cpp?rev=323208&view=auto
==============================================================================
--- clang-tools-extra/trunk/test/clang-tidy/modernize-use-default-member-init-bitfield.cpp (added)
+++ clang-tools-extra/trunk/test/clang-tidy/modernize-use-default-member-init-bitfield.cpp Tue Jan 23 07:32:42 2018
@@ -0,0 +1,10 @@
+// RUN: %check_clang_tidy %s modernize-use-default-member-init %t -- -- -std=c++2a
+
+struct PositiveBitField
+{
+ PositiveBitField() : i(6) {}
+ // CHECK-FIXES: PositiveBitField() {}
+ int i : 5;
+ // CHECK-MESSAGES: :[[@LINE-1]]:7: warning: use default member initializer for 'i' [modernize-use-default-member-init]
+ // CHECK-FIXES: int i : 5{6};
+};
More information about the cfe-commits
mailing list