<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/148830>148830</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Clang optimizer produces incorrect arithmetic result with global pointers in loops
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
Dong-hui-li
</td>
</tr>
</table>
<pre>
## Description
When compiling code with global pointer operations and type casting in loops, Clang optimizer produces incorrect arithmetic results at -O2 optimization level.
## Environment
- **Clang version**: 14.0.0
- **Operating System**: Linux
- **CPU**: x86_64
- **Optimization level**: -O2
- **GCC version**: 11.4.0 (for comparison)
## Steps to Reproduce
1. Create `test.c` file with the following content:
```
#include <stdio.h>
#include <string.h>
int *a;
int b;
int main() {
char d[16];
memset(d, 170, 16);
[clang_bug.zip](https://github.com/user-attachments/files/21232124/clang_bug.zip)
for (int c = 0; c < 16; c++) {
a = (int*)&d[c];
b = *a + c;
}
printf("Result: %d\n", b);
return 0;
}
```
2. Compile with Clang: clang-14 -O2 test.c -o test_clang
3. Run the program: ./test_clang
4. Output: Result: 185
5. Compile with GCC (for comparison):gcc -O2 test.c -o test_gcc
6. Run the GCC version:./test_gcc
7. Output: Result: 1048761
## Expected Result
Consistent output matching GCC: `Result: 1048761`
## Actual Result
Clang outputs incorrect result: `Result: 185`
## Additional Notes
1. The issue occurs only at optimization level -O2 and above
2. GCC produces consistent results across all versions
3. This miscompilation may affect security-critical applications
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJycVUuP2zYQ_jXjy8ACRT0sH3SQ7TiXolskKXoMKIqWWFCkQFLOOr--IOX1I7vtoYYA0eLMx_m-eZA5J3stRA3FDorDis1-MLY-GN2vh1mulVy1prvUQDOgGR6E41ZOXhoNpPlrEBq5GSeppO6Rm07gD-kH7JVpmcLJSO2FRTMJy4KPQ6Y79JdJIGfOByepURkzOaB73CumezSTl6P8KSxO1nQzFw6l5sZawT0yK_0wCi85WuFm5R0yj-sX-uYWz0ElzkIlQJrwLKF_0mdpjR6F9kCaNQJtgDbLkWdhXaAUP0HWYJonJCEPdi8LBd3j14vzYryb_ib1_PqI-Mef983Xqvxe5k84v0Z5N16_0AfLz_v9B3GlSZ4QBFqdjI3SMytdsNg-kf3qxeTQG_wiriICadIE91YwLxBK4oXzCYeS4Emqa9r8IPBklDI_lnRqH8TKIm5Jrk88Q2qu5k4gZHvnO2mSAbJPH2xZqfvbHmmk9oEdg2x3_dcuy-u_kUkNtAK6RdiE74iIfGAWOyh2aQnFYbEP30cxOuGBVl2onXRD4qsMUrxhQrHjIcHf27lPfsop-NNq8H5ygRY9Aj320g9zm3AzAj3OTtg1857xIRSKA3oM8oQ3TWlGU5oDPT5jvkmPISVAq0CEI2QHJJDt4jLGFdZAd_F55Bd-LNovzjHbW6Bl4MyfKIdfezVtGAINkLdd2Byuq8lK7U9RSfoltkkoHqBFB8VeA6VBqvamVHCxws9Wx5ADnQj1mHSa4D52-rVWYuME1CjGOs1jEy5VhWsTV9_jHpAmS_DLrGN9Tdb0lo3BMwF6fDLLE3yZ_TTHaO9xp1UBpCl-CSD0x4d9kDU95x9F03MOpCnvsTy2WNbcwlnsNv8SDMmrTZk-zJXXSXAvujcb0uyNdtKF3kETEXBkng-hpz7v9zETJXmPuPTWDbfhfmbqAXUZjhHwcSLae36fUKviHWLXyTB3mMLfjRduGQnfBoHSuVmg4Xy2Do1WlzBU3w_UKGqY4Kw1Z7EURdDwNqf5nfltOnNrnEOm1JvUbimIb4N0OEq33B_LKSO7IDudAi0n-Gylv6y5lV5yppBNk5J8uUeANKuuzrpttmUrUaebghYVycpsNdTlptzyqqxYt2FF2m22gvGU8dOWlKeuatOVrCmhBdmkRZoWNM8SVpBtQbvNNqMFK3MBOREjkypR6jwmxvarKFCd5lWVkZVirVAu3piULrVLabg8bR0c1u3cO8iJks67O4SXXon6_1xxH92p7nZxrmar6v8YaSGA62s9WfO34B7oMRIKY-3K6VzTfwIAAP__ATh2MA">