[PATCH] D54832: [clang-tidy] No fixes for auto new expression in smart check
Haojian Wu via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Nov 22 06:23:11 PST 2018
hokein created this revision.
hokein added a reviewer: aaron.ballman.
Herald added a subscriber: xazax.hun.
The fix for `auto` new expression is illegal.
Repository:
rCTE Clang Tools Extra
https://reviews.llvm.org/D54832
Files:
clang-tidy/modernize/MakeSmartPtrCheck.cpp
test/clang-tidy/modernize-make-unique.cpp
Index: test/clang-tidy/modernize-make-unique.cpp
===================================================================
--- test/clang-tidy/modernize-make-unique.cpp
+++ test/clang-tidy/modernize-make-unique.cpp
@@ -282,6 +282,11 @@
// CHECK-MESSAGES: :[[@LINE-1]]:7: warning: use std::make_unique instead
// CHECK-FIXES: PE1 = std::make_unique<E>();
+ // No fixes for `auto` new expression.
+ PE1.reset(new auto(E()));
+ // CHECK-MESSAGES: :[[@LINE-1]]:7: warning: use std::make_unique instead
+ // CHECK-FIXES: PE1.reset(new auto(E()));
+
//============================================================================
// NOTE: For initlializer-list constructors, the check only gives warnings,
// and no fixes are generated.
Index: clang-tidy/modernize/MakeSmartPtrCheck.cpp
===================================================================
--- clang-tidy/modernize/MakeSmartPtrCheck.cpp
+++ clang-tidy/modernize/MakeSmartPtrCheck.cpp
@@ -252,6 +252,9 @@
bool MakeSmartPtrCheck::replaceNew(DiagnosticBuilder &Diag,
const CXXNewExpr *New, SourceManager &SM,
ASTContext *Ctx) {
+ // Skip when this is a new-expression with `auto`, e.g. "new auto(1)"."
+ if (New->getType()->getPointeeType()->getContainedAutoType())
+ return false;
auto SkipParensParents = [&](const Expr *E) {
for (const Expr *OldE = nullptr; E != OldE;) {
OldE = E;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D54832.175046.patch
Type: text/x-patch
Size: 1450 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20181122/392682f8/attachment.bin>
More information about the cfe-commits
mailing list