| 1 | //===-- lib/runtime/copy.h --------------------------------------*- C++ -*-===// |
| 2 | // |
| 3 | // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
| 4 | // See https://llvm.org/LICENSE.txt for license information. |
| 5 | // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| 6 | // |
| 7 | //===----------------------------------------------------------------------===// |
| 8 | |
| 9 | // Utilities that copy data in a type-aware fashion, allocating & duplicating |
| 10 | // allocatable/automatic components of derived types along the way. |
| 11 | |
| 12 | #ifndef FLANG_RT_RUNTIME_COPY_H_ |
| 13 | #define FLANG_RT_RUNTIME_COPY_H_ |
| 14 | |
| 15 | #include "flang-rt/runtime/descriptor.h" |
| 16 | |
| 17 | namespace Fortran::runtime { |
| 18 | |
| 19 | // Assigns to uninitialized storage. |
| 20 | // Duplicates allocatable & automatic components. |
| 21 | RT_API_ATTRS void CopyElement(const Descriptor &to, const SubscriptValue toAt[], |
| 22 | const Descriptor &from, const SubscriptValue fromAt[], Terminator &); |
| 23 | |
| 24 | } // namespace Fortran::runtime |
| 25 | #endif // FLANG_RT_RUNTIME_COPY_H_ |
| 26 | |