<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/130229>130229</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
clang optimization ignores UB (overflow) + standard library bug
</td>
</tr>
<tr>
<th>Labels</th>
<td>
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
kelbon
</td>
</tr>
</table>
<pre>
https://godbolt.org/z/r8Yd7nhzc
Not sure standard requires this behavior or not, but it is undefined behavior in IMPLICI T conversion, in naive code, which is expected to be working. Huge disappointmentin in std::chrono
```cpp
#include <chrono>
#include <iostream>
int main() {
std::chrono::nanoseconds ns = std::chrono::milliseconds::max();
std::cout << ns.count() << "|" << ns.max().count();
}
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJxsU81u2zwQfJrVZRFDIi3bOuhgO5_xBWiLHtpDj5S4krahuCpJOT9PXyh2mqApIEDScnZmdjE0MXLviWooD1DeZmZOg4T6nlwjPmvEPtVDSlMEvQd1AnXqxTbi0kpCD-r0DOoUdj_s1g_PLeR7yPdfJGGcA2FMxlsTLAb6NXOgiGngiA0N5swSUAJ6SaCO2MwJOSFHnL2ljj3ZNxh7vPv89dPd8Q6_YSv-TCGy-KWPPXrDZ8JWLC2Fh4HbYeGhx4naRBaTYEP4IOGefb_C_-ee0HI00yTs00g-sV94YrLLiHrfDkG8XEaBTX552mlafpVm37rZEoI-XoH6vw8nLDEFMuPljH3C0bAHtQNVIWwPkO8R8YPky7c3XiK14m1EHxH07b9xIzvHV-C1Yh4vEqA_KsicFmegj-jjqpXZp1c_lyooBdsjKPUO9ofxfcOFHba37_cD-T6ztbaVrkxGdbFdF7qoqnKTDXVl8jV1ndbdtmu0LdZdW1a23GnqbK51lXGtclXmOt_muqyKzaorlG2tUVSWzaYqGljnNBp2K-fO4xK8jGOcqS50rlSVOdOQi68BDvWCumnmPsI6dxxTfOtLnBzVrTO-R5kSj_xsEotH7r0sCf1-QFA7OVPonDy87Ecd3pLsuAkmPGEz99kc3N9Xg9MwN6tWRlCnRfP6upmC_KQ2gTq9GI-gTlfv51r9DgAA__9v8xgy">