<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=http://email.email.llvm.org/c/eJy1VkuP2zYQ_jXyhbAgUdbroEPWjpscihZo7gElUha7FGnwYTv99R1Skq140wJFN7BgcjgzH4fDebBV9FvziUd4j-zAUK-EUFcuT-hCBKeoU5QhbtDITafGMxeMovYbEuIybtMkhh8irbowdGHacCVNjD4jMiKpLDJOM3QdGOBqD64DEkHUnZHSXiSOkkOUfJj_i2T-JhLvOgIgcbfQGZedcGBPlO2NpVzaeIiyj__EViuusdp1FkXly0QjBNrVV4tIlM1LUXlA7Z1yEg7zJJ_h7xTCWlrAWvcdCL1Tiw578Jf1oBfhDz1Ye4BJQePujR7wL0oQC15Hp4fgwwS3SA4RriJcrw1uYxJUkpXBPbjdS2YvM_vjInEX9-MWpU9g6GHrGi8sT5alq2XwwjLVzDot1x5YeGA6GgmXby2fD7MCPGuQ7sMyjnBOo3wvw3SPvDtWsnf4RxAJAtG8_S3xoQSmvsQRPpJYOTuJpG8k00US3UW91wwZGSIGBDCyCgYT7A7ayY83vUwLEzVnCErzkDaAOFh7NlEGCkf4TtwOro0hzYDwCTYP27NWfzKIXlzvkhKzNGnreldnOGt7nBR1nlR5ibM0r_qyq8qs8_4I-34h-sQsbIBuVfG12G2dfJXqKreCS3fbnqSb5QbNCEUj5Lrw0mdl-G1ifZbGEgFZf-Das8CmQY3MD0Td_O3Nky0lFm7iOFcJbZ6sB7J1XFA_gloAPyonocQQSTloM_TLfg85FTaEoFdy3tAZ7cF4653UwfGO83Eex8DHNPkJmOn7Y5Y_ATKGiHp_2Or9Iee4_IMJiAjoJO9xOfu7ZaMTUCpBC1BiXxF2yVjsnrb8N6HnDhT-fxeMGIa6gXWvaFBX6GTQxbgxDqpB3wOqQSq0uKUFIt_qPP5TfivaKmFjpU9A_eUvrujVrxea39b7fRmIfIXs2U_kp5BdG9pktM5qsiHODko3U9JZt3FaNP-tjgAZrPcZmmd1WW-GpqzyHqdVSmlWtFWOM4JJXxUEU9y3xa7eCNIyYZoof4nyw-b_b8kbnGD_4WS3q3EZE0LaDpOWdn2fkDKHe2HQHkTscbzPNroJkK07GWAKbqx5MIkx_CQZWyy03ArWXLWCwhveMPCU8JUdgmV-sEAlfo4qX5OnK33cZa_ViOaXDlR9eEfIVyiwm3CeJhzmb5sYvTI>53979</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            wrong code at -O1 and above on x86_64-linux-gnu (affect versions from 10.0.0 to trunk)
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
      </td>
    </tr>

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

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

<pre>
    Hi, the following valid code is miscompiled by llvm-10.0.0 above versions. I am not sure whether there is a dup or not.

```
$cat s.c
#include <stdint.h>
#include <stdio.h>
struct {
  int8_t a;
} b;
union {
  int32_t a;
  int16_t c;
} d;
int32_t e;

int16_t *f = &d.c;
int32_t *volatile g = &d.a;
uint32_t h() {
  b.a = 0;
  for (; b.a >= 0; b.a = b.a - 1) {
    *f = 0;
    *g = 1;
  }
  return e;
}
int main() {
  h();
  printf("%d\n", d.a);
}

$clang -O0 s.c ;./a.out
1
$clang -O1 s.c ; ./a.out (same as -O2 to -Os) 
0

$clang -v
clang version 15.0.0 (https://github.com/llvm/llvm-project 294072e10b9949323bf20695085723158f7c873c)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /home/haoxin/haoxin-data/compilers/llvm-project/build/bin
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/10
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/11
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/7
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/7.5.0
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/8
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/9
Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/11
Candidate multilib: .;@m64
Selected multilib: .;@m64
```

Please check how this issue affects other versions here: https://godbolt.org/z/76foMvd5x

Thanks,
Haoxin
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy1VV2vmzgQ_TXkxQoCE0J44KE3ado-rHal7XtlYxPca-zIH0m6v37HBhKau7vSSrcCYcYzc3w89sxQzX40n0WC98j1HHVaSn0V6oQuRAqGWs04EhYNwrZ6OAvJGaI_kJSXYZ1nKTyIUH3h6MKNFVrZFH1BZEBKO2S94ejac8A1AdxEJIKYPyNtgkmaZIck-zB9t9n0jiLetARA0naWC6Fa6YFPUuytY0K5tE-Kj_-m1gutdca3DiXVyygjBN67bw6RpJimkuqA6F3yCjbzZF_gnxziXL6FufYnEHaXZh_-0M_z0S_BHzpge4CfLUvbN36gv2hJHEQdnR6GDwp-tuwTvEtwvSRMUxJdsgXhDsIeLIuXSf1xtribh3GN8icw9OC6xIvTI7N8MQ1RmH8Nd96oZQRmHVBHAxHqLfNpMwvAswHrLk7jBJcsKfcq_u5RCMfC9g7_uESSwG1e_56FqwRUX9IEH0mqvRtN8jeW-WyJ7qYhapYMHBELBhg5DYONvKN39s-LXsaJUZoyBOVlTBtA7J0726QAhyO8J-F6T1NIMxBCgk3D-mz0dw63F9ebrMI8z2hdb-oCF7TD2bYus11Z4SIvd13V7qqiDfGI634l5sQdLIBuu-237Wbt1avSV7WWQvnb-qT8ZNcbThgaINdlsD5rK26j6ouyjkjI-oMwQQWcej3wMBB9C6c3_awZcXASx6lKGPvEHkTqhWRhBLcIftReQYkhignw5ujTfg85FReES6_VtKC3JoAJGoLUwvaO03Ye28DHPPsFmPn7Y1a_ADKFG_X-sLv3h5zu5Z9cwo2ATvIeh7O_Mxu8hFIJXoCShoqwyYbt5mnJ_zJ67kDx-4fkxHLU9rx9Rb2-QieDLias9VANug5QLdKxxc0tEIVWF_Cf8lszqqVLtTmB9Fc4uG2nf7uw8rZc72tP1Ctkz34UP8fsWrGmYHVRk5UTTvLmajRUlNicoUeGkgVRmDoxlJjncIViM3J9kOyMHtDUwqGcQYNUr1A5Vt7I5v8VJhBjOELKl0Vd1au-6TJKS7oru2oHD6ctoW3FeFfUrMxoQVaSUC5tk5QvSXlYiQZnOLw422xqXKWEgAMmlLVdl5GqhGPi0C1kGhYOIVyZJnKg_mRBKYV19qEk1oqT4nzGJ9712jRjqXJ-Ffk2kezfjRGo1Q">