FLANG
|
#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::DummyArgument * | characteristics |
Pointer to the argument characteristics. Nullptr for results. | |
PassedEntity is what is provided back to the CallInterface user. It describe how the entity is plugged in the interface
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.
bool Fortran::lower::CallInterface< T >::PassedEntity::mayRequireIntentoutFinalization |
May the dummy argument require INTENT(OUT) finalization on entry to the invoked procedure? Provides conservative answer.
const Fortran::evaluate::characteristics::DummyArgument* Fortran::lower::CallInterface< T >::PassedEntity::characteristics |
Pointer to the argument characteristics. Nullptr for results.
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).