1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
|
// RUN: %check_clang_tidy %s performance-unnecessary-value-param %t -- -config="{CheckOptions: [{key: performance-unnecessary-value-param.AllowedTypes, value: '[Pp]ointer$;[Pp]tr$;[Rr]ef(erence)?$'}]}" --
struct SmartPointer {
~SmartPointer();
};
struct smart_pointer {
~smart_pointer();
};
struct SmartPtr {
~SmartPtr();
};
struct smart_ptr {
~smart_ptr();
};
struct SmartReference {
~SmartReference();
};
struct smart_reference {
~smart_reference();
};
struct SmartRef {
~SmartRef();
};
struct smart_ref {
~smart_ref();
};
struct OtherType {
~OtherType();
};
template <typename T> struct SomeComplexTemplate {
~SomeComplexTemplate();
};
typedef SomeComplexTemplate<int> NotTooComplexRef;
void negativeSmartPointer(SmartPointer P) {
}
void negative_smart_pointer(smart_pointer p) {
}
void negativeSmartPtr(SmartPtr P) {
}
void negative_smart_ptr(smart_ptr p) {
}
void negativeSmartReference(SmartReference R) {
}
void negative_smart_reference(smart_reference r) {
}
void negativeSmartRef(SmartRef R) {
}
void negative_smart_ref(smart_ref r) {
}
void positiveOtherType(OtherType O) {
// CHECK-MESSAGES: [[@LINE-1]]:34: warning: the parameter 'O' is copied for each invocation but only used as a const reference; consider making it a const reference [performance-unnecessary-value-param]
// CHECK-FIXES: void positiveOtherType(const OtherType& O) {
}
void negativeNotTooComplexRef(NotTooComplexRef R) {
}
|