xref: /llvm-project/clang-tools-extra/test/clang-tidy/checkers/modernize/pass-by-value-macro-header.cpp (revision 89a1d03e2b379e325daa5249411e414bbd995b5e)
1*89a1d03eSRichard // RUN: %check_clang_tidy %s modernize-pass-by-value %t -- -- -isystem %clang_tidy_headers
2*89a1d03eSRichard 
3*89a1d03eSRichard // CHECK-FIXES: #include <utility>
4*89a1d03eSRichard 
5*89a1d03eSRichard #define HEADER <./a.h>
6*89a1d03eSRichard #include HEADER
7*89a1d03eSRichard 
8*89a1d03eSRichard struct A {
AA9*89a1d03eSRichard   A(const A &) {}
AA10*89a1d03eSRichard   A(A &&) {}
11*89a1d03eSRichard };
12*89a1d03eSRichard 
13*89a1d03eSRichard struct B {
BB14*89a1d03eSRichard   B(const A &a) : a(a) {}
15*89a1d03eSRichard // CHECK-MESSAGES: :[[@LINE-1]]:5: warning: pass by value and use std::move [modernize-pass-by-value]
16*89a1d03eSRichard // CHECK-FIXES: B(A a) : a(std::move(a)) {}
17*89a1d03eSRichard   A a;
18*89a1d03eSRichard };
19