<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/150189>150189</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [clang-tidy] Incorrect fix-it may cause runtime issue from performance-unnecessary-copy-initialization
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang-tidy
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          ChuanqiXu9
      </td>
    </tr>
</table>

<pre>
    Reproducer: https://godbolt.org/z/11W68o11T

```C++
#include <vector>

struct S {
 S();
    ~S();
    S(const S &);
    S &operator =(const S&);

    int a, b, c, d;
};

bool cond();

void consume(const S&);

void func(std::vector<S> &Vecs) {
    auto TargetIt(Vecs.end());
    for (auto It = Vecs.begin(); It != Vecs.end(); It++)
        if (cond())
 TargetIt = It;

    if (TargetIt != Vecs.end()) {
        const S Value(*TargetIt);
        if (cond()) {
            Vecs.erase(TargetIt);
 consume(Value);
        }
    }
}
```

The clang-tidy's auto-fix will add `&` to `const S Value(*TargetIt);`. This is problematic. Since if we erase the underlying iterator later, the new added reference will be a dangling pointer. This caused a failure in our CI.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyEVE2P4ygQ_TX4UkqEcWLHBx8y6YmU63Zrdq8Yyg4rDFk-uidz2N--AqcTd--21kIkwCvee1WouPdqNIgd2X4j26eCx3C2rjucIzd_qT9iW_RWXrvf8OKsjAIdqfZwDuHiSbUn7EjYcbSytzqsrRsJO_4i7FiWv9c7W5YvhO7TqOk8DoR9S4PuCauUETpKBFIdXlEE60j1fcb74KII8AykSVh4JmxHWEuqvAKAv_-1kzaENT5HsfrjWdqxF3Q8WAekenpgl9AbWpkAnLAD9GkSaZI3QPN0R_bWahDWyKUQQvevVsm07-OEX9Jk0BCNIGzng0yJrPbvOTg8k-p7UvwDhSesfU8CAPAYLLxwN2I4BcJ2CbHGu4al5yE5ZbsccQrJNGR0j6Myd835iJX3U1z4gUSRq8Xa26U5PQPMvhasdH9XlZlO4WNGc8gD8Z-EH4ym772aP7iOmEH7h_WF0y9EfbotfTOj4x4Xch53Pap2o_xEkso_r-Z_t_n9bc9-X84IQnMzroKSV8Ian6u2GtRPeFNaA5cSEprVpKYQbFr8v9WaruHlrDwoDxdne40TD0qs4VkZgcn_G0K2BuGMEI1Ep6_KjKDC7d1rHtCl15wABt-SEpTgcECH6ZIsr0fgILkZdQq-WGUCuhu34NGjBA4DVzo6BGXARgeH07qQXSXbquUFdmWzrVhdbuq2OHes2dC63tKtoGXLemzoTjJW1W3VioH2VaE6RtmWNqyiLd2wdi1kQ3m7E5I1KDZVTzYUJ670WuvXKfWYQnkfsSu3tNy1heY9ap-7F2PLzLPUzVyXolZ9HD3ZUK188I97ggo6971F2PYJTkZY51AEGNTPlQow8evsHVw0QU0IWQEMzk5wQTdYN3EjcBWNQYHec3ddCXu5rpRRQXGtfvGgrCmi092n1qnCOfZrYSfCjknY7Wd1cfZPFIGwY-byqanOhl879k8AAAD__y_wqVU">