189a1d03eSRichard // RUN: %check_clang_tidy -std=c++14-or-later %s modernize-make-unique %t -- \ 289a1d03eSRichard // RUN: -config="{CheckOptions: \ 3*e8a3ddafSNathan James // RUN: {modernize-make-unique.IgnoreDefaultInitialization: \ 4*e8a3ddafSNathan James // RUN: 'false'}} \ 589a1d03eSRichard // RUN: }" \ 689a1d03eSRichard // RUN: -- -I %S/Inputs/smart-ptr 789a1d03eSRichard 889a1d03eSRichard #include "initializer_list.h" 989a1d03eSRichard #include "unique_ptr.h" 1089a1d03eSRichard // CHECK-FIXES: #include <memory> 1189a1d03eSRichard basic()1289a1d03eSRichardvoid basic() { 1389a1d03eSRichard std::unique_ptr<int> P1 = std::unique_ptr<int>(new int()); 1489a1d03eSRichard // CHECK-MESSAGES: :[[@LINE-1]]:29: warning: use std::make_unique instead [modernize-make-unique] 1589a1d03eSRichard // CHECK-FIXES: std::unique_ptr<int> P1 = std::make_unique<int>(); 1689a1d03eSRichard std::unique_ptr<int> P2 = std::unique_ptr<int>(new int); 1789a1d03eSRichard // CHECK-MESSAGES: :[[@LINE-1]]:29: warning: use std::make_unique instead [modernize-make-unique] 1889a1d03eSRichard // CHECK-FIXES: std::unique_ptr<int> P2 = std::make_unique<int>(); 1989a1d03eSRichard 2089a1d03eSRichard P1.reset(new int()); 2189a1d03eSRichard // CHECK-MESSAGES: :[[@LINE-1]]:6: warning: use std::make_unique instead [modernize-make-unique] 2289a1d03eSRichard // CHECK-FIXES: P1 = std::make_unique<int>(); 2389a1d03eSRichard P2.reset(new int); 2489a1d03eSRichard // CHECK-MESSAGES: :[[@LINE-1]]:6: warning: use std::make_unique instead [modernize-make-unique] 2589a1d03eSRichard // CHECK-FIXES: P2 = std::make_unique<int>(); 2689a1d03eSRichard 2789a1d03eSRichard P1 = std::unique_ptr<int>(new int()); 2889a1d03eSRichard // CHECK-MESSAGES: :[[@LINE-1]]:8: warning: use std::make_unique instead [modernize-make-unique] 2989a1d03eSRichard // CHECK-FIXES: P1 = std::make_unique<int>(); 3089a1d03eSRichard P2 = std::unique_ptr<int>(new int); 3189a1d03eSRichard // CHECK-MESSAGES: :[[@LINE-1]]:8: warning: use std::make_unique instead [modernize-make-unique] 3289a1d03eSRichard // CHECK-FIXES: P2 = std::make_unique<int>(); 3389a1d03eSRichard 3489a1d03eSRichard // With auto. 3589a1d03eSRichard auto P3 = std::unique_ptr<int>(new int()); 3689a1d03eSRichard // CHECK-MESSAGES: :[[@LINE-1]]:13: warning: use std::make_unique instead 3789a1d03eSRichard // CHECK-FIXES: auto P3 = std::make_unique<int>(); 3889a1d03eSRichard auto P4 = std::unique_ptr<int>(new int); 3989a1d03eSRichard // CHECK-MESSAGES: :[[@LINE-1]]:13: warning: use std::make_unique instead 4089a1d03eSRichard // CHECK-FIXES: auto P4 = std::make_unique<int>(); 4189a1d03eSRichard 4289a1d03eSRichard std::unique_ptr<int> P5 = std::unique_ptr<int>((new int())); 4389a1d03eSRichard // CHECK-MESSAGES: :[[@LINE-1]]:29: warning: use std::make_unique instead [modernize-make-unique] 4489a1d03eSRichard // CHECK-FIXES: std::unique_ptr<int> P5 = std::make_unique<int>(); 4589a1d03eSRichard std::unique_ptr<int> P6 = std::unique_ptr<int>((new int)); 4689a1d03eSRichard // CHECK-MESSAGES: :[[@LINE-1]]:29: warning: use std::make_unique instead [modernize-make-unique] 4789a1d03eSRichard // CHECK-FIXES: std::unique_ptr<int> P6 = std::make_unique<int>(); 4889a1d03eSRichard 4989a1d03eSRichard P5.reset((new int())); 5089a1d03eSRichard // CHECK-MESSAGES: :[[@LINE-1]]:6: warning: use std::make_unique instead [modernize-make-unique] 5189a1d03eSRichard // CHECK-FIXES: P5 = std::make_unique<int>(); 5289a1d03eSRichard P6.reset((new int)); 5389a1d03eSRichard // CHECK-MESSAGES: :[[@LINE-1]]:6: warning: use std::make_unique instead [modernize-make-unique] 5489a1d03eSRichard // CHECK-FIXES: P6 = std::make_unique<int>(); 5589a1d03eSRichard 5689a1d03eSRichard std::unique_ptr<int[]> P7, P8; 5789a1d03eSRichard P7.reset(new int[5]()); 5889a1d03eSRichard // CHECK-MESSAGES: :[[@LINE-1]]:6: warning: use std::make_unique instead [modernize-make-unique] 5989a1d03eSRichard // CHECK-FIXES: P7 = std::make_unique<int[]>(5); 6089a1d03eSRichard 6189a1d03eSRichard P8.reset(new int[5]); 6289a1d03eSRichard // CHECK-MESSAGES: :[[@LINE-1]]:6: warning: use std::make_unique instead [modernize-make-unique] 6389a1d03eSRichard // CHECK-FIXES: P8 = std::make_unique<int[]>(5); 6489a1d03eSRichard 6589a1d03eSRichard int Num = 3; 6689a1d03eSRichard P7.reset(new int[Num]); 6789a1d03eSRichard // CHECK-MESSAGES: :[[@LINE-1]]:6: warning: use std::make_unique instead [modernize-make-unique] 6889a1d03eSRichard // CHECK-FIXES: P7 = std::make_unique<int[]>(Num); 6989a1d03eSRichard 7089a1d03eSRichard P8.reset(new int[Num]); 7189a1d03eSRichard // CHECK-MESSAGES: :[[@LINE-1]]:6: warning: use std::make_unique instead [modernize-make-unique] 7289a1d03eSRichard // CHECK-FIXES: P8 = std::make_unique<int[]>(Num); 7389a1d03eSRichard } 74