diff --git a/openmp/runtime/src/kmp_atomic.cpp b/openmp/runtime/src/kmp_atomic.cpp --- a/openmp/runtime/src/kmp_atomic.cpp +++ b/openmp/runtime/src/kmp_atomic.cpp @@ -2536,8 +2536,11 @@ \ if (flag) { \ new_value OP rhs; \ - } else \ + (*lhs) = new_value; \ + } else { \ new_value = (*lhs); \ + (*lhs) OP rhs; \ + } \ \ __kmp_release_atomic_lock(&ATOMIC_LOCK##LCK_ID, gtid);