[PATCH] D107200: Stop emit incomplete type error for a variable in an omp map clause where should not.

Jennifer Yu via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Jul 30 15:42:09 PDT 2021


jyu2 created this revision.
jyu2 added reviewers: jdoerfert, ABataev, mikerice, cfe-commits.
jyu2 added a project: OpenMP.
jyu2 requested review of this revision.
Herald added a subscriber: sstefan1.
Herald added a project: clang.

Stop emit incomplete type error for a variable in a map clause
where should not.

Currently we are using QTy->isIncompleteType(&ND) to check incomplete
type.  But before doing that, need to instantiate for a class template
specialization or a class member of a class template specialization,
or an array with known size of such..., so that we know it is really
incomplete type.

To fix this using RequireCompleteType instead.

The new test is added into "test/OpenMP/target_update_messages.cpp"

The different using RequireCompleteType when emit incomplete type, a
note is also emitted to point to where incomplete type is declared.
Because this change, many tests are needed to be fixed where adding
additional note.

This is to fix https://bugs.llvm.org/show_bug.cgi?id=50508


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D107200

Files:
  clang/lib/Sema/SemaOpenMP.cpp
  clang/test/OpenMP/distribute_firstprivate_messages.cpp
  clang/test/OpenMP/distribute_parallel_for_firstprivate_messages.cpp
  clang/test/OpenMP/distribute_parallel_for_lastprivate_messages.cpp
  clang/test/OpenMP/distribute_parallel_for_reduction_messages.cpp
  clang/test/OpenMP/distribute_parallel_for_shared_messages.cpp
  clang/test/OpenMP/distribute_parallel_for_simd_aligned_messages.cpp
  clang/test/OpenMP/distribute_parallel_for_simd_firstprivate_messages.cpp
  clang/test/OpenMP/distribute_parallel_for_simd_lastprivate_messages.cpp
  clang/test/OpenMP/distribute_parallel_for_simd_linear_messages.cpp
  clang/test/OpenMP/distribute_parallel_for_simd_reduction_messages.cpp
  clang/test/OpenMP/distribute_parallel_for_simd_shared_messages.cpp
  clang/test/OpenMP/distribute_simd_aligned_messages.cpp
  clang/test/OpenMP/distribute_simd_firstprivate_messages.cpp
  clang/test/OpenMP/distribute_simd_lastprivate_messages.cpp
  clang/test/OpenMP/distribute_simd_linear_messages.cpp
  clang/test/OpenMP/distribute_simd_reduction_messages.cpp
  clang/test/OpenMP/target_map_messages.cpp
  clang/test/OpenMP/target_parallel_for_map_messages.cpp
  clang/test/OpenMP/target_parallel_for_simd_map_messages.cpp
  clang/test/OpenMP/target_parallel_map_messages.cpp
  clang/test/OpenMP/target_simd_map_messages.cpp
  clang/test/OpenMP/target_teams_distribute_map_messages.cpp
  clang/test/OpenMP/target_teams_distribute_parallel_for_map_messages.cpp
  clang/test/OpenMP/target_teams_distribute_parallel_for_simd_map_messages.cpp
  clang/test/OpenMP/target_teams_distribute_simd_map_messages.cpp
  clang/test/OpenMP/target_teams_map_messages.cpp
  clang/test/OpenMP/target_update_from_messages.cpp
  clang/test/OpenMP/target_update_messages.cpp
  clang/test/OpenMP/target_update_to_messages.cpp
  clang/test/OpenMP/teams_distribute_firstprivate_messages.cpp
  clang/test/OpenMP/teams_distribute_lastprivate_messages.cpp
  clang/test/OpenMP/teams_distribute_parallel_for_firstprivate_messages.cpp
  clang/test/OpenMP/teams_distribute_parallel_for_lastprivate_messages.cpp
  clang/test/OpenMP/teams_distribute_parallel_for_reduction_messages.cpp
  clang/test/OpenMP/teams_distribute_parallel_for_shared_messages.cpp
  clang/test/OpenMP/teams_distribute_parallel_for_simd_aligned_messages.cpp
  clang/test/OpenMP/teams_distribute_parallel_for_simd_firstprivate_messages.cpp
  clang/test/OpenMP/teams_distribute_parallel_for_simd_lastprivate_messages.cpp
  clang/test/OpenMP/teams_distribute_parallel_for_simd_linear_messages.cpp
  clang/test/OpenMP/teams_distribute_parallel_for_simd_reduction_messages.cpp
  clang/test/OpenMP/teams_distribute_parallel_for_simd_shared_messages.cpp
  clang/test/OpenMP/teams_distribute_reduction_messages.cpp
  clang/test/OpenMP/teams_distribute_shared_messages.cpp
  clang/test/OpenMP/teams_distribute_simd_aligned_messages.cpp
  clang/test/OpenMP/teams_distribute_simd_firstprivate_messages.cpp
  clang/test/OpenMP/teams_distribute_simd_lastprivate_messages.cpp
  clang/test/OpenMP/teams_distribute_simd_linear_messages.cpp
  clang/test/OpenMP/teams_distribute_simd_reduction_messages.cpp
  clang/test/OpenMP/teams_distribute_simd_shared_messages.cpp
  clang/test/OpenMP/teams_firstprivate_messages.cpp
  clang/test/OpenMP/teams_reduction_messages.cpp
  clang/test/OpenMP/teams_shared_messages.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D107200.363229.patch
Type: text/x-patch
Size: 28687 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20210730/b1f2db07/attachment-0001.bin>


More information about the cfe-commits mailing list