<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/64693>64693</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
OpenMP parallel reduction gives wrong result with clang on Windows
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
annop-w
</td>
</tr>
</table>
<pre>
Compiling this program with clang++ -fopenmp -O3 prints wrong result for some number of OMP_NUM_THREADS.
```
#include <iostream>
int main () {
double sum = 0.0;
#pragma omp parallel for default(none) reduction(+:sum)
for (int i = 0; i < 1000; ++i) {
sum += 1.0;
}
std::cout << sum << std::endl;
return 0;
}
```
```
# clang++ --version
clang version 16.0.0
Target: aarch64-pc-windows-msvc
Thread model: posix
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx0U8tu4zgQ_JrWpSGDJm09DjrYcYy9ZBPsZrHHgJJaEgd8CCRlz_z9QJITJwHGMCCSRVYVq9kyBNVbogr2R9ifEjnFwflKWuvG9JrUrv1VPTgzKq1sj3FQAUfvei8NXlUcsNHS9sCPwI-Ydm4ka0ZMnwWOXtkY8Oqd7dFTmHTEznkMzhDaydTk0XX4_PTy9vd_T2-vf_3zeDj9uwF2AnaAjN3-65QLZRs9tYQgHpQL0ZM0IB5XWNmIRiqLwAvgJUJ-XAFs3VRrwjAZBHFCtmEgjh-co5e9kejMiKP0UmvSi8WWOjnpCLywztLM6KmdmqicXRSOIA5hMsDLm8ztN58FXsx21KoH4rgMH3DL2DJbo1JfbS7-ZtoTbj9ZfOeF_PR1IcQWxAHEoXFTnOlnhfWS6_AdJ9vqO52nOHmLnzJ4J_6e9x-K8LXa6YV8mDNZ4AXC2xJus80c9oK8St9TBHFAKX0zZLt0bNKrsq27htSES3PbNniSLRrXkp43jy6on9-cJG0l2lKUMqFqm5WcZWWWsWSo9pxnRd01ndh1Tc7FrtiVTSOKPO9yytsuURVnXLBiu2eCbxnb8JrlrJa8K-qMtbyGHSMjld5ofTEb5_tEhTBRle2yUiRa1qTD0iScW7riAgLnc8_4aj6T1lMfYMe0CjHcWaKKmqrnkezTy_2ZfTwo7NWFvrXJvbHQWfx_TSqZvK6GGMcwl5afgZ97FYep3jTOAD_PgrdPOnr3g5oI_LzYDMDPyzV-BwAA__9lQCeg">