<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/147326>147326</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
UBSan (unsigned-integer-overflow) reports issue in libc++
</td>
</tr>
<tr>
<th>Labels</th>
<td>
libc++
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
oboukli
</td>
</tr>
</table>
<pre>
Compiler info:
```text
clang version 20.1.0 (https://github.com/llvm/llvm-project.git 24a30daaa559829ad079f2ff7f73eb4e18095f88)
Target: x86_64-unknown-linux-gnu
```
```cpp
#include <algorithm>
#include <functional>
#include <vector>
int main()
{
std::vector primes{
2, 3, 5, 7, 11, 13, 17, 19,
23, 29, 31, 37, 41, 43, 47, 53,
59, 61, 67, 71, 73, 79, 83, 89,
};
std::sort(primes.begin(), primes.end(), std::greater{});
return 0;
}
```
Compile with `-stdlib=libc++ -fsanitize=unsigned-integer-overflow`
Output:
```text
/opt/compiler-explorer/clang-20.1.0/bin/../include/c++/v1/__bit/blsr.h:25:23: runtime error: negation of 1023 cannot be represented in type 'unsigned long'
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /opt/compiler-explorer/clang-20.1.0/bin/../include/c++/v1/__bit/blsr.h:25:23
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJy8VM2O4zYMfhrlItiQKf8efHCS-rYo0OkcehpINu2oq0iGLGdm-_SFIs9k2u0eetnACCF-JEV-IinWVc0GsSXFkRTng9j8xbrWSrt91eog7fitPdnrojQ6qsxkCe8Iu38li5_HN09YN2hhZnpDtyprKLA0SxklUF-8X9bgBT2Bflb-ssl0sFcCvda3d5Eszv6Jg09n5SnkgrNRCFEUTQ2NGFnVTDBN1VRxlDlmNWuKqa4JNIR1vws3oye8o291-VLmyWa-GvtqEq3M9pbMZvuc7b-SH5YlHIErM-htREr4SejZOuUvV8J_-Q6cNjN4ZY3Q_4XecPDW7QjrlPH0KpQhsOdKqiNhHaWUrn4MpPAuutDFqSuuOw4ETpRSHkURRXUXWRZFxLJd2RA47YHDDyIKzV3w6MKjbX4_5dEij7qC_9O_iI5ldCyjURVPVfSsokkdT_WnBEh1JvwYCXiUuVrnCdSxzFTi_MEKnPbiUzTjQ_fhOTsUHl2gpjoH8CM4pdSh35yhbFdW5-_fem9f-qr8hZKSJasftZKEn7WSA4EjgSNNplUY5dVfSPh5M_ehGBNlPM7oEntDN2n7-hHz180vm__hLBDo7eIJ9MM-Ogm-Ldo6dEEXBiWJA0Kgl4GIPk0J9HsjBZuYFoH-lhHoX16kCuGkXl16IbyDIvzx0PRuM15dkaJzofM6anAWoUOpnWjGgNNBGGM9lUgdLg5XNB5Hqgz13xakBKr3eqm2ZiZQEdY9PX_50v32R4j3bEaclMHxiBdxU9Y97Uzdb9ve0UTuMP1Z1dPPzB_Glo8Nb8QB26wqsoZBxfnh0soJGzbyTA7QYFFPbGS1rGEsmBxKWY8H1QKDglWsygpeFzwd5FhiWWdjkQsQlSQ5w6tQOg2LKrVuPqh13bDN8opDedBCol7vCxTg0VIEICxU197Xm9zmleRMq9WvjzheeY3t8_FJmLAqf9x30IS3s86v9H53eL3HVYfN6fb_7dnAdwi0Euj3Om4t_B0AAP__zoLBKg">