summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/clang-tidy/google/StringReferenceMemberCheck.cpp
diff options
context:
space:
mode:
authorBenjamin Kramer <benny.kra@googlemail.com>2018-04-05 14:51:01 +0000
committerBenjamin Kramer <benny.kra@googlemail.com>2018-04-05 14:51:01 +0000
commitbe92ce14e13708c96eac3fe6da8c7019e24b3e2a (patch)
tree8b7a1375c939a4f1bddef3780a19c68eab421ed2 /clang-tools-extra/clang-tidy/google/StringReferenceMemberCheck.cpp
parent92357a233679fb46957e8daeebfa44aaf9095686 (diff)
downloadbcm5719-llvm-be92ce14e13708c96eac3fe6da8c7019e24b3e2a.tar.gz
bcm5719-llvm-be92ce14e13708c96eac3fe6da8c7019e24b3e2a.zip
[clang-tidy] Remove google-runtime-member-string-references
This is triggering on a pattern that's both too broad (const std::string& members can be used safely) and too narrow (std::string is not the only class with this problem). It has a very low true positive rate, just remove it until we find a better solution for dangling string references. llvm-svn: 329292
Diffstat (limited to 'clang-tools-extra/clang-tidy/google/StringReferenceMemberCheck.cpp')
-rw-r--r--clang-tools-extra/clang-tidy/google/StringReferenceMemberCheck.cpp51
1 files changed, 0 insertions, 51 deletions
diff --git a/clang-tools-extra/clang-tidy/google/StringReferenceMemberCheck.cpp b/clang-tools-extra/clang-tidy/google/StringReferenceMemberCheck.cpp
deleted file mode 100644
index f3a7bd99209..00000000000
--- a/clang-tools-extra/clang-tidy/google/StringReferenceMemberCheck.cpp
+++ /dev/null
@@ -1,51 +0,0 @@
-//===--- StringReferenceMemberCheck.cpp - clang-tidy ------------*- C++ -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "StringReferenceMemberCheck.h"
-#include "clang/AST/ASTContext.h"
-#include "clang/ASTMatchers/ASTMatchFinder.h"
-#include "clang/ASTMatchers/ASTMatchers.h"
-
-using namespace clang::ast_matchers;
-
-namespace clang {
-namespace tidy {
-namespace google {
-namespace runtime {
-
-void StringReferenceMemberCheck::registerMatchers(
- ast_matchers::MatchFinder *Finder) {
- // Only register the matchers for C++; the functionality currently does not
- // provide any benefit to other languages, despite being benign.
- if (!getLangOpts().CPlusPlus)
- return;
-
- // Look for const references to std::string or ::string.
- auto String = anyOf(namedDecl(hasName("::std::string")),
- namedDecl(hasName("::string")));
- auto ConstString = qualType(isConstQualified(), hasDeclaration(String));
-
- // Ignore members in template instantiations.
- Finder->addMatcher(
- fieldDecl(hasType(references(ConstString)), unless(isInstantiated()))
- .bind("member"),
- this);
-}
-
-void StringReferenceMemberCheck::check(const MatchFinder::MatchResult &Result) {
- const auto *Member = Result.Nodes.getNodeAs<FieldDecl>("member");
- diag(Member->getLocStart(), "const string& members are dangerous; it is much "
- "better to use alternatives, such as pointers or "
- "simple constants");
-}
-
-} // namespace runtime
-} // namespace google
-} // namespace tidy
-} // namespace clang
OpenPOWER on IntegriCloud