================
@@ -0,0 +1,55 @@
+.. title:: clang-tidy - bugprone-loop-variable-copied-then-modified
+
+bugprone-loop-variable-copied-then-modified
+===========================================
+
+Detects when a loop variable is copied and then subsequently (possibly) 
modified
+and suggests replacing with a reference or an explicit copy.
+
+This pattern is considered bugprone because, frequently, programmers do not
+realize that they are modifying a *copy* rather than an underlying value,
+resulting in subtly erroneous code.
+
+For instance, the following code attempts to null out a value in a map, but 
only
+succeeds in nulling out a value in a *copy* of the map:
+
+.. code-block:: c++
+
+  for (auto target : target_map) {
+    target.value = nullptr;
+  }
+
+The programmer is likely to have intended this code instead:
+
+.. code-block:: c++
+
+  for (auto& target : target_map) {
+    target.value = nullptr;
+  }
+
+This code can be fixed in one of two ways:
+  - In cases where the programmer did not intend to create a copy, they can
+    convert the loop variable to a reference or a ``const`` reference. A
+    fix-note message will provide a naive suggestion of how to achieve this,
----------------
PiotrZSL wrote:

do not refer to those fixes as "fix-note", mention somewhere that check provide 
fixes that can be enabled with --fix-notes. Also mention that those fixes can 
break compilation.

https://github.com/llvm/llvm-project/pull/157213
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to