[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 llvm-svn: 323208
This commit is contained in:
parent
9b4a097f94
commit
e034e5eefe
|
@ -167,7 +167,9 @@ void UseDefaultMemberInitCheck::registerMatchers(MatchFinder *Finder) {
|
|||
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)))
|
||||
|
|
|
@ -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};
|
||||
};
|
Loading…
Reference in New Issue