9#ifndef FORTRAN_LOWER_COMPONENTPATH_H
10#define FORTRAN_LOWER_COMPONENTPATH_H
12#include "flang/Lower/IterationSpace.h"
13#include "llvm/ADT/SmallVector.h"
40 using ExtendRefFunc = std::function<mlir::Value(
const mlir::Value &)>;
42 ComponentPath(
bool isImplicit) { setPC(isImplicit); }
47 ComponentPath() =
delete;
49 bool isSlice()
const {
return !trips.empty() || hasComponents(); }
50 bool hasComponents()
const {
return !suffixComponents.empty(); }
53 bool hasExtendCoorRef()
const {
return extendCoorRef.has_value(); }
54 ExtendRefFunc getExtendCoorRef()
const;
75 void setPC(
bool isImplicit);
Definition variable.h:205
Definition variable.h:353
Definition variable.h:300
std::optional< ExtendRefFunc > extendCoorRef
Definition ComponentPath.h:72
Definition IterationSpace.h:47
Definition ComponentPath.h:26
Definition ParserActions.h:24
bool isRankedArrayAccess(const Fortran::evaluate::ArrayRef &x)
Definition ComponentPath.cpp:37
Definition AbstractConverter.h:34