FLANG
Public Member Functions | List of all members
Fortran::lower::PreparedActualArgument Struct Reference

#include <flang/Lower/HlfirIntrinsics.h>

Public Member Functions

 PreparedActualArgument (hlfir::Entity actual, std::optional< mlir::Value > isPresent)
 
 PreparedActualArgument (hlfir::ElementalAddrOp vectorSubscriptedActual)
 
void setElementalIndices (mlir::ValueRange &indices)
 
hlfir::Entity getActual (mlir::Location loc, fir::FirOpBuilder &builder) const
 
void derefPointersAndAllocatables (mlir::Location loc, fir::FirOpBuilder &builder)
 
void loadTrivialScalar (mlir::Location loc, fir::FirOpBuilder &builder)
 
hlfir::AssociateOp associateIfArrayExpr (mlir::Location loc, fir::FirOpBuilder &builder)
 
bool isArray () const
 
mlir::Value genShape (mlir::Location loc, fir::FirOpBuilder &builder)
 
mlir::Value genCharLength (mlir::Location loc, fir::FirOpBuilder &builder)
 
mlir::Value getPolymorphicMold (mlir::Location loc) const
 
bool handleDynamicOptional () const
 
mlir::Value getIsPresent () const
 
void resetOptionalAspect ()
 

Detailed Description

This structure holds the initial lowered value of an actual argument that was lowered regardless of the interface, and it holds whether or not it may be absent at runtime and the dummy is optional.

Member Function Documentation

◆ associateIfArrayExpr()

hlfir::AssociateOp Fortran::lower::PreparedActualArgument::associateIfArrayExpr ( mlir::Location  loc,
fir::FirOpBuilder builder 
)
inline

Ensure an array expression argument is fully evaluated in memory before the call. Useful for impure elemental calls.

◆ getActual()

hlfir::Entity Fortran::lower::PreparedActualArgument::getActual ( mlir::Location  loc,
fir::FirOpBuilder builder 
) const

Get the prepared actual. If this is an array argument in an elemental call, the current element value will be returned.

◆ getPolymorphicMold()

mlir::Value Fortran::lower::PreparedActualArgument::getPolymorphicMold ( mlir::Location  loc) const
inline

When the argument is polymorphic, get mold value with the same dynamic type.


The documentation for this struct was generated from the following files: