summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/docs/clang-tidy
diff options
context:
space:
mode:
Diffstat (limited to 'clang-tools-extra/docs/clang-tidy')
-rw-r--r--clang-tools-extra/docs/clang-tidy/checks/abseil-redundant-strcat-calls.rst26
-rw-r--r--clang-tools-extra/docs/clang-tidy/checks/list.rst1
2 files changed, 27 insertions, 0 deletions
diff --git a/clang-tools-extra/docs/clang-tidy/checks/abseil-redundant-strcat-calls.rst b/clang-tools-extra/docs/clang-tidy/checks/abseil-redundant-strcat-calls.rst
new file mode 100644
index 00000000000..d342bf377eb
--- /dev/null
+++ b/clang-tools-extra/docs/clang-tidy/checks/abseil-redundant-strcat-calls.rst
@@ -0,0 +1,26 @@
+.. title:: clang-tidy - abseil-redundant-strcat-calls
+
+abseil-redundant-strcat-calls
+=============================
+
+Suggests removal of unnecessary calls to ``absl::StrCat`` when the result is
+being passed to another call to ``absl::StrCat`` or ``absl::StrAppend``.
+
+The extra calls cause unnecessary temporary strings to be constructed. Removing
+them makes the code smaller and faster.
+
+Examples:
+
+.. code-block:: c++
+
+ std::string s = absl::StrCat("A", absl::StrCat("B", absl::StrCat("C", "D")));
+ //before
+
+ std::string s = absl::StrCat("A", "B", "C", "D");
+ //after
+
+ absl::StrAppend(&s, absl::StrCat("E", "F", "G"));
+ //before
+
+ absl::StrAppend(&s, "E", "F", "G");
+ //after
diff --git a/clang-tools-extra/docs/clang-tidy/checks/list.rst b/clang-tools-extra/docs/clang-tidy/checks/list.rst
index bde9285fb6a..35deccd8e96 100644
--- a/clang-tools-extra/docs/clang-tidy/checks/list.rst
+++ b/clang-tools-extra/docs/clang-tidy/checks/list.rst
@@ -7,6 +7,7 @@ Clang-Tidy Checks
abseil-duration-division
abseil-faster-strsplit-delimiter
abseil-no-namespace
+ abseil-redundant-strcat-calls
abseil-string-find-startswith
abseil-str-cat-append
android-cloexec-accept
OpenPOWER on IntegriCloud