[clang-tools-extra] [clang-tidy][NFC][docs] Add limitation of variable lifetimes in performance-unnecessary-copy-initialization (PR #151862)
via cfe-commits
cfe-commits at lists.llvm.org
Sun Aug 3 05:38:10 PDT 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-clang-tidy
Author: Baranov Victor (vbvictor)
<details>
<summary>Changes</summary>
Addresses https://github.com/llvm/llvm-project/issues/150189.
---
Full diff: https://github.com/llvm/llvm-project/pull/151862.diff
1 Files Affected:
- (modified) clang-tools-extra/docs/clang-tidy/checks/performance/unnecessary-copy-initialization.rst (+19)
``````````diff
diff --git a/clang-tools-extra/docs/clang-tidy/checks/performance/unnecessary-copy-initialization.rst b/clang-tools-extra/docs/clang-tidy/checks/performance/unnecessary-copy-initialization.rst
index bb4f42c88d62f..0e9d5476e7016 100644
--- a/clang-tools-extra/docs/clang-tidy/checks/performance/unnecessary-copy-initialization.rst
+++ b/clang-tools-extra/docs/clang-tidy/checks/performance/unnecessary-copy-initialization.rst
@@ -59,3 +59,22 @@ Options
types that don't own the underlying data. Like for `AllowedTypes` above,
regular expressions are accepted and the inclusion of `::` determines whether
the qualified typename is matched or not.
+
+
+Limitations
+-----------
+
+This check does not perform lifetime analysis and may suggest replacing copies
+with const references that could become dangling. Be cautious when the
+referenced object might be invalidated by subsequent operations.
+
+.. code-block:: c++
+
+ void consume(const S&);
+
+ void func(std::vector<S> &Vec) {
+ const auto It = Vec.begin();
+ const S Value(*It); // The warning will suggest making this a const reference.
+ Vec.erase(It); // Container modifications could invalidate references.
+ consume(Value); // Safe with copy, dangling reference otherwise.
+ }
``````````
</details>
https://github.com/llvm/llvm-project/pull/151862
More information about the cfe-commits
mailing list