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