aboutsummaryrefslogtreecommitdiff
path: root/libcxx/modules/std/text_encoding.cppm
diff options
context:
space:
mode:
authorSlava Zakharin <szakharin@nvidia.com>2023-08-09 08:49:24 -0700
committerSlava Zakharin <szakharin@nvidia.com>2023-08-09 09:24:16 -0700
commitab340f97f92a7f8ae5b0df02410552a86aebc295 (patch)
tree22a9b6fde1ff074f28bc6ef987840b5fe1e1d301 /libcxx/modules/std/text_encoding.cppm
parent15cfb4494d81a23aca8b7d5e2ac8721fa69b122d (diff)
downloadllvm-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