diff options
| author | Ilya Biryukov <ibiryukov@google.com> | 2019-05-08 08:52:18 +0000 |
|---|---|---|
| committer | Ilya Biryukov <ibiryukov@google.com> | 2019-05-08 08:52:18 +0000 |
| commit | 4c32d4fd9f07af76eb96e2e91da1a3df983bf9e7 (patch) | |
| tree | 86fae42cc163c8d7d7718aa964cc7f9746c02279 /clang-tools-extra/clang-tidy/modernize | |
| parent | e96c98f37d3d481ad2f1a96a8ddadd1c8614056f (diff) | |
| download | bcm5719-llvm-4c32d4fd9f07af76eb96e2e91da1a3df983bf9e7.tar.gz bcm5719-llvm-4c32d4fd9f07af76eb96e2e91da1a3df983bf9e7.zip | |
[clang-tidy] Do not show incorrect fix in modernize-make-unique
Summary:
The case when initialize_list hides behind an implicit case was not
handled before.
Reviewers: aaron.ballman
Reviewed By: aaron.ballman
Subscribers: xazax.hun, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D61642
llvm-svn: 360231
Diffstat (limited to 'clang-tools-extra/clang-tidy/modernize')
| -rw-r--r-- | clang-tools-extra/clang-tidy/modernize/MakeSmartPtrCheck.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/clang-tools-extra/clang-tidy/modernize/MakeSmartPtrCheck.cpp b/clang-tools-extra/clang-tidy/modernize/MakeSmartPtrCheck.cpp index b371345c3cb..179a09745e8 100644 --- a/clang-tools-extra/clang-tidy/modernize/MakeSmartPtrCheck.cpp +++ b/clang-tools-extra/clang-tidy/modernize/MakeSmartPtrCheck.cpp @@ -292,12 +292,13 @@ bool MakeSmartPtrCheck::replaceNew(DiagnosticBuilder &Diag, // Foo{1} => false auto HasListIntializedArgument = [](const CXXConstructExpr *CE) { for (const auto *Arg : CE->arguments()) { + Arg = Arg->IgnoreImplicit(); + if (isa<CXXStdInitializerListExpr>(Arg) || isa<InitListExpr>(Arg)) return true; // Check whether we implicitly construct a class from a // std::initializer_list. - if (const auto *ImplicitCE = - dyn_cast<CXXConstructExpr>(Arg->IgnoreImplicit())) { + if (const auto *ImplicitCE = dyn_cast<CXXConstructExpr>(Arg)) { if (ImplicitCE->isStdInitListInitialization()) return true; } |

