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

    <tr>
        <th>Summary</th>
        <td>
            Possible wrong-code at -O1 and above (affecting the versions from clang-11.0 onward)
        </td>
    </tr>

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

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

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

<pre>
    Hi,

Please consider the following small code `test.c`, and there might be an issue in the inner loop optimization, which is affecting the versions from clang-11.0 to the trunk version.

```
#include <stdio.h>
int c = 0;
int ids = 0;
struct {
  int a;
} b;
void __attribute__((noinline)) marker_1() {
    printf(" b%db ", 1);
    ids++;
}
int d(int e) {
  b.a = 0;
  for (e = 0; e < 8; e++)
    for (c = 0; c < 9; c++)
      if (c){
        for (; e; e++)
          ;
      }
 return b.a;
}
int main() {
  int f[1] = {0};
  if (d(c), f)
 marker_1();
  printf("%d\n", ids);
}

```

$ clang-12 -w -O1 test.c; ./a.out
b1b 1
$clang-12 -w -O3 test.c; ./a.out
b1b 1
$clang-trunk -w -O3 test.c; ./a.out
b1b 1
$clang-trunk -w -O0 test.c; ./a.out
(hangs)
$gcc-trunk -w -O3 test.c; ./a.out
(hangs)


The trunk version I have tested (maybe not very new)
```
clang version 16.0.0 (https://github.com/llvm/llvm-project bf6f82a9df6a1693a5399039dcadd7fc00dab65e)
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
Found CUDA installation: /usr/lib/cuda, version 
```

The code example in GodBolt: https://godbolt.org/z/P95aMbndq


Thanks,
Haoxin

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy0Vs2S2zYMfhr6grFGon4sHXxY21WSQ6eZaXreIUXIYpciXZJab_L0HVJe2-ts0mSa9Xj0B3wAPkCAwJyTe424JuWGlLsFm_xg7Hpg5klqPy24EZ_X7yWhW5LuSHo3Hz8qZA6hM9pJgRb8gNAbpcxR6j24kSkFnREIpEo9Op90pEoJ3QLTIihbhFHuBw8cgWmQzk0IUkc7Umu0oIw5gDl4OcovzEujA_o4yG4A6YD1PXY--AqIR7ROGu2gt2aETjG9X2ZZkoI3Ue7tpB-etZJrHiGq-T_f0lzqTk0h8HzrvJAmGUj-2yyV2kMHJN9BSvLN5ZkU7uap83bqPJDV6R4g6LGznKx2wM93j0YKuL9n3lvJJ4_394TWhNbaSK2kRkIbQhsYmX1Ae59FYXNtHOBgpfZ9lFDghJaCA6E05CwL8PxKVwpH6Cb8r8K5sBGE1uGMN054wm5YAvTGAqE1ngUQEwd1vDx5oc3F9wlwyWJM6BaaePkKAED2ERGeXjO-sjY7-4bH-fciAQBnwmDRT1YHcq9nY2RSf53wIOlJuclIuYtUyGqTBtzFzRy2eA6dbqG_xPWylFeo6zqGKpJyq091jGVrvo7y9Rf59DoXz91AYXmE5R8ZnLox30BCaMsSM_lZmWccsjPuJSz_Odjcb_8TmX4bSWg9ML1354QSWuy77gf9fo2-On66HRfwAQb2iNEcilDTkX3mCNr4oPIZNB4vll5WIXI6G8qqJE3SYGHw_uBIfkdoS2i7l36YeNKZkdBWqcfn0_Jgzd_YeeB91deUNaKvWFY1OSvzpknzRnRMiFXfpalgvCrxHMYnZvfoSX4HT3V1XxXLST9oc9RLJfX0tNzr6ZmsRSZgNAJV0D4YJ59m0QftPFMKxU7aICK0HcyI4RS_DOeLpWCeEdp2ZjxIhdbdRE9oyyepRDhLPRtvzaQFdEwLKZhHeLfdgpwdzqN-djg5G4xJHpLUdYS2JzoXGrTN0jewmf16m6s3MJmUyRuwr3-9ydN7-Scq7EIX_YribM-RjZPyMqDyO0jCgCzSsSpuXH5Paaa6_Wt3919RdZNgYRg_9_R3hm-YJHEFwic2HlRcb94ZsTEqdubNDDCCG-UTY_eEtl8IbT82Jfuda_HPazOK6Qd33sjezw0ZrxdinYsmb9gC11lVl82qyFfVYlgXLOWiSeuGIsdVkRVVJ1aCijzHmvV1upBrmtI8rdIyKzJaVgnSouN5z4u8oKuMIilSHJlUSejuEOgibm3rKs-yeqEYR-XiEkmpxuO80oVPV7lb2HWcCHzaO1KkSjrvLla89ArXH41zkiuEozV6v4yJYz5-scLKyLh5xDA6f3DxM_rIrCC0WUxWrX9u3hLaxuDDJIvk_g0AAP__XSw-Ew">