FLANG
Public Member Functions | Public Attributes | List of all members
Fortran::lower::CallInterface< T >::PassedEntity Struct Reference

#include <flang/Lower/CallInterface.h>

Public Member Functions

bool isOptional () const
 Is the dummy argument optional?
 
bool mayBeModifiedByCall () const
 Can the argument be modified by the callee?
 
bool mayBeReadByCall () const
 Can the argument be read by the callee?
 
bool testTKR (Fortran::common::IgnoreTKR flag) const
 Does the argument have the specified IgnoreTKR flag?
 
bool isIntentOut () const
 Is the argument INTENT(OUT)
 
bool mustBeMadeContiguous () const
 Does the argument have the CONTIGUOUS attribute or have explicit shape?
 
bool hasValueAttribute () const
 Does the dummy argument have the VALUE attribute?
 
bool hasAllocatableAttribute () const
 Does the dummy argument have the ALLOCATABLE attribute?
 
bool mayRequireIntentoutFinalization () const
 
bool isSequenceAssociatedDescriptor () const
 

Public Attributes

PassEntityBy passBy
 How entity is passed by.
 
FortranEntity entity
 
FirValue firArgument
 
FirValue firLength
 
const Fortran::evaluate::characteristics::DummyArgumentcharacteristics
 Pointer to the argument characteristics. Nullptr for results.
 

Detailed Description

template<typename T>
struct Fortran::lower::CallInterface< T >::PassedEntity

PassedEntity is what is provided back to the CallInterface user. It describe how the entity is plugged in the interface

Member Function Documentation

◆ isSequenceAssociatedDescriptor()

template<typename T >
bool Fortran::lower::CallInterface< T >::PassedEntity::isSequenceAssociatedDescriptor

Is the dummy argument an explicit-shape or assumed-size array that must be passed by descriptor? Sequence association imply the actual argument shape/rank may differ with the dummy shape/rank (see F'2023 section 15.5.2.12), so care is needed when creating the descriptor for the dummy argument.

◆ mayRequireIntentoutFinalization()

template<typename T >
bool Fortran::lower::CallInterface< T >::PassedEntity::mayRequireIntentoutFinalization

May the dummy argument require INTENT(OUT) finalization on entry to the invoked procedure? Provides conservative answer.

Member Data Documentation

◆ characteristics

template<typename T >
const Fortran::evaluate::characteristics::DummyArgument* Fortran::lower::CallInterface< T >::PassedEntity::characteristics
Initial value:
=
nullptr

Pointer to the argument characteristics. Nullptr for results.

◆ entity

template<typename T >
FortranEntity Fortran::lower::CallInterface< T >::PassedEntity::entity

What is the entity (SymbolRef for callee/ActualArgument* for caller) What is the related mlir::func::FuncOp argument(s) (mlir::Value for callee / index for the caller).


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