summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--clang-tools-extra/clang-tidy/readability/RedundantStringCStrCheck.cpp18
1 files changed, 7 insertions, 11 deletions
diff --git a/clang-tools-extra/clang-tidy/readability/RedundantStringCStrCheck.cpp b/clang-tools-extra/clang-tidy/readability/RedundantStringCStrCheck.cpp
index f0c378f5b51..903a0ed1d43 100644
--- a/clang-tools-extra/clang-tidy/readability/RedundantStringCStrCheck.cpp
+++ b/clang-tools-extra/clang-tidy/readability/RedundantStringCStrCheck.cpp
@@ -13,6 +13,7 @@
#include "RedundantStringCStrCheck.h"
#include "clang/Lex/Lexer.h"
+#include "clang/Tooling/FixIt.h"
using namespace clang::ast_matchers;
@@ -22,14 +23,6 @@ namespace readability {
namespace {
-template <typename T>
-StringRef getText(const ast_matchers::MatchFinder::MatchResult &Result,
- T const &Node) {
- return Lexer::getSourceText(
- CharSourceRange::getTokenRange(Node.getSourceRange()),
- *Result.SourceManager, Result.Context->getLangOpts());
-}
-
// Return true if expr needs to be put in parens when it is an argument of a
// prefix unary operator, e.g. when it is a binary or ternary operator
// syntactically.
@@ -54,10 +47,12 @@ formatDereference(const ast_matchers::MatchFinder::MatchResult &Result,
if (const auto *Op = dyn_cast<clang::UnaryOperator>(&ExprNode)) {
if (Op->getOpcode() == UO_AddrOf) {
// Strip leading '&'.
- return getText(Result, *Op->getSubExpr()->IgnoreParens());
+ return tooling::fixit::getText(*Op->getSubExpr()->IgnoreParens(),
+ *Result.Context);
}
}
- StringRef Text = getText(Result, ExprNode);
+ StringRef Text = tooling::fixit::getText(ExprNode, *Result.Context);
+
if (Text.empty())
return std::string();
// Add leading '*'.
@@ -185,7 +180,8 @@ void RedundantStringCStrCheck::check(const MatchFinder::MatchResult &Result) {
// Replace the "call" node with the "arg" node, prefixed with '*'
// if the call was using '->' rather than '.'.
std::string ArgText =
- Arrow ? formatDereference(Result, *Arg) : getText(Result, *Arg).str();
+ Arrow ? formatDereference(Result, *Arg)
+ : tooling::fixit::getText(*Arg, *Result.Context).str();
if (ArgText.empty())
return;
OpenPOWER on IntegriCloud