// RUN: %check_clang_tidy -std=c++14-or-later %s modernize-make-unique %t -- \ // RUN: -config="{CheckOptions: {modernize-make-unique.IgnoreMacros: false}}" \ // RUN: -- -I %S/Inputs/smart-ptr #include "unique_ptr.h" class Foo {}; class Bar {}; #define DEFINE(...) __VA_ARGS__ // CHECK-FIXES: #define DEFINE(...) __VA_ARGS__ template void g2(std::unique_ptr *t) { DEFINE( // CHECK-FIXES: DEFINE( auto p = std::unique_ptr(new Foo); // CHECK-MESSAGES: :[[@LINE-1]]:16: warning: use std::make_unique instead // CHECK-FIXES: auto p = std::unique_ptr(new Foo); t->reset(new Foo); // CHECK-MESSAGES: :[[@LINE-1]]:10: warning: use std::make_unique instead // CHECK-FIXES: t->reset(new Foo); ); // CHECK-FIXES: ); } void macro() { std::unique_ptr *t; g2(t); } #undef DEFINE