forked from OSchip/llvm-project
781a0896b0
Summary: I have discovered this because i wanted to experiment with building static libomp (with openmp-4.0 support only) for debugging purposes. There are three kinds of problems here: 1. `__kmp_compare_and_store_acq()` simply does not exist. It was added in D47903 by @jlpeyton. I'm guessing `__kmp_atomic_compare_store_acq()` was meant. 2. In `__kmp_is_ticket_lock_initialized()`, `lck->lk.initialized` is `std::atomic<bool>`, while `lck` is `kmp_ticket_lock_t *`. Naturally, they can't be equality-compared. Either, it should return the value read from `lck->lk.initialized`, or do what `__kmp_is_queuing_lock_initialized()` does, compare the passed pointer with the field in the struct pointed by the pointer. I think the latter is correct-er choice here. 3. Tests were not versioned. They assume that `LIBOMP_OMP_VERSION` is at the latest version. This does not touch LIBOMP_OMP_VERSION=30. That is still broken. Reviewers: jlpeyton, Hahnfeld, AndreyChurbanov Reviewed By: AndreyChurbanov Subscribers: guansong, jfb, openmp-commits, jlpeyton Tags: #openmp Differential Revision: https://reviews.llvm.org/D55496 llvm-svn: 349260 |
||
---|---|---|
.. | ||
bug_36720.c | ||
bug_nested_proxy_task.c | ||
bug_proxy_task_dep_waiting.c | ||
bug_serial_taskgroup.c | ||
kmp_task_reduction_nest.cpp | ||
kmp_taskloop.c | ||
nested_parallel_tasking.c | ||
nested_task_creation.c | ||
omp50_task_depend_mtx.c | ||
omp50_task_depend_mtx2.c | ||
omp_task.c | ||
omp_task_final.c | ||
omp_task_firstprivate.c | ||
omp_task_if.c | ||
omp_task_imp_firstprivate.c | ||
omp_task_priority.c | ||
omp_task_private.c | ||
omp_task_shared.c | ||
omp_taskloop_grainsize.c | ||
omp_taskloop_num_tasks.c | ||
omp_taskwait.c | ||
omp_taskyield.c |