[PATCH] D72630: [clang-tidy] Ignore implicit casts in modernize-use-default-member-init
Malcolm Parsons via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon Jan 13 09:19:13 PST 2020
malcolm.parsons created this revision.
malcolm.parsons added reviewers: aaron.ballman, alexfh, JonasToth.
Herald added subscribers: cfe-commits, xazax.hun.
Herald added a project: clang.
Initialising a pointer from nullptr involves an implicit cast.
Ignore it after getting initialiser from InitListExpr.
Fixes: PR4440
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D72630
Files:
clang-tools-extra/clang-tidy/modernize/UseDefaultMemberInitCheck.cpp
clang-tools-extra/test/clang-tidy/checkers/modernize-use-default-member-init.cpp
Index: clang-tools-extra/test/clang-tidy/checkers/modernize-use-default-member-init.cpp
===================================================================
--- clang-tools-extra/test/clang-tidy/checkers/modernize-use-default-member-init.cpp
+++ clang-tools-extra/test/clang-tidy/checkers/modernize-use-default-member-init.cpp
@@ -291,7 +291,7 @@
int e1{};
int e2 = 0;
int e3 = {5};
- int e4 = 5;
+ int e4{5};
int e5 = -5;
int e6 = +5;
};
@@ -315,7 +315,7 @@
double e1{};
double e2 = 0.0;
double e3 = 5.0;
- double e4 = -5.0;
+ double e4{-5.0};
double e5 = +5.0;
};
@@ -333,7 +333,7 @@
// CHECK-FIXES: ExistingBool(long) : e1(true), e2(true) {}
bool e1{};
bool e2 = false;
- bool e3 = true;
+ bool e3{true};
};
struct ExistingEnum {
@@ -365,7 +365,7 @@
// CHECK-FIXES: ExistingPointer(long) : e4(&e2) {}
int *e1{};
int *e2 = 0;
- int *e3 = nullptr;
+ int *e3{nullptr};
int **e4 = &e1;
};
Index: clang-tools-extra/clang-tidy/modernize/UseDefaultMemberInitCheck.cpp
===================================================================
--- clang-tools-extra/clang-tidy/modernize/UseDefaultMemberInitCheck.cpp
+++ clang-tools-extra/clang-tidy/modernize/UseDefaultMemberInitCheck.cpp
@@ -137,7 +137,7 @@
static const Expr *getInitializer(const Expr *E) {
auto *InitList = dyn_cast<InitListExpr>(E);
if (InitList && InitList->getNumInits() == 1)
- return InitList->getInit(0);
+ return InitList->getInit(0)->IgnoreParenImpCasts();
return E;
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D72630.237708.patch
Type: text/x-patch
Size: 1522 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20200113/998633e5/attachment.bin>
More information about the cfe-commits
mailing list