<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/55238>55238</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
clang-tidy check bugprone-use-after-move doesn't work with std::vector::emplace
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
sean-mcmanus
</td>
</tr>
</table>
<pre>
I used clang-tidy 14.0.0 with something like `clang-tidy.exe --checks=bugprone-use-after-move <file> --`
With C++ code
```cpp
#include <unordered_map>
#include <string>
int f(std::string &&s) { return s.length(); }
int main()
{
std::string s = "1";
std::unordered_map<std::string, int> v;
v.emplace(s, f(std::move(s)));
return 0;
}
```
Optionally you can add code below the repro code like
```cpp
#include <vector>
void g(int i, std::vector<int> v);
int main2()
{
std::vector<int> v = { 1, 2, 3 };
g(v[1], std::move(v));
return 0;
}
```
from https://releases.llvm.org/14.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/bugprone-use-after-move.html#unsequenced-moves-uses-and-reinitializations to verify the expected behavior.
Bug: No clang-tidy warning is reported, even though at runtime the moved string is used (at least with some compilers).
If this can't be fixed for some "by design" reason, then I would appreciate it if the documentation would describe the conditions which prevent the check from working.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyNVMtu6zgM_RpnI9iw5bhJFl40yRToZmY5y4Es0bFuZckjyU4zXz-U7OaFFriB4hfJQ_Lw0Rhxqd_J6EAQrpg-pV6KCynWWZ7l5Cx9R5zpwXdSn4iSH0CSl_ymmMEnkDTlHfAPl5THZjwN1mhIETBlrQeb9mZCo_LQSgVJ-QdqI0KSH5P8db7-HZwcErrHQ7gRsAhRKx4-DMsXWkrN1Sgi3qiNFWBB_NOzAYG_03HeYtw3YbxK7Umb0K3zIilf8cxaJKEveFxCdyTZ7IkFP1pNXKZAn3yHBihJyj0Kjzegnkm9iGYXm_38QPD37MFhTEf0Qwv8I9Q3mk9ZHZ4gEnog6DbwOD0ATBn0g2IcQmJB6yHDUINZsFvOve2SaX79eM3wWoN7_v4avDSaKXUhFzMSzjRhQsTKkQaUORPfAYJiI8wfQ9v8Xk0n4N7Ya70mIwXBnLeBaRmyumb0pXm4snGX1Fdh6LeV-RljLg_Wvgi-aLiUsdxfwCGWKan2RVIdH8JZCJ6e2P1tZltretJ5P7iAR9_wWFDAHGD_qanPjEXfb_NY4oM3RmE13-Ik3r3Dp7cM78LwqzgOaniZh5S-_TCkWed7hfUYtYN_R9AcRPzugp5LmRapBamll0zJ_1hoAke8IRNY2V5i0eFzQE5xlTTQsUkam903zn7EUXwlf5r7TXNmVofZkC60jLFoHZiFCTRCmvHUEeaJHbWXPUQnISZBlpFCs7i7kHxUC4z529bC9usHXDs2NP5DKO8tQqEtNm9CNx7jJa38RJzW2NkUJ7S5EAFOnlCFYnDMGR1Cwxg0eSdnMypB2DBY4JJ5IBJ7tI0RIvtjD9pHjhZFROJWNnMK3GghZwLPneQdQRBM2M_CUCcSO-Js7AdmuYS-EnUpduWOrbz0Cuo7Fmebn7avMODmPAPgws_zFITnZYesRqvqx248oc3YZEgovoSOXG4pOvyFCPgqnRsh9FdV0XK76updvmmKZrfhVcMYXzO6eVlvoKBFsW23Vb5ZKYb7wtU4UMiwhjOJEGE3VseVrGlOaV7hpVyvS5qxYivYrthV7aaqgO-SdQ445eo6ICtbx5CQBodCJZ2_Tc-KuVBKgOgO8dmI7WVrB0ynPe-ZHt0q-q9j_P8DlOowKA">