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

    <tr>
        <th>Summary</th>
        <td>
            False positive in tsan when locking more than 64 mutexes at once
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

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

<pre>
    [https://godbolt.org/z/3MbEz4eqY](https://godbolt.org/z/3MbEz4eqY)
```cpp
#include <mutex>

int main()
{
        std::mutex mtxs[65];
        for(int i = 0; i < 65; ++i)
        {
                mtxs[i].lock();
        }
        for(int i = 0; i < 65; ++i)
        {
                mtxs[i].unlock();
        }
}
```
This code reports the following and then deadlocks:
```
ThreadSanitizer: CHECK failed: sanitizer_deadlock_detector.h:67 "((n_all_locks_)) < (((sizeof(all_locks_with_contexts_)/sizeof((all_locks_with_contexts_)[0]))))" (0x40, 0x40) (tid=1)
```

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy1U02P2yAQ_TX4ghph8BcHHzZfqlT11F56irAhMV0CKeDNdn99B5JsVm2l7aXS2J5hxu_NPGBw8meP6uUU4ykg9oDoFuzg5OBMXDh_gOgFHvZ52LxU6sc3VK8R7f69nHJE1og8oIZcbDydriuUaTuaWSqM2Oo4R_WM2Oaay29tIz4KbYHwjtMubyU8RJl6YA_5Z3yMzwFGaerUI7uX7Z0HhASmgWmNCSSzu8JQCz6iSzB95yD8LQ3YFVoD8sK48fHa0RsS1K7_F-Fs36N8dW4iX8Kvkw54dCCwVyfnY8BxUnjvjHFnbQ9YWJlWLJZKyMSRt_TvSB5Kvgiro35RHsrw6uNm9QnvhTYq7QIOt-TuhgZOVGN0fjFBQdPC2DRP0dmdMGaXGXdpKMqzOJckWAActwfnXnbWcdqNzsJGx-tP29eydyrrJcnHlr8xmtjIc0UQXeHLl6elqGGadfnnub2EherLpua85bRtC9kzyRkXRdTRqH4rTFD45AII8aSwtjiCKvicJE69Jc2PzisQHZabCudzqwIWETs7qmL2pv_tasEw87AY3RECY55unw8n776DuBDqEGYVwKlbQtpi6mVd7is1kI41jeS1LFnZtUSOqqo6VQ5tYcSgTEjXHnSw6owzRNqdel3onhJKSUe6sqVl2SzGqmWsYZxUhA2iFqgiCm6lWaQ-0p0vfJ9bGuZDgKTRIYZ7UoSgD1apTAf4Yo6T8_2j9u4oiszc585_AcrCTWs">