FLANG
Fortran::semantics::Symbol Class Reference

Public Types

using Flags = common::EnumSet<Flag, Flag_enumSize>

Public Member Functions

 ENUM_CLASS (Flag, Function, Subroutine, StmtFunction, Implicit, ImplicitOrError, ModFile, ParentComp, CrayPointer, CrayPointee, LocalityLocal, LocalityLocalInit, LocalityReduce, LocalityShared, InDataStmt, InNamelist, InCommonBlock, EntryDummyArgument, CompilerCreated, ReadOnly, AccPrivate, AccFirstPrivate, AccShared, AccCopy, AccCopyIn, AccCopyInReadOnly, AccCopyOut, AccCreate, AccDelete, AccPresent, AccLink, AccDeviceResident, AccDevicePtr, AccDeclare, AccDevice, AccHost, AccSelf, AccCommonBlock, AccThreadPrivate, AccReduction, AccNone, AccPreDetermined, OmpShared, OmpPrivate, OmpLinear, OmpFirstPrivate, OmpLastPrivate, OmpGroupPrivate, OmpMapTo, OmpMapFrom, OmpMapToFrom, OmpMapStorage, OmpMapDelete, OmpUseDevicePtr, OmpUseDeviceAddr, OmpIsDevicePtr, OmpHasDeviceAddr, OmpCopyIn, OmpCopyPrivate, OmpCommonBlock, OmpReduction, OmpInReduction, OmpAligned, OmpNontemporal, OmpAllocate, OmpDeclarativeAllocateDirective, OmpExecutableAllocateDirective, OmpDeclareSimd, OmpDeclareTarget, OmpThreadprivate, OmpDeclareReduction, OmpFlushed, OmpCriticalLock, OmpIfSpecified, OmpNone, OmpPreDetermined, OmpExplicit, OmpImplicit, OmpDependObject, OmpInclusiveScan, OmpExclusiveScan, OmpInScanReduction, OmpUniform)
const Scopeowner () const
const SourceNamename () const
Attrs & attrs ()
const Attrs & attrs () const
Attrs & implicitAttrs ()
const Attrs & implicitAttrs () const
Flagsflags ()
const Flagsflags () const
bool test (Flag flag) const
void set (Flag flag, bool value=true)
Scopescope ()
const Scopescope () const
void set_scope (Scope *scope)
std::size_t size () const
void set_size (std::size_t size)
std::size_t offset () const
void set_offset (std::size_t offset)
void ReplaceName (const SourceName &)
template<typename D>
bool has () const
template<typename D>
D * detailsIf ()
template<typename D>
const D * detailsIf () const
template<typename D>
D & get ()
template<typename D>
const D & get () const
Details & details ()
const Details & details () const
void set_details (Details &&)
bool CanReplaceDetails (const Details &details) const
SymbolGetUltimate ()
const SymbolGetUltimate () const
DeclTypeSpecGetType ()
const DeclTypeSpecGetType () const
void SetType (const DeclTypeSpec &)
const std::string * GetBindName () const
void SetBindName (std::string &&)
bool GetIsExplicitBindName () const
void SetIsExplicitBindName (bool)
void SetIsCDefined (bool)
bool IsFuncResult () const
bool IsObjectArray () const
const ArraySpecGetShape () const
bool IsSubprogram () const
bool IsFromModFile () const
bool HasExplicitInterface () const
bool HasLocalLocality () const
bool operator== (const Symbol &that) const
bool operator!= (const Symbol &that) const
int Rank () const
int Corank () const
const DerivedTypeSpecGetParentTypeSpec (const Scope *=nullptr) const
const SymbolGetParentComponent (const Scope *=nullptr) const
SemanticsContextGetSemanticsContext () const
LLVM_DUMP_METHOD void dump () const

Static Public Member Functions

static std::string OmpFlagToClauseName (Flag ompFlag)

Friends

template<std::size_t>
class Symbols
template<class, std::size_t>
class std::array
llvm::raw_ostream & operator<< (llvm::raw_ostream &os, const Symbol &symbol)
llvm::raw_ostream & DumpForUnparse (llvm::raw_ostream &os, const Symbol &symbol, bool isDef)

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