forked from OSchip/llvm-project
50 lines
1.0 KiB
C++
50 lines
1.0 KiB
C++
// RUN: clang-tidy %s -checks='-*,google-runtime-member-string-references' -- | FileCheck %s -implicit-check-not="{{warning|error}}:"
|
|
|
|
namespace std {
|
|
template<typename T>
|
|
class basic_string {};
|
|
|
|
typedef basic_string<char> string;
|
|
}
|
|
|
|
class string {};
|
|
|
|
|
|
struct A {
|
|
const std::string &s;
|
|
// CHECK: :[[@LINE-1]]:3: warning: const string& members are dangerous. It is much better to use alternatives, such as pointers or simple constants.
|
|
};
|
|
|
|
struct B {
|
|
std::string &s;
|
|
};
|
|
|
|
struct C {
|
|
const std::string s;
|
|
};
|
|
|
|
template <typename T>
|
|
struct D {
|
|
D();
|
|
const T &s;
|
|
const std::string &s2;
|
|
// CHECK: :[[@LINE-1]]:3: warning: const string& members are dangerous. It is much better to use alternatives, such as pointers or simple constants.
|
|
};
|
|
|
|
D<std::string> d;
|
|
|
|
struct AA {
|
|
const string &s;
|
|
// CHECK: :[[@LINE-1]]:3: warning: const string& members are dangerous. It is much better to use alternatives, such as pointers or simple constants.
|
|
};
|
|
|
|
struct BB {
|
|
string &s;
|
|
};
|
|
|
|
struct CC {
|
|
const string s;
|
|
};
|
|
|
|
D<string> dd;
|