12#ifndef FORTRAN_RUNTIME_TEMPORARY_STACK_H_
13#define FORTRAN_RUNTIME_TEMPORARY_STACK_H_
15#include "flang/Runtime/entry-names.h"
18namespace Fortran::runtime {
32[[nodiscard]]
void *RTNAME(CreateValueStack)(
33 const char *sourceFile =
nullptr,
int line = 0);
34void RTNAME(PushValue)(
void *opaquePtr,
const Descriptor &value);
37void RTNAME(PopValue)(
void *opaquePtr, Descriptor &retValue);
41void RTNAME(ValueAt)(
void *opaquePtr, uint64_t i, Descriptor &retValue);
42void RTNAME(DestroyValueStack)(
void *opaquePtr);
52[[nodiscard]]
void *RTNAME(CreateDescriptorStack)(
53 const char *sourceFile =
nullptr,
int line = 0);
54void RTNAME(PushDescriptor)(
void *opaquePtr,
const Descriptor &value);
57void RTNAME(PopDescriptor)(
void *opaquePtr, Descriptor &retValue);
61void RTNAME(DescriptorAt)(
void *opaquePtr, uint64_t i, Descriptor &retValue);
62void RTNAME(DestroyDescriptorStack)(
void *opaquePtr);