[OPENMP]Add check for undefined behavior with thread allocators on
authorAlexey Bataev <a.bataev@hotmail.com>
Thu, 28 Mar 2019 19:15:36 +0000 (19:15 +0000)
committerAlexey Bataev <a.bataev@hotmail.com>
Thu, 28 Mar 2019 19:15:36 +0000 (19:15 +0000)
commit471171c4c94ced4b0421049d6949c13bdce256f7
tree87f2b2613af4be365f5667dab1e5d8321747f8f7
parentceb3de5d25668f78b27f8d7e9f1d541eb6cd4ce2
[OPENMP]Add check for undefined behavior with thread allocators on
target and task-based directives.

According to OpenMP 5.0, 2.11.4 allocate Clause, Restrictions, For task,
taskloop or target directives, allocation requests to memory allocators
with the trait access set to thread result in unspecified behavior.
Patch introduces a check for omp_thread_mem_alloc predefined allocator
on target- and trask-based directives.

llvm-svn: 357205
58 files changed:
clang/include/clang/Basic/DiagnosticSemaKinds.td
clang/lib/Sema/SemaOpenMP.cpp
clang/test/OpenMP/target_firstprivate_messages.cpp
clang/test/OpenMP/target_parallel_firstprivate_messages.cpp
clang/test/OpenMP/target_parallel_for_firstprivate_messages.cpp
clang/test/OpenMP/target_parallel_for_lastprivate_messages.cpp
clang/test/OpenMP/target_parallel_for_linear_messages.cpp
clang/test/OpenMP/target_parallel_for_private_messages.cpp
clang/test/OpenMP/target_parallel_for_reduction_messages.cpp
clang/test/OpenMP/target_parallel_for_simd_firstprivate_messages.cpp
clang/test/OpenMP/target_parallel_for_simd_lastprivate_messages.cpp
clang/test/OpenMP/target_parallel_for_simd_linear_messages.cpp
clang/test/OpenMP/target_parallel_for_simd_private_messages.cpp
clang/test/OpenMP/target_parallel_for_simd_reduction_messages.cpp
clang/test/OpenMP/target_parallel_private_messages.cpp
clang/test/OpenMP/target_parallel_reduction_messages.cpp
clang/test/OpenMP/target_private_messages.cpp
clang/test/OpenMP/target_reduction_messages.cpp
clang/test/OpenMP/target_simd_firstprivate_messages.cpp
clang/test/OpenMP/target_simd_lastprivate_messages.cpp
clang/test/OpenMP/target_simd_linear_messages.cpp
clang/test/OpenMP/target_simd_private_messages.cpp
clang/test/OpenMP/target_simd_reduction_messages.cpp
clang/test/OpenMP/target_teams_distribute_firstprivate_messages.cpp
clang/test/OpenMP/target_teams_distribute_lastprivate_messages.cpp
clang/test/OpenMP/target_teams_distribute_parallel_for_firstprivate_messages.cpp
clang/test/OpenMP/target_teams_distribute_parallel_for_lastprivate_messages.cpp
clang/test/OpenMP/target_teams_distribute_parallel_for_private_messages.cpp
clang/test/OpenMP/target_teams_distribute_parallel_for_reduction_messages.cpp
clang/test/OpenMP/target_teams_distribute_parallel_for_simd_firstprivate_messages.cpp
clang/test/OpenMP/target_teams_distribute_parallel_for_simd_lastprivate_messages.cpp
clang/test/OpenMP/target_teams_distribute_parallel_for_simd_linear_messages.cpp
clang/test/OpenMP/target_teams_distribute_parallel_for_simd_private_messages.cpp
clang/test/OpenMP/target_teams_distribute_parallel_for_simd_reduction_messages.cpp
clang/test/OpenMP/target_teams_distribute_private_messages.cpp
clang/test/OpenMP/target_teams_distribute_reduction_messages.cpp
clang/test/OpenMP/target_teams_distribute_simd_firstprivate_messages.cpp
clang/test/OpenMP/target_teams_distribute_simd_lastprivate_messages.cpp
clang/test/OpenMP/target_teams_distribute_simd_linear_messages.cpp
clang/test/OpenMP/target_teams_distribute_simd_private_messages.cpp
clang/test/OpenMP/target_teams_distribute_simd_reduction_messages.cpp
clang/test/OpenMP/target_teams_firstprivate_messages.cpp
clang/test/OpenMP/target_teams_private_messages.cpp
clang/test/OpenMP/target_teams_reduction_messages.cpp
clang/test/OpenMP/task_firstprivate_messages.cpp
clang/test/OpenMP/task_in_reduction_message.cpp
clang/test/OpenMP/task_private_messages.cpp
clang/test/OpenMP/taskloop_firstprivate_messages.cpp
clang/test/OpenMP/taskloop_in_reduction_messages.cpp
clang/test/OpenMP/taskloop_lastprivate_messages.cpp
clang/test/OpenMP/taskloop_private_messages.cpp
clang/test/OpenMP/taskloop_reduction_messages.cpp
clang/test/OpenMP/taskloop_simd_firstprivate_messages.cpp
clang/test/OpenMP/taskloop_simd_in_reduction_messages.cpp
clang/test/OpenMP/taskloop_simd_lastprivate_messages.cpp
clang/test/OpenMP/taskloop_simd_linear_messages.cpp
clang/test/OpenMP/taskloop_simd_private_messages.cpp
clang/test/OpenMP/taskloop_simd_reduction_messages.cpp