diff options
author | Slava Zakharin <szakharin@nvidia.com> | 2023-08-09 08:49:24 -0700 |
---|---|---|
committer | Slava Zakharin <szakharin@nvidia.com> | 2023-08-09 09:24:16 -0700 |
commit | ab340f97f92a7f8ae5b0df02410552a86aebc295 (patch) | |
tree | 22a9b6fde1ff074f28bc6ef987840b5fe1e1d301 /libcxx/modules/std/text_encoding.cppm | |
parent | 15cfb4494d81a23aca8b7d5e2ac8721fa69b122d (diff) | |
download | llvm-ab340f97f92a7f8ae5b0df02410552a86aebc295.zip llvm-ab340f97f92a7f8ae5b0df02410552a86aebc295.tar.gz llvm-ab340f97f92a7f8ae5b0df02410552a86aebc295.tar.bz2 |
[flang][hlfir] Support passing polymorphic expr for non-polymorphic dummy.
The actual polymorphic expression argument that is passed to a non-polymorphic
contiguous dummy has to be made a contiguous entity with the dynamic type
matching the declared type of the dummy argument.
The solution is to associate the expression with a temporary of the dynamic
type of the expression, then rebox the temporary to the declared type
of the dummy argument, and then, if necessary, make copy-in into another
temporary that is, finally, a contiguous entity with the required dynamic type.
With this change a single prepared argument may have up to two associated
clean-ups, so I had to change the clean-ups handling.
Reviewed By: tblah
Differential Revision: https://reviews.llvm.org/D157464
Diffstat (limited to 'libcxx/modules/std/text_encoding.cppm')
0 files changed, 0 insertions, 0 deletions