<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">