forked from OSchip/llvm-project
[clang-tidy] add regression test to performance-unnecessary-value-param
This test shows the problem in https://bugs.llvm.org/show_bug.cgi?id=33734 Differential Revision: https://reviews.llvm.org/D35225 llvm-svn: 307810
This commit is contained in:
parent
322e8c2bc1
commit
98a6b3ea87
|
@ -0,0 +1,15 @@
|
|||
// struct ABC is expensive to copy and should be
|
||||
// passed as a const referece.
|
||||
struct ABC {
|
||||
ABC(const ABC&);
|
||||
int get(int) const;
|
||||
};
|
||||
|
||||
|
||||
int f1(int n, const ABC& v1, const ABC& v2); // line 9
|
||||
|
||||
int f1(int n, ABC v1); // line 11
|
||||
|
||||
|
||||
|
||||
int f2( int n, const ABC& v2); // line 15
|
|
@ -0,0 +1,15 @@
|
|||
// struct ABC is expensive to copy and should be
|
||||
// passed as a const referece.
|
||||
struct ABC {
|
||||
ABC(const ABC&);
|
||||
int get(int) const;
|
||||
};
|
||||
|
||||
|
||||
int f1(int n, ABC v1, ABC v2); // line 9
|
||||
|
||||
int f1(int n, ABC v1); // line 11
|
||||
|
||||
|
||||
|
||||
int f2( int n, ABC v2); // line 15
|
|
@ -0,0 +1,18 @@
|
|||
// RUN: cp %S/Inputs/performance-unnecessary-value-param/header.h %T/header.h
|
||||
// RUN: %check_clang_tidy %s performance-unnecessary-value-param %t -- -- -std=c++11 -I %T
|
||||
// RUN: diff %T/header.h %S/Inputs/performance-unnecessary-value-param/header-fixed.h
|
||||
|
||||
#include "header.h"
|
||||
|
||||
|
||||
|
||||
int f1(int n, ABC v1, ABC v2) {
|
||||
// CHECK-MESSAGES: [[@LINE-1]]:19: warning: the parameter 'v1' is copied for each invocation but only used as a const reference; consider making it a const reference [performance-unnecessary-value-param]
|
||||
// CHECK-MESSAGES: [[@LINE-2]]:27: warning: the parameter 'v2' is copied for each invocation but only used as a const reference; consider making it a const reference [performance-unnecessary-value-param]
|
||||
// CHECK-FIXES: int f1(int n, const ABC& v1, const ABC& v2) {
|
||||
return v1.get(n) + v2.get(n);
|
||||
}
|
||||
int f2(int n, ABC v2) {
|
||||
// CHECK-MESSAGES: [[@LINE-1]]:19: warning: the parameter 'v2' is copied for each invocation but only used as a const reference; consider making it a const reference [performance-unnecessary-value-param]
|
||||
// CHECK-FIXES: int f2(int n, const ABC& v2) {
|
||||
}
|
Loading…
Reference in New Issue