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

    <tr>
        <th>Summary</th>
        <td>
            Signed integer overflow not detected with -fsanitize=undefined -O1 optimization level
        </td>
    </tr>

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

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

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

<pre>
    The following program shows an issue where signed integer overflow is not detected when compiled with `Clang` using the option `-fsanitize=undefined -O1`. However, without `-O1`, the runtime error is correctly reported as an overflow.
Additionally, `GCC` rejects this by both `-fsanitize=undefined` and `-fsanitize=undefined -O1`.
Please see https://godbolt.org/z/j5K3PPac8


```
#include <stdio.h>
unsigned a;
class b {
public:
  char d[25][25];
} *e = new b;

void func(b *) {
    for (int y = 3;
           y < -5870024400429537026 * (e->d[7][0] / 012) - 6706695272850477542;
           y += 4) {
        a = !0;
 }
}

int main() {
    for (int i; i < 25; ++i)
        for (int j = 0; j < 5; ++j)
            e->d[i][j] = 033;

    func(e);
 printf("%u\n", a);
}
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyEVMuO6ygTfprKppQIF74kCy-c5OT_pVlMSzMvgG0c0yIQAU7U_fSjIjl9ukenNciSMfDdAJeK0Zyd1i1Ue6iOK7Wk2Yf2rty590W16v341v49a5y8tf5u3BmvwZ-DumCc_T2icmhiXDTeZx00ZrYRjUv6rAP6mw6T9Xc0EZ1POOqkh6RHXu1w8Jersfxl0oxQi4NV7gy1wCWyUpo1-msy3vHkeorKmWTeNcjj4kY9GZZa_1lALTb4f3_XNx2ADpnOLymD8iwPMllYXDIXjToEH9jT4EPQQ7JvGPTVB3amcqafxjcgum4cDZtQ1r4xE9Tif4cD2wz6VQ8pYppNxP4Ne__I8XurjFBu_O8sILoXq1XUGLXGOaVrBNkBnYBOZz_23qaND2eg0zvQ6bX6Q768qGELons-tXg-ogOSxg12GTWCPMQ0Gr-ZQf4A0S3ueVoK5B5EN1gVI_YIDX9dl96agXVFhzjMKuAI1Z4qqI4f74yD5ohAHQsc0ek79s9x0d28GXFa3AC07XkR0O7Jj4g4-YBAW-MSvmW0fCDxV-PxA66rbSMElaUQJe0q2QiqmY7Reg3yB1trHs4EVOznhKIglltj3Yi63lXU0LYSZdNUJf1Oh_ZsofxqkZvK3oAK8YRBc3zkfqRk_xdlHND223wG5B5NDkMV91mO9gZo90npE-A1i7Ji7h7wE-r1K4rbxy6Yxy685l1gBik_jiNLPE5DM8UjzTUYl6ZsnoCqBaqDy90Dqo9Vz7A_b9ZqbOW4kzu10m3RSN7WbVOu5lYNg6gV9aQnVU27ptAk-6bZ7ZptOVJdr0xLgsqCqCxkWcpyI4pyO21lMcp-HPqpglLoizJ2Y-3twvd8lQtMW1AhKrmyqtc25npFxLctz7Lf6rgKLYPW_XKOUAprYoq_aJJJVrd_fVOhvpYnLkjf_6S5Kl3Mu8q1yeqbtqsl2PZfv6pJ89JvBn8BOrGL52t9DZ7rBtApe49Ap2e4W0v_BAAA__9P4JrH">