[PATCH] D129008: [Clang][OpenMP] Fix the issue that globalization doesn't work with byval struct function argument

Shilei Tian via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Jan 25 07:23:40 PST 2023


tianshilei1992 added a comment.

In D129008#4079660 <https://reviews.llvm.org/D129008#4079660>, @aaron.ballman wrote:

> In D129008#3640194 <https://reviews.llvm.org/D129008#3640194>, @tianshilei1992 wrote:
>
>> `callCStructCopyConstructor` is actually for Objective-C…Cannot use it here.
>
> Is it for ObjC? Looking at the comments, it looks like it's for C:
>
>   // These functions emit calls to the special functions of non-trivial C
>   // structs.

That's not ObjC. It can be C or C++.

My apology I should have added more context here. In OpenMP, we need to "globalize" certain captured local variables by allocating another buffers and then copy the memory. If the local variables are structs or even C++ classes, the copy has to be done by invoking the corresponding copy constructors. However, I don't know how to invoke the copy constructor here. `callCStructCopyConstructor` only does plain copy. It's not gonna work for C++ classes.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D129008/new/

https://reviews.llvm.org/D129008



More information about the cfe-commits mailing list