[PATCH] D25898: [clang-tidy] Enhance modernize-make-unique to handle unique_ptr.reset()

Malcolm Parsons via cfe-commits cfe-commits at lists.llvm.org
Sun Oct 23 05:26:33 PDT 2016


malcolm.parsons added inline comments.


================
Comment at: test/clang-tidy/modernize-make-shared.cpp:122
+  Pderived = std::shared_ptr<Derived>(new Derived());
+  // CHECK-MESSAGES: :[[@LINE-1]]:14: warning: use std::make_shared instead
+  // CHECK-FIXES: Pderived = std::make_shared<Derived>();
----------------
Prazek wrote:
> I think the warning here could be better. The user is using make_shared here.
> Maybe ' warning: use std::make_shared with zero arguments ...', but only in this case
The user isn't using make_shared.


================
Comment at: test/clang-tidy/modernize-make-shared.cpp:129
+  // FIXME: OK to replace when auto is not used
+  std::shared_ptr<Base> PBase = std::shared_ptr<Base>(new Derived());
+
----------------
Prazek wrote:
> I think it is good to replace it even with auto, like
> auto PBase = std::make_shared<Base>(new Derived());
> 
> For shared_ptr we can even do better, that we can't do for unique_ptr - we
> coud change it to
> auto PBase = std::make_shared<Derived>();
> because all conversions works.
> Of course not in this patch, but it would be good to leave a comment about this here.
A smart pointer to Derived cannot be reset with a pointer to Base.


https://reviews.llvm.org/D25898





More information about the cfe-commits mailing list